[
  {
    "path": ".nojekyll",
    "content": ""
  },
  {
    "path": "404.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>404 页面没找到 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"404 Page not found\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/404.html\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"404 Page not found\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"404 Page not found\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/404.html title=\"404 Page not found | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/404.html data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=page id=content-404><h1 id=error-emoji></h1><p class=error-text>抱歉，您要查找的页面不存在。&nbsp;\n<a href=javascript:void(0); title onclick=window.history.back()><i class=\"fa-regular fa-hand-point-left\" aria-hidden=true></i></a></p></article><script>(function(){const e=[\"\\\\(o_o)/\",\"(˚Δ˚)b\",\"(^-^*)\",\"(≥o≤)\",\"(^_^)b\",\"(·_·)\",\"(='X'=)\",\"(>_<)\",\"(;-;)\"];document.getElementById(\"error-emoji\").appendChild(document.createTextNode(e[Math.floor(Math.random()*e.length)]))})()</script></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/404.html\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "_posts/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"加密文章 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[]}"
  },
  {
    "path": "_posts/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>加密文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"加密文章\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-11-09T16:43:13+08:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/_posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"加密文章\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"加密文章\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/_posts/ title=\"加密文章 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/_posts/index.xml title=\"加密文章 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/_posts/feed.json title=\"加密文章 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/_posts/feed.json title=\"加密文章 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/_posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>加密文章</li></ol></nav><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>加密文章 <sup>1</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 535 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 535 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/404d6a2/ class=archive-item-link>坐高铁去柳州吃螺狮粉</a>\n<span class=archive-item-date title='2024-05-20 11:41:03'>05-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/50ddd55196c0ec608c96d427ebb2fb8f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/50ddd55196c0ec608c96d427ebb2fb8f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/_posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "_posts/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>加密文章 | 菠菜眾長</title><link>https://lruihao.cn/_posts/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate/><atom:link href=\"https://lruihao.cn/_posts/index.xml\" rel=\"self\" type=\"application/rss+xml\"/></channel></rss>"
  },
  {
    "path": "_posts/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/_posts/</title><link rel=canonical href=https://lruihao.cn/_posts/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/_posts/\"></head></html>"
  },
  {
    "path": "about/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>关于 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 不卑不亢，不矜不伐，戒骄戒躁\n不嗔不怒，不争不弃，独善其身\n—— 自我期许\n关于作者 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"关于\"><meta itemprop=description content=\"不卑不亢，不矜不伐，戒骄戒躁\n不嗔不怒，不争不弃，独善其身\n—— 自我期许\n关于作者 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！\"><meta itemprop=datePublished content=\"2021-09-07T21:00:48+08:00\"><meta itemprop=dateModified content=\"2025-09-15T22:12:57+08:00\"><meta itemprop=wordCount content=\"2646\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/about/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"关于\"><meta property=\"og:description\" content=\"不卑不亢，不矜不伐，戒骄戒躁\n不嗔不怒，不争不弃，独善其身\n—— 自我期许\n关于作者 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:published_time\" content=\"2021-09-07T21:00:48+08:00\"><meta property=\"article:modified_time\" content=\"2025-09-15T22:12:57+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"关于\"><meta name=twitter:description content=\"不卑不亢，不矜不伐，戒骄戒躁\n不嗔不怒，不争不弃，独善其身\n—— 自我期许\n关于作者 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/about/ title=\"关于 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/less-sass-scss/ title=less&amp;sass&amp;scss><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/hugo-blog/ title=\"Lruihao's Note\"><link rel=alternate type=text/markdown href=https://lruihao.cn/about/index.md title=\"关于 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"关于\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/about\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"page\",\"wordcount\":2646,\"url\":\"https:\\/\\/lruihao.cn\\/about\\/\",\"datePublished\":\"2021-09-07T21:00:48+08:00\",\"dateModified\":\"2025-09-15T22:12:57+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/about/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=\"page single special\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\">关于</h1><p class=\"single-subtitle animate__animated animate__fadeIn\">Lruihao</p></div><div class=content id=content><blockquote class=blockquote-center><p>不卑不亢，不矜不伐，戒骄戒躁<br>不嗔不怒，不争不弃，独善其身</p><p><em>—— 自我期许</em></p></blockquote><h2 class=heading-element id=关于作者><span>关于作者</span>\n<a href=#%e5%85%b3%e4%ba%8e%e4%bd%9c%e8%80%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！</p></blockquote><p>喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</p><ul><li>👨‍💻 一名前端开发工程师</li><li>🫶 <a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">Hugo FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 作者</li><li>📚 专业：计算机科学与技术</li><li><i class=\"fa-brands fa-github\" aria-hidden=true></i>&nbsp;关注 Follow：<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><i class=\"fa-brands fa-weixin\" aria-hidden=true></i>&nbsp;微信公众号：<a href=https://lruihao.cn/images/qr-wx-mp.webp target=_blank rel=\"external nofollow noopener noreferrer\">菠菜眾長<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=关于博客><span>关于博客</span>\n<a href=#%e5%85%b3%e4%ba%8e%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>博客内容主要以前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。</p><p>你可以通过我的<a href=https://lruihao.cn/images/qr-wx-mp.webp title=关注「菠菜眾長」公众号 target=_blank rel=\"external nofollow noopener noreferrer\">微信公众号<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://github.com/Lruihao/hugo-blog title=\"Watch on GitHub\" target=_blank rel=\"external nofollow noopener noreferrer\">GitHub<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或 <a href=http://lruihao.cn/index.xml target=_blank rel=\"external nofollow noopener noreferrer\">RSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 来订阅本博客。</p><div id=id-2><div class=typeit data-speed=20><div class=highlight></div><template><pre><span class=chroma><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 菠菜眾長，取“兼收並蓄，博採眾長”之意。\n</span></span></span><span class=line><span class=cl><span class=cm> * Licensed under CC BY-NC-SA 4.0\n</span></span></span><span class=line><span class=cl><span class=cm> * @since 2018-05-28 20:01:01\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kr>class</span> <span class=nx>Blog</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>constructor</span><span class=p>(</span><span class=nx>name</span><span class=p>,</span> <span class=nx>author</span><span class=p>,</span> <span class=nx>url</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>name</span> <span class=o>=</span> <span class=nx>name</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>author</span> <span class=o>=</span> <span class=nx>author</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>url</span> <span class=o>=</span> <span class=nx>url</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=c1>// 建站的初衷不是为了炫耀所知，而是记录无知。\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>site</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Blog</span><span class=p>(</span><span class=s1>&#39;菠菜眾長&#39;</span><span class=p>,</span> <span class=s1>&#39;Lruihao&#39;</span><span class=p>,</span> <span class=s1>&#39;https://lruihao.cn&#39;</span><span class=p>);</span></span></span></span></pre></template></div></div><details><summary>博客历史</summary><ul class=fi-timeline style=height:280px data-animation><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:1><div class=fi-timeline-item__content>部署从 GitHub Pages 迁移至 Vercel。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-05-01 17:13:51</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:2><div class=fi-timeline-item__content>大学毕业后，出湖南工作。网警打电话告知我迁移备案，我觉得麻烦就注销了，同时部署从腾讯云 COS 桶迁移至 GitHub Pages。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-02-14 18:00:40</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:3><div class=fi-timeline-item__content>LoveIt => FixIt<br>LoveIt 长期停更，博客主题改为 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，并自行开发维护。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2021-12-18 16:15:22</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:4><div class=fi-timeline-item__content>博客迁移至 Hugo，使用 LoveIt 主题，重新出发。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2021-09-08 20:53:21</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:5><div class=fi-timeline-item__content>升级 Windows 11，系统更新出现故障，整理磁盘时不小心把代码全删除了，无备份，GitHub 仅备份了 Markdown 源码。博客开始停止运行。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2021-08-19 22:48:06</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:6><div class=fi-timeline-item__content>博客名称“博採眾長”改为“菠菜眾長”，因为网站备案不能使用成语。<br>这个时候博客内容开始转向前端开发了。部署在腾讯云 COS 桶，速度嘎嘎快。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2019-12-06 21:04:01</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:7><div class=fi-timeline-item__content>基于 Hexo + NexT 主题搭建博客，博客取名为“博採眾長”，取“兼收並蓄，博採眾長”之意。<br>当时还在打 ACM，博客内容也主要是记录题解。</div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-05-28 20:01:01</div></li></ul></details><h2 class=heading-element id=有偿帮助><span>有偿帮助</span>\n<a href=#%e6%9c%89%e5%81%bf%e5%b8%ae%e5%8a%a9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>前后端开发需求可以联系我，暂定价格 <sup>50～100 元</sup>/<sub>小时</sub>，具体详聊。</p><p><em>（其他类型开发也可以咨询）</em></p><h2 class=heading-element id=商务合作><span>商务合作</span>\n<a href=#%e5%95%86%e5%8a%a1%e5%90%88%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>广告投放、其他平台同步授权等事宜请邮件与我联系。</p><p>📮 邮箱：<code>1024@lruihao.cn</code>（备注来意）</p><p>已授权平台：<a href=https://cloud.tencent.com/developer/column/94521 target=_blank rel=\"external nofollow noopener noreferrer\">云 + 社区<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><hr><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=id-1 title=密码><input type=password id=id-1 class=fixit-decryptor-input placeholder=\"🔑 Blog Analytics\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button></div><div class=decryptor-content></div><cipher-text data-password=131f457c96601efb>PGgyIGNb5fbcbd56537bce1ee1174c5e0fe69e3a75437f9867b76600ad802dffsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmlbDmja7liIbmnpAiPjxzcGFuPuaVsOaNruWIhuaekDwvc3Bhbj4KICA8YSBocmVmPSIjJWU2JTk1JWIwJWU2JThkJWFlJWU1JTg4JTg2JWU2JTllJTkwIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDI+PHVsPgo8bGk+PGEgaHJlZj0iaHR0cHM6Ly91cy51bWFtaS5pcy9zaGFyZS9GU1B3bTFJc3JRRlk3WnZQL2xydWloYW8uY24iIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPlVtYW1pPGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwczovL3ZlcmNvdW50Lm9uZS9kYXNoYm9hcmQvYW5hbHl0aWNzP2RvbWFpbj1scnVpaGFvLmNuIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj5WZXJjb3VudDxpIGNsYXNzPSJmYS1zb2xpZCBmYS1leHRlcm5hbC1saW5rLWFsdCBmYS14cyBtcy0xIHRleHQtc2Vjb25kYXJ5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYT48L2xpPgo8L3VsPgo=</cipher-text>\n</fixit-encryptor><span id=busuanzi_container_page_pv class=\"busuanzi_visitors d-none\"><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span></div></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=/css/page/8576ec274c98b3831668a172fa632d80.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8576ec274c98b3831668a172fa632d80.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8576ec274c98b3831668a172fa632d80.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/about/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "about/index.md",
    "content": "# 关于\n\n\n{{< center-quote >}}\n不卑不亢，不矜不伐，戒骄戒躁\\\n不嗔不怒，不争不弃，独善其身\n\n_—— 自我期许_\n{{< /center-quote >}}\n\n## 关于作者\n\n> 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！\n\n喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\n\n- 👨‍💻 一名前端开发工程师\n- 🫶 [Hugo FixIt](https://github.com/hugo-fixit) 作者\n- 📚 专业：计算机科学与技术\n- :(fa-brands fa-github): 关注 Follow：[Lruihao](https://github.com/Lruihao)\n- :(fa-brands fa-weixin): 微信公众号：[菠菜眾長](https://lruihao.cn/images/qr-wx-mp.webp)\n\n## 关于博客\n\n博客内容主要以前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\n\n你可以通过我的[微信公众号](https://lruihao.cn/images/qr-wx-mp.webp \"关注「菠菜眾長」公众号\")、[GitHub](https://github.com/Lruihao/hugo-blog \"Watch on GitHub\") 或 [RSS](http://lruihao.cn/index.xml) 来订阅本博客。\n\n{{< style \"min-height: 350px;\" >}}\n{{< typeit code=javascript speed=20 >}}\n/**\n * 菠菜眾長，取“兼收並蓄，博採眾長”之意。\n * Licensed under CC BY-NC-SA 4.0\n * @since 2018-05-28 20:01:01\n */\nclass Blog {\n  constructor(name, author, url) {\n    this.name = name;\n    this.author = author;\n    this.url = url;\n  }\n}\n// 建站的初衷不是为了炫耀所知，而是记录无知。\nconst site = new Blog('菠菜眾長', 'Lruihao', 'https://lruihao.cn');\n{{< /typeit >}}\n{{< /style >}}\n\n{{< details \"博客历史\" >}}\n\n```timeline {reverse=true, animation=true, height=\"280px\"}\nevents:\n  - timestamp: 2018-05-28 20:01:01\n    content: 基于 Hexo + NexT 主题搭建博客，博客取名为“博採眾長”，取“兼收並蓄，博採眾長”之意。<br>当时还在打 ACM，博客内容也主要是记录题解。\n  - timestamp: 2019-12-06 21:04:01\n    content: 博客名称“博採眾長”改为“菠菜眾長”，因为网站备案不能使用成语。<br>这个时候博客内容开始转向前端开发了。部署在腾讯云 COS 桶，速度嘎嘎快。\n  - timestamp: 2021-08-19 22:48:06\n    content: 升级 Windows 11，系统更新出现故障，整理磁盘时不小心把代码全删除了，无备份，GitHub 仅备份了 Markdown 源码。博客开始停止运行。\n  - timestamp: 2021-09-08 20:53:21\n    content: 博客迁移至 Hugo，使用 LoveIt 主题，重新出发。\n  - timestamp: 2021-12-18 16:15:22\n    content: LoveIt => FixIt<br>LoveIt 长期停更，博客主题改为 [FixIt](https://github.com/hugo-fixit/FixIt)，并自行开发维护。\n  - timestamp: 2023-02-14 18:00:40\n    content: 大学毕业后，出湖南工作。网警打电话告知我迁移备案，我觉得麻烦就注销了，同时部署从腾讯云 COS 桶迁移至 GitHub Pages。\n  - timestamp: 2023-05-01 17:13:51\n    content: 部署从 GitHub Pages 迁移至 Vercel。\n```\n\n{{< /details >}}\n\n## 有偿帮助\n\n前后端开发需求可以联系我，暂定价格 [50～100 元]/[小时]，具体详聊。\n\n_（其他类型开发也可以咨询）_\n\n## 商务合作\n\n广告投放、其他平台同步授权等事宜请邮件与我联系。\n\n📮 邮箱：`1024@lruihao.cn`（备注来意）\n\n已授权平台：[云 + 社区](https://cloud.tencent.com/developer/column/94521)\n\n---\n\n{{< busuanzi_embed >}}\n\n<!-- markdownlint-disable-file MD004 MD007 MD032 MD036 -->\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/about/  \n\n"
  },
  {
    "path": "archives/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>博客构建档（HTML & Markdown）</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>📄 The open-source repo for fixit.lruihao.cn</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>Generate a list of all hugo-fixit theme components.</a>\n<span class=archive-item-date title='2026-05-06 03:13:04'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>🌐 A component for site automatic translation.</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>A Hugo theme component with caniuse shortcode.</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>🛠 Create awesome cover images for your blog posts quickly.</a>\n<span class=archive-item-date title='2026-05-06 03:02:25'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>🛠️ A node-based tooling for FixIt site initialization.</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2026</h2><article class=archive-item><a href=/projects/lruihao/cell-tooltip/ class=archive-item-link>一个轻量化 Tooltip 组件。</a>\n<span class=archive-item-date title='2026-03-06 06:58:23'>03-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>A Christmas Easter Egg by JavaScript.</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Command line tool for generating a changelog from git tags and commit history</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a>\n<span class=archive-item-date title='2025-08-04 11:37:24'>08-04</span></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article><article class=archive-item><a href=/projects/lruihao/json-viewer-element/ class=archive-item-link>A custom element for viewing and interacting with JSON data.</a>\n<span class=archive-item-date title='2025-07-19 07:05:07'>07-19</span></article><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a>\n<span class=archive-item-date title='2025-06-18 10:35:47'>06-18</span></article><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>The webfont package for the MMT typeface.</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article><article class=archive-item><a href=/projects/lruihao/vercel-proxy/ class=archive-item-link>API proxies powered by Vercel.</a>\n<span class=archive-item-date title='2025-04-09 02:13:22'>04-09</span></article><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a>\n<span class=archive-item-date title='2025-01-20 15:56:38'>01-20</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>Generate a list of all hugo-fixit theme components.</a>\n<span class=archive-item-date title='2025-01-14 09:10:09'>01-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>A Hugo theme component with asciinema-embed shortcode.</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-viewport/ class=archive-item-link>震惊！CSS 竟然能获取视口尺寸？</a>\n<span class=archive-item-date title='2024-12-06 10:32:22'>12-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>🌐 A component for site automatic translation.</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/posts/91db0fa/ class=archive-item-link>Amazon 如何让服务器享受着持续集群安全？</a>\n<span class=archive-item-date title='2024-11-22 14:01:18'>11-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>🐟 A canvas implemented animation effect of small fish swimming.</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a>\n<span class=archive-item-date title='2024-10-06 11:10:22'>10-06</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/3/>3</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/archives/</title><link rel=canonical href=https://lruihao.cn/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/archives/\"></head></html>"
  },
  {
    "path": "archives/page/10/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/substatus/ class=archive-item-link>Java 父类子类的对象初始化过程</a>\n<span class=archive-item-date title='2019-03-21 13:36:25'>03-21</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article><article class=archive-item><a href=/posts/webbiji/ class=archive-item-link>Web 汇总</a>\n<span class=archive-item-date title='2019-03-18 20:40:55'>03-18</span></article><article class=archive-item><a href=/posts/fanxing/ class=archive-item-link>Java 泛型 Test</a>\n<span class=archive-item-date title='2019-03-16 13:56:01'>03-16</span></article><article class=archive-item><a href=/posts/eclipseuse/ class=archive-item-link>Eclipse 的基本使用</a>\n<span class=archive-item-date title='2019-03-15 23:47:24'>03-15</span></article><article class=archive-item><a href=/posts/qframe/ class=archive-item-link>匿名类在可视化界面中的应用</a>\n<span class=archive-item-date title='2019-03-15 22:31:28'>03-15</span></article><article class=archive-item><a href=/posts/linkcard/ class=archive-item-link>模仿知乎卡片式链接</a>\n<span class=archive-item-date title='2019-03-15 15:21:39'>03-15</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article><article class=archive-item><a href=/posts/qqxml/ class=archive-item-link>QQ 强制生成卡片式链接</a>\n<span class=archive-item-date title='2019-03-08 16:52:13'>03-08</span></article><article class=archive-item><a href=/posts/cipanadmin/ class=archive-item-link>磁盘存储器的管理</a>\n<span class=archive-item-date title='2019-03-04 23:08:32'>03-04</span></article><article class=archive-item><a href=/posts/js-vcode/ class=archive-item-link>JS 验证码</a>\n<span class=archive-item-date title='2019-03-04 20:53:09'>03-04</span></article><article class=archive-item><a href=/posts/renative/ class=archive-item-link>还乡</a>\n<span class=archive-item-date title='2019-02-01 20:44:40'>02-01</span></article><article class=archive-item><a href=/projects/lruihao/hexo-theme-next/ class=archive-item-link>Elegant and powerful theme for Hexo.</a>\n<span class=archive-item-date title='2019-01-31 09:57:45'>01-31</span></article><article class=archive-item><a href=/posts/jicheng/ class=archive-item-link>Java 继承 Test</a>\n<span class=archive-item-date title='2019-01-24 15:07:50'>01-24</span></article><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article><article class=archive-item><a href=/posts/recent-posts/ class=archive-item-link>在搜索、文章底部、侧栏添加最近文章模块</a>\n<span class=archive-item-date title='2019-01-16 17:50:52'>01-16</span></article><article class=archive-item><a href=/posts/mathclass/ class=archive-item-link>Java 猜数字小游戏（Math 类）</a>\n<span class=archive-item-date title='2019-01-15 17:33:28'>01-15</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/9/>9</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/12/>12</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/11/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/duixiang/ class=archive-item-link>面向对象基础知识总结</a>\n<span class=archive-item-date title='2019-01-15 16:07:31'>01-15</span></article><article class=archive-item><a href=/posts/java-range/ class=archive-item-link>Java 水仙花数（循环）</a>\n<span class=archive-item-date title='2019-01-14 17:30:24'>01-14</span></article><article class=archive-item><a href=/posts/java-input/ class=archive-item-link>Java 录入数据</a>\n<span class=archive-item-date title='2019-01-14 15:33:46'>01-14</span></article><article class=archive-item><a href=/posts/biaoshi/ class=archive-item-link>Java 标识符</a>\n<span class=archive-item-date title='2019-01-14 15:07:57'>01-14</span></article><article class=archive-item><a href=/posts/subject-verb/ class=archive-item-link>英语语法--主谓一致</a>\n<span class=archive-item-date title='2019-01-12 13:02:49'>01-12</span></article><article class=archive-item><a href=/years/2018/ class=archive-item-link>2018 年度总结</a>\n<span class=archive-item-date title='2019-01-12 11:09:52'>01-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/inversion-3/ class=archive-item-link>英语语法--形式倒装</a>\n<span class=archive-item-date title='2018-12-10 21:52:30'>12-10</span></article><article class=archive-item><a href=/posts/inversion-2/ class=archive-item-link>英语语法--完全倒装</a>\n<span class=archive-item-date title='2018-12-10 21:14:51'>12-10</span></article><article class=archive-item><a href=/posts/inversion-1/ class=archive-item-link>英语语法--部分倒装</a>\n<span class=archive-item-date title='2018-12-08 17:52:39'>12-08</span></article><article class=archive-item><a href=/posts/nextplugin/ class=archive-item-link>Hexo 插件及 Next 内置样式集</a>\n<span class=archive-item-date title='2018-11-24 16:54:09'>11-24</span></article><article class=archive-item><a href=/posts/commit-bat/ class=archive-item-link>通过 Bat 批处理文件自动提交博客代码</a>\n<span class=archive-item-date title='2018-11-17 14:25:49'>11-17</span></article><article class=archive-item><a href=/posts/fas-app/ class=archive-item-link>博採眾長 App</a>\n<span class=archive-item-date title='2018-11-12 16:04:04'>11-12</span></article><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article><article class=archive-item><a href=/posts/next-pdf/ class=archive-item-link>Next 添加支持 Pdf</a>\n<span class=archive-item-date title='2018-11-09 12:51:48'>11-09</span></article><article class=archive-item><a href=/posts/js-device/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Js 判断用户设备类型及平台</a>\n<span class=archive-item-date title='2018-11-03 23:35:44'>11-03</span></article><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/git/ class=archive-item-link>Git 常用指令汇总</a>\n<span class=archive-item-date title='2018-10-30 08:59:56'>10-30</span></article><article class=archive-item><a href=/posts/beian/ class=archive-item-link>网站备案之旅</a>\n<span class=archive-item-date title='2018-10-29 23:16:26'>10-29</span></article><article class=archive-item><a href=/posts/shell/ class=archive-item-link>Shell 脚本初体验</a>\n<span class=archive-item-date title='2018-10-29 11:57:39'>10-29</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/10/>10</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/13/>13</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/12/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article><article class=archive-item><a href=/posts/web-server-win/ class=archive-item-link>Windows 上搭建 Web 服务器</a>\n<span class=archive-item-date title='2018-10-26 21:56:18'>10-26</span></article><article class=archive-item><a href=/posts/gituse/ class=archive-item-link>使用 Git 上传代码到 Github, Coding 等仓库</a>\n<span class=archive-item-date title='2018-10-26 21:11:02'>10-26</span></article><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/web-font/ class=archive-item-link>Ttf 字体压缩</a>\n<span class=archive-item-date title='2018-10-17 21:38:06'>10-17</span></article><article class=archive-item><a href=/posts/linux-hello-c/ class=archive-item-link>Linux 编程初体验</a>\n<span class=archive-item-date title='2018-10-15 21:19:27'>10-15</span></article><article class=archive-item><a href=/projects/font-mmt/ class=archive-item-link>沐目体</a>\n<span class=archive-item-date title='2018-10-12 19:39:19'>10-12</span></article><article class=archive-item><a href=/posts/liushuixian/ class=archive-item-link>流水线</a>\n<span class=archive-item-date title='2018-10-09 16:21:04'>10-09</span></article><article class=archive-item><a href=/posts/data/ class=archive-item-link>计算机数据</a>\n<span class=archive-item-date title='2018-10-08 23:01:10'>10-08</span></article><article class=archive-item><a href=/posts/night/ class=archive-item-link>网页夜间效果</a>\n<span class=archive-item-date title='2018-09-27 13:13:31'>09-27</span></article><article class=archive-item><a href=/posts/crash-cheat/ class=archive-item-link>网页离开时改变标题“崩溃欺骗”</a>\n<span class=archive-item-date title='2018-09-26 16:36:08'>09-26</span></article><article class=archive-item><a href=/posts/linux-git/ class=archive-item-link>Linux/Centos 下的安装 Git</a>\n<span class=archive-item-date title='2018-09-22 22:28:45'>09-22</span></article><article class=archive-item><a href=/posts/mood/ class=archive-item-link>每一个优秀的人，都有一段沉默的时光</a>\n<span class=archive-item-date title='2018-09-21 21:11:25'>09-21</span></article><article class=archive-item><a href=/posts/vim/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Vim 速查表</a>\n<span class=archive-item-date title='2018-08-31 11:46:39'>08-31</span></article><article class=archive-item><a href=/posts/hexo-wordcount/ class=archive-item-link>Hexo Next 主题添加字数统计（2018）</a>\n<span class=archive-item-date title='2018-08-30 13:15:50'>08-30</span></article><article class=archive-item><a href=/posts/hexo-d-error/ class=archive-item-link>Hexo D 出错</a>\n<span class=archive-item-date title='2018-08-21 22:15:01'>08-21</span></article><article class=archive-item><a href=/posts/dongtaisub/ class=archive-item-link>Hexo 个性化 - Next 主题动态显示 Subtitle</a>\n<span class=archive-item-date title='2018-08-20 16:16:40'>08-20</span></article><article class=archive-item><a href=/posts/heart/ class=archive-item-link>“高逼格”C 语言画心</a>\n<span class=archive-item-date title='2018-08-15 16:33:12'>08-15</span></article><article class=archive-item><a href=/posts/git-index-lock/ class=archive-item-link>Git Index.lock</a>\n<span class=archive-item-date title='2018-08-14 19:21:23'>08-14</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/11/>11</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/13/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/console-log/ class=archive-item-link>Hexo 博客自定义 Console Log</a>\n<span class=archive-item-date title='2018-08-04 16:19:06'>08-04</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/zuiduanlu/ class=archive-item-link>最短路入门</a>\n<span class=archive-item-date title='2018-08-03 16:27:16'>08-03</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/12/>12</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/14/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=archive-item-link>在线离线算法</a>\n<span class=archive-item-date title='2018-07-26 09:57:32'>07-26</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=archive-item-link>杨辉三角</a>\n<span class=archive-item-date title='2018-07-22 11:41:15'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/13/>13</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/15/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=archive-item-link>简单背包</a>\n<span class=archive-item-date title='2018-06-16 13:18:43'>06-16</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=archive-item-link>18 湘潭邀请赛参赛队员代表发言</a>\n<span class=archive-item-date title='2018-06-15 07:51:21'>06-15</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article><article class=archive-item><a href=/posts/f-sorting/ class=archive-item-link>F.sorting</a>\n<span class=archive-item-date title='2018-06-14 22:49:27'>06-14</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=archive-item-link>位运算</a>\n<span class=archive-item-date title='2018-06-14 20:22:21'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article><article class=archive-item><a href=/posts/links/ class=archive-item-link>各种 Links 汇总与分享</a>\n<span class=archive-item-date title='2018-06-07 00:06:05'>06-07</span></article><article class=archive-item><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=archive-item-link>戏子春秋</a>\n<span class=archive-item-date title='2018-06-03 19:41:32'>06-03</span></article><article class=archive-item><a href=/posts/hexobuild/ class=archive-item-link>Hexo+github 搭建个人博客及美化</a>\n<span class=archive-item-date title='2018-06-01 14:34:23'>06-01</span></article><article class=archive-item><a href=/posts/hexowrite/ class=archive-item-link>Hexo 添加图片，音乐，链接，视频</a>\n<span class=archive-item-date title='2018-05-31 23:19:22'>05-31</span></article><article class=archive-item><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=archive-item-link>猴子与哪吒</a>\n<span class=archive-item-date title='2018-05-31 10:09:15'>05-31</span></article><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>博客构建档（HTML & Markdown）</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><article class=archive-item><a href=/posts/hello-world/ class=archive-item-link>Hello World</a>\n<span class=archive-item-date title='2018-05-28 20:01:01'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/14/>14</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</a>\n<span class=archive-item-date title='2024-09-13 02:36:29'>09-13</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>Hugo theme component for ATOM feed custom Output Format.</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>Hugo theme component for JSON feed custom Output Format.</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>Mobile devtools component powered by vConsole and eruda.</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>现代 CSS 解决方案：CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>A Hugo theme component with reward-log or sponsor-log shortcode.</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/posts/git-summary/ class=archive-item-link>Git 统计代码量</a>\n<span class=archive-item-date title='2024-07-17 16:06:08'>07-17</span></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>现代 CSS 解决方案之异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>🔖 Embed bookmark of FixIt Docs.</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><article class=archive-item><a href=/posts/d1fc0c7/ class=archive-item-link>探索 Amazon S3 的无限存储潜力</a>\n<span class=archive-item-date title='2024-07-07 13:54:14'>07-07</span></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>A Hugo theme component with caniuse shortcode.</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a>\n<span class=archive-item-date title='2024-06-09 02:24:31'>06-09</span></article><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><article class=archive-item><a href=/posts/404d6a2/ class=archive-item-link>坐高铁去柳州吃螺狮粉</a>\n<span class=archive-item-date title='2024-05-20 11:41:03'>05-20</span></article><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title='2024-04-17 12:51:35'>04-17</span></article><article class=archive-item><a href=/projects/lruihao/vercel-gravatar/ class=archive-item-link>Gravatar Proxy powered by Vercel.</a>\n<span class=archive-item-date title='2024-04-17 01:37:06'>04-17</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/4/>4</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title='2024-04-04 13:23:37'>04-04</span></article><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title='2024-04-02 18:05:34'>04-02</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>🛠 Create awesome cover images for your blog posts quickly.</a>\n<span class=archive-item-date title='2024-03-28 06:14:16'>03-28</span></article><article class=archive-item><a href=/posts/c6bc2d5/ class=archive-item-link>写文档时英文标题什么时候要大写？</a>\n<span class=archive-item-date title='2024-03-26 12:23:44'>03-26</span></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a>\n<span class=archive-item-date title='2024-02-29 16:46:00'>02-29</span></article><article class=archive-item><a href=/posts/auto-sizes/ class=archive-item-link>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a>\n<span class=archive-item-date title='2024-02-21 10:00:13'>02-21</span></article><article class=archive-item><a href=/years/2023/ class=archive-item-link>2023 年度总结</a>\n<span class=archive-item-date title='2024-02-09 14:07:24'>02-09</span></article><article class=archive-item><a href=/projects/lruihao/kityminder-core/ class=archive-item-link>强大的脑图可视化工具</a>\n<span class=archive-item-date title='2024-01-21 06:24:42'>01-21</span></article><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article><article class=archive-item><a href=/posts/20b75e9/ class=archive-item-link>为什么很多教程中都有 Foo Bar？</a>\n<span class=archive-item-date title='2024-01-17 09:58:58'>01-17</span></article><article class=archive-item><a href=/posts/6550187/ class=archive-item-link>Git Submodule: Already Exists in the Index</a>\n<span class=archive-item-date title='2024-01-11 10:30:04'>01-11</span></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a>\n<span class=archive-item-date title='2024-01-10 17:06:54'>01-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/d8ae205/ class=archive-item-link>尝试在 Python 中使用 Amazon Titan 文本模型</a>\n<span class=archive-item-date title='2023-12-22 19:58:47'>12-22</span></article><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title='2023-11-28 10:48:07'>11-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>🛠️ A node-based tooling for FixIt site initialization.</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article><article class=archive-item><a href=/posts/aws-solution/ class=archive-item-link>探索 AWS 云上一站式解决方案免费使用</a>\n<span class=archive-item-date title='2023-11-18 12:52:37'>11-18</span></article><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a>\n<span class=archive-item-date title='2023-10-22 18:59:31'>10-22</span></article><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/5/>5</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/4/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a>\n<span class=archive-item-date title='2023-10-08 09:52:44'>10-08</span></article><article class=archive-item><a href=/posts/article-structure/ class=archive-item-link>写作技巧：如何搭建文章的框架结构？</a>\n<span class=archive-item-date title='2023-09-26 15:17:52'>09-26</span></article><article class=archive-item><a href=/projects/el-table-sticky/ class=archive-item-link>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a>\n<span class=archive-item-date title='2023-09-25 17:49:58'>09-25</span></article><article class=archive-item><a href=/posts/vue-fullscreen-toggler/ class=archive-item-link>封装 Vue FullScreenToggler 组件</a>\n<span class=archive-item-date title='2023-09-17 19:44:07'>09-17</span></article><article class=archive-item><a href=/posts/js-fullscreen/ class=archive-item-link>JS 实现全屏和退出全屏</a>\n<span class=archive-item-date title='2023-09-15 17:29:25'>09-15</span></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a>\n<span class=archive-item-date title='2023-09-15 11:07:56'>09-15</span></article><article class=archive-item><a href=/posts/vue-svg-icon/ class=archive-item-link>在 Vue 项目中更优雅地使用 Icon</a>\n<span class=archive-item-date title='2023-09-14 11:24:48'>09-14</span></article><article class=archive-item><a href=/posts/vscode-snippets/ class=archive-item-link>VSCode 添加用户代码片段，自定义用户代码片段</a>\n<span class=archive-item-date title='2023-09-14 11:21:56'>09-14</span></article><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a>\n<span class=archive-item-date title='2023-09-02 10:05:44'>09-02</span></article><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到亚马逊云服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Vue2 and element-ui related demos</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/posts/el-backtop-fix/ class=archive-item-link>用魔法打败魔法 - ElBacktop Fix</a>\n<span class=archive-item-date title='2023-07-20 11:08:18'>07-20</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/3/>3</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/6/>6</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/5/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article><article class=archive-item><a href=/posts/vue2-guid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a>\n<span class=archive-item-date title='2023-03-14 08:37:59'>03-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><article class=archive-item><a href=/posts/document-style-guide/ class=archive-item-link>中文技术文档的写作规范</a>\n<span class=archive-item-date title='2023-02-04 16:04:42'>02-04</span></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a>\n<span class=archive-item-date title='2023-01-11 11:16:02'>01-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/years/2022/ class=archive-item-link>2022 年度总结</a>\n<span class=archive-item-date title='2022-12-17 01:01:30'>12-17</span></article><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-shell/ class=archive-item-link>Using frequently-used Hugo commands by shell.</a>\n<span class=archive-item-date title='2022-09-04 04:18:42'>09-04</span></article><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a>\n<span class=archive-item-date title='2022-08-31 09:32:44'>08-31</span></article><article class=archive-item><a href=/posts/semver/ class=archive-item-link>语义版本控制（SemVer）</a>\n<span class=archive-item-date title='2022-08-13 13:32:03'>08-13</span></article><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a>\n<span class=archive-item-date title='2022-08-12 15:37:44'>08-12</span></article><article class=archive-item><a href=/posts/electron-summary/ class=archive-item-link>Electron 踩坑总结</a>\n<span class=archive-item-date title='2022-08-12 11:22:01'>08-12</span></article><article class=archive-item><a href=/posts/encryption-fe/ class=archive-item-link>前端页面内容加密总结</a>\n<span class=archive-item-date title='2022-08-08 13:49:22'>08-08</span></article><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/4/>4</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/7/>7</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/6/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/newline/ class=archive-item-link>不同系统的换行符的差异</a>\n<span class=archive-item-date title='2022-08-07 00:10:30'>08-07</span></article><article class=archive-item><a href=/posts/ohmyzsh-custom/ class=archive-item-link>自定义 Ohmyzsh 主题</a>\n<span class=archive-item-date title='2022-07-31 13:54:14'>07-31</span></article><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>📄 The open-source repo for fixit.lruihao.cn</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><article class=archive-item><a href=/posts/adb-for-mac/ class=archive-item-link>Mac 配置 ADB</a>\n<span class=archive-item-date title='2022-07-05 15:39:34'>07-05</span></article><article class=archive-item><a href=/posts/js-rediscover/ class=archive-item-link>重新认识 JavaScript</a>\n<span class=archive-item-date title='2022-05-01 10:59:36'>05-01</span></article><article class=archive-item><a href=/posts/css-scss-var/ class=archive-item-link>关于 CSS 和 Scss 变量运算那些事</a>\n<span class=archive-item-date title='2022-04-30 22:04:29'>04-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/gtd/ class=archive-item-link>Getting Things Done for Ios App Reminders and Github Issues</a>\n<span class=archive-item-date title='2021-12-22 20:17:42'>12-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/posts/subl_imgpaste2/ class=archive-item-link>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a>\n<span class=archive-item-date title='2021-10-05 21:54:06'>10-05</span></article><article class=archive-item><a href=/posts/hugo-cardlink/ class=archive-item-link>Hugo 添加知乎卡片式链接 Shortcodes</a>\n<span class=archive-item-date title='2021-10-05 19:33:13'>10-05</span></article><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article><article class=archive-item><a href=/posts/hugo-friends/ class=archive-item-link>Hugo 友情連結模板</a>\n<span class=archive-item-date title='2021-10-05 14:14:10'>10-05</span></article><article class=archive-item><a href=/posts/hugo-admin/ class=archive-item-link>Hugo 本地管理 Shell 腳本</a>\n<span class=archive-item-date title='2021-10-04 23:49:00'>10-04</span></article><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao's Note</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article><article class=archive-item><a href=/posts/lightbox/ class=archive-item-link>Lightbox</a>\n<span class=archive-item-date title='2021-06-21 16:18:04'>06-21</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/5/>5</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/8/>8</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/7/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/years/2020-2021/ class=archive-item-link>2020&amp;2021 總結</a>\n<span class=archive-item-date title='2021-06-21 10:17:38'>06-21</span></article><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Create watermark for webpage and automatic adjust when window resize.</a>\n<span class=archive-item-date title='2021-05-24 13:05:40'>05-24</span></article><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title='2021-05-23 17:15:41'>05-23</span></article><article class=archive-item><a href=/posts/codereview/ class=archive-item-link>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a>\n<span class=archive-item-date title='2021-03-04 21:04:18'>03-04</span></article><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article><article class=archive-item><a href=/me/whysmoke/ class=archive-item-link>你为什么吸烟？</a>\n<span class=archive-item-date title='2021-03-01 01:27:41'>03-01</span></article><article class=archive-item><a href=/projects/lruihao/bill-note/ class=archive-item-link>基于 leancloud-storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-02-28 03:44:09'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>基于 Laravel 7 开发，支持 Markdown 语法的博客</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a>\n<span class=archive-item-date title='2020-03-26 11:08:38'>03-26</span></article><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><article class=archive-item><a href=/years/2019/ class=archive-item-link>2019 年度总结</a>\n<span class=archive-item-date title='2020-01-16 20:01:22'>01-16</span></article><article class=archive-item><a href=/posts/sql/ class=archive-item-link>SQL 总结</a>\n<span class=archive-item-date title='2020-01-16 19:28:05'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article><article class=archive-item><a href=/projects/lruihao/cos-album/ class=archive-item-link>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</a>\n<span class=archive-item-date title='2019-11-23 12:59:05'>11-23</span></article><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article><article class=archive-item><a href=/posts/phppushurl/ class=archive-item-link>Php 同时主动推送链接到百度，神马等站长平台</a>\n<span class=archive-item-date title='2019-09-28 18:32:42'>09-28</span></article><article class=archive-item><a href=/posts/phpfile/ class=archive-item-link>Php 按行读取文件信息</a>\n<span class=archive-item-date title='2019-09-28 17:11:17'>09-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/6/>6</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/9/>9</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/8/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/mmt/ class=archive-item-link>沐目之，湘也。— 沐目体</a>\n<span class=archive-item-date title='2019-09-26 12:44:17'>09-26</span></article><article class=archive-item><a href=/posts/site-time/ class=archive-item-link>设置网站运行时间</a>\n<span class=archive-item-date title='2019-09-19 22:03:29'>09-19</span></article><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article><article class=archive-item><a href=/posts/sublime-text3/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Sublime Text3 快捷键大全</a>\n<span class=archive-item-date title='2019-08-15 20:59:10'>08-15</span></article><article class=archive-item><a href=/posts/netbeans/ class=archive-item-link>NetBeans IDE 开发设置</a>\n<span class=archive-item-date title='2019-08-15 18:36:15'>08-15</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/phpform/ class=archive-item-link>简单评论模块--Php 表单练习</a>\n<span class=archive-item-date title='2019-07-19 11:38:59'>07-19</span></article><article class=archive-item><a href=/posts/phpfunc/ class=archive-item-link>Php 函数学习</a>\n<span class=archive-item-date title='2019-07-15 11:37:33'>07-15</span></article><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/pysx2/ class=archive-item-link>Python 实训总结Ⅱ</a>\n<span class=archive-item-date title='2019-06-21 18:46:41'>06-21</span></article><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a>\n<span class=archive-item-date title='2019-06-18 18:41:00'>06-18</span></article><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a>\n<span class=archive-item-date title='2019-05-26 18:50:53'>05-26</span></article><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><article class=archive-item><a href=/posts/imgurl/ class=archive-item-link>宝塔面板安装 ImgURL 图床</a>\n<span class=archive-item-date title='2019-05-16 20:31:33'>05-16</span></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/ifzhushi/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a>\n<span class=archive-item-date title='2019-05-10 13:08:27'>05-10</span></article><article class=archive-item><a href=/posts/pysettime/ class=archive-item-link>Python 设置程序每天 8 点定时执行任务</a>\n<span class=archive-item-date title='2019-05-09 23:26:54'>05-09</span></article><article class=archive-item><a href=/posts/pyinstallererror/ class=archive-item-link>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a>\n<span class=archive-item-date title='2019-05-09 19:05:01'>05-09</span></article><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/7/>7</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/10/>10</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "archives/page/9/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>归档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/archives/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/archives/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/archives\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item active has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/archives/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-box-archive me-1\" aria-hidden=true></i>归档 <sup>297</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 271930 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 271.93K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article><article class=archive-item><a href=/posts/posttest/ class=archive-item-link>Python 发送 Post 请求进行简单的接口测试</a>\n<span class=archive-item-date title='2019-05-07 18:17:05'>05-07</span></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a>\n<span class=archive-item-date title='2019-05-06 17:41:35'>05-06</span></article><article class=archive-item><a href=/posts/byteio/ class=archive-item-link>文件加密解密（字节流）</a>\n<span class=archive-item-date title='2019-05-02 23:04:32'>05-02</span></article><article class=archive-item><a href=/posts/javaexception/ class=archive-item-link>模拟借书系统（java 异常练习）</a>\n<span class=archive-item-date title='2019-05-01 16:52:21'>05-01</span></article><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/1thintervivew/ class=archive-item-link>第一次面试经历</a>\n<span class=archive-item-date title='2019-04-24 21:23:22'>04-24</span></article><article class=archive-item><a href=/posts/mmtimgpy/ class=archive-item-link>Python 爬取网站图片（图片链接相似）</a>\n<span class=archive-item-date title='2019-04-22 12:46:34'>04-22</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article><article class=archive-item><a href=/posts/hellojava/ class=archive-item-link>用记事本编写第一个 Java 程序</a>\n<span class=archive-item-date title='2019-04-19 19:49:54'>04-19</span></article><article class=archive-item><a href=/posts/java-regex/ class=archive-item-link>Java 正则表达式练习</a>\n<span class=archive-item-date title='2019-04-18 22:04:21'>04-18</span></article><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/ms-html-css/ class=archive-item-link>前端面试题 - HTML+CSS</a>\n<span class=archive-item-date title='2019-03-30 22:58:39'>03-30</span></article><article class=archive-item><a href=/posts/bqbj/ class=archive-item-link>百钱百鸡（枚举法）</a>\n<span class=archive-item-date title='2019-03-30 10:13:33'>03-30</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/archives/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/8/>8</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/archives/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/archives/page/11/>11</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/archives/page/15/>15</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/archives/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "baidu_urls.txt",
    "content": "https://lruihao.cn/projects/lruihao/cell-tooltip/\nhttps://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\nhttps://lruihao.cn/projects/lruihao/auto-changelog-plus/\nhttps://lruihao.cn/posts/mermaid-theming/\nhttps://lruihao.cn/posts/wc-01-prologue/\nhttps://lruihao.cn/posts/code-playground/\nhttps://lruihao.cn/projects/lruihao/caniuse-embed-element/\nhttps://lruihao.cn/projects/lruihao/json-viewer-element/\nhttps://lruihao.cn/posts/at-layer/\nhttps://lruihao.cn/posts/vue-build/\nhttps://lruihao.cn/projects/lruihao/mmt-webfont/\nhttps://lruihao.cn/projects/lruihao/vercel-proxy/\nhttps://lruihao.cn/posts/flexbox/\nhttps://lruihao.cn/projects/hugo-fixit/action-component-list/\nhttps://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\nhttps://lruihao.cn/posts/css-viewport/\nhttps://lruihao.cn/projects/hugo-fixit/cmpt-translate/\nhttps://lruihao.cn/search/\nhttps://lruihao.cn/posts/91db0fa/\nhttps://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\nhttps://lruihao.cn/posts/content-adapters/\nhttps://lruihao.cn/projects/lruihao/html-demo/\nhttps://lruihao.cn/projects/hugo-fixit/fixit-releaser/\nhttps://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\nhttps://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\nhttps://lruihao.cn/reward/\nhttps://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\nhttps://lruihao.cn/posts/css-round/\nhttps://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\nhttps://lruihao.cn/posts/git-summary/\nhttps://lruihao.cn/posts/drop-shadow/\nhttps://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\nhttps://lruihao.cn/posts/fixit-docs-bookmark/\nhttps://lruihao.cn/posts/d1fc0c7/\nhttps://lruihao.cn/posts/scrollbar-styling/\nhttps://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\nhttps://lruihao.cn/posts/aside-toggle-drag/\nhttps://lruihao.cn/posts/design-principles/\nhttps://lruihao.cn/posts/svg-dark-light/\nhttps://lruihao.cn/posts/404d6a2/\nhttps://lruihao.cn/projects/vercel-gravatar/\nhttps://lruihao.cn/projects/lruihao/vercel-gravatar/\nhttps://lruihao.cn/projects/hugo-fixit/component-projects/\nhttps://lruihao.cn/projects/apple-devices-preview/\nhttps://lruihao.cn/projects/coverview/\nhttps://lruihao.cn/projects/lruihao/coverview/\nhttps://lruihao.cn/posts/c6bc2d5/\nhttps://lruihao.cn/posts/overflow-tooltip/\nhttps://lruihao.cn/posts/auto-sizes/\nhttps://lruihao.cn/years/2023/\nhttps://lruihao.cn/projects/lruihao/kityminder-core/\nhttps://lruihao.cn/posts/900d5e4/\nhttps://lruihao.cn/posts/20b75e9/\nhttps://lruihao.cn/posts/6550187/\nhttps://lruihao.cn/posts/el-card-collapse/\nhttps://lruihao.cn/posts/d8ae205/\nhttps://lruihao.cn/projects/fixit-cli/\nhttps://lruihao.cn/projects/hugo-fixit/fixit-cli/\nhttps://lruihao.cn/posts/aws-solution/\nhttps://lruihao.cn/posts/ssh-sign/\nhttps://lruihao.cn/posts/patch-package/\nhttps://lruihao.cn/posts/dashboard-summary/\nhttps://lruihao.cn/posts/dashborad-widget-usage/\nhttps://lruihao.cn/posts/dashborad-template-usage/\nhttps://lruihao.cn/posts/dashborad-widget-docs/\nhttps://lruihao.cn/posts/dashborad-template-docs/\nhttps://lruihao.cn/posts/dashboard-analysis/\nhttps://lruihao.cn/posts/markdownlint/\nhttps://lruihao.cn/posts/cognitive-complexity/\nhttps://lruihao.cn/posts/article-structure/\nhttps://lruihao.cn/projects/el-table-sticky/\nhttps://lruihao.cn/posts/vue-fullscreen-toggler/\nhttps://lruihao.cn/posts/js-fullscreen/\nhttps://lruihao.cn/posts/translation-guide/\nhttps://lruihao.cn/posts/vue-svg-icon/\nhttps://lruihao.cn/posts/vscode-snippets/\nhttps://lruihao.cn/posts/grid-bg-image/\nhttps://lruihao.cn/posts/aws-ec2/\nhttps://lruihao.cn/projects/lruihao/vue-el-demo/\nhttps://lruihao.cn/posts/el-backtop-fix/\nhttps://lruihao.cn/projects/lruihao/el-table-sticky/\nhttps://lruihao.cn/posts/gen-router/\nhttps://lruihao.cn/posts/sourcetree-husky/\nhttps://lruihao.cn/posts/v2-tailwind/\nhttps://lruihao.cn/posts/vue2-guid/\nhttps://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\nhttps://lruihao.cn/posts/native-img-loading-lazy/\nhttps://lruihao.cn/posts/browser-rendering/\nhttps://lruihao.cn/posts/document-style-guide/\nhttps://lruihao.cn/posts/event-loop/\nhttps://lruihao.cn/years/2022/\nhttps://lruihao.cn/posts/homebrew-npm/\nhttps://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\nhttps://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\nhttps://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\nhttps://lruihao.cn/projects/hugo-fixit/hugo-shell/\nhttps://lruihao.cn/posts/beego-install/\nhttps://lruihao.cn/posts/semver/\nhttps://lruihao.cn/posts/commit-spec/\nhttps://lruihao.cn/posts/electron-summary/\nhttps://lruihao.cn/posts/encryption-fe/\nhttps://lruihao.cn/posts/qcloudcdn/\nhttps://lruihao.cn/posts/newline/\nhttps://lruihao.cn/posts/ohmyzsh-custom/\nhttps://lruihao.cn/posts/linux-permission/\nhttps://lruihao.cn/posts/config4mac/\nhttps://lruihao.cn/projects/hugo-fixit/docs/\nhttps://lruihao.cn/posts/adb-for-mac/\nhttps://lruihao.cn/posts/js-rediscover/\nhttps://lruihao.cn/posts/css-scss-var/\nhttps://lruihao.cn/posts/gtd/\nhttps://lruihao.cn/projects/hugo-fixit/fixit/\nhttps://lruihao.cn/posts/subl_imgpaste2/\nhttps://lruihao.cn/posts/hugo-cardlink/\nhttps://lruihao.cn/posts/hugo-i18n-zh-tw/\nhttps://lruihao.cn/posts/hugo-friends/\nhttps://lruihao.cn/posts/hugo-admin/\nhttps://lruihao.cn/posts/github-actions/\nhttps://lruihao.cn/posts/hexo-to-hugo/\nhttps://lruihao.cn/friends/\nhttps://lruihao.cn/guestbook/\nhttps://lruihao.cn/projects/lruihao/hugo-blog/\nhttps://lruihao.cn/about/\nhttps://lruihao.cn/posts/less-sass-scss/\nhttps://lruihao.cn/posts/lightbox/\nhttps://lruihao.cn/years/2020-2021/\nhttps://lruihao.cn/projects/lruihao/watermark/\nhttps://lruihao.cn/projects/cell-watermark/\nhttps://lruihao.cn/posts/codereview/\nhttps://lruihao.cn/projects/bill-note/\nhttps://lruihao.cn/me/whysmoke/\nhttps://lruihao.cn/projects/lruihao/bill-note/\nhttps://lruihao.cn/projects/cell-blog/\nhttps://lruihao.cn/posts/cell-blog-dev/\nhttps://lruihao.cn/projects/lruihao/cell-blog/\nhttps://lruihao.cn/posts/csdnvisiter/\nhttps://lruihao.cn/posts/cron/\nhttps://lruihao.cn/posts/daka/\nhttps://lruihao.cn/years/2019/\nhttps://lruihao.cn/posts/sql/\nhttps://lruihao.cn/projects/cos-album/\nhttps://lruihao.cn/projects/lruihao/cos-album/\nhttps://lruihao.cn/posts/restful/\nhttps://lruihao.cn/posts/phppushurl/\nhttps://lruihao.cn/posts/phpfile/\nhttps://lruihao.cn/projects/lruihao/mmt/\nhttps://lruihao.cn/posts/site-time/\nhttps://lruihao.cn/posts/async-defer/\nhttps://lruihao.cn/posts/sublime-text3/\nhttps://lruihao.cn/posts/netbeans/\nhttps://lruihao.cn/posts/dev-rules/\nhttps://lruihao.cn/posts/phpform/\nhttps://lruihao.cn/posts/phpfunc/\nhttps://lruihao.cn/posts/wamproot/\nhttps://lruihao.cn/posts/pysx2/\nhttps://lruihao.cn/posts/pysx1/\nhttps://lruihao.cn/posts/judgetriangle/\nhttps://lruihao.cn/posts/hustoj/\nhttps://lruihao.cn/posts/gcd-bit/\nhttps://lruihao.cn/posts/imgurl/\nhttps://lruihao.cn/posts/mx2wx/\nhttps://lruihao.cn/posts/ifzhushi/\nhttps://lruihao.cn/posts/pysettime/\nhttps://lruihao.cn/posts/pyinstallererror/\nhttps://lruihao.cn/posts/singlethreaddown/\nhttps://lruihao.cn/posts/jsoninfo/\nhttps://lruihao.cn/posts/posttest/\nhttps://lruihao.cn/posts/java-urlreader/\nhttps://lruihao.cn/posts/byteio/\nhttps://lruihao.cn/posts/javaexception/\nhttps://lruihao.cn/posts/qrcode/\nhttps://lruihao.cn/posts/1thintervivew/\nhttps://lruihao.cn/posts/mmtimgpy/\nhttps://lruihao.cn/posts/wxpy1/\nhttps://lruihao.cn/posts/wximgpy/\nhttps://lruihao.cn/posts/hellojava/\nhttps://lruihao.cn/posts/java-regex/\nhttps://lruihao.cn/posts/stringbuffer/\nhttps://lruihao.cn/posts/hdu1009/\nhttps://lruihao.cn/posts/ngrok/\nhttps://lruihao.cn/posts/ms-html-css/\nhttps://lruihao.cn/posts/bqbj/\nhttps://lruihao.cn/posts/dacheng/\nhttps://lruihao.cn/posts/http2https/\nhttps://lruihao.cn/posts/hexo-theme-next/\nhttps://lruihao.cn/posts/substatus/\nhttps://lruihao.cn/posts/windefault/\nhttps://lruihao.cn/posts/player/\nhttps://lruihao.cn/posts/bt/\nhttps://lruihao.cn/posts/webbiji/\nhttps://lruihao.cn/posts/fanxing/\nhttps://lruihao.cn/posts/eclipseuse/\nhttps://lruihao.cn/posts/qframe/\nhttps://lruihao.cn/posts/linkcard/\nhttps://lruihao.cn/posts/ubuntutime/\nhttps://lruihao.cn/posts/qqxml/\nhttps://lruihao.cn/posts/cipanadmin/\nhttps://lruihao.cn/posts/js-vcode/\nhttps://lruihao.cn/posts/renative/\nhttps://lruihao.cn/projects/lruihao/hexo-theme-next/\nhttps://lruihao.cn/posts/jicheng/\nhttps://lruihao.cn/posts/cos-hexo/\nhttps://lruihao.cn/posts/java-arrays/\nhttps://lruihao.cn/posts/recent-posts/\nhttps://lruihao.cn/posts/mathclass/\nhttps://lruihao.cn/posts/duixiang/\nhttps://lruihao.cn/posts/java-range/\nhttps://lruihao.cn/posts/java-input/\nhttps://lruihao.cn/posts/biaoshi/\nhttps://lruihao.cn/posts/subject-verb/\nhttps://lruihao.cn/years/2018/\nhttps://lruihao.cn/posts/inversion-3/\nhttps://lruihao.cn/posts/inversion-2/\nhttps://lruihao.cn/posts/inversion-1/\nhttps://lruihao.cn/posts/nextplugin/\nhttps://lruihao.cn/posts/commit-bat/\nhttps://lruihao.cn/posts/fas-app/\nhttps://lruihao.cn/posts/caddy-file/\nhttps://lruihao.cn/posts/next-pdf/\nhttps://lruihao.cn/posts/js-device/\nhttps://lruihao.cn/posts/blog-backup/\nhttps://lruihao.cn/posts/git/\nhttps://lruihao.cn/posts/beian/\nhttps://lruihao.cn/posts/shell/\nhttps://lruihao.cn/posts/web-server-yun/\nhttps://lruihao.cn/posts/href-301/\nhttps://lruihao.cn/posts/web-server-win/\nhttps://lruihao.cn/posts/gituse/\nhttps://lruihao.cn/posts/termux1/\nhttps://lruihao.cn/posts/web-font/\nhttps://lruihao.cn/posts/linux-hello-c/\nhttps://lruihao.cn/projects/font-mmt/\nhttps://lruihao.cn/posts/liushuixian/\nhttps://lruihao.cn/posts/data/\nhttps://lruihao.cn/posts/night/\nhttps://lruihao.cn/posts/crash-cheat/\nhttps://lruihao.cn/posts/linux-git/\nhttps://lruihao.cn/posts/mood/\nhttps://lruihao.cn/posts/vim/\nhttps://lruihao.cn/posts/hexo-wordcount/\nhttps://lruihao.cn/posts/hexo-d-error/\nhttps://lruihao.cn/posts/dongtaisub/\nhttps://lruihao.cn/posts/heart/\nhttps://lruihao.cn/posts/git-index-lock/\nhttps://lruihao.cn/posts/termux/\nhttps://lruihao.cn/posts/nowcoder157a/\nhttps://lruihao.cn/posts/codeforces476a/\nhttps://lruihao.cn/posts/codeforces476b/\nhttps://lruihao.cn/posts/euclid/\nhttps://lruihao.cn/posts/lightoj1282/\nhttps://lruihao.cn/posts/cfcontest1017/\nhttps://lruihao.cn/posts/euler/\nhttps://lruihao.cn/posts/poj1797/\nhttps://lruihao.cn/posts/console-log/\nhttps://lruihao.cn/posts/poj2387/\nhttps://lruihao.cn/posts/zuiduanlu/\nhttps://lruihao.cn/posts/nowcodersummer-5th/\nhttps://lruihao.cn/posts/poj1182/\nhttps://lruihao.cn/posts/hdu1272/\nhttps://lruihao.cn/posts/hdu3038/\nhttps://lruihao.cn/posts/codeforces680b/\nhttps://lruihao.cn/posts/codeforces680a/\nhttps://lruihao.cn/posts/how-tables/\nhttps://lruihao.cn/posts/poj-1611/\nhttps://lruihao.cn/posts/poj-2236/\nhttps://lruihao.cn/posts/piles-with-stones/\nhttps://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\nhttps://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\nhttps://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\nhttps://lruihao.cn/posts/hdu-1495/\nhttps://lruihao.cn/posts/hdu-2612/\nhttps://lruihao.cn/posts/poj-3278/\nhttps://lruihao.cn/posts/poj-2251/\nhttps://lruihao.cn/posts/poj-1321/\nhttps://lruihao.cn/posts/poj-1426/\nhttps://lruihao.cn/posts/adjacent-replacements/\nhttps://lruihao.cn/posts/poj-3984/\nhttps://lruihao.cn/posts/wannafly-20/\nhttps://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\nhttps://lruihao.cn/posts/hdu-1241/\nhttps://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\nhttps://lruihao.cn/posts/cf-1009/\nhttps://lruihao.cn/posts/dfs_bfs/\nhttps://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\nhttps://lruihao.cn/posts/wannafly-18/\nhttps://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\nhttps://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\nhttps://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\nhttps://lruihao.cn/posts/f-sorting/\nhttps://lruihao.cn/posts/k-2018/\nhttps://lruihao.cn/posts/b-higher/\nhttps://lruihao.cn/posts/a-easy/\nhttps://lruihao.cn/posts/c-sort/\nhttps://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\nhttps://lruihao.cn/posts/c-with-stl/\nhttps://lruihao.cn/posts/links/\nhttps://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\nhttps://lruihao.cn/posts/hexobuild/\nhttps://lruihao.cn/posts/hexowrite/\nhttps://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\nhttps://lruihao.cn/projects/lruihao/lruihao.github.io/\nhttps://lruihao.cn/posts/hello-world/\n"
  },
  {
    "path": "browserconfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<browserconfig>\n    <msapplication>\n        <tile>\n            <square150x150logo src=\"/mstile-150x150.png\"/>\n            <TileColor>#2b5797</TileColor>\n        </tile>\n    </msapplication>\n</browserconfig>\n"
  },
  {
    "path": "categories/acm/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ACM - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"},{\"title\":\"百钱百鸡（枚举法）\",\"date_published\":\"2019-03-30T10:13:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bqbj/\",\"url\":\"https://lruihao.cn/posts/bqbj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"最短路入门\",\"date_published\":\"2018-08-03T16:27:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/zuiduanlu/\",\"url\":\"https://lruihao.cn/posts/zuiduanlu/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"最短路\",\"ACM\"],\"summary\":\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"dijkstra-算法\\\"\\u003e\\u003cspan\\u003e1 Dijkstra 算法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#dijkstra-%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"1-定义概览\\\"\\u003e\\u003cspan\\u003e1.1 1. 定义概览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\u003c/p\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"杨辉三角\",\"date_published\":\"2018-07-22T11:41:15&#43;08:00\",\"date_modified\":\"2021-09-26T12:04:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"url\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"杨辉三角\"],\"summary\":\"百度知道 1\\n1 1\\n1 2 1\\n1 3 3 1\\n1 4 6 4 1\\n1 5 10 10 5 1\\n1 6 15 20 15 6 1\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://zhidao.baidu.com/question/367384574464313844.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百度知道\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n1\\u003c/p\\u003e\\n\\u003cp\\u003e1 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 2 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 3 3 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 4 6 4 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 5 10 10 5 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 6 15 20 15 6 1\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"简单背包\",\"date_published\":\"2018-06-16T13:18:43&#43;08:00\",\"date_modified\":\"2018-06-16T13:18:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"url\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"C\"],\"summary\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！\\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ccode\\u003e弱鸡还是弱鸡啊最简单的背包问题——。——！\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e5 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"date_published\":\"2018-06-15T07:51:21&#43;08:00\",\"date_modified\":\"2018-06-15T07:51:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"summary\":\" 来自一位大佬的演讲\\n尊敬的领导、教练，亲爱的参赛选手们：\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e来自一位大佬的演讲\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e尊敬的领导、教练，亲爱的参赛选手们：\\u003cbr\\u003e\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\u003cbr\\u003e\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\u003cbr\\u003e\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\u003cbr\\u003e\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\u003cbr\\u003e\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\u003cbr\\u003e\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\u003c/p\\u003e\"},{\"title\":\"F.sorting\",\"date_published\":\"2018-06-14T22:49:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/f-sorting/\",\"url\":\"https://lruihao.cn/posts/f-sorting/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"summary\":\"\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" title=\\\"sorting.png\\\" data-thumbnail=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" data-sub-html=\\\"\\u003ch2\\u003esorting.png\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\\\"sorting.png\\\" height=\\\"697\\\" width=\\\"1049\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/acm/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ACM - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ACM\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ACM\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ACM\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/acm/ title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/acm/index.xml title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ACM</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>ACM <sup>50</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article><article class=archive-item><a href=/posts/bqbj/ class=archive-item-link>百钱百鸡（枚举法）</a>\n<span class=archive-item-date title='2019-03-30 10:13:33'>03-30</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/zuiduanlu/ class=archive-item-link>最短路入门</a>\n<span class=archive-item-date title='2018-08-03 16:27:16'>08-03</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/categories/acm/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/acm/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/acm/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ACM - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/acm/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Oct 2024 13:35:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/acm/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>HDU 1009 FatMouse' Trade（贪心）</title><link>https://lruihao.cn/posts/hdu1009/</link><pubDate>Fri, 12 Apr 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;7 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。&lt;/p&gt;</description></item><item><title>百钱百鸡（枚举法）</title><link>https://lruihao.cn/posts/bqbj/</link><pubDate>Sat, 30 Mar 2019 10:13:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bqbj/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>最短路入门</title><link>https://lruihao.cn/posts/zuiduanlu/</link><pubDate>Fri, 03 Aug 2018 16:27:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/zuiduanlu/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"dijkstra-算法\"&gt;&lt;span&gt;1 Dijkstra 算法&lt;/span&gt;\n &lt;a href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"1-定义概览\"&gt;&lt;span&gt;1.1 1. 定义概览&lt;/span&gt;\n &lt;a href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。&lt;/p&gt;</description></item><item><title>牛客暑假多校第五场</title><link>https://lruihao.cn/posts/nowcodersummer-5th/</link><pubDate>Thu, 02 Aug 2018 21:27:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcodersummer-5th/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接 密码：l9sn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多&lt;/p&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bear and Finding Criminals-Codeforces680B</title><link>https://lruihao.cn/posts/codeforces680b/</link><pubDate>Tue, 31 Jul 2018 19:32:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里&lt;strong&gt;一定&lt;/strong&gt;有罪犯。&lt;/p&gt;\n&lt;p&gt;一定能确定该城市有小偷的几种情况：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市有罪犯，则一定能检测到&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市的左边和右边位置若&lt;strong&gt;都&lt;/strong&gt;不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Bear and Five Cards-Codeforces680A</title><link>https://lruihao.cn/posts/codeforces680a/</link><pubDate>Tue, 31 Jul 2018 19:22:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>Piles-with-stones</title><link>https://lruihao.cn/posts/piles-with-stones/</link><pubDate>Tue, 31 Jul 2018 11:09:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/piles-with-stones/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Codeforces Round #500 (Div. 2)&lt;br&gt;\n题目链接：&lt;a href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles With Stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>Adjacent Replacements</title><link>https://lruihao.cn/posts/adjacent-replacements/</link><pubDate>Sun, 22 Jul 2018 11:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adjacent-replacements/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;第一次打 cf 就做出一道这样的找规律的题，打到自闭。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin&amp;gt;&amp;gt;n;\n int i;\n int flag=0;\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;){\n cin&amp;gt;&amp;gt;a[i];\n if(!(a[i]&amp;amp;1)) a[i]--;\n if(!flag) {cout&amp;lt;&amp;lt;a[i];flag=1;}\n else cout&amp;lt;&amp;lt;&amp;#34; &amp;#34;&amp;lt;&amp;lt;a[i];\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>杨辉三角</title><link>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</link><pubDate>Sun, 22 Jul 2018 11:41:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百度知道&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n1&lt;/p&gt;\n&lt;p&gt;1 1&lt;/p&gt;\n&lt;p&gt;1 2 1&lt;/p&gt;\n&lt;p&gt;1 3 3 1&lt;/p&gt;\n&lt;p&gt;1 4 6 4 1&lt;/p&gt;\n&lt;p&gt;1 5 10 10 5 1&lt;/p&gt;\n&lt;p&gt;1 6 15 20 15 6 1&lt;/p&gt;\n&lt;hr&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>BFS 求最短路</title><link>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><pubDate>Sun, 22 Jul 2018 11:31:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.&lt;br&gt;\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，&lt;br&gt;\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。&lt;/p&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item><item><title>TaoTao 要吃鸡</title><link>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</link><pubDate>Sun, 22 Jul 2018 10:55:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）&lt;br&gt;\n链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/74/B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;16 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item><item><title>简单背包</title><link>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</link><pubDate>Sat, 16 Jun 2018 13:18:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;code&gt;弱鸡还是弱鸡啊最简单的背包问题——。——！&lt;/code&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;7 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛参赛队员代表发言</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</link><pubDate>Fri, 15 Jun 2018 07:51:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;来自一位大佬的演讲&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;尊敬的领导、教练，亲爱的参赛选手们：&lt;br&gt;\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。&lt;br&gt;\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。&lt;br&gt;\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。&lt;br&gt;\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。&lt;br&gt;\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。&lt;br&gt;\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。&lt;/p&gt;</description></item><item><title>F.sorting</title><link>https://lruihao.cn/posts/f-sorting/</link><pubDate>Thu, 14 Jun 2018 22:49:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/f-sorting/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"&lt;h2&gt;sorting.png&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>K.2018</title><link>https://lruihao.cn/posts/k-2018/</link><pubDate>Thu, 14 Jun 2018 22:48:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/k-2018/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"k-2018\"&gt;&lt;span&gt;4 K. 2018&lt;/span&gt;\n &lt;a href=\"#k-2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item><item><title>A.Easy h-index</title><link>https://lruihao.cn/posts/a-easy/</link><pubDate>Thu, 14 Jun 2018 22:36:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/a-easy/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"a-easy-h-index\"&gt;&lt;span&gt;4 A. Easy h-index&lt;/span&gt;\n &lt;a href=\"#a-easy-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has published many papers. Given a0,a1,a2,&amp;hellip;,an which means Bobo has published ai papers with&lt;br&gt;\nitations exactly i, ﬁnd the h-index of Bobo.&lt;/p&gt;</description></item><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item><item><title>C++ with STL</title><link>https://lruihao.cn/posts/c-with-stl/</link><pubDate>Thu, 14 Jun 2018 20:22:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-with-stl/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"&gt;&lt;span&gt;25 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）&lt;/span&gt;\n &lt;a href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;交换两元素的值在 C 语言课上作为指针讲解的典例。&lt;/p&gt;\n&lt;p&gt;int a=1,b=2;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/acm/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/acm/</title><link rel=canonical href=https://lruihao.cn/categories/acm/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/acm/\"></head></html>"
  },
  {
    "path": "categories/acm/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ACM - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ACM\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ACM\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ACM\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/acm/ title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/acm/index.xml title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ACM</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>ACM <sup>50</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=archive-item-link>杨辉三角</a>\n<span class=archive-item-date title='2018-07-22 11:41:15'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/acm/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/acm/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/acm/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ACM - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ACM\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ACM\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ACM\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/acm/ title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/acm/index.xml title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/acm/feed.json title=\"ACM | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ACM</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>ACM <sup>50</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><article class=archive-item><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=archive-item-link>简单背包</a>\n<span class=archive-item-date title='2018-06-16 13:18:43'>06-16</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=archive-item-link>18 湘潭邀请赛参赛队员代表发言</a>\n<span class=archive-item-date title='2018-06-15 07:51:21'>06-15</span></article><article class=archive-item><a href=/posts/f-sorting/ class=archive-item-link>F.sorting</a>\n<span class=archive-item-date title='2018-06-14 22:49:27'>06-14</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/acm/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/acm/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/browser/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Browser - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"浏览器原理 - 事件循环\",\"date_published\":\"2023-01-11T11:16:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/event-loop/\",\"url\":\"https://lruihao.cn/posts/event-loop/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/event-loop/images/202208092131410.png\",\"summary\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\n\",\"content_html\":\"\\u003cp\\u003e最近在抖音上刷到很多次 \\u003ca href=\\\"http://yuanjin.tech/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e袁进老师\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/browser/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Browser - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Browser\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-05T21:02:52+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/browser/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Browser\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Browser\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/browser/ title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/browser/index.xml title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/browser/feed.json title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/browser/feed.json title=\"Browser | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/browser/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Browser</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Browser <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a>\n<span class=archive-item-date title='2023-01-11 11:16:02'>01-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/browser/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/browser/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Browser - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/browser/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/browser/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>浏览器原理 - 事件循环</title><link>https://lruihao.cn/posts/event-loop/</link><pubDate>Wed, 11 Jan 2023 11:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/event-loop/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;p&gt;最近在抖音上刷到很多次 &lt;a href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;袁进老师&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/browser/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/browser/</title><link rel=canonical href=https://lruihao.cn/categories/browser/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/browser/\"></head></html>"
  },
  {
    "path": "categories/css/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CSS - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"},{\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"date_published\":\"2025-06-18T10:35:47&#43;08:00\",\"date_modified\":\"2025-06-18T12:41:26&#43;08:00\",\"id\":\"https://lruihao.cn/posts/at-layer/\",\"url\":\"https://lruihao.cn/posts/at-layer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"@layer\"],\"summary\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\\n\",\"content_html\":\"\\u003cp\\u003e在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 \\u003ccode\\u003e@layer\\u003c/code\\u003e 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 \\u003ccode\\u003e@layer\\u003c/code\\u003e 的背景、作用以及语法，带你一探究竟。\\u003c/p\\u003e\"},{\"title\":\"CSS Flexbox 布局指南\",\"date_published\":\"2025-01-20T15:56:38&#43;08:00\",\"date_modified\":\"2025-01-20T17:49:35&#43;08:00\",\"id\":\"https://lruihao.cn/posts/flexbox/\",\"url\":\"https://lruihao.cn/posts/flexbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Flexbox\"],\"image\":\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\",\"summary\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\n\",\"content_html\":\"\\u003cp\\u003e本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\u003c/p\\u003e\"},{\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"date_published\":\"2024-12-06T10:32:22&#43;08:00\",\"date_modified\":\"2024-12-06T11:51:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-viewport/\",\"url\":\"https://lruihao.cn/posts/css-viewport/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\n\",\"content_html\":\"\\u003cp\\u003e在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"},{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"},{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"CSS 如何实现网格背景效果？\",\"date_published\":\"2023-09-02T10:05:44&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/grid-bg-image/\",\"url\":\"https://lruihao.cn/posts/grid-bg-image/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\\n15 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何使用 \\u003ccode\\u003elinear-gradient\\u003c/code\\u003e 、\\u003ccode\\u003ebackground-size\\u003c/code\\u003e 等属性来实现网格背景效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e15 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\u003c/p\\u003e\"},{\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"date_published\":\"2022-04-30T22:04:29&#43;08:00\",\"date_modified\":\"2024-07-14T17:09:39&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-scss-var/\",\"url\":\"https://lruihao.cn/posts/css-scss-var/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"summary\":\"7 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\\n造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题分析\\\"\\u003e\\u003cspan\\u003e7 问题分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e昨天在开发 FixIt 的时候，在 Scss 中写 \\u003ccode\\u003emax(foo, bar)\\u003c/code\\u003e 函数比较不同的单位变量时报错了，但是在 CSS 中使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数函数比较不同的单位变量是没有问题的。\\u003c/p\\u003e\\n\\u003cp\\u003e造成这一问题的原因是，在 Scss 中，也实现了 \\u003ccode\\u003emax\\u003c/code\\u003e 和 \\u003ccode\\u003emin\\u003c/code\\u003e 函数，但是在 Scss 中，\\u003cstrong\\u003e不同单位的变量是不能进行运算的\\u003c/strong\\u003e，所以使得在 Scss 中直接使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\u003c/p\\u003e\\n\\u003cp\\u003e知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\u003c/p\\u003e\"},{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/css/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CSS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/css/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CSS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/css/ title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/css/index.xml title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/css/feed.json title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/css/feed.json title=\"CSS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/css/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>CSS <sup>12</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a>\n<span class=archive-item-date title='2025-06-18 10:35:47'>06-18</span></article><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a>\n<span class=archive-item-date title='2025-01-20 15:56:38'>01-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-viewport/ class=archive-item-link>震惊！CSS 竟然能获取视口尺寸？</a>\n<span class=archive-item-date title='2024-12-06 10:32:22'>12-06</span></article><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a>\n<span class=archive-item-date title='2023-09-02 10:05:44'>09-02</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/css-scss-var/ class=archive-item-link>关于 CSS 和 Scss 变量运算那些事</a>\n<span class=archive-item-date title='2022-04-30 22:04:29'>04-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/css/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/css/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CSS - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/css/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/css/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item><item><title>CSS @layer：构建更高效、更可维护的样式层级</title><link>https://lruihao.cn/posts/at-layer/</link><pubDate>Wed, 18 Jun 2025 10:35:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/at-layer/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 &lt;code&gt;@layer&lt;/code&gt; 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 &lt;code&gt;@layer&lt;/code&gt; 的背景、作用以及语法，带你一探究竟。&lt;/p&gt;</description></item><item><title>CSS Flexbox 布局指南</title><link>https://lruihao.cn/posts/flexbox/</link><pubDate>Mon, 20 Jan 2025 15:56:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/flexbox/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。&lt;/p&gt;</description></item><item><title>震惊！CSS 竟然能获取视口尺寸？</title><link>https://lruihao.cn/posts/css-viewport/</link><pubDate>Fri, 06 Dec 2024 10:32:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-viewport/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案：CSS 四舍五入数值单位</title><link>https://lruihao.cn/posts/css-round/</link><pubDate>Mon, 29 Jul 2024 20:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-round/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍另外一个非常实用的 CSS 数学函数 - &lt;code&gt;round()&lt;/code&gt; 及其实际应用场景。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item><item><title>标准滚动条控制规范</title><link>https://lruihao.cn/posts/scrollbar-styling/</link><pubDate>Fri, 28 Jun 2024 22:29:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/scrollbar-styling/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;使用 &lt;code&gt;scrollbar-width&lt;/code&gt; 和 &lt;code&gt;scrollbar-color&lt;/code&gt; 属性设置滚动条的样式。&lt;/p&gt;</description></item><item><title>怎么生成暗黑模式和明亮模式的 SVG 图片？</title><link>https://lruihao.cn/posts/svg-dark-light/</link><pubDate>Thu, 06 Jun 2024 22:13:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/svg-dark-light/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。&lt;/p&gt;</description></item><item><title>CSS 如何实现网格背景效果？</title><link>https://lruihao.cn/posts/grid-bg-image/</link><pubDate>Sat, 02 Sep 2023 10:05:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/grid-bg-image/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍如何使用 &lt;code&gt;linear-gradient&lt;/code&gt; 、&lt;code&gt;background-size&lt;/code&gt; 等属性来实现网格背景效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;22 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。&lt;/p&gt;</description></item><item><title>关于 CSS 和 Scss 变量运算那些事</title><link>https://lruihao.cn/posts/css-scss-var/</link><pubDate>Sat, 30 Apr 2022 22:04:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-scss-var/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;h2 class=\"heading-element\" id=\"问题分析\"&gt;&lt;span&gt;10 问题分析&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;昨天在开发 FixIt 的时候，在 Scss 中写 &lt;code&gt;max(foo, bar)&lt;/code&gt; 函数比较不同的单位变量时报错了，但是在 CSS 中使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数函数比较不同的单位变量是没有问题的。&lt;/p&gt;\n&lt;p&gt;造成这一问题的原因是，在 Scss 中，也实现了 &lt;code&gt;max&lt;/code&gt; 和 &lt;code&gt;min&lt;/code&gt; 函数，但是在 Scss 中，&lt;strong&gt;不同单位的变量是不能进行运算的&lt;/strong&gt;，所以使得在 Scss 中直接使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）&lt;/p&gt;\n&lt;p&gt;知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。&lt;/p&gt;</description></item><item><title>less&amp;sass&amp;scss</title><link>https://lruihao.cn/posts/less-sass-scss/</link><pubDate>Tue, 22 Jun 2021 16:39:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/less-sass-scss/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;blockquote&gt;\n&lt;p&gt;Sass 和 Less 都屬於 &lt;strong&gt;CSS 前置處理器&lt;/strong&gt;，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。&lt;br&gt;\n轉化成通俗易懂的話來說就是 &lt;strong&gt;“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/css/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/css/</title><link rel=canonical href=https://lruihao.cn/categories/css/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/css/\"></head></html>"
  },
  {
    "path": "categories/git/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Git - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Git 统计代码量\",\"date_published\":\"2024-07-17T16:06:08&#43;08:00\",\"date_modified\":\"2024-07-17T18:34:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-summary/\",\"url\":\"https://lruihao.cn/posts/git-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"使用 Git 命令统计在某段时间内项目中的代码量。\\n\",\"content_html\":\"\\u003cp\\u003e使用 Git 命令统计在某段时间内项目中的代码量。\\u003c/p\\u003e\"},{\"title\":\"git submodule: already exists in the index\",\"date_published\":\"2024-01-11T10:30:04&#43;08:00\",\"date_modified\":\"2024-01-11T10:39:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/6550187/\",\"url\":\"https://lruihao.cn/posts/6550187/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"Git 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\n\",\"content_html\":\"\\u003cp\\u003eGit 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\u003c/p\\u003e\"},{\"title\":\"SSH 提交签名验证\",\"date_published\":\"2023-10-22T18:59:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ssh-sign/\",\"url\":\"https://lruihao.cn/posts/ssh-sign/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"SSH\"],\"summary\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\n\",\"content_html\":\"\\u003cp\\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\u003c/p\\u003e\"},{\"title\":\"Commit Message Spec\",\"date_published\":\"2022-08-12T15:37:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-spec/\",\"url\":\"https://lruihao.cn/posts/commit-spec/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cp\\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \\u003ca href=\\\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eConventional Commits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e specification based on the \\u003ca href=\\\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAngular convention\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\u003c/p\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Git 常用指令汇总\",\"date_published\":\"2018-10-30T08:59:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git/\",\"url\":\"https://lruihao.cn/posts/git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"image\":\"/posts/git/images/relation-1.png\",\"summary\":\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \",\"content_html\":\"\\u003cul\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e工作区\\u003c/strong\\u003e：就是你在电脑里能看到的目录。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e暂存区\\u003c/strong\\u003e：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e版本库\\u003c/strong\\u003e：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"date_published\":\"2018-10-26T21:11:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gituse/\",\"url\":\"https://lruihao.cn/posts/gituse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"0.9 config git config --global user.name \\\"Your Name\\\" git config --global user.email \\\"email@example.com\\\" 第一次使用 git 的时候需要设置提交者信息。\\n注意：\\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"config\\\"\\u003e\\u003cspan\\u003e0.9 config\\u003c/span\\u003e\\n  \\u003ca href=\\\"#config\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003egit config --global user.name \\\"Your Name\\\"\\ngit config --global user.email \\\"email@example.com\\\"\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次使用 git 的时候需要设置提交者信息。\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n如果用了 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\u003cbr\\u003e\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项重新配置即可，新的设定保存在当前项目的 \\u003ccode\\u003e.git/config\\u003c/code\\u003e 文件里。\\u003c/p\\u003e\"},{\"title\":\"git index.lock\",\"date_published\":\"2018-08-14T19:21:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-index-lock/\",\"url\":\"https://lruihao.cn/posts/git-index-lock/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\n有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\\n\",\"content_html\":\"\\u003cp\\u003e在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\\n\\nIf no other git process is currently running, this probably means a\\ngit process crashed in this repository earlier. Make sure no other git\\nprocess is running and remove the file manually to continue.\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\u003c/p\\u003e\\n\\u003cp\\u003e有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 \\u003ccode\\u003erm -f ./.git/index.lock\\u003c/code\\u003e 。之后就可以正常使用。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/git/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Git\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-17T16:06:08+08:00\"><meta itemprop=dateModified content=\"2024-12-17T18:09:03+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/git/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Git\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Git\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/git/ title=\"Git | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/git/index.xml title=\"Git | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/git/feed.json title=\"Git | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/git/feed.json title=\"Git | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/git/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Git <sup>8</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/git-summary/ class=archive-item-link>Git 统计代码量</a>\n<span class=archive-item-date title='2024-07-17 16:06:08'>07-17</span></article><article class=archive-item><a href=/posts/6550187/ class=archive-item-link>Git Submodule: Already Exists in the Index</a>\n<span class=archive-item-date title='2024-01-11 10:30:04'>01-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a>\n<span class=archive-item-date title='2023-10-22 18:59:31'>10-22</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a>\n<span class=archive-item-date title='2022-08-12 15:37:44'>08-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/git/ class=archive-item-link>Git 常用指令汇总</a>\n<span class=archive-item-date title='2018-10-30 08:59:56'>10-30</span></article><article class=archive-item><a href=/posts/gituse/ class=archive-item-link>使用 Git 上传代码到 Github, Coding 等仓库</a>\n<span class=archive-item-date title='2018-10-26 21:11:02'>10-26</span></article><article class=archive-item><a href=/posts/git-index-lock/ class=archive-item-link>Git Index.lock</a>\n<span class=archive-item-date title='2018-08-14 19:21:23'>08-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/git/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/git/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Git - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/git/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 17 Dec 2024 18:09:03 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/git/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Git 统计代码量</title><link>https://lruihao.cn/posts/git-summary/</link><pubDate>Wed, 17 Jul 2024 16:06:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-summary/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;使用 Git 命令统计在某段时间内项目中的代码量。&lt;/p&gt;</description></item><item><title>git submodule: already exists in the index</title><link>https://lruihao.cn/posts/6550187/</link><pubDate>Thu, 11 Jan 2024 10:30:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/6550187/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 报错 &amp;ldquo;git submodule: already exists in the index&amp;rdquo; 的解决方法。&lt;/p&gt;</description></item><item><title>SSH 提交签名验证</title><link>https://lruihao.cn/posts/ssh-sign/</link><pubDate>Sun, 22 Oct 2023 18:59:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ssh-sign/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。&lt;/p&gt;</description></item><item><title>Commit Message Spec</title><link>https://lruihao.cn/posts/commit-spec/</link><pubDate>Fri, 12 Aug 2022 15:37:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-spec/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;p&gt;Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the &lt;a href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Conventional Commits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; specification based on the &lt;a href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Angular convention&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.&lt;/p&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Git 常用指令汇总</title><link>https://lruihao.cn/posts/git/</link><pubDate>Tue, 30 Oct 2018 08:59:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;工作区&lt;/strong&gt;：就是你在电脑里能看到的目录。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;暂存区&lt;/strong&gt;：英文叫 stage, 或 index。一般存放在 &amp;ldquo;.git 目录下&amp;rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;版本库&lt;/strong&gt;：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>使用 Git 上传代码到 github, coding 等仓库</title><link>https://lruihao.cn/posts/gituse/</link><pubDate>Fri, 26 Oct 2018 21:11:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gituse/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;h3 class=\"heading-element\" id=\"config\"&gt;&lt;span&gt;0.13 config&lt;/span&gt;\n &lt;a href=\"#config\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;git config --global user.name &amp;#34;Your Name&amp;#34;\ngit config --global user.email &amp;#34;email@example.com&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;\n&lt;p&gt;第一次使用 git 的时候需要设置提交者信息。&lt;br&gt;\n注意：&lt;br&gt;\n如果用了 &lt;code&gt;--global&lt;/code&gt; 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。&lt;br&gt;\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 &lt;code&gt;--global&lt;/code&gt; 选项重新配置即可，新的设定保存在当前项目的 &lt;code&gt;.git/config&lt;/code&gt; 文件里。&lt;/p&gt;</description></item><item><title>git index.lock</title><link>https://lruihao.cn/posts/git-index-lock/</link><pubDate>Tue, 14 Aug 2018 19:21:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-index-lock/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;fatal: Unable to create &amp;#39;/xxx/xx/.git/index.lock&amp;#39;: File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。&lt;/p&gt;\n&lt;p&gt;有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 &lt;code&gt;rm -f ./.git/index.lock&lt;/code&gt; 。之后就可以正常使用。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/git/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/git/</title><link rel=canonical href=https://lruihao.cn/categories/git/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/git/\"></head></html>"
  },
  {
    "path": "categories/github/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"GitHub - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"一个轻量化 Tooltip 组件。\",\"date_published\":\"2026-03-06T06:58:23Z\",\"date_modified\":\"2026-03-30T06:51:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap tooltip.js，保留常用能力并尽量减少体积与依赖。\\n特性 支持触发方式：hover / focus / click / manual 支持位置：top / bottom / left / right / auto 支持延迟配置（show / hide） 支持 data-ct-* 属性初始化 支持实例方法：show / hide / toggle / update / dispose 内置箭头与基础样式，无第三方依赖 本地运行 pnpm install pnpm dev构建库产物：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cell-tooltip\\\" data-decreased\\u003e\\u003cspan\\u003ecell-tooltip\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cell-tooltip\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap \\u003ccode\\u003etooltip.js\\u003c/code\\u003e，保留常用能力并尽量减少体积与依赖。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持触发方式：\\u003ccode\\u003ehover\\u003c/code\\u003e / \\u003ccode\\u003efocus\\u003c/code\\u003e / \\u003ccode\\u003eclick\\u003c/code\\u003e / \\u003ccode\\u003emanual\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持位置：\\u003ccode\\u003etop\\u003c/code\\u003e / \\u003ccode\\u003ebottom\\u003c/code\\u003e / \\u003ccode\\u003eleft\\u003c/code\\u003e / \\u003ccode\\u003eright\\u003c/code\\u003e / \\u003ccode\\u003eauto\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持延迟配置（\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持 \\u003ccode\\u003edata-ct-*\\u003c/code\\u003e 属性初始化\\u003c/li\\u003e\\n\\u003cli\\u003e支持实例方法：\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e / \\u003ccode\\u003etoggle\\u003c/code\\u003e / \\u003ccode\\u003eupdate\\u003c/code\\u003e / \\u003ccode\\u003edispose\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e内置箭头与基础样式，无第三方依赖\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"本地运行\\\"\\u003e\\u003cspan\\u003e本地运行\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epnpm install\\npnpm dev\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e构建库产物：\\u003c/p\\u003e\"},{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"A custom element for viewing and interacting with JSON data.\",\"date_published\":\"2025-07-19T07:05:07Z\",\"date_modified\":\"2026-04-08T08:42:59Z\",\"id\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"\\u0026lt;json-viewer\\u0026gt; Element 简体中文 | English\\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\n功能特性 🌟 Web 组件：原生，无框架依赖 🎨 主题：支持明暗模式 📦 盒装：可选边框与内边距 📋 可复制：一键复制 JSON 🔑 排序：支持键排序 🔍 展开深度：可控初始展开层级 🧩 自定义复制按钮：slot 插槽支持 🧬 类型高亮：多种类型高亮 🛠️ 自定义事件：支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"json-viewer-element\\\" data-decreased\\u003e\\u003cspan\\u003e\\u0026lt;json-viewer\\u0026gt; Element\\u003c/span\\u003e\\n  \\u003ca href=\\\"#json-viewer-element\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e简体中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能特性\\\"\\u003e\\u003cspan\\u003e功能特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e🌟 \\u003cstrong\\u003eWeb 组件\\u003c/strong\\u003e：原生，无框架依赖\\u003c/li\\u003e\\n\\u003cli\\u003e🎨 \\u003cstrong\\u003e主题\\u003c/strong\\u003e：支持明暗模式\\u003c/li\\u003e\\n\\u003cli\\u003e📦 \\u003cstrong\\u003e盒装\\u003c/strong\\u003e：可选边框与内边距\\u003c/li\\u003e\\n\\u003cli\\u003e📋 \\u003cstrong\\u003e可复制\\u003c/strong\\u003e：一键复制 JSON\\u003c/li\\u003e\\n\\u003cli\\u003e🔑 \\u003cstrong\\u003e排序\\u003c/strong\\u003e：支持键排序\\u003c/li\\u003e\\n\\u003cli\\u003e🔍 \\u003cstrong\\u003e展开深度\\u003c/strong\\u003e：可控初始展开层级\\u003c/li\\u003e\\n\\u003cli\\u003e🧩 \\u003cstrong\\u003e自定义复制按钮\\u003c/strong\\u003e：slot 插槽支持\\u003c/li\\u003e\\n\\u003cli\\u003e🧬 \\u003cstrong\\u003e类型高亮\\u003c/strong\\u003e：多种类型高亮\\u003c/li\\u003e\\n\\u003cli\\u003e🛠️ \\u003cstrong\\u003e自定义事件\\u003c/strong\\u003e：支持 copy/toggle 事件监听\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"使用方法\\\"\\u003e\\u003cspan\\u003e使用方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install json-viewer-element\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"引入\\\"\\u003e\\u003cspan\\u003e引入\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bc%95%e5%85%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"作为模块\\\"\\u003e\\u003cspan\\u003e作为模块\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport 'json-viewer-element'\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"umd-cdn\\\"\\u003e\\u003cspan\\u003eUMD (CDN)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#umd-cdn\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript src=\\\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"基本用法\\\"\\u003e\\u003cspan\\u003e基本用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e手动绑定 value：\\u003c/p\\u003e\"},{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"Generate a list of all hugo-fixit theme components.\",\"date_published\":\"2025-01-14T09:10:09Z\",\"date_modified\":\"2026-05-06T03:13:04Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"github-actions\"],\"summary\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"action-component-list--fixit\\\" data-decreased\\u003e\\u003cspan\\u003eaction-component-list | FixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#action-component-list--fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/super-linter/super-linter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_14033786788092036044.svg' alt=\\\"GitHub Super-Linter\\\"\\u003e\\u003c/a\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_12862037500024650352.svg' alt=\\\"CI\\\"\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_17453161718063467893.svg' alt=\\\"Check dist/\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_9366593515159455299.svg' alt=\\\"CodeQL\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"how-to-use\\\"\\u003e\\u003cspan\\u003eHow to use\\u003c/span\\u003e\\n  \\u003ca href=\\\"#how-to-use\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eYou can reference different stable versions of this action. For more\\ninformation, see\\n\\u003ca href=\\\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVersioning\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\nin the GitHub Actions toolkit.\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date_published\":\"2024-09-13T02:36:29Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"html-css-javascript\"],\"summary\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"html-demos\\\" data-decreased\\u003e\\u003cspan\\u003eHTML demos\\u003c/span\\u003e\\n  \\u003ca href=\\\"#html-demos\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"文件预览\\\"\\u003e\\u003cspan\\u003e文件预览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e直接浏览器打开 \\u003ccode\\u003esrc\\u003c/code\\u003e 目录下的 HTML 文件。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"date_published\":\"2024-03-28T06:14:16Z\",\"date_modified\":\"2026-05-06T03:02:25Z\",\"id\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"url\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"CoverView 👉 简体中文说明 | English README\\n该项目基于原始的 CoverView。\\n现在为你的博客创建封面图片变得非常简单。\\n💥 变更通知 自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"coverview\\\" data-decreased\\u003e\\u003cspan\\u003eCoverView\\u003c/span\\u003e\\n  \\u003ca href=\\\"#coverview\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish README\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/open-source_18217824114769177106.svg' alt=\\\"用爱发电\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e该项目基于原始的 \\u003ca href=\\\"https://github.com/rutikwankhade/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e现在为你的博客创建封面图片变得非常简单。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\\\"cover_169570\\\" height=\\\"840\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-变更通知\\\"\\u003e\\u003cspan\\u003e💥 变更通知\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\u003c/p\\u003e\"},{\"title\":\"强大的脑图可视化工具\",\"date_published\":\"2024-01-21T06:24:42Z\",\"date_modified\":\"2024-07-07T02:44:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"url\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"KityMinder Core 注意\\n由于原项目 KityMinder Core 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 @cell-x/kityminder-core。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"kityminder-core\\\" data-decreased\\u003e\\u003cspan\\u003eKityMinder Core\\u003c/span\\u003e\\n  \\u003ca href=\\\"#kityminder-core\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003e由于原项目 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKityMinder Core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 \\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e@cell-x/kityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Using frequently-used Hugo commands by shell.\",\"date_published\":\"2022-09-04T04:18:42Z\",\"date_modified\":\"2025-09-12T09:38:50Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\"],\"summary\":\"Hugo Shell Using frequently-used Hugo commands by shell.\\nDownload Add a submodule for your Hugo blog project.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shell\\\" data-decreased\\u003e\\u003cspan\\u003eHugo Shell\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shell\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eUsing frequently-used Hugo commands by shell.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"download\\\"\\u003e\\u003cspan\\u003eDownload\\u003c/span\\u003e\\n  \\u003ca href=\\\"#download\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eAdd a submodule for your Hugo blog project.\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-02-28T03:44:09Z\",\"date_modified\":\"2025-01-16T02:53:15Z\",\"id\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"url\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vue\"],\"summary\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"preparation\\\" data-decreased\\u003e\\u003cspan\\u003ePreparation\\u003c/span\\u003e\\n  \\u003ca href=\\\"#preparation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\u003c/p\\u003e\\n\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth\\u003ename\\u003c/th\\u003e\\n          \\u003cth\\u003etype\\u003c/th\\u003e\\n          \\u003cth\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay\\u003c/td\\u003e\\n          \\u003ctd\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费金额\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_description\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费描述\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_type\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费类型\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_user\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e付款人\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"init\\\" data-decreased\\u003e\\u003cspan\\u003eInit\\u003c/span\\u003e\\n  \\u003ca href=\\\"#init\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eset for yourself.\\u003c/p\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"},{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Elegant and powerful theme for Hexo.\",\"date_published\":\"2019-01-31T09:57:45Z\",\"date_modified\":\"2023-12-21T02:39:42Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"url\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"hexo-theme-next 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib资源已打包github。\\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，修改内容以博採眾長为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\n\",\"content_html\":\"\\u003ch1 align=center\\u003ehexo-theme-next\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对next的主题的自定义修改\\u003c/strong\\u003e，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib资源已打包github。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于\\u003ca href=\\\"https://github.com/theme-next/hexo-theme-next\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next 6.0+\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; \\u003ca href=\\\"https://theme-next.org\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://theme-next.org\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e \\u003cbr\\u003e\\n记录一下折腾过程，修改内容以\\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见\\u003ca href=\\\"https://lruihao.cn/categories/hexo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo分类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\n\\u003cstrong\\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "categories/github/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GitHub - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GitHub\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/github/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GitHub\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GitHub\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/github/ title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/github/index.xml title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/github/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GitHub</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>GitHub <sup>41</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2026-05-06 03:13:04'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>Lruihao/CoverView</a>\n<span class=archive-item-date title='2026-05-06 03:02:25'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2026</h2><article class=archive-item><a href=/projects/lruihao/cell-tooltip/ class=archive-item-link>Lruihao/cell-tooltip</a>\n<span class=archive-item-date title='2026-03-06 06:58:23'>03-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article><article class=archive-item><a href=/projects/lruihao/json-viewer-element/ class=archive-item-link>Lruihao/json-viewer-element</a>\n<span class=archive-item-date title='2025-07-19 07:05:07'>07-19</span></article><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article><article class=archive-item><a href=/projects/lruihao/vercel-proxy/ class=archive-item-link>Lruihao/vercel-proxy</a>\n<span class=archive-item-date title='2025-04-09 02:13:22'>04-09</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2025-01-14 09:10:09'>01-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2024-09-13 02:36:29'>09-13</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>hugo-fixit/hugo-json-feed</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/projects/lruihao/vercel-gravatar/ class=archive-item-link>Lruihao/vercel-gravatar</a>\n<span class=archive-item-date title='2024-04-17 01:37:06'>04-17</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/categories/github/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/github/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/github/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/github/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/github/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>GitHub - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/github/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/github/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>一个轻量化 Tooltip 组件。</title><link>https://lruihao.cn/projects/lruihao/cell-tooltip/</link><pubDate>Fri, 06 Mar 2026 06:58:23 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-tooltip/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased&gt;&lt;span&gt;cell-tooltip&lt;/span&gt;\n &lt;a href=\"#cell-tooltip\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap &lt;code&gt;tooltip.js&lt;/code&gt;，保留常用能力并尽量减少体积与依赖。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持触发方式：&lt;code&gt;hover&lt;/code&gt; / &lt;code&gt;focus&lt;/code&gt; / &lt;code&gt;click&lt;/code&gt; / &lt;code&gt;manual&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持位置：&lt;code&gt;top&lt;/code&gt; / &lt;code&gt;bottom&lt;/code&gt; / &lt;code&gt;left&lt;/code&gt; / &lt;code&gt;right&lt;/code&gt; / &lt;code&gt;auto&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持延迟配置（&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持 &lt;code&gt;data-ct-*&lt;/code&gt; 属性初始化&lt;/li&gt;\n&lt;li&gt;支持实例方法：&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt; / &lt;code&gt;toggle&lt;/code&gt; / &lt;code&gt;update&lt;/code&gt; / &lt;code&gt;dispose&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;内置箭头与基础样式，无第三方依赖&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"本地运行\"&gt;&lt;span&gt;本地运行&lt;/span&gt;\n &lt;a href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;pnpm install\npnpm dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;构建库产物：&lt;/p&gt;</description></item><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A custom element for viewing and interacting with JSON data.</title><link>https://lruihao.cn/projects/lruihao/json-viewer-element/</link><pubDate>Sat, 19 Jul 2025 07:05:07 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/json-viewer-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased&gt;&lt;span&gt;&amp;lt;json-viewer&amp;gt; Element&lt;/span&gt;\n &lt;a href=\"#json-viewer-element\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;简体中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能特性\"&gt;&lt;span&gt;功能特性&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;🌟 &lt;strong&gt;Web 组件&lt;/strong&gt;：原生，无框架依赖&lt;/li&gt;\n&lt;li&gt;🎨 &lt;strong&gt;主题&lt;/strong&gt;：支持明暗模式&lt;/li&gt;\n&lt;li&gt;📦 &lt;strong&gt;盒装&lt;/strong&gt;：可选边框与内边距&lt;/li&gt;\n&lt;li&gt;📋 &lt;strong&gt;可复制&lt;/strong&gt;：一键复制 JSON&lt;/li&gt;\n&lt;li&gt;🔑 &lt;strong&gt;排序&lt;/strong&gt;：支持键排序&lt;/li&gt;\n&lt;li&gt;🔍 &lt;strong&gt;展开深度&lt;/strong&gt;：可控初始展开层级&lt;/li&gt;\n&lt;li&gt;🧩 &lt;strong&gt;自定义复制按钮&lt;/strong&gt;：slot 插槽支持&lt;/li&gt;\n&lt;li&gt;🧬 &lt;strong&gt;类型高亮&lt;/strong&gt;：多种类型高亮&lt;/li&gt;\n&lt;li&gt;🛠️ &lt;strong&gt;自定义事件&lt;/strong&gt;：支持 copy/toggle 事件监听&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"使用方法\"&gt;&lt;span&gt;使用方法&lt;/span&gt;\n &lt;a href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;npm install json-viewer-element&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"引入\"&gt;&lt;span&gt;引入&lt;/span&gt;\n &lt;a href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;h4 class=\"heading-element\" id=\"作为模块\"&gt;&lt;span&gt;作为模块&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;import &amp;#39;json-viewer-element&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=\"heading-element\" id=\"umd-cdn\"&gt;&lt;span&gt;UMD (CDN)&lt;/span&gt;\n &lt;a href=\"#umd-cdn\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"基本用法\"&gt;&lt;span&gt;基本用法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;手动绑定 value：&lt;/p&gt;</description></item><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API proxies powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-proxy/</link><pubDate>Wed, 09 Apr 2025 02:13:22 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-proxy/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#vercel-api-proxy\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;API proxies powered by Vercel.&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;[toc]&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"hosts\"&gt;&lt;span&gt;Hosts&lt;/span&gt;\n &lt;a href=\"#hosts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://api.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://cell-api.vercel.app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"api-list\"&gt;&lt;span&gt;API List&lt;/span&gt;\n &lt;a href=\"#api-list\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Go to the &lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; and select the API you want to use.&lt;/p&gt;</description></item><item><title>Generate a list of all hugo-fixit theme components.</title><link>https://lruihao.cn/projects/hugo-fixit/action-component-list/</link><pubDate>Tue, 14 Jan 2025 09:10:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/action-component-list/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased&gt;&lt;span&gt;action-component-list | FixIt&lt;/span&gt;\n &lt;a href=\"#action-component-list--fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"&gt;&lt;/a&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt=\"CI\"&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;This is a GitHub Action to generate a list of all hugo-fixit theme components.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"how-to-use\"&gt;&lt;span&gt;How to use&lt;/span&gt;\n &lt;a href=\"#how-to-use\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;You can reference different stable versions of this action. For more\ninformation, see\n&lt;a href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Versioning&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\nin the GitHub Actions toolkit.&lt;/p&gt;</description></item><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</title><link>https://lruihao.cn/projects/lruihao/html-demo/</link><pubDate>Fri, 13 Sep 2024 02:36:29 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/html-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"html-demos\" data-decreased&gt;&lt;span&gt;HTML demos&lt;/span&gt;\n &lt;a href=\"#html-demos\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"文件预览\"&gt;&lt;span&gt;文件预览&lt;/span&gt;\n &lt;a href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;直接浏览器打开 &lt;code&gt;src&lt;/code&gt; 目录下的 HTML 文件。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>Gravatar Proxy powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 01:37:06 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased&gt;&lt;span&gt;Vercel Gravatar&lt;/span&gt;\n &lt;a href=\"#vercel-gravatar\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;Superseded by &lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao/vercel-proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Gravatar Proxy powered by Vercel.&lt;/p&gt;\n&lt;p&gt;Go to test Gravatar:&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>🛠 Create awesome cover images for your blog posts quickly.</title><link>https://lruihao.cn/projects/lruihao/coverview/</link><pubDate>Thu, 28 Mar 2024 06:14:16 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/coverview/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"coverview\" data-decreased&gt;&lt;span&gt;CoverView&lt;/span&gt;\n &lt;a href=\"#coverview\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"README.en.md\"&gt;English README&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;该项目基于原始的 &lt;a href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;现在为你的博客创建封面图片变得非常简单。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-变更通知\"&gt;&lt;span&gt;💥 变更通知&lt;/span&gt;\n &lt;a href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：&lt;/p&gt;</description></item><item><title>强大的脑图可视化工具</title><link>https://lruihao.cn/projects/lruihao/kityminder-core/</link><pubDate>Sun, 21 Jan 2024 06:24:42 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/kityminder-core/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"kityminder-core\" data-decreased&gt;&lt;span&gt;KityMinder Core&lt;/span&gt;\n &lt;a href=\"#kityminder-core\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;由于原项目 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KityMinder Core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 &lt;a href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;@cell-x/kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Using frequently-used Hugo commands by shell.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</link><pubDate>Sun, 04 Sep 2022 04:18:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shell\" data-decreased&gt;&lt;span&gt;Hugo Shell&lt;/span&gt;\n &lt;a href=\"#hugo-shell\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Using frequently-used Hugo commands by shell.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"download\"&gt;&lt;span&gt;Download&lt;/span&gt;\n &lt;a href=\"#download\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Add a submodule for your Hugo blog project.&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>Create watermark for webpage and automatic adjust when window resize.</title><link>https://lruihao.cn/projects/lruihao/watermark/</link><pubDate>Mon, 24 May 2021 13:05:40 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/watermark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"watermark\" data-decreased&gt;&lt;span&gt;Watermark&lt;/span&gt;\n &lt;a href=\"#watermark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Create watermark for webpage and automatic adjust when windows resize.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"documentation\"&gt;&lt;span&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Documentation&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#documentation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"browser\"&gt;&lt;span&gt;Browser&lt;/span&gt;\n &lt;a href=\"#browser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;Clone source&lt;/p&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/lruihao/bill-note/</link><pubDate>Sun, 28 Feb 2021 03:44:09 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/bill-note/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"preparation\" data-decreased&gt;&lt;span&gt;Preparation&lt;/span&gt;\n &lt;a href=\"#preparation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;name&lt;/th&gt;\n &lt;th&gt;type&lt;/th&gt;\n &lt;th&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;pay&lt;/td&gt;\n &lt;td&gt;Number&lt;/td&gt;\n &lt;td&gt;消费金额&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_description&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费描述&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_type&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费类型&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_user&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;付款人&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"init\" data-decreased&gt;&lt;span&gt;Init&lt;/span&gt;\n &lt;a href=\"#init\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;set for yourself.&lt;/p&gt;</description></item><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item><item><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</title><link>https://lruihao.cn/projects/lruihao/cos-album/</link><pubDate>Sat, 23 Nov 2019 12:59:05 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cos-album/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cos-album\" data-decreased&gt;&lt;span&gt;cos-album&lt;/span&gt;\n &lt;a href=\"#cos-album\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"step1\"&gt;&lt;span&gt;Step1&lt;/span&gt;\n &lt;a href=\"#step1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; type=&amp;#34;text/css&amp;#34; href=&amp;#34;cos-album.min.css?v=1.1.6&amp;#34;&amp;gt;\n&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;cos-album.min.js?v=1.1.6&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"step2\"&gt;&lt;span&gt;Step2&lt;/span&gt;\n &lt;a href=\"#step2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;\n new Cosalbum({\n &amp;#39;xmlLink&amp;#39;: &amp;#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&amp;#39;,\n &amp;#39;prependTo&amp;#39;: &amp;#39;.cos-album&amp;#39;,\n &amp;#39;viewNum&amp;#39;: 8,\n &amp;#39;copyUrl&amp;#39;: &amp;#39;//img.lruihao.cn&amp;#39;\n });\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"params\"&gt;&lt;span&gt;Params&lt;/span&gt;\n &lt;a href=\"#params\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;param&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;type&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;default&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;xmlLink&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;需要解析的騰訊云COS桶XML鏈接&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;prependTo&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;lsquo;body&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;可選解析相冊到某個節點&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;viewNum&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;4&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;每個相冊顯示的照片數目&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyUrl&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;href&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;CDN 链接,雙擊複製 URL Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;imgType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;jpg&amp;rsquo;, &amp;lsquo;jpeg&amp;rsquo;, &amp;lsquo;png&amp;rsquo;, &amp;lsquo;gif&amp;rsquo;, &amp;lsquo;svg&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;图片類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;videoType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;mp4&amp;rsquo;, &amp;lsquo;mp3&amp;rsquo;, &amp;lsquo;avi&amp;rsquo;, &amp;lsquo;mov&amp;rsquo;, &amp;lsquo;qt&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;視頻類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;strong&gt;详细说明&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>沐目之，湘也。— 沐目体</title><link>https://lruihao.cn/projects/lruihao/mmt/</link><pubDate>Thu, 26 Sep 2019 12:44:17 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Elegant and powerful theme for Hexo.</title><link>https://lruihao.cn/projects/lruihao/hexo-theme-next/</link><pubDate>Thu, 31 Jan 2019 09:57:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=center&gt;hexo-theme-next&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对next的主题的自定义修改&lt;/strong&gt;，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib资源已打包github。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于&lt;a href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next 6.0+&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =&amp;gt; &lt;a href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://theme-next.org&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; &lt;br&gt;\n记录一下折腾过程，修改内容以&lt;a href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见&lt;a href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo分类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。\n&lt;strong&gt;主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/github/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/github/</title><link rel=canonical href=https://lruihao.cn/categories/github/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/github/\"></head></html>"
  },
  {
    "path": "categories/github/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GitHub - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GitHub\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/github/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GitHub\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GitHub\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/github/ title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/github/index.xml title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/github/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GitHub</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>GitHub <sup>41</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>Lruihao/CoverView</a>\n<span class=archive-item-date title='2024-03-28 06:14:16'>03-28</span></article><article class=archive-item><a href=/projects/lruihao/kityminder-core/ class=archive-item-link>Lruihao/kityminder-core</a>\n<span class=archive-item-date title='2024-01-21 06:24:42'>01-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-shell/ class=archive-item-link>hugo-fixit/hugo-shell</a>\n<span class=archive-item-date title='2022-09-04 04:18:42'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2021-05-24 13:05:40'>05-24</span></article><article class=archive-item><a href=/projects/lruihao/bill-note/ class=archive-item-link>Lruihao/bill-note</a>\n<span class=archive-item-date title='2021-02-28 03:44:09'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>Lruihao/cell-blog</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/cos-album/ class=archive-item-link>Lruihao/cos-album</a>\n<span class=archive-item-date title='2019-11-23 12:59:05'>11-23</span></article><article class=archive-item><a href=/projects/lruihao/mmt/ class=archive-item-link>Lruihao/MMT</a>\n<span class=archive-item-date title='2019-09-26 12:44:17'>09-26</span></article><article class=archive-item><a href=/projects/lruihao/hexo-theme-next/ class=archive-item-link>Lruihao/hexo-theme-next</a>\n<span class=archive-item-date title='2019-01-31 09:57:45'>01-31</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/github/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/github/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/github/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/github/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/github/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GitHub - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GitHub\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/github/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GitHub\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GitHub\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/github/ title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/github/index.xml title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/github/feed.json title=\"GitHub | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/github/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GitHub</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>GitHub <sup>41</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/github/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/github/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/github/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/github/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/go/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Go - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Beego 安装及配置\",\"date_published\":\"2022-08-31T09:32:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beego-install/\",\"url\":\"https://lruihao.cn/posts/beego-install/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Beego\",\"Go\"],\"image\":\"https://lruihao.cn/posts/beego-install/images/featured-image.png\",\"summary\":\"记录 GO 及 Beego 框架安装及基础配置。\\n\",\"content_html\":\"\\u003cp\\u003e记录 GO 及 Beego 框架安装及基础配置。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/go/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Go - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Go\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-31T09:32:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/go/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Go\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Go\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/go/ title=\"Go | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/go/index.xml title=\"Go | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/go/feed.json title=\"Go | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/go/feed.json title=\"Go | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/go/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Go</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Go <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a>\n<span class=archive-item-date title='2022-08-31 09:32:44'>08-31</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/go/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/go/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Go - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/go/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/go/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Beego 安装及配置</title><link>https://lruihao.cn/posts/beego-install/</link><pubDate>Wed, 31 Aug 2022 09:32:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beego-install/</guid><category domain=\"https://lruihao.cn/categories/go/\">Go</category><description>&lt;p&gt;记录 GO 及 Beego 框架安装及基础配置。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/go/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/go/</title><link rel=canonical href=https://lruihao.cn/categories/go/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/go/\"></head></html>"
  },
  {
    "path": "categories/grocery/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Grocery - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Code Playground\",\"date_published\":\"2025-08-04T11:37:24&#43;08:00\",\"date_modified\":\"2025-08-27T12:30:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/code-playground/\",\"url\":\"https://lruihao.cn/posts/code-playground/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"npm\"],\"summary\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\n\",\"content_html\":\"\\u003cp\\u003e以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\u003c/p\\u003e\"},{\"title\":\"为什么很多教程中都有 foo bar？\",\"date_published\":\"2024-01-17T09:58:58&#43;08:00\",\"date_modified\":\"2024-07-17T17:37:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/20b75e9/\",\"url\":\"https://lruihao.cn/posts/20b75e9/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\n\",\"content_html\":\"\\u003cp\\u003efoo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\u003c/p\\u003e\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"自定义 ohmyzsh 主题\",\"date_published\":\"2022-07-31T13:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"url\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\n\",\"content_html\":\"\\u003cp\\u003eohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\u003c/p\\u003e\"},{\"title\":\"判断三角形的黑盒测试\",\"date_published\":\"2019-05-26T18:50:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/judgetriangle/\",\"url\":\"https://lruihao.cn/posts/judgetriangle/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"黑盒测试\",\"C\"],\"summary\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\u003cbr\\u003e\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装 ImgURL 图床\",\"date_published\":\"2019-05-16T20:31:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/imgurl/\",\"url\":\"https://lruihao.cn/posts/imgurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ImgURL\",\"宝塔面板\"],\"image\":\"/posts/imgurl/images/1.png\",\"summary\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\\n\\u003ca href=\\\"https://www.xiaoz.me/archives/12081\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e阅读原文\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"date_published\":\"2019-05-10T13:08:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ifzhushi/\",\"url\":\"https://lruihao.cn/posts/ifzhushi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"他山之石\"],\"summary\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cspan\\u003e\\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博採眾長 app\",\"date_published\":\"2018-11-12T16:04:04&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fas-app/\",\"url\":\"https://lruihao.cn/posts/fas-app/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"lua\",\"fusion\"],\"summary\":\"0.7 介绍 使用 fusion app 对网页进行的封装。\\n功能：\\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"介绍\\\"\\u003e\\u003cspan\\u003e0.7 介绍\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bb%8b%e7%bb%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e使用 fusion app 对网页进行的封装。\\u003cbr\\u003e\\n功能：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e浏览本博客，主页\\u003c/li\\u003e\\n\\u003cli\\u003e私人网盘\\u003c/li\\u003e\\n\\u003cli\\u003e2048 等小游戏\\u003c/li\\u003e\\n\\u003cli\\u003e在线客服，QQ 等\\u003c/li\\u003e\\n\\u003cli\\u003epc 与移动浏览器标识切换\\u003c/li\\u003e\\n\\u003cli\\u003e留言，打赏，博主日志等\\u003c/li\\u003e\\n\\u003cli\\u003e分享功能，分享到 QQ，微信，浏览器打开等\\u003c/li\\u003e\\n\\u003cli\\u003eapp 内添加书签，自动记录历史记录，刷新等\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e配合博客的\\u003ccode\\u003ePWA + quicklink\\u003c/code\\u003e功能可实现离线浏览\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"},{\"title\":\"windows 上搭建 web 服务器\",\"date_published\":\"2018-10-26T21:56:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-win/\",\"url\":\"https://lruihao.cn/posts/web-server-win/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"windows\"],\"summary\":\" 我用的 win10\\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我用的 win10\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开控制面板\\\"\\u003e\\u003cspan\\u003e0.1 打开控制面板\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\u003cbr\\u003e\\n\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/web-server-win/images/1.png\\\" title=\\\"打开控制面板\\\" data-thumbnail=\\\"/posts/web-server-win/images/1.png\\\" data-sub-html=\\\"\\u003ch2\\u003e打开控制面板\\u003c/h2\\u003e\\u003cp\\u003e打开控制面板\\u003c/p\\u003e\"},{\"title\":\"流水线\",\"date_published\":\"2018-10-09T16:21:04&#43;08:00\",\"date_modified\":\"2018-10-09T16:21:04&#43;08:00\",\"id\":\"https://lruihao.cn/posts/liushuixian/\",\"url\":\"https://lruihao.cn/posts/liushuixian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"summary\":\"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"概念\\\"\\u003e\\u003cspan\\u003e15 概念\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a6%82%e5%bf%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\u003c/p\\u003e\"},{\"title\":\"计算机数据\",\"date_published\":\"2018-10-08T23:01:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/data/\",\"url\":\"https://lruihao.cn/posts/data/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"summary\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据的表示\\\"\\u003e\\u003cspan\\u003e0.1 数据的表示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e数据的表示可分为：原码，反码和补码。（二进制）\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e原码：符号位 0 为正，1 为负。\\u003c/li\\u003e\\n\\u003cli\\u003e反码：符号位 0 为正，1 为负。\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：反码同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e补码：\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反再 +1。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e移码：补码符号位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据表示范围\\\"\\u003e\\u003cspan\\u003e0.2 数据表示范围\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e原码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e反码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e补码： \\u003ccode\\u003e-z^n-1 ~ 2^n-1 - 1\\u003c/code\\u003e （补码正 0 和负 0 相同，少占一数位，就多一个范围）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e例：\\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\u003c/p\\u003e\"},{\"title\":\"linux/centos 下的安装 git\",\"date_published\":\"2018-09-22T22:28:45&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-git/\",\"url\":\"https://lruihao.cn/posts/linux-git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"linux\"],\"summary\":\"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注： unzip 命令用不了，具体步骤如下：\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"下载-git\\\"\\u003e\\u003cspan\\u003e0.11 下载 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%8b%e8%bd%bd-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003ewget https://github.com/git/git/archive/v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装依赖\\\"\\u003e\\u003cspan\\u003e0.12 安装依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"解压-git\\\"\\u003e\\u003cspan\\u003e0.13 解压 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a7%a3%e5%8e%8b-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003eunzip v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注：\\nunzip 命令用不了，具体步骤如下：\\u003c/p\\u003e\"},{\"title\":\"在线离线算法\",\"date_published\":\"2018-07-26T09:57:32&#43;08:00\",\"date_modified\":\"2018-07-26T09:57:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"url\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"在线离线算法\"],\"summary\":\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"在线算法\\\"\\u003e\\u003cspan\\u003e1 \\u003ca href=\\\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\u003c/p\\u003e\"},{\"title\":\"位运算\",\"date_published\":\"2018-06-14T20:22:21&#43;08:00\",\"date_modified\":\"2018-06-14T20:22:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"url\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"位运算\"],\"summary\":\"1 1. \\u0026amp;运算 \\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1-运算\\\"\\u003e\\u003cspan\\u003e1 1. \\u0026amp;运算\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e8%bf%90%e7%ae%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/grocery/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Grocery - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Grocery\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-04T11:37:24+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/grocery/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Grocery\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Grocery\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/grocery/ title=\"Grocery | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/grocery/index.xml title=\"Grocery | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/grocery/feed.json title=\"Grocery | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/grocery/feed.json title=\"Grocery | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/grocery/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Grocery</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Grocery <sup>16</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a>\n<span class=archive-item-date title='2025-08-04 11:37:24'>08-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/20b75e9/ class=archive-item-link>为什么很多教程中都有 Foo Bar？</a>\n<span class=archive-item-date title='2024-01-17 09:58:58'>01-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article><article class=archive-item><a href=/posts/ohmyzsh-custom/ class=archive-item-link>自定义 Ohmyzsh 主题</a>\n<span class=archive-item-date title='2022-07-31 13:54:14'>07-31</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a>\n<span class=archive-item-date title='2019-05-26 18:50:53'>05-26</span></article><article class=archive-item><a href=/posts/imgurl/ class=archive-item-link>宝塔面板安装 ImgURL 图床</a>\n<span class=archive-item-date title='2019-05-16 20:31:33'>05-16</span></article><article class=archive-item><a href=/posts/ifzhushi/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a>\n<span class=archive-item-date title='2019-05-10 13:08:27'>05-10</span></article><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/fas-app/ class=archive-item-link>博採眾長 App</a>\n<span class=archive-item-date title='2018-11-12 16:04:04'>11-12</span></article><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article><article class=archive-item><a href=/posts/web-server-win/ class=archive-item-link>Windows 上搭建 Web 服务器</a>\n<span class=archive-item-date title='2018-10-26 21:56:18'>10-26</span></article><article class=archive-item><a href=/posts/liushuixian/ class=archive-item-link>流水线</a>\n<span class=archive-item-date title='2018-10-09 16:21:04'>10-09</span></article><article class=archive-item><a href=/posts/data/ class=archive-item-link>计算机数据</a>\n<span class=archive-item-date title='2018-10-08 23:01:10'>10-08</span></article><article class=archive-item><a href=/posts/linux-git/ class=archive-item-link>Linux/Centos 下的安装 Git</a>\n<span class=archive-item-date title='2018-09-22 22:28:45'>09-22</span></article><article class=archive-item><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=archive-item-link>在线离线算法</a>\n<span class=archive-item-date title='2018-07-26 09:57:32'>07-26</span></article><article class=archive-item><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=archive-item-link>位运算</a>\n<span class=archive-item-date title='2018-06-14 20:22:21'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/grocery/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/grocery/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Grocery - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/grocery/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 27 Aug 2025 12:30:22 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/grocery/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Code Playground</title><link>https://lruihao.cn/posts/code-playground/</link><pubDate>Mon, 04 Aug 2025 11:37:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/code-playground/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;以下是常见的在线代码演示和开发环境服务，适合不同场景使用：&lt;/p&gt;</description></item><item><title>为什么很多教程中都有 foo bar？</title><link>https://lruihao.cn/posts/20b75e9/</link><pubDate>Wed, 17 Jan 2024 09:58:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/20b75e9/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。&lt;/p&gt;</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>自定义 ohmyzsh 主题</title><link>https://lruihao.cn/posts/ohmyzsh-custom/</link><pubDate>Sun, 31 Jul 2022 13:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ohmyzsh-custom/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。&lt;/p&gt;</description></item><item><title>判断三角形的黑盒测试</title><link>https://lruihao.cn/posts/judgetriangle/</link><pubDate>Sun, 26 May 2019 18:50:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/judgetriangle/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。&lt;br&gt;\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装 ImgURL 图床</title><link>https://lruihao.cn/posts/imgurl/</link><pubDate>Thu, 16 May 2019 20:31:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/imgurl/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n&lt;a href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;阅读原文&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>条件注释判断浏览器版本&lt;!--[if lt IE 9]&gt;;</title><link>https://lruihao.cn/posts/ifzhushi/</link><pubDate>Fri, 10 May 2019 13:08:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ifzhushi/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;span&gt;&amp;lt;!--[if !IE]&amp;gt;&amp;lt;!--&amp;gt; 除 IE 外都可识别 &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE]&amp;gt; 所有的 IE 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 6]&amp;gt; 仅 IE6 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 6]&amp;gt; IE6 以及 IE6 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 6]&amp;gt; IE6 以及 IE6 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 7]&amp;gt; 仅 IE7 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 7]&amp;gt; IE7 以及 IE7 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 7]&amp;gt; IE7 以及 IE7 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 8]&amp;gt; 仅 IE8 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 9]&amp;gt; 仅 IE9 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博採眾長 app</title><link>https://lruihao.cn/posts/fas-app/</link><pubDate>Mon, 12 Nov 2018 16:04:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fas-app/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"介绍\"&gt;&lt;span&gt;0.10 介绍&lt;/span&gt;\n &lt;a href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;使用 fusion app 对网页进行的封装。&lt;br&gt;\n功能：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;浏览本博客，主页&lt;/li&gt;\n&lt;li&gt;私人网盘&lt;/li&gt;\n&lt;li&gt;2048 等小游戏&lt;/li&gt;\n&lt;li&gt;在线客服，QQ 等&lt;/li&gt;\n&lt;li&gt;pc 与移动浏览器标识切换&lt;/li&gt;\n&lt;li&gt;留言，打赏，博主日志等&lt;/li&gt;\n&lt;li&gt;分享功能，分享到 QQ，微信，浏览器打开等&lt;/li&gt;\n&lt;li&gt;app 内添加书签，自动记录历史记录，刷新等&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;配合博客的&lt;code&gt;PWA + quicklink&lt;/code&gt;功能可实现离线浏览&lt;/strong&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>caddy-两步搭建超简单云盘</title><link>https://lruihao.cn/posts/caddy-file/</link><pubDate>Sun, 11 Nov 2018 13:59:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/caddy-file/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;16 安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"编写配置文件\"&gt;&lt;span&gt;17 编写配置文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vim Caddyfile&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;内容如下：&lt;/p&gt;</description></item><item><title>windows 上搭建 web 服务器</title><link>https://lruihao.cn/posts/web-server-win/</link><pubDate>Fri, 26 Oct 2018 21:56:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-win/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;我用的 win10&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开控制面板\"&gt;&lt;span&gt;0.1 打开控制面板&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。&lt;br&gt;\n&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"&lt;h2&gt;打开控制面板&lt;/h2&gt;&lt;p&gt;打开控制面板&lt;/p&gt;</description></item><item><title>流水线</title><link>https://lruihao.cn/posts/liushuixian/</link><pubDate>Tue, 09 Oct 2018 16:21:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/liushuixian/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"概念\"&gt;&lt;span&gt;22 概念&lt;/span&gt;\n &lt;a href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。&lt;/p&gt;</description></item><item><title>计算机数据</title><link>https://lruihao.cn/posts/data/</link><pubDate>Mon, 08 Oct 2018 23:01:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/data/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"数据的表示\"&gt;&lt;span&gt;0.1 数据的表示&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;数据的表示可分为：原码，反码和补码。（二进制）&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;原码：符号位 0 为正，1 为负。&lt;/li&gt;\n&lt;li&gt;反码：符号位 0 为正，1 为负。\n&lt;ul&gt;\n&lt;li&gt;正数：反码同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;补码：\n&lt;ul&gt;\n&lt;li&gt;正数：同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反再 +1。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;移码：补码符号位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"数据表示范围\"&gt;&lt;span&gt;0.2 数据表示范围&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;原码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;反码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;补码： &lt;code&gt;-z^n-1 ~ 2^n-1 - 1&lt;/code&gt; （补码正 0 和负 0 相同，少占一数位，就多一个范围）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。&lt;/p&gt;</description></item><item><title>linux/centos 下的安装 git</title><link>https://lruihao.cn/posts/linux-git/</link><pubDate>Sat, 22 Sep 2018 22:28:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-git/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"下载-git\"&gt;&lt;span&gt;0.16 下载 git&lt;/span&gt;\n &lt;a href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;wget https://github.com/git/git/archive/v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"安装依赖\"&gt;&lt;span&gt;0.17 安装依赖&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"解压-git\"&gt;&lt;span&gt;0.18 解压 git&lt;/span&gt;\n &lt;a href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;unzip v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注：\nunzip 命令用不了，具体步骤如下：&lt;/p&gt;</description></item><item><title>在线离线算法</title><link>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</link><pubDate>Thu, 26 Jul 2018 09:57:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"在线算法\"&gt;&lt;span&gt;1 &lt;a href=\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。&lt;/p&gt;</description></item><item><title>位运算</title><link>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</link><pubDate>Thu, 14 Jun 2018 20:22:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"1-运算\"&gt;&lt;span&gt;1 1. &amp;amp;运算&lt;/span&gt;\n &lt;a href=\"#1-%e8%bf%90%e7%ae%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&amp;amp;运算通常用于二进制取位操作，例如一个数 &amp;amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/grocery/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/grocery/</title><link rel=canonical href=https://lruihao.cn/categories/grocery/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/grocery/\"></head></html>"
  },
  {
    "path": "categories/html/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"HTML - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"date_published\":\"2024-02-21T10:00:13&#43;08:00\",\"date_modified\":\"2024-02-21T11:06:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/auto-sizes/\",\"url\":\"https://lruihao.cn/posts/auto-sizes/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\"],\"summary\":\"聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\n\",\"content_html\":\"\\u003cp\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\u003c/p\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"},{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/html/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HTML - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"HTML\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/html/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HTML\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HTML\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/html/ title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/html/index.xml title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/html/feed.json title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/html/feed.json title=\"HTML | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/html/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HTML</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>HTML <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/auto-sizes/ class=archive-item-link>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a>\n<span class=archive-item-date title='2024-02-21 10:00:13'>02-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/html/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/html/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>HTML - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/html/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/html/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>聊聊 Chrome 新增的 sizes=\"auto\" 属性</title><link>https://lruihao.cn/posts/auto-sizes/</link><pubDate>Wed, 21 Feb 2024 10:00:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/auto-sizes/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性。&lt;/p&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/html/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/html/</title><link rel=canonical href=https://lruihao.cn/categories/html/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/html/\"></head></html>"
  },
  {
    "path": "categories/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"categories\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"categories\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"categories\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/ title=\"categories | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-folder-tree me-1\" aria-hidden=true></i>所有分类 <sup>23</sup></h1><div class=\"taxonomy-cards categories\"><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/acm/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>ACM <sup>50</sup></a></h2><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a></article><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a></article><article class=archive-item><a href=/posts/bqbj/ class=archive-item-link>百钱百鸡（枚举法）</a></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a></article><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a></article><div class=more-post><a href=/categories/acm/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/memo/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Memo <sup>42</sup></a></h2><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a></article><article class=archive-item><a href=/posts/c6bc2d5/ class=archive-item-link>写文档时英文标题什么时候要大写？</a></article><article class=archive-item><a href=/posts/article-structure/ class=archive-item-link>写作技巧：如何搭建文章的框架结构？</a></article><article class=archive-item><a href=/posts/vscode-snippets/ class=archive-item-link>VSCode 添加用户代码片段，自定义用户代码片段</a></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a></article><div class=more-post><a href=/categories/memo/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/github/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>GitHub <sup>41</sup></a></h2><article class=archive-item><a href=/projects/lruihao/cell-tooltip/ class=archive-item-link>Lruihao/cell-tooltip</a></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a></article><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a></article><article class=archive-item><a href=/projects/lruihao/json-viewer-element/ class=archive-item-link>Lruihao/json-viewer-element</a></article><div class=more-post><a href=/categories/github/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/javascript/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>JavaScript <sup>25</sup></a></h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a></article><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a></article><div class=more-post><a href=/categories/javascript/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/vue.js/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Vue.js <sup>19</sup></a></h2><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a></article><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a></article><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a></article><div class=more-post><a href=/categories/vue.js/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/java/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Java <sup>17</sup></a></h2><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a></article><article class=archive-item><a href=/posts/byteio/ class=archive-item-link>文件加密解密（字节流）</a></article><article class=archive-item><a href=/posts/javaexception/ class=archive-item-link>模拟借书系统（java 异常练习）</a></article><article class=archive-item><a href=/posts/hellojava/ class=archive-item-link>用记事本编写第一个 Java 程序</a></article><div class=more-post><a href=/categories/java/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/grocery/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Grocery <sup>16</sup></a></h2><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a></article><article class=archive-item><a href=/posts/20b75e9/ class=archive-item-link>为什么很多教程中都有 Foo Bar？</a></article><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a></article><article class=archive-item><a href=/posts/ohmyzsh-custom/ class=archive-item-link>自定义 Ohmyzsh 主题</a></article><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a></article><div class=more-post><a href=/categories/grocery/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/thoughts/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>有所思 <sup>15</sup></a></h2><article class=archive-item><a href=/posts/404d6a2/ class=archive-item-link>坐高铁去柳州吃螺狮粉</a></article><article class=archive-item><a href=/years/2023/ class=archive-item-link>2023 年度总结</a></article><article class=archive-item><a href=/years/2022/ class=archive-item-link>2022 年度总结</a></article><article class=archive-item><a href=/years/2020-2021/ class=archive-item-link>2020&amp;2021 總結</a></article><article class=archive-item><a href=/me/whysmoke/ class=archive-item-link>你为什么吸烟？</a></article><div class=more-post><a href=/categories/thoughts/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/python/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Python <sup>13</sup></a></h2><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a></article><article class=archive-item><a href=/posts/pysx2/ class=archive-item-link>Python 实训总结Ⅱ</a></article><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a></article><div class=more-post><a href=/categories/python/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/css/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>CSS <sup>12</sup></a></h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a></article><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a></article><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a></article><article class=archive-item><a href=/posts/css-viewport/ class=archive-item-link>震惊！CSS 竟然能获取视口尺寸？</a></article><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a></article><div class=more-post><a href=/categories/css/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/os/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>OS <sup>12</sup></a></h2><article class=archive-item><a href=/posts/newline/ class=archive-item-link>不同系统的换行符的差异</a></article><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a></article><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a></article><div class=more-post><a href=/categories/os/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>瞎折腾 <sup>10</sup></a></h2><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a></article><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a></article><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a></article><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a></article><div class=more-post><a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/spec/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>程序猿的自我修养 <sup>9</sup></a></h2><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a></article><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a></article><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a></article><article class=archive-item><a href=/posts/document-style-guide/ class=archive-item-link>中文技术文档的写作规范</a></article><div class=more-post><a href=/categories/spec/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/git/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Git <sup>8</sup></a></h2><article class=archive-item><a href=/posts/git-summary/ class=archive-item-link>Git 统计代码量</a></article><article class=archive-item><a href=/posts/6550187/ class=archive-item-link>Git Submodule: Already Exists in the Index</a></article><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a></article><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a></article><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a></article><div class=more-post><a href=/categories/git/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/node.js/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Node.js <sup>6</sup></a></h2><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a></article><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a></article><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a></article><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a></article><div class=more-post><a href=/categories/node.js/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/php/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>PHP <sup>6</sup></a></h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a></article><article class=archive-item><a href=/posts/phppushurl/ class=archive-item-link>Php 同时主动推送链接到百度，神马等站长平台</a></article><article class=archive-item><a href=/posts/phpfile/ class=archive-item-link>Php 按行读取文件信息</a></article><article class=archive-item><a href=/posts/phpform/ class=archive-item-link>简单评论模块--Php 表单练习</a></article><article class=archive-item><a href=/posts/phpfunc/ class=archive-item-link>Php 函数学习</a></article><div class=more-post><a href=/categories/php/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/html/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>HTML <sup>4</sup></a></h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a></article><article class=archive-item><a href=/posts/auto-sizes/ class=archive-item-link>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a></article><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a></article><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/browser/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Browser <sup>2</sup></a></h2><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/%E7%BF%BB%E8%AF%91/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>翻译 <sup>2</sup></a></h2><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/go/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>Go <sup>1</sup></a></h2><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/mysql/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>MySQL <sup>1</sup></a></h2><article class=archive-item><a href=/posts/sql/ class=archive-item-link>SQL 总结</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/react/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>React <sup>1</sup></a></h2><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/><i class=\"fa-regular fa-folder me-1\" aria-hidden=true></i>计算机网络 <sup>1</sup></a></h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a></article></div></div></div></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/java/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Java - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"date_published\":\"2019-05-06T17:41:35&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-urlreader/\",\"url\":\"https://lruihao.cn/posts/java-urlreader/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"URLConnection\",\"Java\"],\"summary\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"文件加密解密（字节流）\",\"date_published\":\"2019-05-02T23:04:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/byteio/\",\"url\":\"https://lruihao.cn/posts/byteio/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\u003c/p\\u003e\\n\\u003cp\\u003e这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模拟借书系统（java 异常练习）\",\"date_published\":\"2019-05-01T16:52:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/javaexception/\",\"url\":\"https://lruihao.cn/posts/javaexception/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"image\":\"/posts/javaexception/images/1.png\",\"content_html\":\"模拟借书系统（java 异常练习）\"},{\"title\":\"用记事本编写第一个 java 程序\",\"date_published\":\"2019-04-19T19:49:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hellojava/\",\"url\":\"https://lruihao.cn/posts/hellojava/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\njavac java \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以\\u003ccode\\u003e.java\\u003c/code\\u003e为后缀的文件；然后将这些源程序用\\u003ccode\\u003ejavac\\u003c/code\\u003e编译成\\u003ccode\\u003e.class\\u003c/code\\u003e后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\u003cbr\\u003e\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003ejavac\\u003c/li\\u003e\\n\\u003cli\\u003ejava\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 正则表达式练习\",\"date_published\":\"2019-04-18T22:04:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-regex/\",\"url\":\"https://lruihao.cn/posts/java-regex/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"regex\",\"Java\"],\"summary\":\"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\"); String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\\"匹配结果：\\\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的 p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\"); // 验证没有区号的 if (str.length() \\u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" + \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" + \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"邮箱\\\"\\u003e\\u003cspan\\u003e7 邮箱\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%82%ae%e7%ae%b1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexDemo {\\n    public static void main(String[] args) {\\n//       Pattern 类 正则表达式的编译表示。\\n        Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\");\\n        String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"};\\n        for (String email :\\n                emails) {\\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\\n            Matcher matcher = pattern.matcher(email);\\n            System.out.println(email + \\\"匹配结果：\\\" + matcher.matches());\\n        }\\n    }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003eadmin@lruihao.cn 匹配结果：true\\nlruihao.cn 匹配结果：false\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"电话\\\"\\u003e\\u003cspan\\u003e8 电话\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b5%e8%af%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epackage base;\\n\\nimport java.util.Scanner;\\nimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexTest {\\n  public static void main(String[] args) {\\n    Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\");\\n    Scanner sc=new Scanner(System.in);\\n    String telnum=sc.nextLine();\\n    sc.close();\\n    Matcher matcher=patter.matcher(telnum);\\n    System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches());\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 获取当前的 httpSession\\n * @return\\n */\\npublic static HttpSession getSession() {\\n return getRequest().getSession();\\n}\\n/**\\n * 手机号验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isMobile(final String str) {\\n  Pattern p = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号\\n  m = p.matcher(str);\\n  b = m.matches();\\n  return b;\\n}\\n/**\\n * 电话号码验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isPhone(final String str) {\\n  Pattern p1 = null, p2 = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的\\n  p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\");     // 验证没有区号的\\n  if (str.length() \\u003e 9) {\\n    m = p1.matcher(str);\\n    b = m.matches();\\n  } else {\\n    m = p2.matcher(str);\\n    b = m.matches();\\n  }\\n  return b;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"身份证\\\"\\u003e\\u003cspan\\u003e9 身份证\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ba%ab%e4%bb%bd%e8%af%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/* 身份证正则表达式 16 或 18 */\\n   public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" +\\n           \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" +\\n           \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"},{\"title\":\"Java 父类子类的对象初始化过程\",\"date_published\":\"2019-03-21T13:36:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/substatus/\",\"url\":\"https://lruihao.cn/posts/substatus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 泛型 test\",\"date_published\":\"2019-03-16T13:56:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fanxing/\",\"url\":\"https://lruihao.cn/posts/fanxing/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"泛型\",\"Java\"],\"summary\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;)\\u003c/li\\u003e\\n\\u003cli\\u003e类型通配符一般使用问号\\u003ccode\\u003e?\\u003c/code\\u003e代替具体的类型\\u003ccode\\u003e实\\u003c/code\\u003e参，注意不是类型形参。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"匿名类在可视化界面中的应用\",\"date_published\":\"2019-03-15T22:31:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qframe/\",\"url\":\"https://lruihao.cn/posts/qframe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"Java\"],\"summary\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ejava 中匿名类用的最多的地方就是可视化界面设计中，特别是将\\u003ccode\\u003e事件监听器\\u003c/code\\u003e注册到某个组件上的时候。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 继承 test\",\"date_published\":\"2019-01-24T15:07:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jicheng/\",\"url\":\"https://lruihao.cn/posts/jicheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 引用 继承的好处：\\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\\n设计原则：低耦合，高内聚。\\n耦合：类与类的关系。 内聚：自己完成事情的能力。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e引用\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e继承的好处：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e提高了代码的复用性\\u003c/li\\u003e\\n\\u003cli\\u003e提高了代码的维护性\\u003c/li\\u003e\\n\\u003cli\\u003e让类与类之间产生了关系，是多态的前提\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e继承的弊端：类的耦合性很强\\u003c/p\\u003e\\n\\u003cp\\u003e设计原则：低耦合，高内聚。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e耦合：类与类的关系。\\u003c/li\\u003e\\n\\u003cli\\u003e内聚：自己完成事情的能力。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 猜数字小游戏（Math 类）\",\"date_published\":\"2019-01-15T17:33:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mathclass/\",\"url\":\"https://lruihao.cn/posts/mathclass/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 大一刚学 c 的时候以前写过 c 语言版 的。\\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大一刚学 c 的时候以前写过 \\u003ca href=\\\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ec 语言版\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMath: 针对数学进行运算的类\\u003c/li\\u003e\\n\\u003cli\\u003e特点：没有构造方法，因为它的成员都是静态的\\u003c/li\\u003e\\n\\u003cli\\u003e产生随机数：\\npublic static double random(): 产生随机数，范围 [0.0,1.0)\\u003c/li\\u003e\\n\\u003cli\\u003e产生 1-100 之间的随机数\\nint number = (int)(Math.random()*100)+1;\\u003c/li\\u003e\\n\\u003cli\\u003e猜数字小游戏案例\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"面向对象基础知识总结\",\"date_published\":\"2019-01-15T16:07:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/duixiang/\",\"url\":\"https://lruihao.cn/posts/duixiang/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面向对象\",\"Java\"],\"summary\":\"35 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\\nA: 是一种更符合我们思考习惯的思想\\nB: 把复杂的问题简单化\\nC: 让我们从执行者变成了指挥者 举例：\\nA: 洗衣服\\nB: 吃饭\\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\\n学生 类\\n张三 对象 37 类的组成（掌握） 成员变量\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\\n其实就是方法，只不过不需要 static 了 案例：\\n学生类 class Student { String name; int age; public void study() {} }38 类的使用（掌握） 创建对象\\n格式：类名 对象名 = new 类名 (); 使用成员\\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); 39 成员变量和局部变量的区别（理解） 在类中的位置不同\\nA: 成员变量 类中，方法外\\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\\nA: 成员变量 在堆中\\nB: 局部变量 在栈中 生命周期不同\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\\nA: 成员变量 有默认初始化值\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 40 形式参数问题（理解） 基本类型\\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 41 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\\nA: 调用方法，仅仅只调用一次\\nB: 作为实际参数传递 42 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\\nA: 隐藏实现细节，提供公共的访问方式\\nB: 提高了代码的复用性\\nC: 提高了代码的安全性 使用原则\\nA: 把成员变量隐藏\\nB: 给出该成员变量对应的公共访问方式 43 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字（掌握） this：代表本类的对象 应用场景：\\n解决了局部变量隐藏成员变量的问题。\\n其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } public void study() { System.out.println(\\\"学生爱学习\\\"); } public void eat() { System.out.println(\\\"学生要吃饭\\\"); } public void sleep() { System.out.println(\\\"学生想睡觉\\\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\\"姓名是：\\\"+s.getName()); System.out.println(\\\"年龄是：\\\"+s.getAge()); } }45 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\\nA: 方法名和类名相同\\nB: 没有返回值类型\\nC: 没有返回值 注意事项\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\\nA: 无参+setXxx()\\nB: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\\\"张曼玉\\\",20); ss.show(); } }46 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\\nA: 加载 Student.class 文件进内存\\nB: 在栈中为 s 开辟空间\\nC: 在堆中为学生对象开辟空间\\nD: 为学生对象的成员变量赋默认值\\nE: 为学生对象的成员变量赋显示值\\nF: 通过构造方法给成员变量赋值\\nG: 对象构造完毕，把地址赋值给 s 变量 47 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\\nA: 随着类的加载而加载\\nB: 优先于对象存在\\nC: 被所有对象共享\\n这也是判断我们是不是该使用静态的条件\\n举例：饮水机（可共享 static) 和水杯例子。\\nD: 可以通过类名调用\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\\nA: 普通成员方法\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\nB: 静态成员方法\\n只能访问静态成员变量，静态成员方法\\n简记：静态只能访问静态\\n注意：\\n静态中是不能有 this 的。\\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\"); s1.show(); /* Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\"); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\"); s3.show(); */ Student s2 = new Student(\\\"马云\\\",35); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33); s3.show(); } }/* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\\"show\\\"); } public static void show2() { System.out.println(\\\"show2\\\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026ensp; } }/* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\\"林青霞\\\"); } }48 静态成员变量和普通成员变量的区别（理解） 所属不同\\n静态属于类的，称为类变量\\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\\n静态在方法区的静态区\\n非静态在堆内存 生命周期不同\\n静态随着类的加载而加载，随着类的消失而消失\\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\n非静态只能通过对象名调用 49 main 方法是静态的（理解） public static void main(String[] args)public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\nString[] args:\\n早期出现是为了接收键盘录入数据的。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"面向对象思想理解\\\"\\u003e\\u003cspan\\u003e35 面向对象思想（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e面向对象是基于面向过程的一种编程思想\\u003c/li\\u003e\\n\\u003cli\\u003e思想特点：\\u003cbr\\u003e\\nA: 是一种更符合我们思考习惯的思想\\u003cbr\\u003e\\nB: 把复杂的问题简单化\\u003cbr\\u003e\\nC: 让我们从执行者变成了指挥者\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\nA: 洗衣服\\u003cbr\\u003e\\nB: 吃饭\\u003cbr\\u003e\\nC: 买电脑\\u003c/li\\u003e\\n\\u003cli\\u003e举例并代码体现\\n把大象装进冰箱\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类与对象掌握\\\"\\u003e\\u003cspan\\u003e36 类与对象（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\\u003c/li\\u003e\\n\\u003cli\\u003e现实世界事物是如何表达的呢？\\n属性：外在特征\\u003cbr\\u003e\\n行为：内在行为\\u003c/li\\u003e\\n\\u003cli\\u003e我们学习的是 java 语言，它最基本的单位是类。\\u003cbr\\u003e\\n所以我们要学会用类来体现一个事物。\\u003c/li\\u003e\\n\\u003cli\\u003e类：是一组相关的属性和行为的集合\\u003c/li\\u003e\\n\\u003cli\\u003e对象：是该类事物的具体个体。\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\n学生 类\\u003cbr\\u003e\\n张三 对象\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的组成掌握\\\"\\u003e\\u003cspan\\u003e37 类的组成（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e成员变量\\u003cbr\\u003e\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e成员方法\\u003cbr\\u003e\\n其实就是方法，只不过不需要 static 了\\u003c/li\\u003e\\n\\u003cli\\u003e案例：\\u003cbr\\u003e\\n学生类\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  String name;\\n  int age;\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的使用掌握\\\"\\u003e\\u003cspan\\u003e38 类的使用（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e创建对象\\u003cbr\\u003e\\n格式：类名 对象名 = new 类名 ();\\u003c/li\\u003e\\n\\u003cli\\u003e使用成员\\u003cbr\\u003e\\n成员变量：对象名。变量名；\\n成员方法：对象名。方法名 (\\u0026hellip;);\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"成员变量和局部变量的区别理解\\\"\\u003e\\u003cspan\\u003e39 成员变量和局部变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e在类中的位置不同\\u003cbr\\u003e\\nA: 成员变量 类中，方法外\\u003cbr\\u003e\\nB: 局部变量 方法的形式参数，或者方法体中\\u003c/li\\u003e\\n\\u003cli\\u003e在内存中的位置不同\\u003cbr\\u003e\\nA: 成员变量 在堆中\\u003cbr\\u003e\\nB: 局部变量 在栈中\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\u003cbr\\u003e\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\\u003c/li\\u003e\\n\\u003cli\\u003e初始化值不同\\u003cbr\\u003e\\nA: 成员变量 有默认初始化值\\u003cbr\\u003e\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"形式参数问题理解\\\"\\u003e\\u003cspan\\u003e40 形式参数问题（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e基本类型\\u003cbr\\u003e\\n基本类型作为形式参数，需要的是该基本类型的值。\\u003c/li\\u003e\\n\\u003cli\\u003e引用类型\\u003cbr\\u003e\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"匿名对象理解\\\"\\u003e\\u003cspan\\u003e41 匿名对象（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e匿名对象：没有名字的对象。是对象的简化书写方式。\\u003c/li\\u003e\\n\\u003cli\\u003e使用场景\\u003cbr\\u003e\\nA: 调用方法，仅仅只调用一次\\u003cbr\\u003e\\nB: 作为实际参数传递\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"封装掌握\\\"\\u003e\\u003cspan\\u003e42 封装（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e隐藏实现细节，提供公共的访问方式\\u003c/li\\u003e\\n\\u003cli\\u003e好处：\\u003cbr\\u003e\\nA: 隐藏实现细节，提供公共的访问方式\\u003cbr\\u003e\\nB: 提高了代码的复用性\\u003cbr\\u003e\\nC: 提高了代码的安全性\\u003c/li\\u003e\\n\\u003cli\\u003e使用原则\\u003cbr\\u003e\\nA: 把成员变量隐藏\\u003cbr\\u003e\\nB: 给出该成员变量对应的公共访问方式\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"private-关键字掌握\\\"\\u003e\\u003cspan\\u003e43 private 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个权限修饰符\\u003c/li\\u003e\\n\\u003cli\\u003e可以修饰类的成员（成员变量和成员方法）\\u003c/li\\u003e\\n\\u003cli\\u003e仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  private String name;\\n  private int age;\\n\\n  public void setName(String n) {\\n   name = n;\\n  }\\n\\n  public String getName() {\\n   return name;\\n  }\\n\\n  public void setAge(int a) {\\n   age = a;\\n  }\\n\\n  public int getAge() {\\n   return age;\\n  }\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"this-关键字掌握\\\"\\u003e\\u003cspan\\u003e44 this 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003ethis：代表本类的对象\\u003c/li\\u003e\\n\\u003cli\\u003e应用场景：\\u003cbr\\u003e\\n解决了局部变量隐藏成员变量的问题。\\u003cbr\\u003e\\n其他用法和 super 一起讲。\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public void setName(String name) {//局部变量\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n\\n    public void study() {\\n      System.out.println(\\\"学生爱学习\\\");\\n    }\\n\\n    public void eat() {\\n      System.out.println(\\\"学生要吃饭\\\");\\n    }\\n\\n    public void sleep() {\\n      System.out.println(\\\"学生想睡觉\\\");\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      Student s = new Student();\\n\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n\\n      s.show();\\n      s.study();\\n      s.eat();\\n      s.sleep();\\n\\n      System.out.println(\\\"姓名是：\\\"+s.getName());\\n      System.out.println(\\\"年龄是：\\\"+s.getAge());\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"构造方法掌握\\\"\\u003e\\u003cspan\\u003e45 构造方法（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e作用：对对象的数据进行初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\nA: 方法名和类名相同\\u003cbr\\u003e\\nB: 没有返回值类型\\u003cbr\\u003e\\nC: 没有返回值\\u003c/li\\u003e\\n\\u003cli\\u003e注意事项\\u003cbr\\u003e\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\u003cbr\\u003e\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\u003cbr\\u003e\\n建议：我们自己手动给出无参构造方法\\u003c/li\\u003e\\n\\u003cli\\u003e给成员变量赋值：\\u003cbr\\u003e\\nA: 无参+setXxx()\\u003cbr\\u003e\\nB: 带参\\u003c/li\\u003e\\n\\u003cli\\u003e一个标准的代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public Student() {}\\n\\n    public Student(String name,int age) {//构造方法\\n      this.name = name;\\n      this.age = age;\\n    }\\n\\n    public void setName(String name) {\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      //无参+setXxx()\\n      Student s = new Student();\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n      s.show();\\n\\n      //带参\\n      Student ss = new Student(\\\"张曼玉\\\",20);\\n      ss.show();\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"对象的初始化过程理解\\\"\\u003e\\u003cspan\\u003e46 对象的初始化过程（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eStudent s = new Student(); 做了哪些事情\\u003cbr\\u003e\\nA: 加载 Student.class 文件进内存\\u003cbr\\u003e\\nB: 在栈中为 s 开辟空间\\u003cbr\\u003e\\nC: 在堆中为学生对象开辟空间\\u003cbr\\u003e\\nD: 为学生对象的成员变量赋默认值\\u003cbr\\u003e\\nE: 为学生对象的成员变量赋显示值\\u003cbr\\u003e\\nF: 通过构造方法给成员变量赋值\\u003cbr\\u003e\\nG: 对象构造完毕，把地址赋值给 s 变量\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"static-关键字掌握\\\"\\u003e\\u003cspan\\u003e47 static 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个状态修饰符。静态的意思\\u003c/li\\u003e\\n\\u003cli\\u003e它可以修饰成员变量和成员方法\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\n\\u003cstrong\\u003eA: 随着类的加载而加载\\u003cbr\\u003e\\nB: 优先于对象存在\\u003cbr\\u003e\\nC: 被所有对象共享\\u003c/strong\\u003e\\u003cbr\\u003e\\n这也是判断我们是不是该使用静态的条件\\u003cbr\\u003e\\n举例：饮水机（可共享 static) 和水杯例子。\\u003cbr\\u003e\\nD: 可以通过类名调用\\u003cbr\\u003e\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用\\u003c/li\\u003e\\n\\u003cli\\u003e方法访问特点\\u003cbr\\u003e\\nA: 普通成员方法\\u003cbr\\u003e\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\u003cbr\\u003e\\nB: 静态成员方法\\u003cbr\\u003e\\n\\u003cstrong\\u003e只能访问静态成员变量，静态成员方法\\u003cbr\\u003e\\n简记：静态只能访问静态\\u003c/strong\\u003e\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n\\u003cstrong\\u003e静态中是不能有 this 的。\\u003cbr\\u003e\\n先进内存的不能访问后进内存的。反之可以。\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\\n *\\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\\n */\\nclass Student {\\n  //姓名\\n  String name;\\n  //年龄\\n  int age;\\n  //班级编号\\n  //String classNumber;\\n  static String classNumber;\\n\\n  public Student(String name,int age) {\\n    this.name = name;\\n    this.age = age;\\n  }\\n\\n  public Student(String name,int age,String classNumber) {\\n    this.name = name;\\n    this.age = age;\\n    this.classNumber = classNumber;\\n  }\\n\\n  public void show() {\\n    System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber);\\n  }\\n}\\n\\nclass StudentDemo {\\n  public static void main(String[] args) {\\n    //创建学生对象\\n    Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\");\\n    s1.show();\\n\\n    /*\\n    Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\");\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\");\\n    s3.show();\\n    */\\n    Student s2 = new Student(\\\"马云\\\",35);\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33);\\n    s3.show();\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static: 静态关键字。\\n\\n  作用：\\n    可以修饰成员变量和成员方法\\n\\n  特点：\\n    A: 随着类的加载而加载\\n    B: 优先于对象存在\\n    C: 被类的所有对象共享\\n      这也是我们判断是否使用静态关键字的条件\\n\\n      饮水机：可以被静态修饰\\n      水杯：不可以被静态修饰\\n    D: 可以通过类名调用\\n      我们的调用既可以是对象，还可以是类名\\n*/\\nclass Student {\\n  public void show() {\\n    System.out.println(\\\"show\\\");\\n  }\\n\\n  public static void show2() {\\n    System.out.println(\\\"show2\\\");\\n  }\\n}\\n\\nclass StudentDemo2 {\\n  public static void main(String[] args) {\\n    Student s = new Student();\\n    s.show();\\n    s.show2();\\n\\n    Student.show2();\\n    //Student.show();\\u0026ensp;\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static 的注意事项：\\n    A: 在静态方法中是没有 this 关键字的\\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\\n    B: 静态只能访问静态。\\n      非静态的成员方法：\\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\n      静态的成员方法：\\n        只能访问静态的成员变量，静态的成员方法\\n*/\\n/*\\nclass Student {\\n  private String name;\\n\\n  public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this\\n    this.name = name;\\n  }\\n\\n  public void show() {\\n    System.out.println(name);\\n  }\\n}*/\\n\\nclass Demo {\\n  int x = 10;\\n  static int y = 20;\\n\\n  public void show() {\\n    System.out.println(x);\\n    System.out.println(y);\\n  }\\n\\n  public static void show2() {\\n    //System.out.println(x);\\u0026ensp;\\n    System.out.println(y);//√\\n  }\\n\\n  public void show3() {\\n    show();\\n    show2();\\n  }\\n\\n  public static void show4() {\\n    //show(); 只能访问静态的成员方法\\n    show2();\\n  }\\n}\\n\\nclass StudentDemo3 {\\n  public static void main(String[] args) {\\n    //Student.setName(\\\"林青霞\\\");\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"静态成员变量和普通成员变量的区别理解\\\"\\u003e\\u003cspan\\u003e48 静态成员变量和普通成员变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e所属不同\\u003cbr\\u003e\\n静态属于类的，称为类变量\\u003cbr\\u003e\\n非静态属于对象的，称为对象变量，实例变量\\u003c/li\\u003e\\n\\u003cli\\u003e内存空间不同\\u003cbr\\u003e\\n静态在方法区的静态区\\u003cbr\\u003e\\n非静态在堆内存\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\n静态随着类的加载而加载，随着类的消失而消失\\u003cbr\\u003e\\n非静态随着对象的创建而存在，随着对象的消失而消失\\u003c/li\\u003e\\n\\u003cli\\u003e调用不同\\u003cbr\\u003e\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\u003cbr\\u003e\\n非静态只能通过对象名调用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"main-方法是静态的理解\\\"\\u003e\\u003cspan\\u003e49 main 方法是静态的（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epublic static void main(String[] args)\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003epublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\u003cbr\\u003e\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\u003cbr\\u003e\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\u003cbr\\u003e\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\u003cbr\\u003e\\nString[] args:\\u003cbr\\u003e\\n早期出现是为了接收键盘录入数据的。\\u003c/p\\u003e\"},{\"title\":\"java 水仙花数（循环）\",\"date_published\":\"2019-01-14T17:30:24&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-range/\",\"url\":\"https://lruihao.cn/posts/java-range/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"水仙花数\",\"Java\"],\"summary\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1\\u003csup\\u003e3 + 5\\u003c/sup\\u003e3+ 3^3 = 153）。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 录入数据\",\"date_published\":\"2019-01-14T15:33:46&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-input/\",\"url\":\"https://lruihao.cn/posts/java-input/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"5 记忆格式 (1) 导包：\\nimport java.util.Scanner;\\n注意：位置在 class 的上面。\\n(2) 创建键盘录入对象：\\nScanner sc = new Scanner(System.in);\\n(3) 获取数据\\nint i = sc.nextInt();\\n(4) 练习：\\nA: 求两个数据的和\\nB: 获取两个数据中较大的值\\nC: 获取三个数据中较大的值\\nD: 比较两个数是否相等\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"记忆格式\\\"\\u003e\\u003cspan\\u003e5 记忆格式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e(1) 导包：\\u003cbr\\u003e\\nimport java.util.Scanner;\\u003cbr\\u003e\\n注意：位置在 class 的上面。\\u003cbr\\u003e\\n(2) 创建键盘录入对象：\\u003cbr\\u003e\\nScanner sc = new Scanner(System.in);\\u003cbr\\u003e\\n(3) 获取数据\\u003cbr\\u003e\\nint i = sc.nextInt();\\u003cbr\\u003e\\n(4) 练习：\\u003cbr\\u003e\\nA: 求两个数据的和\\u003cbr\\u003e\\nB: 获取两个数据中较大的值\\u003cbr\\u003e\\nC: 获取三个数据中较大的值\\u003cbr\\u003e\\nD: 比较两个数是否相等\\u003c/p\\u003e\"},{\"title\":\"java 标识符\",\"date_published\":\"2019-01-14T15:07:57&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/biaoshi/\",\"url\":\"https://lruihao.cn/posts/biaoshi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"1 标识符 给类，接口，方法或者变量起名字的符号\\n2 组成规则 A: 英文字母大小写\\nB: 数字\\nC:_和$\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"标识符\\\"\\u003e\\u003cspan\\u003e1 标识符\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%87%e8%af%86%e7%ac%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给类，接口，方法或者变量起名字的符号\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"组成规则\\\"\\u003e\\u003cspan\\u003e2 组成规则\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA: 英文字母大小写\\u003cbr\\u003e\\nB: 数字\\u003cbr\\u003e\\nC:_和$\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/java/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Java\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-08T20:55:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/java/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Java\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Java\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/java/ title=\"Java | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/java/index.xml title=\"Java | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/java/feed.json title=\"Java | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/java/feed.json title=\"Java | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/java/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Java <sup>17</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a>\n<span class=archive-item-date title='2019-05-06 17:41:35'>05-06</span></article><article class=archive-item><a href=/posts/byteio/ class=archive-item-link>文件加密解密（字节流）</a>\n<span class=archive-item-date title='2019-05-02 23:04:32'>05-02</span></article><article class=archive-item><a href=/posts/javaexception/ class=archive-item-link>模拟借书系统（java 异常练习）</a>\n<span class=archive-item-date title='2019-05-01 16:52:21'>05-01</span></article><article class=archive-item><a href=/posts/hellojava/ class=archive-item-link>用记事本编写第一个 Java 程序</a>\n<span class=archive-item-date title='2019-04-19 19:49:54'>04-19</span></article><article class=archive-item><a href=/posts/java-regex/ class=archive-item-link>Java 正则表达式练习</a>\n<span class=archive-item-date title='2019-04-18 22:04:21'>04-18</span></article><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article><article class=archive-item><a href=/posts/substatus/ class=archive-item-link>Java 父类子类的对象初始化过程</a>\n<span class=archive-item-date title='2019-03-21 13:36:25'>03-21</span></article><article class=archive-item><a href=/posts/fanxing/ class=archive-item-link>Java 泛型 Test</a>\n<span class=archive-item-date title='2019-03-16 13:56:01'>03-16</span></article><article class=archive-item><a href=/posts/qframe/ class=archive-item-link>匿名类在可视化界面中的应用</a>\n<span class=archive-item-date title='2019-03-15 22:31:28'>03-15</span></article><article class=archive-item><a href=/posts/jicheng/ class=archive-item-link>Java 继承 Test</a>\n<span class=archive-item-date title='2019-01-24 15:07:50'>01-24</span></article><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article><article class=archive-item><a href=/posts/mathclass/ class=archive-item-link>Java 猜数字小游戏（Math 类）</a>\n<span class=archive-item-date title='2019-01-15 17:33:28'>01-15</span></article><article class=archive-item><a href=/posts/duixiang/ class=archive-item-link>面向对象基础知识总结</a>\n<span class=archive-item-date title='2019-01-15 16:07:31'>01-15</span></article><article class=archive-item><a href=/posts/java-range/ class=archive-item-link>Java 水仙花数（循环）</a>\n<span class=archive-item-date title='2019-01-14 17:30:24'>01-14</span></article><article class=archive-item><a href=/posts/java-input/ class=archive-item-link>Java 录入数据</a>\n<span class=archive-item-date title='2019-01-14 15:33:46'>01-14</span></article><article class=archive-item><a href=/posts/biaoshi/ class=archive-item-link>Java 标识符</a>\n<span class=archive-item-date title='2019-01-14 15:07:57'>01-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/java/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/java/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Java - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/java/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/java/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 通过 URL 和 URLConnection 访问网页资源</title><link>https://lruihao.cn/posts/java-urlreader/</link><pubDate>Mon, 06 May 2019 17:41:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-urlreader/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>文件加密解密（字节流）</title><link>https://lruihao.cn/posts/byteio/</link><pubDate>Thu, 02 May 2019 23:04:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/byteio/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。&lt;/p&gt;\n&lt;p&gt;这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>模拟借书系统（java 异常练习）</title><link>https://lruihao.cn/posts/javaexception/</link><pubDate>Wed, 01 May 2019 16:52:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/javaexception/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>模拟借书系统（java 异常练习）</description></item><item><title>用记事本编写第一个 java 程序</title><link>https://lruihao.cn/posts/hellojava/</link><pubDate>Fri, 19 Apr 2019 19:49:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hellojava/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以&lt;code&gt;.java&lt;/code&gt;为后缀的文件；然后将这些源程序用&lt;code&gt;javac&lt;/code&gt;编译成&lt;code&gt;.class&lt;/code&gt;后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。&lt;br&gt;\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;javac&lt;/li&gt;\n&lt;li&gt;java&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 正则表达式练习</title><link>https://lruihao.cn/posts/java-regex/</link><pubDate>Thu, 18 Apr 2019 22:04:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-regex/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"邮箱\"&gt;&lt;span&gt;10 邮箱&lt;/span&gt;\n &lt;a href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;import java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(&amp;#34;^[a-zA-Z0-9_!#$%&amp;amp;&amp;#39;*&amp;#43;/=?`{|}~^.-]&amp;#43;@[a-zA-Z0-9.-]&amp;#43;$&amp;#34;);\n String[] emails = {&amp;#34;admin@lruihao.cn&amp;#34;, &amp;#34;lruihao.cn&amp;#34;};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email &amp;#43; &amp;#34;匹配结果：&amp;#34; &amp;#43; matcher.matches());\n }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;admin@lruihao.cn 匹配结果：true\nlruihao.cn 匹配结果：false&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"电话\"&gt;&lt;span&gt;11 电话&lt;/span&gt;\n &lt;a href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;package base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;);\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum&amp;#43;&amp;#34;匹配结果： &amp;#34;&amp;#43;matcher.matches());\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(&amp;#34;^[0][1-9]{2,3}-[0-9]{5,10}$&amp;#34;); // 验证带区号的\n p2 = Pattern.compile(&amp;#34;^[1-9]{1}[0-9]{5,8}$&amp;#34;); // 验证没有区号的\n if (str.length() &amp;gt; 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"身份证\"&gt;&lt;span&gt;12 身份证&lt;/span&gt;\n &lt;a href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=&amp;#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&amp;#34; &amp;#43;\n &amp;#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&amp;#34; &amp;#43;\n &amp;#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&amp;#34;;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>java 常用类</title><link>https://lruihao.cn/posts/stringbuffer/</link><pubDate>Sun, 14 Apr 2019 10:12:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/stringbuffer/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"&gt;&lt;span&gt;13 StringBuffer/StringBuilder（掌握）&lt;/span&gt;\n &lt;a href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"&gt;&lt;span&gt;13.1 StringBuffer 是线程安全的可变字符串&lt;/span&gt;\n &lt;a href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;StringBuilder 是线程不安全的可变字符串。&lt;br&gt;\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。&lt;/p&gt;</description></item><item><title>Java 父类子类的对象初始化过程</title><link>https://lruihao.cn/posts/substatus/</link><pubDate>Thu, 21 Mar 2019 13:36:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/substatus/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 泛型 test</title><link>https://lruihao.cn/posts/fanxing/</link><pubDate>Sat, 16 Mar 2019 13:56:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fanxing/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&amp;lt;&amp;gt;)&lt;/li&gt;\n&lt;li&gt;类型通配符一般使用问号&lt;code&gt;?&lt;/code&gt;代替具体的类型&lt;code&gt;实&lt;/code&gt;参，注意不是类型形参。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>匿名类在可视化界面中的应用</title><link>https://lruihao.cn/posts/qframe/</link><pubDate>Fri, 15 Mar 2019 22:31:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qframe/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;java 中匿名类用的最多的地方就是可视化界面设计中，特别是将&lt;code&gt;事件监听器&lt;/code&gt;注册到某个组件上的时候。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 继承 test</title><link>https://lruihao.cn/posts/jicheng/</link><pubDate>Thu, 24 Jan 2019 15:07:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jicheng/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;引用&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;继承的好处：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;提高了代码的复用性&lt;/li&gt;\n&lt;li&gt;提高了代码的维护性&lt;/li&gt;\n&lt;li&gt;让类与类之间产生了关系，是多态的前提&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;继承的弊端：类的耦合性很强&lt;/p&gt;\n&lt;p&gt;设计原则：低耦合，高内聚。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;耦合：类与类的关系。&lt;/li&gt;\n&lt;li&gt;内聚：自己完成事情的能力。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Arrays 类及基本使用</title><link>https://lruihao.cn/posts/java-arrays/</link><pubDate>Fri, 18 Jan 2019 13:13:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-arrays/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"主要方法\"&gt;&lt;span&gt;10 主要方法&lt;/span&gt;\n &lt;a href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;static type[] copyof(type[] original,int length)&lt;/li&gt;\n&lt;li&gt;static int binarysearch(type[] a,type key)&lt;/li&gt;\n&lt;li&gt;static boolean equals(type[] a,type[] b)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,type val)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,int fromindex,int toindex,type val)&lt;/li&gt;\n&lt;li&gt;static void sort(type[] a)&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 猜数字小游戏（Math 类）</title><link>https://lruihao.cn/posts/mathclass/</link><pubDate>Tue, 15 Jan 2019 17:33:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mathclass/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;大一刚学 c 的时候以前写过 &lt;a href=\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;c 语言版&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ol&gt;\n&lt;li&gt;Math: 针对数学进行运算的类&lt;/li&gt;\n&lt;li&gt;特点：没有构造方法，因为它的成员都是静态的&lt;/li&gt;\n&lt;li&gt;产生随机数：\npublic static double random(): 产生随机数，范围 [0.0,1.0)&lt;/li&gt;\n&lt;li&gt;产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;&lt;/li&gt;\n&lt;li&gt;猜数字小游戏案例&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>面向对象基础知识总结</title><link>https://lruihao.cn/posts/duixiang/</link><pubDate>Tue, 15 Jan 2019 16:07:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/duixiang/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"面向对象思想理解\"&gt;&lt;span&gt;52 面向对象思想（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;面向对象是基于面向过程的一种编程思想&lt;/li&gt;\n&lt;li&gt;思想特点：&lt;br&gt;\nA: 是一种更符合我们思考习惯的思想&lt;br&gt;\nB: 把复杂的问题简单化&lt;br&gt;\nC: 让我们从执行者变成了指挥者&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\nA: 洗衣服&lt;br&gt;\nB: 吃饭&lt;br&gt;\nC: 买电脑&lt;/li&gt;\n&lt;li&gt;举例并代码体现\n把大象装进冰箱&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类与对象掌握\"&gt;&lt;span&gt;53 类与对象（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。&lt;/li&gt;\n&lt;li&gt;现实世界事物是如何表达的呢？\n属性：外在特征&lt;br&gt;\n行为：内在行为&lt;/li&gt;\n&lt;li&gt;我们学习的是 java 语言，它最基本的单位是类。&lt;br&gt;\n所以我们要学会用类来体现一个事物。&lt;/li&gt;\n&lt;li&gt;类：是一组相关的属性和行为的集合&lt;/li&gt;\n&lt;li&gt;对象：是该类事物的具体个体。&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\n学生 类&lt;br&gt;\n张三 对象&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类的组成掌握\"&gt;&lt;span&gt;54 类的组成（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;成员变量&lt;br&gt;\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。&lt;/li&gt;\n&lt;li&gt;成员方法&lt;br&gt;\n其实就是方法，只不过不需要 static 了&lt;/li&gt;\n&lt;li&gt;案例：&lt;br&gt;\n学生类&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n String name;\n int age;\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"类的使用掌握\"&gt;&lt;span&gt;55 类的使用（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;创建对象&lt;br&gt;\n格式：类名 对象名 = new 类名 ();&lt;/li&gt;\n&lt;li&gt;使用成员&lt;br&gt;\n成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&amp;hellip;);&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"&gt;&lt;span&gt;56 成员变量和局部变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;在类中的位置不同&lt;br&gt;\nA: 成员变量 类中，方法外&lt;br&gt;\nB: 局部变量 方法的形式参数，或者方法体中&lt;/li&gt;\n&lt;li&gt;在内存中的位置不同&lt;br&gt;\nA: 成员变量 在堆中&lt;br&gt;\nB: 局部变量 在栈中&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失&lt;br&gt;\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失&lt;/li&gt;\n&lt;li&gt;初始化值不同&lt;br&gt;\nA: 成员变量 有默认初始化值&lt;br&gt;\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"形式参数问题理解\"&gt;&lt;span&gt;57 形式参数问题（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;基本类型&lt;br&gt;\n基本类型作为形式参数，需要的是该基本类型的值。&lt;/li&gt;\n&lt;li&gt;引用类型&lt;br&gt;\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"匿名对象理解\"&gt;&lt;span&gt;58 匿名对象（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;匿名对象：没有名字的对象。是对象的简化书写方式。&lt;/li&gt;\n&lt;li&gt;使用场景&lt;br&gt;\nA: 调用方法，仅仅只调用一次&lt;br&gt;\nB: 作为实际参数传递&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"封装掌握\"&gt;&lt;span&gt;59 封装（掌握）&lt;/span&gt;\n &lt;a href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;隐藏实现细节，提供公共的访问方式&lt;/li&gt;\n&lt;li&gt;好处：&lt;br&gt;\nA: 隐藏实现细节，提供公共的访问方式&lt;br&gt;\nB: 提高了代码的复用性&lt;br&gt;\nC: 提高了代码的安全性&lt;/li&gt;\n&lt;li&gt;使用原则&lt;br&gt;\nA: 把成员变量隐藏&lt;br&gt;\nB: 给出该成员变量对应的公共访问方式&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"private-关键字掌握\"&gt;&lt;span&gt;60 private 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个权限修饰符&lt;/li&gt;\n&lt;li&gt;可以修饰类的成员（成员变量和成员方法）&lt;/li&gt;\n&lt;li&gt;仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"this-关键字掌握\"&gt;&lt;span&gt;61 this 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;this：代表本类的对象&lt;/li&gt;\n&lt;li&gt;应用场景：&lt;br&gt;\n解决了局部变量隐藏成员变量的问题。&lt;br&gt;\n其他用法和 super 一起讲。&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n\n public void study() {\n System.out.println(&amp;#34;学生爱学习&amp;#34;);\n }\n\n public void eat() {\n System.out.println(&amp;#34;学生要吃饭&amp;#34;);\n }\n\n public void sleep() {\n System.out.println(&amp;#34;学生想睡觉&amp;#34;);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;s.getName());\n System.out.println(&amp;#34;年龄是：&amp;#34;&amp;#43;s.getAge());\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"构造方法掌握\"&gt;&lt;span&gt;62 构造方法（掌握）&lt;/span&gt;\n &lt;a href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;作用：对对象的数据进行初始化。&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\nA: 方法名和类名相同&lt;br&gt;\nB: 没有返回值类型&lt;br&gt;\nC: 没有返回值&lt;/li&gt;\n&lt;li&gt;注意事项&lt;br&gt;\nA: 如果我们没写构造方法，系统将默认给出无参构造方法&lt;br&gt;\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法&lt;br&gt;\n建议：我们自己手动给出无参构造方法&lt;/li&gt;\n&lt;li&gt;给成员变量赋值：&lt;br&gt;\nA: 无参+setXxx()&lt;br&gt;\nB: 带参&lt;/li&gt;\n&lt;li&gt;一个标准的代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参&amp;#43;setXxx()\n Student s = new Student();\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(&amp;#34;张曼玉&amp;#34;,20);\n ss.show();\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"对象的初始化过程理解\"&gt;&lt;span&gt;63 对象的初始化过程（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Student s = new Student(); 做了哪些事情&lt;br&gt;\nA: 加载 Student.class 文件进内存&lt;br&gt;\nB: 在栈中为 s 开辟空间&lt;br&gt;\nC: 在堆中为学生对象开辟空间&lt;br&gt;\nD: 为学生对象的成员变量赋默认值&lt;br&gt;\nE: 为学生对象的成员变量赋显示值&lt;br&gt;\nF: 通过构造方法给成员变量赋值&lt;br&gt;\nG: 对象构造完毕，把地址赋值给 s 变量&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"static-关键字掌握\"&gt;&lt;span&gt;64 static 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个状态修饰符。静态的意思&lt;/li&gt;\n&lt;li&gt;它可以修饰成员变量和成员方法&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\n&lt;strong&gt;A: 随着类的加载而加载&lt;br&gt;\nB: 优先于对象存在&lt;br&gt;\nC: 被所有对象共享&lt;/strong&gt;&lt;br&gt;\n这也是判断我们是不是该使用静态的条件&lt;br&gt;\n举例：饮水机（可共享 static) 和水杯例子。&lt;br&gt;\nD: 可以通过类名调用&lt;br&gt;\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用&lt;/li&gt;\n&lt;li&gt;方法访问特点&lt;br&gt;\nA: 普通成员方法&lt;br&gt;\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法&lt;br&gt;\nB: 静态成员方法&lt;br&gt;\n&lt;strong&gt;只能访问静态成员变量，静态成员方法&lt;br&gt;\n简记：静态只能访问静态&lt;/strong&gt;&lt;br&gt;\n注意：&lt;br&gt;\n&lt;strong&gt;静态中是不能有 this 的。&lt;br&gt;\n先进内存的不能访问后进内存的。反之可以。&lt;/strong&gt;&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;/**\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n *\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name&amp;#43;&amp;#34;---&amp;#34;&amp;#43;age&amp;#43;&amp;#34;---&amp;#34;&amp;#43;classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(&amp;#34;林青霞&amp;#34;,28,&amp;#34;20150306&amp;#34;);\n s1.show();\n\n /*\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35,&amp;#34;20150306&amp;#34;);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33,&amp;#34;20150306&amp;#34;);\n s3.show();\n */\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33);\n s3.show();\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static: 静态关键字。\n\n 作用：\n 可以修饰成员变量和成员方法\n\n 特点：\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机：可以被静态修饰\n 水杯：不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象，还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(&amp;#34;show&amp;#34;);\n }\n\n public static void show2() {\n System.out.println(&amp;#34;show2&amp;#34;);\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();&amp;amp;ensp;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static 的注意事项：\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法：\n 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n 静态的成员方法：\n 只能访问静态的成员变量，静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//&amp;amp;ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);&amp;amp;ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(&amp;#34;林青霞&amp;#34;);\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"&gt;&lt;span&gt;65 静态成员变量和普通成员变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;所属不同&lt;br&gt;\n静态属于类的，称为类变量&lt;br&gt;\n非静态属于对象的，称为对象变量，实例变量&lt;/li&gt;\n&lt;li&gt;内存空间不同&lt;br&gt;\n静态在方法区的静态区&lt;br&gt;\n非静态在堆内存&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\n静态随着类的加载而加载，随着类的消失而消失&lt;br&gt;\n非静态随着对象的创建而存在，随着对象的消失而消失&lt;/li&gt;\n&lt;li&gt;调用不同&lt;br&gt;\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用&lt;br&gt;\n非静态只能通过对象名调用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"main-方法是静态的理解\"&gt;&lt;span&gt;66 main 方法是静态的（理解）&lt;/span&gt;\n &lt;a href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;public static void main(String[] args)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。&lt;br&gt;\nstatic: 被 jvm 调用，不用创建对象，直接类名访问&lt;br&gt;\nvoid: 被 jvm 调用，不需要给 jvm 返回值&lt;br&gt;\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别&lt;br&gt;\nString[] args:&lt;br&gt;\n早期出现是为了接收键盘录入数据的。&lt;/p&gt;</description></item><item><title>java 水仙花数（循环）</title><link>https://lruihao.cn/posts/java-range/</link><pubDate>Mon, 14 Jan 2019 17:30:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-range/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1&lt;sup&gt;3 + 5&lt;/sup&gt;3+ 3^3 = 153）。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 录入数据</title><link>https://lruihao.cn/posts/java-input/</link><pubDate>Mon, 14 Jan 2019 15:33:46 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-input/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"记忆格式\"&gt;&lt;span&gt;7 记忆格式&lt;/span&gt;\n &lt;a href=\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;(1) 导包：&lt;br&gt;\nimport java.util.Scanner;&lt;br&gt;\n注意：位置在 class 的上面。&lt;br&gt;\n(2) 创建键盘录入对象：&lt;br&gt;\nScanner sc = new Scanner(System.in);&lt;br&gt;\n(3) 获取数据&lt;br&gt;\nint i = sc.nextInt();&lt;br&gt;\n(4) 练习：&lt;br&gt;\nA: 求两个数据的和&lt;br&gt;\nB: 获取两个数据中较大的值&lt;br&gt;\nC: 获取三个数据中较大的值&lt;br&gt;\nD: 比较两个数是否相等&lt;/p&gt;</description></item><item><title>java 标识符</title><link>https://lruihao.cn/posts/biaoshi/</link><pubDate>Mon, 14 Jan 2019 15:07:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/biaoshi/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"标识符\"&gt;&lt;span&gt;1 标识符&lt;/span&gt;\n &lt;a href=\"#%e6%a0%87%e8%af%86%e7%ac%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给类，接口，方法或者变量起名字的符号&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"组成规则\"&gt;&lt;span&gt;2 组成规则&lt;/span&gt;\n &lt;a href=\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A: 英文字母大小写&lt;br&gt;\nB: 数字&lt;br&gt;\nC:_和$&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/java/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/java/</title><link rel=canonical href=https://lruihao.cn/categories/java/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/java/\"></head></html>"
  },
  {
    "path": "categories/javascript/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"JavaScript - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"},{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"date_published\":\"2024-02-29T16:46:00&#43;08:00\",\"date_modified\":\"2024-06-12T18:57:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"url\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\n\",\"content_html\":\"\\u003cp\\u003e在 Element UI 的表格组件中，当表格列的内容过长时，设置 \\u003ccode\\u003eshow-overflow-tooltip\\u003c/code\\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\u003c/p\\u003e\"},{\"title\":\"给 el-card 添加折叠功能\",\"date_published\":\"2024-01-10T17:06:54&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-card-collapse/\",\"url\":\"https://lruihao.cn/posts/el-card-collapse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e出发点\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e虽然 Element 也有 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/collapse\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-collapse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，\\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/card\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-card\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"},{\"title\":\"JS 实现全屏和退出全屏\",\"date_published\":\"2023-09-15T17:29:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-fullscreen/\",\"url\":\"https://lruihao.cn/posts/js-fullscreen/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\"19 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e19 背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\u003c/p\\u003e\"},{\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"date_published\":\"2023-07-20T11:08:18&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"url\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\\n\",\"content_html\":\"\\u003cp\\u003e这篇文章主要是记录一下继承 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/backtop\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElBacktop\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件并修复了一些 bug 的过程。\\u003c/p\\u003e\"},{\"title\":\"electron 踩坑总结\",\"date_published\":\"2022-08-12T11:22:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/electron-summary/\",\"url\":\"https://lruihao.cn/posts/electron-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"electron\"],\"image\":\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\",\"summary\":\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\\n\",\"content_html\":\"\\u003cp\\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\\u003c/p\\u003e\"},{\"title\":\"前端页面内容加密总结\",\"date_published\":\"2022-08-08T13:49:22&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/encryption-fe/\",\"url\":\"https://lruihao.cn/posts/encryption-fe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"加密\"],\"image\":\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\",\"summary\":\"记录一下前端实现页面加密的思路。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下前端实现页面加密的思路。\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"重新认识 JavaScript\",\"date_published\":\"2022-05-01T10:59:36&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-rediscover/\",\"url\":\"https://lruihao.cn/posts/js-rediscover/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"ES6\"],\"summary\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e前言\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\u003c/p\\u003e\\n\\u003cp\\u003e每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Lightbox\",\"date_published\":\"2021-06-21T16:18:04&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightbox/\",\"url\":\"https://lruihao.cn/posts/lightbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Lightbox\",\"JavaScript\"],\"summary\":\"7 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"簡介\\\"\\u003e\\u003cspan\\u003e7 簡介\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b0%a1%e4%bb%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"设置网站运行时间\",\"date_published\":\"2019-09-19T22:03:29&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/site-time/\",\"url\":\"https://lruihao.cn/posts/site-time/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 使用javascript计算博客等网站的运行时间。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用\\u003ccode\\u003ejavascript\\u003c/code\\u003e计算博客等网站的运行时间。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"模仿知乎卡片式链接\",\"date_published\":\"2019-03-15T15:21:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linkcard/\",\"url\":\"https://lruihao.cn/posts/linkcard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"QQ 强制生成卡片式链接\",\"date_published\":\"2019-03-08T16:52:13&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qqxml/\",\"url\":\"https://lruihao.cn/posts/qqxml/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\u003cbr\\u003e\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \\u003ccode\\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\\u003c/code\\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"JS 验证码\",\"date_published\":\"2019-03-04T20:53:09&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-vcode/\",\"url\":\"https://lruihao.cn/posts/js-vcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 请点击验证码处：↑ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cstyle type=\\\"text/css\\\"\\u003e\\n\\n# code{  \\n\\n  font-family:Arial;  \\n  font-style:italic;  \\n  font-weight:bold;  \\n  border:2px solid #ddd;\\n  letter-spacing:9px;  \\n  color:blue;\\n  font-size: 15px;\\n}\\n\\u003c/style\\u003e\\n\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n    //设置一个全局的变量，便于保存验证码\\n    var code;\\n    function createCode(){\\n        //首先默认 code 为空字符串\\n        code = '';\\n        //设置长度，这里看需求，我这里设置了 4\\n        var codeLength = 4;\\n        var codeV = document.getElementById('code');\\n        //设置随机字符\\n        var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\\n        //循环 codeLength 我设置的 4 就是循环 4 次\\n        for(var i = 0; i \\u003c codeLength; i++){\\n            //设置随机数范围，这设置为 0 ~ 36\\n             var index = Math.floor(Math.random()*35);\\n             //字符串拼接 将每次随机的字符 进行拼接\\n             code += random[index];\\n        }\\n        //将拼接好的字符串赋值给展示的 Value\\n        codeV.value = code;\\n    }\\n\\n    //下面就是判断是否== 的代码，无需解释\\n    function validate(){\\n        var Input = document.getElementById('input');\\n        var oValue = Input.value.toUpperCase();\\n        if(oValue ==0){\\n            alert('请输入验证码');\\n        }else if(oValue != code){\\n            Input.value = '';\\n            alert('验证码不正确，请重新输入');\\n            createCode();\\n        }else{\\n            Input.value = '';\\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\\n        }\\n    }\\n\\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\\n    window.onload = function (){\\n\\n        createCode();\\n    }\\n\\u003c/script\\u003e\\n\\u003cdiv align=\\\"center\\\"\\u003e  \\n    \\u003cinput type = \\\"text\\\" id = \\\"input\\\" value=\\\"\\\" /\\u003e \\u003cinput type = \\\"button\\\" id=\\\"code\\\" onclick=\\\"createCode()\\\"/\\u003e \\u003cinput class=\\\"btn\\\" type = \\\"button\\\" value = \\\"验证\\\" onclick = \\\"validate()\\\"/\\u003e\\n    \\u003cbr/\\u003e请点击验证码处：↑\\n\\u003c/div\\u003e\"},{\"title\":\"js 判断用户设备类型及平台\",\"date_published\":\"2018-11-03T23:35:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-device/\",\"url\":\"https://lruihao.cn/posts/js-device/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"他山之石\"],\"summary\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\n\",\"content_html\":\"\\u003cp\\u003e前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\u003c/p\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"},{\"title\":\"网页夜间效果\",\"date_published\":\"2018-09-27T13:13:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/night/\",\"url\":\"https://lruihao.cn/posts/night/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。\\u003ccode\\u003ecss+js\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"date_published\":\"2018-09-26T16:36:08&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/crash-cheat/\",\"url\":\"https://lruihao.cn/posts/crash-cheat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 博客自定义 console log\",\"date_published\":\"2018-08-04T16:19:06&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/console-log/\",\"url\":\"https://lruihao.cn/posts/console-log/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\n我主要用到的工具：\\nconsole.log() Notepad++ 在线图片转文字工具 \",\"content_html\":\"\\u003cp\\u003e看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\u003cbr\\u003e\\n我主要用到的工具：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003econsole.log()\\u003c/li\\u003e\\n\\u003cli\\u003eNotepad++\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://picascii.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线图片转文字工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "categories/javascript/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>JavaScript - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"JavaScript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/javascript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"JavaScript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"JavaScript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/javascript/ title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/javascript/index.xml title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/javascript/feed.json title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/javascript/feed.json title=\"JavaScript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/javascript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>JavaScript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>JavaScript <sup>25</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title='2024-04-04 13:23:37'>04-04</span></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a>\n<span class=archive-item-date title='2024-02-29 16:46:00'>02-29</span></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a>\n<span class=archive-item-date title='2024-01-10 17:06:54'>01-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/posts/js-fullscreen/ class=archive-item-link>JS 实现全屏和退出全屏</a>\n<span class=archive-item-date title='2023-09-15 17:29:25'>09-15</span></article><article class=archive-item><a href=/posts/el-backtop-fix/ class=archive-item-link>用魔法打败魔法 - ElBacktop Fix</a>\n<span class=archive-item-date title='2023-07-20 11:08:18'>07-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/electron-summary/ class=archive-item-link>Electron 踩坑总结</a>\n<span class=archive-item-date title='2022-08-12 11:22:01'>08-12</span></article><article class=archive-item><a href=/posts/encryption-fe/ class=archive-item-link>前端页面内容加密总结</a>\n<span class=archive-item-date title='2022-08-08 13:49:22'>08-08</span></article><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><article class=archive-item><a href=/posts/js-rediscover/ class=archive-item-link>重新认识 JavaScript</a>\n<span class=archive-item-date title='2022-05-01 10:59:36'>05-01</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/lightbox/ class=archive-item-link>Lightbox</a>\n<span class=archive-item-date title='2021-06-21 16:18:04'>06-21</span></article><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title='2021-05-23 17:15:41'>05-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article><article class=archive-item><a href=/posts/site-time/ class=archive-item-link>设置网站运行时间</a>\n<span class=archive-item-date title='2019-09-19 22:03:29'>09-19</span></article><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article><article class=archive-item><a href=/posts/linkcard/ class=archive-item-link>模仿知乎卡片式链接</a>\n<span class=archive-item-date title='2019-03-15 15:21:39'>03-15</span></article><article class=archive-item><a href=/posts/qqxml/ class=archive-item-link>QQ 强制生成卡片式链接</a>\n<span class=archive-item-date title='2019-03-08 16:52:13'>03-08</span></article><article class=archive-item><a href=/posts/js-vcode/ class=archive-item-link>JS 验证码</a>\n<span class=archive-item-date title='2019-03-04 20:53:09'>03-04</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/categories/javascript/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/javascript/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/javascript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/javascript/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>JavaScript - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/javascript/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/javascript/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>临时决定再写一个小工具 - 网站预览图生成器</title><link>https://lruihao.cn/projects/apple-devices-preview/</link><pubDate>Thu, 04 Apr 2024 13:23:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/apple-devices-preview/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;开发完 &lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。&lt;/p&gt;</description></item><item><title>实现类似于 Element UI 表格的溢出文本提示功能</title><link>https://lruihao.cn/posts/overflow-tooltip/</link><pubDate>Thu, 29 Feb 2024 16:46:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/overflow-tooltip/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;在 Element UI 的表格组件中，当表格列的内容过长时，设置 &lt;code&gt;show-overflow-tooltip&lt;/code&gt; 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？&lt;/p&gt;</description></item><item><title>给 el-card 添加折叠功能</title><link>https://lruihao.cn/posts/el-card-collapse/</link><pubDate>Wed, 10 Jan 2024 17:06:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-card-collapse/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;出发点&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;虽然 Element 也有 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-collapse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，&lt;a href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-card&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item><item><title>JS 实现全屏和退出全屏</title><link>https://lruihao.cn/posts/js-fullscreen/</link><pubDate>Fri, 15 Sep 2023 17:29:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-fullscreen/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;28 背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。&lt;/p&gt;</description></item><item><title>用魔法打败魔法 - ElBacktop Fix</title><link>https://lruihao.cn/posts/el-backtop-fix/</link><pubDate>Thu, 20 Jul 2023 11:08:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-backtop-fix/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;这篇文章主要是记录一下继承 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ElBacktop&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件并修复了一些 bug 的过程。&lt;/p&gt;</description></item><item><title>electron 踩坑总结</title><link>https://lruihao.cn/posts/electron-summary/</link><pubDate>Fri, 12 Aug 2022 11:22:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/electron-summary/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;总结一下最近 electron 开发遇到的问题和一些重要知识点。&lt;/p&gt;</description></item><item><title>前端页面内容加密总结</title><link>https://lruihao.cn/posts/encryption-fe/</link><pubDate>Mon, 08 Aug 2022 13:49:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/encryption-fe/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;记录一下前端实现页面加密的思路。&lt;/p&gt;</description></item><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>重新认识 JavaScript</title><link>https://lruihao.cn/posts/js-rediscover/</link><pubDate>Sun, 01 May 2022 10:59:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-rediscover/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;前言&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。&lt;/p&gt;\n&lt;p&gt;每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Lightbox</title><link>https://lruihao.cn/posts/lightbox/</link><pubDate>Mon, 21 Jun 2021 16:18:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightbox/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"簡介\"&gt;&lt;span&gt;10 簡介&lt;/span&gt;\n &lt;a href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。&lt;/p&gt;</description></item><item><title>Cell Watermark</title><link>https://lruihao.cn/projects/cell-watermark/</link><pubDate>Sun, 23 May 2021 17:15:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-watermark/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>Create watermark for webpage and automatic adjust when window resize.</description></item><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>设置网站运行时间</title><link>https://lruihao.cn/posts/site-time/</link><pubDate>Thu, 19 Sep 2019 22:03:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/site-time/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用&lt;code&gt;javascript&lt;/code&gt;计算博客等网站的运行时间。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>script 的三种加载方式 (async, defer)</title><link>https://lruihao.cn/posts/async-defer/</link><pubDate>Sun, 08 Sep 2019 11:47:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/async-defer/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition note open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"&gt;&lt;/i&gt;注意&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;JS 的加载分为两个部分：下载和执行。&lt;br&gt;\n浏览器在执行 HTML 的时候如果遇到&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见&lt;code&gt;&amp;lt;/scirpt&amp;gt;&lt;/code&gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>模仿知乎卡片式链接</title><link>https://lruihao.cn/posts/linkcard/</link><pubDate>Fri, 15 Mar 2019 15:21:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linkcard/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>QQ 强制生成卡片式链接</title><link>https://lruihao.cn/posts/qqxml/</link><pubDate>Fri, 08 Mar 2019 16:52:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qqxml/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。&lt;br&gt;\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url &lt;code&gt;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=&lt;/code&gt; 于是就有了脚本刷新的想法。简陋的写了一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>JS 验证码</title><link>https://lruihao.cn/posts/js-vcode/</link><pubDate>Mon, 04 Mar 2019 20:53:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-vcode/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;style type=\"text/css\"&gt;\n\n# code{ \n\n font-family:Arial; \n font-style:italic; \n font-weight:bold; \n border:2px solid #ddd;\n letter-spacing:9px; \n color:blue;\n font-size: 15px;\n}\n&lt;/style&gt;\n&lt;script type=\"text/javascript\"&gt;\n //设置一个全局的变量，便于保存验证码\n var code;\n function createCode(){\n //首先默认 code 为空字符串\n code = '';\n //设置长度，这里看需求，我这里设置了 4\n var codeLength = 4;\n var codeV = document.getElementById('code');\n //设置随机字符\n var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n //循环 codeLength 我设置的 4 就是循环 4 次\n for(var i = 0; i &lt; codeLength; i++){\n //设置随机数范围，这设置为 0 ~ 36\n var index = Math.floor(Math.random()*35);\n //字符串拼接 将每次随机的字符 进行拼接\n code += random[index];\n }\n //将拼接好的字符串赋值给展示的 Value\n codeV.value = code;\n }\n\n //下面就是判断是否== 的代码，无需解释\n function validate(){\n var Input = document.getElementById('input');\n var oValue = Input.value.toUpperCase();\n if(oValue ==0){\n alert('请输入验证码');\n }else if(oValue != code){\n Input.value = '';\n alert('验证码不正确，请重新输入');\n createCode();\n }else{\n Input.value = '';\n alert('验证码正确！');//window.open('http://lruihao.cn','_self');\n }\n }\n\n //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n window.onload = function (){\n\n createCode();\n }\n&lt;/script&gt;\n&lt;div align=\"center\"&gt; \n &lt;input type = \"text\" id = \"input\" value=\"\" /&gt; &lt;input type = \"button\" id=\"code\" onclick=\"createCode()\"/&gt; &lt;input class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/&gt;\n &lt;br/&gt;请点击验证码处：↑\n&lt;/div&gt;</description></item><item><title>js 判断用户设备类型及平台</title><link>https://lruihao.cn/posts/js-device/</link><pubDate>Sat, 03 Nov 2018 23:35:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-device/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。&lt;/p&gt;</description></item><item><title>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战</title><link>https://lruihao.cn/posts/href-301/</link><pubDate>Sun, 28 Oct 2018 14:22:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/href-301/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h3 class=\"heading-element\" id=\"获取链接转\"&gt;&lt;span&gt;0.7 获取链接（转）&lt;/span&gt;\n &lt;a href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;a href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。&lt;/p&gt;</description></item><item><title>网页夜间效果</title><link>https://lruihao.cn/posts/night/</link><pubDate>Thu, 27 Sep 2018 13:13:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/night/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。&lt;code&gt;css+js&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>网页离开时改变标题“崩溃欺骗”</title><link>https://lruihao.cn/posts/crash-cheat/</link><pubDate>Wed, 26 Sep 2018 16:36:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/crash-cheat/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 博客自定义 console log</title><link>https://lruihao.cn/posts/console-log/</link><pubDate>Sat, 04 Aug 2018 16:19:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/console-log/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。&lt;br&gt;\n我主要用到的工具：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;console.log()&lt;/li&gt;\n&lt;li&gt;Notepad++&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线图片转文字工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/javascript/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/javascript/</title><link rel=canonical href=https://lruihao.cn/categories/javascript/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/javascript/\"></head></html>"
  },
  {
    "path": "categories/javascript/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>JavaScript - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"JavaScript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/javascript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"JavaScript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"JavaScript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/javascript/ title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/javascript/index.xml title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/javascript/feed.json title=\"JavaScript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/javascript/feed.json title=\"JavaScript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/javascript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>JavaScript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>JavaScript <sup>25</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/js-device/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Js 判断用户设备类型及平台</a>\n<span class=archive-item-date title='2018-11-03 23:35:44'>11-03</span></article><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article><article class=archive-item><a href=/posts/night/ class=archive-item-link>网页夜间效果</a>\n<span class=archive-item-date title='2018-09-27 13:13:31'>09-27</span></article><article class=archive-item><a href=/posts/crash-cheat/ class=archive-item-link>网页离开时改变标题“崩溃欺骗”</a>\n<span class=archive-item-date title='2018-09-26 16:36:08'>09-26</span></article><article class=archive-item><a href=/posts/console-log/ class=archive-item-link>Hexo 博客自定义 Console Log</a>\n<span class=archive-item-date title='2018-08-04 16:19:06'>08-04</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/javascript/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/javascript/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/javascript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/memo/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Memo - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"date_published\":\"2024-10-06T11:10:22&#43;08:00\",\"date_modified\":\"2024-10-06T12:21:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/content-adapters/\",\"url\":\"https://lruihao.cn/posts/content-adapters/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"GitHub API\"],\"image\":\"https://lruihao.cn/posts/content-adapters/featured-image.webp\",\"summary\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\n\",\"content_html\":\"\\u003cp\\u003e在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\u003c/p\\u003e\"},{\"title\":\"写文档时英文标题什么时候要大写？\",\"date_published\":\"2024-03-26T12:23:44&#43;08:00\",\"date_modified\":\"2024-04-02T21:13:59&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c6bc2d5/\",\"url\":\"https://lruihao.cn/posts/c6bc2d5/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\\n\",\"content_html\":\"\\u003cp\\u003e对于本文的标题的思考来自于 \\u003ca href=\\\"https://gohugo.io/getting-started/configuration/#titlecasestyle\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e中的一个配置 \\u003ccode\\u003etitleCaseStyle\\u003c/code\\u003e，默认情况下，Hugo 在创建自动章节标题以及使用 \\u003ccode\\u003estrings.Title\\u003c/code\\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\\u003c/p\\u003e\\n\\u003cp\\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\u003c/p\\u003e\\n\\u003cp\\u003e经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，\\u003ca href=\\\"https://pub.bnu.edu.cn/jzyg1/72203.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“出版物中，英文什么时候要大写？ ”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"date_published\":\"2023-09-26T15:17:52&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/article-structure/\",\"url\":\"https://lruihao.cn/posts/article-structure/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\u003c/p\\u003e\"},{\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"date_published\":\"2023-09-14T11:21:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vscode-snippets/\",\"url\":\"https://lruihao.cn/posts/vscode-snippets/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Shortcodes\"],\"summary\":\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\n\",\"content_html\":\"\\u003cp\\u003e在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\u003c/p\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"},{\"title\":\"Mac 配置 ADB\",\"date_published\":\"2022-07-05T15:39:34&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adb-for-mac/\",\"url\":\"https://lruihao.cn/posts/adb-for-mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Android\",\"ADB\"],\"summary\":\"作为非安卓专业开发，无需下载 Android SDK，\\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\\n\",\"content_html\":\"\\u003cp\\u003e作为非安卓专业开发，无需下载 Android SDK，\\u003cbr\\u003e\\n仅下载 Android SDK 中的 \\u003ca href=\\\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eplatform-tools\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 命令行工具即可，并配置好环境变量。\\u003c/p\\u003e\"},{\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"date_published\":\"2021-12-22T20:17:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gtd/\",\"url\":\"https://lruihao.cn/posts/gtd/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GTD\"],\"image\":\"/posts/gtd/images/reminders_min.png\",\"summary\":\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\nReference #20 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003equote\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003eGetting Things Done (GTD)\\u003c/strong\\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://en.wikipedia.org/wiki/Getting_Things_Done\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eReference\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/issues/20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e#20\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"date_published\":\"2021-10-05T21:54:06&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"url\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"Sublime\"],\"summary\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/robinchenyu/imagepaste\\\" title=\\\"插件地址\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e插件地址\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/robinchenyu/imagepaste\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"date_published\":\"2021-10-05T19:33:13&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"url\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"Shortcodes\"],\"summary\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e卡片式链接已整合到 FixIt 主题\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\\n\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e回顧\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e之前在使用 hexo 的時候也有用到，\\u003ca href=\\\"/posts/linkcard/\\\"\\u003e模仿知乎卡片式链接\\u003c/a\\u003e\\u003cbr\\u003e\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\u003cbr\\u003e\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Hugo 友情連結模板\",\"date_published\":\"2021-10-05T14:14:10&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-friends/\",\"url\":\"https://lruihao.cn/posts/hugo-friends/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\"],\"summary\":\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e過程\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e友情鏈接模板已整合到 FixIt 主題\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 本地管理 Shell 腳本\",\"date_published\":\"2021-10-04T23:49:00&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-admin/\",\"url\":\"https://lruihao.cn/posts/hugo-admin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"shell\"],\"image\":\"/posts/hugo-admin/images/hugo-admin1.png\",\"summary\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition abstract open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-clipboard-list\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\u003cbr\\u003e\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"date_published\":\"2021-03-04T21:04:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codereview/\",\"url\":\"https://lruihao.cn/posts/codereview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"codereview\"],\"summary\":\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"程式碼的持續優化\\\"\\u003e\\u003cspan\\u003e1 程式碼的持續優化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\u003c/p\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Sublime Text3 快捷键大全\",\"date_published\":\"2019-08-15T20:59:10&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sublime-text3/\",\"url\":\"https://lruihao.cn/posts/sublime-text3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Sublime\",\"他山之石\"],\"summary\":\"Sublime Text3 快捷键一览表\\n\",\"content_html\":\"\\u003cp\\u003eSublime Text3 快捷键一览表\\u003c/p\\u003e\"},{\"title\":\"NetBeans IDE 开发设置\",\"date_published\":\"2019-08-15T18:36:15&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/netbeans/\",\"url\":\"https://lruihao.cn/posts/netbeans/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"NetBeans\",\"PHP\"],\"summary\":\"7 安裝 官方下載點\\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安裝\\\"\\u003e\\u003cspan\\u003e7 安裝\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://netbeans.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方下載點\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"擴充功能\\\"\\u003e\\u003cspan\\u003e8 擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安裝擴充功能\\\"\\u003e\\u003cspan\\u003e8.1 安裝擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e下載擴充套件包\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://plugins.netbeans.org/PluginPortal/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方套件庫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e或者在 NetBeans IDE 裏面下載插件（方便）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要安裝的擴充套件包\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"啟用已安裝的擴充功能\\\"\\u003e\\u003cspan\\u003e8.2 啟用已安裝的擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Installed\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要啟用的套件 (*.npm)\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Activate\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"匯入設定\\\"\\u003e\\u003cspan\\u003e8.3 匯入設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Options\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Import 匯入設定\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要匯入的套件包 (*.zip)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常用設定\\\"\\u003e\\u003cspan\\u003e9 常用設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"程式碼排版\\\"\\u003e\\u003cspan\\u003e9.1 程式碼排版\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\u003c/p\\u003e\"},{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"前端面试题 - HTML+CSS\",\"date_published\":\"2019-03-30T22:58:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ms-html-css/\",\"url\":\"https://lruihao.cn/posts/ms-html-css/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"CSS\"],\"summary\":\" 原文链接\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/ltadpoles/web-document/tree/master/Other\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原文链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\u003c/p\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"web 汇总\",\"date_published\":\"2019-03-18T20:40:55&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/webbiji/\",\"url\":\"https://lruihao.cn/posts/webbiji/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"eclipse 的基本使用\",\"date_published\":\"2019-03-15T23:47:24&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/eclipseuse/\",\"url\":\"https://lruihao.cn/posts/eclipseuse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"eclipse\",\"Java\"],\"summary\":\"9 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击）12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本使用\\\"\\u003e\\u003cspan\\u003e9 基本使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 选择一个工作空间\\n  D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\\n  a: 创建项目（工程）\\n    *File -- New -- Java Project\\n    *在左边空白处，直接右键 -- New -- Java Project\\n\\n    键入项目名称后直接 Finish。\\n  b: 所有的 java 文件必须写到 src 下面才有效\\n  c: 创建一个包\\n    cn.lruihao\\n  d: 在包下创建一个类\\n    HelloWorld\\n\\n    同时让它帮我们写好了 main 方法。\\n  e: 在 main 方法中写内容即可\\n  f: 编译程序\\n    自动编译，在保存的那一刻帮你做好了\\n  g: 运行程序\\n    选择要运行的文件或者在要运行的文件内容中\\n    右键 -- Run as - Java Application 即可\\n  h: 内容显示\\n    在 Console 控制台显示内容\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-的基本设置\\\"\\u003e\\u003cspan\\u003e10 Eclipse 的基本设置\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\\nB: 去掉默认注释（可以不用改）\\nC: 行号的显示和隐藏\\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\\n  隐藏：把上面的动作再做一次。\\nD: 字体大小及颜色\\n  a:Java 代码区域的字体大小和颜色：\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\\n  b: 控制台\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\\n  c: 其他文件\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\\nE: 窗体给弄乱了，怎么办\\n  window -- Reset Perspective\\nF: 控制台找不到了\\n  Window--Show View—Console\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快捷键的使用\\\"\\u003e\\u003cspan\\u003e11 快捷键的使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 内容辅助键\\n  Alt+/ 起提示作用\\n  main+alt+/,syso+alt+/, 给出其他提示\\nB: 快捷键\\n  格式化  ctrl+shift+f\\n  导入包  ctrl+shift+o\\n  注释  ctrl+/\\n    ctrl+shift+/,ctrl+shift+\\\\\\n  代码上下移动 选中代码 alt+上/下箭头\\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-中如何提高开发效率\\\"\\u003e\\u003cspan\\u003e12 Eclipse 中如何提高开发效率\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 自动生成构造方法\\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\\nB: 自动生成 get/set 方法\\n  在代码区域右键--source--Generate Getters and Setters...\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"date_published\":\"2019-01-16T17:50:52&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/recent-posts/\",\"url\":\"https://lruihao.cn/posts/recent-posts/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 首先在主题配置文件添加以下关键字\\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e首先在主题配置文件添加以下关键字\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003erecent_posts:\\n  enable: true\\n  search: true\\n  post: false\\n  sidebar: false\\n  icon: history\\n  title: 近期文章\\n  layout: block\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"侧栏\\\"\\u003e\\u003cspan\\u003e9 侧栏\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%a7%e6%a0%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 \\u003ccode\\u003enext/layout/_macro/sidebar.swig\\u003c/code\\u003e 中的 \\u003ccode\\u003eif theme.links\\u003c/code\\u003e 对应的 \\u003ccode\\u003eendif\\u003c/code\\u003e 后面。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\\n  \\u003cdiv class=\\\"links-of-blogroll motion-element {{ \\\"links-of-blogroll-\\\" + theme.recent_posts.layout  }}\\\"\\u003e\\n   \\u003cdiv class=\\\"links-of-blogroll-title\\\"\\u003e\\n     \\u003ci class=\\\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\n     {{ theme.recent_posts.title }}\\n   \\u003c/div\\u003e\\n   \\u003cul class=\\\"links-of-blogroll-list\\\"\\u003e\\n     {% set posts = site.posts.sort('-date') %}\\n     {% for post in posts.slice('0', '3') %}\\n       \\u003cli\\u003e\\n         \\u003ca href=\\\"{{ url_for(post.path) }}\\\" title=\\\"{{ post.title }}\\\" target=\\\"_blank\\\"\\u003e{{ post.title }}\\u003c/a\\u003e\\n       \\u003c/li\\u003e\\n     {% endfor %}\\n   \\u003c/ul\\u003e\\n \\u003c/div\\u003e\\n{% endif %}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"搜索结果处添加\\\"\\u003e\\u003cspan\\u003e10 搜索结果处添加\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e找到路径\\u003ccode\\u003eH:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials\\\\search\\u003c/code\\u003e下\\u003ccode\\u003elocalsearch.swig\\u003c/code\\u003e文件\\u003cbr\\u003e\\n把\\u003ccode\\u003e\\u0026lt;div id=\\u0026quot;local-search-result\\u0026quot;\\u0026gt;\\u0026lt;/div\\u0026gt;\\u003c/code\\u003e修改成以下内容（这里显示 15 篇）\\u003c/p\\u003e\"},{\"title\":\"英语语法--主谓一致\",\"date_published\":\"2019-01-12T13:02:49&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subject-verb/\",\"url\":\"https://lruihao.cn/posts/subject-verb/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常见情况\\\"\\u003e\\u003cspan\\u003e1 常见情况\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\\\"\\u003e\\u003cspan\\u003e1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003eEnglish \\u003cu\\u003eand\\u003c/u\\u003e chinese are two quite different languages.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eBoth\\u003c/u\\u003e brother \\u003cu\\u003eand\\u003c/u\\u003e sister tire of city life.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eNo\\u003c/u\\u003e desk \\u003cu\\u003eand\\u003c/u\\u003e (no) chair is seen in the hall.\\u003c/li\\u003e\\n\\u003cli\\u003eAll work \\u003cu\\u003eand\\u003c/u\\u003e \\u003cu\\u003eno\\u003c/u\\u003e play makes Jack a dull boy.\\u003c/li\\u003e\\n\\u003cli\\u003eThey each have been to the Forbidden city.\\neach 位于主语后，所以谓语动词用复数\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\u003c/p\\u003e\"},{\"title\":\"英语语法--形式倒装\",\"date_published\":\"2018-12-10T21:52:30&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-3/\",\"url\":\"https://lruihao.cn/posts/inversion-3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 形式倒装，句子本不是本来的语序。\\n0.1 may 位于句首，标祝愿 例句\\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e形式倒装，句子本不是本来的语序。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"may-位于句首标祝愿\\\"\\u003e\\u003cspan\\u003e0.1 may 位于句首，标祝愿\\u003c/span\\u003e\\n  \\u003ca href=\\\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMay you succeed.\\u003c/li\\u003e\\n\\u003cli\\u003eMay you have a happy holiday.\\u003c/li\\u003e\\n\\u003cli\\u003eLong live chairman Mao.（毛主席万古长青）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\\\"\\u003e\\u003cspan\\u003e0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前\\u003c/span\\u003e\\n  \\u003ca href=\\\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\"},{\"title\":\"英语语法--完全倒装\",\"date_published\":\"2018-12-10T21:14:51&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-2/\",\"url\":\"https://lruihao.cn/posts/inversion-2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 完全倒装：把整个谓语动词放到主语前。\\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e完全倒装：把整个谓语动词放到主语前。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"表方位或时间的副词-adv表地点的介词短语位于句首时\\\"\\u003e\\u003cspan\\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eHere comes the bus.\\u003c/li\\u003e\\n\\u003cli\\u003eIn the lecture hall of a university sits a professor.\\u003c/li\\u003e\\n\\u003cli\\u003eOut rushed the children.\\u003c/li\\u003e\\n\\u003cli\\u003eNow comes your turn.\\u003c/li\\u003e\\n\\u003cli\\u003eUp jumped the cat and caught the mouse.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eDown\\u003c/u\\u003e came the rain and \\u003cu\\u003eup\\u003c/u\\u003e went the umbrellas.\\u003c/li\\u003e\\n\\u003cli\\u003eAmong the people stood his friend,Jim.\\u003c/li\\u003e\\n\\u003cli\\u003e(To be) South of the river lies a small factory.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e但主语为表示人称的代词时无需倒装\\u003c/p\\u003e\"},{\"title\":\"英语语法--部分倒装\",\"date_published\":\"2018-12-08T17:52:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-1/\",\"url\":\"https://lruihao.cn/posts/inversion-1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。\\u003cstrong\\u003e以下内容纯手打！！\\u003c/strong\\u003e\\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 插件及 next 内置样式集\",\"date_published\":\"2018-11-24T16:54:09&#43;08:00\",\"date_modified\":\"2021-10-02T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nextplugin/\",\"url\":\"https://lruihao.cn/posts/nextplugin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 2021/10/2 更新\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/2 更新\\u003cbr\\u003e\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\u003cbr\\u003e\\n让文章写的好看又简洁又好用的插件！\\u003ca href=\\\"https://hexo.io/zh-cn/docs/tag-plugins.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 完整的标签列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://theme-next.org/docs/tag-plugins/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 插件列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"next 添加支持 pdf\",\"date_published\":\"2018-11-09T12:51:48&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/next-pdf/\",\"url\":\"https://lruihao.cn/posts/next-pdf/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\n7 iframe(推荐) 8 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e最新的 next 主题已经更新了支持 PDF 功能，\\u003cdel\\u003e写法也和链接写法一样\\u003c/del\\u003e，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"iframe推荐\\\"\\u003e\\u003cspan\\u003e7 iframe(推荐)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#iframe%e6%8e%a8%e8%8d%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003ciframe src=\\\"/posts/next-pdf/1.pdf\\\" style=\\\"width: 100%;height: 800px;\\\"\\u003e\\u003c/iframe\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"模板自带\\\"\\u003e\\u003cspan\\u003e8 模板自带\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\u003c/p\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"Vim 速查表\",\"date_published\":\"2018-08-31T11:46:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vim/\",\"url\":\"https://lruihao.cn/posts/vim/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vim\",\"他山之石\"],\"summary\":\"Vim 速查表 - 帮你提高 N 倍效率\\n\",\"content_html\":\"\\u003cp\\u003eVim 速查表 - 帮你提高 N 倍效率\\u003c/p\\u003e\"},{\"title\":\"hexo next 主题添加字数统计（2018）\",\"date_published\":\"2018-08-30T13:15:50&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"url\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"字数统计\"],\"summary\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition warning open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-exclamation-triangle\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e警告\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003e2018/11/1 说明\\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"hexo d 出错\",\"date_published\":\"2018-08-21T22:15:01&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-d-error/\",\"url\":\"https://lruihao.cn/posts/hexo-d-error/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\n现在做一下记录，防止以后出错用。\\n错误如下\\n\",\"content_html\":\"\\u003cp\\u003e搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\u003cbr\\u003e\\n现在做一下记录，防止以后出错用。\\u003cbr\\u003e\\n错误如下\\u003c/p\\u003e\"},{\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"date_published\":\"2018-08-20T16:16:40&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dongtaisub/\",\"url\":\"https://lruihao.cn/posts/dongtaisub/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本文适合我这种纯小白。\\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\\u003ca href=\\\"https://www.jianshu.com/p/df2c844eeabf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（关键词：js, 后加载）\\u003cbr\\u003e\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"各种 Links 汇总与分享\",\"date_published\":\"2018-06-07T00:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/links/\",\"url\":\"https://lruihao.cn/posts/links/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 2021/10/1 更新\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/1 更新\\u003cbr\\u003e\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\u003c/p\\u003e\\n\\u003cp\\u003e我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo+github 搭建个人博客及美化\",\"date_published\":\"2018-06-01T14:34:23&#43;08:00\",\"date_modified\":\"2021-10-03T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexobuild/\",\"url\":\"https://lruihao.cn/posts/hexobuild/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\"],\"summary\":\"更多关于 hexo\\n17 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"/categories/hexo/\\\"\\u003e更多关于 hexo\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"首先\\\"\\u003e\\u003cspan\\u003e17 首先\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a6%96%e5%85%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://hexo.io/zh-cn/docs/index.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我们的第一手资料，也是最好的。\\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\u003c/p\\u003e\"},{\"title\":\"hexo 添加图片，音乐，链接，视频\",\"date_published\":\"2018-05-31T23:19:22&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexowrite/\",\"url\":\"https://lruihao.cn/posts/hexowrite/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如果实在搞得头晕直接去 \\u003ca href=\\\"https://www.jianshu.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简书\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 \\u003ca href=\\\"https://maxiang.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e马克飞象，专为印象笔记打造的 Markdown 编辑器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://www.typora.io/#\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etypora 也是不错的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，突然发现 \\u003ca href=\\\"https://www.csdn.net/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecsdn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 也支持 Markdown 编译器了\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/memo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Memo - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Memo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-10-06T11:10:22+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/memo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Memo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Memo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/memo/ title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/memo/index.xml title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/memo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Memo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Memo <sup>42</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a>\n<span class=archive-item-date title='2024-10-06 11:10:22'>10-06</span></article><article class=archive-item><a href=/posts/c6bc2d5/ class=archive-item-link>写文档时英文标题什么时候要大写？</a>\n<span class=archive-item-date title='2024-03-26 12:23:44'>03-26</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/article-structure/ class=archive-item-link>写作技巧：如何搭建文章的框架结构？</a>\n<span class=archive-item-date title='2023-09-26 15:17:52'>09-26</span></article><article class=archive-item><a href=/posts/vscode-snippets/ class=archive-item-link>VSCode 添加用户代码片段，自定义用户代码片段</a>\n<span class=archive-item-date title='2023-09-14 11:21:56'>09-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article><article class=archive-item><a href=/posts/adb-for-mac/ class=archive-item-link>Mac 配置 ADB</a>\n<span class=archive-item-date title='2022-07-05 15:39:34'>07-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/gtd/ class=archive-item-link>Getting Things Done for Ios App Reminders and Github Issues</a>\n<span class=archive-item-date title='2021-12-22 20:17:42'>12-22</span></article><article class=archive-item><a href=/posts/subl_imgpaste2/ class=archive-item-link>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a>\n<span class=archive-item-date title='2021-10-05 21:54:06'>10-05</span></article><article class=archive-item><a href=/posts/hugo-cardlink/ class=archive-item-link>Hugo 添加知乎卡片式链接 Shortcodes</a>\n<span class=archive-item-date title='2021-10-05 19:33:13'>10-05</span></article><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article><article class=archive-item><a href=/posts/hugo-friends/ class=archive-item-link>Hugo 友情連結模板</a>\n<span class=archive-item-date title='2021-10-05 14:14:10'>10-05</span></article><article class=archive-item><a href=/posts/hugo-admin/ class=archive-item-link>Hugo 本地管理 Shell 腳本</a>\n<span class=archive-item-date title='2021-10-04 23:49:00'>10-04</span></article><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article><article class=archive-item><a href=/posts/codereview/ class=archive-item-link>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a>\n<span class=archive-item-date title='2021-03-04 21:04:18'>03-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/sublime-text3/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Sublime Text3 快捷键大全</a>\n<span class=archive-item-date title='2019-08-15 20:59:10'>08-15</span></article><article class=archive-item><a href=/posts/netbeans/ class=archive-item-link>NetBeans IDE 开发设置</a>\n<span class=archive-item-date title='2019-08-15 18:36:15'>08-15</span></article><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/categories/memo/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/memo/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/memo/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/memo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/memo/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Memo - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/memo/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 07 Jan 2025 10:08:46 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/memo/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>自动获取 GitHub README 内容添加到 Hugo 文章</title><link>https://lruihao.cn/posts/content-adapters/</link><pubDate>Sun, 06 Oct 2024 11:10:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/content-adapters/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。&lt;/p&gt;</description></item><item><title>写文档时英文标题什么时候要大写？</title><link>https://lruihao.cn/posts/c6bc2d5/</link><pubDate>Tue, 26 Mar 2024 12:23:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c6bc2d5/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;对于本文的标题的思考来自于 &lt;a href=\"https://gohugo.io/getting-started/configuration/#titlecasestyle\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;中的一个配置 &lt;code&gt;titleCaseStyle&lt;/code&gt;，默认情况下，Hugo 在创建自动章节标题以及使用 &lt;code&gt;strings.Title&lt;/code&gt; 函数转换字符串时遵循美联社样本中发布的大小写规则。&lt;/p&gt;\n&lt;p&gt;但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。&lt;/p&gt;\n&lt;p&gt;经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，&lt;a href=\"https://pub.bnu.edu.cn/jzyg1/72203.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“出版物中，英文什么时候要大写？ ”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>写作技巧：如何搭建文章的框架结构？</title><link>https://lruihao.cn/posts/article-structure/</link><pubDate>Tue, 26 Sep 2023 15:17:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/article-structure/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。&lt;/p&gt;</description></item><item><title>VSCode 添加用户代码片段，自定义用户代码片段</title><link>https://lruihao.cn/posts/vscode-snippets/</link><pubDate>Thu, 14 Sep 2023 11:21:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vscode-snippets/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。&lt;/p&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item><item><title>Mac 配置 ADB</title><link>https://lruihao.cn/posts/adb-for-mac/</link><pubDate>Tue, 05 Jul 2022 15:39:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adb-for-mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;作为非安卓专业开发，无需下载 Android SDK，&lt;br&gt;\n仅下载 Android SDK 中的 &lt;a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;platform-tools&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 命令行工具即可，并配置好环境变量。&lt;/p&gt;</description></item><item><title>Getting Things Done for ios App Reminders and Github issues</title><link>https://lruihao.cn/posts/gtd/</link><pubDate>Wed, 22 Dec 2021 20:17:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gtd/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;quote&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;Getting Things Done (GTD)&lt;/strong&gt; is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &amp;ldquo;there is an inverse relationship between things on your mind and those things getting done&amp;rdquo;.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://en.wikipedia.org/wiki/Getting_Things_Done\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Reference&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/hugo-blog/issues/20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#20&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</title><link>https://lruihao.cn/posts/subl_imgpaste2/</link><pubDate>Tue, 05 Oct 2021 21:54:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subl_imgpaste2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;插件地址&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/robinchenyu/imagepaste&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Hugo 添加知乎卡片式链接 Shortcodes</title><link>https://lruihao.cn/posts/hugo-cardlink/</link><pubDate>Tue, 05 Oct 2021 19:33:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-cardlink/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;卡片式链接已整合到 FixIt 主题&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;\n&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;回顧&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;之前在使用 hexo 的時候也有用到，&lt;a href=\"https://lruihao.cn/posts/linkcard/\"&gt;模仿知乎卡片式链接&lt;/a&gt;&lt;br&gt;\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，&lt;br&gt;\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo I18n 添加中文繁體翻譯</title><link>https://lruihao.cn/posts/hugo-i18n-zh-tw/</link><pubDate>Tue, 05 Oct 2021 19:14:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-i18n-zh-tw/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Hugo 友情連結模板</title><link>https://lruihao.cn/posts/hugo-friends/</link><pubDate>Tue, 05 Oct 2021 14:14:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-friends/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;過程&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;友情鏈接模板已整合到 FixIt 主題&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Hugo 本地管理 Shell 腳本</title><link>https://lruihao.cn/posts/hugo-admin/</link><pubDate>Mon, 04 Oct 2021 23:49:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-admin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition abstract open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。&lt;br&gt;\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</title><link>https://lruihao.cn/posts/codereview/</link><pubDate>Thu, 04 Mar 2021 21:04:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codereview/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"程式碼的持續優化\"&gt;&lt;span&gt;1 程式碼的持續優化&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：&lt;/p&gt;</description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;Cell Blog 开发记录，&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Sublime Text3 快捷键大全</title><link>https://lruihao.cn/posts/sublime-text3/</link><pubDate>Thu, 15 Aug 2019 20:59:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sublime-text3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Sublime Text3 快捷键一览表&lt;/p&gt;</description></item><item><title>NetBeans IDE 开发设置</title><link>https://lruihao.cn/posts/netbeans/</link><pubDate>Thu, 15 Aug 2019 18:36:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/netbeans/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"安裝\"&gt;&lt;span&gt;10 安裝&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方下載點&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"擴充功能\"&gt;&lt;span&gt;11 擴充功能&lt;/span&gt;\n &lt;a href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安裝擴充功能\"&gt;&lt;span&gt;11.1 安裝擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;下載擴充套件包\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方套件庫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;或者在 NetBeans IDE 裏面下載插件（方便）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins&lt;/li&gt;\n&lt;li&gt;選擇要安裝的擴充套件包&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"&gt;&lt;span&gt;11.2 啟用已安裝的擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Installed&lt;/li&gt;\n&lt;li&gt;選擇要啟用的套件 (*.npm)&lt;/li&gt;\n&lt;li&gt;點擊 Activate&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"匯入設定\"&gt;&lt;span&gt;11.3 匯入設定&lt;/span&gt;\n &lt;a href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Options&lt;/li&gt;\n&lt;li&gt;點擊 Import 匯入設定&lt;/li&gt;\n&lt;li&gt;選擇要匯入的套件包 (*.zip)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"常用設定\"&gt;&lt;span&gt;12 常用設定&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"程式碼排版\"&gt;&lt;span&gt;12.1 程式碼排版&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;blockquote&gt;\n&lt;p&gt;在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。&lt;/p&gt;</description></item><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>前端面试题 - HTML+CSS</title><link>https://lruihao.cn/posts/ms-html-css/</link><pubDate>Sat, 30 Mar 2019 22:58:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ms-html-css/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原文链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过&lt;/p&gt;</description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable-file --&gt;\n&lt;div class=\"details admonition danger open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"&gt;&lt;/i&gt;危险&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;span style=\"color: #d9534f;font-size: 1.2em;\"&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对 next 的主题的自定义修改&lt;/strong&gt;，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib 资源已打包 github。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>web 汇总</title><link>https://lruihao.cn/posts/webbiji/</link><pubDate>Mon, 18 Mar 2019 20:40:55 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/webbiji/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>eclipse 的基本使用</title><link>https://lruihao.cn/posts/eclipseuse/</link><pubDate>Fri, 15 Mar 2019 23:47:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/eclipseuse/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"基本使用\"&gt;&lt;span&gt;13 基本使用&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n a: 创建项目（工程）\n *File -- New -- Java Project\n *在左边空白处，直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译，在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-的基本设置\"&gt;&lt;span&gt;14 Eclipse 的基本设置&lt;/span&gt;\n &lt;a href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\nB: 去掉默认注释（可以不用改）\nC: 行号的显示和隐藏\n 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\n 隐藏：把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色：\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了，怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快捷键的使用\"&gt;&lt;span&gt;15 快捷键的使用&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 内容辅助键\n Alt&amp;#43;/ 起提示作用\n main&amp;#43;alt&amp;#43;/,syso&amp;#43;alt&amp;#43;/, 给出其他提示\nB: 快捷键\n 格式化 ctrl&amp;#43;shift&amp;#43;f\n 导入包 ctrl&amp;#43;shift&amp;#43;o\n 注释 ctrl&amp;#43;/\n ctrl&amp;#43;shift&amp;#43;/,ctrl&amp;#43;shift&amp;#43;\\\n 代码上下移动 选中代码 alt&amp;#43;上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl&amp;#43;鼠标点击）&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"&gt;&lt;span&gt;16 Eclipse 中如何提高开发效率&lt;/span&gt;\n &lt;a href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>在搜索、文章底部、侧栏添加最近文章模块</title><link>https://lruihao.cn/posts/recent-posts/</link><pubDate>Wed, 16 Jan 2019 17:50:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/recent-posts/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;首先在主题配置文件添加以下关键字&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;pre&gt;&lt;code&gt;recent_posts:\n enable: true\n search: true\n post: false\n sidebar: false\n icon: history\n title: 近期文章\n layout: block&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"侧栏\"&gt;&lt;span&gt;13 侧栏&lt;/span&gt;\n &lt;a href=\"#%e4%be%a7%e6%a0%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 &lt;code&gt;next/layout/_macro/sidebar.swig&lt;/code&gt; 中的 &lt;code&gt;if theme.links&lt;/code&gt; 对应的 &lt;code&gt;endif&lt;/code&gt; 后面。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n &amp;lt;div class=&amp;#34;links-of-blogroll motion-element {{ &amp;#34;links-of-blogroll-&amp;#34; &amp;#43; theme.recent_posts.layout }}&amp;#34;&amp;gt;\n &amp;lt;div class=&amp;#34;links-of-blogroll-title&amp;#34;&amp;gt;\n &amp;lt;i class=&amp;#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&amp;#34; aria-hidden=&amp;#34;true&amp;#34;&amp;gt;&amp;lt;/i&amp;gt;\n {{ theme.recent_posts.title }}\n &amp;lt;/div&amp;gt;\n &amp;lt;ul class=&amp;#34;links-of-blogroll-list&amp;#34;&amp;gt;\n {% set posts = site.posts.sort(&amp;#39;-date&amp;#39;) %}\n {% for post in posts.slice(&amp;#39;0&amp;#39;, &amp;#39;3&amp;#39;) %}\n &amp;lt;li&amp;gt;\n &amp;lt;a href=&amp;#34;{{ url_for(post.path) }}&amp;#34; title=&amp;#34;{{ post.title }}&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;{{ post.title }}&amp;lt;/a&amp;gt;\n &amp;lt;/li&amp;gt;\n {% endfor %}\n &amp;lt;/ul&amp;gt;\n &amp;lt;/div&amp;gt;\n{% endif %}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"搜索结果处添加\"&gt;&lt;span&gt;14 搜索结果处添加&lt;/span&gt;\n &lt;a href=\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;找到路径&lt;code&gt;H:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search&lt;/code&gt;下&lt;code&gt;localsearch.swig&lt;/code&gt;文件&lt;br&gt;\n把&lt;code&gt;&amp;lt;div id=&amp;quot;local-search-result&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;修改成以下内容（这里显示 15 篇）&lt;/p&gt;</description></item><item><title>英语语法--主谓一致</title><link>https://lruihao.cn/posts/subject-verb/</link><pubDate>Sat, 12 Jan 2019 13:02:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subject-verb/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"常见情况\"&gt;&lt;span&gt;1 常见情况&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\"&gt;&lt;span&gt;1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数&lt;/span&gt;\n &lt;a href=\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;English &lt;u&gt;and&lt;/u&gt; chinese are two quite different languages.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Both&lt;/u&gt; brother &lt;u&gt;and&lt;/u&gt; sister tire of city life.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\"&gt;&lt;span&gt;1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;&lt;u&gt;No&lt;/u&gt; desk &lt;u&gt;and&lt;/u&gt; (no) chair is seen in the hall.&lt;/li&gt;\n&lt;li&gt;All work &lt;u&gt;and&lt;/u&gt; &lt;u&gt;no&lt;/u&gt; play makes Jack a dull boy.&lt;/li&gt;\n&lt;li&gt;They each have been to the Forbidden city.\neach 位于主语后，所以谓语动词用复数&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"&gt;&lt;span&gt;1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread&lt;/p&gt;</description></item><item><title>英语语法--形式倒装</title><link>https://lruihao.cn/posts/inversion-3/</link><pubDate>Mon, 10 Dec 2018 21:52:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;形式倒装，句子本不是本来的语序。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"may-位于句首标祝愿\"&gt;&lt;span&gt;0.1 may 位于句首，标祝愿&lt;/span&gt;\n &lt;a href=\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;May you succeed.&lt;/li&gt;\n&lt;li&gt;May you have a happy holiday.&lt;/li&gt;\n&lt;li&gt;Long live chairman Mao.（毛主席万古长青）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"&gt;&lt;span&gt;0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前&lt;/span&gt;\n &lt;a href=\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>英语语法--完全倒装</title><link>https://lruihao.cn/posts/inversion-2/</link><pubDate>Mon, 10 Dec 2018 21:14:51 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;完全倒装：把整个谓语动词放到主语前。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"表方位或时间的副词-adv表地点的介词短语位于句首时\"&gt;&lt;span&gt;0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时&lt;/span&gt;\n &lt;a href=\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;Here comes the bus.&lt;/li&gt;\n&lt;li&gt;In the lecture hall of a university sits a professor.&lt;/li&gt;\n&lt;li&gt;Out rushed the children.&lt;/li&gt;\n&lt;li&gt;Now comes your turn.&lt;/li&gt;\n&lt;li&gt;Up jumped the cat and caught the mouse.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Down&lt;/u&gt; came the rain and &lt;u&gt;up&lt;/u&gt; went the umbrellas.&lt;/li&gt;\n&lt;li&gt;Among the people stood his friend,Jim.&lt;/li&gt;\n&lt;li&gt;(To be) South of the river lies a small factory.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;但主语为表示人称的代词时无需倒装&lt;/p&gt;</description></item><item><title>英语语法--部分倒装</title><link>https://lruihao.cn/posts/inversion-1/</link><pubDate>Sat, 08 Dec 2018 17:52:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。&lt;strong&gt;以下内容纯手打！！&lt;/strong&gt;\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 插件及 next 内置样式集</title><link>https://lruihao.cn/posts/nextplugin/</link><pubDate>Sat, 24 Nov 2018 16:54:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nextplugin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/2 更新&lt;br&gt;\n博客已迁移至 Hugo, 插件演示不适用，已删除。&lt;br&gt;\n让文章写的好看又简洁又好用的插件！&lt;a href=\"https://hexo.io/zh-cn/docs/tag-plugins.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 完整的标签列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://theme-next.org/docs/tag-plugins/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 插件列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>next 添加支持 pdf</title><link>https://lruihao.cn/posts/next-pdf/</link><pubDate>Fri, 09 Nov 2018 12:51:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/next-pdf/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;最新的 next 主题已经更新了支持 PDF 功能，&lt;del&gt;写法也和链接写法一样&lt;/del&gt;，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"iframe推荐\"&gt;&lt;span&gt;10 iframe(推荐)&lt;/span&gt;\n &lt;a href=\"#iframe%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;iframe src=&amp;#34;/posts/next-pdf/1.pdf&amp;#34; style=&amp;#34;width: 100%;height: 800px;&amp;#34;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"模板自带\"&gt;&lt;span&gt;11 模板自带&lt;/span&gt;\n &lt;a href=\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。&lt;/p&gt;</description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/blog-backup/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"备份-hexo-博客\"&gt;&lt;span&gt;7 备份 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m &amp;#34;blog hexo&amp;#34;\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"&gt;&lt;span&gt;8 在其他终端克隆和更新 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;nodejs,git,hexo 已经安装好，即搭建完成&lt;/p&gt;</description></item><item><title>termux 基本使用教程</title><link>https://lruihao.cn/posts/termux1/</link><pubDate>Tue, 23 Oct 2018 22:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面有一篇文章写到一些，&lt;a href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n&lt;strong&gt;本文当初摘要自 &lt;a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;国光个人博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。&lt;a href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;备用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"初始化\"&gt;&lt;span&gt;25 初始化&lt;/span&gt;\n &lt;a href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;下载并初始化 termux&lt;/p&gt;</description></item><item><title>Vim 速查表</title><link>https://lruihao.cn/posts/vim/</link><pubDate>Fri, 31 Aug 2018 11:46:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vim/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Vim 速查表 - 帮你提高 N 倍效率&lt;/p&gt;</description></item><item><title>hexo next 主题添加字数统计（2018）</title><link>https://lruihao.cn/posts/hexo-wordcount/</link><pubDate>Thu, 30 Aug 2018 13:15:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-wordcount/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition warning open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"&gt;&lt;/i&gt;警告&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>hexo d 出错</title><link>https://lruihao.cn/posts/hexo-d-error/</link><pubDate>Tue, 21 Aug 2018 22:15:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-d-error/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。&lt;br&gt;\n现在做一下记录，防止以后出错用。&lt;br&gt;\n错误如下&lt;/p&gt;</description></item><item><title>hexo 个性化 - next 主题动态显示 subtitle</title><link>https://lruihao.cn/posts/dongtaisub/</link><pubDate>Mon, 20 Aug 2018 16:16:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dongtaisub/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。&lt;a href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（关键词：js, 后加载）&lt;br&gt;\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**&lt;a href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;部署后的效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;**&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>各种 Links 汇总与分享</title><link>https://lruihao.cn/posts/links/</link><pubDate>Thu, 07 Jun 2018 00:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/links/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/1 更新&lt;br&gt;\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。&lt;/p&gt;\n&lt;p&gt;我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo+github 搭建个人博客及美化</title><link>https://lruihao.cn/posts/hexobuild/</link><pubDate>Fri, 01 Jun 2018 14:34:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexobuild/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://lruihao.cn/categories/hexo/\"&gt;更多关于 hexo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"首先\"&gt;&lt;span&gt;25 首先&lt;/span&gt;\n &lt;a href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：&lt;/p&gt;</description></item><item><title>hexo 添加图片，音乐，链接，视频</title><link>https://lruihao.cn/posts/hexowrite/</link><pubDate>Thu, 31 May 2018 23:19:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexowrite/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如果实在搞得头晕直接去 &lt;a href=\"https://www.jianshu.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简书&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 &lt;a href=\"https://maxiang.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;马克飞象，专为印象笔记打造的 Markdown 编辑器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://www.typora.io/#\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;typora 也是不错的&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，突然发现 &lt;a href=\"https://www.csdn.net/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;csdn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 也支持 Markdown 编译器了&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/memo/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/memo/</title><link rel=canonical href=https://lruihao.cn/categories/memo/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/memo/\"></head></html>"
  },
  {
    "path": "categories/memo/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Memo - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Memo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-10-06T11:10:22+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/memo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Memo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Memo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/memo/ title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/memo/index.xml title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/memo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Memo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Memo <sup>42</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/ms-html-css/ class=archive-item-link>前端面试题 - HTML+CSS</a>\n<span class=archive-item-date title='2019-03-30 22:58:39'>03-30</span></article><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><article class=archive-item><a href=/posts/webbiji/ class=archive-item-link>Web 汇总</a>\n<span class=archive-item-date title='2019-03-18 20:40:55'>03-18</span></article><article class=archive-item><a href=/posts/eclipseuse/ class=archive-item-link>Eclipse 的基本使用</a>\n<span class=archive-item-date title='2019-03-15 23:47:24'>03-15</span></article><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article><article class=archive-item><a href=/posts/recent-posts/ class=archive-item-link>在搜索、文章底部、侧栏添加最近文章模块</a>\n<span class=archive-item-date title='2019-01-16 17:50:52'>01-16</span></article><article class=archive-item><a href=/posts/subject-verb/ class=archive-item-link>英语语法--主谓一致</a>\n<span class=archive-item-date title='2019-01-12 13:02:49'>01-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/inversion-3/ class=archive-item-link>英语语法--形式倒装</a>\n<span class=archive-item-date title='2018-12-10 21:52:30'>12-10</span></article><article class=archive-item><a href=/posts/inversion-2/ class=archive-item-link>英语语法--完全倒装</a>\n<span class=archive-item-date title='2018-12-10 21:14:51'>12-10</span></article><article class=archive-item><a href=/posts/inversion-1/ class=archive-item-link>英语语法--部分倒装</a>\n<span class=archive-item-date title='2018-12-08 17:52:39'>12-08</span></article><article class=archive-item><a href=/posts/nextplugin/ class=archive-item-link>Hexo 插件及 Next 内置样式集</a>\n<span class=archive-item-date title='2018-11-24 16:54:09'>11-24</span></article><article class=archive-item><a href=/posts/next-pdf/ class=archive-item-link>Next 添加支持 Pdf</a>\n<span class=archive-item-date title='2018-11-09 12:51:48'>11-09</span></article><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/vim/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Vim 速查表</a>\n<span class=archive-item-date title='2018-08-31 11:46:39'>08-31</span></article><article class=archive-item><a href=/posts/hexo-wordcount/ class=archive-item-link>Hexo Next 主题添加字数统计（2018）</a>\n<span class=archive-item-date title='2018-08-30 13:15:50'>08-30</span></article><article class=archive-item><a href=/posts/hexo-d-error/ class=archive-item-link>Hexo D 出错</a>\n<span class=archive-item-date title='2018-08-21 22:15:01'>08-21</span></article><article class=archive-item><a href=/posts/dongtaisub/ class=archive-item-link>Hexo 个性化 - Next 主题动态显示 Subtitle</a>\n<span class=archive-item-date title='2018-08-20 16:16:40'>08-20</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article><article class=archive-item><a href=/posts/links/ class=archive-item-link>各种 Links 汇总与分享</a>\n<span class=archive-item-date title='2018-06-07 00:06:05'>06-07</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/memo/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/memo/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/categories/memo/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/memo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/memo/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Memo - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Memo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-10-06T11:10:22+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/memo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Memo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Memo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/memo/ title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/memo/index.xml title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/memo/feed.json title=\"Memo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/memo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Memo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Memo <sup>42</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/hexobuild/ class=archive-item-link>Hexo+github 搭建个人博客及美化</a>\n<span class=archive-item-date title='2018-06-01 14:34:23'>06-01</span></article><article class=archive-item><a href=/posts/hexowrite/ class=archive-item-link>Hexo 添加图片，音乐，链接，视频</a>\n<span class=archive-item-date title='2018-05-31 23:19:22'>05-31</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/categories/memo/>1</a></span></li><li class=page-item><span class=page-link><a href=/categories/memo/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/categories/memo/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/memo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/mysql/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"MySQL - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"SQL 总结\",\"date_published\":\"2020-01-16T19:28:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sql/\",\"url\":\"https://lruihao.cn/posts/sql/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"MySQL\"],\"summary\":\" SQL 增删改查 (CRUD) 语句与常用函数总结。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/mysql/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>MySQL - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"MySQL\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-01-16T19:28:05+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/mysql/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"MySQL\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"MySQL\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/mysql/ title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/mysql/index.xml title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/mysql/feed.json title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/mysql/feed.json title=\"MySQL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/mysql/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>MySQL</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>MySQL <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/sql/ class=archive-item-link>SQL 总结</a>\n<span class=archive-item-date title='2020-01-16 19:28:05'>01-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/mysql/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/mysql/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>MySQL - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/mysql/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/mysql/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>SQL 总结</title><link>https://lruihao.cn/posts/sql/</link><pubDate>Thu, 16 Jan 2020 19:28:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sql/</guid><category domain=\"https://lruihao.cn/categories/mysql/\">MySQL</category><description>&lt;blockquote&gt;\n&lt;p&gt;SQL 增删改查 (CRUD) 语句与常用函数总结。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/mysql/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/mysql/</title><link rel=canonical href=https://lruihao.cn/categories/mysql/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/mysql/\"></head></html>"
  },
  {
    "path": "categories/node.js/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Node.js - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"ttf 字体压缩\",\"date_published\":\"2018-10-17T21:38:06&#43;08:00\",\"date_modified\":\"2024-08-16T16:43:36&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-font/\",\"url\":\"https://lruihao.cn/posts/web-font/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"字体压缩\"],\"summary\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\n\",\"content_html\":\"\\u003cp\\u003eHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/node.js/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Node.js - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Node.js\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-11-28T10:48:07+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/node.js/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Node.js\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Node.js\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/node.js/ title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/node.js/index.xml title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/node.js/feed.json title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/node.js/feed.json title=\"Node.js | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/node.js/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Node.js</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Node.js <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title='2023-11-28 10:48:07'>11-28</span></article><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/web-font/ class=archive-item-link>Ttf 字体压缩</a>\n<span class=archive-item-date title='2018-10-17 21:38:06'>10-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/node.js/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/node.js/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Node.js - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/node.js/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/node.js/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用 Node.js 开发一个轻量脚手架</title><link>https://lruihao.cn/projects/fixit-cli/</link><pubDate>Tue, 28 Nov 2023 10:48:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;本文将介绍如何用 Node.js 开发一个轻量脚手架，以 &lt;a href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit-cli&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 为例。&lt;/p&gt;</description></item><item><title>如何给 npm 包打补丁？</title><link>https://lruihao.cn/posts/patch-package/</link><pubDate>Thu, 12 Oct 2023 22:37:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/patch-package/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>本文将介绍如何给 npm 包打补丁。</description></item><item><title>使用 Node.js 自动创建 Vue 的路由</title><link>https://lruihao.cn/posts/gen-router/</link><pubDate>Wed, 14 Jun 2023 00:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gen-router/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。&lt;/p&gt;</description></item><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>ttf 字体压缩</title><link>https://lruihao.cn/posts/web-font/</link><pubDate>Wed, 17 Oct 2018 21:38:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-font/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/node.js/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/node.js/</title><link rel=canonical href=https://lruihao.cn/categories/node.js/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/node.js/\"></head></html>"
  },
  {
    "path": "categories/os/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"OS - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"不同系统的换行符的差异\",\"date_published\":\"2022-08-07T00:10:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/newline/\",\"url\":\"https://lruihao.cn/posts/newline/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"newline\"],\"summary\":\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\n\",\"content_html\":\"\\u003cp\\u003e换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\u003c/p\\u003e\"},{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"磁盘存储器的管理\",\"date_published\":\"2019-03-04T23:08:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cipanadmin/\",\"url\":\"https://lruihao.cn/posts/cipanadmin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"OS\",\"磁盘\"],\"summary\":\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"外存的组织方式\\\"\\u003e\\u003cspan\\u003e1 外存的组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"连续组织方式\\\"\\u003e\\u003cspan\\u003e1.1 连续组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e连续组织方式的优点\\u003c/p\\u003e\"},{\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"date_published\":\"2018-11-17T14:25:49&#43;08:00\",\"date_modified\":\"2018-11-17T14:25:49&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-bat/\",\"url\":\"https://lruihao.cn/posts/commit-bat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"bat\"],\"summary\":\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\ngit add * （添加需要提交的文件，这里全选） git commit -m \\u0026ldquo;提交信息\\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003egit add * （添加需要提交的文件，这里全选）\\u003c/li\\u003e\\n\\u003cli\\u003egit commit -m \\u0026ldquo;提交信息\\u0026rdquo;\\u003c/li\\u003e\\n\\u003cli\\u003egit push\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"shell 脚本初体验\",\"date_published\":\"2018-10-29T11:57:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/shell/\",\"url\":\"https://lruihao.cn/posts/shell/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"shell\",\"linux\"],\"summary\":\"今天上机学了几个小命令\\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\\n\",\"content_html\":\"\\u003cp\\u003e今天上机学了几个小命令\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eread\\u003c/li\\u003e\\n\\u003cli\\u003eecho\\u003c/li\\u003e\\n\\u003cli\\u003eif\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e然后自己写了一个小脚本觉得还挺有趣的\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"linux 编程初体验\",\"date_published\":\"2018-10-15T21:19:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-hello-c/\",\"url\":\"https://lruihao.cn/posts/linux-hello-c/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"C\"],\"summary\":\" 在 Linux 上编译 c 语言文件。\\n0.7 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e在 Linux 上编译 c 语言文件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开-vim-编辑器\\\"\\u003e\\u003cspan\\u003e0.7 打开 vim 编辑器\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e（没有就用 vi, 或者先安装 vim\\u003ccode\\u003esudo apt-get install vim\\u003c/code\\u003e)\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evim\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"编辑文件\\\"\\u003e\\u003cspan\\u003e0.8 编辑文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e打开文件编辑器之后编辑文件\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" title=\\\"edit\\\" data-thumbnail=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" data-sub-html=\\\"\\u003ch2\\u003eedit\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\\\"edit\\\" height=\\\"725\\\" width=\\\"1191\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/os/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>OS - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"OS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-07T00:10:30+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/os/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"OS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"OS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/os/ title=\"OS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/os/index.xml title=\"OS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/os/feed.json title=\"OS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/os/feed.json title=\"OS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/os/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>OS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>OS <sup>12</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/newline/ class=archive-item-link>不同系统的换行符的差异</a>\n<span class=archive-item-date title='2022-08-07 00:10:30'>08-07</span></article><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article><article class=archive-item><a href=/posts/cipanadmin/ class=archive-item-link>磁盘存储器的管理</a>\n<span class=archive-item-date title='2019-03-04 23:08:32'>03-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/commit-bat/ class=archive-item-link>通过 Bat 批处理文件自动提交博客代码</a>\n<span class=archive-item-date title='2018-11-17 14:25:49'>11-17</span></article><article class=archive-item><a href=/posts/shell/ class=archive-item-link>Shell 脚本初体验</a>\n<span class=archive-item-date title='2018-10-29 11:57:39'>10-29</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><article class=archive-item><a href=/posts/linux-hello-c/ class=archive-item-link>Linux 编程初体验</a>\n<span class=archive-item-date title='2018-10-15 21:19:27'>10-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/os/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/os/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>OS - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/os/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/os/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>不同系统的换行符的差异</title><link>https://lruihao.cn/posts/newline/</link><pubDate>Sun, 07 Aug 2022 00:10:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/newline/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。&lt;/p&gt;</description></item><item><title>linux 文件权限</title><link>https://lruihao.cn/posts/linux-permission/</link><pubDate>Sat, 30 Jul 2022 17:15:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-permission/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;记录 linux 系统下文件权限相关的内容，Mac OS 下类似。&lt;/p&gt;</description></item><item><title>Cron 表达式的基本语法</title><link>https://lruihao.cn/posts/cron/</link><pubDate>Wed, 25 Mar 2020 09:19:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cron/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;13 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;&lt;code&gt;&amp;lt;秒&amp;gt; &amp;lt;分钟&amp;gt; &amp;lt;小时&amp;gt; &amp;lt;日期 day-of-month&amp;gt; &amp;lt;月份&amp;gt; &amp;lt;星期 day-of-week&amp;gt;&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 &lt;code&gt;X X X X X X&lt;/code&gt;。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。&lt;/p&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>ubuntu + windows 双系统默认启动项设置</title><link>https://lruihao.cn/posts/windefault/</link><pubDate>Thu, 21 Mar 2019 12:48:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/windefault/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装</title><link>https://lruihao.cn/posts/bt/</link><pubDate>Mon, 18 Mar 2019 21:31:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bt/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。&lt;a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔官网介绍&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>win10,ubuntu 双系统时间不一致</title><link>https://lruihao.cn/posts/ubuntutime/</link><pubDate>Fri, 15 Mar 2019 14:28:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ubuntutime/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>磁盘存储器的管理</title><link>https://lruihao.cn/posts/cipanadmin/</link><pubDate>Mon, 04 Mar 2019 23:08:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cipanadmin/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"外存的组织方式\"&gt;&lt;span&gt;1 外存的组织方式&lt;/span&gt;\n &lt;a href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"连续组织方式\"&gt;&lt;span&gt;1.1 连续组织方式&lt;/span&gt;\n &lt;a href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;\n&lt;p&gt;连续组织方式的优点&lt;/p&gt;</description></item><item><title>通过 bat 批处理文件自动提交博客代码</title><link>https://lruihao.cn/posts/commit-bat/</link><pubDate>Sat, 17 Nov 2018 14:25:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-bat/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;git add * （添加需要提交的文件，这里全选）&lt;/li&gt;\n&lt;li&gt;git commit -m &amp;ldquo;提交信息&amp;rdquo;&lt;/li&gt;\n&lt;li&gt;git push&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>shell 脚本初体验</title><link>https://lruihao.cn/posts/shell/</link><pubDate>Mon, 29 Oct 2018 11:57:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/shell/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;今天上机学了几个小命令&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;read&lt;/li&gt;\n&lt;li&gt;echo&lt;/li&gt;\n&lt;li&gt;if&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;然后自己写了一个小脚本觉得还挺有趣的&lt;/p&gt;</description></item><item><title>云服务器 CentOS 系统搭建 web 服务</title><link>https://lruihao.cn/posts/web-server-yun/</link><pubDate>Mon, 29 Oct 2018 09:15:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-yun/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h3 class=\"heading-element\" id=\"搭建-apache-web-服务\"&gt;&lt;span&gt;0.10 搭建 Apache web 服务&lt;/span&gt;\n &lt;a href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;安装 Apache 超文本传输协议 (HTTP) 服务器的主程序&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# yum install -y httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意安装目录，可通过 cd 命令切换。&lt;/p&gt;\n&lt;ol start=\"2\"&gt;\n&lt;li&gt;启动 HTTP 服务&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果启动失败，可通过 systemctl status httpd.service 查看错误原因。&lt;br&gt;\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。&lt;br&gt;\n默认根目录&lt;code&gt;/var/www/html/&lt;/code&gt;&lt;/p&gt;</description></item><item><title>linux 编程初体验</title><link>https://lruihao.cn/posts/linux-hello-c/</link><pubDate>Mon, 15 Oct 2018 21:19:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-hello-c/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;在 Linux 上编译 c 语言文件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开-vim-编辑器\"&gt;&lt;span&gt;0.10 打开 vim 编辑器&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;（没有就用 vi, 或者先安装 vim&lt;code&gt;sudo apt-get install vim&lt;/code&gt;)&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vim&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"编辑文件\"&gt;&lt;span&gt;0.11 编辑文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;打开文件编辑器之后编辑文件\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"&lt;h2&gt;edit&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/os/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/os/</title><link rel=canonical href=https://lruihao.cn/categories/os/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/os/\"></head></html>"
  },
  {
    "path": "categories/php/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"PHP - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"date_published\":\"2019-09-28T18:32:42&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phppushurl/\",\"url\":\"https://lruihao.cn/posts/phppushurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" php 主动推送站点链接到百度站长，神马站长进行 SEO。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ephp 主动推送站点链接到百度站长，神马站长进行 SEO。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 按行读取文件信息\",\"date_published\":\"2019-09-28T17:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfile/\",\"url\":\"https://lruihao.cn/posts/phpfile/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\"7 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"普通方法\\\"\\u003e\\u003cspan\\u003e7 普通方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先采用\\u003ccode\\u003efopen()\\u003c/code\\u003e函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。\\u003ccode\\u003efeof()\\u003c/code\\u003e判断是否到最后一行，\\u003ccode\\u003efgets()\\u003c/code\\u003e读取一行文本。\\u003c/p\\u003e\"},{\"title\":\"简单评论模块--php 表单练习\",\"date_published\":\"2019-07-19T11:38:59&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpform/\",\"url\":\"https://lruihao.cn/posts/phpform/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\nPHP 表单安全性的重要提示\\n$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]变量能够被黑客利用！\\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\u003cbr\\u003e\\n\\u003cstrong\\u003ePHP 表单安全性的重要提示\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003e$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]\\u003c/code\\u003e变量能够被黑客利用！\\u003cbr\\u003e\\n如果页面中使用了\\u003ccode\\u003ePHP_SELF\\u003c/code\\u003e，用户能够输入下划线然后执行跨站点脚本（XSS）。\\u003cbr\\u003e\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e跨站点脚本（Cross-site scripting，XSS）\\u003c/code\\u003e是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 函数学习\",\"date_published\":\"2019-07-15T11:37:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfunc/\",\"url\":\"https://lruihao.cn/posts/phpfunc/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 练习 php 函数的基本使用。\\n注：\\n必选参数在可选参数的前面。\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e练习 php 函数的基本使用。\\u003cbr\\u003e\\n注：\\u003cbr\\u003e\\n必选参数在可选参数的前面。\\u003cbr\\u003e\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/php/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>PHP - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"PHP\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-07-25T20:51:11+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/php/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"PHP\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"PHP\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/php/ title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/php/index.xml title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/php/feed.json title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/php/feed.json title=\"PHP | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/php/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>PHP</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>PHP <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/phppushurl/ class=archive-item-link>Php 同时主动推送链接到百度，神马等站长平台</a>\n<span class=archive-item-date title='2019-09-28 18:32:42'>09-28</span></article><article class=archive-item><a href=/posts/phpfile/ class=archive-item-link>Php 按行读取文件信息</a>\n<span class=archive-item-date title='2019-09-28 17:11:17'>09-28</span></article><article class=archive-item><a href=/posts/phpform/ class=archive-item-link>简单评论模块--Php 表单练习</a>\n<span class=archive-item-date title='2019-07-19 11:38:59'>07-19</span></article><article class=archive-item><a href=/posts/phpfunc/ class=archive-item-link>Php 函数学习</a>\n<span class=archive-item-date title='2019-07-15 11:37:33'>07-15</span></article><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/php/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/php/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>PHP - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/php/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/php/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 同时主动推送链接到百度，神马等站长平台</title><link>https://lruihao.cn/posts/phppushurl/</link><pubDate>Sat, 28 Sep 2019 18:32:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phppushurl/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;php 主动推送站点链接到百度站长，神马站长进行 SEO。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 按行读取文件信息</title><link>https://lruihao.cn/posts/phpfile/</link><pubDate>Sat, 28 Sep 2019 17:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfile/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;h2 class=\"heading-element\" id=\"普通方法\"&gt;&lt;span&gt;10 普通方法&lt;/span&gt;\n &lt;a href=\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先采用&lt;code&gt;fopen()&lt;/code&gt;函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。&lt;code&gt;feof()&lt;/code&gt;判断是否到最后一行，&lt;code&gt;fgets()&lt;/code&gt;读取一行文本。&lt;/p&gt;</description></item><item><title>简单评论模块--php 表单练习</title><link>https://lruihao.cn/posts/phpform/</link><pubDate>Fri, 19 Jul 2019 11:38:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpform/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，&lt;br&gt;\n&lt;strong&gt;PHP 表单安全性的重要提示&lt;/strong&gt;&lt;br&gt;\n&lt;code&gt;$_SERVER[&amp;quot;PHP_SELF&amp;quot;]&lt;/code&gt;变量能够被黑客利用！&lt;br&gt;\n如果页面中使用了&lt;code&gt;PHP_SELF&lt;/code&gt;，用户能够输入下划线然后执行跨站点脚本（XSS）。&lt;br&gt;\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;跨站点脚本（Cross-site scripting，XSS）&lt;/code&gt;是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 函数学习</title><link>https://lruihao.cn/posts/phpfunc/</link><pubDate>Mon, 15 Jul 2019 11:37:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfunc/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;练习 php 函数的基本使用。&lt;br&gt;\n注：&lt;br&gt;\n必选参数在可选参数的前面。&lt;br&gt;\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/php/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/php/</title><link rel=canonical href=https://lruihao.cn/categories/php/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/php/\"></head></html>"
  },
  {
    "path": "categories/python/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Python - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"使用 Python 刷 csdn 访问量\",\"date_published\":\"2020-03-26T11:08:38&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/csdnvisiter/\",\"url\":\"https://lruihao.cn/posts/csdnvisiter/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"python 实训总结Ⅱ\",\"date_published\":\"2019-06-21T18:46:41&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx2/\",\"url\":\"https://lruihao.cn/posts/pysx2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 后面几天讲的有点杂，简单记录一下知识点。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e后面几天讲的有点杂，简单记录一下知识点。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅰ\",\"date_published\":\"2019-06-18T18:41:00&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx1/\",\"url\":\"https://lruihao.cn/posts/pysx1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"turtle\"],\"summary\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\\n这次正好又课程安排了为期两周的综合实训，主要是“\\u003cstrong\\u003e用 python 做量化交易\\u003c/strong\\u003e”\\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 设置程序每天 8 点定时执行任务\",\"date_published\":\"2019-05-09T23:26:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysettime/\",\"url\":\"https://lruihao.cn/posts/pysettime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"Cron\"],\"summary\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\n（该程序需要一直挂着，保持网络不断）\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\u003cbr\\u003e\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\u003cbr\\u003e\\n（该程序需要一直挂着，保持网络不断）\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"date_published\":\"2019-05-09T19:05:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pyinstallererror/\",\"url\":\"https://lruihao.cn/posts/pyinstallererror/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"pyinstaller\"],\"image\":\"/posts/pyinstallererror/images/1.png\",\"summary\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用过命令\\u003ccode\\u003epip install pyinstaller\\u003c/code\\u003e安装失败，此包依赖于 pywin32，安装前需要先\\u003ccode\\u003epip install pywin32\\u003c/code\\u003e, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\\n这里通过手动下载安装解决的，记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 发送 post 请求进行简单的接口测试\",\"date_published\":\"2019-05-07T18:17:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/posttest/\",\"url\":\"https://lruihao.cn/posts/posttest/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"summary\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\nrequests.get() requests.post()\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003erequests.get()\\u003c/li\\u003e\\n\\u003cli\\u003erequests.post()\\u003cbr\\u003e\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"python 爬取网站图片（图片链接相似）\",\"date_published\":\"2019-04-22T12:46:34&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mmtimgpy/\",\"url\":\"https://lruihao.cn/posts/mmtimgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下程序对 \\u003ca href=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026amp;a=fontshowPics\\u0026amp;u=qbfRl8gPF2s-\\u0026amp;z=Kqz%2FRroVGYc-\\u0026amp;share=1\\u0026amp;from=singlemessage\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e该网址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。\\u003ca href=\\\"/projects/font-mmt/\\\"\\u003e字体效果查看\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/python/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Python\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-03-26T11:08:38+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/python/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Python\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Python\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/python/ title=\"Python | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/python/index.xml title=\"Python | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/python/feed.json title=\"Python | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/python/feed.json title=\"Python | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/python/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Python <sup>13</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a>\n<span class=archive-item-date title='2020-03-26 11:08:38'>03-26</span></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/pysx2/ class=archive-item-link>Python 实训总结Ⅱ</a>\n<span class=archive-item-date title='2019-06-21 18:46:41'>06-21</span></article><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a>\n<span class=archive-item-date title='2019-06-18 18:41:00'>06-18</span></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/pysettime/ class=archive-item-link>Python 设置程序每天 8 点定时执行任务</a>\n<span class=archive-item-date title='2019-05-09 23:26:54'>05-09</span></article><article class=archive-item><a href=/posts/pyinstallererror/ class=archive-item-link>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a>\n<span class=archive-item-date title='2019-05-09 19:05:01'>05-09</span></article><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article><article class=archive-item><a href=/posts/posttest/ class=archive-item-link>Python 发送 Post 请求进行简单的接口测试</a>\n<span class=archive-item-date title='2019-05-07 18:17:05'>05-07</span></article><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/mmtimgpy/ class=archive-item-link>Python 爬取网站图片（图片链接相似）</a>\n<span class=archive-item-date title='2019-04-22 12:46:34'>04-22</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/python/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/python/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Python - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/python/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/python/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>使用 Python 刷 csdn 访问量</title><link>https://lruihao.cn/posts/csdnvisiter/</link><pubDate>Thu, 26 Mar 2020 11:08:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/csdnvisiter/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>新冠疫情未返校未返工第 N 天之“自动打卡”</title><link>https://lruihao.cn/posts/daka/</link><pubDate>Wed, 25 Mar 2020 08:22:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/daka/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;这件事还得从一只蝙蝠说起 &amp;hellip;&lt;br&gt;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &amp;hellip;&lt;br&gt;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &amp;hellip;&lt;br&gt;\n我和潇 X 巴哥确定思路后兵分两路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；&lt;/li&gt;\n&lt;li&gt;我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；&lt;/li&gt;\n&lt;/ol&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>python 实训总结Ⅱ</title><link>https://lruihao.cn/posts/pysx2/</link><pubDate>Fri, 21 Jun 2019 18:46:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx2/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;后面几天讲的有点杂，简单记录一下知识点。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实训总结Ⅰ</title><link>https://lruihao.cn/posts/pysx1/</link><pubDate>Tue, 18 Jun 2019 18:41:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx1/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“&lt;strong&gt;用 python 做量化交易&lt;/strong&gt;”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 设置程序每天 8 点定时执行任务</title><link>https://lruihao.cn/posts/pysettime/</link><pubDate>Thu, 09 May 2019 23:26:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysettime/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。&lt;br&gt;\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。&lt;br&gt;\n（该程序需要一直挂着，保持网络不断）&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>安装 pyinstaller 出错的解决办法及 csdn 工具实例打包</title><link>https://lruihao.cn/posts/pyinstallererror/</link><pubDate>Thu, 09 May 2019 19:05:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pyinstallererror/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用过命令&lt;code&gt;pip install pyinstaller&lt;/code&gt;安装失败，此包依赖于 pywin32，安装前需要先&lt;code&gt;pip install pywin32&lt;/code&gt;, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Python 如何操作 Json？</title><link>https://lruihao.cn/posts/jsoninfo/</link><pubDate>Tue, 07 May 2019 18:42:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jsoninfo/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 发送 post 请求进行简单的接口测试</title><link>https://lruihao.cn/posts/posttest/</link><pubDate>Tue, 07 May 2019 18:17:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/posttest/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;requests.get()&lt;/li&gt;\n&lt;li&gt;requests.post()&lt;br&gt;\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>python 爬取网站图片（图片链接相似）</title><link>https://lruihao.cn/posts/mmtimgpy/</link><pubDate>Mon, 22 Apr 2019 12:46:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mmtimgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下程序对 &lt;a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;amp;a=fontshowPics&amp;amp;u=qbfRl8gPF2s-&amp;amp;z=Kqz%2FRroVGYc-&amp;amp;share=1&amp;amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;该网址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。&lt;a href=\"https://lruihao.cn/projects/font-mmt/\"&gt;字体效果查看&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/python/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/python/</title><link rel=canonical href=https://lruihao.cn/categories/python/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/python/\"></head></html>"
  },
  {
    "path": "categories/react/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"React - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "categories/react/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>React - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"React\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-04-02T18:05:34+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/react/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"React\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"React\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/react/ title=\"React | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/react/index.xml title=\"React | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/react/feed.json title=\"React | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/react/feed.json title=\"React | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/react/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>React</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>React <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title='2024-04-02 18:05:34'>04-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/react/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/react/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>React - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/react/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/react/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用五天时间给自己制作一个封面图生成工具</title><link>https://lruihao.cn/projects/coverview/</link><pubDate>Tue, 02 Apr 2024 18:05:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/coverview/</guid><category domain=\"https://lruihao.cn/categories/react/\">React</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;Cool!&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;苦封面图久矣，今日终有所成。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/react/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/react/</title><link rel=canonical href=https://lruihao.cn/categories/react/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/react/\"></head></html>"
  },
  {
    "path": "categories/spec/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"程序猿的自我修养 - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"架构之基：从根儿上了解设计原则\",\"date_published\":\"2024-06-09T02:24:31&#43;08:00\",\"date_modified\":\"2024-06-09T02:57:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/design-principles/\",\"url\":\"https://lruihao.cn/posts/design-principles/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Design Patterns\",\"Java\"],\"summary\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\",\"content_html\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"},{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"},{\"title\":\"认知复杂度（Cognitive Complexity）\",\"date_published\":\"2023-10-08T09:52:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"url\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"image\":\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\",\"summary\":\"27 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\n27.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"摘要\\\"\\u003e\\u003cspan\\u003e27 摘要\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%91%98%e8%a6%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"术语说明\\\"\\u003e\\u003cspan\\u003e27.1 术语说明\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"中文翻译的常见问题\",\"date_published\":\"2023-09-15T11:07:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:45:09&#43;08:00\",\"id\":\"https://lruihao.cn/posts/translation-guide/\",\"url\":\"https://lruihao.cn/posts/translation-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"他山之石\"],\"summary\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下内容截取自 \\u003ca href=\\\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e针对 MDN 文档的本地化指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的中文翻译的常见问题小节。\\u003c/p\\u003e\\n\\u003cp\\u003e其中翻译的规范也是中文写作的规范，更多详见之前写的 \\u003ca href=\\\"/posts/document-style-guide/\\\"\\u003e中文技术文档的写作规范\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\u003c/p\\u003e\"},{\"title\":\"中文技术文档的写作规范\",\"date_published\":\"2023-02-04T16:04:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/document-style-guide/\",\"url\":\"https://lruihao.cn/posts/document-style-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\" 以下参考来源：阮一峰的 中文技术文档的写作规范\\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下参考来源：阮一峰的 \\u003ca href=\\\"https://github.com/ruanyf/document-style-guide\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如\\u003ca href=\\\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e微软\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"http://styleguide.mailchimp.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMailChimp\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eApple\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8\\u0026amp;btkr=1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eYahoo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://docs.docker.com/opensource/doc-style/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edocker\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://struts.apache.org/docs/documentation-style-guide.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eStruts\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等（维基百科有一份完整的\\u003ca href=\\\"https://en.wikipedia.org/wiki/List_of_style_guides\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e清单\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e）。\\u003ca href=\\\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e也有不少，但都不令人满意，要么太简单，要么不太适用。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\u003c/p\\u003e\\n\\u003cp\\u003e参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\u003c/p\\u003e\"},{\"title\":\"语义版本控制（SemVer）\",\"date_published\":\"2022-08-13T13:32:03&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/semver/\",\"url\":\"https://lruihao.cn/posts/semver/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SemVer\"],\"image\":\"https://lruihao.cn/posts/semver/images/featured-image.png\",\"summary\":\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e版本格式：\\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e，版本号递增规则如下：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMAJOR\\u003c/code\\u003e: \\u003cstrong\\u003e主版本号\\u003c/strong\\u003e，当你做了不兼容的 API 修改\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMINOR\\u003c/code\\u003e: \\u003cstrong\\u003e次版本号\\u003c/strong\\u003e，当你做了向下兼容的功能性新增\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003ePATCH\\u003c/code\\u003e: \\u003cstrong\\u003e修订号\\u003c/strong\\u003e，当你做了向下兼容的问题修正\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e先行版本号及版本编译信息可以加到 \\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e 的后面，作为延伸。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Commit Message Spec\",\"date_published\":\"2022-08-12T15:37:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-spec/\",\"url\":\"https://lruihao.cn/posts/commit-spec/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cp\\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \\u003ca href=\\\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eConventional Commits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e specification based on the \\u003ca href=\\\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAngular convention\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\u003c/p\\u003e\"},{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/spec/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>程序猿的自我修养 - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"程序猿的自我修养\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2023-09-25T17:27:05+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/spec/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"程序猿的自我修养\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"程序猿的自我修养\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/spec/ title=\"程序猿的自我修养 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/spec/index.xml title=\"程序猿的自我修养 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/spec/feed.json title=\"程序猿的自我修养 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/spec/feed.json title=\"程序猿的自我修养 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/spec/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>程序猿的自我修养</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>程序猿的自我修养 <sup>9</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a>\n<span class=archive-item-date title='2024-06-09 02:24:31'>06-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a>\n<span class=archive-item-date title='2023-10-08 09:52:44'>10-08</span></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a>\n<span class=archive-item-date title='2023-09-15 11:07:56'>09-15</span></article><article class=archive-item><a href=/posts/document-style-guide/ class=archive-item-link>中文技术文档的写作规范</a>\n<span class=archive-item-date title='2023-02-04 16:04:42'>02-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/semver/ class=archive-item-link>语义版本控制（SemVer）</a>\n<span class=archive-item-date title='2022-08-13 13:32:03'>08-13</span></article><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a>\n<span class=archive-item-date title='2022-08-12 15:37:44'>08-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/223b81876e3028aeaa96a2959290d05b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/223b81876e3028aeaa96a2959290d05b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/spec/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/spec/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>程序猿的自我修养 - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/spec/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 06 Aug 2024 14:11:51 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/spec/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>架构之基：从根儿上了解设计原则</title><link>https://lruihao.cn/posts/design-principles/</link><pubDate>Sun, 09 Jun 2024 02:24:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/design-principles/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</description></item><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item><item><title>认知复杂度（Cognitive Complexity）</title><link>https://lruihao.cn/posts/cognitive-complexity/</link><pubDate>Sun, 08 Oct 2023 09:52:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cognitive-complexity/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;h2 class=\"heading-element\" id=\"摘要\"&gt;&lt;span&gt;40 摘要&lt;/span&gt;\n &lt;a href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"术语说明\"&gt;&lt;span&gt;40.1 术语说明&lt;/span&gt;\n &lt;a href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。&lt;/p&gt;\n&lt;hr&gt;</description></item><item><title>中文翻译的常见问题</title><link>https://lruihao.cn/posts/translation-guide/</link><pubDate>Fri, 15 Sep 2023 11:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/translation-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下内容截取自 &lt;a href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;针对 MDN 文档的本地化指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的中文翻译的常见问题小节。&lt;/p&gt;\n&lt;p&gt;其中翻译的规范也是中文写作的规范，更多详见之前写的 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\"&gt;中文技术文档的写作规范&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;为保证简体中文文档格式的一致性，翻译指南列出了部分规范。&lt;/p&gt;</description></item><item><title>中文技术文档的写作规范</title><link>https://lruihao.cn/posts/document-style-guide/</link><pubDate>Sat, 04 Feb 2023 16:04:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/document-style-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下参考来源：阮一峰的 &lt;a href=\"https://github.com/ruanyf/document-style-guide\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如&lt;a href=\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;微软&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"http://styleguide.mailchimp.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MailChimp&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Apple&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&amp;amp;btkr=1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Yahoo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://docs.docker.com/opensource/doc-style/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;docker&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://struts.apache.org/docs/documentation-style-guide.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Struts&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等（维基百科有一份完整的&lt;a href=\"https://en.wikipedia.org/wiki/List_of_style_guides\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;清单&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;）。&lt;a href=\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文的&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;也有不少，但都不令人满意，要么太简单，要么不太适用。&lt;/p&gt;\n&lt;p&gt;对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。&lt;/p&gt;\n&lt;p&gt;对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。&lt;/p&gt;\n&lt;p&gt;参考上面的规范，于是有了下面一份中文技术文档的写作规范。&lt;/p&gt;</description></item><item><title>语义版本控制（SemVer）</title><link>https://lruihao.cn/posts/semver/</link><pubDate>Sat, 13 Aug 2022 13:32:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/semver/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;版本格式：&lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt;，版本号递增规则如下：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;&lt;code&gt;MAJOR&lt;/code&gt;: &lt;strong&gt;主版本号&lt;/strong&gt;，当你做了不兼容的 API 修改&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;MINOR&lt;/code&gt;: &lt;strong&gt;次版本号&lt;/strong&gt;，当你做了向下兼容的功能性新增&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;PATCH&lt;/code&gt;: &lt;strong&gt;修订号&lt;/strong&gt;，当你做了向下兼容的问题修正&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;先行版本号及版本编译信息可以加到 &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; 的后面，作为延伸。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Commit Message Spec</title><link>https://lruihao.cn/posts/commit-spec/</link><pubDate>Fri, 12 Aug 2022 15:37:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-spec/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;p&gt;Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the &lt;a href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Conventional Commits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; specification based on the &lt;a href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Angular convention&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.&lt;/p&gt;</description></item><item><title>RESTful</title><link>https://lruihao.cn/posts/restful/</link><pubDate>Thu, 14 Nov 2019 19:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/restful/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\">计算机网络</category><description>&lt;blockquote&gt;\n&lt;p&gt;RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 &lt;a href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RFC5789&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/spec/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/spec/</title><link rel=canonical href=https://lruihao.cn/categories/spec/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/spec/\"></head></html>"
  },
  {
    "path": "categories/thoughts/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"有所思 - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"2023 年度总结\",\"date_published\":\"2024-02-09T14:07:24&#43;08:00\",\"date_modified\":\"2024-02-09T14:07:24&#43;08:00\",\"id\":\"https://lruihao.cn/years/2023/\",\"url\":\"https://lruihao.cn/years/2023/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"总结\"],\"summary\":\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\n\",\"content_html\":\"\\u003cp\\u003e与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\u003c/p\\u003e\"},{\"title\":\"第一次面试经历\",\"date_published\":\"2019-04-24T21:23:22&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/1thintervivew/\",\"url\":\"https://lruihao.cn/posts/1thintervivew/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面试\"],\"summary\":\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"还乡\",\"date_published\":\"2019-02-01T20:44:40&#43;08:00\",\"date_modified\":\"2019-02-01T20:44:40&#43;08:00\",\"id\":\"https://lruihao.cn/posts/renative/\",\"url\":\"https://lruihao.cn/posts/renative/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\",\"他山之石\"],\"summary\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网站备案之旅\",\"date_published\":\"2018-10-29T23:16:26&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beian/\",\"url\":\"https://lruihao.cn/posts/beian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\",\"网站备案\"],\"summary\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e备案\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\u003cbr\\u003e\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"每一个优秀的人，都有一段沉默的时光\",\"date_published\":\"2018-09-21T21:11:25&#43;08:00\",\"date_modified\":\"2018-09-21T21:11:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mood/\",\"url\":\"https://lruihao.cn/posts/mood/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"summary\":\" 手机便签里保存的一段话，也记不得在哪看到的了。\\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e手机便签里保存的一段话，也记不得在哪看到的了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\u003cbr\\u003e\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\u003c/p\\u003e\\n\\u003cp\\u003e人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\u003cbr\\u003e\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"},{\"title\":\"戏子春秋\",\"date_published\":\"2018-06-03T19:41:32&#43;08:00\",\"date_modified\":\"2018-06-03T19:41:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"url\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\"],\"summary\":\" 从此故乡只有冬夏，再无春秋。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从此故乡只有冬夏，再无春秋。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"猴子与哪吒\",\"date_published\":\"2018-05-31T10:09:15&#43;08:00\",\"date_modified\":\"2018-05-31T10:09:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"url\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/猴子与哪吒/images/hznz.jpg\",\"summary\":\"一直觉得中国古代神话\\n能称得上传奇的只有两个人物：\\n一是猴子\\n一是哪吒\\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\\n三年怀胎生了个哪吒 东海屠龙翻江倒海\\n可以说 除了这两人 没人再能当得起离经放纵四个字的\\n但称得上悲剧的 约摸也只有这两个\\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\n\",\"content_html\":\"\\u003cp\\u003e一直觉得中国古代神话\\u003c/p\\u003e\\n\\u003cp\\u003e能称得上传奇的只有两个人物：\\u003c/p\\u003e\\n\\u003cp\\u003e一是猴子\\u003c/p\\u003e\\n\\u003cp\\u003e一是哪吒\\u003c/p\\u003e\\n\\u003cp\\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\\u003c/p\\u003e\\n\\u003cp\\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\\u003c/p\\u003e\\n\\u003cp\\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\\u003c/p\\u003e\\n\\u003cp\\u003e但称得上悲剧的 约摸也只有这两个\\u003c/p\\u003e\\n\\u003cp\\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\u003c/p\\u003e\\n\\u003cp\\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\u003c/p\\u003e\"},{\"title\":\"Hello World\",\"date_published\":\"2018-05-28T20:01:01&#43;08:00\",\"date_modified\":\"2024-07-28T22:39:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hello-world/\",\"url\":\"https://lruihao.cn/posts/hello-world/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/hello-world/images/lunyu.jpg\",\"summary\":\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\n其實也不重要了，還望披荊斬棘，不改初心。\\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\u003cbr\\u003e\\n其實也不重要了，還望披荊斬棘，不改初心。\\u003c/p\\u003e\\n\\u003cp\\u003e不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\u003c/p\\u003e\\n\\u003cp\\u003e從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/thoughts/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>有所思 - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"有所思\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2023-10-12T20:52:29+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/thoughts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"有所思\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"有所思\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/thoughts/ title=\"有所思 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/thoughts/index.xml title=\"有所思 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/thoughts/feed.json title=\"有所思 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/thoughts/feed.json title=\"有所思 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/thoughts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>有所思</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>有所思 <sup>15</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/404d6a2/ class=archive-item-link>坐高铁去柳州吃螺狮粉</a>\n<span class=archive-item-date title='2024-05-20 11:41:03'>05-20</span></article><article class=archive-item><a href=/years/2023/ class=archive-item-link>2023 年度总结</a>\n<span class=archive-item-date title='2024-02-09 14:07:24'>02-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/years/2022/ class=archive-item-link>2022 年度总结</a>\n<span class=archive-item-date title='2022-12-17 01:01:30'>12-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/years/2020-2021/ class=archive-item-link>2020&amp;2021 總結</a>\n<span class=archive-item-date title='2021-06-21 10:17:38'>06-21</span></article><article class=archive-item><a href=/me/whysmoke/ class=archive-item-link>你为什么吸烟？</a>\n<span class=archive-item-date title='2021-03-01 01:27:41'>03-01</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/years/2019/ class=archive-item-link>2019 年度总结</a>\n<span class=archive-item-date title='2020-01-16 20:01:22'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/1thintervivew/ class=archive-item-link>第一次面试经历</a>\n<span class=archive-item-date title='2019-04-24 21:23:22'>04-24</span></article><article class=archive-item><a href=/posts/renative/ class=archive-item-link>还乡</a>\n<span class=archive-item-date title='2019-02-01 20:44:40'>02-01</span></article><article class=archive-item><a href=/years/2018/ class=archive-item-link>2018 年度总结</a>\n<span class=archive-item-date title='2019-01-12 11:09:52'>01-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/beian/ class=archive-item-link>网站备案之旅</a>\n<span class=archive-item-date title='2018-10-29 23:16:26'>10-29</span></article><article class=archive-item><a href=/posts/mood/ class=archive-item-link>每一个优秀的人，都有一段沉默的时光</a>\n<span class=archive-item-date title='2018-09-21 21:11:25'>09-21</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article><article class=archive-item><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=archive-item-link>戏子春秋</a>\n<span class=archive-item-date title='2018-06-03 19:41:32'>06-03</span></article><article class=archive-item><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=archive-item-link>猴子与哪吒</a>\n<span class=archive-item-date title='2018-05-31 10:09:15'>05-31</span></article><article class=archive-item><a href=/posts/hello-world/ class=archive-item-link>Hello World</a>\n<span class=archive-item-date title='2018-05-28 20:01:01'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0037bc2c32fa8e81abd15ed406ab2c88.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0037bc2c32fa8e81abd15ed406ab2c88.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/thoughts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/thoughts/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>有所思 - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/thoughts/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 22:39:47 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/thoughts/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>2023 年度总结</title><link>https://lruihao.cn/years/2023/</link><pubDate>Fri, 09 Feb 2024 14:07:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/years/2023/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。&lt;/p&gt;</description></item><item><title>第一次面试经历</title><link>https://lruihao.cn/posts/1thintervivew/</link><pubDate>Wed, 24 Apr 2019 21:23:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/1thintervivew/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>还乡</title><link>https://lruihao.cn/posts/renative/</link><pubDate>Fri, 01 Feb 2019 20:44:40 +0800</pubDate><guid>https://lruihao.cn/posts/renative/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>网站备案之旅</title><link>https://lruihao.cn/posts/beian/</link><pubDate>Mon, 29 Oct 2018 23:16:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beian/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;备案&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。&lt;br&gt;\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>每一个优秀的人，都有一段沉默的时光</title><link>https://lruihao.cn/posts/mood/</link><pubDate>Fri, 21 Sep 2018 21:11:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mood/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;手机便签里保存的一段话，也记不得在哪看到的了。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。&lt;br&gt;\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。&lt;/p&gt;\n&lt;p&gt;人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。&lt;br&gt;\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛总结</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 14 Jun 2018 23:32:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（hdu 复赛）&lt;/p&gt;\n&lt;p&gt;2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。&lt;/p&gt;</description></item><item><title>戏子春秋</title><link>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</link><pubDate>Sun, 03 Jun 2018 19:41:32 +0800</pubDate><guid>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;从此故乡只有冬夏，再无春秋。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>猴子与哪吒</title><link>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</link><pubDate>Thu, 31 May 2018 10:09:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;一直觉得中国古代神话&lt;/p&gt;\n&lt;p&gt;能称得上传奇的只有两个人物：&lt;/p&gt;\n&lt;p&gt;一是猴子&lt;/p&gt;\n&lt;p&gt;一是哪吒&lt;/p&gt;\n&lt;p&gt;百世蕴灵育出只石猴 大闹天宫腾云驾雾&lt;/p&gt;\n&lt;p&gt;三年怀胎生了个哪吒 东海屠龙翻江倒海&lt;/p&gt;\n&lt;p&gt;可以说 除了这两人 没人再能当得起离经放纵四个字的&lt;/p&gt;\n&lt;p&gt;但称得上悲剧的 约摸也只有这两个&lt;/p&gt;\n&lt;p&gt;一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空&lt;/p&gt;\n&lt;p&gt;一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://lruihao.cn/posts/hello-world/</link><pubDate>Mon, 28 May 2018 20:01:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hello-world/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，&lt;br&gt;\n其實也不重要了，還望披荊斬棘，不改初心。&lt;/p&gt;\n&lt;p&gt;不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！&lt;/p&gt;\n&lt;p&gt;從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/thoughts/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/thoughts/</title><link rel=canonical href=https://lruihao.cn/categories/thoughts/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/thoughts/\"></head></html>"
  },
  {
    "path": "categories/vue.js/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Vue.js - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"},{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"date_published\":\"2024-02-29T16:46:00&#43;08:00\",\"date_modified\":\"2024-06-12T18:57:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"url\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\n\",\"content_html\":\"\\u003cp\\u003e在 Element UI 的表格组件中，当表格列的内容过长时，设置 \\u003ccode\\u003eshow-overflow-tooltip\\u003c/code\\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\u003c/p\\u003e\"},{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"给 el-card 添加折叠功能\",\"date_published\":\"2024-01-10T17:06:54&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-card-collapse/\",\"url\":\"https://lruihao.cn/posts/el-card-collapse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e出发点\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e虽然 Element 也有 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/collapse\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-collapse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，\\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/card\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-card\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"},{\"title\":\"拖拽式仪表盘的设计与开发\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"url\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"content_html\":\"关于拖拽式仪表盘的设计与开发系列文章。\"},{\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"date_published\":\"2023-09-25T17:49:58&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\u003c/p\\u003e\"},{\"title\":\"封装 Vue FullScreenToggler 组件\",\"date_published\":\"2023-09-17T19:44:07&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"url\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"JavaScript\"],\"summary\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\\n\",\"content_html\":\"\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/mirari/vue-fullscreen\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evue-fullscreen\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\\u003c/p\\u003e\"},{\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"date_published\":\"2023-09-14T11:24:48&#43;08:00\",\"date_modified\":\"2024-06-06T23:01:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"url\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SVG\",\"Vue2\"],\"summary\":\"19 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e19 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、\\u003ca href=\\\"https://fontawesome.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFont Awesome\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.iconfont.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIconfont\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等。\\u003c/p\\u003e\\n\\u003cp\\u003e随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\u003c/p\\u003e\"},{\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"date_published\":\"2023-07-20T11:08:18&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"url\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\\n\",\"content_html\":\"\\u003cp\\u003e这篇文章主要是记录一下继承 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/backtop\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElBacktop\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件并修复了一些 bug 的过程。\\u003c/p\\u003e\"},{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"date_published\":\"2023-03-14T08:37:59&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue2-guid/\",\"url\":\"https://lruihao.cn/posts/vue2-guid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"他山之石\"],\"summary\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\\n此指南仅供参考，请根据自身实际情况灵活调整。\\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e注：2.0 已经有\\u003ca href=\\\"https://v2.cn.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 。如果对自己英文有信心，也可以直接阅读\\u003ca href=\\\"https://v2.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003cbr\\u003e\\n此指南仅供参考，请根据自身实际情况灵活调整。\\u003cbr\\u003e\\n转载自： \\u003ca href=\\\"https://www.zhihu.com/people/evanyou\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尤雨溪\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://zhuanlan.zhihu.com/p/23134551\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，2017-08-04 14:51\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/vue.js/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue.js - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Vue.js\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-11T10:05:36+08:00\"><meta itemprop=dateModified content=\"2025-06-11T10:15:18+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/vue.js/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue.js\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue.js\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/vue.js/ title=\"Vue.js | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/vue.js/index.xml title=\"Vue.js | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/vue.js/feed.json title=\"Vue.js | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/vue.js/feed.json title=\"Vue.js | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/vue.js/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue.js</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>Vue.js <sup>19</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title='2024-04-04 13:23:37'>04-04</span></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a>\n<span class=archive-item-date title='2024-02-29 16:46:00'>02-29</span></article><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a>\n<span class=archive-item-date title='2024-01-10 17:06:54'>01-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article><article class=archive-item><a href=/posts/draggable-dashboard/ class=archive-item-link>拖拽式仪表盘的设计与开发</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/projects/el-table-sticky/ class=archive-item-link>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a>\n<span class=archive-item-date title='2023-09-25 17:49:58'>09-25</span></article><article class=archive-item><a href=/posts/vue-fullscreen-toggler/ class=archive-item-link>封装 Vue FullScreenToggler 组件</a>\n<span class=archive-item-date title='2023-09-17 19:44:07'>09-17</span></article><article class=archive-item><a href=/posts/vue-svg-icon/ class=archive-item-link>在 Vue 项目中更优雅地使用 Icon</a>\n<span class=archive-item-date title='2023-09-14 11:24:48'>09-14</span></article><article class=archive-item><a href=/posts/el-backtop-fix/ class=archive-item-link>用魔法打败魔法 - ElBacktop Fix</a>\n<span class=archive-item-date title='2023-07-20 11:08:18'>07-20</span></article><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article><article class=archive-item><a href=/posts/vue2-guid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a>\n<span class=archive-item-date title='2023-03-14 08:37:59'>03-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/vue.js/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/vue.js/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Vue.js - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/vue.js/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 11 Jun 2025 10:15:18 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/vue.js/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;</description></item><item><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能</title><link>https://lruihao.cn/posts/aside-toggle-drag/</link><pubDate>Thu, 13 Jun 2024 21:03:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/aside-toggle-drag/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。&lt;/p&gt;</description></item><item><title>临时决定再写一个小工具 - 网站预览图生成器</title><link>https://lruihao.cn/projects/apple-devices-preview/</link><pubDate>Thu, 04 Apr 2024 13:23:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/apple-devices-preview/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;开发完 &lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。&lt;/p&gt;</description></item><item><title>实现类似于 Element UI 表格的溢出文本提示功能</title><link>https://lruihao.cn/posts/overflow-tooltip/</link><pubDate>Thu, 29 Feb 2024 16:46:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/overflow-tooltip/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;在 Element UI 的表格组件中，当表格列的内容过长时，设置 &lt;code&gt;show-overflow-tooltip&lt;/code&gt; 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？&lt;/p&gt;</description></item><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>给 el-card 添加折叠功能</title><link>https://lruihao.cn/posts/el-card-collapse/</link><pubDate>Wed, 10 Jan 2024 17:06:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-card-collapse/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;出发点&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;虽然 Element 也有 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-collapse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，&lt;a href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-card&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item><item><title>拖拽式仪表盘的设计与开发</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/draggable-dashboard/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>关于拖拽式仪表盘的设计与开发系列文章。</description></item><item><title>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</title><link>https://lruihao.cn/projects/el-table-sticky/</link><pubDate>Mon, 25 Sep 2023 17:49:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。&lt;/p&gt;</description></item><item><title>封装 Vue FullScreenToggler 组件</title><link>https://lruihao.cn/posts/vue-fullscreen-toggler/</link><pubDate>Sun, 17 Sep 2023 19:44:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-fullscreen-toggler/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;基于 &lt;a href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vue-fullscreen&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 封装一个的 Vue 全屏/退出全屏切换组件。&lt;/p&gt;</description></item><item><title>在 Vue 项目中更优雅地使用 icon</title><link>https://lruihao.cn/posts/vue-svg-icon/</link><pubDate>Thu, 14 Sep 2023 11:24:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-svg-icon/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;28 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、&lt;a href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Font Awesome&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Iconfont&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等。&lt;/p&gt;\n&lt;p&gt;随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。&lt;/p&gt;</description></item><item><title>用魔法打败魔法 - ElBacktop Fix</title><link>https://lruihao.cn/posts/el-backtop-fix/</link><pubDate>Thu, 20 Jul 2023 11:08:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-backtop-fix/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;这篇文章主要是记录一下继承 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ElBacktop&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件并修复了一些 bug 的过程。&lt;/p&gt;</description></item><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>新手向：Vue 2.0 的建议学习顺序</title><link>https://lruihao.cn/posts/vue2-guid/</link><pubDate>Tue, 14 Mar 2023 08:37:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue2-guid/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;blockquote&gt;\n&lt;p&gt;注：2.0 已经有&lt;a href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 。如果对自己英文有信心，也可以直接阅读&lt;a href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;br&gt;\n此指南仅供参考，请根据自身实际情况灵活调整。&lt;br&gt;\n转载自： &lt;a href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尤雨溪&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，2017-08-04 14:51&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/vue.js/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/vue.js/</title><link rel=canonical href=https://lruihao.cn/categories/vue.js/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/vue.js/\"></head></html>"
  },
  {
    "path": "categories/瞎折腾/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"瞎折腾 - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"使用 Python 刷 csdn 访问量\",\"date_published\":\"2020-03-26T11:08:38&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/csdnvisiter/\",\"url\":\"https://lruihao.cn/posts/csdnvisiter/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"python 爬取网站图片（图片链接相似）\",\"date_published\":\"2019-04-22T12:46:34&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mmtimgpy/\",\"url\":\"https://lruihao.cn/posts/mmtimgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下程序对 \\u003ca href=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026amp;a=fontshowPics\\u0026amp;u=qbfRl8gPF2s-\\u0026amp;z=Kqz%2FRroVGYc-\\u0026amp;share=1\\u0026amp;from=singlemessage\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e该网址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。\\u003ca href=\\\"/projects/font-mmt/\\\"\\u003e字体效果查看\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"“高逼格”C 语言画心\",\"date_published\":\"2018-08-15T16:33:12&#43;08:00\",\"date_modified\":\"2018-08-15T16:33:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/heart/\",\"url\":\"https://lruihao.cn/posts/heart/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C\"],\"summary\":\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\n大一在机房拍的图 \",\"content_html\":\"\\u003cp\\u003e七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" title=\\\"大一在机房拍的图\\\" data-thumbnail=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" data-sub-html=\\\"\\u003ch2\\u003e截图\\u003c/h2\\u003e\\u003cp\\u003e大一在机房拍的图\\u003c/p\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\\\"截图\\\" height=\\\"210\\\" width=\\\"210\\\"\\u003e\\u003c/a\\u003e\\u003cfigcaption class=\\\"image-caption\\\"\\u003e大一在机房拍的图\\u003c/figcaption\\u003e\\n  \\u003c/figure\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/瞎折腾/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>瞎折腾 - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"瞎折腾\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-04-17T12:51:35+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"瞎折腾\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"瞎折腾\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ title=\"瞎折腾 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/index.xml title=\"瞎折腾 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/feed.json title=\"瞎折腾 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/feed.json title=\"瞎折腾 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>瞎折腾</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>瞎折腾 <sup>10</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title='2024-04-17 12:51:35'>04-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a>\n<span class=archive-item-date title='2020-03-26 11:08:38'>03-26</span></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/mmtimgpy/ class=archive-item-link>Python 爬取网站图片（图片链接相似）</a>\n<span class=archive-item-date title='2019-04-22 12:46:34'>04-22</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/heart/ class=archive-item-link>“高逼格”C 语言画心</a>\n<span class=archive-item-date title='2018-08-15 16:33:12'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/瞎折腾/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>瞎折腾 - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>利用 Vercel 反代 Gravatar 实现镜像加速</title><link>https://lruihao.cn/projects/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 12:51:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。&lt;/p&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>使用 Python 刷 csdn 访问量</title><link>https://lruihao.cn/posts/csdnvisiter/</link><pubDate>Thu, 26 Mar 2020 11:08:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/csdnvisiter/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>新冠疫情未返校未返工第 N 天之“自动打卡”</title><link>https://lruihao.cn/posts/daka/</link><pubDate>Wed, 25 Mar 2020 08:22:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/daka/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;这件事还得从一只蝙蝠说起 &amp;hellip;&lt;br&gt;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &amp;hellip;&lt;br&gt;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &amp;hellip;&lt;br&gt;\n我和潇 X 巴哥确定思路后兵分两路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；&lt;/li&gt;\n&lt;li&gt;我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；&lt;/li&gt;\n&lt;/ol&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>python 爬取网站图片（图片链接相似）</title><link>https://lruihao.cn/posts/mmtimgpy/</link><pubDate>Mon, 22 Apr 2019 12:46:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mmtimgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下程序对 &lt;a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;amp;a=fontshowPics&amp;amp;u=qbfRl8gPF2s-&amp;amp;z=Kqz%2FRroVGYc-&amp;amp;share=1&amp;amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;该网址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。&lt;a href=\"https://lruihao.cn/projects/font-mmt/\"&gt;字体效果查看&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>“高逼格”C 语言画心</title><link>https://lruihao.cn/posts/heart/</link><pubDate>Wed, 15 Aug 2018 16:33:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/heart/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。&lt;/p&gt;\n&lt;p&gt;&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif\" title=\"大一在机房拍的图\" data-thumbnail=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" data-sub-html=\"&lt;h2&gt;截图&lt;/h2&gt;&lt;p&gt;大一在机房拍的图&lt;/p&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\"截图\" height=\"210\" width=\"210\"&gt;&lt;/a&gt;&lt;figcaption class=\"image-caption\"&gt;大一在机房拍的图&lt;/figcaption&gt;\n &lt;/figure&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/瞎折腾/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/</title><link rel=canonical href=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\"></head></html>"
  },
  {
    "path": "categories/翻译/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"翻译 - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"认知复杂度（Cognitive Complexity）\",\"date_published\":\"2023-10-08T09:52:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"url\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"image\":\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\",\"summary\":\"27 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\n27.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"摘要\\\"\\u003e\\u003cspan\\u003e27 摘要\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%91%98%e8%a6%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"术语说明\\\"\\u003e\\u003cspan\\u003e27.1 术语说明\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"中文翻译的常见问题\",\"date_published\":\"2023-09-15T11:07:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:45:09&#43;08:00\",\"id\":\"https://lruihao.cn/posts/translation-guide/\",\"url\":\"https://lruihao.cn/posts/translation-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"他山之石\"],\"summary\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下内容截取自 \\u003ca href=\\\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e针对 MDN 文档的本地化指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的中文翻译的常见问题小节。\\u003c/p\\u003e\\n\\u003cp\\u003e其中翻译的规范也是中文写作的规范，更多详见之前写的 \\u003ca href=\\\"/posts/document-style-guide/\\\"\\u003e中文技术文档的写作规范\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "categories/翻译/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>翻译 - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"翻译\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-08T09:52:44+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:45:09+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"翻译\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"翻译\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/ title=\"翻译 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/index.xml title=\"翻译 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/feed.json title=\"翻译 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/feed.json title=\"翻译 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/%E7%BF%BB%E8%AF%91/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>翻译</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>翻译 <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a>\n<span class=archive-item-date title='2023-10-08 09:52:44'>10-08</span></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a>\n<span class=archive-item-date title='2023-09-15 11:07:56'>09-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/%E7%BF%BB%E8%AF%91/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/翻译/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>翻译 - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:45:09 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>认知复杂度（Cognitive Complexity）</title><link>https://lruihao.cn/posts/cognitive-complexity/</link><pubDate>Sun, 08 Oct 2023 09:52:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cognitive-complexity/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;h2 class=\"heading-element\" id=\"摘要\"&gt;&lt;span&gt;40 摘要&lt;/span&gt;\n &lt;a href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"术语说明\"&gt;&lt;span&gt;40.1 术语说明&lt;/span&gt;\n &lt;a href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。&lt;/p&gt;\n&lt;hr&gt;</description></item><item><title>中文翻译的常见问题</title><link>https://lruihao.cn/posts/translation-guide/</link><pubDate>Fri, 15 Sep 2023 11:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/translation-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下内容截取自 &lt;a href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;针对 MDN 文档的本地化指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的中文翻译的常见问题小节。&lt;/p&gt;\n&lt;p&gt;其中翻译的规范也是中文写作的规范，更多详见之前写的 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\"&gt;中文技术文档的写作规范&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;为保证简体中文文档格式的一致性，翻译指南列出了部分规范。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/翻译/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/</title><link rel=canonical href=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\"></head></html>"
  },
  {
    "path": "categories/计算机网络/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"计算机网络 - 分类 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "categories/计算机网络/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>计算机网络 - 分类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"计算机网络\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-11-14T19:06:05+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"计算机网络\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"计算机网络\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ title=\"计算机网络 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/index.xml title=\"计算机网络 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/feed.json title=\"计算机网络 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/feed.json title=\"计算机网络 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/categories/ title=Categories>分类</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>计算机网络</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-folder-open me-1\" aria-hidden=true></i>计算机网络 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "categories/计算机网络/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>计算机网络 - 分类 | 菠菜眾長</title><link>https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>RESTful</title><link>https://lruihao.cn/posts/restful/</link><pubDate>Thu, 14 Nov 2019 19:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/restful/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\">计算机网络</category><description>&lt;blockquote&gt;\n&lt;p&gt;RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 &lt;a href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RFC5789&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "categories/计算机网络/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/</title><link rel=canonical href=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\"></head></html>"
  },
  {
    "path": "collections/aws/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"AWS - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[]}"
  },
  {
    "path": "collections/aws/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>AWS - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"AWS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-11-22T14:01:18+08:00\"><meta itemprop=dateModified content=\"2024-12-07T01:20:02+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/aws/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"AWS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"AWS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/aws/ title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/aws/index.xml title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/aws/feed.json title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/aws/feed.json title=\"AWS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/aws/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>AWS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>AWS <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/91db0fa/ class=archive-item-link>Amazon Inspector</a>\n<span class=archive-item-date title='2024-11-22 14:01:18'>11-22</span></article><article class=archive-item><a href=/posts/d1fc0c7/ class=archive-item-link>Amazon S3</a>\n<span class=archive-item-date title='2024-07-07 13:54:14'>07-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/d8ae205/ class=archive-item-link>Amazon Titan 文本模型</a>\n<span class=archive-item-date title='2023-12-22 19:58:47'>12-22</span></article><article class=archive-item><a href=/posts/aws-solution/ class=archive-item-link>AWS 云上一站式解决方案</a>\n<span class=archive-item-date title='2023-11-18 12:52:37'>11-18</span></article><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/aws/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/aws/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>AWS - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/aws/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate/><atom:link href=\"https://lruihao.cn/collections/aws/index.xml\" rel=\"self\" type=\"application/rss+xml\"/></channel></rss>"
  },
  {
    "path": "collections/aws/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/aws/</title><link rel=canonical href=https://lruihao.cn/collections/aws/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/aws/\"></head></html>"
  },
  {
    "path": "collections/css-奇技淫巧/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CSS 奇技淫巧 - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "collections/css-奇技淫巧/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS 奇技淫巧 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CSS 奇技淫巧\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-14T13:03:31+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS 奇技淫巧\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CSS 奇技淫巧\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/ title=\"CSS 奇技淫巧 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/index.xml title=\"CSS 奇技淫巧 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/feed.json title=\"CSS 奇技淫巧 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/feed.json title=\"CSS 奇技淫巧 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS 奇技淫巧</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>CSS 奇技淫巧 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/css-奇技淫巧/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CSS 奇技淫巧 - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 17:12:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "collections/css-奇技淫巧/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/</title><link rel=canonical href=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/\"></head></html>"
  },
  {
    "path": "collections/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"collections\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"collections\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"collections\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/ title=\"collections | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=\"menu-item active\"><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=\"menu-item active\"><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>所有合集 <sup>6</sup></h1><div class=\"taxonomy-cards collections\"><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/project/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>开源项目 <sup>51</sup></a></h2><article class=archive-item><a href=/projects/lruihao/cell-tooltip/ class=archive-item-link>Lruihao/cell-tooltip</a></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a></article><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a></article><article class=archive-item><a href=/projects/lruihao/json-viewer-element/ class=archive-item-link>Lruihao/json-viewer-element</a></article><div class=more-post><a href=/collections/project/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>拖拽式仪表盘系列 <sup>6</sup></a></h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a></article><div class=more-post><a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=more-single-link>更多 >></a></div></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/aws/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>AWS <sup>5</sup></a></h2><article class=archive-item><a href=/posts/91db0fa/ class=archive-item-link>Amazon Inspector</a></article><article class=archive-item><a href=/posts/d1fc0c7/ class=archive-item-link>Amazon S3</a></article><article class=archive-item><a href=/posts/d8ae205/ class=archive-item-link>Amazon Titan 文本模型</a></article><article class=archive-item><a href=/posts/aws-solution/ class=archive-item-link>AWS 云上一站式解决方案</a></article><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>现代 CSS 解决方案 <sup>5</sup></a></h2><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a></article><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>CSS 奇技淫巧 <sup>1</sup></a></h2><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a></article></div></div><div class=card-item><div class=card-item-wrapper><h2 class=card-item-title><a href=/collections/web-components/><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>Web Components <sup>1</sup></a></h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a></article></div></div></div></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/modern-css/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"现代 CSS 解决方案 - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"},{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"},{\"title\":\"CSS 如何实现网格背景效果？\",\"date_published\":\"2023-09-02T10:05:44&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/grid-bg-image/\",\"url\":\"https://lruihao.cn/posts/grid-bg-image/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\\n15 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何使用 \\u003ccode\\u003elinear-gradient\\u003c/code\\u003e 、\\u003ccode\\u003ebackground-size\\u003c/code\\u003e 等属性来实现网格背景效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e15 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "collections/modern-css/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>现代 CSS 解决方案 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"现代 CSS 解决方案\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/modern-css/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"现代 CSS 解决方案\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"现代 CSS 解决方案\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/modern-css/ title=\"现代 CSS 解决方案 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/modern-css/index.xml title=\"现代 CSS 解决方案 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/modern-css/feed.json title=\"现代 CSS 解决方案 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/modern-css/feed.json title=\"现代 CSS 解决方案 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/modern-css/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>现代 CSS 解决方案</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>现代 CSS 解决方案 <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a>\n<span class=archive-item-date title='2023-09-02 10:05:44'>09-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e089ce555f6a93225dbbd6857eab7cbb.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e089ce555f6a93225dbbd6857eab7cbb.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/modern-css/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/modern-css/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>现代 CSS 解决方案 - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/modern-css/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 13 Oct 2024 12:28:31 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/collections/modern-css/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>现代 CSS 解决方案：CSS 四舍五入数值单位</title><link>https://lruihao.cn/posts/css-round/</link><pubDate>Mon, 29 Jul 2024 20:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-round/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍另外一个非常实用的 CSS 数学函数 - &lt;code&gt;round()&lt;/code&gt; 及其实际应用场景。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item><item><title>标准滚动条控制规范</title><link>https://lruihao.cn/posts/scrollbar-styling/</link><pubDate>Fri, 28 Jun 2024 22:29:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/scrollbar-styling/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;使用 &lt;code&gt;scrollbar-width&lt;/code&gt; 和 &lt;code&gt;scrollbar-color&lt;/code&gt; 属性设置滚动条的样式。&lt;/p&gt;</description></item><item><title>CSS 如何实现网格背景效果？</title><link>https://lruihao.cn/posts/grid-bg-image/</link><pubDate>Sat, 02 Sep 2023 10:05:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/grid-bg-image/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍如何使用 &lt;code&gt;linear-gradient&lt;/code&gt; 、&lt;code&gt;background-size&lt;/code&gt; 等属性来实现网格背景效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;22 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "collections/modern-css/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/modern-css/</title><link rel=canonical href=https://lruihao.cn/collections/modern-css/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/modern-css/\"></head></html>"
  },
  {
    "path": "collections/project/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"开源项目 - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"一个轻量化 Tooltip 组件。\",\"date_published\":\"2026-03-06T06:58:23Z\",\"date_modified\":\"2026-03-30T06:51:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap tooltip.js，保留常用能力并尽量减少体积与依赖。\\n特性 支持触发方式：hover / focus / click / manual 支持位置：top / bottom / left / right / auto 支持延迟配置（show / hide） 支持 data-ct-* 属性初始化 支持实例方法：show / hide / toggle / update / dispose 内置箭头与基础样式，无第三方依赖 本地运行 pnpm install pnpm dev构建库产物：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cell-tooltip\\\" data-decreased\\u003e\\u003cspan\\u003ecell-tooltip\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cell-tooltip\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap \\u003ccode\\u003etooltip.js\\u003c/code\\u003e，保留常用能力并尽量减少体积与依赖。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持触发方式：\\u003ccode\\u003ehover\\u003c/code\\u003e / \\u003ccode\\u003efocus\\u003c/code\\u003e / \\u003ccode\\u003eclick\\u003c/code\\u003e / \\u003ccode\\u003emanual\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持位置：\\u003ccode\\u003etop\\u003c/code\\u003e / \\u003ccode\\u003ebottom\\u003c/code\\u003e / \\u003ccode\\u003eleft\\u003c/code\\u003e / \\u003ccode\\u003eright\\u003c/code\\u003e / \\u003ccode\\u003eauto\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持延迟配置（\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持 \\u003ccode\\u003edata-ct-*\\u003c/code\\u003e 属性初始化\\u003c/li\\u003e\\n\\u003cli\\u003e支持实例方法：\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e / \\u003ccode\\u003etoggle\\u003c/code\\u003e / \\u003ccode\\u003eupdate\\u003c/code\\u003e / \\u003ccode\\u003edispose\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e内置箭头与基础样式，无第三方依赖\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"本地运行\\\"\\u003e\\u003cspan\\u003e本地运行\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epnpm install\\npnpm dev\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e构建库产物：\\u003c/p\\u003e\"},{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"A custom element for viewing and interacting with JSON data.\",\"date_published\":\"2025-07-19T07:05:07Z\",\"date_modified\":\"2026-04-08T08:42:59Z\",\"id\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"\\u0026lt;json-viewer\\u0026gt; Element 简体中文 | English\\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\n功能特性 🌟 Web 组件：原生，无框架依赖 🎨 主题：支持明暗模式 📦 盒装：可选边框与内边距 📋 可复制：一键复制 JSON 🔑 排序：支持键排序 🔍 展开深度：可控初始展开层级 🧩 自定义复制按钮：slot 插槽支持 🧬 类型高亮：多种类型高亮 🛠️ 自定义事件：支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"json-viewer-element\\\" data-decreased\\u003e\\u003cspan\\u003e\\u0026lt;json-viewer\\u0026gt; Element\\u003c/span\\u003e\\n  \\u003ca href=\\\"#json-viewer-element\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e简体中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能特性\\\"\\u003e\\u003cspan\\u003e功能特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e🌟 \\u003cstrong\\u003eWeb 组件\\u003c/strong\\u003e：原生，无框架依赖\\u003c/li\\u003e\\n\\u003cli\\u003e🎨 \\u003cstrong\\u003e主题\\u003c/strong\\u003e：支持明暗模式\\u003c/li\\u003e\\n\\u003cli\\u003e📦 \\u003cstrong\\u003e盒装\\u003c/strong\\u003e：可选边框与内边距\\u003c/li\\u003e\\n\\u003cli\\u003e📋 \\u003cstrong\\u003e可复制\\u003c/strong\\u003e：一键复制 JSON\\u003c/li\\u003e\\n\\u003cli\\u003e🔑 \\u003cstrong\\u003e排序\\u003c/strong\\u003e：支持键排序\\u003c/li\\u003e\\n\\u003cli\\u003e🔍 \\u003cstrong\\u003e展开深度\\u003c/strong\\u003e：可控初始展开层级\\u003c/li\\u003e\\n\\u003cli\\u003e🧩 \\u003cstrong\\u003e自定义复制按钮\\u003c/strong\\u003e：slot 插槽支持\\u003c/li\\u003e\\n\\u003cli\\u003e🧬 \\u003cstrong\\u003e类型高亮\\u003c/strong\\u003e：多种类型高亮\\u003c/li\\u003e\\n\\u003cli\\u003e🛠️ \\u003cstrong\\u003e自定义事件\\u003c/strong\\u003e：支持 copy/toggle 事件监听\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"使用方法\\\"\\u003e\\u003cspan\\u003e使用方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install json-viewer-element\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"引入\\\"\\u003e\\u003cspan\\u003e引入\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bc%95%e5%85%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"作为模块\\\"\\u003e\\u003cspan\\u003e作为模块\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport 'json-viewer-element'\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"umd-cdn\\\"\\u003e\\u003cspan\\u003eUMD (CDN)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#umd-cdn\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript src=\\\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"基本用法\\\"\\u003e\\u003cspan\\u003e基本用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e手动绑定 value：\\u003c/p\\u003e\"},{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"Generate a list of all hugo-fixit theme components.\",\"date_published\":\"2025-01-14T09:10:09Z\",\"date_modified\":\"2026-05-06T03:13:04Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"github-actions\"],\"summary\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"action-component-list--fixit\\\" data-decreased\\u003e\\u003cspan\\u003eaction-component-list | FixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#action-component-list--fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/super-linter/super-linter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_14033786788092036044.svg' alt=\\\"GitHub Super-Linter\\\"\\u003e\\u003c/a\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_12862037500024650352.svg' alt=\\\"CI\\\"\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_17453161718063467893.svg' alt=\\\"Check dist/\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_9366593515159455299.svg' alt=\\\"CodeQL\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"how-to-use\\\"\\u003e\\u003cspan\\u003eHow to use\\u003c/span\\u003e\\n  \\u003ca href=\\\"#how-to-use\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eYou can reference different stable versions of this action. For more\\ninformation, see\\n\\u003ca href=\\\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVersioning\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\nin the GitHub Actions toolkit.\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date_published\":\"2024-09-13T02:36:29Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"html-css-javascript\"],\"summary\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"html-demos\\\" data-decreased\\u003e\\u003cspan\\u003eHTML demos\\u003c/span\\u003e\\n  \\u003ca href=\\\"#html-demos\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"文件预览\\\"\\u003e\\u003cspan\\u003e文件预览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e直接浏览器打开 \\u003ccode\\u003esrc\\u003c/code\\u003e 目录下的 HTML 文件。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"date_published\":\"2024-03-28T06:14:16Z\",\"date_modified\":\"2026-05-06T03:02:25Z\",\"id\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"url\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"CoverView 👉 简体中文说明 | English README\\n该项目基于原始的 CoverView。\\n现在为你的博客创建封面图片变得非常简单。\\n💥 变更通知 自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"coverview\\\" data-decreased\\u003e\\u003cspan\\u003eCoverView\\u003c/span\\u003e\\n  \\u003ca href=\\\"#coverview\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish README\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/open-source_18217824114769177106.svg' alt=\\\"用爱发电\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e该项目基于原始的 \\u003ca href=\\\"https://github.com/rutikwankhade/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e现在为你的博客创建封面图片变得非常简单。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\\\"cover_169570\\\" height=\\\"840\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-变更通知\\\"\\u003e\\u003cspan\\u003e💥 变更通知\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\u003c/p\\u003e\"},{\"title\":\"强大的脑图可视化工具\",\"date_published\":\"2024-01-21T06:24:42Z\",\"date_modified\":\"2024-07-07T02:44:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"url\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"KityMinder Core 注意\\n由于原项目 KityMinder Core 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 @cell-x/kityminder-core。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"kityminder-core\\\" data-decreased\\u003e\\u003cspan\\u003eKityMinder Core\\u003c/span\\u003e\\n  \\u003ca href=\\\"#kityminder-core\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003e由于原项目 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKityMinder Core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 \\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e@cell-x/kityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"date_published\":\"2023-09-25T17:49:58&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\u003c/p\\u003e\"},{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Using frequently-used Hugo commands by shell.\",\"date_published\":\"2022-09-04T04:18:42Z\",\"date_modified\":\"2025-09-12T09:38:50Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\"],\"summary\":\"Hugo Shell Using frequently-used Hugo commands by shell.\\nDownload Add a submodule for your Hugo blog project.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shell\\\" data-decreased\\u003e\\u003cspan\\u003eHugo Shell\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shell\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eUsing frequently-used Hugo commands by shell.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"download\\\"\\u003e\\u003cspan\\u003eDownload\\u003c/span\\u003e\\n  \\u003ca href=\\\"#download\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eAdd a submodule for your Hugo blog project.\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-02-28T03:44:09Z\",\"date_modified\":\"2025-01-16T02:53:15Z\",\"id\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"url\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vue\"],\"summary\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"preparation\\\" data-decreased\\u003e\\u003cspan\\u003ePreparation\\u003c/span\\u003e\\n  \\u003ca href=\\\"#preparation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\u003c/p\\u003e\\n\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth\\u003ename\\u003c/th\\u003e\\n          \\u003cth\\u003etype\\u003c/th\\u003e\\n          \\u003cth\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay\\u003c/td\\u003e\\n          \\u003ctd\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费金额\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_description\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费描述\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_type\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费类型\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_user\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e付款人\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"init\\\" data-decreased\\u003e\\u003cspan\\u003eInit\\u003c/span\\u003e\\n  \\u003ca href=\\\"#init\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eset for yourself.\\u003c/p\\u003e\"},{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Elegant and powerful theme for Hexo.\",\"date_published\":\"2019-01-31T09:57:45Z\",\"date_modified\":\"2023-12-21T02:39:42Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"url\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"hexo-theme-next 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib资源已打包github。\\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，修改内容以博採眾長为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\n\",\"content_html\":\"\\u003ch1 align=center\\u003ehexo-theme-next\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对next的主题的自定义修改\\u003c/strong\\u003e，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib资源已打包github。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于\\u003ca href=\\\"https://github.com/theme-next/hexo-theme-next\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next 6.0+\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; \\u003ca href=\\\"https://theme-next.org\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://theme-next.org\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e \\u003cbr\\u003e\\n记录一下折腾过程，修改内容以\\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见\\u003ca href=\\\"https://lruihao.cn/categories/hexo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo分类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\n\\u003cstrong\\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"沐目体\",\"date_published\":\"2018-10-12T19:39:19&#43;08:00\",\"date_modified\":\"2018-10-12T19:39:19&#43;08:00\",\"id\":\"https://lruihao.cn/projects/font-mmt/\",\"url\":\"https://lruihao.cn/projects/font-mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"沐目体\"],\"summary\":\" \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ciframe class=\\\"manuscript\\\" src=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026a=fontshowPics\\u0026u=qbfRl8gPF2s-\\u0026z=Kqz%2FRroVGYc-\\\" style=\\\"width: 100%;height: 370px;margin-top: .25rem;\\\" frameborder=\\\"0\\\" allowfullscreen\\u003e\\u003c/iframe\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "collections/project/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>开源项目 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"开源项目\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-09-25T14:36:24+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/project/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"开源项目\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"开源项目\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/project/ title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/project/index.xml title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/project/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>开源项目</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>开源项目 <sup>51</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2026-05-06 03:13:04'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>Lruihao/CoverView</a>\n<span class=archive-item-date title='2026-05-06 03:02:25'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2026</h2><article class=archive-item><a href=/projects/lruihao/cell-tooltip/ class=archive-item-link>Lruihao/cell-tooltip</a>\n<span class=archive-item-date title='2026-03-06 06:58:23'>03-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article><article class=archive-item><a href=/projects/lruihao/json-viewer-element/ class=archive-item-link>Lruihao/json-viewer-element</a>\n<span class=archive-item-date title='2025-07-19 07:05:07'>07-19</span></article><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article><article class=archive-item><a href=/projects/lruihao/vercel-proxy/ class=archive-item-link>Lruihao/vercel-proxy</a>\n<span class=archive-item-date title='2025-04-09 02:13:22'>04-09</span></article><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2025-01-14 09:10:09'>01-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2024-09-13 02:36:29'>09-13</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>hugo-fixit/hugo-json-feed</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title='2024-04-17 12:51:35'>04-17</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/collections/project/>1</a></span></li><li class=page-item><span class=page-link><a href=/collections/project/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/collections/project/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/project/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/project/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>开源项目 - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/project/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/collections/project/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>一个轻量化 Tooltip 组件。</title><link>https://lruihao.cn/projects/lruihao/cell-tooltip/</link><pubDate>Fri, 06 Mar 2026 06:58:23 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-tooltip/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased&gt;&lt;span&gt;cell-tooltip&lt;/span&gt;\n &lt;a href=\"#cell-tooltip\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap &lt;code&gt;tooltip.js&lt;/code&gt;，保留常用能力并尽量减少体积与依赖。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持触发方式：&lt;code&gt;hover&lt;/code&gt; / &lt;code&gt;focus&lt;/code&gt; / &lt;code&gt;click&lt;/code&gt; / &lt;code&gt;manual&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持位置：&lt;code&gt;top&lt;/code&gt; / &lt;code&gt;bottom&lt;/code&gt; / &lt;code&gt;left&lt;/code&gt; / &lt;code&gt;right&lt;/code&gt; / &lt;code&gt;auto&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持延迟配置（&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持 &lt;code&gt;data-ct-*&lt;/code&gt; 属性初始化&lt;/li&gt;\n&lt;li&gt;支持实例方法：&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt; / &lt;code&gt;toggle&lt;/code&gt; / &lt;code&gt;update&lt;/code&gt; / &lt;code&gt;dispose&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;内置箭头与基础样式，无第三方依赖&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"本地运行\"&gt;&lt;span&gt;本地运行&lt;/span&gt;\n &lt;a href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;pnpm install\npnpm dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;构建库产物：&lt;/p&gt;</description></item><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A custom element for viewing and interacting with JSON data.</title><link>https://lruihao.cn/projects/lruihao/json-viewer-element/</link><pubDate>Sat, 19 Jul 2025 07:05:07 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/json-viewer-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased&gt;&lt;span&gt;&amp;lt;json-viewer&amp;gt; Element&lt;/span&gt;\n &lt;a href=\"#json-viewer-element\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;简体中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能特性\"&gt;&lt;span&gt;功能特性&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;🌟 &lt;strong&gt;Web 组件&lt;/strong&gt;：原生，无框架依赖&lt;/li&gt;\n&lt;li&gt;🎨 &lt;strong&gt;主题&lt;/strong&gt;：支持明暗模式&lt;/li&gt;\n&lt;li&gt;📦 &lt;strong&gt;盒装&lt;/strong&gt;：可选边框与内边距&lt;/li&gt;\n&lt;li&gt;📋 &lt;strong&gt;可复制&lt;/strong&gt;：一键复制 JSON&lt;/li&gt;\n&lt;li&gt;🔑 &lt;strong&gt;排序&lt;/strong&gt;：支持键排序&lt;/li&gt;\n&lt;li&gt;🔍 &lt;strong&gt;展开深度&lt;/strong&gt;：可控初始展开层级&lt;/li&gt;\n&lt;li&gt;🧩 &lt;strong&gt;自定义复制按钮&lt;/strong&gt;：slot 插槽支持&lt;/li&gt;\n&lt;li&gt;🧬 &lt;strong&gt;类型高亮&lt;/strong&gt;：多种类型高亮&lt;/li&gt;\n&lt;li&gt;🛠️ &lt;strong&gt;自定义事件&lt;/strong&gt;：支持 copy/toggle 事件监听&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"使用方法\"&gt;&lt;span&gt;使用方法&lt;/span&gt;\n &lt;a href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;npm install json-viewer-element&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"引入\"&gt;&lt;span&gt;引入&lt;/span&gt;\n &lt;a href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;h4 class=\"heading-element\" id=\"作为模块\"&gt;&lt;span&gt;作为模块&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;import &amp;#39;json-viewer-element&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=\"heading-element\" id=\"umd-cdn\"&gt;&lt;span&gt;UMD (CDN)&lt;/span&gt;\n &lt;a href=\"#umd-cdn\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"基本用法\"&gt;&lt;span&gt;基本用法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;手动绑定 value：&lt;/p&gt;</description></item><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API proxies powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-proxy/</link><pubDate>Wed, 09 Apr 2025 02:13:22 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-proxy/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#vercel-api-proxy\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;API proxies powered by Vercel.&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;[toc]&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"hosts\"&gt;&lt;span&gt;Hosts&lt;/span&gt;\n &lt;a href=\"#hosts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://api.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://cell-api.vercel.app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"api-list\"&gt;&lt;span&gt;API List&lt;/span&gt;\n &lt;a href=\"#api-list\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Go to the &lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; and select the API you want to use.&lt;/p&gt;</description></item><item><title>Generate a list of all hugo-fixit theme components.</title><link>https://lruihao.cn/projects/hugo-fixit/action-component-list/</link><pubDate>Tue, 14 Jan 2025 09:10:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/action-component-list/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased&gt;&lt;span&gt;action-component-list | FixIt&lt;/span&gt;\n &lt;a href=\"#action-component-list--fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"&gt;&lt;/a&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt=\"CI\"&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;This is a GitHub Action to generate a list of all hugo-fixit theme components.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"how-to-use\"&gt;&lt;span&gt;How to use&lt;/span&gt;\n &lt;a href=\"#how-to-use\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;You can reference different stable versions of this action. For more\ninformation, see\n&lt;a href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Versioning&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\nin the GitHub Actions toolkit.&lt;/p&gt;</description></item><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</title><link>https://lruihao.cn/projects/lruihao/html-demo/</link><pubDate>Fri, 13 Sep 2024 02:36:29 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/html-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"html-demos\" data-decreased&gt;&lt;span&gt;HTML demos&lt;/span&gt;\n &lt;a href=\"#html-demos\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"文件预览\"&gt;&lt;span&gt;文件预览&lt;/span&gt;\n &lt;a href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;直接浏览器打开 &lt;code&gt;src&lt;/code&gt; 目录下的 HTML 文件。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>利用 Vercel 反代 Gravatar 实现镜像加速</title><link>https://lruihao.cn/projects/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 12:51:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。&lt;/p&gt;</description></item><item><title>Gravatar Proxy powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 01:37:06 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased&gt;&lt;span&gt;Vercel Gravatar&lt;/span&gt;\n &lt;a href=\"#vercel-gravatar\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;Superseded by &lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao/vercel-proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Gravatar Proxy powered by Vercel.&lt;/p&gt;\n&lt;p&gt;Go to test Gravatar:&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>临时决定再写一个小工具 - 网站预览图生成器</title><link>https://lruihao.cn/projects/apple-devices-preview/</link><pubDate>Thu, 04 Apr 2024 13:23:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/apple-devices-preview/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;开发完 &lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。&lt;/p&gt;</description></item><item><title>用五天时间给自己制作一个封面图生成工具</title><link>https://lruihao.cn/projects/coverview/</link><pubDate>Tue, 02 Apr 2024 18:05:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/coverview/</guid><category domain=\"https://lruihao.cn/categories/react/\">React</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;Cool!&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;苦封面图久矣，今日终有所成。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>🛠 Create awesome cover images for your blog posts quickly.</title><link>https://lruihao.cn/projects/lruihao/coverview/</link><pubDate>Thu, 28 Mar 2024 06:14:16 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/coverview/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"coverview\" data-decreased&gt;&lt;span&gt;CoverView&lt;/span&gt;\n &lt;a href=\"#coverview\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"README.en.md\"&gt;English README&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;该项目基于原始的 &lt;a href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;现在为你的博客创建封面图片变得非常简单。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-变更通知\"&gt;&lt;span&gt;💥 变更通知&lt;/span&gt;\n &lt;a href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：&lt;/p&gt;</description></item><item><title>强大的脑图可视化工具</title><link>https://lruihao.cn/projects/lruihao/kityminder-core/</link><pubDate>Sun, 21 Jan 2024 06:24:42 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/kityminder-core/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"kityminder-core\" data-decreased&gt;&lt;span&gt;KityMinder Core&lt;/span&gt;\n &lt;a href=\"#kityminder-core\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;由于原项目 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KityMinder Core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 &lt;a href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;@cell-x/kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>用 Node.js 开发一个轻量脚手架</title><link>https://lruihao.cn/projects/fixit-cli/</link><pubDate>Tue, 28 Nov 2023 10:48:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;本文将介绍如何用 Node.js 开发一个轻量脚手架，以 &lt;a href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit-cli&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 为例。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</title><link>https://lruihao.cn/projects/el-table-sticky/</link><pubDate>Mon, 25 Sep 2023 17:49:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。&lt;/p&gt;</description></item><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Using frequently-used Hugo commands by shell.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</link><pubDate>Sun, 04 Sep 2022 04:18:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shell\" data-decreased&gt;&lt;span&gt;Hugo Shell&lt;/span&gt;\n &lt;a href=\"#hugo-shell\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Using frequently-used Hugo commands by shell.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"download\"&gt;&lt;span&gt;Download&lt;/span&gt;\n &lt;a href=\"#download\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Add a submodule for your Hugo blog project.&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>Create watermark for webpage and automatic adjust when window resize.</title><link>https://lruihao.cn/projects/lruihao/watermark/</link><pubDate>Mon, 24 May 2021 13:05:40 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/watermark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"watermark\" data-decreased&gt;&lt;span&gt;Watermark&lt;/span&gt;\n &lt;a href=\"#watermark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Create watermark for webpage and automatic adjust when windows resize.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"documentation\"&gt;&lt;span&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Documentation&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#documentation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"browser\"&gt;&lt;span&gt;Browser&lt;/span&gt;\n &lt;a href=\"#browser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;Clone source&lt;/p&gt;</description></item><item><title>Cell Watermark</title><link>https://lruihao.cn/projects/cell-watermark/</link><pubDate>Sun, 23 May 2021 17:15:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-watermark/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>Create watermark for webpage and automatic adjust when window resize.</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/lruihao/bill-note/</link><pubDate>Sun, 28 Feb 2021 03:44:09 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/bill-note/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"preparation\" data-decreased&gt;&lt;span&gt;Preparation&lt;/span&gt;\n &lt;a href=\"#preparation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;name&lt;/th&gt;\n &lt;th&gt;type&lt;/th&gt;\n &lt;th&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;pay&lt;/td&gt;\n &lt;td&gt;Number&lt;/td&gt;\n &lt;td&gt;消费金额&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_description&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费描述&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_type&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费类型&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_user&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;付款人&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"init\" data-decreased&gt;&lt;span&gt;Init&lt;/span&gt;\n &lt;a href=\"#init\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;set for yourself.&lt;/p&gt;</description></item><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</title><link>https://lruihao.cn/projects/lruihao/cos-album/</link><pubDate>Sat, 23 Nov 2019 12:59:05 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cos-album/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cos-album\" data-decreased&gt;&lt;span&gt;cos-album&lt;/span&gt;\n &lt;a href=\"#cos-album\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"step1\"&gt;&lt;span&gt;Step1&lt;/span&gt;\n &lt;a href=\"#step1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; type=&amp;#34;text/css&amp;#34; href=&amp;#34;cos-album.min.css?v=1.1.6&amp;#34;&amp;gt;\n&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;cos-album.min.js?v=1.1.6&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"step2\"&gt;&lt;span&gt;Step2&lt;/span&gt;\n &lt;a href=\"#step2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;\n new Cosalbum({\n &amp;#39;xmlLink&amp;#39;: &amp;#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&amp;#39;,\n &amp;#39;prependTo&amp;#39;: &amp;#39;.cos-album&amp;#39;,\n &amp;#39;viewNum&amp;#39;: 8,\n &amp;#39;copyUrl&amp;#39;: &amp;#39;//img.lruihao.cn&amp;#39;\n });\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"params\"&gt;&lt;span&gt;Params&lt;/span&gt;\n &lt;a href=\"#params\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;param&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;type&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;default&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;xmlLink&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;需要解析的騰訊云COS桶XML鏈接&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;prependTo&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;lsquo;body&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;可選解析相冊到某個節點&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;viewNum&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;4&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;每個相冊顯示的照片數目&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyUrl&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;href&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;CDN 链接,雙擊複製 URL Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;imgType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;jpg&amp;rsquo;, &amp;lsquo;jpeg&amp;rsquo;, &amp;lsquo;png&amp;rsquo;, &amp;lsquo;gif&amp;rsquo;, &amp;lsquo;svg&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;图片類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;videoType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;mp4&amp;rsquo;, &amp;lsquo;mp3&amp;rsquo;, &amp;lsquo;avi&amp;rsquo;, &amp;lsquo;mov&amp;rsquo;, &amp;lsquo;qt&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;視頻類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;strong&gt;详细说明&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>沐目之，湘也。— 沐目体</title><link>https://lruihao.cn/projects/lruihao/mmt/</link><pubDate>Thu, 26 Sep 2019 12:44:17 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Elegant and powerful theme for Hexo.</title><link>https://lruihao.cn/projects/lruihao/hexo-theme-next/</link><pubDate>Thu, 31 Jan 2019 09:57:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=center&gt;hexo-theme-next&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对next的主题的自定义修改&lt;/strong&gt;，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib资源已打包github。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于&lt;a href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next 6.0+&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =&amp;gt; &lt;a href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://theme-next.org&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; &lt;br&gt;\n记录一下折腾过程，修改内容以&lt;a href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见&lt;a href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo分类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。\n&lt;strong&gt;主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>沐目体</title><link>https://lruihao.cn/projects/font-mmt/</link><pubDate>Fri, 12 Oct 2018 19:39:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/font-mmt/</guid><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;iframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen&gt;&lt;/iframe&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "collections/project/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/project/</title><link rel=canonical href=https://lruihao.cn/collections/project/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/project/\"></head></html>"
  },
  {
    "path": "collections/project/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>开源项目 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"开源项目\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-09-25T14:36:24+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/project/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"开源项目\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"开源项目\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/project/ title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/project/index.xml title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/project/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>开源项目</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>开源项目 <sup>51</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/lruihao/vercel-gravatar/ class=archive-item-link>Lruihao/vercel-gravatar</a>\n<span class=archive-item-date title='2024-04-17 01:37:06'>04-17</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title='2024-04-04 13:23:37'>04-04</span></article><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title='2024-04-02 18:05:34'>04-02</span></article><article class=archive-item><a href=/projects/lruihao/coverview/ class=archive-item-link>Lruihao/CoverView</a>\n<span class=archive-item-date title='2024-03-28 06:14:16'>03-28</span></article><article class=archive-item><a href=/projects/lruihao/kityminder-core/ class=archive-item-link>Lruihao/kityminder-core</a>\n<span class=archive-item-date title='2024-01-21 06:24:42'>01-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title='2023-11-28 10:48:07'>11-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article><article class=archive-item><a href=/projects/el-table-sticky/ class=archive-item-link>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a>\n<span class=archive-item-date title='2023-09-25 17:49:58'>09-25</span></article><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-shell/ class=archive-item-link>hugo-fixit/hugo-shell</a>\n<span class=archive-item-date title='2022-09-04 04:18:42'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2021-05-24 13:05:40'>05-24</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/collections/project/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/collections/project/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/collections/project/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/project/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/project/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>开源项目 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"开源项目\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-09-25T14:36:24+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/project/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"开源项目\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"开源项目\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/project/ title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/project/index.xml title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/project/feed.json title=\"开源项目 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/project/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>开源项目</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>开源项目 <sup>51</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title='2021-05-23 17:15:41'>05-23</span></article><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article><article class=archive-item><a href=/projects/lruihao/bill-note/ class=archive-item-link>Lruihao/bill-note</a>\n<span class=archive-item-date title='2021-02-28 03:44:09'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>Lruihao/cell-blog</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article><article class=archive-item><a href=/projects/lruihao/cos-album/ class=archive-item-link>Lruihao/cos-album</a>\n<span class=archive-item-date title='2019-11-23 12:59:05'>11-23</span></article><article class=archive-item><a href=/projects/lruihao/mmt/ class=archive-item-link>Lruihao/MMT</a>\n<span class=archive-item-date title='2019-09-26 12:44:17'>09-26</span></article><article class=archive-item><a href=/projects/lruihao/hexo-theme-next/ class=archive-item-link>Lruihao/hexo-theme-next</a>\n<span class=archive-item-date title='2019-01-31 09:57:45'>01-31</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/font-mmt/ class=archive-item-link>沐目体</a>\n<span class=archive-item-date title='2018-10-12 19:39:19'>10-12</span></article><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/collections/project/>1</a></span></li><li class=page-item><span class=page-link><a href=/collections/project/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/collections/project/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c8f1e633cb926fe996d5f2044426716b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/project/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/web-components/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Web Components - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "collections/web-components/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Web Components - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Web Components\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/web-components/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Web Components\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Web Components\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/web-components/ title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/web-components/index.xml title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/web-components/feed.json title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/web-components/feed.json title=\"Web Components | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/web-components/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web Components</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>Web Components <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/web-components/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/web-components/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Web Components - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/web-components/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/collections/web-components/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "collections/web-components/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/web-components/</title><link rel=canonical href=https://lruihao.cn/collections/web-components/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/web-components/\"></head></html>"
  },
  {
    "path": "collections/拖拽式仪表盘系列/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"拖拽式仪表盘系列 - 合集 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"}]}"
  },
  {
    "path": "collections/拖拽式仪表盘系列/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘系列 - 合集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"拖拽式仪表盘系列\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-12T21:25:18+08:00\"><meta itemprop=dateModified content=\"2024-04-25T13:29:53+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘系列\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘系列\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ title=\"拖拽式仪表盘系列 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/index.xml title=\"拖拽式仪表盘系列 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/feed.json title=\"拖拽式仪表盘系列 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/feed.json title=\"拖拽式仪表盘系列 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/collections/ title=Collections>合集</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘系列</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-layer-group me-1\" aria-hidden=true></i>拖拽式仪表盘系列 <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "collections/拖拽式仪表盘系列/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>拖拽式仪表盘系列 - 合集 | 菠菜眾長</title><link>https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 25 Apr 2024 13:29:53 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item></channel></rss>"
  },
  {
    "path": "collections/拖拽式仪表盘系列/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/</title><link rel=canonical href=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/\"></head></html>"
  },
  {
    "path": "css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css",
    "content": "/**\n * Map of code identifiers/languages to Chroma supported languages.\n *\n * @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js\n */\n:root {\n  --pp-crop: {\n  {\n    .cropTopPx\n  }\n  }\n  px; }\n\n.tippy-popper[data-theme~=\"pp\"] {\n  max-width: none !important;\n  z-index: 99999; }\n\n.tippy-tooltip.pp-theme {\n  background: transparent;\n  padding: 0; }\n\n.tippy-tooltip.pp-theme .tippy-content {\n  padding: 0; }\n\n.tippy-arrow {\n  display: none !important; }\n\n.pp-box {\n  --pp-bg: #ffffff;\n  --pp-text: #161209;\n  --pp-text-soft: #4d545c;\n  --pp-border: #e3e3e3;\n  --pp-link: #2376b7;\n  --pp-link-hover: #ea517f;\n  --pp-chip: rgba(227, 227, 227, 0.55);\n  --pp-head-bg: rgba(255, 255, 255, 0.75);\n  width: 420px;\n  max-width: calc(100vw - 24px);\n  height: 30vh;\n  max-height: 680px;\n  min-width: 320px;\n  min-height: 240px;\n  border-radius: 14px;\n  border: 1px solid var(--pp-border);\n  background: var(--pp-bg);\n  box-shadow: var(--pp-shadow);\n  overflow: hidden;\n  color: var(--pp-text);\n  filter: drop-shadow(0 0 0.75rem rgba(0, 0, 0, 0.1)); }\n  .pp-box.pp--dark {\n    --pp-bg: #292a2e;\n    --pp-text: #b1b1ba;\n    --pp-text-soft: #d0d4d8;\n    --pp-border: #454545;\n    --pp-link: #1781b5;\n    --pp-link-hover: #cc5595;\n    --pp-chip: rgba(69, 69, 69, 0.55);\n    --pp-head-bg: rgba(41, 42, 46, 0.55); }\n  [data-theme='dark'] .pp-box {\n    filter: drop-shadow(0 0 0.25rem rgba(0, 0, 0, 0.6)); }\n\n.pp-head {\n  display: flex;\n  align-items: center;\n  gap: .6rem;\n  padding: .25rem .75rem;\n  border-bottom: 1px solid var(--pp-border);\n  background: var(--pp-head-bg); }\n\n.pp-path {\n  display: flex;\n  align-items: center;\n  gap: .35rem;\n  min-width: 0;\n  flex: 1; }\n\n.pp-seg {\n  display: inline-flex;\n  min-width: 0;\n  color: var(--pp-text-soft);\n  text-decoration: none;\n  white-space: nowrap; }\n  .pp-seg:hover {\n    color: var(--pp-text); }\n\n.pp-seg__chip {\n  display: inline-flex;\n  align-items: center;\n  height: 22px;\n  padding: 0 .55rem;\n  border-radius: 999px;\n  border: 1px solid var(--pp-chip);\n  font-size: 12px;\n  line-height: 1;\n  max-width: 160px;\n  overflow: hidden;\n  text-overflow: ellipsis; }\n\n.pp-sep {\n  color: var(--pp-text-soft);\n  opacity: .8;\n  user-select: none; }\n\n.pp-url {\n  display: inline-flex;\n  align-items: center;\n  height: 22px;\n  padding: 0 .55rem;\n  border-radius: 999px;\n  border: 1px solid var(--pp-chip);\n  color: var(--pp-text-soft);\n  text-decoration: none;\n  font-size: 12px;\n  line-height: 1;\n  white-space: nowrap;\n  max-width: 220px;\n  overflow: hidden;\n  text-overflow: ellipsis; }\n  .pp-url:hover {\n    color: var(--pp-link-hover);\n    border-color: var(--pp-link-hover); }\n\n.pp-close {\n  width: 30px;\n  height: 30px;\n  padding: 0;\n  border: 1px solid var(--pp-chip);\n  background: transparent;\n  color: var(--pp-text);\n  opacity: .85;\n  border-radius: 100%;\n  display: grid;\n  place-items: center;\n  cursor: pointer; }\n  .pp-close:hover {\n    opacity: 1;\n    color: var(--pp-link-hover);\n    border-color: var(--pp-link-hover); }\n\n.pp-close__icon {\n  width: 16px;\n  height: 16px;\n  stroke: var(--pp-text);\n  stroke-width: 2.25;\n  stroke-linecap: round;\n  fill: none;\n  display: block; }\n\n.pp-body {\n  height: calc(100% - 50px);\n  overflow: auto;\n  content-visibility: auto;\n  contain: content;\n  -webkit-overflow-scrolling: touch; }\n\n.pp-doc {\n  padding: .75rem; }\n\n.pp-doc__inner {\n  transform: translateY(calc(-1 * var(--pp-crop)));\n  padding-top: var(--pp-crop); }\n  .pp-doc__inner article {\n    width: 99% !important; }\n  .pp-doc__inner .archive {\n    width: 90% !important; }\n  .pp-doc__inner .single-title {\n    padding: 0 !important;\n    font-size: 1.3rem; }\n\n.pp-doc img {\n  max-width: 100%;\n  height: auto;\n  border-radius: 10px; }\n\n.pp-doc a {\n  color: var(--pp-link);\n  text-decoration-thickness: .08em; }\n  .pp-doc a:hover {\n    color: var(--pp-link-hover); }\n"
  },
  {
    "path": "feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"一个轻量化 Tooltip 组件。\",\"date_published\":\"2026-03-06T06:58:23Z\",\"date_modified\":\"2026-03-30T06:51:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap tooltip.js，保留常用能力并尽量减少体积与依赖。\\n特性 支持触发方式：hover / focus / click / manual 支持位置：top / bottom / left / right / auto 支持延迟配置（show / hide） 支持 data-ct-* 属性初始化 支持实例方法：show / hide / toggle / update / dispose 内置箭头与基础样式，无第三方依赖 本地运行 pnpm install pnpm dev构建库产物：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cell-tooltip\\\" data-decreased\\u003e\\u003cspan\\u003ecell-tooltip\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cell-tooltip\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap \\u003ccode\\u003etooltip.js\\u003c/code\\u003e，保留常用能力并尽量减少体积与依赖。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持触发方式：\\u003ccode\\u003ehover\\u003c/code\\u003e / \\u003ccode\\u003efocus\\u003c/code\\u003e / \\u003ccode\\u003eclick\\u003c/code\\u003e / \\u003ccode\\u003emanual\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持位置：\\u003ccode\\u003etop\\u003c/code\\u003e / \\u003ccode\\u003ebottom\\u003c/code\\u003e / \\u003ccode\\u003eleft\\u003c/code\\u003e / \\u003ccode\\u003eright\\u003c/code\\u003e / \\u003ccode\\u003eauto\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持延迟配置（\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持 \\u003ccode\\u003edata-ct-*\\u003c/code\\u003e 属性初始化\\u003c/li\\u003e\\n\\u003cli\\u003e支持实例方法：\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e / \\u003ccode\\u003etoggle\\u003c/code\\u003e / \\u003ccode\\u003eupdate\\u003c/code\\u003e / \\u003ccode\\u003edispose\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e内置箭头与基础样式，无第三方依赖\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"本地运行\\\"\\u003e\\u003cspan\\u003e本地运行\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epnpm install\\npnpm dev\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e构建库产物：\\u003c/p\\u003e\"},{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"},{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"Code Playground\",\"date_published\":\"2025-08-04T11:37:24&#43;08:00\",\"date_modified\":\"2025-08-27T12:30:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/code-playground/\",\"url\":\"https://lruihao.cn/posts/code-playground/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"npm\"],\"summary\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\n\",\"content_html\":\"\\u003cp\\u003e以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\u003c/p\\u003e\"},{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"A custom element for viewing and interacting with JSON data.\",\"date_published\":\"2025-07-19T07:05:07Z\",\"date_modified\":\"2026-04-08T08:42:59Z\",\"id\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"\\u0026lt;json-viewer\\u0026gt; Element 简体中文 | English\\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\n功能特性 🌟 Web 组件：原生，无框架依赖 🎨 主题：支持明暗模式 📦 盒装：可选边框与内边距 📋 可复制：一键复制 JSON 🔑 排序：支持键排序 🔍 展开深度：可控初始展开层级 🧩 自定义复制按钮：slot 插槽支持 🧬 类型高亮：多种类型高亮 🛠️ 自定义事件：支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"json-viewer-element\\\" data-decreased\\u003e\\u003cspan\\u003e\\u0026lt;json-viewer\\u0026gt; Element\\u003c/span\\u003e\\n  \\u003ca href=\\\"#json-viewer-element\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e简体中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能特性\\\"\\u003e\\u003cspan\\u003e功能特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e🌟 \\u003cstrong\\u003eWeb 组件\\u003c/strong\\u003e：原生，无框架依赖\\u003c/li\\u003e\\n\\u003cli\\u003e🎨 \\u003cstrong\\u003e主题\\u003c/strong\\u003e：支持明暗模式\\u003c/li\\u003e\\n\\u003cli\\u003e📦 \\u003cstrong\\u003e盒装\\u003c/strong\\u003e：可选边框与内边距\\u003c/li\\u003e\\n\\u003cli\\u003e📋 \\u003cstrong\\u003e可复制\\u003c/strong\\u003e：一键复制 JSON\\u003c/li\\u003e\\n\\u003cli\\u003e🔑 \\u003cstrong\\u003e排序\\u003c/strong\\u003e：支持键排序\\u003c/li\\u003e\\n\\u003cli\\u003e🔍 \\u003cstrong\\u003e展开深度\\u003c/strong\\u003e：可控初始展开层级\\u003c/li\\u003e\\n\\u003cli\\u003e🧩 \\u003cstrong\\u003e自定义复制按钮\\u003c/strong\\u003e：slot 插槽支持\\u003c/li\\u003e\\n\\u003cli\\u003e🧬 \\u003cstrong\\u003e类型高亮\\u003c/strong\\u003e：多种类型高亮\\u003c/li\\u003e\\n\\u003cli\\u003e🛠️ \\u003cstrong\\u003e自定义事件\\u003c/strong\\u003e：支持 copy/toggle 事件监听\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"使用方法\\\"\\u003e\\u003cspan\\u003e使用方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install json-viewer-element\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"引入\\\"\\u003e\\u003cspan\\u003e引入\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bc%95%e5%85%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"作为模块\\\"\\u003e\\u003cspan\\u003e作为模块\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport 'json-viewer-element'\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"umd-cdn\\\"\\u003e\\u003cspan\\u003eUMD (CDN)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#umd-cdn\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript src=\\\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"基本用法\\\"\\u003e\\u003cspan\\u003e基本用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e手动绑定 value：\\u003c/p\\u003e\"},{\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"date_published\":\"2025-06-18T10:35:47&#43;08:00\",\"date_modified\":\"2025-06-18T12:41:26&#43;08:00\",\"id\":\"https://lruihao.cn/posts/at-layer/\",\"url\":\"https://lruihao.cn/posts/at-layer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"@layer\"],\"summary\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\\n\",\"content_html\":\"\\u003cp\\u003e在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 \\u003ccode\\u003e@layer\\u003c/code\\u003e 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 \\u003ccode\\u003e@layer\\u003c/code\\u003e 的背景、作用以及语法，带你一探究竟。\\u003c/p\\u003e\"},{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"},{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"CSS Flexbox 布局指南\",\"date_published\":\"2025-01-20T15:56:38&#43;08:00\",\"date_modified\":\"2025-01-20T17:49:35&#43;08:00\",\"id\":\"https://lruihao.cn/posts/flexbox/\",\"url\":\"https://lruihao.cn/posts/flexbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Flexbox\"],\"image\":\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\",\"summary\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\n\",\"content_html\":\"\\u003cp\\u003e本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\u003c/p\\u003e\"},{\"title\":\"Generate a list of all hugo-fixit theme components.\",\"date_published\":\"2025-01-14T09:10:09Z\",\"date_modified\":\"2026-05-06T03:13:04Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"github-actions\"],\"summary\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"action-component-list--fixit\\\" data-decreased\\u003e\\u003cspan\\u003eaction-component-list | FixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#action-component-list--fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/super-linter/super-linter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_14033786788092036044.svg' alt=\\\"GitHub Super-Linter\\\"\\u003e\\u003c/a\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_12862037500024650352.svg' alt=\\\"CI\\\"\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_17453161718063467893.svg' alt=\\\"Check dist/\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_9366593515159455299.svg' alt=\\\"CodeQL\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"how-to-use\\\"\\u003e\\u003cspan\\u003eHow to use\\u003c/span\\u003e\\n  \\u003ca href=\\\"#how-to-use\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eYou can reference different stable versions of this action. For more\\ninformation, see\\n\\u003ca href=\\\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVersioning\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\nin the GitHub Actions toolkit.\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"date_published\":\"2024-12-06T10:32:22&#43;08:00\",\"date_modified\":\"2024-12-06T11:51:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-viewport/\",\"url\":\"https://lruihao.cn/posts/css-viewport/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\n\",\"content_html\":\"\\u003cp\\u003e在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"date_published\":\"2024-10-06T11:10:22&#43;08:00\",\"date_modified\":\"2024-10-06T12:21:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/content-adapters/\",\"url\":\"https://lruihao.cn/posts/content-adapters/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"GitHub API\"],\"image\":\"https://lruihao.cn/posts/content-adapters/featured-image.webp\",\"summary\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\n\",\"content_html\":\"\\u003cp\\u003e在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\u003c/p\\u003e\"},{\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date_published\":\"2024-09-13T02:36:29Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"html-css-javascript\"],\"summary\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"html-demos\\\" data-decreased\\u003e\\u003cspan\\u003eHTML demos\\u003c/span\\u003e\\n  \\u003ca href=\\\"#html-demos\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"文件预览\\\"\\u003e\\u003cspan\\u003e文件预览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e直接浏览器打开 \\u003ccode\\u003esrc\\u003c/code\\u003e 目录下的 HTML 文件。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"Git 统计代码量\",\"date_published\":\"2024-07-17T16:06:08&#43;08:00\",\"date_modified\":\"2024-07-17T18:34:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-summary/\",\"url\":\"https://lruihao.cn/posts/git-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"使用 Git 命令统计在某段时间内项目中的代码量。\\n\",\"content_html\":\"\\u003cp\\u003e使用 Git 命令统计在某段时间内项目中的代码量。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"架构之基：从根儿上了解设计原则\",\"date_published\":\"2024-06-09T02:24:31&#43;08:00\",\"date_modified\":\"2024-06-09T02:57:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/design-principles/\",\"url\":\"https://lruihao.cn/posts/design-principles/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Design Patterns\",\"Java\"],\"summary\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\",\"content_html\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"},{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"date_published\":\"2024-03-28T06:14:16Z\",\"date_modified\":\"2026-05-06T03:02:25Z\",\"id\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"url\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"CoverView 👉 简体中文说明 | English README\\n该项目基于原始的 CoverView。\\n现在为你的博客创建封面图片变得非常简单。\\n💥 变更通知 自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"coverview\\\" data-decreased\\u003e\\u003cspan\\u003eCoverView\\u003c/span\\u003e\\n  \\u003ca href=\\\"#coverview\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish README\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/open-source_18217824114769177106.svg' alt=\\\"用爱发电\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e该项目基于原始的 \\u003ca href=\\\"https://github.com/rutikwankhade/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e现在为你的博客创建封面图片变得非常简单。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\\\"cover_169570\\\" height=\\\"840\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-变更通知\\\"\\u003e\\u003cspan\\u003e💥 变更通知\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\u003c/p\\u003e\"},{\"title\":\"写文档时英文标题什么时候要大写？\",\"date_published\":\"2024-03-26T12:23:44&#43;08:00\",\"date_modified\":\"2024-04-02T21:13:59&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c6bc2d5/\",\"url\":\"https://lruihao.cn/posts/c6bc2d5/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\\n\",\"content_html\":\"\\u003cp\\u003e对于本文的标题的思考来自于 \\u003ca href=\\\"https://gohugo.io/getting-started/configuration/#titlecasestyle\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e中的一个配置 \\u003ccode\\u003etitleCaseStyle\\u003c/code\\u003e，默认情况下，Hugo 在创建自动章节标题以及使用 \\u003ccode\\u003estrings.Title\\u003c/code\\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\\u003c/p\\u003e\\n\\u003cp\\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\u003c/p\\u003e\\n\\u003cp\\u003e经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，\\u003ca href=\\\"https://pub.bnu.edu.cn/jzyg1/72203.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“出版物中，英文什么时候要大写？ ”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"date_published\":\"2024-02-29T16:46:00&#43;08:00\",\"date_modified\":\"2024-06-12T18:57:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"url\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\n\",\"content_html\":\"\\u003cp\\u003e在 Element UI 的表格组件中，当表格列的内容过长时，设置 \\u003ccode\\u003eshow-overflow-tooltip\\u003c/code\\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\u003c/p\\u003e\"},{\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"date_published\":\"2024-02-21T10:00:13&#43;08:00\",\"date_modified\":\"2024-02-21T11:06:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/auto-sizes/\",\"url\":\"https://lruihao.cn/posts/auto-sizes/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\"],\"summary\":\"聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\n\",\"content_html\":\"\\u003cp\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\u003c/p\\u003e\"},{\"title\":\"2023 年度总结\",\"date_published\":\"2024-02-09T14:07:24&#43;08:00\",\"date_modified\":\"2024-02-09T14:07:24&#43;08:00\",\"id\":\"https://lruihao.cn/years/2023/\",\"url\":\"https://lruihao.cn/years/2023/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"总结\"],\"summary\":\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\n\",\"content_html\":\"\\u003cp\\u003e与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\u003c/p\\u003e\"},{\"title\":\"强大的脑图可视化工具\",\"date_published\":\"2024-01-21T06:24:42Z\",\"date_modified\":\"2024-07-07T02:44:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"url\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"KityMinder Core 注意\\n由于原项目 KityMinder Core 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 @cell-x/kityminder-core。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"kityminder-core\\\" data-decreased\\u003e\\u003cspan\\u003eKityMinder Core\\u003c/span\\u003e\\n  \\u003ca href=\\\"#kityminder-core\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003e由于原项目 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKityMinder Core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 \\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e@cell-x/kityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"为什么很多教程中都有 foo bar？\",\"date_published\":\"2024-01-17T09:58:58&#43;08:00\",\"date_modified\":\"2024-07-17T17:37:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/20b75e9/\",\"url\":\"https://lruihao.cn/posts/20b75e9/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\n\",\"content_html\":\"\\u003cp\\u003efoo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\u003c/p\\u003e\"},{\"title\":\"git submodule: already exists in the index\",\"date_published\":\"2024-01-11T10:30:04&#43;08:00\",\"date_modified\":\"2024-01-11T10:39:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/6550187/\",\"url\":\"https://lruihao.cn/posts/6550187/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"Git 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\n\",\"content_html\":\"\\u003cp\\u003eGit 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\u003c/p\\u003e\"},{\"title\":\"给 el-card 添加折叠功能\",\"date_published\":\"2024-01-10T17:06:54&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-card-collapse/\",\"url\":\"https://lruihao.cn/posts/el-card-collapse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e出发点\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e虽然 Element 也有 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/collapse\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-collapse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，\\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/card\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-card\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"SSH 提交签名验证\",\"date_published\":\"2023-10-22T18:59:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ssh-sign/\",\"url\":\"https://lruihao.cn/posts/ssh-sign/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"SSH\"],\"summary\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\n\",\"content_html\":\"\\u003cp\\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"},{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"},{\"title\":\"认知复杂度（Cognitive Complexity）\",\"date_published\":\"2023-10-08T09:52:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"url\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"image\":\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\",\"summary\":\"27 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\n27.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"摘要\\\"\\u003e\\u003cspan\\u003e27 摘要\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%91%98%e8%a6%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"术语说明\\\"\\u003e\\u003cspan\\u003e27.1 术语说明\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"date_published\":\"2023-09-26T15:17:52&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/article-structure/\",\"url\":\"https://lruihao.cn/posts/article-structure/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\u003c/p\\u003e\"},{\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"date_published\":\"2023-09-25T17:49:58&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\u003c/p\\u003e\"},{\"title\":\"封装 Vue FullScreenToggler 组件\",\"date_published\":\"2023-09-17T19:44:07&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"url\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"JavaScript\"],\"summary\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\\n\",\"content_html\":\"\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/mirari/vue-fullscreen\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evue-fullscreen\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\\u003c/p\\u003e\"},{\"title\":\"JS 实现全屏和退出全屏\",\"date_published\":\"2023-09-15T17:29:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-fullscreen/\",\"url\":\"https://lruihao.cn/posts/js-fullscreen/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\"19 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e19 背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\u003c/p\\u003e\"},{\"title\":\"中文翻译的常见问题\",\"date_published\":\"2023-09-15T11:07:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:45:09&#43;08:00\",\"id\":\"https://lruihao.cn/posts/translation-guide/\",\"url\":\"https://lruihao.cn/posts/translation-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"他山之石\"],\"summary\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下内容截取自 \\u003ca href=\\\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e针对 MDN 文档的本地化指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的中文翻译的常见问题小节。\\u003c/p\\u003e\\n\\u003cp\\u003e其中翻译的规范也是中文写作的规范，更多详见之前写的 \\u003ca href=\\\"/posts/document-style-guide/\\\"\\u003e中文技术文档的写作规范\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\u003c/p\\u003e\"},{\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"date_published\":\"2023-09-14T11:24:48&#43;08:00\",\"date_modified\":\"2024-06-06T23:01:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"url\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SVG\",\"Vue2\"],\"summary\":\"19 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e19 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、\\u003ca href=\\\"https://fontawesome.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFont Awesome\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.iconfont.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIconfont\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等。\\u003c/p\\u003e\\n\\u003cp\\u003e随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\u003c/p\\u003e\"},{\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"date_published\":\"2023-09-14T11:21:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vscode-snippets/\",\"url\":\"https://lruihao.cn/posts/vscode-snippets/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Shortcodes\"],\"summary\":\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\n\",\"content_html\":\"\\u003cp\\u003e在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\u003c/p\\u003e\"},{\"title\":\"CSS 如何实现网格背景效果？\",\"date_published\":\"2023-09-02T10:05:44&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/grid-bg-image/\",\"url\":\"https://lruihao.cn/posts/grid-bg-image/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\\n15 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何使用 \\u003ccode\\u003elinear-gradient\\u003c/code\\u003e 、\\u003ccode\\u003ebackground-size\\u003c/code\\u003e 等属性来实现网格背景效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e15 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\u003c/p\\u003e\"},{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"date_published\":\"2023-07-20T11:08:18&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"url\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\\n\",\"content_html\":\"\\u003cp\\u003e这篇文章主要是记录一下继承 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/backtop\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElBacktop\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件并修复了一些 bug 的过程。\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"date_published\":\"2023-03-14T08:37:59&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue2-guid/\",\"url\":\"https://lruihao.cn/posts/vue2-guid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"他山之石\"],\"summary\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\\n此指南仅供参考，请根据自身实际情况灵活调整。\\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e注：2.0 已经有\\u003ca href=\\\"https://v2.cn.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 。如果对自己英文有信心，也可以直接阅读\\u003ca href=\\\"https://v2.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003cbr\\u003e\\n此指南仅供参考，请根据自身实际情况灵活调整。\\u003cbr\\u003e\\n转载自： \\u003ca href=\\\"https://www.zhihu.com/people/evanyou\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尤雨溪\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://zhuanlan.zhihu.com/p/23134551\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，2017-08-04 14:51\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"},{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"中文技术文档的写作规范\",\"date_published\":\"2023-02-04T16:04:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/document-style-guide/\",\"url\":\"https://lruihao.cn/posts/document-style-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\" 以下参考来源：阮一峰的 中文技术文档的写作规范\\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下参考来源：阮一峰的 \\u003ca href=\\\"https://github.com/ruanyf/document-style-guide\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如\\u003ca href=\\\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e微软\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"http://styleguide.mailchimp.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMailChimp\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eApple\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8\\u0026amp;btkr=1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eYahoo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://docs.docker.com/opensource/doc-style/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edocker\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://struts.apache.org/docs/documentation-style-guide.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eStruts\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等（维基百科有一份完整的\\u003ca href=\\\"https://en.wikipedia.org/wiki/List_of_style_guides\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e清单\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e）。\\u003ca href=\\\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e也有不少，但都不令人满意，要么太简单，要么不太适用。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\u003c/p\\u003e\\n\\u003cp\\u003e参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\u003c/p\\u003e\"},{\"title\":\"浏览器原理 - 事件循环\",\"date_published\":\"2023-01-11T11:16:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/event-loop/\",\"url\":\"https://lruihao.cn/posts/event-loop/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/event-loop/images/202208092131410.png\",\"summary\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\n\",\"content_html\":\"\\u003cp\\u003e最近在抖音上刷到很多次 \\u003ca href=\\\"http://yuanjin.tech/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e袁进老师\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\u003c/p\\u003e\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Using frequently-used Hugo commands by shell.\",\"date_published\":\"2022-09-04T04:18:42Z\",\"date_modified\":\"2025-09-12T09:38:50Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\"],\"summary\":\"Hugo Shell Using frequently-used Hugo commands by shell.\\nDownload Add a submodule for your Hugo blog project.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shell\\\" data-decreased\\u003e\\u003cspan\\u003eHugo Shell\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shell\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eUsing frequently-used Hugo commands by shell.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"download\\\"\\u003e\\u003cspan\\u003eDownload\\u003c/span\\u003e\\n  \\u003ca href=\\\"#download\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eAdd a submodule for your Hugo blog project.\\u003c/p\\u003e\"},{\"title\":\"Beego 安装及配置\",\"date_published\":\"2022-08-31T09:32:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beego-install/\",\"url\":\"https://lruihao.cn/posts/beego-install/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Beego\",\"Go\"],\"image\":\"https://lruihao.cn/posts/beego-install/images/featured-image.png\",\"summary\":\"记录 GO 及 Beego 框架安装及基础配置。\\n\",\"content_html\":\"\\u003cp\\u003e记录 GO 及 Beego 框架安装及基础配置。\\u003c/p\\u003e\"},{\"title\":\"语义版本控制（SemVer）\",\"date_published\":\"2022-08-13T13:32:03&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/semver/\",\"url\":\"https://lruihao.cn/posts/semver/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SemVer\"],\"image\":\"https://lruihao.cn/posts/semver/images/featured-image.png\",\"summary\":\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e版本格式：\\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e，版本号递增规则如下：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMAJOR\\u003c/code\\u003e: \\u003cstrong\\u003e主版本号\\u003c/strong\\u003e，当你做了不兼容的 API 修改\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMINOR\\u003c/code\\u003e: \\u003cstrong\\u003e次版本号\\u003c/strong\\u003e，当你做了向下兼容的功能性新增\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003ePATCH\\u003c/code\\u003e: \\u003cstrong\\u003e修订号\\u003c/strong\\u003e，当你做了向下兼容的问题修正\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e先行版本号及版本编译信息可以加到 \\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e 的后面，作为延伸。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Commit Message Spec\",\"date_published\":\"2022-08-12T15:37:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-spec/\",\"url\":\"https://lruihao.cn/posts/commit-spec/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cp\\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \\u003ca href=\\\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eConventional Commits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e specification based on the \\u003ca href=\\\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAngular convention\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\u003c/p\\u003e\"},{\"title\":\"electron 踩坑总结\",\"date_published\":\"2022-08-12T11:22:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/electron-summary/\",\"url\":\"https://lruihao.cn/posts/electron-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"electron\"],\"image\":\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\",\"summary\":\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\\n\",\"content_html\":\"\\u003cp\\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\\u003c/p\\u003e\"},{\"title\":\"前端页面内容加密总结\",\"date_published\":\"2022-08-08T13:49:22&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/encryption-fe/\",\"url\":\"https://lruihao.cn/posts/encryption-fe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"加密\"],\"image\":\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\",\"summary\":\"记录一下前端实现页面加密的思路。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下前端实现页面加密的思路。\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"不同系统的换行符的差异\",\"date_published\":\"2022-08-07T00:10:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/newline/\",\"url\":\"https://lruihao.cn/posts/newline/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"newline\"],\"summary\":\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\n\",\"content_html\":\"\\u003cp\\u003e换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\u003c/p\\u003e\"},{\"title\":\"自定义 ohmyzsh 主题\",\"date_published\":\"2022-07-31T13:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"url\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\n\",\"content_html\":\"\\u003cp\\u003eohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\u003c/p\\u003e\"},{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"Mac 配置 ADB\",\"date_published\":\"2022-07-05T15:39:34&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adb-for-mac/\",\"url\":\"https://lruihao.cn/posts/adb-for-mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Android\",\"ADB\"],\"summary\":\"作为非安卓专业开发，无需下载 Android SDK，\\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\\n\",\"content_html\":\"\\u003cp\\u003e作为非安卓专业开发，无需下载 Android SDK，\\u003cbr\\u003e\\n仅下载 Android SDK 中的 \\u003ca href=\\\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eplatform-tools\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 命令行工具即可，并配置好环境变量。\\u003c/p\\u003e\"},{\"title\":\"重新认识 JavaScript\",\"date_published\":\"2022-05-01T10:59:36&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-rediscover/\",\"url\":\"https://lruihao.cn/posts/js-rediscover/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"ES6\"],\"summary\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e前言\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\u003c/p\\u003e\\n\\u003cp\\u003e每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"date_published\":\"2022-04-30T22:04:29&#43;08:00\",\"date_modified\":\"2024-07-14T17:09:39&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-scss-var/\",\"url\":\"https://lruihao.cn/posts/css-scss-var/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"summary\":\"7 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\\n造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题分析\\\"\\u003e\\u003cspan\\u003e7 问题分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e昨天在开发 FixIt 的时候，在 Scss 中写 \\u003ccode\\u003emax(foo, bar)\\u003c/code\\u003e 函数比较不同的单位变量时报错了，但是在 CSS 中使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数函数比较不同的单位变量是没有问题的。\\u003c/p\\u003e\\n\\u003cp\\u003e造成这一问题的原因是，在 Scss 中，也实现了 \\u003ccode\\u003emax\\u003c/code\\u003e 和 \\u003ccode\\u003emin\\u003c/code\\u003e 函数，但是在 Scss 中，\\u003cstrong\\u003e不同单位的变量是不能进行运算的\\u003c/strong\\u003e，所以使得在 Scss 中直接使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\u003c/p\\u003e\\n\\u003cp\\u003e知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\u003c/p\\u003e\"},{\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"date_published\":\"2021-12-22T20:17:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gtd/\",\"url\":\"https://lruihao.cn/posts/gtd/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GTD\"],\"image\":\"/posts/gtd/images/reminders_min.png\",\"summary\":\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\nReference #20 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003equote\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003eGetting Things Done (GTD)\\u003c/strong\\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://en.wikipedia.org/wiki/Getting_Things_Done\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eReference\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/issues/20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e#20\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"date_published\":\"2021-10-05T21:54:06&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"url\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"Sublime\"],\"summary\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/robinchenyu/imagepaste\\\" title=\\\"插件地址\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e插件地址\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/robinchenyu/imagepaste\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"date_published\":\"2021-10-05T19:33:13&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"url\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"Shortcodes\"],\"summary\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e卡片式链接已整合到 FixIt 主题\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\\n\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e回顧\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e之前在使用 hexo 的時候也有用到，\\u003ca href=\\\"/posts/linkcard/\\\"\\u003e模仿知乎卡片式链接\\u003c/a\\u003e\\u003cbr\\u003e\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\u003cbr\\u003e\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Hugo 友情連結模板\",\"date_published\":\"2021-10-05T14:14:10&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-friends/\",\"url\":\"https://lruihao.cn/posts/hugo-friends/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\"],\"summary\":\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e過程\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e友情鏈接模板已整合到 FixIt 主題\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 本地管理 Shell 腳本\",\"date_published\":\"2021-10-04T23:49:00&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-admin/\",\"url\":\"https://lruihao.cn/posts/hugo-admin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"shell\"],\"image\":\"/posts/hugo-admin/images/hugo-admin1.png\",\"summary\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition abstract open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-clipboard-list\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\u003cbr\\u003e\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Lightbox\",\"date_published\":\"2021-06-21T16:18:04&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightbox/\",\"url\":\"https://lruihao.cn/posts/lightbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Lightbox\",\"JavaScript\"],\"summary\":\"7 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"簡介\\\"\\u003e\\u003cspan\\u003e7 簡介\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b0%a1%e4%bb%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\u003c/p\\u003e\"},{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"},{\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"date_published\":\"2021-03-04T21:04:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codereview/\",\"url\":\"https://lruihao.cn/posts/codereview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"codereview\"],\"summary\":\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"程式碼的持續優化\\\"\\u003e\\u003cspan\\u003e1 程式碼的持續優化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\u003c/p\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-02-28T03:44:09Z\",\"date_modified\":\"2025-01-16T02:53:15Z\",\"id\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"url\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vue\"],\"summary\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"preparation\\\" data-decreased\\u003e\\u003cspan\\u003ePreparation\\u003c/span\\u003e\\n  \\u003ca href=\\\"#preparation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\u003c/p\\u003e\\n\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth\\u003ename\\u003c/th\\u003e\\n          \\u003cth\\u003etype\\u003c/th\\u003e\\n          \\u003cth\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay\\u003c/td\\u003e\\n          \\u003ctd\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费金额\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_description\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费描述\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_type\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费类型\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_user\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e付款人\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"init\\\" data-decreased\\u003e\\u003cspan\\u003eInit\\u003c/span\\u003e\\n  \\u003ca href=\\\"#init\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eset for yourself.\\u003c/p\\u003e\"},{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"},{\"title\":\"使用 Python 刷 csdn 访问量\",\"date_published\":\"2020-03-26T11:08:38&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/csdnvisiter/\",\"url\":\"https://lruihao.cn/posts/csdnvisiter/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"SQL 总结\",\"date_published\":\"2020-01-16T19:28:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sql/\",\"url\":\"https://lruihao.cn/posts/sql/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"MySQL\"],\"summary\":\" SQL 增删改查 (CRUD) 语句与常用函数总结。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"date_published\":\"2019-09-28T18:32:42&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phppushurl/\",\"url\":\"https://lruihao.cn/posts/phppushurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" php 主动推送站点链接到百度站长，神马站长进行 SEO。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ephp 主动推送站点链接到百度站长，神马站长进行 SEO。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 按行读取文件信息\",\"date_published\":\"2019-09-28T17:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfile/\",\"url\":\"https://lruihao.cn/posts/phpfile/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\"7 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"普通方法\\\"\\u003e\\u003cspan\\u003e7 普通方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先采用\\u003ccode\\u003efopen()\\u003c/code\\u003e函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。\\u003ccode\\u003efeof()\\u003c/code\\u003e判断是否到最后一行，\\u003ccode\\u003efgets()\\u003c/code\\u003e读取一行文本。\\u003c/p\\u003e\"},{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"设置网站运行时间\",\"date_published\":\"2019-09-19T22:03:29&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/site-time/\",\"url\":\"https://lruihao.cn/posts/site-time/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 使用javascript计算博客等网站的运行时间。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用\\u003ccode\\u003ejavascript\\u003c/code\\u003e计算博客等网站的运行时间。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Sublime Text3 快捷键大全\",\"date_published\":\"2019-08-15T20:59:10&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sublime-text3/\",\"url\":\"https://lruihao.cn/posts/sublime-text3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Sublime\",\"他山之石\"],\"summary\":\"Sublime Text3 快捷键一览表\\n\",\"content_html\":\"\\u003cp\\u003eSublime Text3 快捷键一览表\\u003c/p\\u003e\"},{\"title\":\"NetBeans IDE 开发设置\",\"date_published\":\"2019-08-15T18:36:15&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/netbeans/\",\"url\":\"https://lruihao.cn/posts/netbeans/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"NetBeans\",\"PHP\"],\"summary\":\"7 安裝 官方下載點\\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安裝\\\"\\u003e\\u003cspan\\u003e7 安裝\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://netbeans.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方下載點\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"擴充功能\\\"\\u003e\\u003cspan\\u003e8 擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安裝擴充功能\\\"\\u003e\\u003cspan\\u003e8.1 安裝擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e下載擴充套件包\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://plugins.netbeans.org/PluginPortal/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方套件庫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e或者在 NetBeans IDE 裏面下載插件（方便）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要安裝的擴充套件包\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"啟用已安裝的擴充功能\\\"\\u003e\\u003cspan\\u003e8.2 啟用已安裝的擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Installed\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要啟用的套件 (*.npm)\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Activate\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"匯入設定\\\"\\u003e\\u003cspan\\u003e8.3 匯入設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Options\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Import 匯入設定\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要匯入的套件包 (*.zip)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常用設定\\\"\\u003e\\u003cspan\\u003e9 常用設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"程式碼排版\\\"\\u003e\\u003cspan\\u003e9.1 程式碼排版\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\u003c/p\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"简单评论模块--php 表单练习\",\"date_published\":\"2019-07-19T11:38:59&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpform/\",\"url\":\"https://lruihao.cn/posts/phpform/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\nPHP 表单安全性的重要提示\\n$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]变量能够被黑客利用！\\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\u003cbr\\u003e\\n\\u003cstrong\\u003ePHP 表单安全性的重要提示\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003e$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]\\u003c/code\\u003e变量能够被黑客利用！\\u003cbr\\u003e\\n如果页面中使用了\\u003ccode\\u003ePHP_SELF\\u003c/code\\u003e，用户能够输入下划线然后执行跨站点脚本（XSS）。\\u003cbr\\u003e\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e跨站点脚本（Cross-site scripting，XSS）\\u003c/code\\u003e是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 函数学习\",\"date_published\":\"2019-07-15T11:37:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfunc/\",\"url\":\"https://lruihao.cn/posts/phpfunc/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 练习 php 函数的基本使用。\\n注：\\n必选参数在可选参数的前面。\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e练习 php 函数的基本使用。\\u003cbr\\u003e\\n注：\\u003cbr\\u003e\\n必选参数在可选参数的前面。\\u003cbr\\u003e\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅱ\",\"date_published\":\"2019-06-21T18:46:41&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx2/\",\"url\":\"https://lruihao.cn/posts/pysx2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 后面几天讲的有点杂，简单记录一下知识点。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e后面几天讲的有点杂，简单记录一下知识点。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅰ\",\"date_published\":\"2019-06-18T18:41:00&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx1/\",\"url\":\"https://lruihao.cn/posts/pysx1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"turtle\"],\"summary\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\\n这次正好又课程安排了为期两周的综合实训，主要是“\\u003cstrong\\u003e用 python 做量化交易\\u003c/strong\\u003e”\\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"判断三角形的黑盒测试\",\"date_published\":\"2019-05-26T18:50:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/judgetriangle/\",\"url\":\"https://lruihao.cn/posts/judgetriangle/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"黑盒测试\",\"C\"],\"summary\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\u003cbr\\u003e\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装 ImgURL 图床\",\"date_published\":\"2019-05-16T20:31:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/imgurl/\",\"url\":\"https://lruihao.cn/posts/imgurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ImgURL\",\"宝塔面板\"],\"image\":\"/posts/imgurl/images/1.png\",\"summary\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\\n\\u003ca href=\\\"https://www.xiaoz.me/archives/12081\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e阅读原文\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"date_published\":\"2019-05-10T13:08:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ifzhushi/\",\"url\":\"https://lruihao.cn/posts/ifzhushi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"他山之石\"],\"summary\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cspan\\u003e\\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 设置程序每天 8 点定时执行任务\",\"date_published\":\"2019-05-09T23:26:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysettime/\",\"url\":\"https://lruihao.cn/posts/pysettime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"Cron\"],\"summary\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\n（该程序需要一直挂着，保持网络不断）\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\u003cbr\\u003e\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\u003cbr\\u003e\\n（该程序需要一直挂着，保持网络不断）\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"date_published\":\"2019-05-09T19:05:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pyinstallererror/\",\"url\":\"https://lruihao.cn/posts/pyinstallererror/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"pyinstaller\"],\"image\":\"/posts/pyinstallererror/images/1.png\",\"summary\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用过命令\\u003ccode\\u003epip install pyinstaller\\u003c/code\\u003e安装失败，此包依赖于 pywin32，安装前需要先\\u003ccode\\u003epip install pywin32\\u003c/code\\u003e, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\\n这里通过手动下载安装解决的，记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 发送 post 请求进行简单的接口测试\",\"date_published\":\"2019-05-07T18:17:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/posttest/\",\"url\":\"https://lruihao.cn/posts/posttest/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"summary\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\nrequests.get() requests.post()\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003erequests.get()\\u003c/li\\u003e\\n\\u003cli\\u003erequests.post()\\u003cbr\\u003e\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"date_published\":\"2019-05-06T17:41:35&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-urlreader/\",\"url\":\"https://lruihao.cn/posts/java-urlreader/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"URLConnection\",\"Java\"],\"summary\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"文件加密解密（字节流）\",\"date_published\":\"2019-05-02T23:04:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/byteio/\",\"url\":\"https://lruihao.cn/posts/byteio/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\u003c/p\\u003e\\n\\u003cp\\u003e这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模拟借书系统（java 异常练习）\",\"date_published\":\"2019-05-01T16:52:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/javaexception/\",\"url\":\"https://lruihao.cn/posts/javaexception/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"image\":\"/posts/javaexception/images/1.png\",\"content_html\":\"模拟借书系统（java 异常练习）\"},{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"第一次面试经历\",\"date_published\":\"2019-04-24T21:23:22&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/1thintervivew/\",\"url\":\"https://lruihao.cn/posts/1thintervivew/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面试\"],\"summary\":\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 爬取网站图片（图片链接相似）\",\"date_published\":\"2019-04-22T12:46:34&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mmtimgpy/\",\"url\":\"https://lruihao.cn/posts/mmtimgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下程序对 \\u003ca href=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026amp;a=fontshowPics\\u0026amp;u=qbfRl8gPF2s-\\u0026amp;z=Kqz%2FRroVGYc-\\u0026amp;share=1\\u0026amp;from=singlemessage\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e该网址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。\\u003ca href=\\\"/projects/font-mmt/\\\"\\u003e字体效果查看\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"用记事本编写第一个 java 程序\",\"date_published\":\"2019-04-19T19:49:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hellojava/\",\"url\":\"https://lruihao.cn/posts/hellojava/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\njavac java \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以\\u003ccode\\u003e.java\\u003c/code\\u003e为后缀的文件；然后将这些源程序用\\u003ccode\\u003ejavac\\u003c/code\\u003e编译成\\u003ccode\\u003e.class\\u003c/code\\u003e后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\u003cbr\\u003e\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003ejavac\\u003c/li\\u003e\\n\\u003cli\\u003ejava\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 正则表达式练习\",\"date_published\":\"2019-04-18T22:04:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-regex/\",\"url\":\"https://lruihao.cn/posts/java-regex/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"regex\",\"Java\"],\"summary\":\"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\"); String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\\"匹配结果：\\\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的 p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\"); // 验证没有区号的 if (str.length() \\u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" + \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" + \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"邮箱\\\"\\u003e\\u003cspan\\u003e7 邮箱\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%82%ae%e7%ae%b1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexDemo {\\n    public static void main(String[] args) {\\n//       Pattern 类 正则表达式的编译表示。\\n        Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\");\\n        String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"};\\n        for (String email :\\n                emails) {\\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\\n            Matcher matcher = pattern.matcher(email);\\n            System.out.println(email + \\\"匹配结果：\\\" + matcher.matches());\\n        }\\n    }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003eadmin@lruihao.cn 匹配结果：true\\nlruihao.cn 匹配结果：false\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"电话\\\"\\u003e\\u003cspan\\u003e8 电话\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b5%e8%af%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epackage base;\\n\\nimport java.util.Scanner;\\nimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexTest {\\n  public static void main(String[] args) {\\n    Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\");\\n    Scanner sc=new Scanner(System.in);\\n    String telnum=sc.nextLine();\\n    sc.close();\\n    Matcher matcher=patter.matcher(telnum);\\n    System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches());\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 获取当前的 httpSession\\n * @return\\n */\\npublic static HttpSession getSession() {\\n return getRequest().getSession();\\n}\\n/**\\n * 手机号验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isMobile(final String str) {\\n  Pattern p = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号\\n  m = p.matcher(str);\\n  b = m.matches();\\n  return b;\\n}\\n/**\\n * 电话号码验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isPhone(final String str) {\\n  Pattern p1 = null, p2 = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的\\n  p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\");     // 验证没有区号的\\n  if (str.length() \\u003e 9) {\\n    m = p1.matcher(str);\\n    b = m.matches();\\n  } else {\\n    m = p2.matcher(str);\\n    b = m.matches();\\n  }\\n  return b;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"身份证\\\"\\u003e\\u003cspan\\u003e9 身份证\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ba%ab%e4%bb%bd%e8%af%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/* 身份证正则表达式 16 或 18 */\\n   public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" +\\n           \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" +\\n           \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"},{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"前端面试题 - HTML+CSS\",\"date_published\":\"2019-03-30T22:58:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ms-html-css/\",\"url\":\"https://lruihao.cn/posts/ms-html-css/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"CSS\"],\"summary\":\" 原文链接\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/ltadpoles/web-document/tree/master/Other\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原文链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\u003c/p\\u003e\"},{\"title\":\"百钱百鸡（枚举法）\",\"date_published\":\"2019-03-30T10:13:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bqbj/\",\"url\":\"https://lruihao.cn/posts/bqbj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Java 父类子类的对象初始化过程\",\"date_published\":\"2019-03-21T13:36:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/substatus/\",\"url\":\"https://lruihao.cn/posts/substatus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"web 汇总\",\"date_published\":\"2019-03-18T20:40:55&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/webbiji/\",\"url\":\"https://lruihao.cn/posts/webbiji/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 泛型 test\",\"date_published\":\"2019-03-16T13:56:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fanxing/\",\"url\":\"https://lruihao.cn/posts/fanxing/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"泛型\",\"Java\"],\"summary\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;)\\u003c/li\\u003e\\n\\u003cli\\u003e类型通配符一般使用问号\\u003ccode\\u003e?\\u003c/code\\u003e代替具体的类型\\u003ccode\\u003e实\\u003c/code\\u003e参，注意不是类型形参。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"eclipse 的基本使用\",\"date_published\":\"2019-03-15T23:47:24&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/eclipseuse/\",\"url\":\"https://lruihao.cn/posts/eclipseuse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"eclipse\",\"Java\"],\"summary\":\"9 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击）12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本使用\\\"\\u003e\\u003cspan\\u003e9 基本使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 选择一个工作空间\\n  D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\\n  a: 创建项目（工程）\\n    *File -- New -- Java Project\\n    *在左边空白处，直接右键 -- New -- Java Project\\n\\n    键入项目名称后直接 Finish。\\n  b: 所有的 java 文件必须写到 src 下面才有效\\n  c: 创建一个包\\n    cn.lruihao\\n  d: 在包下创建一个类\\n    HelloWorld\\n\\n    同时让它帮我们写好了 main 方法。\\n  e: 在 main 方法中写内容即可\\n  f: 编译程序\\n    自动编译，在保存的那一刻帮你做好了\\n  g: 运行程序\\n    选择要运行的文件或者在要运行的文件内容中\\n    右键 -- Run as - Java Application 即可\\n  h: 内容显示\\n    在 Console 控制台显示内容\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-的基本设置\\\"\\u003e\\u003cspan\\u003e10 Eclipse 的基本设置\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\\nB: 去掉默认注释（可以不用改）\\nC: 行号的显示和隐藏\\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\\n  隐藏：把上面的动作再做一次。\\nD: 字体大小及颜色\\n  a:Java 代码区域的字体大小和颜色：\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\\n  b: 控制台\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\\n  c: 其他文件\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\\nE: 窗体给弄乱了，怎么办\\n  window -- Reset Perspective\\nF: 控制台找不到了\\n  Window--Show View—Console\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快捷键的使用\\\"\\u003e\\u003cspan\\u003e11 快捷键的使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 内容辅助键\\n  Alt+/ 起提示作用\\n  main+alt+/,syso+alt+/, 给出其他提示\\nB: 快捷键\\n  格式化  ctrl+shift+f\\n  导入包  ctrl+shift+o\\n  注释  ctrl+/\\n    ctrl+shift+/,ctrl+shift+\\\\\\n  代码上下移动 选中代码 alt+上/下箭头\\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-中如何提高开发效率\\\"\\u003e\\u003cspan\\u003e12 Eclipse 中如何提高开发效率\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 自动生成构造方法\\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\\nB: 自动生成 get/set 方法\\n  在代码区域右键--source--Generate Getters and Setters...\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"匿名类在可视化界面中的应用\",\"date_published\":\"2019-03-15T22:31:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qframe/\",\"url\":\"https://lruihao.cn/posts/qframe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"Java\"],\"summary\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ejava 中匿名类用的最多的地方就是可视化界面设计中，特别是将\\u003ccode\\u003e事件监听器\\u003c/code\\u003e注册到某个组件上的时候。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模仿知乎卡片式链接\",\"date_published\":\"2019-03-15T15:21:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linkcard/\",\"url\":\"https://lruihao.cn/posts/linkcard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"QQ 强制生成卡片式链接\",\"date_published\":\"2019-03-08T16:52:13&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qqxml/\",\"url\":\"https://lruihao.cn/posts/qqxml/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\u003cbr\\u003e\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \\u003ccode\\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\\u003c/code\\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"磁盘存储器的管理\",\"date_published\":\"2019-03-04T23:08:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cipanadmin/\",\"url\":\"https://lruihao.cn/posts/cipanadmin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"OS\",\"磁盘\"],\"summary\":\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"外存的组织方式\\\"\\u003e\\u003cspan\\u003e1 外存的组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"连续组织方式\\\"\\u003e\\u003cspan\\u003e1.1 连续组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e连续组织方式的优点\\u003c/p\\u003e\"},{\"title\":\"JS 验证码\",\"date_published\":\"2019-03-04T20:53:09&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-vcode/\",\"url\":\"https://lruihao.cn/posts/js-vcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 请点击验证码处：↑ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cstyle type=\\\"text/css\\\"\\u003e\\n\\n# code{  \\n\\n  font-family:Arial;  \\n  font-style:italic;  \\n  font-weight:bold;  \\n  border:2px solid #ddd;\\n  letter-spacing:9px;  \\n  color:blue;\\n  font-size: 15px;\\n}\\n\\u003c/style\\u003e\\n\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n    //设置一个全局的变量，便于保存验证码\\n    var code;\\n    function createCode(){\\n        //首先默认 code 为空字符串\\n        code = '';\\n        //设置长度，这里看需求，我这里设置了 4\\n        var codeLength = 4;\\n        var codeV = document.getElementById('code');\\n        //设置随机字符\\n        var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\\n        //循环 codeLength 我设置的 4 就是循环 4 次\\n        for(var i = 0; i \\u003c codeLength; i++){\\n            //设置随机数范围，这设置为 0 ~ 36\\n             var index = Math.floor(Math.random()*35);\\n             //字符串拼接 将每次随机的字符 进行拼接\\n             code += random[index];\\n        }\\n        //将拼接好的字符串赋值给展示的 Value\\n        codeV.value = code;\\n    }\\n\\n    //下面就是判断是否== 的代码，无需解释\\n    function validate(){\\n        var Input = document.getElementById('input');\\n        var oValue = Input.value.toUpperCase();\\n        if(oValue ==0){\\n            alert('请输入验证码');\\n        }else if(oValue != code){\\n            Input.value = '';\\n            alert('验证码不正确，请重新输入');\\n            createCode();\\n        }else{\\n            Input.value = '';\\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\\n        }\\n    }\\n\\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\\n    window.onload = function (){\\n\\n        createCode();\\n    }\\n\\u003c/script\\u003e\\n\\u003cdiv align=\\\"center\\\"\\u003e  \\n    \\u003cinput type = \\\"text\\\" id = \\\"input\\\" value=\\\"\\\" /\\u003e \\u003cinput type = \\\"button\\\" id=\\\"code\\\" onclick=\\\"createCode()\\\"/\\u003e \\u003cinput class=\\\"btn\\\" type = \\\"button\\\" value = \\\"验证\\\" onclick = \\\"validate()\\\"/\\u003e\\n    \\u003cbr/\\u003e请点击验证码处：↑\\n\\u003c/div\\u003e\"},{\"title\":\"还乡\",\"date_published\":\"2019-02-01T20:44:40&#43;08:00\",\"date_modified\":\"2019-02-01T20:44:40&#43;08:00\",\"id\":\"https://lruihao.cn/posts/renative/\",\"url\":\"https://lruihao.cn/posts/renative/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\",\"他山之石\"],\"summary\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Elegant and powerful theme for Hexo.\",\"date_published\":\"2019-01-31T09:57:45Z\",\"date_modified\":\"2023-12-21T02:39:42Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"url\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"hexo-theme-next 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib资源已打包github。\\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，修改内容以博採眾長为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\n\",\"content_html\":\"\\u003ch1 align=center\\u003ehexo-theme-next\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对next的主题的自定义修改\\u003c/strong\\u003e，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib资源已打包github。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于\\u003ca href=\\\"https://github.com/theme-next/hexo-theme-next\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next 6.0+\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; \\u003ca href=\\\"https://theme-next.org\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://theme-next.org\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e \\u003cbr\\u003e\\n记录一下折腾过程，修改内容以\\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见\\u003ca href=\\\"https://lruihao.cn/categories/hexo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo分类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\n\\u003cstrong\\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 继承 test\",\"date_published\":\"2019-01-24T15:07:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jicheng/\",\"url\":\"https://lruihao.cn/posts/jicheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 引用 继承的好处：\\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\\n设计原则：低耦合，高内聚。\\n耦合：类与类的关系。 内聚：自己完成事情的能力。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e引用\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e继承的好处：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e提高了代码的复用性\\u003c/li\\u003e\\n\\u003cli\\u003e提高了代码的维护性\\u003c/li\\u003e\\n\\u003cli\\u003e让类与类之间产生了关系，是多态的前提\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e继承的弊端：类的耦合性很强\\u003c/p\\u003e\\n\\u003cp\\u003e设计原则：低耦合，高内聚。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e耦合：类与类的关系。\\u003c/li\\u003e\\n\\u003cli\\u003e内聚：自己完成事情的能力。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"date_published\":\"2019-01-16T17:50:52&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/recent-posts/\",\"url\":\"https://lruihao.cn/posts/recent-posts/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 首先在主题配置文件添加以下关键字\\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e首先在主题配置文件添加以下关键字\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003erecent_posts:\\n  enable: true\\n  search: true\\n  post: false\\n  sidebar: false\\n  icon: history\\n  title: 近期文章\\n  layout: block\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"侧栏\\\"\\u003e\\u003cspan\\u003e9 侧栏\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%a7%e6%a0%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 \\u003ccode\\u003enext/layout/_macro/sidebar.swig\\u003c/code\\u003e 中的 \\u003ccode\\u003eif theme.links\\u003c/code\\u003e 对应的 \\u003ccode\\u003eendif\\u003c/code\\u003e 后面。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\\n  \\u003cdiv class=\\\"links-of-blogroll motion-element {{ \\\"links-of-blogroll-\\\" + theme.recent_posts.layout  }}\\\"\\u003e\\n   \\u003cdiv class=\\\"links-of-blogroll-title\\\"\\u003e\\n     \\u003ci class=\\\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\n     {{ theme.recent_posts.title }}\\n   \\u003c/div\\u003e\\n   \\u003cul class=\\\"links-of-blogroll-list\\\"\\u003e\\n     {% set posts = site.posts.sort('-date') %}\\n     {% for post in posts.slice('0', '3') %}\\n       \\u003cli\\u003e\\n         \\u003ca href=\\\"{{ url_for(post.path) }}\\\" title=\\\"{{ post.title }}\\\" target=\\\"_blank\\\"\\u003e{{ post.title }}\\u003c/a\\u003e\\n       \\u003c/li\\u003e\\n     {% endfor %}\\n   \\u003c/ul\\u003e\\n \\u003c/div\\u003e\\n{% endif %}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"搜索结果处添加\\\"\\u003e\\u003cspan\\u003e10 搜索结果处添加\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e找到路径\\u003ccode\\u003eH:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials\\\\search\\u003c/code\\u003e下\\u003ccode\\u003elocalsearch.swig\\u003c/code\\u003e文件\\u003cbr\\u003e\\n把\\u003ccode\\u003e\\u0026lt;div id=\\u0026quot;local-search-result\\u0026quot;\\u0026gt;\\u0026lt;/div\\u0026gt;\\u003c/code\\u003e修改成以下内容（这里显示 15 篇）\\u003c/p\\u003e\"},{\"title\":\"java 猜数字小游戏（Math 类）\",\"date_published\":\"2019-01-15T17:33:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mathclass/\",\"url\":\"https://lruihao.cn/posts/mathclass/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 大一刚学 c 的时候以前写过 c 语言版 的。\\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大一刚学 c 的时候以前写过 \\u003ca href=\\\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ec 语言版\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMath: 针对数学进行运算的类\\u003c/li\\u003e\\n\\u003cli\\u003e特点：没有构造方法，因为它的成员都是静态的\\u003c/li\\u003e\\n\\u003cli\\u003e产生随机数：\\npublic static double random(): 产生随机数，范围 [0.0,1.0)\\u003c/li\\u003e\\n\\u003cli\\u003e产生 1-100 之间的随机数\\nint number = (int)(Math.random()*100)+1;\\u003c/li\\u003e\\n\\u003cli\\u003e猜数字小游戏案例\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"面向对象基础知识总结\",\"date_published\":\"2019-01-15T16:07:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/duixiang/\",\"url\":\"https://lruihao.cn/posts/duixiang/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面向对象\",\"Java\"],\"summary\":\"35 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\\nA: 是一种更符合我们思考习惯的思想\\nB: 把复杂的问题简单化\\nC: 让我们从执行者变成了指挥者 举例：\\nA: 洗衣服\\nB: 吃饭\\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\\n学生 类\\n张三 对象 37 类的组成（掌握） 成员变量\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\\n其实就是方法，只不过不需要 static 了 案例：\\n学生类 class Student { String name; int age; public void study() {} }38 类的使用（掌握） 创建对象\\n格式：类名 对象名 = new 类名 (); 使用成员\\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); 39 成员变量和局部变量的区别（理解） 在类中的位置不同\\nA: 成员变量 类中，方法外\\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\\nA: 成员变量 在堆中\\nB: 局部变量 在栈中 生命周期不同\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\\nA: 成员变量 有默认初始化值\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 40 形式参数问题（理解） 基本类型\\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 41 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\\nA: 调用方法，仅仅只调用一次\\nB: 作为实际参数传递 42 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\\nA: 隐藏实现细节，提供公共的访问方式\\nB: 提高了代码的复用性\\nC: 提高了代码的安全性 使用原则\\nA: 把成员变量隐藏\\nB: 给出该成员变量对应的公共访问方式 43 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字（掌握） this：代表本类的对象 应用场景：\\n解决了局部变量隐藏成员变量的问题。\\n其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } public void study() { System.out.println(\\\"学生爱学习\\\"); } public void eat() { System.out.println(\\\"学生要吃饭\\\"); } public void sleep() { System.out.println(\\\"学生想睡觉\\\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\\"姓名是：\\\"+s.getName()); System.out.println(\\\"年龄是：\\\"+s.getAge()); } }45 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\\nA: 方法名和类名相同\\nB: 没有返回值类型\\nC: 没有返回值 注意事项\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\\nA: 无参+setXxx()\\nB: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\\\"张曼玉\\\",20); ss.show(); } }46 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\\nA: 加载 Student.class 文件进内存\\nB: 在栈中为 s 开辟空间\\nC: 在堆中为学生对象开辟空间\\nD: 为学生对象的成员变量赋默认值\\nE: 为学生对象的成员变量赋显示值\\nF: 通过构造方法给成员变量赋值\\nG: 对象构造完毕，把地址赋值给 s 变量 47 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\\nA: 随着类的加载而加载\\nB: 优先于对象存在\\nC: 被所有对象共享\\n这也是判断我们是不是该使用静态的条件\\n举例：饮水机（可共享 static) 和水杯例子。\\nD: 可以通过类名调用\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\\nA: 普通成员方法\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\nB: 静态成员方法\\n只能访问静态成员变量，静态成员方法\\n简记：静态只能访问静态\\n注意：\\n静态中是不能有 this 的。\\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\"); s1.show(); /* Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\"); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\"); s3.show(); */ Student s2 = new Student(\\\"马云\\\",35); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33); s3.show(); } }/* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\\"show\\\"); } public static void show2() { System.out.println(\\\"show2\\\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026ensp; } }/* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\\"林青霞\\\"); } }48 静态成员变量和普通成员变量的区别（理解） 所属不同\\n静态属于类的，称为类变量\\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\\n静态在方法区的静态区\\n非静态在堆内存 生命周期不同\\n静态随着类的加载而加载，随着类的消失而消失\\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\n非静态只能通过对象名调用 49 main 方法是静态的（理解） public static void main(String[] args)public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\nString[] args:\\n早期出现是为了接收键盘录入数据的。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"面向对象思想理解\\\"\\u003e\\u003cspan\\u003e35 面向对象思想（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e面向对象是基于面向过程的一种编程思想\\u003c/li\\u003e\\n\\u003cli\\u003e思想特点：\\u003cbr\\u003e\\nA: 是一种更符合我们思考习惯的思想\\u003cbr\\u003e\\nB: 把复杂的问题简单化\\u003cbr\\u003e\\nC: 让我们从执行者变成了指挥者\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\nA: 洗衣服\\u003cbr\\u003e\\nB: 吃饭\\u003cbr\\u003e\\nC: 买电脑\\u003c/li\\u003e\\n\\u003cli\\u003e举例并代码体现\\n把大象装进冰箱\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类与对象掌握\\\"\\u003e\\u003cspan\\u003e36 类与对象（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\\u003c/li\\u003e\\n\\u003cli\\u003e现实世界事物是如何表达的呢？\\n属性：外在特征\\u003cbr\\u003e\\n行为：内在行为\\u003c/li\\u003e\\n\\u003cli\\u003e我们学习的是 java 语言，它最基本的单位是类。\\u003cbr\\u003e\\n所以我们要学会用类来体现一个事物。\\u003c/li\\u003e\\n\\u003cli\\u003e类：是一组相关的属性和行为的集合\\u003c/li\\u003e\\n\\u003cli\\u003e对象：是该类事物的具体个体。\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\n学生 类\\u003cbr\\u003e\\n张三 对象\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的组成掌握\\\"\\u003e\\u003cspan\\u003e37 类的组成（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e成员变量\\u003cbr\\u003e\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e成员方法\\u003cbr\\u003e\\n其实就是方法，只不过不需要 static 了\\u003c/li\\u003e\\n\\u003cli\\u003e案例：\\u003cbr\\u003e\\n学生类\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  String name;\\n  int age;\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的使用掌握\\\"\\u003e\\u003cspan\\u003e38 类的使用（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e创建对象\\u003cbr\\u003e\\n格式：类名 对象名 = new 类名 ();\\u003c/li\\u003e\\n\\u003cli\\u003e使用成员\\u003cbr\\u003e\\n成员变量：对象名。变量名；\\n成员方法：对象名。方法名 (\\u0026hellip;);\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"成员变量和局部变量的区别理解\\\"\\u003e\\u003cspan\\u003e39 成员变量和局部变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e在类中的位置不同\\u003cbr\\u003e\\nA: 成员变量 类中，方法外\\u003cbr\\u003e\\nB: 局部变量 方法的形式参数，或者方法体中\\u003c/li\\u003e\\n\\u003cli\\u003e在内存中的位置不同\\u003cbr\\u003e\\nA: 成员变量 在堆中\\u003cbr\\u003e\\nB: 局部变量 在栈中\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\u003cbr\\u003e\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\\u003c/li\\u003e\\n\\u003cli\\u003e初始化值不同\\u003cbr\\u003e\\nA: 成员变量 有默认初始化值\\u003cbr\\u003e\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"形式参数问题理解\\\"\\u003e\\u003cspan\\u003e40 形式参数问题（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e基本类型\\u003cbr\\u003e\\n基本类型作为形式参数，需要的是该基本类型的值。\\u003c/li\\u003e\\n\\u003cli\\u003e引用类型\\u003cbr\\u003e\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"匿名对象理解\\\"\\u003e\\u003cspan\\u003e41 匿名对象（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e匿名对象：没有名字的对象。是对象的简化书写方式。\\u003c/li\\u003e\\n\\u003cli\\u003e使用场景\\u003cbr\\u003e\\nA: 调用方法，仅仅只调用一次\\u003cbr\\u003e\\nB: 作为实际参数传递\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"封装掌握\\\"\\u003e\\u003cspan\\u003e42 封装（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e隐藏实现细节，提供公共的访问方式\\u003c/li\\u003e\\n\\u003cli\\u003e好处：\\u003cbr\\u003e\\nA: 隐藏实现细节，提供公共的访问方式\\u003cbr\\u003e\\nB: 提高了代码的复用性\\u003cbr\\u003e\\nC: 提高了代码的安全性\\u003c/li\\u003e\\n\\u003cli\\u003e使用原则\\u003cbr\\u003e\\nA: 把成员变量隐藏\\u003cbr\\u003e\\nB: 给出该成员变量对应的公共访问方式\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"private-关键字掌握\\\"\\u003e\\u003cspan\\u003e43 private 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个权限修饰符\\u003c/li\\u003e\\n\\u003cli\\u003e可以修饰类的成员（成员变量和成员方法）\\u003c/li\\u003e\\n\\u003cli\\u003e仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  private String name;\\n  private int age;\\n\\n  public void setName(String n) {\\n   name = n;\\n  }\\n\\n  public String getName() {\\n   return name;\\n  }\\n\\n  public void setAge(int a) {\\n   age = a;\\n  }\\n\\n  public int getAge() {\\n   return age;\\n  }\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"this-关键字掌握\\\"\\u003e\\u003cspan\\u003e44 this 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003ethis：代表本类的对象\\u003c/li\\u003e\\n\\u003cli\\u003e应用场景：\\u003cbr\\u003e\\n解决了局部变量隐藏成员变量的问题。\\u003cbr\\u003e\\n其他用法和 super 一起讲。\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public void setName(String name) {//局部变量\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n\\n    public void study() {\\n      System.out.println(\\\"学生爱学习\\\");\\n    }\\n\\n    public void eat() {\\n      System.out.println(\\\"学生要吃饭\\\");\\n    }\\n\\n    public void sleep() {\\n      System.out.println(\\\"学生想睡觉\\\");\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      Student s = new Student();\\n\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n\\n      s.show();\\n      s.study();\\n      s.eat();\\n      s.sleep();\\n\\n      System.out.println(\\\"姓名是：\\\"+s.getName());\\n      System.out.println(\\\"年龄是：\\\"+s.getAge());\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"构造方法掌握\\\"\\u003e\\u003cspan\\u003e45 构造方法（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e作用：对对象的数据进行初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\nA: 方法名和类名相同\\u003cbr\\u003e\\nB: 没有返回值类型\\u003cbr\\u003e\\nC: 没有返回值\\u003c/li\\u003e\\n\\u003cli\\u003e注意事项\\u003cbr\\u003e\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\u003cbr\\u003e\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\u003cbr\\u003e\\n建议：我们自己手动给出无参构造方法\\u003c/li\\u003e\\n\\u003cli\\u003e给成员变量赋值：\\u003cbr\\u003e\\nA: 无参+setXxx()\\u003cbr\\u003e\\nB: 带参\\u003c/li\\u003e\\n\\u003cli\\u003e一个标准的代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public Student() {}\\n\\n    public Student(String name,int age) {//构造方法\\n      this.name = name;\\n      this.age = age;\\n    }\\n\\n    public void setName(String name) {\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      //无参+setXxx()\\n      Student s = new Student();\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n      s.show();\\n\\n      //带参\\n      Student ss = new Student(\\\"张曼玉\\\",20);\\n      ss.show();\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"对象的初始化过程理解\\\"\\u003e\\u003cspan\\u003e46 对象的初始化过程（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eStudent s = new Student(); 做了哪些事情\\u003cbr\\u003e\\nA: 加载 Student.class 文件进内存\\u003cbr\\u003e\\nB: 在栈中为 s 开辟空间\\u003cbr\\u003e\\nC: 在堆中为学生对象开辟空间\\u003cbr\\u003e\\nD: 为学生对象的成员变量赋默认值\\u003cbr\\u003e\\nE: 为学生对象的成员变量赋显示值\\u003cbr\\u003e\\nF: 通过构造方法给成员变量赋值\\u003cbr\\u003e\\nG: 对象构造完毕，把地址赋值给 s 变量\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"static-关键字掌握\\\"\\u003e\\u003cspan\\u003e47 static 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个状态修饰符。静态的意思\\u003c/li\\u003e\\n\\u003cli\\u003e它可以修饰成员变量和成员方法\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\n\\u003cstrong\\u003eA: 随着类的加载而加载\\u003cbr\\u003e\\nB: 优先于对象存在\\u003cbr\\u003e\\nC: 被所有对象共享\\u003c/strong\\u003e\\u003cbr\\u003e\\n这也是判断我们是不是该使用静态的条件\\u003cbr\\u003e\\n举例：饮水机（可共享 static) 和水杯例子。\\u003cbr\\u003e\\nD: 可以通过类名调用\\u003cbr\\u003e\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用\\u003c/li\\u003e\\n\\u003cli\\u003e方法访问特点\\u003cbr\\u003e\\nA: 普通成员方法\\u003cbr\\u003e\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\u003cbr\\u003e\\nB: 静态成员方法\\u003cbr\\u003e\\n\\u003cstrong\\u003e只能访问静态成员变量，静态成员方法\\u003cbr\\u003e\\n简记：静态只能访问静态\\u003c/strong\\u003e\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n\\u003cstrong\\u003e静态中是不能有 this 的。\\u003cbr\\u003e\\n先进内存的不能访问后进内存的。反之可以。\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\\n *\\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\\n */\\nclass Student {\\n  //姓名\\n  String name;\\n  //年龄\\n  int age;\\n  //班级编号\\n  //String classNumber;\\n  static String classNumber;\\n\\n  public Student(String name,int age) {\\n    this.name = name;\\n    this.age = age;\\n  }\\n\\n  public Student(String name,int age,String classNumber) {\\n    this.name = name;\\n    this.age = age;\\n    this.classNumber = classNumber;\\n  }\\n\\n  public void show() {\\n    System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber);\\n  }\\n}\\n\\nclass StudentDemo {\\n  public static void main(String[] args) {\\n    //创建学生对象\\n    Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\");\\n    s1.show();\\n\\n    /*\\n    Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\");\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\");\\n    s3.show();\\n    */\\n    Student s2 = new Student(\\\"马云\\\",35);\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33);\\n    s3.show();\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static: 静态关键字。\\n\\n  作用：\\n    可以修饰成员变量和成员方法\\n\\n  特点：\\n    A: 随着类的加载而加载\\n    B: 优先于对象存在\\n    C: 被类的所有对象共享\\n      这也是我们判断是否使用静态关键字的条件\\n\\n      饮水机：可以被静态修饰\\n      水杯：不可以被静态修饰\\n    D: 可以通过类名调用\\n      我们的调用既可以是对象，还可以是类名\\n*/\\nclass Student {\\n  public void show() {\\n    System.out.println(\\\"show\\\");\\n  }\\n\\n  public static void show2() {\\n    System.out.println(\\\"show2\\\");\\n  }\\n}\\n\\nclass StudentDemo2 {\\n  public static void main(String[] args) {\\n    Student s = new Student();\\n    s.show();\\n    s.show2();\\n\\n    Student.show2();\\n    //Student.show();\\u0026ensp;\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static 的注意事项：\\n    A: 在静态方法中是没有 this 关键字的\\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\\n    B: 静态只能访问静态。\\n      非静态的成员方法：\\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\n      静态的成员方法：\\n        只能访问静态的成员变量，静态的成员方法\\n*/\\n/*\\nclass Student {\\n  private String name;\\n\\n  public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this\\n    this.name = name;\\n  }\\n\\n  public void show() {\\n    System.out.println(name);\\n  }\\n}*/\\n\\nclass Demo {\\n  int x = 10;\\n  static int y = 20;\\n\\n  public void show() {\\n    System.out.println(x);\\n    System.out.println(y);\\n  }\\n\\n  public static void show2() {\\n    //System.out.println(x);\\u0026ensp;\\n    System.out.println(y);//√\\n  }\\n\\n  public void show3() {\\n    show();\\n    show2();\\n  }\\n\\n  public static void show4() {\\n    //show(); 只能访问静态的成员方法\\n    show2();\\n  }\\n}\\n\\nclass StudentDemo3 {\\n  public static void main(String[] args) {\\n    //Student.setName(\\\"林青霞\\\");\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"静态成员变量和普通成员变量的区别理解\\\"\\u003e\\u003cspan\\u003e48 静态成员变量和普通成员变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e所属不同\\u003cbr\\u003e\\n静态属于类的，称为类变量\\u003cbr\\u003e\\n非静态属于对象的，称为对象变量，实例变量\\u003c/li\\u003e\\n\\u003cli\\u003e内存空间不同\\u003cbr\\u003e\\n静态在方法区的静态区\\u003cbr\\u003e\\n非静态在堆内存\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\n静态随着类的加载而加载，随着类的消失而消失\\u003cbr\\u003e\\n非静态随着对象的创建而存在，随着对象的消失而消失\\u003c/li\\u003e\\n\\u003cli\\u003e调用不同\\u003cbr\\u003e\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\u003cbr\\u003e\\n非静态只能通过对象名调用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"main-方法是静态的理解\\\"\\u003e\\u003cspan\\u003e49 main 方法是静态的（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epublic static void main(String[] args)\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003epublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\u003cbr\\u003e\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\u003cbr\\u003e\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\u003cbr\\u003e\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\u003cbr\\u003e\\nString[] args:\\u003cbr\\u003e\\n早期出现是为了接收键盘录入数据的。\\u003c/p\\u003e\"},{\"title\":\"java 水仙花数（循环）\",\"date_published\":\"2019-01-14T17:30:24&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-range/\",\"url\":\"https://lruihao.cn/posts/java-range/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"水仙花数\",\"Java\"],\"summary\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1\\u003csup\\u003e3 + 5\\u003c/sup\\u003e3+ 3^3 = 153）。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 录入数据\",\"date_published\":\"2019-01-14T15:33:46&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-input/\",\"url\":\"https://lruihao.cn/posts/java-input/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"5 记忆格式 (1) 导包：\\nimport java.util.Scanner;\\n注意：位置在 class 的上面。\\n(2) 创建键盘录入对象：\\nScanner sc = new Scanner(System.in);\\n(3) 获取数据\\nint i = sc.nextInt();\\n(4) 练习：\\nA: 求两个数据的和\\nB: 获取两个数据中较大的值\\nC: 获取三个数据中较大的值\\nD: 比较两个数是否相等\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"记忆格式\\\"\\u003e\\u003cspan\\u003e5 记忆格式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e(1) 导包：\\u003cbr\\u003e\\nimport java.util.Scanner;\\u003cbr\\u003e\\n注意：位置在 class 的上面。\\u003cbr\\u003e\\n(2) 创建键盘录入对象：\\u003cbr\\u003e\\nScanner sc = new Scanner(System.in);\\u003cbr\\u003e\\n(3) 获取数据\\u003cbr\\u003e\\nint i = sc.nextInt();\\u003cbr\\u003e\\n(4) 练习：\\u003cbr\\u003e\\nA: 求两个数据的和\\u003cbr\\u003e\\nB: 获取两个数据中较大的值\\u003cbr\\u003e\\nC: 获取三个数据中较大的值\\u003cbr\\u003e\\nD: 比较两个数是否相等\\u003c/p\\u003e\"},{\"title\":\"java 标识符\",\"date_published\":\"2019-01-14T15:07:57&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/biaoshi/\",\"url\":\"https://lruihao.cn/posts/biaoshi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"1 标识符 给类，接口，方法或者变量起名字的符号\\n2 组成规则 A: 英文字母大小写\\nB: 数字\\nC:_和$\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"标识符\\\"\\u003e\\u003cspan\\u003e1 标识符\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%87%e8%af%86%e7%ac%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给类，接口，方法或者变量起名字的符号\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"组成规则\\\"\\u003e\\u003cspan\\u003e2 组成规则\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA: 英文字母大小写\\u003cbr\\u003e\\nB: 数字\\u003cbr\\u003e\\nC:_和$\\u003c/p\\u003e\"},{\"title\":\"英语语法--主谓一致\",\"date_published\":\"2019-01-12T13:02:49&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subject-verb/\",\"url\":\"https://lruihao.cn/posts/subject-verb/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常见情况\\\"\\u003e\\u003cspan\\u003e1 常见情况\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\\\"\\u003e\\u003cspan\\u003e1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003eEnglish \\u003cu\\u003eand\\u003c/u\\u003e chinese are two quite different languages.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eBoth\\u003c/u\\u003e brother \\u003cu\\u003eand\\u003c/u\\u003e sister tire of city life.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eNo\\u003c/u\\u003e desk \\u003cu\\u003eand\\u003c/u\\u003e (no) chair is seen in the hall.\\u003c/li\\u003e\\n\\u003cli\\u003eAll work \\u003cu\\u003eand\\u003c/u\\u003e \\u003cu\\u003eno\\u003c/u\\u003e play makes Jack a dull boy.\\u003c/li\\u003e\\n\\u003cli\\u003eThey each have been to the Forbidden city.\\neach 位于主语后，所以谓语动词用复数\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\u003c/p\\u003e\"},{\"title\":\"英语语法--形式倒装\",\"date_published\":\"2018-12-10T21:52:30&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-3/\",\"url\":\"https://lruihao.cn/posts/inversion-3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 形式倒装，句子本不是本来的语序。\\n0.1 may 位于句首，标祝愿 例句\\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e形式倒装，句子本不是本来的语序。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"may-位于句首标祝愿\\\"\\u003e\\u003cspan\\u003e0.1 may 位于句首，标祝愿\\u003c/span\\u003e\\n  \\u003ca href=\\\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMay you succeed.\\u003c/li\\u003e\\n\\u003cli\\u003eMay you have a happy holiday.\\u003c/li\\u003e\\n\\u003cli\\u003eLong live chairman Mao.（毛主席万古长青）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\\\"\\u003e\\u003cspan\\u003e0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前\\u003c/span\\u003e\\n  \\u003ca href=\\\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\"},{\"title\":\"英语语法--完全倒装\",\"date_published\":\"2018-12-10T21:14:51&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-2/\",\"url\":\"https://lruihao.cn/posts/inversion-2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 完全倒装：把整个谓语动词放到主语前。\\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e完全倒装：把整个谓语动词放到主语前。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"表方位或时间的副词-adv表地点的介词短语位于句首时\\\"\\u003e\\u003cspan\\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eHere comes the bus.\\u003c/li\\u003e\\n\\u003cli\\u003eIn the lecture hall of a university sits a professor.\\u003c/li\\u003e\\n\\u003cli\\u003eOut rushed the children.\\u003c/li\\u003e\\n\\u003cli\\u003eNow comes your turn.\\u003c/li\\u003e\\n\\u003cli\\u003eUp jumped the cat and caught the mouse.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eDown\\u003c/u\\u003e came the rain and \\u003cu\\u003eup\\u003c/u\\u003e went the umbrellas.\\u003c/li\\u003e\\n\\u003cli\\u003eAmong the people stood his friend,Jim.\\u003c/li\\u003e\\n\\u003cli\\u003e(To be) South of the river lies a small factory.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e但主语为表示人称的代词时无需倒装\\u003c/p\\u003e\"},{\"title\":\"英语语法--部分倒装\",\"date_published\":\"2018-12-08T17:52:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-1/\",\"url\":\"https://lruihao.cn/posts/inversion-1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。\\u003cstrong\\u003e以下内容纯手打！！\\u003c/strong\\u003e\\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 插件及 next 内置样式集\",\"date_published\":\"2018-11-24T16:54:09&#43;08:00\",\"date_modified\":\"2021-10-02T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nextplugin/\",\"url\":\"https://lruihao.cn/posts/nextplugin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 2021/10/2 更新\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/2 更新\\u003cbr\\u003e\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\u003cbr\\u003e\\n让文章写的好看又简洁又好用的插件！\\u003ca href=\\\"https://hexo.io/zh-cn/docs/tag-plugins.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 完整的标签列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://theme-next.org/docs/tag-plugins/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 插件列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"date_published\":\"2018-11-17T14:25:49&#43;08:00\",\"date_modified\":\"2018-11-17T14:25:49&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-bat/\",\"url\":\"https://lruihao.cn/posts/commit-bat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"bat\"],\"summary\":\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\ngit add * （添加需要提交的文件，这里全选） git commit -m \\u0026ldquo;提交信息\\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003egit add * （添加需要提交的文件，这里全选）\\u003c/li\\u003e\\n\\u003cli\\u003egit commit -m \\u0026ldquo;提交信息\\u0026rdquo;\\u003c/li\\u003e\\n\\u003cli\\u003egit push\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博採眾長 app\",\"date_published\":\"2018-11-12T16:04:04&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fas-app/\",\"url\":\"https://lruihao.cn/posts/fas-app/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"lua\",\"fusion\"],\"summary\":\"0.7 介绍 使用 fusion app 对网页进行的封装。\\n功能：\\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"介绍\\\"\\u003e\\u003cspan\\u003e0.7 介绍\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bb%8b%e7%bb%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e使用 fusion app 对网页进行的封装。\\u003cbr\\u003e\\n功能：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e浏览本博客，主页\\u003c/li\\u003e\\n\\u003cli\\u003e私人网盘\\u003c/li\\u003e\\n\\u003cli\\u003e2048 等小游戏\\u003c/li\\u003e\\n\\u003cli\\u003e在线客服，QQ 等\\u003c/li\\u003e\\n\\u003cli\\u003epc 与移动浏览器标识切换\\u003c/li\\u003e\\n\\u003cli\\u003e留言，打赏，博主日志等\\u003c/li\\u003e\\n\\u003cli\\u003e分享功能，分享到 QQ，微信，浏览器打开等\\u003c/li\\u003e\\n\\u003cli\\u003eapp 内添加书签，自动记录历史记录，刷新等\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e配合博客的\\u003ccode\\u003ePWA + quicklink\\u003c/code\\u003e功能可实现离线浏览\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"},{\"title\":\"next 添加支持 pdf\",\"date_published\":\"2018-11-09T12:51:48&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/next-pdf/\",\"url\":\"https://lruihao.cn/posts/next-pdf/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\n7 iframe(推荐) 8 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e最新的 next 主题已经更新了支持 PDF 功能，\\u003cdel\\u003e写法也和链接写法一样\\u003c/del\\u003e，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"iframe推荐\\\"\\u003e\\u003cspan\\u003e7 iframe(推荐)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#iframe%e6%8e%a8%e8%8d%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003ciframe src=\\\"/posts/next-pdf/1.pdf\\\" style=\\\"width: 100%;height: 800px;\\\"\\u003e\\u003c/iframe\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"模板自带\\\"\\u003e\\u003cspan\\u003e8 模板自带\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\u003c/p\\u003e\"},{\"title\":\"js 判断用户设备类型及平台\",\"date_published\":\"2018-11-03T23:35:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-device/\",\"url\":\"https://lruihao.cn/posts/js-device/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"他山之石\"],\"summary\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\n\",\"content_html\":\"\\u003cp\\u003e前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\u003c/p\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"Git 常用指令汇总\",\"date_published\":\"2018-10-30T08:59:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git/\",\"url\":\"https://lruihao.cn/posts/git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"image\":\"/posts/git/images/relation-1.png\",\"summary\":\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \",\"content_html\":\"\\u003cul\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e工作区\\u003c/strong\\u003e：就是你在电脑里能看到的目录。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e暂存区\\u003c/strong\\u003e：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e版本库\\u003c/strong\\u003e：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"网站备案之旅\",\"date_published\":\"2018-10-29T23:16:26&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beian/\",\"url\":\"https://lruihao.cn/posts/beian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\",\"网站备案\"],\"summary\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e备案\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\u003cbr\\u003e\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"shell 脚本初体验\",\"date_published\":\"2018-10-29T11:57:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/shell/\",\"url\":\"https://lruihao.cn/posts/shell/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"shell\",\"linux\"],\"summary\":\"今天上机学了几个小命令\\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\\n\",\"content_html\":\"\\u003cp\\u003e今天上机学了几个小命令\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eread\\u003c/li\\u003e\\n\\u003cli\\u003eecho\\u003c/li\\u003e\\n\\u003cli\\u003eif\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e然后自己写了一个小脚本觉得还挺有趣的\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"},{\"title\":\"windows 上搭建 web 服务器\",\"date_published\":\"2018-10-26T21:56:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-win/\",\"url\":\"https://lruihao.cn/posts/web-server-win/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"windows\"],\"summary\":\" 我用的 win10\\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我用的 win10\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开控制面板\\\"\\u003e\\u003cspan\\u003e0.1 打开控制面板\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\u003cbr\\u003e\\n\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/web-server-win/images/1.png\\\" title=\\\"打开控制面板\\\" data-thumbnail=\\\"/posts/web-server-win/images/1.png\\\" data-sub-html=\\\"\\u003ch2\\u003e打开控制面板\\u003c/h2\\u003e\\u003cp\\u003e打开控制面板\\u003c/p\\u003e\"},{\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"date_published\":\"2018-10-26T21:11:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gituse/\",\"url\":\"https://lruihao.cn/posts/gituse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"0.9 config git config --global user.name \\\"Your Name\\\" git config --global user.email \\\"email@example.com\\\" 第一次使用 git 的时候需要设置提交者信息。\\n注意：\\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"config\\\"\\u003e\\u003cspan\\u003e0.9 config\\u003c/span\\u003e\\n  \\u003ca href=\\\"#config\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003egit config --global user.name \\\"Your Name\\\"\\ngit config --global user.email \\\"email@example.com\\\"\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次使用 git 的时候需要设置提交者信息。\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n如果用了 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\u003cbr\\u003e\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项重新配置即可，新的设定保存在当前项目的 \\u003ccode\\u003e.git/config\\u003c/code\\u003e 文件里。\\u003c/p\\u003e\"},{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"ttf 字体压缩\",\"date_published\":\"2018-10-17T21:38:06&#43;08:00\",\"date_modified\":\"2024-08-16T16:43:36&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-font/\",\"url\":\"https://lruihao.cn/posts/web-font/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"字体压缩\"],\"summary\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\n\",\"content_html\":\"\\u003cp\\u003eHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\u003c/p\\u003e\"},{\"title\":\"linux 编程初体验\",\"date_published\":\"2018-10-15T21:19:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-hello-c/\",\"url\":\"https://lruihao.cn/posts/linux-hello-c/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"C\"],\"summary\":\" 在 Linux 上编译 c 语言文件。\\n0.7 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e在 Linux 上编译 c 语言文件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开-vim-编辑器\\\"\\u003e\\u003cspan\\u003e0.7 打开 vim 编辑器\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e（没有就用 vi, 或者先安装 vim\\u003ccode\\u003esudo apt-get install vim\\u003c/code\\u003e)\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evim\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"编辑文件\\\"\\u003e\\u003cspan\\u003e0.8 编辑文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e打开文件编辑器之后编辑文件\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" title=\\\"edit\\\" data-thumbnail=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" data-sub-html=\\\"\\u003ch2\\u003eedit\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\\\"edit\\\" height=\\\"725\\\" width=\\\"1191\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"沐目体\",\"date_published\":\"2018-10-12T19:39:19&#43;08:00\",\"date_modified\":\"2018-10-12T19:39:19&#43;08:00\",\"id\":\"https://lruihao.cn/projects/font-mmt/\",\"url\":\"https://lruihao.cn/projects/font-mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"沐目体\"],\"summary\":\" \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ciframe class=\\\"manuscript\\\" src=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026a=fontshowPics\\u0026u=qbfRl8gPF2s-\\u0026z=Kqz%2FRroVGYc-\\\" style=\\\"width: 100%;height: 370px;margin-top: .25rem;\\\" frameborder=\\\"0\\\" allowfullscreen\\u003e\\u003c/iframe\\u003e\"},{\"title\":\"流水线\",\"date_published\":\"2018-10-09T16:21:04&#43;08:00\",\"date_modified\":\"2018-10-09T16:21:04&#43;08:00\",\"id\":\"https://lruihao.cn/posts/liushuixian/\",\"url\":\"https://lruihao.cn/posts/liushuixian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"summary\":\"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"概念\\\"\\u003e\\u003cspan\\u003e15 概念\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a6%82%e5%bf%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\u003c/p\\u003e\"},{\"title\":\"计算机数据\",\"date_published\":\"2018-10-08T23:01:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/data/\",\"url\":\"https://lruihao.cn/posts/data/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"summary\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据的表示\\\"\\u003e\\u003cspan\\u003e0.1 数据的表示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e数据的表示可分为：原码，反码和补码。（二进制）\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e原码：符号位 0 为正，1 为负。\\u003c/li\\u003e\\n\\u003cli\\u003e反码：符号位 0 为正，1 为负。\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：反码同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e补码：\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反再 +1。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e移码：补码符号位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据表示范围\\\"\\u003e\\u003cspan\\u003e0.2 数据表示范围\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e原码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e反码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e补码： \\u003ccode\\u003e-z^n-1 ~ 2^n-1 - 1\\u003c/code\\u003e （补码正 0 和负 0 相同，少占一数位，就多一个范围）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e例：\\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\u003c/p\\u003e\"},{\"title\":\"网页夜间效果\",\"date_published\":\"2018-09-27T13:13:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/night/\",\"url\":\"https://lruihao.cn/posts/night/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。\\u003ccode\\u003ecss+js\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"date_published\":\"2018-09-26T16:36:08&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/crash-cheat/\",\"url\":\"https://lruihao.cn/posts/crash-cheat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"linux/centos 下的安装 git\",\"date_published\":\"2018-09-22T22:28:45&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-git/\",\"url\":\"https://lruihao.cn/posts/linux-git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"linux\"],\"summary\":\"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注： unzip 命令用不了，具体步骤如下：\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"下载-git\\\"\\u003e\\u003cspan\\u003e0.11 下载 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%8b%e8%bd%bd-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003ewget https://github.com/git/git/archive/v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装依赖\\\"\\u003e\\u003cspan\\u003e0.12 安装依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"解压-git\\\"\\u003e\\u003cspan\\u003e0.13 解压 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a7%a3%e5%8e%8b-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003eunzip v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注：\\nunzip 命令用不了，具体步骤如下：\\u003c/p\\u003e\"},{\"title\":\"每一个优秀的人，都有一段沉默的时光\",\"date_published\":\"2018-09-21T21:11:25&#43;08:00\",\"date_modified\":\"2018-09-21T21:11:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mood/\",\"url\":\"https://lruihao.cn/posts/mood/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"summary\":\" 手机便签里保存的一段话，也记不得在哪看到的了。\\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e手机便签里保存的一段话，也记不得在哪看到的了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\u003cbr\\u003e\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\u003c/p\\u003e\\n\\u003cp\\u003e人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\u003cbr\\u003e\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\u003c/p\\u003e\"},{\"title\":\"Vim 速查表\",\"date_published\":\"2018-08-31T11:46:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vim/\",\"url\":\"https://lruihao.cn/posts/vim/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vim\",\"他山之石\"],\"summary\":\"Vim 速查表 - 帮你提高 N 倍效率\\n\",\"content_html\":\"\\u003cp\\u003eVim 速查表 - 帮你提高 N 倍效率\\u003c/p\\u003e\"},{\"title\":\"hexo next 主题添加字数统计（2018）\",\"date_published\":\"2018-08-30T13:15:50&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"url\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"字数统计\"],\"summary\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition warning open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-exclamation-triangle\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e警告\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003e2018/11/1 说明\\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"hexo d 出错\",\"date_published\":\"2018-08-21T22:15:01&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-d-error/\",\"url\":\"https://lruihao.cn/posts/hexo-d-error/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\n现在做一下记录，防止以后出错用。\\n错误如下\\n\",\"content_html\":\"\\u003cp\\u003e搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\u003cbr\\u003e\\n现在做一下记录，防止以后出错用。\\u003cbr\\u003e\\n错误如下\\u003c/p\\u003e\"},{\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"date_published\":\"2018-08-20T16:16:40&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dongtaisub/\",\"url\":\"https://lruihao.cn/posts/dongtaisub/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本文适合我这种纯小白。\\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\\u003ca href=\\\"https://www.jianshu.com/p/df2c844eeabf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（关键词：js, 后加载）\\u003cbr\\u003e\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"“高逼格”C 语言画心\",\"date_published\":\"2018-08-15T16:33:12&#43;08:00\",\"date_modified\":\"2018-08-15T16:33:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/heart/\",\"url\":\"https://lruihao.cn/posts/heart/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C\"],\"summary\":\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\n大一在机房拍的图 \",\"content_html\":\"\\u003cp\\u003e七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" title=\\\"大一在机房拍的图\\\" data-thumbnail=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" data-sub-html=\\\"\\u003ch2\\u003e截图\\u003c/h2\\u003e\\u003cp\\u003e大一在机房拍的图\\u003c/p\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\\\"截图\\\" height=\\\"210\\\" width=\\\"210\\\"\\u003e\\u003c/a\\u003e\\u003cfigcaption class=\\\"image-caption\\\"\\u003e大一在机房拍的图\\u003c/figcaption\\u003e\\n  \\u003c/figure\\u003e\\u003c/p\\u003e\"},{\"title\":\"git index.lock\",\"date_published\":\"2018-08-14T19:21:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-index-lock/\",\"url\":\"https://lruihao.cn/posts/git-index-lock/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\n有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\\n\",\"content_html\":\"\\u003cp\\u003e在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\\n\\nIf no other git process is currently running, this probably means a\\ngit process crashed in this repository earlier. Make sure no other git\\nprocess is running and remove the file manually to continue.\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\u003c/p\\u003e\\n\\u003cp\\u003e有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 \\u003ccode\\u003erm -f ./.git/index.lock\\u003c/code\\u003e 。之后就可以正常使用。\\u003c/p\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"hexo 博客自定义 console log\",\"date_published\":\"2018-08-04T16:19:06&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/console-log/\",\"url\":\"https://lruihao.cn/posts/console-log/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\n我主要用到的工具：\\nconsole.log() Notepad++ 在线图片转文字工具 \",\"content_html\":\"\\u003cp\\u003e看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\u003cbr\\u003e\\n我主要用到的工具：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003econsole.log()\\u003c/li\\u003e\\n\\u003cli\\u003eNotepad++\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://picascii.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线图片转文字工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"最短路入门\",\"date_published\":\"2018-08-03T16:27:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/zuiduanlu/\",\"url\":\"https://lruihao.cn/posts/zuiduanlu/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"最短路\",\"ACM\"],\"summary\":\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"dijkstra-算法\\\"\\u003e\\u003cspan\\u003e1 Dijkstra 算法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#dijkstra-%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"1-定义概览\\\"\\u003e\\u003cspan\\u003e1.1 1. 定义概览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\u003c/p\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"在线离线算法\",\"date_published\":\"2018-07-26T09:57:32&#43;08:00\",\"date_modified\":\"2018-07-26T09:57:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"url\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"在线离线算法\"],\"summary\":\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"在线算法\\\"\\u003e\\u003cspan\\u003e1 \\u003ca href=\\\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\u003c/p\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"杨辉三角\",\"date_published\":\"2018-07-22T11:41:15&#43;08:00\",\"date_modified\":\"2021-09-26T12:04:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"url\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"杨辉三角\"],\"summary\":\"百度知道 1\\n1 1\\n1 2 1\\n1 3 3 1\\n1 4 6 4 1\\n1 5 10 10 5 1\\n1 6 15 20 15 6 1\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://zhidao.baidu.com/question/367384574464313844.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百度知道\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n1\\u003c/p\\u003e\\n\\u003cp\\u003e1 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 2 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 3 3 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 4 6 4 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 5 10 10 5 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 6 15 20 15 6 1\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"简单背包\",\"date_published\":\"2018-06-16T13:18:43&#43;08:00\",\"date_modified\":\"2018-06-16T13:18:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"url\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"C\"],\"summary\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！\\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ccode\\u003e弱鸡还是弱鸡啊最简单的背包问题——。——！\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e5 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"date_published\":\"2018-06-15T07:51:21&#43;08:00\",\"date_modified\":\"2018-06-15T07:51:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"summary\":\" 来自一位大佬的演讲\\n尊敬的领导、教练，亲爱的参赛选手们：\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e来自一位大佬的演讲\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e尊敬的领导、教练，亲爱的参赛选手们：\\u003cbr\\u003e\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\u003cbr\\u003e\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\u003cbr\\u003e\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\u003cbr\\u003e\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\u003cbr\\u003e\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\u003cbr\\u003e\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"},{\"title\":\"F.sorting\",\"date_published\":\"2018-06-14T22:49:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/f-sorting/\",\"url\":\"https://lruihao.cn/posts/f-sorting/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"summary\":\"\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" title=\\\"sorting.png\\\" data-thumbnail=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" data-sub-html=\\\"\\u003ch2\\u003esorting.png\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\\\"sorting.png\\\" height=\\\"697\\\" width=\\\"1049\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"位运算\",\"date_published\":\"2018-06-14T20:22:21&#43;08:00\",\"date_modified\":\"2018-06-14T20:22:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"url\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"位运算\"],\"summary\":\"1 1. \\u0026amp;运算 \\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1-运算\\\"\\u003e\\u003cspan\\u003e1 1. \\u0026amp;运算\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e8%bf%90%e7%ae%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"},{\"title\":\"各种 Links 汇总与分享\",\"date_published\":\"2018-06-07T00:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/links/\",\"url\":\"https://lruihao.cn/posts/links/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 2021/10/1 更新\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/1 更新\\u003cbr\\u003e\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\u003c/p\\u003e\\n\\u003cp\\u003e我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"戏子春秋\",\"date_published\":\"2018-06-03T19:41:32&#43;08:00\",\"date_modified\":\"2018-06-03T19:41:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"url\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\"],\"summary\":\" 从此故乡只有冬夏，再无春秋。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从此故乡只有冬夏，再无春秋。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo+github 搭建个人博客及美化\",\"date_published\":\"2018-06-01T14:34:23&#43;08:00\",\"date_modified\":\"2021-10-03T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexobuild/\",\"url\":\"https://lruihao.cn/posts/hexobuild/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\"],\"summary\":\"更多关于 hexo\\n17 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"/categories/hexo/\\\"\\u003e更多关于 hexo\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"首先\\\"\\u003e\\u003cspan\\u003e17 首先\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a6%96%e5%85%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://hexo.io/zh-cn/docs/index.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我们的第一手资料，也是最好的。\\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\u003c/p\\u003e\"},{\"title\":\"hexo 添加图片，音乐，链接，视频\",\"date_published\":\"2018-05-31T23:19:22&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexowrite/\",\"url\":\"https://lruihao.cn/posts/hexowrite/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如果实在搞得头晕直接去 \\u003ca href=\\\"https://www.jianshu.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简书\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 \\u003ca href=\\\"https://maxiang.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e马克飞象，专为印象笔记打造的 Markdown 编辑器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://www.typora.io/#\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etypora 也是不错的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，突然发现 \\u003ca href=\\\"https://www.csdn.net/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecsdn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 也支持 Markdown 编译器了\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"猴子与哪吒\",\"date_published\":\"2018-05-31T10:09:15&#43;08:00\",\"date_modified\":\"2018-05-31T10:09:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"url\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/猴子与哪吒/images/hznz.jpg\",\"summary\":\"一直觉得中国古代神话\\n能称得上传奇的只有两个人物：\\n一是猴子\\n一是哪吒\\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\\n三年怀胎生了个哪吒 东海屠龙翻江倒海\\n可以说 除了这两人 没人再能当得起离经放纵四个字的\\n但称得上悲剧的 约摸也只有这两个\\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\n\",\"content_html\":\"\\u003cp\\u003e一直觉得中国古代神话\\u003c/p\\u003e\\n\\u003cp\\u003e能称得上传奇的只有两个人物：\\u003c/p\\u003e\\n\\u003cp\\u003e一是猴子\\u003c/p\\u003e\\n\\u003cp\\u003e一是哪吒\\u003c/p\\u003e\\n\\u003cp\\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\\u003c/p\\u003e\\n\\u003cp\\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\\u003c/p\\u003e\\n\\u003cp\\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\\u003c/p\\u003e\\n\\u003cp\\u003e但称得上悲剧的 约摸也只有这两个\\u003c/p\\u003e\\n\\u003cp\\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\u003c/p\\u003e\\n\\u003cp\\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\u003c/p\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"},{\"title\":\"Hello World\",\"date_published\":\"2018-05-28T20:01:01&#43;08:00\",\"date_modified\":\"2024-07-28T22:39:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hello-world/\",\"url\":\"https://lruihao.cn/posts/hello-world/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/hello-world/images/lunyu.jpg\",\"summary\":\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\n其實也不重要了，還望披荊斬棘，不改初心。\\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\u003cbr\\u003e\\n其實也不重要了，還望披荊斬棘，不改初心。\\u003c/p\\u003e\\n\\u003cp\\u003e不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\u003c/p\\u003e\\n\\u003cp\\u003e從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "friends/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>友情链接 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"「菠菜眾長」的友情链接\"><meta name=keywords content='Hugo FixIt,friends template,友情链接'><meta itemprop=name content=\"友情链接\"><meta itemprop=description content=\"「菠菜眾長」的友情链接\"><meta itemprop=datePublished content=\"2021-09-19T12:33:48+08:00\"><meta itemprop=dateModified content=\"2024-08-24T17:51:49+08:00\"><meta itemprop=wordCount content=\"331\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo FixIt,friends template,友情链接\"><meta property=\"og:url\" content=\"https://lruihao.cn/friends/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"友情链接\"><meta property=\"og:description\" content=\"「菠菜眾長」的友情链接\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:published_time\" content=\"2021-09-19T12:33:48+08:00\"><meta property=\"article:modified_time\" content=\"2024-08-24T17:51:49+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"友情链接\"><meta name=twitter:description content=\"「菠菜眾長」的友情链接\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/friends/ title=\"友情链接 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/guestbook/ title=留言><link rel=next type=text/html href=https://lruihao.cn/posts/hexo-to-hugo/ title=\"个人博客从 Hexo 迁移至 Hugo\"><link rel=alternate type=text/markdown href=https://lruihao.cn/friends/index.md title=\"友情链接 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"友情链接\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/friends\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"page\",\"wordcount\":331,\"url\":\"https:\\/\\/lruihao.cn\\/friends\\/\",\"datePublished\":\"2021-09-19T12:33:48+08:00\",\"dateModified\":\"2024-08-24T17:51:49+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"「菠菜眾長」的友情链接\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=\"menu-item active\"><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/friends/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=\"menu-item active\"><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=\"page single special friends\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\">友情链接</h1></div><script src=//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js async defer></script><div class=friend-links><a class=friend-link title=蒙镛、老铁，一句两句说不清！ href=https://recell.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/123_14801411218656854831.jpg alt=愛如潮水 height=640 width=640>\n<span class=friend-nickname title=愛如潮水>@愛如潮水</span>\n</a><a class=friend-link title=前端好伙伴！ href=https://a.biugle.cn/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_15252937208943599258.jpg alt=DoubleAm height=718 width=768>\n<span class=friend-nickname title=DoubleAm>@DoubleAm</span>\n</a><a class=friend-link title=一个好奇的博客！前端开发。 href=https://www.hojun.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/006bYVyvgy1ftand2qurdj303c03cdfv_4600593201344008349.jpg alt=hojun height=120 width=120>\n<span class=friend-nickname title=hojun>@hojun</span>\n</a><a class=friend-link title=机器学习，SQL href=https://enfangzhong.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_1295062604590468553.jpg alt=AnFrank height=400 width=400>\n<span class=friend-nickname title=AnFrank>@AnFrank</span>\n</a><a class=friend-link title=\"主要涉及 Android 端技术，前沿其他技术和生活吐槽。\" href=https://www.domon.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_shiba-1_9320636973651804738.jpg alt=Domon height=215 width=215>\n<span class=friend-nickname title=Domon>@Domon</span>\n</a><a class=friend-link title=\"hexo-douban 插件开发者，坐标上海拼多多博客看起来是个很有生活感与学习感的地方。\" href=https://blog.mythsman.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/----_20190713220203_4930264476532930435.jpg alt=mythsman height=960 width=960>\n<span class=friend-nickname title=mythsman>@mythsman</span>\n</a><a class=friend-link title=分享，成为你我之间的快乐！ href=https://me.obey.fun rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/49894775_17313170726743193021.jpg alt=在线分享网 height=460 width=460>\n<span class=friend-nickname title=在线分享网>@在线分享网</span>\n</a><a class=friend-link title=\"“Brave, Confident, Come on!”\" href=https://wizzie.top/Blog/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/head_13658464225213604478.jpg alt=Wizzie height=720 width=720>\n<span class=friend-nickname title=Wizzie>@Wizzie</span>\n</a><a class=friend-link title=\"“Java 狮 北漂男 摄影 旅行 赚钱”\" href=https://www.liaofuzhan.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/beichen_17485130641890501062.png alt=北宸 height=1182 width=1182>\n<span class=friend-nickname title=北宸>@北宸</span>\n</a><a class=friend-link title=\"分享 Java 技术，记录点滴生活。\" href=https://www.larscheng.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/001_2762823658312859689.png alt=\"Lars Cheng\" height=725 width=725>\n<span class=friend-nickname title=\"Lars Cheng\">@Lars Cheng</span>\n</a><a class=friend-link title=熱衷學習，熱衷生活 href=https://crazywong.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://crazywong.com/img/avatar.png alt=CrazyWong>\n<span class=friend-nickname title=CrazyWong>@CrazyWong</span>\n</a><a class=friend-link title=后端开发，技术分享 href=https://removeif.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_5745189431876000496.jpg alt=辣椒の酱 height=638 width=640>\n<span class=friend-nickname title=辣椒の酱>@辣椒の酱</span>\n</a><a class=friend-link title=\"web 后端码仔，记录生活，分享技术！\" href=https://leishen6.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/logo_5269745162028220226.png alt=木子雷 height=156 width=156>\n<span class=friend-nickname title=木子雷>@木子雷</span>\n</a><a class=friend-link title=一个人的寂寞，一群人的狂欢。 href=https://www.foreverblog.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://www.foreverblog.cn/favicon.ico alt=十年之约>\n<span class=friend-nickname title=十年之约>@十年之约</span>\n</a><a class=friend-link title=\"To sail beyond the sunset.\" href=https://andreoy.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/JQAeX6iE9f1RKTu_599647762091452504.jpg alt=\"Andreo Y.\" height=500 width=500>\n<span class=friend-nickname title=\"Andreo Y.\">@Andreo Y.</span>\n</a><a class=friend-link title=\"SoulChild’s blog\" href=https://soulchild.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://www.soulchild.cn/images/avatar.png alt=\"SoulChild 随笔记\">\n<span class=friend-nickname title=\"SoulChild 随笔记\">@SoulChild 随笔记</span>\n</a><a class=friend-link title=毕少侠也在江湖。 href=https://geekswg.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_7849827651442941252.png alt=geekswg height=480 width=480>\n<span class=friend-nickname title=geekswg>@geekswg</span>\n</a><a class=friend-link title=某人的小栈 href=https://www.fordece.cn/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_7318672663257614264.jpg alt=forDece height=579 width=637>\n<span class=friend-nickname title=forDece>@forDece</span>\n</a><a class=friend-link title=\"XIDCN's blog\" href=https://xidcn.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_12047863450494207724.webp alt=XIDCN height=320 width=320>\n<span class=friend-nickname title=XIDCN>@XIDCN</span>\n</a><a class=friend-link title=前端开发、代码资源分享 href=https://www.lllomh.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/photos_7422062397815290049.jpg alt=芈渡 height=130 width=130>\n<span class=friend-nickname title=芈渡>@芈渡</span>\n</a><a class=friend-link title=云吱的个人博客，好耶！ href=https://haoyep.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_736623956304591875.jpg alt=云吱的小站 height=833 width=833>\n<span class=friend-nickname title=云吱的小站>@云吱的小站</span>\n</a><a class=friend-link title=\"Wlanxww 的博客\" href=https://wlanxww.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_565025760388383402.jpg alt=wlanxww height=450 width=450>\n<span class=friend-nickname title=wlanxww>@wlanxww</span>\n</a><a class=friend-link title=\"I come from the past to save my future\" href=https://raventhatfly.github.io/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/91964380_14692045581556811001.jpg alt=Raventhatfly height=450 width=450>\n<span class=friend-nickname title=Raventhatfly>@Raventhatfly</span>\n</a><a class=friend-link title=\"闻道录 - 「纸上得来终觉浅，绝知此事要躬行。」\" href=https://blog.zjuyk.site/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/76436317_7493543561397290847.png alt=千玄子 height=180 width=180>\n<span class=friend-nickname title=千玄子>@千玄子</span>\n</a><a class=friend-link title=劝君莫惜金缕衣，劝君惜取少年时 href=https://blog.niuwh.cn rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://blog.niuwh.cn/upload/2024/02/logo.ico alt=牛伟豪的博客>\n<span class=friend-nickname title=牛伟豪的博客>@牛伟豪的博客</span>\n</a><a class=friend-link title=\"LS-Shandong 的博客\" href=https://ls-shandong.github.io rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://ls-shandong.github.io/images/avatar.png alt=LS-Shandong>\n<span class=friend-nickname title=LS-Shandong>@LS-Shandong</span>\n</a><a class=friend-link title=正在学习经济学的二次元 href=https://blog.huaxiangshan.com/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_15680895202868621204.png alt=滑翔闪 height=1024 width=1024>\n<span class=friend-nickname title=滑翔闪>@滑翔闪</span>\n</a><a class=friend-link title=\"Hacking the future\" href=https://baozongwi.xyz/ rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/acvtar_11127108171528336400.jpg alt=baozongwi height=1080 width=1080>\n<span class=friend-nickname title=baozongwi>@baozongwi</span>\n</a><a class=friend-link title=针通经络，草养气血。 href=https://acuherb.xyz rel=\"external noopener\" target=_blank><img class=friend-avatar src=/images/remote/avatar_3093444286846872036.jpg alt=针草堂 height=499 width=499>\n<span class=friend-nickname title=针草堂>@针草堂</span>\n</a><a class=friend-link title=不定期记录开发路上的片段，与君共勉 href=https://vespeng.com rel=\"external noopener\" target=_blank><img class=friend-avatar src=https://vespeng.com/avatar.jpg alt=Vespeng>\n<span class=friend-nickname title=Vespeng>@Vespeng</span></a></div><div class=content id=content><p class=text-center><span id=busuanzi_container_page_pv class=busuanzi_visitors><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i>本页共 <span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span></p><h2 class=heading-element id=基本信息><span>基本信息</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e4%bf%a1%e6%81%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><strong>网络 ID</strong>：Lruihao</li><li><strong>头像</strong>：https://lruihao.cn/images/avatar.jpg</li><li><strong>URL</strong>：https://lruihao.cn</li><li><strong>描述</strong>：菠菜眾長 - 「不怕萬人阻擋，只怕自己投降」（或者你对我的看法😉）</li></ul><h2 class=heading-element id=友链要求><span>友链要求</span>\n<a href=#%e5%8f%8b%e9%93%be%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>友情提醒：那些不尊重他人劳动成果，转载不加出处的，或恶意行为的网站，还请你不要来进行交换了。</p></blockquote><ol><li>原创博客文章至少 10 篇以上，内容健康，无违法违规内容。</li><li>网站创建时间至少 3 个月以上，且长期保持更新。（频率至少一年 1 篇）</li><li>目前仅限个人非商业博客/网站。（商务合作邮件联系）</li></ol><p>满足上述基本要求，互换友链请按以下格式在评论区留言：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=s>```yaml\n</span></span></span><span class=line><span class=cl>- <span class=nt>nickname</span><span class=p>:</span><span class=w> </span><span class=l>&lt;your nickname&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>avatar</span><span class=p>:</span><span class=w> </span><span class=l>&lt;your avatar&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>url</span><span class=p>:</span><span class=w> </span><span class=l>&lt;your site link&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>description</span><span class=p>:</span><span class=w> </span><span class=l>&lt;description of your site&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=s>```</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=失效链接><span>失效链接</span>\n<a href=#%e5%a4%b1%e6%95%88%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>公示一个月后删除，如更换域名请及时联系！</p></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a7487aed908c38304252d1bbf8a74f90.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a7487aed908c38304252d1bbf8a74f90.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/friends/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "friends/index.md",
    "content": "# 友情链接\n\n\n{{< busuanzi_embed false \"本页共 \" >}}\n{.text-center}\n\n## 基本信息\n\n- **网络 ID**：Lruihao\n- **头像**：https://lruihao.cn/images/avatar.jpg\n- **URL**：https://lruihao.cn\n- **描述**：菠菜眾長 - 「不怕萬人阻擋，只怕自己投降」（或者你对我的看法😉）\n\n## 友链要求\n\n> 友情提醒：那些不尊重他人劳动成果，转载不加出处的，或恶意行为的网站，还请你不要来进行交换了。\n\n1. 原创博客文章至少 10 篇以上，内容健康，无违法违规内容。\n2. 网站创建时间至少 3 个月以上，且长期保持更新。（频率至少一年 1 篇）\n3. 目前仅限个人非商业博客/网站。（商务合作邮件联系）\n\n满足上述基本要求，互换友链请按以下格式在评论区留言：\n\n````markdown\n```yaml\n- nickname: <your nickname>\n  avatar: <your avatar>\n  url: <your site link>\n  description: <description of your site>\n```\n````\n\n## 失效链接\n\n公示一个月后删除，如更换域名请及时联系！\n\n<!-- markdownlint-disable-next-line no-bare-urls -->\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/friends/  \n\n"
  },
  {
    "path": "guestbook/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>留言 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"留言\"><meta itemprop=description content=\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\"><meta itemprop=datePublished content=\"2021-09-13T20:31:52+08:00\"><meta itemprop=dateModified content=\"2025-05-07T14:46:43+08:00\"><meta itemprop=wordCount content=\"86\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/guestbook/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"留言\"><meta property=\"og:description\" content=\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:published_time\" content=\"2021-09-13T20:31:52+08:00\"><meta property=\"article:modified_time\" content=\"2025-05-07T14:46:43+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"留言\"><meta name=twitter:description content=\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/guestbook/ title=\"留言 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/hugo-blog/ title=\"Lruihao's Note\"><link rel=next type=text/html href=https://lruihao.cn/friends/ title=友情链接><link rel=alternate type=text/markdown href=https://lruihao.cn/guestbook/index.md title=\"留言 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"留言\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/guestbook\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"page\",\"wordcount\":86,\"url\":\"https:\\/\\/lruihao.cn\\/guestbook\\/\",\"datePublished\":\"2021-09-13T20:31:52+08:00\",\"dateModified\":\"2025-05-07T14:46:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=wide><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=\"menu-item active\"><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/guestbook/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=\"menu-item active\"><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=\"page single special\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\">留言</h1></div><div class=content id=content><p class=text-secondary style=text-align:right;font-size:80%;margin-top:-.5rem><span id=busuanzi_container_page_pv class=busuanzi_visitors><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span></p><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>Welcome<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><div class=typeit><div></div><template><pre>互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！</pre></template></div></div></div></div><hr><p class=text-center style=font-size:80%>温馨提示，音乐自动播放，请带好耳机～</p><link rel=stylesheet href=https://unpkg.com/mmt-webfont/dist/result.css><link rel=stylesheet href=https://unpkg.com/aplayer/dist/APlayer.min.css><link rel=stylesheet href='/shortcodes/mmt-netease/css/index.css?v=1.4.0'><div class=netease-music data-mid=2280569152 data-autoplay=false><meting-js server=netease type=playlist id=2280569152 list-folded=true autoplay></meting-js></div><section class=section-comment><div class=comment-163 title=随机下一条><span class=pic-backdrop></span><div class=commentator><img class=\"comment-avatar d-none\"><div class=comment-user><span class=comment-nickname></span>\n<small class=comment-time></small></div><span class=comment-liked></span></div><div class=comment-content></div><div class=music-info><span class=music-name></span>\n<span class=artists-name></span></div></div><div class=\"loading-indicator-wrapper d-none\"><div class=aether-spinner><div class=rect-one></div><div class=rect-two></div><div class=rect-three></div></div></div></section><div class=mmt-netease-powered><span>From <a href=\"https://music.163.com/#/playlist?id=2280569152\" target=_blank>playlist</a>, </span><span>Powered by <a href=https://github.com/Lruihao/hugo-shortcode-mmt-netease title=\"mmt-netease v1.4.0\" target=_blank>mmt-netease</a>.</span></div><script src='/shortcodes/mmt-netease/js/index.js?v=1.4.0'></script><hr><p><div class=post-reward><div class=comment>给博主买杯卡布奇诺～</div><input type=checkbox class=reward-input name=reward id=id-1 hidden>\n<label class=reward-button for=id-1><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=支付宝><span>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=微信><span>微信</span></div></div></div><span id=busuanzi_container_page_pv class=\"busuanzi_visitors d-none\"><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span></p></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=valine-hacker.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d13c1c99bddbc642489b8a9e7d3d4aae.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=https://unpkg.com/valine@latest defer></script><script src=/js/valine-hacker.js defer></script><script src=/js/config/d13c1c99bddbc642489b8a9e7d3d4aae.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/guestbook/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "guestbook/index.md",
    "content": "# 留言\n\n\n{{< busuanzi_embed false >}}\n{.text-secondary style=\"text-align: right; font-size: 80%;margin-top: -0.5rem;\"}\n\n{{< admonition tip \"Welcome\" >}}\n{{< typeit >}}\n互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\n{{< /typeit >}}\n{{< /admonition >}}\n\n---\n\n温馨提示，音乐自动播放，请带好耳机～\n{.text-center style=\"font-size: 80%;\"}\n\n{{< mmt-netease \"2280569152\" >}}\n\n---\n\n{{< reward wechatpay=\"/images/wechatpay.jpg\" alipay=\"/images/alipay.jpg\" comment=\"给博主买杯卡布奇诺～\" mode=\"fixed\" >}}\n{{< busuanzi_embed >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/guestbook/  \n\n"
  },
  {
    "path": "guestbook/valine-hacker.css",
    "content": "/* hack valine comment */\n#valine {\n  overflow-y: scroll;\n  margin-block: 0.5rem;\n\n  .vcount {\n    position: sticky;\n    top: 0;\n    z-index: 1;\n    cursor: pointer;\n    text-align: right;\n    font-size: 1rem;\n    background-color: #fff;\n\n    [data-theme='dark'] & {\n      background-color: #292a2e;\n    }\n\n    &::after {\n      content: '来自 Valine 历史评论';\n      margin-left: 0.5rem;\n      font-size: 50%;\n      color: var(--fi-secondary);\n    }\n  }\n  \n\n  .vpanel,\n  .vempty,\n  .vat,\n  .vpower {\n    display: none !important;\n  }\n}\n\n@media only screen and (min-width: 681px) {\n  #valine .vcount {\n    background-color: #fafaf8;\n  }\n}\n"
  },
  {
    "path": "index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/mermaid-theming/ aria-label=\"让 Mermaid 图表自动跟随系统深浅色\"><img loading=eager src=/posts/mermaid-theming/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 让 Mermaid 图表自动跟随系统深浅色\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/mermaid-theming/>让 Mermaid 图表自动跟随系统深浅色</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-08-16 12:37:49'>发布于 <time datetime=2025-08-16>2025-08-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a>&ensp;<a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><p>Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。<br>不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。</p></div><div class=post-footer><a href=/posts/mermaid-theming/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/invert-filter/ class=post-tag>invert filter</a><a href=/tags/mermaid/ class=post-tag>Mermaid</a><a href=/tags/prefers-color-scheme/ class=post-tag>prefers-color-scheme</a><a href=/tags/fixit/ class=post-tag>FixIt</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/wc-01-prologue/ aria-label=黑盒出关・三把钥匙定江湖><img loading=eager src=/posts/wc-01-prologue/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 黑盒出关・三把钥匙定江湖\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wc-01-prologue/>黑盒出关・三把钥匙定江湖</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-08-05 11:31:52'>发布于 <time datetime=2025-08-05>2025-08-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a>&ensp;<a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a> 和 <a href=/collections/web-components/ class=post-collection title=\"合集 - Web Components\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> Web Components</a></span></div><div class=content><p>江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！</p></div><div class=post-footer><a href=/posts/wc-01-prologue/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/custom-element/ class=post-tag>Custom element</a><a href=/tags/shadow-dom/ class=post-tag>Shadow DOM</a><a href=/tags/template/ class=post-tag>template</a><a href=/tags/slot/ class=post-tag>slot</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/code-playground/>Code Playground</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-08-04 11:37:24'>发布于 <time datetime=2025-08-04>2025-08-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><p>以下是常见的在线代码演示和开发环境服务，适合不同场景使用：</p></div><div class=post-footer><a href=/posts/code-playground/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/npm/ class=post-tag>npm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/at-layer/>CSS @Layer：构建更高效、更可维护的样式层级</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-06-18 10:35:47'>发布于 <time datetime=2025-06-18>2025-06-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><p>在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 <code>@layer</code> 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 <code>@layer</code> 的背景、作用以及语法，带你一探究竟。</p></div><div class=post-footer><a href=/posts/at-layer/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/@layer/ class=post-tag>@layer</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/vue-build/>Vue.js History 模式下的 NGINX 配置与 API 代理</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-06-11 10:05:36'>发布于 <time datetime=2025-06-11>2025-06-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><p>在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。</p></div><div class=post-footer><a href=/posts/vue-build/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nginx/ class=post-tag>nginx</a><a href=/tags/vue3/ class=post-tag>vue3</a><a href=/tags/proxy/ class=post-tag>proxy</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/flexbox/ aria-label=\"CSS Flexbox 布局指南\"><img loading=eager src=/posts/flexbox/images/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for CSS Flexbox 布局指南\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/flexbox/>CSS Flexbox 布局指南</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2025-01-20 15:56:38'>发布于 <time datetime=2025-01-20>2025-01-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><p>本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。</p></div><div class=post-footer><a href=/posts/flexbox/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/flexbox/ class=post-tag>Flexbox</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/css-viewport/>震惊！CSS 竟然能获取视口尺寸？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-12-06 10:32:22'>发布于 <time datetime=2024-12-06>2024-12-06</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><p>在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。</p></div><div class=post-footer><a href=/posts/css-viewport/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/content-adapters/ aria-label=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><img loading=eager src=/posts/content-adapters/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 自动获取 GitHub README 内容添加到 Hugo 文章\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/content-adapters/>自动获取 GitHub README 内容添加到 Hugo 文章</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-10-06 11:10:22'>发布于 <time datetime=2024-10-06>2024-10-06</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。</p></div><div class=post-footer><a href=/posts/content-adapters/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/github-api/ class=post-tag>GitHub API</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/css-round/>现代 CSS 解决方案：CSS 四舍五入数值单位</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-07-29 20:32:39'>发布于 <time datetime=2024-07-29>2024-07-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=content><p>本文将介绍另外一个非常实用的 CSS 数学函数 - <code>round()</code> 及其实际应用场景。</p></div><div class=post-footer><a href=/posts/css-round/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/round/ class=post-tag>round</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/git-summary/>Git 统计代码量</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-07-17 16:06:08'>发布于 <time datetime=2024-07-17>2024-07-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><p>使用 Git 命令统计在某段时间内项目中的代码量。</p></div><div class=post-footer><a href=/posts/git-summary/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link><a href=/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/page/3/>3</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>菠菜眾長</title><link>https://lruihao.cn/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 04 May 2026 16:54:23 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>一个轻量化 Tooltip 组件。</title><link>https://lruihao.cn/projects/lruihao/cell-tooltip/</link><pubDate>Fri, 06 Mar 2026 06:58:23 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-tooltip/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased&gt;&lt;span&gt;cell-tooltip&lt;/span&gt;\n &lt;a href=\"#cell-tooltip\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap &lt;code&gt;tooltip.js&lt;/code&gt;，保留常用能力并尽量减少体积与依赖。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持触发方式：&lt;code&gt;hover&lt;/code&gt; / &lt;code&gt;focus&lt;/code&gt; / &lt;code&gt;click&lt;/code&gt; / &lt;code&gt;manual&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持位置：&lt;code&gt;top&lt;/code&gt; / &lt;code&gt;bottom&lt;/code&gt; / &lt;code&gt;left&lt;/code&gt; / &lt;code&gt;right&lt;/code&gt; / &lt;code&gt;auto&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持延迟配置（&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持 &lt;code&gt;data-ct-*&lt;/code&gt; 属性初始化&lt;/li&gt;\n&lt;li&gt;支持实例方法：&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt; / &lt;code&gt;toggle&lt;/code&gt; / &lt;code&gt;update&lt;/code&gt; / &lt;code&gt;dispose&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;内置箭头与基础样式，无第三方依赖&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"本地运行\"&gt;&lt;span&gt;本地运行&lt;/span&gt;\n &lt;a href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;pnpm install\npnpm dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;构建库产物：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;pnpm build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;构建 Demo：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;pnpm build:demo&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;预览 Demo：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;pnpm preview&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;build&lt;/code&gt; 会输出库产物到 &lt;code&gt;dist/&lt;/code&gt;，&lt;code&gt;build:demo&lt;/code&gt; 会输出示例站点到 &lt;code&gt;dist-demo/&lt;/code&gt;。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"快速使用\"&gt;&lt;span&gt;快速使用&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"1-html\"&gt;&lt;span&gt;1) HTML&lt;/span&gt;\n &lt;a href=\"#1-html\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;button\n id=&amp;#34;btn&amp;#34;\n data-ct-title=&amp;#34;Hello tooltip&amp;#34;\n data-ct-placement=&amp;#34;top&amp;#34;\n&amp;gt;\n Hover me\n&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"2-ts\"&gt;&lt;span&gt;2) TS&lt;/span&gt;\n &lt;a href=\"#2-ts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;import CellTooltip from &amp;#39;cell-tooltip&amp;#39;\n\nconst element = document.querySelector&amp;lt;HTMLElement&amp;gt;(&amp;#39;#btn&amp;#39;)\n\nif (element) {\n CellTooltip.getOrCreateInstance(element)\n}\n\n// 批量初始化\nTooltip.initAll(&amp;#39;[data-ct-title]&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"3-浏览器直引umd--iife\"&gt;&lt;span&gt;3) 浏览器直引（UMD / IIFE）&lt;/span&gt;\n &lt;a href=\"#3-%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9b%b4%e5%bc%95umd--iife\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;./dist/cell-tooltip.umd.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;\n&amp;lt;script&amp;gt;\n CellTooltip.initAll(&amp;#39;[data-ct-title]&amp;#39;)\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"配置项\"&gt;&lt;span&gt;配置项&lt;/span&gt;\n &lt;a href=\"#%e9%85%8d%e7%bd%ae%e9%a1%b9\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;type TooltipPlacement = &amp;#39;top&amp;#39; | &amp;#39;bottom&amp;#39; | &amp;#39;left&amp;#39; | &amp;#39;right&amp;#39; | &amp;#39;auto&amp;#39;\ntype TooltipTrigger = &amp;#39;hover&amp;#39; | &amp;#39;focus&amp;#39; | &amp;#39;click&amp;#39; | &amp;#39;manual&amp;#39;\ntype TooltipTheme = &amp;#39;light&amp;#39; | &amp;#39;dark&amp;#39; | &amp;#39;auto&amp;#39;\n\ninterface TooltipOptions {\n title?: string | (() =&amp;gt; string)\n placement?: TooltipPlacement\n trigger?: string\n theme?: TooltipTheme\n container?: HTMLElement\n offset?: number\n html?: boolean\n delay?: number | { show?: number; hide?: number }\n}&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;title&lt;/code&gt;：提示内容；可传字符串或函数&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;placement&lt;/code&gt;：位置；&lt;code&gt;auto&lt;/code&gt; 会按可用空间自动选择&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;trigger&lt;/code&gt;：触发方式，支持空格组合（例如 &lt;code&gt;&amp;quot;hover focus&amp;quot;&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;theme&lt;/code&gt;：主题；支持 &lt;code&gt;light&lt;/code&gt; / &lt;code&gt;dark&lt;/code&gt; / &lt;code&gt;auto&lt;/code&gt;，默认 &lt;code&gt;dark&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;container&lt;/code&gt;：tooltip 挂载容器，默认 &lt;code&gt;document.body&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;offset&lt;/code&gt;：目标元素与 tooltip 的间距（像素）&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;html&lt;/code&gt;：是否按 HTML 渲染 &lt;code&gt;title&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;delay&lt;/code&gt;：显示/隐藏延迟（毫秒）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"data-属性\"&gt;&lt;span&gt;data 属性&lt;/span&gt;\n &lt;a href=\"#data-%e5%b1%9e%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;data-ct-title&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;data-ct-placement&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;data-ct-trigger&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;data-ct-theme&lt;/code&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;示例：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;button\n data-ct-title=&amp;#34;Click tooltip&amp;#34;\n data-ct-trigger=&amp;#34;click&amp;#34;\n data-ct-placement=&amp;#34;right&amp;#34;\n data-ct-theme=&amp;#34;light&amp;#34;\n&amp;gt;\n Click\n&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"实例方法\"&gt;&lt;span&gt;实例方法&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;import Tooltip from &amp;#39;cell-tooltip&amp;#39;\n\nconst tooltip = Tooltip.getOrCreateInstance(element, {\n title: &amp;#39;Manual tooltip&amp;#39;,\n trigger: &amp;#39;manual&amp;#39;,\n})\n\ntooltip.show()\ntooltip.hide()\ntooltip.toggle()\ntooltip.update()\ntooltip.dispose()\n\n// 批量初始化（返回 Tooltip 实例数组）\nconst tooltips = Tooltip.initAll(&amp;#39;.demo-btn[data-ct-title]&amp;#39;)&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"目录\"&gt;&lt;span&gt;目录&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;src/tooltip.ts&lt;/code&gt;：组件核心实现&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;src/index.ts&lt;/code&gt;：导出入口&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;src/main.ts&lt;/code&gt;：示例页面初始化&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;src/style.css&lt;/code&gt;：演示与 tooltip 样式&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"作为-hugo-模块安装\"&gt;&lt;span&gt;作为 Hugo 模块安装&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;首先确保你的项目本身是一个 &lt;a href=\"https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;然后将此主题组件添加到你的 &lt;code&gt;hugo.toml&lt;/code&gt; 配置文件中：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;[module]\n\n[[module.imports]]\npath = &amp;#34;github.com/hugo-fixit/FixIt&amp;#34;\n\n[[module.imports]]\npath = &amp;#34;github.com/hugo-fixit/cmpt-santa-hat&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在 Hugo 的第一次启动时，它将下载所需的文件。&lt;/p&gt;\n&lt;p&gt;要更新到模块的最新版本，请运行：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;hugo mod get -u\nhugo mod tidy&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"作为-git-子模块安装\"&gt;&lt;span&gt;作为 Git 子模块安装&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;将 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/cmpt-santa-hat.git themes/cmpt-santa-hat&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;接下来编辑项目的 &lt;code&gt;hugo.toml&lt;/code&gt; 并将此主题组件添加到你的主题中：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;theme = [&amp;#34;FixIt&amp;#34;, &amp;#34;cmpt-santa-hat&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"配置\"&gt;&lt;span&gt;配置&lt;/span&gt;\n &lt;a href=\"#%e9%85%8d%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;为了通过 FixIt 主题在 &lt;code&gt;layouts/_partials/custom.html&lt;/code&gt; 文件中开放的 &lt;a href=\"https://fixit.lruihao.cn/references/blocks/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 将 &lt;code&gt;santa-hat.fixit.html&lt;/code&gt; 注入到 &lt;code&gt;custom-assets&lt;/code&gt; 中，你需要填写以下必要配置：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;[params]\n\n[params.customPartials]\n# ... other partials\nassets = [\n &amp;#34;inject/santa-hat.fixit.html&amp;#34;,\n]\n# ... other partials&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"样式控制\"&gt;&lt;span&gt;样式控制&lt;/span&gt;\n &lt;a href=\"#%e6%a0%b7%e5%bc%8f%e6%8e%a7%e5%88%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Logo 尺寸推荐：32x32 像素。&lt;/li&gt;\n&lt;li&gt;CSS 变量：\n&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;--fi-santa-hat-offset&lt;/code&gt;：控制圣诞帽相对于 Logo 的平移偏移，默认值 &lt;code&gt;8px 2px&lt;/code&gt;。&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;--fi-santa-hat-shadow&lt;/code&gt;：控制帽子阴影的 RGB 值，默认值 &lt;code&gt;0, 0, 0&lt;/code&gt;，暗色模式下会自动切换为 &lt;code&gt;255, 255, 255&lt;/code&gt;。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;/ul&gt;\n&lt;!-- \n## 参考\n\n- [开发主题组件 | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [如何开发 Hugo 主题组件 | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n--&gt;</description></item><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;Usage: auto-changelog-plus [options]\n\nOptions:\n -o, --output [file] # output file, default: CHANGELOG.md\n -c, --config [file] # config file location, default: .auto-changelog\n -t, --template [template] # specify template to use [compact, keepachangelog, json], default: compact\n -r, --remote [remote] # specify git remote to use for links, default: origin\n -p, --package # use version from package.json as latest release\n -v, --latest-version [version] # use specified version as latest release\n -u, --unreleased # include section for unreleased changes\n -l, --commit-limit [count] # number of commits to display per release, default: 3\n -b, --backfill-limit [count] # number of commits to backfill empty releases with, default: 3\n --commit-url [url] # override url for commits, use {id} for commit id\n --issue-url [url] # override url for issues, use {id} for issue id\n --merge-url [url] # override url for merges, use {id} for merge id\n --compare-url [url] # override url for compares, use {from} and {to} for tags\n --issue-pattern [regex] # override regex pattern for issues in commit messages\n --breaking-pattern [regex] # regex pattern for breaking change commits\n --merge-pattern [regex] # add custom regex pattern for merge commits\n --commit-pattern [regex] # pattern to include when parsing commits\n --ignore-commit-pattern [regex] # pattern to ignore when parsing commits\n --tag-pattern [regex] # override regex pattern for version tags\n --tag-prefix [prefix] # prefix used in version tags, default: v\n --starting-version [tag] # specify earliest version to include in changelog\n --starting-date [yyyy-mm-dd] # specify earliest date to include in changelog\n --ending-version [tag] # specify latest version to include in changelog\n --sort-commits [property] # sort commits by property [relevance, date, date-desc, subject, subject-desc], default: relevance\n --release-summary # display tagged commit message body as release summary\n --unreleased-only # only output unreleased changes\n --hide-empty-releases # hide empty releases\n --hide-credit # hide auto-changelog credit\n --handlebars-setup [file] # handlebars setup file\n --append-git-log [string] # string to append to git log command\n --append-git-tag [string] # string to append to git tag command\n --prepend # prepend changelog to output file\n --stdout # output changelog to stdout\n -V, --version # output the version number\n -h, --help # output usage information&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;以下是一些常见的使用示例：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;# 在当前目录写入日志到 CHANGELOG.md\nauto-changelog-plus\n\n# 使用 keepachangelog 模板写入日志到 HISTORY.md\nauto-changelog-plus --output HISTORY.md --template keepachangelog\n\n# 禁用提交限制，渲染每个发布的所有提交\nauto-changelog-plus --commit-limit false&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;\n&lt;p&gt;执行 &lt;code&gt;auto-changelog-plus -h&lt;/code&gt; 获取帮助或者参考 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 文档。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"-约定式提交\"&gt;&lt;span&gt;📝 约定式提交&lt;/span&gt;\n &lt;a href=\"#-%e7%ba%a6%e5%ae%9a%e5%bc%8f%e6%8f%90%e4%ba%a4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范，支持以下类型的提交：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;feat:&lt;/code&gt; 新功能&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;fix:&lt;/code&gt; 修复问题&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;perf:&lt;/code&gt; 性能优化&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;refactor:&lt;/code&gt; 代码重构&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;docs:&lt;/code&gt; 文档变更&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;test:&lt;/code&gt; 测试相关&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;style:&lt;/code&gt; 代码格式调整&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;chore:&lt;/code&gt; 构建过程或辅助工具的变动&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;build:&lt;/code&gt; 构建系统变动&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;ci:&lt;/code&gt; 持续集成配置变动&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;revert:&lt;/code&gt; 代码回滚&lt;/li&gt;\n&lt;li&gt;支持 scope：&lt;code&gt;feat(api):&lt;/code&gt;, &lt;code&gt;fix(ui):&lt;/code&gt; 等&lt;/li&gt;\n&lt;li&gt;支持 emoji：&lt;code&gt;:sparkles: feat:&lt;/code&gt;, &lt;code&gt;✨ feat:&lt;/code&gt; 等&lt;/li&gt;\n&lt;li&gt;支持 Breaking Changes：&lt;code&gt;feat!:&lt;/code&gt;, &lt;code&gt;feat(scope)!:&lt;/code&gt;, &lt;code&gt;BREAKING CHANGE:&lt;/code&gt; 等格式&lt;/li&gt;\n&lt;li&gt;自动忽略 WIP 提交：&lt;code&gt;wip:&lt;/code&gt;, &lt;code&gt;Wip:&lt;/code&gt; 等临时提交不会包含在变更日志中&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"-自动化使用\"&gt;&lt;span&gt;⚙️ 自动化使用&lt;/span&gt;\n &lt;a href=\"#-%e8%87%aa%e5%8a%a8%e5%8c%96%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;将 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 安装到开发依赖：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;npm install auto-changelog-plus --save-dev\n# 或\nyarn add auto-changelog-plus --dev\n# 或\npnpm add -D auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在你的 &lt;code&gt;package.json&lt;/code&gt; 的 &lt;code&gt;version&lt;/code&gt; 脚本中添加 &lt;code&gt;auto-changelog-plus -p &amp;amp;&amp;amp; git add CHANGELOG.md&lt;/code&gt;：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;{\n &amp;#34;name&amp;#34;: &amp;#34;my-awesome-package&amp;#34;,\n &amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;,\n &amp;#34;devDependencies&amp;#34;: {\n &amp;#34;auto-changelog-plus&amp;#34;: &amp;#34;*&amp;#34;\n },\n &amp;#34;scripts&amp;#34;: {\n &amp;#34;version&amp;#34;: &amp;#34;auto-changelog-plus -p &amp;amp;&amp;amp; git add CHANGELOG.md&amp;#34;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;使用 &lt;code&gt;-p&lt;/code&gt; 或 &lt;code&gt;--package&lt;/code&gt; 将 &lt;code&gt;package.json&lt;/code&gt; 中的 &lt;code&gt;version&lt;/code&gt; 用作最新发布，这样以前发布和现在之间的所有提交都成为该发布的一部分。基本上任何通常被解析为 &lt;code&gt;Unreleased&lt;/code&gt; 的内容现在都会出现在 &lt;code&gt;package.json&lt;/code&gt; 的 &lt;code&gt;version&lt;/code&gt; 下。&lt;/p&gt;\n&lt;p&gt;现在每次运行 &lt;a href=\"https://docs.npmjs.com/cli/version\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;npm version&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 时，changelog 将自动更新并成为版本提交的一部分。&lt;/p&gt;\n&lt;p&gt;在不是 NPM 包的项目中，可以使用 &lt;code&gt;npx&lt;/code&gt; 或 &lt;code&gt;pnpx&lt;/code&gt; 来运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt;，例如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;npx auto-changelog-plus\n# 或\npnpx auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在 GitHub Actions 中，你可以使用以下工作流来自动生成发布说明：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;name: Release for new tag\n\non:\n push:\n tags:\n - &amp;#39;v*.*.*&amp;#39;\n workflow_dispatch:\n\njobs:\n release:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout repository\n uses: actions/checkout@v5\n with:\n fetch-depth: 0 # Fetch all history for generating release notes\n\n - name: Setup Node.js\n uses: actions/setup-node@v5\n with:\n node-version: &amp;#39;lts/*&amp;#39;\n\n - name: Generate release notes\n run: |\n npx auto-changelog-plus --starting-version ${{ github.ref_name }}\n sed -i &amp;#39;1,4d&amp;#39; CHANGELOG.md\n\n - name: GitHub Release\n uses: softprops/action-gh-release@v2\n with:\n draft: true\n body_path: CHANGELOG.md&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-和-auto-changelog-的区别\"&gt;&lt;span&gt;🔄 和 auto-changelog 的区别&lt;/span&gt;\n &lt;a href=\"#-%e5%92%8c-auto-changelog-%e7%9a%84%e5%8c%ba%e5%88%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;code&gt;auto-changelog-plus&lt;/code&gt; 是 &lt;code&gt;auto-changelog&lt;/code&gt; 的上层封装，完全兼容 &lt;code&gt;auto-changelog&lt;/code&gt; 的所有用法和配置。&lt;/p&gt;\n&lt;p&gt;主要改进：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;优化默认模板&lt;/strong&gt;：更好地适配 &lt;strong&gt;约定式提交&lt;/strong&gt; 规范&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;调整默认配置&lt;/strong&gt;：提供更合理的开箱即用体验&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;扩展模板功能&lt;/strong&gt;：提供额外的模板辅助函数&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你正在使用 &lt;code&gt;auto-changelog&lt;/code&gt;，可以直接替换为 &lt;code&gt;auto-changelog-plus&lt;/code&gt;，无需修改任何配置。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-许可证\"&gt;&lt;span&gt;📄 许可证&lt;/span&gt;\n &lt;a href=\"#-%e8%ae%b8%e5%8f%af%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;MIT&lt;/p&gt;</description></item><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;img src=\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\" alt=\"featured image\" referrerpolicy=\"no-referrer\"&gt;&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"背景mermaid-主题机制与痛点\"&gt;&lt;span&gt;背景：Mermaid 主题机制与痛点&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%afmermaid-%e4%b8%bb%e9%a2%98%e6%9c%ba%e5%88%b6%e4%b8%8e%e7%97%9b%e7%82%b9\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;flowchart LR\n A([&amp;#34;Start&amp;#34;])\n A --&amp;gt; B{&amp;#34;Decision&amp;#34;}\n B --&amp;gt;|Yes| C[&amp;#34;Option A&amp;#34;]\n B --&amp;gt;|No| D[&amp;#34;Option B&amp;#34;]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mermaid 在初始化时通过 &lt;code&gt;theme&lt;/code&gt; 字段选定配色，例如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;mermaid.initialize({ theme: &amp;#39;dark&amp;#39; });&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;但这条配置 &lt;strong&gt;只在首次渲染时生效&lt;/strong&gt;。当用户在操作系统层面切到 Light/Dark，或者网页本身提供手动开关时，Mermaid 并不会自动重绘。这就导致：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;暗黑系统 + 浅色图表 ⇒ 刺眼&lt;/li&gt;\n&lt;li&gt;浅色系统 + 暗黑图表 ⇒ 同样刺眼&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;社区 Issue &lt;a href=\"https://github.com/mermaid-js/mermaid/issues/2644\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#2644&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 早在 2022 年就提出希望官方支持 &lt;code&gt;prefers-color-scheme&lt;/code&gt;，但至今（2025-08）仍未合入主干。&lt;/p&gt;\n&lt;p&gt;顺便提一下，主题的切换一般都有两种主流方式：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;利用 &lt;code&gt;prefers-color-scheme&lt;/code&gt; 感知系统级别主题变化，&lt;code&gt;matchMedia('(prefers-color-scheme: dark)')&lt;/code&gt; 的 &lt;code&gt;change&lt;/code&gt; 事件。&lt;/li&gt;\n&lt;li&gt;通过 &lt;code&gt;dark&lt;/code&gt; class 手动切换，这种方式通常会在 html/body 上设置一个 &lt;code&gt;class&lt;/code&gt; 或者 &lt;code&gt;data-theme=&amp;quot;dark&amp;quot;&lt;/code&gt; 这样。&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"方案-1-reinitialize\"&gt;&lt;span&gt;方案 1️⃣ Reinitialize&lt;/span&gt;\n &lt;a href=\"#%e6%96%b9%e6%a1%88-1-reinitialize\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;切换主题，重新 &lt;code&gt;initialize&lt;/code&gt; + 重绘，这是目前来看大多数人的做法。&lt;/p&gt;\n&lt;p&gt;思路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;备份原始的 Mermaid code&lt;/li&gt;\n&lt;li&gt;设置 &lt;code&gt;startOnLoad: false&lt;/code&gt; 避免 Mermaid 自动渲染，然后使用 &lt;code&gt;mermaid.initialize({ theme: theme })&lt;/code&gt; + &lt;code&gt;mermaid.run()&lt;/code&gt; 完成初始化。&lt;/li&gt;\n&lt;li&gt;重新渲染时移除 &lt;code&gt;data-processed&lt;/code&gt;，替换 &lt;code&gt;.mermaid&lt;/code&gt; 的内容为原始 Mermaid code，使用 &lt;code&gt;mermaid.initialize({ theme: newTheme })&lt;/code&gt; + &lt;code&gt;mermaid.run()&lt;/code&gt; 重新渲染&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;这份做法在 Issue &lt;a href=\"https://github.com/mermaid-js/mermaid/issues/1945#issuecomment-1661264708\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#1945&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 里有完整代码，下面给出精简版：&lt;/p&gt;\n&lt;p&gt;优点是：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;利用现有官方 API&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;缺点是：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;每次切换都需要重新渲染，大图会闪一下&lt;/li&gt;\n&lt;li&gt;如果页面里图表很多，性能损耗不可忽视&lt;/li&gt;\n&lt;li&gt;还有异步处理带来的一系列问题&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"方案-2-css-滤镜\"&gt;&lt;span&gt;方案 2️⃣ CSS 滤镜&lt;/span&gt;\n &lt;a href=\"#%e6%96%b9%e6%a1%88-2-css-%e6%bb%a4%e9%95%9c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;作为支持 &lt;code&gt;prefers-color-scheme&lt;/code&gt; 和手动切换的一种简单的解决方案，可以使用 CSS 反转滤镜（&lt;code&gt;invert&lt;/code&gt;、&lt;code&gt;hue-rotate&lt;/code&gt; 等）来实现。&lt;/p&gt;\n&lt;p&gt;例如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;[data-theme=&amp;#39;dark&amp;#39;] .mermaid {\n filter: invert(0.88);\n}\n\n@media (prefers-color-scheme: dark) {\n :root:not([data-theme=&amp;#39;light&amp;#39;]) .mermaid {\n filter: invert(0.88);\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这条技巧是我在 Issue &lt;a href=\"https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-2313201033\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#2644&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 中看到的。&lt;/p&gt;\n&lt;p&gt;优点是：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;一行 CSS，无 JS&lt;/li&gt;\n&lt;li&gt;不重新渲染，零延迟&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;缺点是：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;只是「反色」，并非官方暗黑主题&lt;/li&gt;\n&lt;li&gt;对于红色、绿色等语义色会完全失真&lt;/li&gt;\n&lt;li&gt;如果背景不是纯黑纯白，观感会很奇怪&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;由于太过简单，效果也很粗糙，适合做 Demo 或内部工具，不建议面向终端用户。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"方案-3-配置热替换\"&gt;&lt;span&gt;方案 3️⃣ 配置热替换&lt;/span&gt;\n &lt;a href=\"#%e6%96%b9%e6%a1%88-3-%e9%85%8d%e7%bd%ae%e7%83%ad%e6%9b%bf%e6%8d%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;mermaid.live 站点能在用户切主题时瞬间完成切换，且颜色完全与官方暗黑主题对齐。从 &lt;a href=\"https://github.com/mermaid-js/mermaid-live-editor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;源码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 DevTools 推测，它大概做了三件事：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;自己维护一份 &lt;code&gt;themeCSS&lt;/code&gt; 字符串（而非仅用名字 &lt;code&gt;'dark'&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;在 &lt;code&gt;prefers-color-scheme&lt;/code&gt; 变化时，直接把新的 CSS 注入到 &lt;code&gt;&amp;lt;svg&amp;gt;&lt;/code&gt; 里的 &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; 节点&lt;/li&gt;\n&lt;li&gt;通过 &lt;code&gt;mermaid.render('id', code)&lt;/code&gt; 拿到 SVG string 后，用正则替换掉旧 &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;，再 &lt;code&gt;DOMParser&lt;/code&gt; 塞回页面&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;Issue &lt;a href=\"https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#2644&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 中有提到，在 mermaid.live 中，目前是根据配色方案在配置中切换主题。&lt;/p&gt;\n&lt;p&gt;优点：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;无闪烁&lt;/li&gt;\n&lt;li&gt;完全复用官方配色&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;缺点：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;需要内部维护主题 CSS，Mermaid 每升级一次都要同步&lt;/li&gt;\n&lt;li&gt;实现细节依赖私有 API，官方一旦改动就会崩&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你极度追求体验，可以照着源码抄一份，但要做好长期维护的心理准备。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#2644&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 中提到，在 mermaid.live 中，目前正在根据配色方案在配置中切换主题。这种方案暂时未找到更多的细节披露。我又懒得去深扒 mermaid.live 的实现细节。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"方案-4-reinitialize--css-结合\"&gt;&lt;span&gt;方案 4️⃣ Reinitialize + CSS 结合&lt;/span&gt;\n &lt;a href=\"#%e6%96%b9%e6%a1%88-4-reinitialize--css-%e7%bb%93%e5%90%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在我的实践中，&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是通过 &lt;code&gt;data-theme&lt;/code&gt; 的方式手动切换网站主题的，我一开始走的思路和方案 1️⃣总体一致，为了处理这个方案的缺点，我多次迭代，有了最终的版本：&lt;/p&gt;\n&lt;p&gt;首先通过 &lt;code&gt;type=module&lt;/code&gt; 引入 Mermaid：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;import mermaid from &amp;#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.js&amp;#39;;\nimport zenuml from &amp;#39;https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs&amp;#39;;\nawait mermaid.registerExternalDiagrams([zenuml]);\nmermaid.startOnLoad = false;\nwindow.mermaid = mermaid;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后在主题的切换逻辑中处理：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;initMermaid() {\n if (!this.config.mermaid) return;\n\n const themes = this.config.mermaid.themes ?? [&amp;#39;default&amp;#39;, &amp;#39;dark&amp;#39;];\n let processing = false;\n let delayTask = null;\n\n const loadMermaid = async () =&amp;gt; {\n processing = true;\n // https://mermaid.js.org/config/schema-docs/config.html\n window.mermaid.initialize({\n startOnLoad: false,\n darkMode: this.isDark,\n theme: this.isDark ? themes[1] : themes[0],\n securityLevel: this.config.mermaid.securityLevel,\n look: this.config.mermaid.look,\n fontFamily: this.config.mermaid.fontFamily,\n altFontFamily: this.config.mermaid.fontFamily\n });\n await window.mermaid.run({\n querySelector: &amp;#39;.mermaid&amp;#39;,\n suppressErrors: true,\n });\n processing = false;\n if (delayTask &amp;amp;&amp;amp; typeof delayTask === &amp;#39;function&amp;#39;) {\n delayTask();\n delayTask = null;\n // console.log(&amp;#39;Delayed task executed&amp;#39;);\n }\n };\n\n const reloadMermaid = async () =&amp;gt; {\n await this.util.forEach(document.querySelectorAll(&amp;#39;.mermaid[data-processed]&amp;#39;), (el) =&amp;gt; {\n el.removeAttribute(&amp;#39;data-processed&amp;#39;);\n el.parentElement.replaceChild(el.nextElementSibling.content.cloneNode(true), el);\n });\n await loadMermaid();\n };\n\n const waitForMermaid = () =&amp;gt; {\n return new Promise((resolve) =&amp;gt; {\n const timer = setInterval(() =&amp;gt; {\n if (window.mermaid &amp;amp;&amp;amp; window.mermaid.initialize) {\n clearInterval(timer);\n resolve();\n }\n }, 100);\n });\n };\n\n waitForMermaid().then(() =&amp;gt; {\n loadMermaid();\n this.switchThemeEventSet.add(() =&amp;gt; {\n if (processing) {\n console.warn(&amp;#39;Mermaid is still processing, delaying the reload.&amp;#39;);\n delayTask = reloadMermaid;\n return;\n }\n // console.log(&amp;#39;reload immediately&amp;#39;);\n reloadMermaid().catch(console.error);\n });\n\n this.beforeprintEventSet.add(() =&amp;gt; {\n // Optionally set theme to &amp;#39;neutral&amp;#39; for printing if required\n });\n })\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;为了缓解闪屏问题，利用 CSS 增加一个 Loading 效果，过度一下。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;.mermaid {\n position: relative;\n overflow: hidden !important;\n\n &amp;amp;[data-processed] {\n text-align: center;\n }\n\n &amp;amp;:not([data-processed])::before {\n content: &amp;#39;&amp;#39;;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n backdrop-filter: blur(0.5rem);\n background-position: center;\n background-repeat: no-repeat;\n background-image: var(#{$rootPrefix}loading-img);\n background-size: 60px;\n }\n\n svg {\n max-width: 100%;\n height: auto; \n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;说实话，虽然勉强达到了目的，这里的 &lt;code&gt;delayTask&lt;/code&gt; 和 &lt;code&gt;waitForMermaid()&lt;/code&gt; 算得上妥妥的 Dirty Hack。也属实是无奈之举。&lt;/p&gt;\n&lt;hr class=\"awesome-hr\"&gt;\n&lt;p&gt;睡觉前我灵光乍现，为了避免每次切换主题时都要重新渲染 Mermaid 图表，我尝试一开始直接把 Mermaid 的 Light 和 Dark 主题的两个图都渲染了，然后由 &lt;code&gt;data-theme&lt;/code&gt; 控制显示哪个图表。&lt;/p&gt;\n&lt;p&gt;尝试后发现 Mermaid 在渲染图时，如果这个元素是 &lt;code&gt;display: none;&lt;/code&gt; 则会报错。&lt;/p&gt;\n&lt;p&gt;于是，我改成初始化时只渲染 Light/Dark SVG，等到主题切换时才渲染 Dark/Light SVG，并隐藏另一个 SVG。&lt;/p&gt;\n&lt;p&gt;这样同一个图只需要渲染两次，后续多次主题切换，就能够通过 CSS 非常丝滑的控制切换了，&lt;a href=\"https://lruihao.github.io/html-demo/mermaid.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;狠狠戳这里查看效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;\n&amp;lt;html lang=&amp;#34;en&amp;#34;&amp;gt;\n&amp;lt;head&amp;gt;\n &amp;lt;meta charset=&amp;#34;UTF-8&amp;#34;&amp;gt;\n &amp;lt;meta name=&amp;#34;viewport&amp;#34; content=&amp;#34;width=device-width, initial-scale=1.0&amp;#34;&amp;gt;\n &amp;lt;title&amp;gt;Mermaid Light/Dark Mode switching&amp;lt;/title&amp;gt;\n &amp;lt;style&amp;gt;\n .diagrams-container {\n display: flex;\n justify-content: space-evenly;\n }\n .mermaid-container {\n .mermaid-dark {\n display: none;\n }\n\n [data-theme=&amp;#34;dark&amp;#34;] &amp;amp; {\n .mermaid {\n display: none;\n }\n .mermaid-dark {\n display: block;\n }\n }\n }\n &amp;lt;/style&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;lt;body&amp;gt;\n &amp;lt;script&amp;gt;\n function toggleTheme() {\n const currentTheme = document.body.dataset.theme;\n const newTheme = currentTheme === &amp;#39;dark&amp;#39; ? &amp;#39;default&amp;#39; : &amp;#39;dark&amp;#39;;\n document.body.dataset.theme = newTheme;\n }\n &amp;lt;/script&amp;gt;\n &amp;lt;button id=&amp;#34;toggler&amp;#34;&amp;gt;切换主题&amp;lt;/button&amp;gt;\n &amp;lt;div class=&amp;#34;diagrams-container&amp;#34;&amp;gt;\n &amp;lt;div class=&amp;#34;mermaid-container&amp;#34;&amp;gt;\n &amp;lt;pre class=&amp;#34;mermaid&amp;#34;&amp;gt;graph TD;\n A[开始] --&amp;gt; B{是否完成？};\n B -- 是 --&amp;gt; C[结束];\n B -- 否 --&amp;gt; D[继续];\n D --&amp;gt; B;\n &amp;lt;/pre&amp;gt;\n &amp;lt;pre class=&amp;#34;mermaid-dark&amp;#34;&amp;gt;graph TD;\n A[开始] --&amp;gt; B{是否完成？};\n B -- 是 --&amp;gt; C[结束];\n B -- 否 --&amp;gt; D[继续];\n D --&amp;gt; B;\n &amp;lt;/pre&amp;gt;\n &amp;lt;/div&amp;gt;\n &amp;lt;/div&amp;gt;\n\n &amp;lt;script type=&amp;#34;module&amp;#34;&amp;gt;\n import mermaid from &amp;#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs&amp;#39;;\n\n async function loadMermaid(theme) {\n const isDark = theme === &amp;#39;dark&amp;#39;;\n const querySelector = isDark ? &amp;#39;.mermaid-dark&amp;#39; : &amp;#39;.mermaid&amp;#39;;\n mermaid.initialize({ startOnLoad: false, darkMode: isDark, theme });\n // Mermaid run 函数内部会跳过 data-processed 的元素，所以这样不会重复渲染\n await mermaid.run({ querySelector });\n }\n\n await loadMermaid(&amp;#39;default&amp;#39;)\n\n document.getElementById(&amp;#39;toggler&amp;#39;).addEventListener(&amp;#39;click&amp;#39;, () =&amp;gt; {\n const currentTheme = document.body.dataset.theme || &amp;#39;default&amp;#39;;\n const newTheme = currentTheme === &amp;#39;dark&amp;#39; ? &amp;#39;default&amp;#39; : &amp;#39;dark&amp;#39;;\n document.body.dataset.theme = newTheme;\n loadMermaid(newTheme);\n });\n &amp;lt;/script&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"小结与选型建议\"&gt;&lt;span&gt;小结与选型建议&lt;/span&gt;\n &lt;a href=\"#%e5%b0%8f%e7%bb%93%e4%b8%8e%e9%80%89%e5%9e%8b%e5%bb%ba%e8%ae%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;毋庸置疑，想要完美的体验，&lt;strong&gt;方案 3️⃣&lt;/strong&gt; 是最优选择， &lt;strong&gt;方案 4️⃣&lt;/strong&gt; 作为方案 1️⃣ 的升级版，整体体验也相对较好。&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;方案&lt;/th&gt;\n &lt;th&gt;实现成本&lt;/th&gt;\n &lt;th&gt;体验&lt;/th&gt;\n &lt;th&gt;是否官方可维护&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;Reinitialize&lt;/td&gt;\n &lt;td&gt;低&lt;/td&gt;\n &lt;td&gt;中等（闪屏）&lt;/td&gt;\n &lt;td&gt;✅&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;CSS invert&lt;/td&gt;\n &lt;td&gt;极低&lt;/td&gt;\n &lt;td&gt;差&lt;/td&gt;\n &lt;td&gt;✅&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;mermaid.live 热替换&lt;/td&gt;\n &lt;td&gt;高&lt;/td&gt;\n &lt;td&gt;极佳&lt;/td&gt;\n &lt;td&gt;❌&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;Reinitialize + CSS&lt;/td&gt;\n &lt;td&gt;中&lt;/td&gt;\n &lt;td&gt;较好&lt;/td&gt;\n &lt;td&gt;✅&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;内部文档 / 博客 / 小工具&lt;/strong&gt; ⇒ 方案 4️⃣&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;赶时间的 MVP&lt;/strong&gt; ⇒ 方案 2️⃣&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;面向 C 端、对体验极端敏感&lt;/strong&gt; ⇒ 方案 3️⃣，但要准备长期跟进&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;img src=\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\" alt=\"featured image\" referrerpolicy=\"no-referrer\"&gt;&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"第一折黑盒现世\"&gt;&lt;span&gt;第一折・黑盒现世&lt;/span&gt;\n &lt;a href=\"#%e7%ac%ac%e4%b8%80%e6%8a%98%e9%bb%91%e7%9b%92%e7%8e%b0%e4%b8%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;昔日，React 少侠仗虚拟 DOM 之剑，Vue 剑仙携响应式绫罗，双雄争霸，血溅前端。&lt;/p&gt;\n&lt;p&gt;忽一日，电闪雷鸣，Chrome 山、Firefox 谷、Safari 崖三地同时金光乍现——一只乌漆嘛黑的小盒破空而出，盒上无门无派，只刻八字：&lt;/p&gt;\n&lt;blockquote class=\"blockquote-center\"&gt;&lt;p&gt;&lt;strong&gt;不拜山头，自成一派。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;盒盖一开，三股真气冲天而起，惊得 React 剑锋一抖，Vue 绫罗乱颤。众修士齐呼：&lt;/p&gt;\n&lt;p&gt;“此乃何物？”&lt;/p&gt;\n&lt;p&gt;盒中悠悠传出一声：&lt;/p&gt;\n&lt;p&gt;“Web Components——浏览器亲儿子，江湖诨号：黑盒扫地僧。”&lt;/p&gt;\n&lt;hr&gt;\n&lt;h2 class=\"heading-element\" id=\"第二折三把钥匙镇山门\"&gt;&lt;span&gt;第二折・三把钥匙镇山门&lt;/span&gt;\n &lt;a href=\"#%e7%ac%ac%e4%ba%8c%e6%8a%98%e4%b8%89%e6%8a%8a%e9%92%a5%e5%8c%99%e9%95%87%e5%b1%b1%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"铸兵符custom-elements\"&gt;&lt;span&gt;铸兵符・Custom Elements&lt;/span&gt;\n &lt;a href=\"#%e9%93%b8%e5%85%b5%e7%ac%a6custom-elements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;凡得此符者，可铸自家神兵。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;my-dog food=&amp;#34;hotpot&amp;#34; mood=&amp;#34;happy&amp;#34;&amp;gt;&amp;lt;/my-dog&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;今日起，标签随你姓，语义随你编，浏览器照单全收，不查户口。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"影分身shadow-dom\"&gt;&lt;span&gt;影分身・Shadow DOM&lt;/span&gt;\n &lt;a href=\"#%e5%bd%b1%e5%88%86%e8%ba%abshadow-dom\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;此术一开，样式、DOM、事件皆入黑屋，外头 CSS 千军万马，休想踏进半步。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;“兄弟，你的 &lt;code&gt;!important&lt;/code&gt; 呢？”&lt;br&gt;\n“抱歉，进了影分身，天王老子也得排队。”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"袖里乾坤html-templates--slots\"&gt;&lt;span&gt;袖里乾坤・HTML Templates &amp;amp; Slots&lt;/span&gt;\n &lt;a href=\"#%e8%a2%96%e9%87%8c%e4%b9%be%e5%9d%a4html-templates--slots\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;袖中一抖，模板千军万马；插槽轻点，内容各就各位。&lt;/p&gt;\n&lt;p&gt;无需编译，无需打包，一颗 &lt;code&gt;&amp;lt;template&amp;gt;&lt;/code&gt; 漂洋过海，落地即插即用。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;这是真正意义上的“一次编写，到处运行”——比 Java 当年喊的口号还真。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;hr&gt;\n&lt;h2 class=\"heading-element\" id=\"第三折风云再起\"&gt;&lt;span&gt;第三折・风云再起&lt;/span&gt;\n &lt;a href=\"#%e7%ac%ac%e4%b8%89%e6%8a%98%e9%a3%8e%e4%ba%91%e5%86%8d%e8%b5%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;黑盒既出，江湖格局瞬变：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;微前端&lt;/strong&gt;：Vue2、Vue3、React18、Angular 同屏共舞，互不打脸。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;设计系统&lt;/strong&gt;：按钮、输入框、LOGO 化身“原子暗器”，任何门派伸手即取。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;长尾奇袭&lt;/strong&gt;：Chrome 插件、VS Code 插件、微信小程序、低代码山寨，皆呼“真香”。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;长寿秘籍&lt;/strong&gt;：框架蜜月三年，黑盒随浏览器升级十年，npm 弃坑它不弃。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;hr&gt;\n&lt;h2 class=\"heading-element\" id=\"第四折范式转移浏览器登堂入室\"&gt;&lt;span&gt;第四折・范式转移・浏览器登堂入室&lt;/span&gt;\n &lt;a href=\"#%e7%ac%ac%e5%9b%9b%e6%8a%98%e8%8c%83%e5%bc%8f%e8%bd%ac%e7%a7%bb%e6%b5%8f%e8%a7%88%e5%99%a8%e7%99%bb%e5%a0%82%e5%85%a5%e5%ae%a4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当日头西斜，江湖忽然风起。众侠回头一看，浏览器老馆主身披龙袍、脚踏赤霄，一步跨上金銮殿。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"旧朝遗诏从虚拟机到原生执政\"&gt;&lt;span&gt;旧朝遗诏：从“虚拟机”到“原生执政”&lt;/span&gt;\n &lt;a href=\"#%e6%97%a7%e6%9c%9d%e9%81%97%e8%af%8f%e4%bb%8e%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%88%b0%e5%8e%9f%e7%94%9f%e6%89%a7%e6%94%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;过去二十年，前端史是一部“夺权史”：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;jQuery 夺的是 DOM 的刀；&lt;/li&gt;\n&lt;li&gt;Angular 夺的是模块的印；&lt;/li&gt;\n&lt;li&gt;React 夺的是渲染的剑；&lt;/li&gt;\n&lt;li&gt;Vue 夺的是状态的符。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;四把大印加身，浏览器反成“空壳天子”。&lt;/p&gt;\n&lt;p&gt;而今，老馆主一声令下：“朕即框架，诸卿退班！”&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"三权分立新标准下的江湖秩序\"&gt;&lt;span&gt;三权分立：新标准下的江湖秩序&lt;/span&gt;\n &lt;a href=\"#%e4%b8%89%e6%9d%83%e5%88%86%e7%ab%8b%e6%96%b0%e6%a0%87%e5%87%86%e4%b8%8b%e7%9a%84%e6%b1%9f%e6%b9%96%e7%a7%a9%e5%ba%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;权柄&lt;/th&gt;\n &lt;th&gt;归属&lt;/th&gt;\n &lt;th&gt;职责&lt;/th&gt;\n &lt;th&gt;口号&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;立法权&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;WHATWG/W3C&lt;/td&gt;\n &lt;td&gt;写圣旨（HTML、CSS、DOM 标准）&lt;/td&gt;\n &lt;td&gt;“凡入典章，万世不易。”&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;执法权&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;浏览器内核&lt;/td&gt;\n &lt;td&gt;掌御林军（渲染管线、沙箱、安全）&lt;/td&gt;\n &lt;td&gt;“有朕一日，天下无刀兵。”&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;行政权&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;开发者 &amp;amp; 工具链&lt;/td&gt;\n &lt;td&gt;管民生（DX、脚手架、调试器）&lt;/td&gt;\n &lt;td&gt;“百姓只用敲锣，不必造炮。”&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;p&gt;Web Components 正是老馆主钦点的 &lt;strong&gt;“锦衣卫”&lt;/strong&gt;。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"去框架化的三重暗涌\"&gt;&lt;span&gt;去框架化的三重暗涌&lt;/span&gt;\n &lt;a href=\"#%e5%8e%bb%e6%a1%86%e6%9e%b6%e5%8c%96%e7%9a%84%e4%b8%89%e9%87%8d%e6%9a%97%e6%b6%8c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;编译终点迁移&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;昨日：Babel/Vite → React/Vue 运行时；&lt;/p&gt;\n&lt;p&gt;今日：Babel/Vite → Web Components 原生指令。&lt;/p&gt;\n&lt;p&gt;框架退居“DX 大臣”，不再染指最终字节码。&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;生态颗粒度下沉&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;UI 库不再打包成“全家桶”，而是 CDN 单文件组件：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;https://unpkg.com/@ui/button.js&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;按需即取，HTTP 缓存即版本管理，npm install 沦为可选项。&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;生命周期归一&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;React 的 &lt;code&gt;useEffect&lt;/code&gt;、Vue 的 &lt;code&gt;onMounted&lt;/code&gt;、Svelte 的 &lt;code&gt;onMount&lt;/code&gt;，&lt;/p&gt;\n&lt;p&gt;最终都得翻译成同一套浏览器生命周期：&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;connectedCallback&lt;/code&gt;、&lt;code&gt;disconnectedCallback&lt;/code&gt;、&lt;code&gt;attributeChangedCallback&lt;/code&gt;。&lt;/p&gt;\n&lt;p&gt;框架语法糖越甜，底层 API 越收敛，直至“糖衣”可有可无。&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"未来图景十年后的登基大典\"&gt;&lt;span&gt;未来图景：十年后的登基大典&lt;/span&gt;\n &lt;a href=\"#%e6%9c%aa%e6%9d%a5%e5%9b%be%e6%99%af%e5%8d%81%e5%b9%b4%e5%90%8e%e7%9a%84%e7%99%bb%e5%9f%ba%e5%a4%a7%e5%85%b8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;2027&lt;/strong&gt;：浏览器内置 signals 提案落地，状态管理回归原生；&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;2029&lt;/strong&gt;：CSS &lt;code&gt;@scope&lt;/code&gt; + &lt;code&gt;@state&lt;/code&gt; 双剑合璧，Shadow DOM 自带响应式；&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;2031&lt;/strong&gt;：HTTP/4 多路复用 + Import Map 2.0，让“一行 &lt;code&gt;&amp;lt;script type=importmap&amp;gt;&lt;/code&gt; 即 CDN 全图”成为标配。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;届时，开发者只需写：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;my-app&amp;gt;&amp;lt;/my-app&amp;gt;\n&amp;lt;script type=&amp;#34;module&amp;#34; src=&amp;#34;app.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;框架？&lt;/p&gt;\n&lt;p&gt;“哦，那是旧朝遗老，偶尔进宫讲史罢了。”&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;老馆主抚须长笑：&lt;br&gt;\n“昔日你们借我地基起高楼，今日我把高楼收归国有。&lt;/p&gt;\n&lt;p&gt;范式逆流，不是革命，是回家。”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;hr&gt;\n&lt;h2 class=\"heading-element\" id=\"尾声血雨腥风\"&gt;&lt;span&gt;尾声・血雨腥风&lt;/span&gt;\n &lt;a href=\"#%e5%b0%be%e5%a3%b0%e8%a1%80%e9%9b%a8%e8%85%a5%e9%a3%8e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;“老衲不挑框架，不拒工具，但有一语相赠：&lt;br&gt;\n十年之后，你迁移的是框架，还是我？”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;江湖血雨腥风，黑盒已开。&lt;/p&gt;\n&lt;p&gt;要么守着旧山门，十年后再为迁移埋单；&lt;/p&gt;\n&lt;p&gt;要么此刻随扫地僧下山，让代码像 HTML 一样长青。&lt;/p&gt;\n&lt;p&gt;&lt;strong&gt;下回分解&lt;/strong&gt;：&lt;/p&gt;\n&lt;p&gt;“5 分钟，一指定乾坤——纯原生撸一只可复用计数器，再扔进 React、Vue、Svelte 乱炖！”&lt;/p&gt;\n&lt;hr&gt;\n&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;哈哈哈哈哈哈哈，以抖机灵的形式简单聊了一下 Web Components 的发展历程和未来趋势。&lt;/p&gt;\n&lt;p&gt;我对 Web Components 充满了浓厚的兴趣，决定花点时间研究研究。&lt;br&gt;\n剩余的内容在 &lt;a href=\"https://lruihao.cn/collections/web-components/\"&gt;Web Components 系列文章&lt;/a&gt; 将会持续更新，敬请期待！&lt;/p&gt;&lt;/div&gt;</description></item><item><title>Code Playground</title><link>https://lruihao.cn/posts/code-playground/</link><pubDate>Mon, 04 Aug 2025 11:37:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/code-playground/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;以下是常见的在线代码演示和开发环境服务，适合不同场景使用：&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;名称&lt;/th&gt;\n &lt;th&gt;特点与适用场景&lt;/th&gt;\n &lt;th&gt;网址&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;CodeSandbox&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;支持前后端全栈开发，内置 Docker，支持 React、Vue、Node、Python 等，适合复杂项目&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://codesandbox.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://codesandbox.io&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;CodePen&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;专注于前端小效果演示，社区活跃，适合分享和展示 HTML/CSS/JS 片段&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://codepen.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://codepen.io&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;JSFiddle&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;轻量级前端代码片段运行环境，适合快速测试和分享小 demo&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://jsfiddle.net\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://jsfiddle.net&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;JS Bin&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;类似 JSFiddle，支持实时协作和分享，适合调试和教学&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://jsbin.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://jsbin.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;Playcode.io&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;无需登录即可运行 JS/TS，界面类似本地 IDE，适合快速原型开发&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://playcode.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://playcode.io&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;Replit&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;支持多语言（如 Python、Java、C++），适合教育用途和全栈开发&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://replit.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://replit.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;StackBlitz&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;基于浏览器的全栈 IDE，支持 Node、React、Angular 等框架，自动部署到 Vercel，适合快速原型和教程&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://stackblitz.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://stackblitz.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;Gitpod&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;基于 VS Code 的云端 IDE，适合 GitHub 项目快速启动和协作&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://gitpod.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://gitpod.io&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;strong&gt;码上掘金&lt;/strong&gt;&lt;/td&gt;\n &lt;td&gt;国内版轻量 Playground，支持 React、Vue 等框架，适合中文用户&lt;/td&gt;\n &lt;td&gt;&lt;a href=\"https://code.juejin.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://code.juejin.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;</description></item><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/caniuse.webp' alt=\"caniuse 示例\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/baseline.png' alt=\"baseline 示例\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-特性\"&gt;&lt;span&gt;✨ 特性&lt;/span&gt;\n &lt;a href=\"#-%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;🎯 &lt;strong&gt;轻松集成&lt;/strong&gt;：即插即用的 Web 组件，适用于任何框架或原生 HTML&lt;/li&gt;\n&lt;li&gt;🎨 &lt;strong&gt;主题支持&lt;/strong&gt;：自动、浅色和深色主题，适应您的设计&lt;/li&gt;\n&lt;li&gt;📱 &lt;strong&gt;响应式&lt;/strong&gt;：根据内容自动调整高度&lt;/li&gt;\n&lt;li&gt;⚡ &lt;strong&gt;轻量级&lt;/strong&gt;：使用 Lit 构建，最小化包体积&lt;/li&gt;\n&lt;li&gt;🛠️ &lt;strong&gt;可定制&lt;/strong&gt;：配置数据源、时间范围和外观&lt;/li&gt;\n&lt;li&gt;🔒 &lt;strong&gt;类型安全&lt;/strong&gt;：完整的 TypeScript 支持和全面的类型定义&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"-快速开始\"&gt;&lt;span&gt;🚀 快速开始&lt;/span&gt;\n &lt;a href=\"#-%e5%bf%ab%e9%80%9f%e5%bc%80%e5%a7%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"cdn推荐\"&gt;&lt;span&gt;CDN（推荐）&lt;/span&gt;\n &lt;a href=\"#cdn%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;在您的 HTML 中添加脚本标签：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后使用组件：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;caniuse-embed feature=&amp;#34;css-grid&amp;#34;&amp;gt;&amp;lt;/caniuse-embed&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"npm-安装\"&gt;&lt;span&gt;NPM 安装&lt;/span&gt;\n &lt;a href=\"#npm-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;npm install @cell-x/caniuse-embed-element&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;import &amp;#39;@cell-x/caniuse-embed-element&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-使用示例\"&gt;&lt;span&gt;📖 使用示例&lt;/span&gt;\n &lt;a href=\"#-%e4%bd%bf%e7%94%a8%e7%a4%ba%e4%be%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"基本用法\"&gt;&lt;span&gt;基本用法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;caniuse-embed feature=&amp;#34;css-grid&amp;#34;&amp;gt;&amp;lt;/caniuse-embed&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"使用-baseline-支持\"&gt;&lt;span&gt;使用 Baseline 支持&lt;/span&gt;\n &lt;a href=\"#%e4%bd%bf%e7%94%a8-baseline-%e6%94%af%e6%8c%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;显示功能的浏览器兼容性基线信息：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;caniuse-embed feature=&amp;#34;css-grid&amp;#34; baseline&amp;gt;&amp;lt;/caniuse-embed&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"自定义配置\"&gt;&lt;span&gt;自定义配置&lt;/span&gt;\n &lt;a href=\"#%e8%87%aa%e5%ae%9a%e4%b9%89%e9%85%8d%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;caniuse-embed\n feature=&amp;#34;flexbox&amp;#34;\n theme=&amp;#34;dark&amp;#34;\n past=&amp;#34;3&amp;#34;\n future=&amp;#34;2&amp;#34;\n baseline\n origin=&amp;#34;https://caniuse.lruihao.cn&amp;#34;\n&amp;gt;&amp;lt;/caniuse-embed&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;FRAMEWORK_INTEGRATION.md&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"框架集成\"&gt;&lt;span&gt;框架集成&lt;/span&gt;\n &lt;a href=\"#%e6%a1%86%e6%9e%b6%e9%9b%86%e6%88%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;以下是使用 Vue.js 的示例。更多框架集成示例，请参阅 &lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./FRAMEWORK_INTEGRATION.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FRAMEWORK_INTEGRATION.md&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;script setup&amp;gt;\nimport &amp;#39;@cell-x/caniuse-embed-element&amp;#39;\n&amp;lt;/script&amp;gt;\n\n&amp;lt;template&amp;gt;\n &amp;lt;div&amp;gt;\n &amp;lt;caniuse-embed\n feature=&amp;#34;css-grid&amp;#34;\n theme=&amp;#34;dark&amp;#34;\n :past=&amp;#34;3&amp;#34;\n :future=&amp;#34;2&amp;#34;\n /&amp;gt;\n &amp;lt;/div&amp;gt;\n&amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-api-参考\"&gt;&lt;span&gt;⚙️ API 参考&lt;/span&gt;\n &lt;a href=\"#-api-%e5%8f%82%e8%80%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"属性\"&gt;&lt;span&gt;属性&lt;/span&gt;\n &lt;a href=\"#%e5%b1%9e%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;属性&lt;/th&gt;\n &lt;th&gt;类型&lt;/th&gt;\n &lt;th&gt;默认值&lt;/th&gt;\n &lt;th&gt;描述&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;feature&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;''&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;strong&gt;必需&lt;/strong&gt;。caniuse 功能标识符（例如 &amp;lsquo;css-grid&amp;rsquo;, &amp;lsquo;flexbox&amp;rsquo;）&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;past&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;0 - 5&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;显示过去浏览器版本的数量&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;future&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;0 - 3&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;显示未来浏览器版本的数量&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;baseline&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;boolean&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;显示基线浏览器兼容性状态（如果可用）&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;origin&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;'https://caniuse.lruihao.cn'&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;caniuse 嵌入服务的基础 URL&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;theme&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;'auto' | 'light' | 'dark'&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;'auto'&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;嵌入内容的颜色主题&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;loading&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;'eager' | 'lazy'&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;'lazy'&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;iframe 的加载策略（立即加载或延迟加载）&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;&lt;code&gt;自动生成&lt;/code&gt;&lt;/td&gt;\n &lt;td&gt;嵌入实例的唯一标识符&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h3 class=\"heading-element\" id=\"关于-baseline\"&gt;&lt;span&gt;关于 Baseline&lt;/span&gt;\n &lt;a href=\"#%e5%85%b3%e4%ba%8e-baseline\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;code&gt;baseline&lt;/code&gt; 属性显示 Web 功能的 &lt;a href=\"https://web.dev/baseline\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Baseline&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 浏览器兼容性状态。启用后，它会显示功能是否：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;广泛可用&lt;/strong&gt; - 所有主流浏览器都支持&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;新近可用&lt;/strong&gt; - 最近在主流浏览器中可用&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;有限可用&lt;/strong&gt; - 尚未在所有主流浏览器中可用&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;这提供了功能采用情况的快速视觉指示器，帮助开发者在使用 Web 平台功能时做出明智的决策。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"查找功能名称\"&gt;&lt;span&gt;查找功能名称&lt;/span&gt;\n &lt;a href=\"#%e6%9f%a5%e6%89%be%e5%8a%9f%e8%83%bd%e5%90%8d%e7%a7%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;功能名称对应于 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 上使用的标识符。您可以在以下位置找到它们：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;URL 路径：&lt;code&gt;https://caniuse.com/css-grid&lt;/code&gt; → 功能名称是 &lt;code&gt;css-grid&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://caniuse.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 上的搜索结果&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Fyrd/caniuse/tree/master/features-json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse-db&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 仓库&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"常见功能示例\"&gt;&lt;span&gt;常见功能示例&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e8%a7%81%e5%8a%9f%e8%83%bd%e7%a4%ba%e4%be%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;css-grid&lt;/code&gt; - CSS 网格布局&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;flexbox&lt;/code&gt; - 弹性盒子布局&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;arrow-functions&lt;/code&gt; - 箭头函数&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;webp&lt;/code&gt; - WebP 图片格式&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;css-variables&lt;/code&gt; - CSS 自定义属性&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;async-functions&lt;/code&gt; - Async/Await 函数&lt;/li&gt;\n&lt;li&gt;&amp;hellip;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"css-类\"&gt;&lt;span&gt;CSS 类&lt;/span&gt;\n &lt;a href=\"#css-%e7%b1%bb\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;.ciu-embed-iframe&lt;/code&gt; - 嵌入的 iframe 元素&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;.ciu-embed-empty&lt;/code&gt; - 未指定功能时的空状态&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"-浏览器支持\"&gt;&lt;span&gt;🌐 浏览器支持&lt;/span&gt;\n &lt;a href=\"#-%e6%b5%8f%e8%a7%88%e5%99%a8%e6%94%af%e6%8c%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;此 Web 组件适用于支持以下特性的所有现代浏览器：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Custom Elements v1&lt;/li&gt;\n&lt;li&gt;Shadow DOM v1&lt;/li&gt;\n&lt;li&gt;ES2015+ 特性&lt;/li&gt;\n&lt;/ul&gt;\n&lt;!--\n对于较旧的浏览器，请考虑使用 polyfills：\n\n```html\n&lt;script src=\"https://unpkg.com/@webcomponents/webcomponentsjs@^2/webcomponents-loader.js\"&gt;&lt;/script&gt;\n```\n--&gt;\n&lt;h2 class=\"heading-element\" id=\"-开发\"&gt;&lt;span&gt;🔧 开发&lt;/span&gt;\n &lt;a href=\"#-%e5%bc%80%e5%8f%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"前置要求\"&gt;&lt;span&gt;前置要求&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e7%bd%ae%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;Node.js 20+&lt;/li&gt;\n&lt;li&gt;pnpm 10+&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"设置\"&gt;&lt;span&gt;设置&lt;/span&gt;\n &lt;a href=\"#%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 克隆仓库\ngit clone https://github.com/Lruihao/caniuse-embed-element.git\ncd caniuse-embed-element\n\n# 安装依赖\npnpm install\n\n# 启动开发服务器\npnpm dev&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"构建\"&gt;&lt;span&gt;构建&lt;/span&gt;\n &lt;a href=\"#%e6%9e%84%e5%bb%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;# 构建所有格式\npnpm build:all\n\n# 构建特定格式\npnpm build:lib # ES 模块和类型\npnpm build:iife # 用于 CDN 的 IIFE 格式\npnpm build # 演示构建&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"脚本\"&gt;&lt;span&gt;脚本&lt;/span&gt;\n &lt;a href=\"#%e8%84%9a%e6%9c%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;pnpm dev&lt;/code&gt; - 启动开发服务器&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm build&lt;/code&gt; - 构建演示&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm build:lib&lt;/code&gt; - 构建库（ES 模块 + 类型）&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm build:iife&lt;/code&gt; - 构建 CDN 的 IIFE 包&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm build:all&lt;/code&gt; - 构建所有格式&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm lint&lt;/code&gt; - 运行 ESLint&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;pnpm preview&lt;/code&gt; - 预览构建的演示&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"-发行版\"&gt;&lt;span&gt;📦 发行版&lt;/span&gt;\n &lt;a href=\"#-%e5%8f%91%e8%a1%8c%e7%89%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;该包提供多种构建格式：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;ES 模块&lt;/strong&gt;（&lt;code&gt;dist/&lt;/code&gt;）- 用于现代打包工具&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;IIFE 包&lt;/strong&gt;（&lt;code&gt;dist/caniuse-embed-element.iife.js&lt;/code&gt;）- 用于 CDN&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;TypeScript 定义&lt;/strong&gt;（&lt;code&gt;dist/types/&lt;/code&gt;）- 用于 TypeScript 项目&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"-贡献\"&gt;&lt;span&gt;🤝 贡献&lt;/span&gt;\n &lt;a href=\"#-%e8%b4%a1%e7%8c%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;欢迎贡献！请随时提交 Pull Request。对于重大更改，请先开 issue 讨论您想要更改的内容。&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;Fork 仓库&lt;/li&gt;\n&lt;li&gt;创建您的功能分支（&lt;code&gt;git checkout -b feature/amazing-feature&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;提交您的更改（&lt;code&gt;git commit -m 'Add some amazing feature'&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;推送到分支（&lt;code&gt;git push origin feature/amazing-feature&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;打开 Pull Request\nLICENSE&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"-许可证\"&gt;&lt;span&gt;📄 许可证&lt;/span&gt;\n &lt;a href=\"#-%e8%ae%b8%e5%8f%af%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;本项目采用 MIT 许可证。详情请参阅 &lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LICENSE&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 文件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-致谢\"&gt;&lt;span&gt;🙏 致谢&lt;/span&gt;\n &lt;a href=\"#-%e8%87%b4%e8%b0%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/pengzhanbo/caniuse-embed\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;pengzhanbo/caniuse-embed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/mdn/browser-compat-data\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;mdn-browser-compat-data&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; - 来自 MDN 的全面浏览器兼容性数据&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Fyrd/caniuse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Fyrd/caniuse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; - 原始浏览器支持数据&lt;/li&gt;\n&lt;/ul&gt;\n&lt;hr&gt;\n&lt;p&gt;由 &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 用 ❤️ 制作&lt;/p&gt;</description></item><item><title>A custom element for viewing and interacting with JSON data.</title><link>https://lruihao.cn/projects/lruihao/json-viewer-element/</link><pubDate>Sat, 19 Jul 2025 07:05:07 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/json-viewer-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased&gt;&lt;span&gt;&amp;lt;json-viewer&amp;gt; Element&lt;/span&gt;\n &lt;a href=\"#json-viewer-element\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;简体中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能特性\"&gt;&lt;span&gt;功能特性&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;🌟 &lt;strong&gt;Web 组件&lt;/strong&gt;：原生，无框架依赖&lt;/li&gt;\n&lt;li&gt;🎨 &lt;strong&gt;主题&lt;/strong&gt;：支持明暗模式&lt;/li&gt;\n&lt;li&gt;📦 &lt;strong&gt;盒装&lt;/strong&gt;：可选边框与内边距&lt;/li&gt;\n&lt;li&gt;📋 &lt;strong&gt;可复制&lt;/strong&gt;：一键复制 JSON&lt;/li&gt;\n&lt;li&gt;🔑 &lt;strong&gt;排序&lt;/strong&gt;：支持键排序&lt;/li&gt;\n&lt;li&gt;🔍 &lt;strong&gt;展开深度&lt;/strong&gt;：可控初始展开层级&lt;/li&gt;\n&lt;li&gt;🧩 &lt;strong&gt;自定义复制按钮&lt;/strong&gt;：slot 插槽支持&lt;/li&gt;\n&lt;li&gt;🧬 &lt;strong&gt;类型高亮&lt;/strong&gt;：多种类型高亮&lt;/li&gt;\n&lt;li&gt;🛠️ &lt;strong&gt;自定义事件&lt;/strong&gt;：支持 copy/toggle 事件监听&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"使用方法\"&gt;&lt;span&gt;使用方法&lt;/span&gt;\n &lt;a href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;npm install json-viewer-element&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"引入\"&gt;&lt;span&gt;引入&lt;/span&gt;\n &lt;a href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;h4 class=\"heading-element\" id=\"作为模块\"&gt;&lt;span&gt;作为模块&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;import &amp;#39;json-viewer-element&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=\"heading-element\" id=\"umd-cdn\"&gt;&lt;span&gt;UMD (CDN)&lt;/span&gt;\n &lt;a href=\"#umd-cdn\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"基本用法\"&gt;&lt;span&gt;基本用法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;手动绑定 value：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;json-viewer id=&amp;#34;viewer&amp;#34; boxed copyable sort expand-depth=&amp;#34;2&amp;#34; theme=&amp;#34;dark&amp;#34;&amp;gt;&amp;lt;/json-viewer&amp;gt;\n&amp;lt;script&amp;gt;\n document.getElementById(&amp;#39;viewer&amp;#39;).value = { hello: &amp;#34;world&amp;#34;, arr: [1,2,3] };\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;直接在标签上绑定 value：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;json-viewer value=&amp;#39;{&amp;#34;hello&amp;#34;:&amp;#34;world&amp;#34;,&amp;#34;arr&amp;#34;:[1,2,3]}&amp;#39; boxed copyable sort expand-depth=&amp;#34;2&amp;#34; theme=&amp;#34;dark&amp;#34;&amp;gt;&amp;lt;/json-viewer&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在 Vue 框架中使用：&lt;/p&gt;\n&lt;p&gt;Vue 2/3 选项式 API：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;template&amp;gt;\n &amp;lt;json-viewer :value=&amp;#34;JSON.stringify(json)&amp;#34; boxed copyable sort expand-depth=&amp;#34;2&amp;#34; theme=&amp;#34;dark&amp;#34;&amp;gt;&amp;lt;/json-viewer&amp;gt;\n&amp;lt;/template&amp;gt;\n\n&amp;lt;script&amp;gt;\nexport default {\n data() {\n return {\n json: { hello: &amp;#34;world&amp;#34;, arr: [1,2,3] },\n }\n },\n}\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vue 3 组合式 API：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;script lang=&amp;#34;ts&amp;#34; setup&amp;gt;\nimport { ref } from &amp;#39;vue&amp;#39;\nconst json = ref({ hello: &amp;#34;world&amp;#34;, arr: [1,2,3] })\n&amp;lt;/script&amp;gt;\n\n&amp;lt;template&amp;gt;\n &amp;lt;json-viewer :value=&amp;#34;JSON.stringify(json)&amp;#34; boxed copyable sort expand-depth=&amp;#34;2&amp;#34; theme=&amp;#34;dark&amp;#34;&amp;gt;&amp;lt;/json-viewer&amp;gt;\n&amp;lt;/template&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class=\"alert alert-tip\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/&gt;&lt;/svg&gt;提示&lt;/p&gt;&lt;p&gt;&lt;a href=\"https://cn.vuejs.org/guide/extras/web-components.html#skipping-component-resolution\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;跳过组件解析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;为了让 Vue 知道某些元素应被视为自定义元素并跳过组件解析，我们可以指定 &lt;a href=\"https://cn.vuejs.org/api/application.html#app-config-compileroptions\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;code&gt;compilerOptions.isCustomElement&lt;/code&gt; 选项&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;// vite.config.js\nimport vue from &amp;#39;@vitejs/plugin-vue&amp;#39;\nimport vueJsx from &amp;#39;@vitejs/plugin-vue-jsx&amp;#39;\n\nexport default {\n plugins: [\n vue({\n template: {\n compilerOptions: {\n // 将所有带短横线的标签名都视为自定义元素\n isCustomElement: tag =&amp;gt; tag.includes(&amp;#39;-&amp;#39;)\n }\n }\n }),\n vueJsx({\n // 将所有带短横线的标签名都视为自定义元素\n isCustomElement: tag =&amp;gt; tag.includes(&amp;#39;-&amp;#39;)\n }),\n ]\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果你在 Vue 中使用 ESLint，可能需要配置忽略自定义元素：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;// eslint.config.js\nexport default {\n rules: {\n &amp;#39;vue/component-name-in-template-casing&amp;#39;: [\n &amp;#39;warn&amp;#39;,\n &amp;#39;PascalCase&amp;#39;,\n {\n registeredComponentsOnly: false,\n ignores: [&amp;#39;/^icon-/&amp;#39;, &amp;#39;json-viewer&amp;#39;],\n },\n ],\n },\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"属性\"&gt;&lt;span&gt;属性&lt;/span&gt;\n &lt;a href=\"#%e5%b1%9e%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-tip\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/&gt;&lt;/svg&gt;提示&lt;/p&gt;&lt;p&gt;在 Vue 等框架中使用时，value 和 copyable 属性的值需要转成字符串传入。&lt;/p&gt;&lt;/div&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;属性&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;类型&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;默认值&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;说明&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;value&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;object / array / string / number / boolean&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;null&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;JSON 数据&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;expand-depth&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;1&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;初始展开层级&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyable&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;boolean / CopyableOptions&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;false&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;启用复制按钮或自定义复制按钮配置（见下表）&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;sort&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;boolean&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;false&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;是否对对象键排序&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;boxed&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;boolean&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;false&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;是否显示边框和内边距&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;theme&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;rsquo;light&amp;rsquo; / &amp;lsquo;dark&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;rsquo;light'&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;主题&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;parse&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;boolean&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;true&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;字符串值是否自动解析为 JSON&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h3 class=\"heading-element\" id=\"copyableoptions\"&gt;&lt;span&gt;CopyableOptions&lt;/span&gt;\n &lt;a href=\"#copyableoptions\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;属性&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;类型&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;默认值&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;说明&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyText&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;string&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Copy&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;复制按钮显示的文本&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copiedText&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;string&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Copied&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;复制成功后显示的文本&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;timeout&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;2000&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;显示 copiedText 的时长 (ms)&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;align&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;rsquo;left&amp;rsquo; / &amp;lsquo;right&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;right&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;复制按钮对齐方式&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"事件\"&gt;&lt;span&gt;事件&lt;/span&gt;\n &lt;a href=\"#%e4%ba%8b%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;事件&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;说明&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copy-success&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;复制成功后触发&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copy-error&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;复制失败后触发&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;toggle&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;节点折叠/展开时触发&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"插槽\"&gt;&lt;span&gt;插槽&lt;/span&gt;\n &lt;a href=\"#%e6%8f%92%e6%a7%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;自定义复制按钮：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;&amp;lt;json-viewer copyable&amp;gt;\n &amp;lt;button slot=&amp;#34;copy-button&amp;#34;&amp;gt;复制 JSON&amp;lt;/button&amp;gt;\n&amp;lt;/json-viewer&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"license\"&gt;&lt;span&gt;License&lt;/span&gt;\n &lt;a href=\"#license\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://opensource.org/licenses/MIT\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MIT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Copyright (c) 2025-present &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CSS @layer：构建更高效、更可维护的样式层级</title><link>https://lruihao.cn/posts/at-layer/</link><pubDate>Wed, 18 Jun 2025 10:35:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/at-layer/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 &lt;code&gt;@layer&lt;/code&gt; 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 &lt;code&gt;@layer&lt;/code&gt; 的背景、作用以及语法，带你一探究竟。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"layer-的背景\"&gt;&lt;span&gt;16 &lt;code&gt;@layer&lt;/code&gt; 的背景&lt;/span&gt;\n &lt;a href=\"#layer-%e7%9a%84%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 CSS 的发展历程中，样式的优先级规则一直是核心概念之一。默认情况下，CSS 样式按照选择器的优先级（如内联样式 &amp;gt; ID 选择器 &amp;gt; 类选择器 &amp;gt; 元素选择器）以及代码的书写顺序来决定最终的样式效果。然而，这种简单的优先级规则在大型项目中常常会引发问题：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;&lt;strong&gt;样式冲突&lt;/strong&gt;：多个样式规则可能同时作用于同一个元素，导致样式冲突，开发者需要不断调整选择器的优先级来解决问题。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;维护困难&lt;/strong&gt;：随着项目的复杂度增加，样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;组件化开发的挑战&lt;/strong&gt;：在组件化开发中，不同组件的样式可能会相互干扰，导致样式管理混乱。&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;为了解决这些问题，CSS 工作组引入了 &lt;code&gt;@layer&lt;/code&gt; 规则。&lt;code&gt;@layer&lt;/code&gt; 允许开发者显式地定义样式的层级关系，从而更好地组织和管理样式规则。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"layer-的作用\"&gt;&lt;span&gt;17 &lt;code&gt;@layer&lt;/code&gt; 的作用&lt;/span&gt;\n &lt;a href=\"#layer-%e7%9a%84%e4%bd%9c%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"定义样式层级\"&gt;&lt;span&gt;17.1 定义样式层级&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e4%b9%89%e6%a0%b7%e5%bc%8f%e5%b1%82%e7%ba%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;code&gt;@layer&lt;/code&gt; 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层，我们可以明确地控制样式的优先级顺序。例如，我们可以将基础样式定义在较低的层级，而将特定组件的样式定义在较高的层级，从而避免样式冲突。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer base {\n body {\n font-family: Arial, sans-serif;\n margin: 0;\n padding: 0;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"提升代码可维护性\"&gt;&lt;span&gt;17.2 提升代码可维护性&lt;/span&gt;\n &lt;a href=\"#%e6%8f%90%e5%8d%87%e4%bb%a3%e7%a0%81%e5%8f%af%e7%bb%b4%e6%8a%a4%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;使用 &lt;code&gt;@layer&lt;/code&gt; 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层，便于后续的修改和扩展。同时，分层的样式规则也更容易被团队成员理解和协作。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"支持组件化开发\"&gt;&lt;span&gt;17.3 支持组件化开发&lt;/span&gt;\n &lt;a href=\"#%e6%94%af%e6%8c%81%e7%bb%84%e4%bb%b6%e5%8c%96%e5%bc%80%e5%8f%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;在组件化开发中，&lt;code&gt;@layer&lt;/code&gt; 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级，从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。&lt;/p&gt;\n&lt;p&gt;例如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer components {\n .cell-button {\n background-color: blue;\n color: white;\n padding: 10px;\n border: none;\n cursor: pointer;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在业务代码中，我们可以无视组件 CSS 的优先级，直接进行重置：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;.cell-button {\n background-color: red; /* 覆盖组件样式 */\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;眼见为实：&lt;/p&gt;\n&lt;iframe src=\"https://lruihao.github.io/html-demo/css-at-layer\" height=\"50px\" width=\"100%\"&gt;&lt;/iframe&gt;\n&lt;p&gt;可以理解为 &lt;code&gt;@layer&lt;/code&gt; 定义的层级会整体下降一个优先级，这样便于分开业务代码和组件代码的样式管理。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"layer-的语法\"&gt;&lt;span&gt;18 &lt;code&gt;@layer&lt;/code&gt; 的语法&lt;/span&gt;\n &lt;a href=\"#layer-%e7%9a%84%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;18.1 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;@layer layer-name? {rules}\n@layer layer-name;\n@layer layer-name, layer-name, layer-name;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;简而言之，&lt;code&gt;@layer&lt;/code&gt; 规则可以用来&lt;strong&gt;定义一个样式层级&lt;/strong&gt;或者&lt;strong&gt;改变现有层级的优先级&lt;/strong&gt;。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;code&gt;@layer layer-name? {rules};&lt;/code&gt; 这种形式用于定义一个新的样式层级，如果名称为空，则为匿名层级。&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;@layer&lt;/code&gt; 后接一个或多个层级名称，用于指定样式层级的优先级顺序，按照前后顺序。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"让整个-css-文件变成-layer\"&gt;&lt;span&gt;18.2 让整个 CSS 文件变成 &lt;code&gt;@layer&lt;/code&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%ae%a9%e6%95%b4%e4%b8%aa-css-%e6%96%87%e4%bb%b6%e5%8f%98%e6%88%90-layer\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;如果我们希望将整个 CSS 文件作为一个层级，可以使用以下语法：&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;@import&lt;/code&gt; 中使用：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@import (utilities.css) layer(utilities);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;&amp;lt;link&amp;gt;&lt;/code&gt; 元素引用 (*)：&lt;/p&gt;\n&lt;div class=\"alert alert-warning\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z\"/&gt;&lt;/svg&gt;警告&lt;/p&gt;&lt;p&gt;该用法有待考证，在 MDN 上尚未找到明确文档。&lt;/p&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;utilities.css&amp;#34; layer=&amp;#34;utilities&amp;#34;&amp;gt;\n&amp;lt;!-- 样式引入到一个匿名级联层中 --&amp;gt;\n&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;utilities.css&amp;#34; layer&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"嵌套层级\"&gt;&lt;span&gt;18.3 嵌套层级&lt;/span&gt;\n &lt;a href=\"#%e5%b5%8c%e5%a5%97%e5%b1%82%e7%ba%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;code&gt;@layer&lt;/code&gt; 也支持嵌套定义，这使得我们可以在一个层级中进一步细分样式规则。例如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer base {\n @layer typography {\n h1 {\n font-size: 24px;\n }\n p {\n font-size: 16px;\n }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;在嵌套层级中，外层层级的优先级低于内层层级。&lt;/p&gt;\n&lt;p&gt;多嵌套语法下的优先级：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer A {\n p { color: red; }\n @layer B {\n p { color: green; }\n }\n}\n@layer C {\n p { color: orange; }\n @layer D {\n p { color: blue; }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;其中的优先级大小是这样的：C &amp;gt; C.D &amp;gt; A &amp;gt; A.B&lt;/p&gt;\n&lt;p&gt;另外，嵌套语法还支持使用级联写法简化。&lt;/p&gt;\n&lt;p&gt;例如，普通内外嵌套写法：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer outer {\n button {\n width: 100px;\n height: 30px; \n }\n @layer inner {\n button {\n height: 40px;\n width: 160px;\n } \n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上面的内外嵌套语法还可以写成下面这样：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;@layer outer {\n button {\n width: 100px;\n height: 30px; \n }\n}\n@layer outer.inner {\n button {\n height: 40px;\n width: 160px;\n } \n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"layer-的兼容性\"&gt;&lt;span&gt;19 &lt;code&gt;@layer&lt;/code&gt; 的兼容性&lt;/span&gt;\n &lt;a href=\"#layer-%e7%9a%84%e5%85%bc%e5%ae%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;caniuse-embed feature=\"mdn-css_at-rules_layer\" past=\"2\" future=\"1\" origin=\"https://caniuse.lruihao.cn\" loading=\"lazy\"&gt;&lt;/caniuse-embed&gt;\n&lt;h2 class=\"heading-element\" id=\"参考\"&gt;&lt;span&gt;20 参考&lt;/span&gt;\n &lt;a href=\"#%e5%8f%82%e8%80%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/@layer\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MDN Web Docs - @layer&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://www.zhangxinxu.com/wordpress/2022/05/css-layer-rule/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;详解日后定会大规模使用的 CSS @layer 规则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"前提条件\"&gt;&lt;span&gt;10 前提条件&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e6%8f%90%e6%9d%a1%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在开始之前，请确保你已经完成以下步骤：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;安装并配置好 NGINX。&lt;/li&gt;\n&lt;li&gt;完成 Vue.js 应用的开发，并使用 &lt;code&gt;npm run build&lt;/code&gt; 命令打包应用。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"nginx-配置示例\"&gt;&lt;span&gt;11 NGINX 配置示例&lt;/span&gt;\n &lt;a href=\"#nginx-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;以下是一个典型的 NGINX 配置示例：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;server {\n listen 80; # 监听80端口\n server_name your_domain.com; # 替换为你的域名\n\n location / {\n root /path/to/your/dist; # 指向打包后的文件夹\n try_files $uri $uri/ /index.html; # 尝试访问指定文件，如果找不到则重定向到index.html\n }\n\n # API 代理设置\n location /api/ {\n proxy_pass http://your_api_server; # 替换为你的 API 服务器地址\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"配置说明\"&gt;&lt;span&gt;11.1 配置说明&lt;/span&gt;\n &lt;a href=\"#%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;listen&lt;/strong&gt;: 指定 NGINX 监听的端口，通常是 80（HTTP）。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;server_name&lt;/strong&gt;: 配置你的域名。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;root&lt;/strong&gt;: 指向 Vue 应用的打包输出目录，通常是 &lt;code&gt;dist&lt;/code&gt; 文件夹。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;try_files&lt;/strong&gt;: 尝试访问请求的文件，如果不存在，则返回 &lt;code&gt;index.html&lt;/code&gt;，以允许 Vue Router 处理前端路由。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;location /api/&lt;/strong&gt;: 所有以 &lt;code&gt;/api/&lt;/code&gt; 开头的请求会被代理到指定的 API 服务器。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;proxy_pass&lt;/strong&gt;: 设置 API 请求转发到的后端服务器地址。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"部署步骤\"&gt;&lt;span&gt;11.2 部署步骤&lt;/span&gt;\n &lt;a href=\"#%e9%83%a8%e7%bd%b2%e6%ad%a5%e9%aa%a4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;打包 Vue 应用&lt;/strong&gt;：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;npm run build&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;上传内容&lt;/strong&gt;：将 &lt;code&gt;dist&lt;/code&gt; 文件夹的内容上传到服务器的指定路径。&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;修改 NGINX 配置&lt;/strong&gt;：编辑 NGINX 配置文件，通常在 &lt;code&gt;/etc/nginx/sites-available/default&lt;/code&gt; 或 &lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;。&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;检查配置&lt;/strong&gt;：检查 NGINX 配置是否有语法错误：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;sudo nginx -t&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;&lt;strong&gt;重新加载 NGINX&lt;/strong&gt;：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;sudo systemctl reload nginx&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"总结\"&gt;&lt;span&gt;12 总结&lt;/span&gt;\n &lt;a href=\"#%e6%80%bb%e7%bb%93\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过上述配置，你的 Vue.js 应用将可以在 NGINX 上正常运行，并支持 history 模式的路由。同时，所有以 &lt;code&gt;/api/&lt;/code&gt; 开头的请求将被有效地代理到后端服务器。这样，前端与后端的交互就更加流畅自然。&lt;/p&gt;\n&lt;p&gt;希望这篇文章能帮助你顺利部署 Vue 应用！如有任何问题，欢迎留言讨论。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "js/config/0037bc2c32fa8e81abd15ed406ab2c88.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/021d7a7632f5e9a49828e315b8028cc4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/042a6806e0090fd207a9108f0c2b9f1f.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/063a7c6d2aefb90daf3d805734b1df24.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/067f014b07ee3a506035596baf104864.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/06c7174af922cb41ac234199a8b4709d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/07d140fad64e8e303ead3a6cdf7ac46e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/07dc02755c6f7b78185d6842db700b36.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/087fe8ea85659b55a7d545f2f69d6134.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0bb6dac5aeef225eee1557f8c20108f6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0c0b8df0ebba1c9ee318abc52a8229ef.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0cf6fc71a2aa7176ca55c6bb96d83773.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0d594e779c5ae2bd9b7ddba4f5074b7a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0d8648db64976c5112e4fa3049752404.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0f60328123a2a79d5ddfdb6dfcdfad30.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/0fbd1de114dfdb73770a88111b5d4e31.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/10197f7436eae710bf968c3cba131875.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/11731361789df6557ab8fa35ccb37982.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/13577df3a49a47c9d2b5d13beb4325e1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/13b21784b8ed829def60cfa62398f076.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/151a394dfe55d6be346d8fe3637a8fc0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/160160b17b769c7c43691b7c09140d60.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/19817062b86725f9931c9927d3c37d20.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1a0fd4e09739a1836a4fb4215952202d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1a22a336553538929c787e5f03170f51.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1b078ccc55871dd0d40d77f1056078d0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1c5bbc39c6512b61cc5c915f8ad0b839.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1cd02bf1ad69a440c99ba61b5c6183ed.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1ce2b38079d9b4fc8647b4847733631a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1ce7d401f80e690df073189ecec29477.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1d24d2422bd3fe23b32d8f5ed5a26c3f.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1de9df7c4c69cb31234c5c05cb69693e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/1ef18b020da0fb5d3b2e79d1d399e62c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2053578da0514057166c13965ec58b4e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/20b32ac645052332d31625c852330f19.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/20b75e9cebe826082f74682133ae2ae5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/211c86c12dbc4e740b31b4edc4a9592a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/223b81876e3028aeaa96a2959290d05b.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/22727014067af9c4cd8f1a834df835d1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/22a949cb92801746b6e125c797ebc6d0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/22b590af45577bcd6639362bda0ff70b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/247eb66223c15b4808b09a1d172c70b6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/257907c0ccec1406a7e51c9c17d6584a.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/25c200cb60a3f4bbb4acfa03de8137b0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/27e1cf5e4c051c452d3a3b4306864a77.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2956f1cccb73a886d642d203e4f0bb52.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2b16902a0ab9359c22af350a1293eba5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2c7c25806c1b020cadf6f63e0962305f.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2ce8440d2e698a0bc48ed62d63347606.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2d9c54e40775802a74cf79fe7d2e5158.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/2ef1295d48d146ea03955a5b8beab68d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/321e4c6811fb3e2ea089d57ac3b040bd.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/32933748836d9ddad6b8a9179d32bab3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/32cb17f0202794769e79771235ba6bec.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/334b4758f80bf1340a4e02810b62509b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/344a803009a489a24e0035487899e424.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/34ad5ea3680cfc3332eb04da39f4f743.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/35329dfb1fc66d8a56de7b21aab94c36.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/36735ed50e9a4121e9fea9ef0954a5a1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/36ebddeb1ce8adfbd97498a9ff2c2d7b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3732e41af9de0bc63f40781a99c47060.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/379d6c0822bcdcec980d5a8b073966e0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/38071d54f1ea34a6b632919a315ae439.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/380d79fcfd90b303a04a00efb9ed5ec0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/382d5f75fc970a96ee9777775717ac97.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/38fd272149f9ea5fb309874b8348e534.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/39573cf1686e4588c2700c87529273c0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3ab7b3c0725dcbca5991bf242eb9b0d6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3afb2cc93680553927e6cc9082224ee9.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3b6347f8a397754b4aa70388743c2721.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3bb5f4f8924127e723fa7746bf60bb4a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3c0d788c5aef31e769a7bc0198259867.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3c48228073c0f5dfd0edaf8297e1dba2.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3e1c0a5419cb5b02f60950abdabb060d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3e2b1f699d04d23eb5c686eb812f4dc7.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3e50d109d4df475fb8a6c61436914771.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3ebf363e73290b7b68ae11519f02b692.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3ee519d1095b211e0e845e8f9f096a82.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3f3b3bbb615c034f8f37055427b83892.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/3f8e146f550d20bebe5aa95937adc761.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/41192006e7fb5d2f9f1a7caa97105c8c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/41df7cfd1a135f290b3fa56272d53632.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/4281806367b1de9059a1f848c2510f13.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/431ad847b2fa08d7740410546f00bf5b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/47cdd5023e575a59907d132466ed2a9b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/48d418b2e265ac04d276e23fb980bbd6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/4ca38f0ff587e5775a2d6f1a2dde3c48.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/4d0419f124a75d5a016ebe63f9010fa7.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/4e4f919455da0987a141b4ef412aeb48.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/50a19c19b19fb06da7fc1e0b7a611a2e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/50d88726c42a23edb45562a9bce23a02.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/50ddd55196c0ec608c96d427ebb2fb8f.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5228cc9c439e70c10266f94192573758.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/52ed700aaee4c796d3aba30f6abc325f.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/54639e69f9bb0f26b6e0c20251d837c8.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5954156ca63ba6e21a8d13d55731c53b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5a34e845cf080729c16df88f67bdbcf3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5b8a1dd7275c2db6ccf1e01d55644ac6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5bdc928cd9257d788fb7a5343279fe73.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/5c54b4cdaacef7f7ab4db1bb72ce361a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6044e0fddda1c4891d5575b4e65c5d23.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/62275962ff6d2a8c47a9328a03d0fea6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/644dbb6a92190c74c2ca806d9d56dd02.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/64de0604052d048c582136011aaec101.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6530c9177543fbff69c3660d3e33a81e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/65501877c75fd5623c9ba3a5519c5d9a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/666ed43a5283cf26881a402d93328d8c.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6764dc15ea7b8ee22c2266fbedf1629e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/679d541d97dada7b64e8d7791dacd6ba.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/67cb5d10fdf41c150ceaec0b041ec9e9.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/68476cc29d8bedd521d32ae91b064db6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/68705244048c105f2eac165a741e3182.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/68e86329cdb902703397dd04f5fc4416.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/690c84bc951f94458e7fe0075907e31a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6a3423da80259f1997c2e2252c8554ab.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6c4f5cb0664c744c67d3d8e2ee2a8bff.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6d39ed1e24c47282d4bc7e849660db5e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6dba2d2635ebf1a0a76c65b1308b8eaa.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6e630006d7d1732df7885c17566d2d56.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6f3e0ca7308179c11374fd8095d64f64.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/6fc44cad1abecf6df2cff07272bfd31b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7417807edf3228ede7205ab88ce58ecf.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/74efae613deccc0dcd4093c3f44c600a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/76d3ee0b5aa07dd4d045f569bebb748b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/772eed652fda688964d02acb01784609.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/79c7dd05726956976d682d1ae0b5d84d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/79cb396d7e1fb56b5cf5a14b0b513b34.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7a351a9cd38836cc0730ebeed0d61953.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7ad9cd5126d73a535492159809361cd1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7c52c93570e8548e38dea375ddc00481.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7ca193687bf18f5f37d6d598a9e2d72e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7d2bcc6b215b153c1d49ec5edfede53e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7d42aee776410000268c47280a00c67d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7df4a721a60c5380b21ea35def918bf4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/7e98b2eeb64d081d620055122e9915a0.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"typeit\":{\"cursorChar\":\"|\",\"cursorSpeed\":1000,\"duration\":-1,\"loop\":false,\"speed\":100},\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/80acd2330a03632340c6961a055f9fc3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8133d23d199cb604b3b0b495c34058f9.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/84c9011a7be78653e7be5dc29e91d753.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/85605c5ede51aa5fde314908a0e1dd18.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8576ec274c98b3831668a172fa632d80.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":false,\"shortcode\":true},\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"typeit\":{\"cursorChar\":\"|\",\"cursorSpeed\":1000,\"duration\":-1,\"loop\":false,\"speed\":100},\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/85f41e792ee3de1ac5020de929e1c596.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/88d5bebdacaa8043d0726fa84dbfc257.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/89128e9368d37da24f50b69f56d541fe.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/89372d9c14cb3e6a12d7ded732418f63.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/893dcbfb89ffeacaa99f40f37c31c669.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8c376d7b111a7da475c29028f2fd4330.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8c8e5f3cee9fd116b04e25d061ee3488.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/8e86957d7556b9d8b7ddc1e31bbed823.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/90008290651fdeddf133bee26cc2e3e1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/914a1ddda61ca7ee342100d93e625e25.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/91db0fa13e5e2065c1c8b336b86fc4c5.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/93790f9ff497dfbdac23b3844326f0d5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/939cc2608b36b67d5c2fe1b6dc8ea54b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/9496ca8909ce2321bfc35cbe13d9d281.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/94a9310cd4c8ab0dde63d210c39adfa3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/960bf92a61acbc81aafd4f8882506ca9.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/967022599cfd24670ded11a2c801cb34.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/980c8a4cc81391e2ce4a2bbee7e1e6a9.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/990af5a53b5e9a8d890fd389c6e0cabf.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/996fd5a4211944694571fca1aaa87105.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/9b5d8d6ca9926e02fff9fac8113762be.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/9e104be23a3904181ce3d8ad4f4ab220.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/9e1fc8104320f894b5cb7cbd620e4d93.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/9f7c53c593cacb46be354f01f9719e15.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a0ccfff49c4e05313f93e04c41df9e58.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a2741986477cab7cb901f93ba8362f41.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a2ae81125a3a0bcf0012a4a8dbfee438.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a311b864532fd54bd959242c6376c303.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a3d4eaca0bbaf2e48cb439525f833eed.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a5237505c0018dcaf2332aa645d98fb7.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a543b622ee68b6d53c4400bab804d910.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a56da8a7ff577d3943d46542a4b838fe.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a5c446f7a06efadb1547b74b2a74befd.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a5e7645e82813977ee845e1455ab1c50.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a6da1526d066440ae439665d78a814ba.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a7487aed908c38304252d1bbf8a74f90.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a829e0fd133b98fd41c9ce565fae9ad4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/a9c663e1be35f13be44ee6ec9e190e32.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/aafa3c7949a62e4a9cfc2452c03d5691.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/aba4cbe833311b22bf5d0427f24941e6.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/abd7d90c084fce01e013a12cd9dfb8d4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/adc208d6cb444ffdd3a5dce73c2baee7.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b2974a15012c06b846be42ba82708c32.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b2f0074cce92da89ff8c1bd4899efd32.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b30d1699a32476a23eb4a032f624f821.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b31df2415b2195d8fa30ab2b8cec6f26.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b8169fe3025bec6aa838d0ab8c76158e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b8a3b8e54946b7da92cd6a554de14280.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/b94f654fca25ee13e1af4b36c6188be5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/bbce6fbd8d4e759d7e4770be2ac8fe1e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/bbf0b5f24720c346912022ccdf2e213d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/bd37631ebcc69021fee8a3a115e9188c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/bdd184c51212429fcf35500b71c86829.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/be490516b49d9e274eb9c3cc4dcd4a42.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/bf6cfc0dc4bddf23d51d404860b60c00.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c01a69160f89b6f90a7b7ea438910e86.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c17747a3ee44a81b34f8a2dece22f076.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c349130a660e1b4877d286b099cb3e53.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c46366ac40713b505bd07a45b9cda8cd.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c4e0e052b26014b958361ca24591e880.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c527e918ff0a8e574b40a00d50866376.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c56affac7fa1841b8c945ff7c1ee8e42.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c5c1aace2f9807f5a8433beacefb89d5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c6842325fb41c160202c49e4a4c50d8b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c6bc2d5d0c5396826c9d0b6d5c23e26d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c6ef9ca883d83930d49ac7d07559852c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c7abcdc6ecfd72bb00803225755a0d6b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c7d4ef89bfcee2c44727fc9bac4c6f1d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/c8f1e633cb926fe996d5f2044426716b.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ca64402c74c2c861854a74d9fee0d56b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cadb06d453c2085804acba60a7196e5d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cb3a462071102ce7affe15497b674321.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cbdcef242cc969fdcea7bbd898430f4a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cce38c49564849ca8d84971eebfe1d72.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cde8be452aefe0c97004d0108cf5fe37.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ce53e9a85944c58fead0c64f6ddd6272.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cf6f184ef6fa9bb5ac418756f2050ad3.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cf951cf6b21d5af8ca797c8d013a78fa.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/cfdcd42409dccb38a513bc3bca47d4ca.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d0910d8518c18973441e6349561fed55.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d13c1c99bddbc642489b8a9e7d3d4aae.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"typeit\":{\"cursorChar\":\"|\",\"cursorSpeed\":1000,\"duration\":-1,\"loop\":false,\"speed\":100},\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d1fc0c74a0d39522d8a35249c7b53c23.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d1ff0bc4ecb52aa165876cbd218d8413.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d367a7d65bc40ba4cd89e27d9afdd887.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d56b48a046a639a406a699708812cf07.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d5a9d79018e75c4302880ad278e28363.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d6ce767f8a5bfa4fb341cd873fd19755.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d7cfd77837fdccb790ac25f9018bfea5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/d8ae2051c1c637ef58cbfff835862815.js",
    "content": "window.config={\"comment\":{\"enable\":false},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/daae8dd216a8d0163756498e642e4f01.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/dbef3e0d34ebab88f6ee074213b96e0c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/dbf8e36831437278c75ac3295d420944.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/dc102bb51e198559d7bde12f6293456e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/dd6bebe0a76227cd094747aab35d9b67.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ddf6975ff5fbc5c661477b59ca586e4d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/de4d95097fc8ff3a4e564ca1b1e5f106.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/de967b22e35857b24b5b26e279d6525e.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":false,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"encryption\":{\"all\":true,\"shortcode\":false},\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/decdfc6ce8b9de00d594b2ca783388f1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/dfd3937a4be1f2bb1b8f0c783501e347.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e034d72fd6b56cf59b58738a20161a20.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e05e69f3640d00f6512576fbd1fbc71d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e089ce555f6a93225dbbd6857eab7cbb.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e2bba2b979fee7fd23a44657253057af.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e3da3ff90cf53f4a9658f3d622190e2a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e46127dc2b6b65ea71d5e4f3e66d526b.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e543db54fa740737bf75fb6493e830ed.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e61ca88883d625f967c831c9a433599c.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e6f8f40ad771f3bf9592bd0b23cf9435.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e736ca84f941c8a4de150b5e327fc508.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e782f1b3e6277fd8a5f7c6717b41da12.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/e7910750ca8b31e5b33d54d82fee104a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ec41ccbb04cee550014cf8e576f76619.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ecfcf3d2db9f233abd64137387ea9a9d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ed54a17dda6215c4ebd914aa00d070e4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/edb5a958b8f7500ddc4825759a251692.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ede83a7ccfe409df78e72f619c94d71f.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ee6eb6b7a814d20b2414551e5d0cd11d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f05ec885592fe8fc3e08767f078656fc.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f0f94f24c4bc9a4d90c7e11b521f3f5f.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f1f2b8a76d1d4e07827b8548b3ef1c8d.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f4a09c8a767f701b81df89c1ef7b3512.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f517e60c538984f781281242bdbf8607.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f6fad020e77fef815450ef1a64d9353a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f841fe31d977148c591ab6b18c0edb8f.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f88a1617bec23310e493b5e3eda78ef5.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f8b50c62d1562efacbe486fb5ed8bd87.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f8c9a0dc01662987361a64b52a8302e4.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/f9292c8cd2371ac9de89f6c155166df1.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/fb55cc5f720ca1d6412e7036e7463982.js",
    "content": "window.config={\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/fd69d6c6f08c01154641d96aacb5e893.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/ffe22751f3c8e22b1d48d3c99cb99e5a.js",
    "content": "window.config={\"comment\":{\"enable\":true,\"expired\":true,\"giscus\":{\"darkTheme\":\"dark_dimmed\",\"lightTheme\":\"light\",\"origin\":\"https://giscus.app\"}},\"cookieconsent\":{\"content\":{\"dismiss\":\"同意\",\"link\":\"了解更多\",\"message\":\"本网站使用 Cookies 来改善您的浏览体验。\"},\"enable\":true,\"palette\":{\"button\":{\"background\":\"#f0f0f0\"},\"popup\":{\"background\":\"#1aa3ff\"}},\"theme\":\"edgeless\"},\"enablePWA\":true,\"lightgallery\":true,\"pangu\":{\"enable\":true,\"selector\":\"article\"},\"print\":{\"expandAdmonition\":true,\"expandCode\":true,\"expandDetails\":true,\"expandFileTree\":false},\"search\":{\"algoliaAppID\":\"MTJNHU0JVB\",\"algoliaIndex\":\"index\",\"algoliaSearchKey\":\"5486225134d99f43826da401ee9bad57\",\"highlightTag\":\"em\",\"maxResultLength\":10,\"noResultsFound\":\"没有找到结果\",\"snippetLength\":50,\"type\":\"algolia\"},\"siteTime\":\"2018-05-28T20:01:01+08:00\",\"tooltip\":true,\"version\":\"v0.4.5\",\"watermark\":{\"appendTo\":\".widgets\",\"colSpacing\":30,\"content\":\"\\u003cimg style=\\\"height: 0.85rem;\\\" src=\\\"/logo.webp\\\" alt=\\\"logo\\\" /\\u003e 李瑞豪\",\"enable\":true,\"fontFamily\":\"MMT_LRH,沐目体\",\"fontSize\":1.1,\"height\":20,\"opacity\":0.0125,\"rotate\":15,\"rowSpacing\":60,\"width\":150}};"
  },
  {
    "path": "js/config/post-chat/0037bc2c32fa8e81abd15ed406ab2c88.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/021d7a7632f5e9a49828e315b8028cc4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/042a6806e0090fd207a9108f0c2b9f1f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/063a7c6d2aefb90daf3d805734b1df24.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/067f014b07ee3a506035596baf104864.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/06c7174af922cb41ac234199a8b4709d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/07d140fad64e8e303ead3a6cdf7ac46e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/07dc02755c6f7b78185d6842db700b36.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/087fe8ea85659b55a7d545f2f69d6134.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0bb6dac5aeef225eee1557f8c20108f6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0c0b8df0ebba1c9ee318abc52a8229ef.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0cf6fc71a2aa7176ca55c6bb96d83773.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0d594e779c5ae2bd9b7ddba4f5074b7a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0d8648db64976c5112e4fa3049752404.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0f60328123a2a79d5ddfdb6dfcdfad30.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/0fbd1de114dfdb73770a88111b5d4e31.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/10197f7436eae710bf968c3cba131875.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/11731361789df6557ab8fa35ccb37982.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/13577df3a49a47c9d2b5d13beb4325e1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/13b21784b8ed829def60cfa62398f076.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/151a394dfe55d6be346d8fe3637a8fc0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/160160b17b769c7c43691b7c09140d60.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/19817062b86725f9931c9927d3c37d20.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1a0fd4e09739a1836a4fb4215952202d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1a22a336553538929c787e5f03170f51.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1b078ccc55871dd0d40d77f1056078d0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1c5bbc39c6512b61cc5c915f8ad0b839.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1cd02bf1ad69a440c99ba61b5c6183ed.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1ce2b38079d9b4fc8647b4847733631a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1ce7d401f80e690df073189ecec29477.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1d24d2422bd3fe23b32d8f5ed5a26c3f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1de9df7c4c69cb31234c5c05cb69693e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/1ef18b020da0fb5d3b2e79d1d399e62c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2053578da0514057166c13965ec58b4e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/20b32ac645052332d31625c852330f19.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/20b75e9cebe826082f74682133ae2ae5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/211c86c12dbc4e740b31b4edc4a9592a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/223b81876e3028aeaa96a2959290d05b.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/22727014067af9c4cd8f1a834df835d1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/22a949cb92801746b6e125c797ebc6d0.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/22b590af45577bcd6639362bda0ff70b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/247eb66223c15b4808b09a1d172c70b6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/257907c0ccec1406a7e51c9c17d6584a.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/25c200cb60a3f4bbb4acfa03de8137b0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/27e1cf5e4c051c452d3a3b4306864a77.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2956f1cccb73a886d642d203e4f0bb52.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2b16902a0ab9359c22af350a1293eba5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2c7c25806c1b020cadf6f63e0962305f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2ce8440d2e698a0bc48ed62d63347606.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2d9c54e40775802a74cf79fe7d2e5158.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/2ef1295d48d146ea03955a5b8beab68d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/321e4c6811fb3e2ea089d57ac3b040bd.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/32933748836d9ddad6b8a9179d32bab3.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/32cb17f0202794769e79771235ba6bec.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/334b4758f80bf1340a4e02810b62509b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/344a803009a489a24e0035487899e424.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/34ad5ea3680cfc3332eb04da39f4f743.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/35329dfb1fc66d8a56de7b21aab94c36.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/36735ed50e9a4121e9fea9ef0954a5a1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/36ebddeb1ce8adfbd97498a9ff2c2d7b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3732e41af9de0bc63f40781a99c47060.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/379d6c0822bcdcec980d5a8b073966e0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/38071d54f1ea34a6b632919a315ae439.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/380d79fcfd90b303a04a00efb9ed5ec0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/382d5f75fc970a96ee9777775717ac97.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/38fd272149f9ea5fb309874b8348e534.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/39573cf1686e4588c2700c87529273c0.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3ab7b3c0725dcbca5991bf242eb9b0d6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3afb2cc93680553927e6cc9082224ee9.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3b6347f8a397754b4aa70388743c2721.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3bb5f4f8924127e723fa7746bf60bb4a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3c0d788c5aef31e769a7bc0198259867.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3c48228073c0f5dfd0edaf8297e1dba2.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3e1c0a5419cb5b02f60950abdabb060d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3e2b1f699d04d23eb5c686eb812f4dc7.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3e50d109d4df475fb8a6c61436914771.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3ebf363e73290b7b68ae11519f02b692.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3ee519d1095b211e0e845e8f9f096a82.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3f3b3bbb615c034f8f37055427b83892.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/3f8e146f550d20bebe5aa95937adc761.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/41192006e7fb5d2f9f1a7caa97105c8c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/41df7cfd1a135f290b3fa56272d53632.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/4281806367b1de9059a1f848c2510f13.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/431ad847b2fa08d7740410546f00bf5b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/47cdd5023e575a59907d132466ed2a9b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/48d418b2e265ac04d276e23fb980bbd6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/4ca38f0ff587e5775a2d6f1a2dde3c48.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/4d0419f124a75d5a016ebe63f9010fa7.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/4e4f919455da0987a141b4ef412aeb48.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/50a19c19b19fb06da7fc1e0b7a611a2e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/50d88726c42a23edb45562a9bce23a02.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/50ddd55196c0ec608c96d427ebb2fb8f.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5228cc9c439e70c10266f94192573758.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/52ed700aaee4c796d3aba30f6abc325f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/54639e69f9bb0f26b6e0c20251d837c8.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5954156ca63ba6e21a8d13d55731c53b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5a34e845cf080729c16df88f67bdbcf3.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5b8a1dd7275c2db6ccf1e01d55644ac6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5bdc928cd9257d788fb7a5343279fe73.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/5c54b4cdaacef7f7ab4db1bb72ce361a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6044e0fddda1c4891d5575b4e65c5d23.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/62275962ff6d2a8c47a9328a03d0fea6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/644dbb6a92190c74c2ca806d9d56dd02.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/64de0604052d048c582136011aaec101.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6530c9177543fbff69c3660d3e33a81e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/65501877c75fd5623c9ba3a5519c5d9a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/666ed43a5283cf26881a402d93328d8c.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6764dc15ea7b8ee22c2266fbedf1629e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/679d541d97dada7b64e8d7791dacd6ba.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/67cb5d10fdf41c150ceaec0b041ec9e9.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/68476cc29d8bedd521d32ae91b064db6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/68705244048c105f2eac165a741e3182.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/68e86329cdb902703397dd04f5fc4416.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/690c84bc951f94458e7fe0075907e31a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6a3423da80259f1997c2e2252c8554ab.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6c4f5cb0664c744c67d3d8e2ee2a8bff.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6d39ed1e24c47282d4bc7e849660db5e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6dba2d2635ebf1a0a76c65b1308b8eaa.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6e630006d7d1732df7885c17566d2d56.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6f3e0ca7308179c11374fd8095d64f64.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/6fc44cad1abecf6df2cff07272bfd31b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7417807edf3228ede7205ab88ce58ecf.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/74efae613deccc0dcd4093c3f44c600a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/76d3ee0b5aa07dd4d045f569bebb748b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/772eed652fda688964d02acb01784609.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/79c7dd05726956976d682d1ae0b5d84d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/79cb396d7e1fb56b5cf5a14b0b513b34.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7a351a9cd38836cc0730ebeed0d61953.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7ad9cd5126d73a535492159809361cd1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7c52c93570e8548e38dea375ddc00481.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7ca193687bf18f5f37d6d598a9e2d72e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7d2bcc6b215b153c1d49ec5edfede53e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7d42aee776410000268c47280a00c67d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7df4a721a60c5380b21ea35def918bf4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/7e98b2eeb64d081d620055122e9915a0.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/80acd2330a03632340c6961a055f9fc3.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8133d23d199cb604b3b0b495c34058f9.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/84c9011a7be78653e7be5dc29e91d753.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/85605c5ede51aa5fde314908a0e1dd18.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8576ec274c98b3831668a172fa632d80.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/85f41e792ee3de1ac5020de929e1c596.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/88d5bebdacaa8043d0726fa84dbfc257.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/89128e9368d37da24f50b69f56d541fe.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/893dcbfb89ffeacaa99f40f37c31c669.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8c376d7b111a7da475c29028f2fd4330.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8c8e5f3cee9fd116b04e25d061ee3488.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/8e86957d7556b9d8b7ddc1e31bbed823.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/90008290651fdeddf133bee26cc2e3e1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/914a1ddda61ca7ee342100d93e625e25.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/91db0fa13e5e2065c1c8b336b86fc4c5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/93790f9ff497dfbdac23b3844326f0d5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/939cc2608b36b67d5c2fe1b6dc8ea54b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/9496ca8909ce2321bfc35cbe13d9d281.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/94a9310cd4c8ab0dde63d210c39adfa3.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/960bf92a61acbc81aafd4f8882506ca9.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/967022599cfd24670ded11a2c801cb34.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/980c8a4cc81391e2ce4a2bbee7e1e6a9.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/990af5a53b5e9a8d890fd389c6e0cabf.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/996fd5a4211944694571fca1aaa87105.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/9b5d8d6ca9926e02fff9fac8113762be.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/9e104be23a3904181ce3d8ad4f4ab220.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/9e1fc8104320f894b5cb7cbd620e4d93.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/9f7c53c593cacb46be354f01f9719e15.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a0ccfff49c4e05313f93e04c41df9e58.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a2741986477cab7cb901f93ba8362f41.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a2ae81125a3a0bcf0012a4a8dbfee438.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a311b864532fd54bd959242c6376c303.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a3d4eaca0bbaf2e48cb439525f833eed.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a5237505c0018dcaf2332aa645d98fb7.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a543b622ee68b6d53c4400bab804d910.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a56da8a7ff577d3943d46542a4b838fe.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a5c446f7a06efadb1547b74b2a74befd.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a5e7645e82813977ee845e1455ab1c50.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a6da1526d066440ae439665d78a814ba.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a7487aed908c38304252d1bbf8a74f90.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a829e0fd133b98fd41c9ce565fae9ad4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/a9c663e1be35f13be44ee6ec9e190e32.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/aafa3c7949a62e4a9cfc2452c03d5691.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/aba4cbe833311b22bf5d0427f24941e6.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/abd7d90c084fce01e013a12cd9dfb8d4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/adc208d6cb444ffdd3a5dce73c2baee7.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b2974a15012c06b846be42ba82708c32.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b2f0074cce92da89ff8c1bd4899efd32.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b30d1699a32476a23eb4a032f624f821.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b31df2415b2195d8fa30ab2b8cec6f26.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b8169fe3025bec6aa838d0ab8c76158e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b8a3b8e54946b7da92cd6a554de14280.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/b94f654fca25ee13e1af4b36c6188be5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/bbce6fbd8d4e759d7e4770be2ac8fe1e.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/bbf0b5f24720c346912022ccdf2e213d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/bd37631ebcc69021fee8a3a115e9188c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/bdd184c51212429fcf35500b71c86829.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/be490516b49d9e274eb9c3cc4dcd4a42.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/bf6cfc0dc4bddf23d51d404860b60c00.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c01a69160f89b6f90a7b7ea438910e86.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c17747a3ee44a81b34f8a2dece22f076.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c349130a660e1b4877d286b099cb3e53.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c46366ac40713b505bd07a45b9cda8cd.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c4e0e052b26014b958361ca24591e880.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c527e918ff0a8e574b40a00d50866376.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c56affac7fa1841b8c945ff7c1ee8e42.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c5c1aace2f9807f5a8433beacefb89d5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c6842325fb41c160202c49e4a4c50d8b.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c6bc2d5d0c5396826c9d0b6d5c23e26d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c6ef9ca883d83930d49ac7d07559852c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c7abcdc6ecfd72bb00803225755a0d6b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c7d4ef89bfcee2c44727fc9bac4c6f1d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/c8f1e633cb926fe996d5f2044426716b.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ca64402c74c2c861854a74d9fee0d56b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cadb06d453c2085804acba60a7196e5d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cb3a462071102ce7affe15497b674321.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cbdcef242cc969fdcea7bbd898430f4a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cce38c49564849ca8d84971eebfe1d72.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cde8be452aefe0c97004d0108cf5fe37.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ce53e9a85944c58fead0c64f6ddd6272.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cf6f184ef6fa9bb5ac418756f2050ad3.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cf951cf6b21d5af8ca797c8d013a78fa.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/cfdcd42409dccb38a513bc3bca47d4ca.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d0910d8518c18973441e6349561fed55.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d13c1c99bddbc642489b8a9e7d3d4aae.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d1fc0c74a0d39522d8a35249c7b53c23.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d1ff0bc4ecb52aa165876cbd218d8413.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d367a7d65bc40ba4cd89e27d9afdd887.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d56b48a046a639a406a699708812cf07.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d5a9d79018e75c4302880ad278e28363.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d6ce767f8a5bfa4fb341cd873fd19755.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d7cfd77837fdccb790ac25f9018bfea5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/d8ae2051c1c637ef58cbfff835862815.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/daae8dd216a8d0163756498e642e4f01.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/dbef3e0d34ebab88f6ee074213b96e0c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/dbf8e36831437278c75ac3295d420944.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/dc102bb51e198559d7bde12f6293456e.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/dd6bebe0a76227cd094747aab35d9b67.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ddf6975ff5fbc5c661477b59ca586e4d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/de4d95097fc8ff3a4e564ca1b1e5f106.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/de967b22e35857b24b5b26e279d6525e.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/decdfc6ce8b9de00d594b2ca783388f1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/dfd3937a4be1f2bb1b8f0c783501e347.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e034d72fd6b56cf59b58738a20161a20.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e05e69f3640d00f6512576fbd1fbc71d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e089ce555f6a93225dbbd6857eab7cbb.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e2bba2b979fee7fd23a44657253057af.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e3da3ff90cf53f4a9658f3d622190e2a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e46127dc2b6b65ea71d5e4f3e66d526b.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e543db54fa740737bf75fb6493e830ed.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e61ca88883d625f967c831c9a433599c.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e6f8f40ad771f3bf9592bd0b23cf9435.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e736ca84f941c8a4de150b5e327fc508.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e782f1b3e6277fd8a5f7c6717b41da12.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/e7910750ca8b31e5b33d54d82fee104a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ec41ccbb04cee550014cf8e576f76619.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ecfcf3d2db9f233abd64137387ea9a9d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ed54a17dda6215c4ebd914aa00d070e4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/edb5a958b8f7500ddc4825759a251692.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ede83a7ccfe409df78e72f619c94d71f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ee6eb6b7a814d20b2414551e5d0cd11d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f05ec885592fe8fc3e08767f078656fc.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f0f94f24c4bc9a4d90c7e11b521f3f5f.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f1f2b8a76d1d4e07827b8548b3ef1c8d.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f4a09c8a767f701b81df89c1ef7b3512.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f517e60c538984f781281242bdbf8607.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f6fad020e77fef815450ef1a64d9353a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f841fe31d977148c591ab6b18c0edb8f.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f88a1617bec23310e493b5e3eda78ef5.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f8b50c62d1562efacbe486fb5ed8bd87.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f8c9a0dc01662987361a64b52a8302e4.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/f9292c8cd2371ac9de89f6c155166df1.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/fb55cc5f720ca1d6412e7036e7463982.js",
    "content": "var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":false,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/fd69d6c6f08c01154641d96aacb5e893.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/config/post-chat/ffe22751f3c8e22b1d48d3c99cb99e5a.js",
    "content": "let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={\"addButton\":true,\"backgroundColor\":\"#6a64d5\",\"blackDom\":[\"meting-js\",\".lnt\",\".ln\"],\"bottom\":\"\",\"defaultChatQuestions\":[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],\"defaultInput\":false,\"defaultSearchQuestions\":[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],\"fill\":\"\",\"frameHeight\":\"\",\"frameWidth\":\"\",\"height\":\"\",\"hotWords\":true,\"left\":\"\",\"showInviteLink\":true,\"upLoadWeb\":true,\"userDesc\":\"如果你对网站的内容有任何疑问，可以来问我哦～\",\"userIcon\":\"/images/avatar.jpg\",\"userMode\":\"magic\",\"userTitle\":\"Cell+\",\"width\":\"\"}"
  },
  {
    "path": "js/page/a0ccfff49c4e05313f93e04c41df9e58.js",
    "content": "document.addEventListener('DOMContentLoaded', () => {\n  new Vue({ el: '#app-mmt', data: { message: '' }});\n});"
  },
  {
    "path": "js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js",
    "content": "\"use strict\";(()=>{var p={cropTopPx:60,debug:!1,disableOnHome:!0,enable:!0,excludeSelector:\"body > div.wrapper > main > div.home\",hideDelay:220,maxBytes:12e5,mobileBp:900,prefetchOnHover:!0,showDelay:120};var m=class f{constructor(e){this.configuration=e,this.excludeRootNode=null,this.excludeSelectorResolved=!1,this.activeTippyInstance=null,this.activeAnchorElement=null,this._defaultTippyDurationShow=120,this._defaultTippyDurationHide=110,this.fileExtensionRegex=/\\.(?:png|jpe?g|gif|webp|avif|svg|ico|bmp|tiff?|mp4|webm|mp3|wav|ogg|flac|pdf|zip|rar|7z|tar|gz|bz2|xz|dmg|exe|msi|apk|ipa|docx?|xlsx?|pptx?|csv|json|xml|yml|yaml|toml|map)$/i,this.assetPathRegex=/^\\/(?:images|img|css|js|fonts|font|assets|static|files)\\//i,this.htmlExtensionRegex=/\\.html?$/i}static fromParams(){return new f({enable:!!p.enable,debug:!!p.debug,mobileBp:Number(p.mobileBp||900),disableOnHome:p.disableOnHome!==!1,excludeSelector:String(p.excludeSelector||\"\"),showDelay:Number(p.showDelay||120),hideDelay:Number(p.hideDelay||220),maxBytes:Number(p.maxBytes||12e5)})}static boot(){let e=f.fromParams();try{e.init()}catch{}}log(...e){console.log(\"[post-preview]\",...e)}init(){this.guardEnvironment(),this.bindHoverDelegation(),this.bindThemeSynchronization(),this.bindScrollHideRules()}guardEnvironment(){if(!this.configuration.enable||window.top!==window.self)throw 0;let e=window.matchMedia?window.matchMedia.bind(window):null;if(window.innerWidth<=this.configuration.mobileBp||e&&e(\"(hover: none)\").matches||e&&e(\"(pointer: coarse)\").matches||!window.tippy)throw 0;if(this.configuration.disableOnHome){let t=String(window.location.pathname||\"/\").replace(/\\/+$/,\"\")||\"/\";if(t===\"/\"||/^\\/[a-z]{2}(?:-[a-z]{2})?$/i.test(t))throw 0}}getIsDarkTheme(){if(typeof window.fixit?.isDark==\"boolean\")return window.fixit.isDark;let e=document.documentElement.getAttribute(\"data-theme\");return e?e===\"dark\":document.documentElement.classList.contains(\"dark\")}applyThemeToAllOpenPreviews(e){document.querySelectorAll(\".pp-box\").forEach(i=>{i.classList.toggle(\"pp--dark\",!!e)})}bindThemeSynchronization(){if(this.applyThemeToAllOpenPreviews(this.getIsDarkTheme()),typeof window.fixit?.switchThemeEventSet==\"object\"){window.fixit.switchThemeEventSet.add(e=>{this.applyThemeToAllOpenPreviews(e)});return}new MutationObserver(()=>{this.applyThemeToAllOpenPreviews(this.getIsDarkTheme())}).observe(document.documentElement,{attributes:!0,attributeFilter:[\"class\",\"data-theme\",\"style\"]})}bindHoverDelegation(){document.addEventListener(\"mouseover\",e=>{let i=e.target?.closest?.(\"a[href]\");i&&this.isEligibleAnchor(i)&&this.mountPreviewForAnchor(i)},{passive:!0})}bindScrollHideRules(){let e=()=>{let t=this.activeTippyInstance;if(t&&t.state?.isShown){try{t.setProps({duration:[0,0]})}catch{}try{t.hide()}catch{}queueMicrotask(()=>{try{t.setProps({duration:[this._defaultTippyDurationShow,this._defaultTippyDurationHide]})}catch{}})}},i=t=>{let n=this.activeTippyInstance;if(!n||!n.state?.isShown)return!1;let o=n.popper;return o?!!(t&&o.contains(t)):!1};document.addEventListener(\"scroll\",t=>{!this.activeTippyInstance||!this.activeTippyInstance.state?.isShown||i(t.target)||e()},!0),window.addEventListener(\"wheel\",t=>{!this.activeTippyInstance||!this.activeTippyInstance.state?.isShown||i(t.target)||e()},{passive:!0,capture:!0})}isEligibleAnchor(e){if(!e.closest(\"main\")||e.closest(\"header,footer,.tippy-popper\")||this.isBlockedByExcludeSelector(e))return!1;let i=(e.getAttribute(\"href\")||\"\").trim();if(!i||i[0]===\"#\"||/^(mailto:|tel:|javascript:)/i.test(i)||e.hasAttribute(\"download\"))return!1;let t;try{t=new URL(e.href,window.location.href)}catch{return!1}if(t.origin!==window.location.origin)return!1;let n=t.pathname||\"/\";if(this.assetPathRegex.test(n)||n.includes(\"/favicon.\")||this.fileExtensionRegex.test(n))return!1;let o=n.slice(n.lastIndexOf(\"/\")+1);return!(o.lastIndexOf(\".\")!==-1&&!this.htmlExtensionRegex.test(o))}isBlockedByExcludeSelector(e){return this.configuration.excludeSelector?(this.excludeSelectorResolved||(this.excludeRootNode=document.querySelector(this.configuration.excludeSelector),this.excludeSelectorResolved=!0),this.excludeRootNode?this.excludeRootNode.contains(e):!1):!1}createPreviewUI(){let e=document.createElement(\"div\");e.className=\"pp-box\",e.classList.toggle(\"pp--dark\",this.getIsDarkTheme());let i=document.createElement(\"div\");i.className=\"pp-head\";let t=document.createElement(\"div\");t.className=\"pp-path\";let n=document.createElement(\"a\");n.className=\"pp-url\",n.target=\"_blank\",n.rel=\"noopener\";let o=document.createElement(\"button\");o.className=\"pp-close\",o.type=\"button\",o.innerHTML='<svg class=\"pp-close__icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"> <path d=\"M6 6L18 18M18 6L6 18\"></path></svg>';let s=document.createElement(\"div\");s.className=\"pp-body\";let d=document.createElement(\"div\");d.className=\"pp-doc\";let u=document.createElement(\"div\");return u.className=\"pp-doc__inner\",d.appendChild(u),s.appendChild(d),i.append(t,n,o),e.append(i,s),{previewBox:e,breadcrumbPathElement:t,hostLinkElement:n,closeButtonElement:o,innerContainerElement:u}}renderBreadcrumbPath(e,i){e.textContent=\"\";let t;try{t=new URL(i,window.location.href)}catch{t=null}let o=(t?.pathname||\"/\").split(\"/\").filter(Boolean),s=()=>{let a=document.createElement(\"span\");a.className=\"pp-sep\",a.textContent=\"/\",e.appendChild(a)},d=(a,r)=>{let l=document.createElement(\"a\");l.className=\"pp-seg\",l.href=r,l.target=\"_blank\",l.rel=\"noopener\";let c=document.createElement(\"span\");c.className=\"pp-seg__chip\",c.textContent=a,l.appendChild(c),e.appendChild(l)},u=\"\";for(let a=0;a<o.length;a++)a>0&&s(),u+=\"/\"+o[a],d(o[a],window.location.origin+u+\"/\")}mountPreviewForAnchor(e){if(e._postPreviewTippyInstance)return;let i=this.createPreviewUI(),t=window.tippy(e,{trigger:\"manual\",interactive:!0,hideOnClick:!1,placement:\"bottom-start\",animation:\"shift-away\",theme:\"pp\",arrow:!1,inertia:!0,duration:[this._defaultTippyDurationShow,this._defaultTippyDurationHide],maxWidth:\"none\",appendTo:document.body,popperOptions:{modifiers:{offset:{offset:\"0,8\"},preventOverflow:{boundariesElement:\"viewport\",padding:8},flip:{enabled:!1}}},content:i.previewBox,onShow:n=>{if(this.activeTippyInstance&&this.activeTippyInstance!==n)try{this.activeTippyInstance.hide()}catch{}this.activeTippyInstance=n,this.activeAnchorElement=e;let o=e.href;this.renderBreadcrumbPath(i.breadcrumbPathElement,o);let s=new URL(o,window.location.href);i.hostLinkElement.href=o,i.hostLinkElement.textContent=s.host,i.closeButtonElement.onclick=a=>{a.preventDefault(),a.stopPropagation();try{n.hide()}catch{}},this.abortAnchorRequest(e),e._ppReqSeq=(e._ppReqSeq||0)+1;let d=e._ppReqSeq,u=new AbortController;e._ppAbortController=u,this.loadPreviewHtml(o,u.signal).then(a=>{a&&(i.innerContainerElement.innerHTML=a,queueMicrotask(()=>n.popperInstance?.update?.()))}).catch(a=>{i.innerContainerElement.textContent=\"Failed to load preview.\",this.log(\"load failed\",{href:o,error:a}),queueMicrotask(()=>n.popperInstance?.update?.())})},onHidden:()=>{this.abortAnchorRequest(e),this.activeTippyInstance===t&&(this.activeTippyInstance=null,this.activeAnchorElement=null)}});e._postPreviewTippyInstance=t,this.attachHoverBehavior(e,t)}attachHoverBehavior(e,i){let t=!1,n=!1,o=0,s=0,d=()=>{s&&window.clearTimeout(s),s=window.setTimeout(()=>{if(!(t||n))try{i.hide()}catch{}},this.configuration.hideDelay)};e.addEventListener(\"mouseenter\",()=>{t=!0,s&&(window.clearTimeout(s),s=0),o&&window.clearTimeout(o),o=window.setTimeout(()=>{if(t)try{i.show()}catch{}},this.configuration.showDelay)},{passive:!0}),e.addEventListener(\"mouseleave\",()=>{t=!1,o&&(window.clearTimeout(o),o=0),d()},{passive:!0});let u=i.show.bind(i);i.show=()=>{u(),queueMicrotask(()=>{let a=i.popper;!a||a._postPreviewHoverHooked||(a._postPreviewHoverHooked=!0,a.addEventListener(\"mouseenter\",()=>{n=!0,s&&(window.clearTimeout(s),s=0)},{passive:!0}),a.addEventListener(\"mouseleave\",()=>{n=!1,d()},{passive:!0}))})}}abortAnchorRequest(e){let i=e._ppAbortController;if(i){e._ppAbortController=null;try{i.abort()}catch{}}}async loadPreviewHtml(e,i){let t=await fetch(e,{credentials:\"same-origin\",cache:\"no-store\",signal:i,headers:{Accept:\"text/html\"}});if(!t.ok)return null;let n=Number(t.headers.get(\"content-length\")||0);if(n&&n>this.configuration.maxBytes)return null;let o=await t.text();return this.configuration.maxBytes&&o.length>this.configuration.maxBytes?null:this.extractPreviewHtml(o,e)||null}extractPreviewHtml(e,i){let t=new DOMParser().parseFromString(e,\"text/html\"),n=new URL(i,window.location.href),o=t.querySelector(\"main article.page.single\")||t.querySelector(\"div.page.archive\")||t.querySelector(\"main article\")||t.querySelector(\"article.page.single\")||t.querySelector(\"article\")||t.querySelector(\"main\");if(!o)return\"\";let s=o.cloneNode(!0);s.querySelectorAll('script,style,link[rel=\"stylesheet\"],iframe,object,embed').forEach(r=>r.remove()),s.querySelectorAll(\"#comments,.comment,.comments,.giscus,.utterances,meting-js,.meting,.aplayer,.aplayer-fixed\").forEach(r=>r.remove());let d=(r,l)=>{let c=r.getAttribute(l);if(!c)return;let h=c.trim();if(h&&h[0]!==\"#\"&&!/^(data:|mailto:|tel:|javascript:)/i.test(h))try{r.setAttribute(l,new URL(h,n).href)}catch{}};s.querySelectorAll(\"a[href]\").forEach(r=>{d(r,\"href\"),r.target=\"_blank\",r.rel=\"noopener\"}),s.querySelectorAll(\"img\").forEach(r=>{let l=r.getAttribute(\"data-src\")||r.getAttribute(\"data-original\")||r.getAttribute(\"data-lazy-src\"),c=r.getAttribute(\"src\");(!c||c===\"\")&&l&&r.setAttribute(\"src\",l),d(r,\"src\"),d(r,\"data-src\"),r.loading=\"lazy\",r.decoding=\"async\"});let u=\"pp-\"+this.hash32(n.pathname)+\"-\",a=new Map;return s.querySelectorAll(\"[id]\").forEach(r=>{let l=r.id;if(!l)return;let c=u+l;a.set(l,c),r.id=c}),s.querySelectorAll('a[href^=\"#\"]').forEach(r=>{let l=r.getAttribute(\"href\").slice(1),c=a.get(l);c&&r.setAttribute(\"href\",\"#\"+c)}),s.querySelectorAll(\"label[for]\").forEach(r=>{let l=r.getAttribute(\"for\"),c=a.get(l);c&&r.setAttribute(\"for\",c)}),s.outerHTML}hash32(e){let i=String(e||\"\"),t=2166136261;for(let n=0;n<i.length;n++)t^=i.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16)}};document.readyState===\"complete\"?m.boot():window.addEventListener(\"load\",()=>m.boot(),{once:!0});})();\n"
  },
  {
    "path": "js/valine-hacker.js",
    "content": "// 是否默认折叠 Valine 评论\nconst collapseList = false;\n// Valine 是否插在系统评论前面\nconst insertBefore = false;\n// Valine 评论最大高度，例如：500px、50vh、auto\nconst listMaxHeight = \"auto\";\n\n/**\n * ValineHacker\n * \n * @example 在 front matter 中添加以下配置\n *\n * library:\n *  css:\n *    valineHacker: valine-hacker.css\n *  js:\n *    valine: https://unpkg.com/valine@latest\n *    valineHacker: /js/valine-hacker.js\n *\n */\nclass ValineHacker {\n  #timerHackValine;\n\n  /**\n   * 修改 Valine 样式及功能\n   */\n  hackValine() {\n    const $valine = document.querySelector('#valine');\n    this.#timerHackValine = void 0;\n    if (!$valine) {\n      return;\n    }\n    this.#timerHackValine = setInterval(() => {\n      const $vcount = $valine.querySelector('.vcount');\n      if ($vcount) {\n        const $vcards = $valine.querySelector('.vcards');\n        const $vpage = $valine.querySelector('.vpage');\n        // 是否默认折叠评论\n        if (collapseList) {\n          $vcards.classList.add('d-none');\n          $vpage.classList.add('d-none');\n        }\n        $vcount.addEventListener('click', () => {\n          $vcards.classList.toggle('d-none');\n          $vpage.classList.toggle('d-none');\n        });\n        clearInterval(this.#timerHackValine);\n      }\n    }, 500);\n  };\n\n  init() {\n    const comments = document.querySelector('#comments');\n    if (!comments) {\n      return;\n    }\n    const comment = document.createElement('div');\n    comment.id = 'valine';\n    comment.classList.add('comment');\n    comment.style.maxHeight = listMaxHeight;\n    if (insertBefore) {\n      // 插在系统评论前面\n      comments.insertBefore(comment, comments.firstChild);\n    } else {\n      // 插在系统评论后面\n      comments.appendChild(comment);\n    }\n    new Valine({\n      el: '#valine',\n      appId: '7HwTRT0Q0Tfrat6ugrT6P67c-gzGzoHsz',\n      appKey: 'mhTY1kuUmviCtQwkwOASfsfD',\n      placeholder: 'ヾﾉ≧∀≦)o~ 有事请留言！\\n评论功能以邮件作为通知方式！\\n如有必要请填写正确邮箱哦！',\n      avatar: 'wavatar',\n      meta: ['nick', 'mail', 'link'],\n      requiredFields: ['nick', 'mail', 'link'],\n      pageSize: 10,\n      lang: 'zh-CN',\n      visitor: true,\n      recordIP: true,\n      highlight: true,\n      enableQQ: true,\n      serverURLs: '',\n    });\n    this.hackValine();\n  }\n}\n\n/**\n * immediate.\n */\n(() => {\n  const vh = new ValineHacker();\n  // it will be executed when the DOM tree is built\n  document.addEventListener('DOMContentLoaded', () => {\n    vh.init();\n  });\n})();\n"
  },
  {
    "path": "lib/shortcode-caniuse/caniuse-embed-element.iife.js",
    "content": "var CaniuseEmbedElement=(function(p){\"use strict\";const H=globalThis,D=H.ShadowRoot&&(H.ShadyCSS===void 0||H.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,j=Symbol(),W=new WeakMap;let J=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==j)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(D&&t===void 0){const s=e!==void 0&&e.length===1;s&&(t=W.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&W.set(e,t))}return t}toString(){return this.cssText}};const ht=r=>new J(typeof r==\"string\"?r:r+\"\",void 0,j),lt=(r,...t)=>{const e=r.length===1?r[0]:t.reduce((s,i,n)=>s+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o==\"number\")return o;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+o+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(i)+r[n+1],r[0]);return new J(e,r,j)},ct=(r,t)=>{if(D)r.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of t){const s=document.createElement(\"style\"),i=H.litNonce;i!==void 0&&s.setAttribute(\"nonce\",i),s.textContent=e.cssText,r.appendChild(s)}},Z=D?r=>r:r=>r instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return ht(e)})(r):r;const{is:dt,defineProperty:ut,getOwnPropertyDescriptor:pt,getOwnPropertyNames:$t,getOwnPropertySymbols:ft,getPrototypeOf:mt}=Object,T=globalThis,K=T.trustedTypes,_t=K?K.emptyScript:\"\",yt=T.reactiveElementPolyfillSupport,C=(r,t)=>r,N={toAttribute(r,t){switch(t){case Boolean:r=r?_t:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,t){let e=r;switch(t){case Boolean:e=r!==null;break;case Number:e=r===null?null:Number(r);break;case Object:case Array:try{e=JSON.parse(r)}catch{e=null}}return e}},z=(r,t)=>!dt(r,t),F={attribute:!0,type:String,converter:N,reflect:!1,useDefault:!1,hasChanged:z};Symbol.metadata??=Symbol(\"metadata\"),T.litPropertyMetadata??=new WeakMap;let E=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=F){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),i=this.getPropertyDescriptor(t,s,e);i!==void 0&&ut(this.prototype,t,i)}}static getPropertyDescriptor(t,e,s){const{get:i,set:n}=pt(this.prototype,t)??{get(){return this[e]},set(o){this[e]=o}};return{get:i,set(o){const h=i?.call(this);n?.call(this,o),this.requestUpdate(t,h,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??F}static _$Ei(){if(this.hasOwnProperty(C(\"elementProperties\")))return;const t=mt(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(C(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(C(\"properties\"))){const e=this.properties,s=[...$t(e),...ft(e)];for(const i of s)this.createProperty(i,e[i])}const t=this[Symbol.metadata];if(t!==null){const e=litPropertyMetadata.get(t);if(e!==void 0)for(const[s,i]of e)this.elementProperties.set(s,i)}this._$Eh=new Map;for(const[e,s]of this.elementProperties){const i=this._$Eu(e,s);i!==void 0&&this._$Eh.set(i,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const i of s)e.unshift(Z(i))}else t!==void 0&&e.push(Z(t));return e}static _$Eu(t,e){const s=e.attribute;return s===!1?void 0:typeof s==\"string\"?s:typeof t==\"string\"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return ct(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){const s=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,s);if(i!==void 0&&s.reflect===!0){const n=(s.converter?.toAttribute!==void 0?s.converter:N).toAttribute(e,s.type);this._$Em=t,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(t,e){const s=this.constructor,i=s._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const n=s.getPropertyOptions(i),o=typeof n.converter==\"function\"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:N;this._$Em=i;const h=o.fromAttribute(e,n.type);this[i]=h??this._$Ej?.get(i)??h,this._$Em=null}}requestUpdate(t,e,s,i=!1,n){if(t!==void 0){const o=this.constructor;if(i===!1&&(n=this[t]),s??=o.getPropertyOptions(t),!((s.hasChanged??z)(n,e)||s.useDefault&&s.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,s))))return;this.C(t,e,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:i,wrapped:n},o){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),n!==!0||o!==void 0)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),i===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[i,n]of this._$Ep)this[i]=n;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[i,n]of s){const{wrapped:o}=n,h=this[i];o!==!0||this._$AL.has(i)||h===void 0||this.C(i,void 0,n,h)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(s=>s.hostUpdate?.()),this.update(e)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};E.elementStyles=[],E.shadowRootOptions={mode:\"open\"},E[C(\"elementProperties\")]=new Map,E[C(\"finalized\")]=new Map,yt?.({ReactiveElement:E}),(T.reactiveElementVersions??=[]).push(\"2.1.2\");const I=globalThis,Y=r=>r,R=I.trustedTypes,G=R?R.createPolicy(\"lit-html\",{createHTML:r=>r}):void 0,Q=\"$lit$\",_=`lit$${Math.random().toFixed(9).slice(2)}$`,X=\"?\"+_,gt=`<${X}>`,g=document,w=()=>g.createComment(\"\"),P=r=>r===null||typeof r!=\"object\"&&typeof r!=\"function\",B=Array.isArray,At=r=>B(r)||typeof r?.[Symbol.iterator]==\"function\",q=`[ \t\n\\f\\r]`,O=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,tt=/-->/g,et=/>/g,A=RegExp(`>|${q}(?:([^\\\\s\"'>=/]+)(${q}*=${q}*(?:[^ \t\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),st=/'/g,it=/\"/g,rt=/^(?:script|style|textarea|title)$/i,bt=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),nt=bt(1),v=Symbol.for(\"lit-noChange\"),c=Symbol.for(\"lit-nothing\"),ot=new WeakMap,b=g.createTreeWalker(g,129);function at(r,t){if(!B(r)||!r.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return G!==void 0?G.createHTML(t):t}const Et=(r,t)=>{const e=r.length-1,s=[];let i,n=t===2?\"<svg>\":t===3?\"<math>\":\"\",o=O;for(let h=0;h<e;h++){const a=r[h];let d,u,l=-1,m=0;for(;m<a.length&&(o.lastIndex=m,u=o.exec(a),u!==null);)m=o.lastIndex,o===O?u[1]===\"!--\"?o=tt:u[1]!==void 0?o=et:u[2]!==void 0?(rt.test(u[2])&&(i=RegExp(\"</\"+u[2],\"g\")),o=A):u[3]!==void 0&&(o=A):o===A?u[0]===\">\"?(o=i??O,l=-1):u[1]===void 0?l=-2:(l=o.lastIndex-u[2].length,d=u[1],o=u[3]===void 0?A:u[3]==='\"'?it:st):o===it||o===st?o=A:o===tt||o===et?o=O:(o=A,i=void 0);const y=o===A&&r[h+1].startsWith(\"/>\")?\" \":\"\";n+=o===O?a+gt:l>=0?(s.push(d),a.slice(0,l)+Q+a.slice(l)+_+y):a+_+(l===-2?h:y)}return[at(r,n+(r[e]||\"<?>\")+(t===2?\"</svg>\":t===3?\"</math>\":\"\")),s]};class U{constructor({strings:t,_$litType$:e},s){let i;this.parts=[];let n=0,o=0;const h=t.length-1,a=this.parts,[d,u]=Et(t,e);if(this.el=U.createElement(d,s),b.currentNode=this.el.content,e===2||e===3){const l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(i=b.nextNode())!==null&&a.length<h;){if(i.nodeType===1){if(i.hasAttributes())for(const l of i.getAttributeNames())if(l.endsWith(Q)){const m=u[o++],y=i.getAttribute(l).split(_),k=/([.?@])?(.*)/.exec(m);a.push({type:1,index:n,name:k[2],strings:y,ctor:k[1]===\".\"?St:k[1]===\"?\"?Ct:k[1]===\"@\"?wt:L}),i.removeAttribute(l)}else l.startsWith(_)&&(a.push({type:6,index:n}),i.removeAttribute(l));if(rt.test(i.tagName)){const l=i.textContent.split(_),m=l.length-1;if(m>0){i.textContent=R?R.emptyScript:\"\";for(let y=0;y<m;y++)i.append(l[y],w()),b.nextNode(),a.push({type:2,index:++n});i.append(l[m],w())}}}else if(i.nodeType===8)if(i.data===X)a.push({type:2,index:n});else{let l=-1;for(;(l=i.data.indexOf(_,l+1))!==-1;)a.push({type:7,index:n}),l+=_.length-1}n++}}static createElement(t,e){const s=g.createElement(\"template\");return s.innerHTML=t,s}}function S(r,t,e=r,s){if(t===v)return t;let i=s!==void 0?e._$Co?.[s]:e._$Cl;const n=P(t)?void 0:t._$litDirective$;return i?.constructor!==n&&(i?._$AO?.(!1),n===void 0?i=void 0:(i=new n(r),i._$AT(r,e,s)),s!==void 0?(e._$Co??=[])[s]=i:e._$Cl=i),i!==void 0&&(t=S(r,i._$AS(r,t.values),i,s)),t}class vt{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:s}=this._$AD,i=(t?.creationScope??g).importNode(e,!0);b.currentNode=i;let n=b.nextNode(),o=0,h=0,a=s[0];for(;a!==void 0;){if(o===a.index){let d;a.type===2?d=new M(n,n.nextSibling,this,t):a.type===1?d=new a.ctor(n,a.name,a.strings,this,t):a.type===6&&(d=new Pt(n,this,t)),this._$AV.push(d),a=s[++h]}o!==a?.index&&(n=b.nextNode(),o++)}return b.currentNode=g,i}p(t){let e=0;for(const s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class M{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,i){this.type=2,this._$AH=c,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=S(this,t,e),P(t)?t===c||t==null||t===\"\"?(this._$AH!==c&&this._$AR(),this._$AH=c):t!==this._$AH&&t!==v&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):At(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==c&&P(this._$AH)?this._$AA.nextSibling.data=t:this.T(g.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:s}=t,i=typeof s==\"number\"?this._$AC(t):(s.el===void 0&&(s.el=U.createElement(at(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(e);else{const n=new vt(i,this),o=n.u(this.options);n.p(e),this.T(o),this._$AH=n}}_$AC(t){let e=ot.get(t.strings);return e===void 0&&ot.set(t.strings,e=new U(t)),e}k(t){B(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,i=0;for(const n of t)i===e.length?e.push(s=new M(this.O(w()),this.O(w()),this,this.options)):s=e[i],s._$AI(n),i++;i<e.length&&(this._$AR(s&&s._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){const s=Y(t).nextSibling;Y(t).remove(),t=s}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}}class L{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,i,n){this.type=1,this._$AH=c,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=n,s.length>2||s[0]!==\"\"||s[1]!==\"\"?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=c}_$AI(t,e=this,s,i){const n=this.strings;let o=!1;if(n===void 0)t=S(this,t,e,0),o=!P(t)||t!==this._$AH&&t!==v,o&&(this._$AH=t);else{const h=t;let a,d;for(t=n[0],a=0;a<n.length-1;a++)d=S(this,h[s+a],e,a),d===v&&(d=this._$AH[a]),o||=!P(d)||d!==this._$AH[a],d===c?t=c:t!==c&&(t+=(d??\"\")+n[a+1]),this._$AH[a]=d}o&&!i&&this.j(t)}j(t){t===c?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class St extends L{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===c?void 0:t}}class Ct extends L{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==c)}}class wt extends L{constructor(t,e,s,i,n){super(t,e,s,i,n),this.type=5}_$AI(t,e=this){if((t=S(this,t,e,0)??c)===v)return;const s=this._$AH,i=t===c&&s!==c||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==c&&(s===c||i);i&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH==\"function\"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Pt{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Ot=I.litHtmlPolyfillSupport;Ot?.(U,M),(I.litHtmlVersions??=[]).push(\"3.3.2\");const Ut=(r,t,e)=>{const s=e?.renderBefore??t;let i=s._$litPart$;if(i===void 0){const n=e?.renderBefore??null;s._$litPart$=i=new M(t.insertBefore(w(),n),n,void 0,e??{})}return i._$AI(r),i};const V=globalThis;class x extends E{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ut(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return v}}x._$litElement$=!0,x.finalized=!0,V.litElementHydrateSupport?.({LitElement:x});const Mt=V.litElementPolyfillSupport;Mt?.({LitElement:x}),(V.litElementVersions??=[]).push(\"4.2.2\");const xt=r=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(r,t)}):customElements.define(r,t)};const Ht={attribute:!0,type:String,converter:N,reflect:!1,hasChanged:z},Tt=(r=Ht,t,e)=>{const{kind:s,metadata:i}=e;let n=globalThis.litPropertyMetadata.get(i);if(n===void 0&&globalThis.litPropertyMetadata.set(i,n=new Map),s===\"setter\"&&((r=Object.create(r)).wrapped=!0),n.set(e.name,r),s===\"accessor\"){const{name:o}=e;return{set(h){const a=t.get.call(this);t.set.call(this,h),this.requestUpdate(o,a,r,!0,h)},init(h){return h!==void 0&&this.C(o,void 0,r,h),h}}}if(s===\"setter\"){const{name:o}=e;return function(h){const a=this[o];t.call(this,h),this.requestUpdate(o,a,r,!0,h)}}throw Error(\"Unsupported decorator location: \"+s)};function f(r){return(t,e)=>typeof e==\"object\"?Tt(r,t,e):((s,i,n)=>{const o=i.hasOwnProperty(n);return i.constructor.createProperty(n,s),o?Object.getOwnPropertyDescriptor(i,n):void 0})(r,t,e)}var Nt=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,$=(r,t,e,s)=>{for(var i=s>1?void 0:s?Rt(t,e):t,n=r.length-1,o;n>=0;n--)(o=r[n])&&(i=(s?o(t,e,i):o(i))||i);return s&&i&&Nt(t,e,i),i};const Lt=\"ciu-embed\";return p.CaniuseEmbedElement=class extends x{constructor(){super(...arguments),this.feature=\"\",this.past=2,this.future=1,this.baseline=!1,this.origin=\"https://caniuse.lruihao.cn\",this.theme=\"auto\",this.loading=\"lazy\",this.meta=Math.random().toString(36).slice(2),this.loaded=!1,this._iframeHeight=this.baseline?150:300,this.handleMessage=t=>{const e=this.parseData(t.data),{type:s,payload:i={}}=e;s===Lt&&i.feature===this.feature&&i.meta===this.meta&&(this._iframeHeight=Math.ceil(i.height),this.requestUpdate())},this.handleIframeLoad=()=>{this.loaded=!0}}connectedCallback(){super.connectedCallback(),this.setupMessageListener()}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(\"message\",this.handleMessage)}setupMessageListener(){window.addEventListener(\"message\",this.handleMessage)}parseData(t){try{return typeof t==\"string\"?JSON.parse(t):t}catch{return{}}}generateSource(){if(!this.feature)return\"\";const t=[`meta=${this.meta}`,`past=${this.past}`,`future=${this.future}`,`theme=${this.theme}`];return`${this.origin}/${this.feature}${this.baseline?\"/baseline\":\"\"}#${t.join(\"&\")}`}render(){const t=this.generateSource();return t?nt`<iframe class=\"ciu-embed-iframe\" src=\"${t}\" height=\"${this._iframeHeight}\" allow=\"fullscreen\" loading=\"${this.loading}\" @load=\"${this.handleIframeLoad}\"></iframe>`:(this.loaded=!0,nt`<p class=\"ciu-embed-empty\"><span>Data on support for the features across the major browsers from <a href=\"https://caniuse.com\" target=\"_blank\">caniuse.com</a>.</span><br><span>[ The feature parameter is required! ]</span></p>`)}},p.CaniuseEmbedElement.styles=lt`:host{display:block;width:100%;position:relative}:host(:not([loaded]))::after{content:\"Loading \" attr(feature) \" compatibility data\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-secondary,#919191);font-size:14px;text-align:center;pointer-events:none;opacity:1;transition:opacity .3s ease;z-index:1;animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{content:\"Loading \" attr(feature) \" compatibility data\"}40%{content:\"Loading \" attr(feature) \" compatibility data.\"}60%{content:\"Loading \" attr(feature) \" compatibility data..\"}100%,80%{content:\"Loading \" attr(feature) \" compatibility data...\"}}:host([loaded])::after{opacity:0}.ciu-embed-iframe{display:block;width:100%;border:none;border-radius:0;opacity:0;transition:opacity .3s ease}:host([loaded]) .ciu-embed-iframe{opacity:1}.ciu-embed-empty{color:var(--text-secondary,#919191);text-align:center;font-size:12px}.ciu-embed-empty a{color:inherit;text-decoration:none}.ciu-embed-empty a:hover{text-decoration:underline}`,$([f()],p.CaniuseEmbedElement.prototype,\"feature\",2),$([f({type:Number})],p.CaniuseEmbedElement.prototype,\"past\",2),$([f({type:Number})],p.CaniuseEmbedElement.prototype,\"future\",2),$([f({type:Boolean})],p.CaniuseEmbedElement.prototype,\"baseline\",2),$([f()],p.CaniuseEmbedElement.prototype,\"origin\",2),$([f({type:String})],p.CaniuseEmbedElement.prototype,\"theme\",2),$([f()],p.CaniuseEmbedElement.prototype,\"loading\",2),$([f()],p.CaniuseEmbedElement.prototype,\"meta\",2),$([f({type:Boolean,reflect:!0})],p.CaniuseEmbedElement.prototype,\"loaded\",2),p.CaniuseEmbedElement=$([xt(\"caniuse-embed\")],p.CaniuseEmbedElement),Object.defineProperty(p,Symbol.toStringTag,{value:\"Module\"}),p})({});\n"
  },
  {
    "path": "me/whysmoke/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>你为什么吸烟？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"这么说吧，其实三五年往上走的朋友都知道，我以前是不抽烟的，以至于后来得知我开始抽烟后，大家都会很震惊。所以，我并不是在那个懵懂的年纪为了装逼耍酷而开始的。\n我为什么开始抽烟？为了爱情！开个玩笑，没有那么中二啦 →_→，但确实因为感情，2020 年 5 月 28 日，那晚回宿舍后，我一个人坐在明德宿舍的阳台上，点上了室友的一支利群，所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散，只是觉得头晕。\n\"><meta name=keywords content='随想'><meta itemprop=name content=\"你为什么吸烟？\"><meta itemprop=description content=\"这么说吧，其实三五年往上走的朋友都知道，我以前是不抽烟的，以至于后来得知我开始抽烟后，大家都会很震惊。所以，我并不是在那个懵懂的年纪为了装逼耍酷而开始的。\n我为什么开始抽烟？为了爱情！开个玩笑，没有那么中二啦 →_→，但确实因为感情，2020 年 5 月 28 日，那晚回宿舍后，我一个人坐在明德宿舍的阳台上，点上了室友的一支利群，所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散，只是觉得头晕。\"><meta itemprop=datePublished content=\"2021-03-01T01:27:41+08:00\"><meta itemprop=dateModified content=\"2021-03-01T01:27:41+08:00\"><meta itemprop=wordCount content=\"1083\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随想\"><meta property=\"og:url\" content=\"https://lruihao.cn/me/whysmoke/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"你为什么吸烟？\"><meta property=\"og:description\" content=\"这么说吧，其实三五年往上走的朋友都知道，我以前是不抽烟的，以至于后来得知我开始抽烟后，大家都会很震惊。所以，我并不是在那个懵懂的年纪为了装逼耍酷而开始的。\n我为什么开始抽烟？为了爱情！开个玩笑，没有那么中二啦 →_→，但确实因为感情，2020 年 5 月 28 日，那晚回宿舍后，我一个人坐在明德宿舍的阳台上，点上了室友的一支利群，所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散，只是觉得头晕。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2021-03-01T01:27:41+08:00\"><meta property=\"article:modified_time\" content=\"2021-03-01T01:27:41+08:00\"><meta property=\"article:tag\" content=\"随想\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"你为什么吸烟？\"><meta name=twitter:description content=\"这么说吧，其实三五年往上走的朋友都知道，我以前是不抽烟的，以至于后来得知我开始抽烟后，大家都会很震惊。所以，我并不是在那个懵懂的年纪为了装逼耍酷而开始的。\n我为什么开始抽烟？为了爱情！开个玩笑，没有那么中二啦 →_→，但确实因为感情，2020 年 5 月 28 日，那晚回宿舍后，我一个人坐在明德宿舍的阳台上，点上了室友的一支利群，所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散，只是觉得头晕。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/me/whysmoke/ title=\"你为什么吸烟？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本\"><link rel=next type=text/html href=https://lruihao.cn/projects/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本\"><link rel=alternate type=text/markdown href=https://lruihao.cn/me/whysmoke/index.md title=\"你为什么吸烟？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"你为什么吸烟？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/me\\/whysmoke\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随想\",\"wordcount\":1083,\"url\":\"https:\\/\\/lruihao.cn\\/me\\/whysmoke\\/\",\"datePublished\":\"2021-03-01T01:27:41+08:00\",\"dateModified\":\"2021-03-01T01:27:41+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/me/whysmoke/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>你为什么吸烟？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>你为什么吸烟？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2021-03-01 01:27:41\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-03-01>2021-03-01</time></span>&nbsp;<span title=\"1083 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=你为什么吸烟？><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 请输入密码\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=48c72076a94038d1>PHA+602f9ed2a8d1e08d8f74f5303e9eb93637d47f82ab6f1c15871cf8dd0481L+Z5LmI6K+05ZCn77yM5YW25a6e5LiJ5LqU5bm05b6A5LiK6LWw55qE5pyL5Y+L6YO955+l6YGT77yM5oiR5Lul5YmN5piv5LiN5oq954Of55qE77yM5Lul6Iez5LqO5ZCO5p2l5b6X55+l5oiR5byA5aeL5oq954Of5ZCO77yM5aSn5a626YO95Lya5b6I6ZyH5oOK44CC5omA5Lul77yM5oiR5bm25LiN5piv5Zyo6YKj5Liq5oe15oeC55qE5bm057qq5Li65LqG6KOF6YC86ICN6YW36ICM5byA5aeL55qE44CCPC9wPgo8cD7miJHkuLrku4DkuYjlvIDlp4vmir3ng5/vvJ/kuLrkuobniLHmg4XvvIHlvIDkuKrnjqnnrJHvvIzmsqHmnInpgqPkuYjkuK3kuozllaYg4oaSX+KGku+8jOS9huehruWunuWboOS4uuaEn+aDhe+8jDIwMjAg5bm0IDUg5pyIIDI4IOaXpe+8jOmCo+aZmuWbnuWuv+iIjeWQju+8jOaIkeS4gOS4quS6uuWdkOWcqOaYjuW+t+Wuv+iIjeeahOmYs+WPsOS4iu+8jOeCueS4iuS6huWupOWPi+eahOS4gOaUr+WIqee+pO+8jOaJgOacieeahOS4jeeUmOWSjOmBl+aGvuS7peWPiuWnlOWxiOetieS4gOezu+WIl+a3t+adgueahOaDhee7quW5tuayoeaciemaj+edgOmCo+aUr+eDn+eDn+a2iOS6keaVo++8jOWPquaYr+inieW+l+WktOaZleOAgjwvcD4KPHA+5ZCO5p2l5Zue5Yiw5YWs5Y+477yM5oC76KeJ5b6X55Sf5rS75Lit5bCR5LqG5LuA5LmI77yM5q+V5Lia5ZCO6YKj5Yeg5Liq5pyI5oiR5oSf5Y+X5Yiw5q+U6auY6ICD5pu055Sa5Y2B5YCN55qE5YmN5omA5pyq5pyJ55qE5Y6L5oqR5ZKM54Om6Ze377yM5LuO57K+55m95Yiw5Yip576k5YaN5Yiw5Y+M5ZacICjmiYDku6XlnKjmiJHnnIvmnaXvvIzmr5TotbflpKflrrbluLjmir3nmoToipnok4nnjovvvIzkuK3ljY7ov5nkupvkubHkuIPlhavns5/nmoTvvIzlj4zllpwgeXlkc+KApinvvIzluLjluLjkuIDkuKrkurrlnKggTDcg5qCLIDEwIOalvOeahOalvOair+aKvemXt+eDn+aKveWIsOWupOWPi+WCrOaIkeWbnuWOu+eGhOeBr+edoeinie+8jOS7juS4gOW8gOWni+WPquaKveS4gOague+8jOWIsOS4pOague+8jOWIsOacgOemu+iwseeahOaXtuWAmei/nue7reaKveWNgeWkmuaguSAo5oiR5pyN5LqG546w5Zyo5oiR5YGa5LiN5Yiw4oCmKe+8jOWktOmDveaZleS6hu+8jOi/mOaYr+mavuino+W/g+aDheOAgjwvcD4KPHA+MjEg5bm05Zue5a626L+H5bm077yM5Zyo5a625oq954Of77yM5oiR5aaI6Zeu5oiR5LuA5LmI5pe25YCZ5byA5aeL5oq954Of55qE77yM5oiR5pCq5aGe5LqG5LiA5LiL5rKh5Zue562U5LuW77yM5ZCO5p2l5oiR54i45Lmf55+l6YGT5LqG77yI6KaB5piv5pCB5Zyo5oiR55qE5Lit5a2m5pe25Luj77yM5oCV5piv5YWN5LiN5LqG5LiA6aG/5omT4oCm77yJ77yM5L2G5piv5oiR54i45rKh6Zeu5oiR77yM5Y+q5piv5Zyo5oq954Of55qE5pe25YCZ77yM5aSa5LqG5LiA5Liq57uZ5oiR5Y+R54Of55qE5Yqo5L2c44CCPC9wPgo8cD7ml7boh7Pku4rml6XvvIzlvZPml7bliIbmiYvnmoTlm57lv4blt7Lnu4/ooqvml7bpl7TlhrLmt6HkuoblvojlpJrvvIzmsqHmnInliJrlvIDlp4vpgqPnp43liLvmhI/pk63orrDnmoTmipjno6jvvIzkuZ/msqHmnInkuI3mjqXlj5fkuovlrp7ogIzliLvmhI/pgIPpgb/nmoTlv4PmgIHvvIzkvYbmmK/vvIzmir3nmoTmr4/kuIDljIXng5/mgLvmnInpgqPkuYjlh6DmoLnlpJrlpJrlsJHlsJHluKbngrnlm57lv4bjgII8L3A+CjxwPuS9oOS4uuS7gOS5iOS4jeaIkueDn++8nzwvcD4KPHA+5pei54S25pe26L+H5aKD6L+B77yM5ZC454Of5pyJ5LiA5LiH56eN5pu055Sa5Y2x5a6z5YGl5bq355qE5Z2P5aSE77yM5Li65LuA5LmI5LiN5oiS54Of5ZGi77yfPC9wPgo8cD7kuI3lj6/lkKborqTvvIzkuIDpg6jliIbljp/lm6DmmK/lt7Lnu4/miJDkuobkuaDmg6/vvIzmm7TlpJrnmoTov5jmmK/lroPmm77pmarmiJHotbDlh7rkuIDmrrXnl5vkuI3mrLLnlJ/nmoTml6XlrZDvvIzkuZ/lnKjmr4/mrKHpgYfliLDkuovnmoTml7blgJnpmarmiJHotbDov4fkuIDnqIvjgILlroPmmK/miJHnmoTnsr7npZ7mlK/mn7HvvIzmr6vkuI3lpLjlvKDjgILigJzkuI3lkLjng5/nmoTkurrkuI3opoHlnKjkuIDkuKrlkLjng5/nmoTkurrpnaLliY3lip3ku5bmiJLng5/igJ3vvIzmiJHku6XliY3lkKzkuI3mh4Lov5nlj6Xor53vvIzkuZ/luIzmnJvlpKflrrbmsLjov5zkuI3kvJrmh4LjgII8L3A+CjxwPui/mOacieWwseaYr+Wlouacm+acquadpeacieS4gOS4quWKneaIkeaIkueDn+eahOS6uuWHuueOsOWQp++8jOWlueeUmuiHs+S4jemcgOimgeeQhueUse+8jOWboOS4uuWlueeahOWHuueOsOWwseaYr+eQhueUseOAguS9huaYr++8geaIkeW3sue7j+W8gOWni+S4jeacn+W+hei/meS4queQhueUseS6huOAgjwvcD4KPHA+5Lq677yM5bCk5YW25piv5bm06L275Lq677yM5bCx6K+l5Y+K5pe26KGM5LmQ77yM5oiR5Zac5qyi5ZCD77yM5bCx5pKR5ZyG5LqG5ZCD77yM5oiR5Zac5qyi5omT55CD77yM5LuA5LmI5pe25YCZ5oOz5omT5LqG5oiR5bCx5Y675omT77yM5oOz5Lmw5LuA5LmI5bCx5Lmw5LuA5LmI77yM5ZKM6LCB5Zyo5LiA6LW35byA5b+D5bCx5ZKM5Zyo5LiA6LW3546p44CC5oOz5YGa55qE5LqL5bCx5YGa77yM5Lmf6K645LiL5LiA56eS5oiR5bCx5LiN5oOz5LqG44CC5oiR5bCx5Zac5qyi5oq95bGJ5aCG5ruh54Of55qE5oSf6KeJ77yM5oiR5oOz5oq95ZOq56eN77yM6ZqP5pe25oOz5oq95bCx6IO95ou/5Yiw55qE5oSf6KeJ77yM5ZKM5L2g5Lus5omT5ri45oiP5oOz55So5ZOq5Liq55qu6IKk5bCx55So5ZOq5Liq55qu6IKk5LiA5Liq6YGT55CG44CCPC9wPgo8cD7kuZ/kuI3nn6XpgZPku47ku4DkuYjml7blgJnlvIDlp4vvvIzmr4/mrKHmi4bkuIDljIXng5/vvIzpg73kvJrmi7/nrKzkuIDng5/orrjmhL/vvIznhLblkI7lgJLmlL7lnKjnm5LlrZDph4zvvIzllK/niankuLvkuYnogIXvvIzmiJHkuI3kv6HkvZvvvIjlsL3nrqHkuZ/ngbXpqozov4fkuIDmrKHvvInvvIzlj6rmsYLlv4PlronjgII8L3A+CjxwPuWGjeadpe+8jOiZveeEtuaKveeDn++8jOS9huaYr+S4gOiIrOaDheWGteS4i+aIkeS4jeaOpeS4jeeGn+eahOS6uueDn++8jOS7luWPr+S7peaKveaIkeeahOaIkeS4jeS7i+aEj+OAguWcqOi3r+i+ueeci+WIsOWtleWmh+Wwj+WtqeaIkei/mOaYr+S8muWIu+aEj+aUtui1t+aIkeeahOeDn+WktO+8jOS4jeWKneS4jeaKveeDn+eahOS6uuaKveeDn+OAguS5n+efpemBk+S6huWcqOWTquWPr+S7peaKveWcqOWTquS4jeiDveaKve+8jOWwvemHj+S4jee7meWIq+S6uuW4puadpeS6jOaJi+eDn+OAgjwvcD4KPHA+5pyA5ZCO77yM4oCc5ZC454Of5pyJ5a6z5YGl5bq34oCd77yM5ZC454Of5ZCO5p6c4oCc6Ieq6LSf4oCd44CC4oCL4oCL4oCLPC9wPgo=</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-03-01 01:27:41\">更新于 2021-03-01&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E6%83%B3/ class=post-tag title=\"标签 - 随想\">随想</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/bill-note/ class=post-nav-item rel=prev title=Lruihao/bill-note><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/bill-note</a><a href=/projects/bill-note/ class=post-nav-item rel=next title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/13b21784b8ed829def60cfa62398f076.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/13b21784b8ed829def60cfa62398f076.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/me/whysmoke/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "me/whysmoke/index.md",
    "content": "# 你为什么吸烟？\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/me/whysmoke/  \n\n"
  },
  {
    "path": "offline/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>离线 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/offline/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/offline/ title=菠菜眾長><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/offline\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/offline/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=page id=content-offline><div class=header><h1 class=\"offline-title animate__animated animate__pulse animate__faster\">离线</h1><p class=\"offline-subtitle animate__animated animate__headShake\"><i class=\"fa-stack fa-xs\" aria-hidden=true><i class=\"fa-solid fa-wifi fa-stack-1x\" aria-hidden=true></i>\n<i class=\"fa-solid fa-ban fa-stack-2x\" aria-hidden=true></i>\n</i><span>ERROR_INTERNET_DISCONNECTED</span></p></div><p class=error-text>您没有连接到 Internet，只有缓存的页面可用。</p></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/offline/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/</title><link rel=canonical href=https://lruihao.cn/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/\"></head></html>"
  },
  {
    "path": "page/10/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/daka/ aria-label=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><img loading=eager src=/posts/daka/images/result.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 新冠疫情未返校未返工第 N 天之“自动打卡”\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/daka/>新冠疫情未返校未返工第 N 天之“自动打卡”</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-03-25 08:22:42'>发布于 <time datetime=2020-03-25>2020-03-25</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>这件事还得从一只蝙蝠说起 &mldr;<br>算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &mldr;<br>哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &mldr;<br>我和潇 X 巴哥确定思路后兵分两路：</p><ol><li>他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；</li><li>我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；</li></ol></div></div></div></div><div class=post-footer><a href=/posts/daka/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/http/ class=post-tag>HTTP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/years/2019/>2019 年度总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-01-16 20:01:22'>发布于 <time datetime=2020-01-16>2020-01-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>回顾 2019，是从“迷茫”到“忙”的一年，何为“迷茫”，何为“忙”。</p></blockquote></div><div class=post-footer><a href=/years/2019/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/sql/>SQL 总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-01-16 19:28:05'>发布于 <time datetime=2020-01-16>2020-01-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/mysql/ class=post-category title=\"分类 - MySQL\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> MySQL</a></span></div><div class=content><blockquote><p>SQL 增删改查 (CRUD) 语句与常用函数总结。</p></blockquote></div><div class=post-footer><a href=/posts/sql/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/mysql/ class=post-tag>MySQL</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/projects/cos-album/ aria-label=利用腾讯云为静态页面添加“动态”相册><img loading=eager src=/projects/cos-album/images/view.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 利用腾讯云为静态页面添加“动态”相册\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/projects/cos-album/>利用腾讯云为静态页面添加“动态”相册</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-11-24 10:52:34'>发布于 <time datetime=2019-11-24>2019-11-24</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，<br><strong><span style=color:#428bca>功能虽好，但是还是先友情提示！</span></strong><br>开放 API 是一个<strong>很危险</strong>的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！</div></div></div></div><div class=post-footer><a href=/projects/cos-album/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cosalbum/ class=post-tag>CosAlbum</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag>腾讯云 cos 桶</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/restful/>RESTful</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-11-14 19:06:05'>发布于 <time datetime=2019-11-14>2019-11-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ class=post-category title=\"分类 - 计算机网络\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 计算机网络</a></span></div><div class=content><blockquote><p>RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 <a href=https://www.rfc-editor.org/rfc/rfc5789 target=_blank rel=\"external nofollow noopener noreferrer\">RFC5789<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-footer><a href=/posts/restful/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/rest/ class=post-tag>REST</a><a href=/tags/http/ class=post-tag>HTTP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/phppushurl/>Php 同时主动推送链接到百度，神马等站长平台</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-09-28 18:32:42'>发布于 <time datetime=2019-09-28>2019-09-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=content><blockquote><p>php 主动推送站点链接到百度站长，神马站长进行 SEO。</p></blockquote></div><div class=post-footer><a href=/posts/phppushurl/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/phpfile/>Php 按行读取文件信息</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-09-28 17:11:17'>发布于 <time datetime=2019-09-28>2019-09-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=content><h3 class=heading-element id=普通方法><span>普通方法</span>\n<a href=#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先采用<code>fopen()</code>函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。<code>feof()</code>判断是否到最后一行，<code>fgets()</code>读取一行文本。</p></div><div class=post-footer><a href=/posts/phpfile/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/site-time/>设置网站运行时间</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-09-19 22:03:29'>发布于 <time datetime=2019-09-19>2019-09-19</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><blockquote><p>使用<code>javascript</code>计算博客等网站的运行时间。</p></blockquote></div><div class=post-footer><a href=/posts/site-time/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/async-defer/ aria-label=\"script 的三种加载方式 (async, defer)\"><img loading=eager src=/posts/async-defer/images/async_vs_defer.svg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for script 的三种加载方式 (async, defer)\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/async-defer/>Script 的三种加载方式 (Async, Defer)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-09-08 11:47:50'>发布于 <time datetime=2019-09-08>2019-09-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>JS 的加载分为两个部分：下载和执行。<br>浏览器在执行 HTML 的时候如果遇到<code>&lt;script></code>时会停止页面的渲染，去下载和执行 js 的文件直接遇见<code>&lt;/scirpt></code>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。</div></div></div></div><div class=post-footer><a href=/posts/async-defer/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/defer/ class=post-tag>defer</a><a href=/tags/async/ class=post-tag>async</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://www.cnblogs.com/rudong/p/7889114.html\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/sublime-text3/>Sublime Text3 快捷键大全</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-08-15 20:59:10'>发布于 <time datetime=2019-08-15>2019-08-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>Sublime Text3 快捷键一览表</p></div><div class=post-footer><a href=/posts/sublime-text3/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/sublime/ class=post-tag>Sublime</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/page/9/>9</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/page/12/>12</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/11/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/netbeans/>NetBeans IDE 开发设置</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-08-15 18:36:15'>发布于 <time datetime=2019-08-15>2019-08-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><h3 class=heading-element id=安裝><span>安裝</span>\n<a href=#%e5%ae%89%e8%a3%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://netbeans.org/ target=_blank rel=\"external nofollow noopener noreferrer\">官方下載點<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=擴充功能><span>擴充功能</span>\n<a href=#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=安裝擴充功能><span>安裝擴充功能</span>\n<a href=#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li>下載擴充套件包<ul><li><a href=http://plugins.netbeans.org/PluginPortal/ target=_blank rel=\"external nofollow noopener noreferrer\">官方套件庫<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>或者在 NetBeans IDE 裏面下載插件（方便）</li></ul></li><li>開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins</li><li>選擇要安裝的擴充套件包</li></ol><h4 class=heading-element id=啟用已安裝的擴充功能><span>啟用已安裝的擴充功能</span>\n<a href=#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li>開啟 NetBeans→Tools→Plugins→Installed</li><li>選擇要啟用的套件 (*.npm)</li><li>點擊 Activate</li></ol><h4 class=heading-element id=匯入設定><span>匯入設定</span>\n<a href=#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li>開啟 NetBeans→Tools→Options</li><li>點擊 Import 匯入設定</li><li>選擇要匯入的套件包 (*.zip)</li></ol><h3 class=heading-element id=常用設定><span>常用設定</span>\n<a href=#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=程式碼排版><span>程式碼排版</span>\n<a href=#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><blockquote><p>在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。</p></div><div class=post-footer><a href=/posts/netbeans/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/netbeans/ class=post-tag>NetBeans</a><a href=/tags/php/ class=post-tag>PHP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dev-rules/>Web 开发规则，代码规范</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-08-15 18:30:31'>发布于 <time datetime=2019-08-15>2019-08-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=content><h3 class=heading-element id=精神><span>精神</span>\n<a href=#%e7%b2%be%e7%a5%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>绝不写死代码，硬编码</li><li>不留不要用的、垃圾代码</li></ul><h3 class=heading-element id=git><span>Git</span>\n<a href=#git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>Master 的 BUG 必须最少且趋近于零，为最稳定的版本</li><li>每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能</li><li>禁止 Commit IDE 的 project data，e.g: .vscode</li><li>禁止上传垃圾代码</li></ul><blockquote><p>更多规则详见文档 <a href=/posts/commit-spec/>Commit 规范</a></p></div><div class=post-footer><a href=/posts/dev-rules/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/html/ class=post-tag>HTML</a><a href=/tags/java/ class=post-tag>java</a><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/php/ class=post-tag>PHP</a><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/rest/ class=post-tag>REST</a><a href=/tags/scss/ class=post-tag>Scss</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/phpform/>简单评论模块--Php 表单练习</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-07-19 11:38:59'>发布于 <time datetime=2019-07-19>2019-07-19</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=content><blockquote><p>简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，<br><strong>PHP 表单安全性的重要提示</strong><br><code>$_SERVER[\"PHP_SELF\"]</code>变量能够被黑客利用！<br>如果页面中使用了<code>PHP_SELF</code>，用户能够输入下划线然后执行跨站点脚本（XSS）。<br>比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。</p><p><code>跨站点脚本（Cross-site scripting，XSS）</code>是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。</p></blockquote></div><div class=post-footer><a href=/posts/phpform/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/phpfunc/>Php 函数学习</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-07-15 11:37:33'>发布于 <time datetime=2019-07-15>2019-07-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=content><blockquote><p>练习 php 函数的基本使用。<br>注：<br>必选参数在可选参数的前面。<br>可在函数中定义函数，需要先调用外层函数才能调用内层函数。</p></blockquote></div><div class=post-footer><a href=/posts/phpfunc/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wamproot/>WAMPServer 自定义网站根目录等设置</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-07-12 18:44:36'>发布于 <time datetime=2019-07-12>2019-07-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>使用 WAMPServer 时自定义网站根目录。</p></blockquote></div><div class=post-footer><a href=/posts/wamproot/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/wamp/ class=post-tag>WAMP</a><a href=/tags/php/ class=post-tag>PHP</a><a href=/tags/windows/ class=post-tag>windows</a><a href=/tags/server/ class=post-tag>server</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/pysx2/>Python 实训总结Ⅱ</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-06-21 18:46:41'>发布于 <time datetime=2019-06-21>2019-06-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>后面几天讲的有点杂，简单记录一下知识点。</p></blockquote></div><div class=post-footer><a href=/posts/pysx2/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/pysx1/>Python 实训总结Ⅰ</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-06-18 18:41:00'>发布于 <time datetime=2019-06-18>2019-06-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“<strong>用 python 做量化交易</strong>”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。</p></blockquote></div><div class=post-footer><a href=/posts/pysx1/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/turtle/ class=post-tag>turtle</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/judgetriangle/>判断三角形的黑盒测试</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-26 18:50:53'>发布于 <time datetime=2019-05-26>2019-05-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><blockquote><p>黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。<br>白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。</p></blockquote></div><div class=post-footer><a href=/posts/judgetriangle/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/ class=post-tag>黑盒测试</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hustoj/>HustOJ 基础搭建教程</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-17 23:08:04'>发布于 <time datetime=2019-05-17>2019-05-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>目前 HustOj 在 GitHUb 地址是：<a href=https://github.com/zhblue/hustoj target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/zhblue/hustoj<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><strong>安装时注意 ubuntu 版本</strong>，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复<code>ubuntu16.04</code>获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。<br>更多说明及 ACM/NOIP 题库下载见官网博客 <a href=http://www.hustoj.com/ target=_blank rel=\"external nofollow noopener noreferrer\">代码的那些事 | 程序员回忆录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-footer><a href=/posts/hustoj/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hustoj/ class=post-tag>hustoj</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/ubuntu/ class=post-tag>ubuntu</a><a href=/tags/linux/ class=post-tag>linux</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/gcd-bit/>最大公约数（二进制算法）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-17 09:14:16'>发布于 <time datetime=2019-05-17>2019-05-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><blockquote><p>二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。</p></blockquote></div><div class=post-footer><a href=/posts/gcd-bit/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ class=post-tag>欧几里得</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag>数论</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/page/10/>10</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/page/13/>13</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/12/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/imgurl/ aria-label=\"宝塔面板安装 ImgURL 图床\"><img loading=eager src=/posts/imgurl/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 宝塔面板安装 ImgURL 图床\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/imgurl/>宝塔面板安装 ImgURL 图床</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-16 20:31:33'>发布于 <time datetime=2019-05-16>2019-05-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><blockquote><p>ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n<a href=https://www.xiaoz.me/archives/12081 target=_blank rel=\"external nofollow noopener noreferrer\">阅读原文<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-footer><a href=/posts/imgurl/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/imgurl/ class=post-tag>ImgURL</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag>宝塔面板</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/mx2wx/>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-11 17:02:31'>发布于 <time datetime=2019-05-11>2019-05-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。<br>要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。</p></blockquote></div><div class=post-footer><a href=/posts/mx2wx/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/wxpy/ class=post-tag>wxpy</a><a href=/tags/pyinstaller/ class=post-tag>pyinstaller</a><a href=/tags/http/ class=post-tag>HTTP</a><a href=/tags/json/ class=post-tag>JSON</a><a href=/tags/cron/ class=post-tag>Cron</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=转载 class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/ifzhushi/>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-10 13:08:27'>发布于 <time datetime=2019-05-10>2019-05-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><blockquote><p><span>&lt;!--[if !IE]>&lt;!--> 除 IE 外都可识别 &lt;!--&lt;![endif]--></span><br><span>&lt;!--[if IE]> 所有的 IE 可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 6]> 仅 IE6 可识别 &lt;![endif]--></span><br><span>&lt;!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 7]> 仅 IE7 可识别 &lt;![endif]--></span><br><span>&lt;!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 8]> 仅 IE8 可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 9]> 仅 IE9 可识别 &lt;![endif]--></span></p></blockquote></div><div class=post-footer><a href=/posts/ifzhushi/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag>HTML</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/pysettime/>Python 设置程序每天 8 点定时执行任务</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-09 23:26:54'>发布于 <time datetime=2019-05-09>2019-05-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。<br>第二次运行后直接休眠一天，到每天早上 8 点执行任务。<br>（该程序需要一直挂着，保持网络不断）</p></blockquote></div><div class=post-footer><a href=/posts/pysettime/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/cron/ class=post-tag>Cron</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/pyinstallererror/ aria-label=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><img loading=eager src=/posts/pyinstallererror/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/pyinstallererror/>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-09 19:05:01'>发布于 <time datetime=2019-05-09>2019-05-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>用过命令<code>pip install pyinstaller</code>安装失败，此包依赖于 pywin32，安装前需要先<code>pip install pywin32</code>, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。</p></blockquote></div><div class=post-footer><a href=/posts/pyinstallererror/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/pyinstaller/ class=post-tag>pyinstaller</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/singlethreaddown/ aria-label=\"java 实现一个单线程的资源下载器\"><img loading=eager src=/posts/singlethreaddown/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for java 实现一个单线程的资源下载器\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/singlethreaddown/>Java 实现一个单线程的资源下载器</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-08 20:55:02'>发布于 <time datetime=2019-05-08>2019-05-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。</p></blockquote></div><div class=post-footer><a href=/posts/singlethreaddown/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gui/ class=post-tag>GUI</a><a href=/tags/urlconnection/ class=post-tag>URLConnection</a><a href=/tags/http/ class=post-tag>HTTP</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/jsoninfo/ aria-label=\"Python 如何操作 Json？\"><img loading=eager src=/posts/jsoninfo/images/1.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Python 如何操作 Json？\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://baijiahao.baidu.com/s?id=1608659655547720220&amp;wfr=spider&amp;for=pc\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/jsoninfo/>Python 如何操作 Json？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-07 18:42:47'>发布于 <time datetime=2019-05-07>2019-05-07</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。</p></blockquote></div><div class=post-footer><a href=/posts/jsoninfo/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/json/ class=post-tag>JSON</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/posttest/>Python 发送 Post 请求进行简单的接口测试</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-07 18:17:05'>发布于 <time datetime=2019-05-07>2019-05-07</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：</p></blockquote><ul><li>requests.get()</li><li>requests.post()<br>最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。</li></ul></div><div class=post-footer><a href=/posts/posttest/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/http/ class=post-tag>HTTP</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/java-urlreader/>Java 通过 URL 和 URLConnection 访问网页资源</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-06 17:41:35'>发布于 <time datetime=2019-05-06>2019-05-06</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。</p></blockquote></div><div class=post-footer><a href=/posts/java-urlreader/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/urlconnection/ class=post-tag>URLConnection</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/byteio/>文件加密解密（字节流）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-02 23:04:32'>发布于 <time datetime=2019-05-02>2019-05-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。</p><p>这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。</p></blockquote></div><div class=post-footer><a href=/posts/byteio/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/page/11/>11</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/page/14/>14</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/13/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/javaexception/ aria-label=\"模拟借书系统（java 异常练习）\"><img loading=eager src=/posts/javaexception/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 模拟借书系统（java 异常练习）\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/javaexception/>模拟借书系统（java 异常练习）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-05-01 16:52:21'>发布于 <time datetime=2019-05-01>2019-05-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content></div><div class=post-footer><a href=/posts/javaexception/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/qrcode/>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-27 14:16:54'>发布于 <time datetime=2019-04-27>2019-04-27</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p><strong>Python 二维码生成器</strong>是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 <a href=https://github.com/sylnsfar/qrcode/ target=_blank rel=\"external nofollow noopener noreferrer\">sylnsfar/qrcode<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，本文主要介绍记录一下 python 版本使用。exe 可以去 <a href=https://github.com/sylnsfar/qrcode_win target=_blank rel=\"external nofollow noopener noreferrer\">项目开源地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 下载，公众号文章后台回复关键词“qrcode”获取链接。</p></blockquote><p>可生成_普通二维码_、<em>带图片的艺术二维码（黑白与彩色）</em>、<em>动态二维码（黑白与彩色）</em>。</p></div><div class=post-footer><a href=/posts/qrcode/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/pillow/ class=post-tag>pillow</a><a href=/tags/numpy/ class=post-tag>numpy</a><a href=/tags/imageio/ class=post-tag>imageio</a><a href=/tags/python/ class=post-tag>Python</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/1thintervivew/>第一次面试经历</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-24 21:23:22'>发布于 <time datetime=2019-04-24>2019-04-24</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。</p></blockquote></div><div class=post-footer><a href=/posts/1thintervivew/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9D%A2%E8%AF%95/ class=post-tag>面试</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/mmtimgpy/>Python 爬取网站图片（图片链接相似）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-22 12:46:34'>发布于 <time datetime=2019-04-22>2019-04-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>以下程序对 <a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-&amp;share=1&amp;from=singlemessage\" target=_blank rel=\"external nofollow noopener noreferrer\">该网址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。<a href=/projects/font-mmt/>字体效果查看</a></p></blockquote></div><div class=post-footer><a href=/posts/mmtimgpy/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/wxpy1/ aria-label=\"python 玩微信：初探 wxpy\"><img loading=eager src=/posts/wxpy1/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for python 玩微信：初探 wxpy\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wxpy1/>Python 玩微信：初探 Wxpy</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-20 15:44:57'>发布于 <time datetime=2019-04-20>2019-04-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p><strong><em>文中涉及的图片涉及个人隐私，仅做举例，请勿传播</em></strong></p><ul><li>查看微信好友男女比例</li><li>查看好友地区分布</li><li>群性别统计</li></ul></blockquote></div><div class=post-footer><a href=/posts/wxpy1/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a><a href=/tags/wxpy/ class=post-tag>wxpy</a><a href=/tags/pyecharts/ class=post-tag>pyecharts</a><a href=/tags/jieba/ class=post-tag>jieba</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/wximgpy/ aria-label=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><img loading=eager src=/posts/wximgpy/images/1.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 基本 python 实现的爬取微信好友头像，并拼接成大图\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wximgpy/>基本 Python 实现的爬取微信好友头像，并拼接成大图</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-20 13:32:58'>发布于 <time datetime=2019-04-20>2019-04-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）<br><strong><em>文中涉及的图片涉及个人隐私，仅做举例，请勿传播</em></strong><br><strong>文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删</strong></p></blockquote></div><div class=post-footer><a href=/posts/wximgpy/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/wxpy/ class=post-tag>wxpy</a><a href=/tags/pillow/ class=post-tag>pillow</a><a href=/tags/python/ class=post-tag>Python</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hellojava/>用记事本编写第一个 Java 程序</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-19 19:49:54'>发布于 <time datetime=2019-04-19>2019-04-19</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以<code>.java</code>为后缀的文件；然后将这些源程序用<code>javac</code>编译成<code>.class</code>后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。<br>由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。</p></blockquote><ul><li>javac</li><li>java</li></ul></div><div class=post-footer><a href=/posts/hellojava/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/java-regex/>Java 正则表达式练习</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-18 22:04:21'>发布于 <time datetime=2019-04-18>2019-04-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=邮箱><span>邮箱</span>\n<a href=#%e9%82%ae%e7%ae%b1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Matcher</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Pattern</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>RegexDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//       Pattern 类 正则表达式的编译表示。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>Pattern</span><span class=w> </span><span class=n>pattern</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[a-zA-Z0-9_!#$%&amp;&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>emails</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&#34;admin@lruihao.cn&#34;</span><span class=p>,</span><span class=w> </span><span class=s>&#34;lruihao.cn&#34;</span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>email</span><span class=w> </span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=n>emails</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>Matcher</span><span class=w> </span><span class=n>matcher</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>pattern</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>email</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>email</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=s>&#34;匹配结果：&#34;</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>matcher</span><span class=p>.</span><span class=na>matches</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=n>admin</span><span class=nd>@lruihao.cn</span><span class=w> </span><span class=n>匹配结果</span><span class=err>：</span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>lruihao</span><span class=p>.</span><span class=na>cn</span><span class=w> </span><span class=n>匹配结果</span><span class=err>：</span><span class=kc>false</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=电话><span>电话</span>\n<a href=#%e7%94%b5%e8%af%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Matcher</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Pattern</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>RegexTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Pattern</span><span class=w> </span><span class=n>patter</span><span class=o>=</span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=n>telnum</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextLine</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Matcher</span><span class=w> </span><span class=n>matcher</span><span class=o>=</span><span class=n>patter</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>telnum</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>telnum</span><span class=o>+</span><span class=s>&#34;匹配结果： &#34;</span><span class=o>+</span><span class=n>matcher</span><span class=p>.</span><span class=na>matches</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 获取当前的 httpSession\n</span></span></span><span class=line><span class=cl><span class=cm> * @return\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=n>HttpSession</span><span class=w> </span><span class=nf>getSession</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>getRequest</span><span class=p>().</span><span class=na>getSession</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 手机号验证\n</span></span></span><span class=line><span class=cl><span class=cm> * @param str\n</span></span></span><span class=line><span class=cl><span class=cm> * @return 验证通过返回 true\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>isMobile</span><span class=p>(</span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>str</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Pattern</span><span class=w> </span><span class=n>p</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Matcher</span><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>boolean</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;</span><span class=p>);</span><span class=w> </span><span class=c1>// 验证手机号</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 电话号码验证\n</span></span></span><span class=line><span class=cl><span class=cm> * @param str\n</span></span></span><span class=line><span class=cl><span class=cm> * @return 验证通过返回 true\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>isPhone</span><span class=p>(</span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>str</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Pattern</span><span class=w> </span><span class=n>p1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>,</span><span class=w> </span><span class=n>p2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Matcher</span><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>boolean</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[0][1-9]{2,3}-[0-9]{5,10}$&#34;</span><span class=p>);</span><span class=w> </span><span class=c1>// 验证带区号的</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1-9]{1}[0-9]{5,8}$&#34;</span><span class=p>);</span><span class=w>     </span><span class=c1>// 验证没有区号的</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>str</span><span class=p>.</span><span class=na>length</span><span class=p>()</span><span class=w> </span><span class=o>&gt;</span><span class=w> </span><span class=n>9</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p1</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w> </span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p2</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=身份证><span>身份证</span>\n<a href=#%e8%ba%ab%e4%bb%bd%e8%af%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/* 身份证正则表达式 16 或 18 */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>IDCARD</span><span class=o>=</span><span class=s>&#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&#34;</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>           </span><span class=s>&#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&#34;</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>           </span><span class=s>&#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&#34;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-footer><a href=/posts/java-regex/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/regex/ class=post-tag>regex</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/stringbuffer/>Java 常用类</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-14 10:12:44'>发布于 <time datetime=2019-04-14>2019-04-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=stringbufferstringbuilder掌握><span>StringBuffer/StringBuilder（掌握）</span>\n<a href=#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=stringbuffer-是线程安全的可变字符串><span>StringBuffer 是线程安全的可变字符串</span>\n<a href=#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>StringBuilder 是线程不安全的可变字符串。<br>和 StringBuffer 的功能一样。就是效率高一些，但是不安全。</p></div><div class=post-footer><a href=/posts/stringbuffer/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/stringbuffer/ class=post-tag>StringBuffer</a><a href=/tags/sort/ class=post-tag>sort</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu1009/>HDU 1009 FatMouse' Trade（贪心）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-12 16:43:19'>发布于 <time datetime=2019-04-12>2019-04-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题目大意><span>题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。</p></div><div class=post-footer><a href=/posts/hdu1009/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E8%B4%AA%E5%BF%83/ class=post-tag>贪心</a><a href=/tags/hdu/ class=post-tag>HDU</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/page/12/>12</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/page/15/>15</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/14/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/ngrok/>本地搭建网站服务器并穿透内网</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-04-03 19:29:43'>发布于 <time datetime=2019-04-03>2019-04-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><blockquote><p>一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。</p></blockquote></div><div class=post-footer><a href=/posts/ngrok/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ngrok/ class=post-tag>ngrok</a><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag>宝塔面板</a><a href=/tags/server/ class=post-tag>server</a><a href=/tags/ubuntu/ class=post-tag>ubuntu</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/ms-html-css/>前端面试题 - HTML+CSS</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-30 22:58:39'>发布于 <time datetime=2019-03-30>2019-03-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p><a href=https://github.com/ltadpoles/web-document/tree/master/Other target=_blank rel=\"external nofollow noopener noreferrer\">原文链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。</p></blockquote><p>如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过</p></div><div class=post-footer><a href=/posts/ms-html-css/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag>HTML</a><a href=/tags/css/ class=post-tag>CSS</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/bqbj/>百钱百鸡（枚举法）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-30 10:13:33'>发布于 <time datetime=2019-03-30>2019-03-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><blockquote><p>我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？</p></blockquote></div><div class=post-footer><a href=/posts/bqbj/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dacheng/>大数乘法</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-28 22:50:43'>发布于 <time datetime=2019-03-28>2019-03-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><blockquote><p>大数乘法 c 版 (基础写法)</p></blockquote></div><div class=post-footer><a href=/posts/dacheng/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/ class=post-tag>大数运算</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/http2https/>Vps 配置 Ssl 及 Https 重定向</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-28 19:40:54'>发布于 <time datetime=2019-03-28>2019-03-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><blockquote><p>记录自己在配置 vps 及博客 SSL 证书时遇到的问题。</p></blockquote></div><div class=post-footer><a href=/posts/http2https/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ssl/ class=post-tag>SSL</a><a href=/tags/redirect/ class=post-tag>redirect</a><a href=/tags/cdn/ class=post-tag>CDN</a><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/server/ class=post-tag>server</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/hexo-theme-next/ aria-label=\"hexo-theme-next @modified LRH\"><img loading=eager src=/posts/hexo-theme-next/images/next.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for hexo-theme-next @modified LRH\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexo-theme-next/>Hexo-Theme-Next @Modified LRH</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-21 16:43:19'>发布于 <time datetime=2019-03-21>2019-03-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><div class=\"details admonition danger open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-bolt\" aria-hidden=true></i>危险<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><span style=color:#d9534f;font-size:1.2em><strong>如无必要，不再更新！（2019.09.13）</strong></span><br>今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将<strong>放弃对 next 的主题的自定义修改</strong>，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。<br>我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。<br>以下仍为当前博客使用主题，lib 资源已打包 github。</div></div></div></div><div class=post-footer><a href=/posts/hexo-theme-next/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/substatus/>Java 父类子类的对象初始化过程</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-21 13:36:25'>发布于 <time datetime=2019-03-21>2019-03-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。</p></blockquote></div><div class=post-footer><a href=/posts/substatus/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/windefault/ aria-label=\"ubuntu + windows 双系统默认启动项设置\"><img loading=eager src=/posts/windefault/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for ubuntu + windows 双系统默认启动项设置\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/windefault/>Ubuntu + Windows 双系统默认启动项设置</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-21 12:48:30'>发布于 <time datetime=2019-03-21>2019-03-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><blockquote><p>双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。</p></blockquote></div><div class=post-footer><a href=/posts/windefault/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/windows/ class=post-tag>windows</a><a href=/tags/ubuntu/ class=post-tag>ubuntu</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/player/ aria-label=宅音乐播放器><img loading=eager src=/posts/player/images/index.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 宅音乐播放器\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/player/>宅音乐播放器</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-19 23:32:56'>发布于 <time datetime=2019-03-19>2019-03-19</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=content><blockquote><p>宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~<br><a href=https://github.com/lzx8589561/zhai-music target=_blank rel=\"external nofollow noopener noreferrer\">原项目<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 由 <a href=https://www.ilt.me target=_blank rel=\"external nofollow noopener noreferrer\">IT 技术宅<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 开源，使用 thinkPHP 开发后台。 <a href=https://github.com/Lruihao/zhai-music target=_blank rel=\"external nofollow noopener noreferrer\">fork 地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是我个人学习模仿的库，也是相当于备份源码。<br><em>注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。</em></p></blockquote></div><div class=post-footer><a href=/posts/player/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a><a href=/tags/thinkphp/ class=post-tag>ThinkPHP</a><a href=/tags/layui/ class=post-tag>Layui</a><a href=/tags/mysql/ class=post-tag>MySQL</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/bt/ aria-label=宝塔面板安装><img loading=eager src=/posts/bt/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 宝塔面板安装\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/bt/>宝塔面板安装</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-18 21:31:43'>发布于 <time datetime=2019-03-18>2019-03-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><p>极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。<a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=_blank rel=\"external nofollow noopener noreferrer\">宝塔官网介绍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-footer><a href=/posts/bt/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/server/ class=post-tag>server</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag>宝塔面板</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/12/>12</a></span></li><li class=page-item><span class=page-link><a href=/page/13/>13</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/page/15/>15</a></span></li><li class=page-item><span class=page-link><a href=/page/16/>16</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/15/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/webbiji/>Web 汇总</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-18 20:40:55'>发布于 <time datetime=2019-03-18>2019-03-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！</p></blockquote></div><div class=post-footer><a href=/posts/webbiji/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/fanxing/>Java 泛型 Test</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-16 13:56:01'>发布于 <time datetime=2019-03-16>2019-03-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><ul><li>泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&lt;>)</li><li>类型通配符一般使用问号<code>?</code>代替具体的类型<code>实</code>参，注意不是类型形参。</li></ul></blockquote></div><div class=post-footer><a href=/posts/fanxing/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B3%9B%E5%9E%8B/ class=post-tag>泛型</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/eclipseuse/>Eclipse 的基本使用</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-15 23:47:24'>发布于 <time datetime=2019-03-15>2019-03-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><h3 class=heading-element id=基本使用><span>基本使用</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>A: 选择一个工作空间\n</span></span><span class=line><span class=cl>  D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\n</span></span><span class=line><span class=cl>B: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n</span></span><span class=line><span class=cl>  a: 创建项目（工程）\n</span></span><span class=line><span class=cl>    *File -- New -- Java Project\n</span></span><span class=line><span class=cl>    *在左边空白处，直接右键 -- New -- Java Project\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    键入项目名称后直接 Finish。\n</span></span><span class=line><span class=cl>  b: 所有的 java 文件必须写到 src 下面才有效\n</span></span><span class=line><span class=cl>  c: 创建一个包\n</span></span><span class=line><span class=cl>    cn.lruihao\n</span></span><span class=line><span class=cl>  d: 在包下创建一个类\n</span></span><span class=line><span class=cl>    HelloWorld\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    同时让它帮我们写好了 main 方法。\n</span></span><span class=line><span class=cl>  e: 在 main 方法中写内容即可\n</span></span><span class=line><span class=cl>  f: 编译程序\n</span></span><span class=line><span class=cl>    自动编译，在保存的那一刻帮你做好了\n</span></span><span class=line><span class=cl>  g: 运行程序\n</span></span><span class=line><span class=cl>    选择要运行的文件或者在要运行的文件内容中\n</span></span><span class=line><span class=cl>    右键 -- Run as - Java Application 即可\n</span></span><span class=line><span class=cl>  h: 内容显示\n</span></span><span class=line><span class=cl>    在 Console 控制台显示内容\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=eclipse-的基本设置><span>Eclipse 的基本设置</span>\n<a href=#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>程序的编译和运行的环境配置</span><span class=err>（</span><span class=n>如果你的</span><span class=w> </span><span class=n>Eclipse</span><span class=w> </span><span class=n>启动没有问题</span><span class=err>，</span><span class=n>就不要配置了</span><span class=err>）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>去掉默认注释</span><span class=err>（</span><span class=n>可以不用改</span><span class=err>）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>C</span><span class=p>:</span><span class=w> </span><span class=n>行号的显示和隐藏</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>显示</span><span class=err>：</span><span class=n>在代码区域的最左边的空白区域</span><span class=err>，</span><span class=n>右键</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Show</span><span class=w> </span><span class=n>Line</span><span class=w> </span><span class=n>Numbers</span><span class=w> </span><span class=n>即可</span><span class=err>。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>隐藏</span><span class=err>：</span><span class=n>把上面的动作再做一次</span><span class=err>。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>D</span><span class=p>:</span><span class=w> </span><span class=n>字体大小及颜色</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>a</span><span class=p>:</span><span class=n>Java</span><span class=w> </span><span class=n>代码区域的字体大小和颜色</span><span class=err>：</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Java</span><span class=w> </span><span class=n>修改</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Java</span><span class=w> </span><span class=n>Edit</span><span class=w> </span><span class=n>Text</span><span class=w> </span><span class=n>Font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=p>:</span><span class=w> </span><span class=n>控制台</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Debug</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Console</span><span class=w> </span><span class=n>font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>c</span><span class=p>:</span><span class=w> </span><span class=n>其他文件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Basic</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Text</span><span class=w> </span><span class=n>Font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>E</span><span class=p>:</span><span class=w> </span><span class=n>窗体给弄乱了</span><span class=err>，</span><span class=n>怎么办</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Reset</span><span class=w> </span><span class=n>Perspective</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>F</span><span class=p>:</span><span class=w> </span><span class=n>控制台找不到了</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Window</span><span class=o>--</span><span class=n>Show</span><span class=w> </span><span class=n>View</span><span class=err>—</span><span class=n>Console</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=快捷键的使用><span>快捷键的使用</span>\n<a href=#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>内容辅助键</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Alt</span><span class=o>+/</span><span class=w> </span><span class=n>起提示作用</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>main</span><span class=o>+</span><span class=n>alt</span><span class=o>+/</span><span class=p>,</span><span class=n>syso</span><span class=o>+</span><span class=n>alt</span><span class=o>+/</span><span class=p>,</span><span class=w> </span><span class=n>给出其他提示</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>快捷键</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>格式化</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=n>f</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>导入包</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=n>o</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>注释</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+/</span><span class=p>,</span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=err>\\</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>代码上下移动</span><span class=w> </span><span class=n>选中代码</span><span class=w> </span><span class=n>alt</span><span class=o>+</span><span class=n>上</span><span class=o>/</span><span class=n>下箭头</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>查看源码</span><span class=w>  </span><span class=nf>选中类名</span><span class=w> </span><span class=p>(</span><span class=n>F3</span><span class=w> </span><span class=n>或者</span><span class=w> </span><span class=n>Ctrl</span><span class=o>+</span><span class=n>鼠标点击</span><span class=err>）</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=eclipse-中如何提高开发效率><span>Eclipse 中如何提高开发效率</span>\n<a href=#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>自动生成构造方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>a</span><span class=p>:</span><span class=w> </span><span class=n>无参构造方法</span><span class=w> </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Constructors</span><span class=w> </span><span class=n>from</span><span class=w> </span><span class=n>Superclass</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=p>:</span><span class=w> </span><span class=n>带参构造方法</span><span class=w> </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Constructors</span><span class=w> </span><span class=n>using</span><span class=w> </span><span class=n>fields</span><span class=p>..</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>finish</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>自动生成</span><span class=w> </span><span class=n>get</span><span class=o>/</span><span class=n>set</span><span class=w> </span><span class=n>方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Getters</span><span class=w> </span><span class=n>and</span><span class=w> </span><span class=n>Setters</span><span class=p>...</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-footer><a href=/posts/eclipseuse/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/eclipse/ class=post-tag>eclipse</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/qframe/>匿名类在可视化界面中的应用</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-15 22:31:28'>发布于 <time datetime=2019-03-15>2019-03-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>java 中匿名类用的最多的地方就是可视化界面设计中，特别是将<code>事件监听器</code>注册到某个组件上的时候。</p></blockquote></div><div class=post-footer><a href=/posts/qframe/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gui/ class=post-tag>GUI</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/linkcard/>模仿知乎卡片式链接</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-15 15:21:39'>发布于 <time datetime=2019-03-15>2019-03-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><blockquote><p>模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]</p></blockquote></div><div class=post-footer><a href=/posts/linkcard/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/ubuntutime/>Win10,ubuntu 双系统时间不一致</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-15 14:28:10'>发布于 <time datetime=2019-03-15>2019-03-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><blockquote><p>我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。</p></blockquote></div><div class=post-footer><a href=/posts/ubuntutime/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ubuntu/ class=post-tag>ubuntu</a><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/windows/ class=post-tag>windows</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/qqxml/>QQ 强制生成卡片式链接</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-08 16:52:13'>发布于 <time datetime=2019-03-08>2019-03-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><blockquote><p>以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。<br>查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url <code>https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=</code> 于是就有了脚本刷新的想法。简陋的写了一下。</p></blockquote></div><div class=post-footer><a href=/posts/qqxml/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cipanadmin/>磁盘存储器的管理</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-04 23:08:32'>发布于 <time datetime=2019-03-04>2019-03-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><h3 class=heading-element id=外存的组织方式><span>外存的组织方式</span>\n<a href=#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=连续组织方式><span>连续组织方式</span>\n<a href=#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ul><li><p>连续组织方式的优点</p></div><div class=post-footer><a href=/posts/cipanadmin/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/os/ class=post-tag>OS</a><a href=/tags/%E7%A3%81%E7%9B%98/ class=post-tag>磁盘</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/js-vcode/>JS 验证码</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-03-04 20:53:09'>发布于 <time datetime=2019-03-04>2019-03-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><style type=text/css># code{font-family:Arial;font-style:italic;font-weight:700;border:2px solid #ddd;letter-spacing:9px;color:blue;font-size:15px}</style><script type=text/javascript>var code;function createCode(){code=\"\";for(var t,n=4,s=document.getElementById(\"code\"),o=new Array(\"人\",\"徒\",\"知\",\"枯\",\"坐\",\"息\",\"思\",\"为\",\"进\",\"德\",\"之\",\"功\",\"殊\",\"不\",\"知\",\"上\",\"达\",\"之\",\"士\",\"圆\",\"通\",\"定\",\"慧\",\"体\",\"用\",\"双\",\"修\",\"即\",\"动\",\"而\",\"静\",\"虽\",\"撄\",\"而\",\"宁\"),e=0;e<n;e++)t=Math.floor(Math.random()*35),code+=o[t];s.value=code}function validate(){var e=document.getElementById(\"input\"),t=e.value.toUpperCase();t==0?alert(\"请输入验证码\"):t!=code?(e.value=\"\",alert(\"验证码不正确，请重新输入\"),createCode()):(e.value=\"\",alert(\"验证码正确！\"))}window.onload=function(){createCode()}</script><div align=center><input type=text id=input> <input type=button id=code onclick=createCode()> <input class=btn type=button value=验证 onclick=validate()><br>请点击验证码处：↑</div></div><div class=post-footer><a href=/posts/js-vcode/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/renative/>还乡</a></h2><div class=post-meta><span class=post-author><a href=mailto:1845280636@qq.com title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><i class=\"fa-solid fa-user-circle\" aria-hidden=true></i>\n杨灿</a></span>&nbsp;<span class=post-publish title='2019-02-01 20:44:40'>发布于 <time datetime=2019-02-01>2019-02-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。</p></blockquote></div><div class=post-footer><a href=/posts/renative/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/13/>13</a></span></li><li class=page-item><span class=page-link><a href=/page/14/>14</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/15/>15</a></span></li><li class=page-item><span class=page-link><a href=/page/16/>16</a></span></li><li class=page-item><span class=page-link><a href=/page/17/>17</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/16/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/jicheng/>Java 继承 Test</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-24 15:07:50'>发布于 <time datetime=2019-01-24>2019-01-24</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>引用<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>继承的好处：</p><ol><li>提高了代码的复用性</li><li>提高了代码的维护性</li><li>让类与类之间产生了关系，是多态的前提</li></ol><p>继承的弊端：类的耦合性很强</p><p>设计原则：低耦合，高内聚。</p><ul><li>耦合：类与类的关系。</li><li>内聚：自己完成事情的能力。</li></ul></div></div></div></div><div class=post-footer><a href=/posts/jicheng/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cos-hexo/>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-22 14:57:08'>发布于 <time datetime=2019-01-22>2019-01-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。<br>适用于 hexo, hugo 等静态博客的部署。</p></blockquote></div><div class=post-footer><a href=/posts/cos-hexo/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ class=post-tag>对象存储</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag>腾讯云 cos 桶</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/java-arrays/>Arrays 类及基本使用</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-18 13:13:10'>发布于 <time datetime=2019-01-18>2019-01-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=主要方法><span>主要方法</span>\n<a href=#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>static type[] copyof(type[] original,int length)</li><li>static int binarysearch(type[] a,type key)</li><li>static boolean equals(type[] a,type[] b)</li><li>static void fill(type[] a,type val)</li><li>static void fill(type[] a,int fromindex,int toindex,type val)</li><li>static void sort(type[] a)</li></ul></div><div class=post-footer><a href=/posts/java-arrays/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a><a href=/tags/collator/ class=post-tag>Collator</a><a href=/tags/comparator/ class=post-tag>Comparator</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/recent-posts/>在搜索、文章底部、侧栏添加最近文章模块</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-16 17:50:52'>发布于 <time datetime=2019-01-16>2019-01-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>首先在主题配置文件添加以下关键字</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>recent_posts:\n</span></span><span class=line><span class=cl>  enable: true\n</span></span><span class=line><span class=cl>  search: true\n</span></span><span class=line><span class=cl>  post: false\n</span></span><span class=line><span class=cl>  sidebar: false\n</span></span><span class=line><span class=cl>  icon: history\n</span></span><span class=line><span class=cl>  title: 近期文章\n</span></span><span class=line><span class=cl>  layout: block</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=侧栏><span>侧栏</span>\n<a href=#%e4%be%a7%e6%a0%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 <code>next/layout/_macro/sidebar.swig</code> 中的 <code>if theme.links</code> 对应的 <code>endif</code> 后面。</p></div><div class=post-footer><a href=/posts/recent-posts/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/mathclass/>Java 猜数字小游戏（Math 类）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-15 17:33:28'>发布于 <time datetime=2019-01-15>2019-01-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>大一刚学 c 的时候以前写过 <a href=https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B target=_blank rel=\"external nofollow noopener noreferrer\">c 语言版<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的。</p></blockquote><ol><li>Math: 针对数学进行运算的类</li><li>特点：没有构造方法，因为它的成员都是静态的</li><li>产生随机数：\npublic static double random(): 产生随机数，范围 [0.0,1.0)</li><li>产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;</li><li>猜数字小游戏案例</li></ol></div><div class=post-footer><a href=/posts/mathclass/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/duixiang/>面向对象基础知识总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-15 16:07:31'>发布于 <time datetime=2019-01-15>2019-01-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=面向对象思想理解><span>面向对象思想（理解）</span>\n<a href=#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>面向对象是基于面向过程的一种编程思想</li><li>思想特点：<br>A: 是一种更符合我们思考习惯的思想<br>B: 把复杂的问题简单化<br>C: 让我们从执行者变成了指挥者</li><li>举例：<br>A: 洗衣服<br>B: 吃饭<br>C: 买电脑</li><li>举例并代码体现\n把大象装进冰箱</li></ol><h3 class=heading-element id=类与对象掌握><span>类与对象（掌握）</span>\n<a href=#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。</li><li>现实世界事物是如何表达的呢？\n属性：外在特征<br>行为：内在行为</li><li>我们学习的是 java 语言，它最基本的单位是类。<br>所以我们要学会用类来体现一个事物。</li><li>类：是一组相关的属性和行为的集合</li><li>对象：是该类事物的具体个体。</li><li>举例：<br>学生 类<br>张三 对象</li></ol><h3 class=heading-element id=类的组成掌握><span>类的组成（掌握）</span>\n<a href=#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>成员变量<br>其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。</li><li>成员方法<br>其实就是方法，只不过不需要 static 了</li><li>案例：<br>学生类</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=类的使用掌握><span>类的使用（掌握）</span>\n<a href=#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>创建对象<br>格式：类名 对象名 = new 类名 ();</li><li>使用成员<br>成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&mldr;);</li></ol><h3 class=heading-element id=成员变量和局部变量的区别理解><span>成员变量和局部变量的区别（理解）</span>\n<a href=#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>在类中的位置不同<br>A: 成员变量 类中，方法外<br>B: 局部变量 方法的形式参数，或者方法体中</li><li>在内存中的位置不同<br>A: 成员变量 在堆中<br>B: 局部变量 在栈中</li><li>生命周期不同<br>A: 成员变量 随着对象的存在而存在，随着对象的消失而消失<br>B: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失</li><li>初始化值不同<br>A: 成员变量 有默认初始化值<br>B: 局部变量 没有默认值，必须先声明，赋值，最后才能使用</li></ol><h3 class=heading-element id=形式参数问题理解><span>形式参数问题（理解）</span>\n<a href=#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>基本类型<br>基本类型作为形式参数，需要的是该基本类型的值。</li><li>引用类型<br>引用类型作为形式参数，需要的是该引用类型的地址值。（对象）</li></ol><h3 class=heading-element id=匿名对象理解><span>匿名对象（理解）</span>\n<a href=#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>匿名对象：没有名字的对象。是对象的简化书写方式。</li><li>使用场景<br>A: 调用方法，仅仅只调用一次<br>B: 作为实际参数传递</li></ol><h3 class=heading-element id=封装掌握><span>封装（掌握）</span>\n<a href=#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>隐藏实现细节，提供公共的访问方式</li><li>好处：<br>A: 隐藏实现细节，提供公共的访问方式<br>B: 提高了代码的复用性<br>C: 提高了代码的安全性</li><li>使用原则<br>A: 把成员变量隐藏<br>B: 给出该成员变量对应的公共访问方式</li></ol><h3 class=heading-element id=private-关键字掌握><span>private 关键字（掌握）</span>\n<a href=#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>是一个权限修饰符</li><li>可以修饰类的成员（成员变量和成员方法）</li><li>仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法</li><li>标准代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>n</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>n</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>a</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=this-关键字掌握><span>this 关键字（掌握）</span>\n<a href=#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>this：代表本类的对象</li><li>应用场景：<br>解决了局部变量隐藏成员变量的问题。<br>其他用法和 super 一起讲。</li><li>标准代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//局部变量</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;, 年龄是：&#34;</span><span class=o>+</span><span class=n>age</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生爱学习&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>eat</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生要吃饭&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>sleep</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生想睡觉&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>StudentTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setName</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setAge</span><span class=p>(</span><span class=n>28</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>study</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>eat</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>sleep</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>s</span><span class=p>.</span><span class=na>getName</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;年龄是：&#34;</span><span class=o>+</span><span class=n>s</span><span class=p>.</span><span class=na>getAge</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=构造方法掌握><span>构造方法（掌握）</span>\n<a href=#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>作用：对对象的数据进行初始化。</li><li>特点：<br>A: 方法名和类名相同<br>B: 没有返回值类型<br>C: 没有返回值</li><li>注意事项<br>A: 如果我们没写构造方法，系统将默认给出无参构造方法<br>B: 如果我们写了构造方法，系统将不再给出默认无参构造方法<br>建议：我们自己手动给出无参构造方法</li><li>给成员变量赋值：<br>A: 无参+setXxx()<br>B: 带参</li><li>一个标准的代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//构造方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;, 年龄是：&#34;</span><span class=o>+</span><span class=n>age</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>StudentTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//无参+setXxx()</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setName</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setAge</span><span class=p>(</span><span class=n>28</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//带参</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>ss</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;张曼玉&#34;</span><span class=p>,</span><span class=n>20</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>ss</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=对象的初始化过程理解><span>对象的初始化过程（理解）</span>\n<a href=#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>Student s = new Student(); 做了哪些事情<br>A: 加载 Student.class 文件进内存<br>B: 在栈中为 s 开辟空间<br>C: 在堆中为学生对象开辟空间<br>D: 为学生对象的成员变量赋默认值<br>E: 为学生对象的成员变量赋显示值<br>F: 通过构造方法给成员变量赋值<br>G: 对象构造完毕，把地址赋值给 s 变量</li></ul><h3 class=heading-element id=static-关键字掌握><span>static 关键字（掌握）</span>\n<a href=#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>是一个状态修饰符。静态的意思</li><li>它可以修饰成员变量和成员方法</li><li>特点：<br><strong>A: 随着类的加载而加载<br>B: 优先于对象存在<br>C: 被所有对象共享</strong><br>这也是判断我们是不是该使用静态的条件<br>举例：饮水机（可共享 static) 和水杯例子。<br>D: 可以通过类名调用<br>静态修饰的内容，可以通过类名调用，也可以通过对象名调用</li><li>方法访问特点<br>A: 普通成员方法<br>可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法<br>B: 静态成员方法<br><strong>只能访问静态成员变量，静态成员方法<br>简记：静态只能访问静态</strong><br>注意：<br><strong>静态中是不能有 this 的。<br>先进内存的不能访问后进内存的。反之可以。</strong></li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n</span></span></span><span class=line><span class=cl><span class=cm> * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n</span></span></span><span class=line><span class=cl><span class=cm> *\n</span></span></span><span class=line><span class=cl><span class=cm> * 在 java 中，用什么来表示成员变量是被共享的呢？static\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//姓名</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//年龄</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//班级编号</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//String classNumber;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>classNumber</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>,</span><span class=n>String</span><span class=w> </span><span class=n>classNumber</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>classNumber</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>classNumber</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;---&#34;</span><span class=o>+</span><span class=n>age</span><span class=o>+</span><span class=s>&#34;---&#34;</span><span class=o>+</span><span class=n>classNumber</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//创建学生对象</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>,</span><span class=n>28</span><span class=p>,</span><span class=s>&#34;20150306&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s1</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>    Student s2 = new Student(&#34;马云&#34;,35,&#34;20150306&#34;);\n</span></span></span><span class=line><span class=cl><span class=cm>    s2.show();\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>    Student s3 = new Student(&#34;马化腾&#34;,33,&#34;20150306&#34;);\n</span></span></span><span class=line><span class=cl><span class=cm>    s3.show();\n</span></span></span><span class=line><span class=cl><span class=cm>    */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;马云&#34;</span><span class=p>,</span><span class=n>35</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s2</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s3</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;马化腾&#34;</span><span class=p>,</span><span class=n>33</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s3</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  static: 静态关键字。\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  作用：\n</span></span></span><span class=line><span class=cl><span class=cm>    可以修饰成员变量和成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  特点：\n</span></span></span><span class=line><span class=cl><span class=cm>    A: 随着类的加载而加载\n</span></span></span><span class=line><span class=cl><span class=cm>    B: 优先于对象存在\n</span></span></span><span class=line><span class=cl><span class=cm>    C: 被类的所有对象共享\n</span></span></span><span class=line><span class=cl><span class=cm>      这也是我们判断是否使用静态关键字的条件\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>      饮水机：可以被静态修饰\n</span></span></span><span class=line><span class=cl><span class=cm>      水杯：不可以被静态修饰\n</span></span></span><span class=line><span class=cl><span class=cm>    D: 可以通过类名调用\n</span></span></span><span class=line><span class=cl><span class=cm>      我们的调用既可以是对象，还可以是类名\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;show&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show2</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;show2&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo2</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s</span><span class=p>.</span><span class=na>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=p>.</span><span class=na>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//Student.show();&amp;ensp;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  static 的注意事项：\n</span></span></span><span class=line><span class=cl><span class=cm>    A: 在静态方法中是没有 this 关键字的\n</span></span></span><span class=line><span class=cl><span class=cm>      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n</span></span></span><span class=line><span class=cl><span class=cm>      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n</span></span></span><span class=line><span class=cl><span class=cm>    B: 静态只能访问静态。\n</span></span></span><span class=line><span class=cl><span class=cm>      非静态的成员方法：\n</span></span></span><span class=line><span class=cl><span class=cm>        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>      静态的成员方法：\n</span></span></span><span class=line><span class=cl><span class=cm>        只能访问静态的成员变量，静态的成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>class Student {\n</span></span></span><span class=line><span class=cl><span class=cm>  private String name;\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  public static void setName(String name) {//&amp;ensp; 静态方法不能用 this\n</span></span></span><span class=line><span class=cl><span class=cm>    this.name = name;\n</span></span></span><span class=line><span class=cl><span class=cm>  }\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  public void show() {\n</span></span></span><span class=line><span class=cl><span class=cm>    System.out.println(name);\n</span></span></span><span class=line><span class=cl><span class=cm>  }\n</span></span></span><span class=line><span class=cl><span class=cm>}*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Demo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>10</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>20</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>x</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>y</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show2</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//System.out.println(x);&amp;ensp;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>y</span><span class=p>);</span><span class=c1>//√</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show3</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show4</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//show(); 只能访问静态的成员方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo3</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//Student.setName(&#34;林青霞&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=静态成员变量和普通成员变量的区别理解><span>静态成员变量和普通成员变量的区别（理解）</span>\n<a href=#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>所属不同<br>静态属于类的，称为类变量<br>非静态属于对象的，称为对象变量，实例变量</li><li>内存空间不同<br>静态在方法区的静态区<br>非静态在堆内存</li><li>生命周期不同<br>静态随着类的加载而加载，随着类的消失而消失<br>非静态随着对象的创建而存在，随着对象的消失而消失</li><li>调用不同<br>静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用<br>非静态只能通过对象名调用</li></ol><h3 class=heading-element id=main-方法是静态的理解><span>main 方法是静态的（理解）</span>\n<a href=#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。<br>static: 被 jvm 调用，不用创建对象，直接类名访问<br>void: 被 jvm 调用，不需要给 jvm 返回值<br>main: 一个通用的名称，虽然不是关键字，但是被 jvm 识别<br>String[] args:<br>早期出现是为了接收键盘录入数据的。</p></div><div class=post-footer><a href=/posts/duixiang/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/ class=post-tag>面向对象</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/java-range/>Java 水仙花数（循环）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-14 17:30:24'>发布于 <time datetime=2019-01-14>2019-01-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><blockquote><p>水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1<sup>3 + 5</sup>3+ 3^3 = 153）。</p></blockquote></div><div class=post-footer><a href=/posts/java-range/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/ class=post-tag>水仙花数</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/java-input/>Java 录入数据</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-14 15:33:46'>发布于 <time datetime=2019-01-14>2019-01-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=记忆格式><span>记忆格式</span>\n<a href=#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>(1) 导包：<br>import java.util.Scanner;<br>注意：位置在 class 的上面。<br>(2) 创建键盘录入对象：<br>Scanner sc = new Scanner(System.in);<br>(3) 获取数据<br>int i = sc.nextInt();<br>(4) 练习：<br>A: 求两个数据的和<br>B: 获取两个数据中较大的值<br>C: 获取三个数据中较大的值<br>D: 比较两个数是否相等</p></div><div class=post-footer><a href=/posts/java-input/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/biaoshi/>Java 标识符</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-14 15:07:57'>发布于 <time datetime=2019-01-14>2019-01-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=content><h3 class=heading-element id=标识符><span>标识符</span>\n<a href=#%e6%a0%87%e8%af%86%e7%ac%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>给类，接口，方法或者变量起名字的符号</p><h3 class=heading-element id=组成规则><span>组成规则</span>\n<a href=#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>A: 英文字母大小写<br>B: 数字<br>C:_和$</p></div><div class=post-footer><a href=/posts/biaoshi/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/subject-verb/>英语语法--主谓一致</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-12 13:02:49'>发布于 <time datetime=2019-01-12>2019-01-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><h3 class=heading-element id=常见情况><span>常见情况</span>\n<a href=#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=由-and-或-both-and-连接的并列主语谓语动词一般用复数><span>由 and 或 both and 连接的并列主语，谓语动词一般用复数</span>\n<a href=#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li>English <u>and</u> chinese are two quite different languages.</li><li><u>Both</u> brother <u>and</u> sister tire of city life.</li></ol><h4 class=heading-element id=一但主语前被-noeveryeach-所修饰时谓语动词用单数><span>一但主语前被 no,every,each 所修饰时，谓语动词用单数</span>\n<a href=#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li><u>No</u> desk <u>and</u> (no) chair is seen in the hall.</li><li>All work <u>and</u> <u>no</u> play makes Jack a dull boy.</li><li>They each have been to the Forbidden city.\neach 位于主语后，所以谓语动词用复数</li></ol><h4 class=heading-element id=当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数><span>当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数</span>\n<a href=#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread</p></div><div class=post-footer><a href=/posts/subject-verb/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag>English</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/14/>14</a></span></li><li class=page-item><span class=page-link><a href=/page/15/>15</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/16/>16</a></span></li><li class=page-item><span class=page-link><a href=/page/17/>17</a></span></li><li class=page-item><span class=page-link><a href=/page/18/>18</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/17/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/years/2018/>2018 年度总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2019-01-12 11:09:52'>发布于 <time datetime=2019-01-12>2019-01-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>以前每年都会在 QQ 空间写每年的总结，可是现在已经过了肆意在空间写说说的年纪了。所幸还有博客这一席之地。</p></blockquote></div><div class=post-footer><a href=/years/2018/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/inversion-3/>英语语法--形式倒装</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-12-10 21:52:30'>发布于 <time datetime=2018-12-10>2018-12-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>形式倒装，句子本不是本来的语序。</p></blockquote><h4 class=heading-element id=may-位于句首标祝愿><span>may 位于句首，标祝愿</span>\n<a href=#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><strong>例句</strong></p><ol><li>May you succeed.</li><li>May you have a happy holiday.</li><li>Long live chairman Mao.（毛主席万古长青）</li></ol><h4 class=heading-element id=whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前><span>whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前</span>\n<a href=#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><strong>例句</strong></p></div><div class=post-footer><a href=/posts/inversion-3/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag>English</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/inversion-2/>英语语法--完全倒装</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-12-10 21:14:51'>发布于 <time datetime=2018-12-10>2018-12-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>完全倒装：把整个谓语动词放到主语前。</p></blockquote><h4 class=heading-element id=表方位或时间的副词-adv表地点的介词短语位于句首时><span>表方位或时间的副词 (adv)、表地点的介词短语位于句首时</span>\n<a href=#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><strong>例句</strong></p><ol><li>Here comes the bus.</li><li>In the lecture hall of a university sits a professor.</li><li>Out rushed the children.</li><li>Now comes your turn.</li><li>Up jumped the cat and caught the mouse.</li><li><u>Down</u> came the rain and <u>up</u> went the umbrellas.</li><li>Among the people stood his friend,Jim.</li><li>(To be) South of the river lies a small factory.</li></ol><p>但主语为表示人称的代词时无需倒装</p></div><div class=post-footer><a href=/posts/inversion-2/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag>English</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/inversion-1/>英语语法--部分倒装</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-12-08 17:52:39'>发布于 <time datetime=2018-12-08>2018-12-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。<strong>以下内容纯手打！！</strong>\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。</p></blockquote></div><div class=post-footer><a href=/posts/inversion-1/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag>English</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/nextplugin/>Hexo 插件及 Next 内置样式集</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-24 16:54:09'>发布于 <time datetime=2018-11-24>2018-11-24</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>2021/10/2 更新<br>博客已迁移至 Hugo, 插件演示不适用，已删除。<br>让文章写的好看又简洁又好用的插件！<a href=https://hexo.io/zh-cn/docs/tag-plugins.html target=_blank rel=\"external nofollow noopener noreferrer\">hexo 完整的标签列表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://theme-next.org/docs/tag-plugins/ target=_blank rel=\"external nofollow noopener noreferrer\">next 插件列表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-footer><a href=/posts/nextplugin/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/commit-bat/>通过 Bat 批处理文件自动提交博客代码</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-17 14:25:49'>发布于 <time datetime=2018-11-17>2018-11-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><blockquote><p>前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤</p><ul><li>git add * （添加需要提交的文件，这里全选）</li><li>git commit -m &ldquo;提交信息&rdquo;</li><li>git push</li></ul><p>但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！</p></blockquote></div><div class=post-footer><a href=/posts/commit-bat/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bat/ class=post-tag>bat</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/fas-app/>博採眾長 App</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-12 16:04:04'>发布于 <time datetime=2018-11-12>2018-11-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h4 class=heading-element id=介绍><span>介绍</span>\n<a href=#%e4%bb%8b%e7%bb%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>使用 fusion app 对网页进行的封装。<br>功能：</p><ul><li>浏览本博客，主页</li><li>私人网盘</li><li>2048 等小游戏</li><li>在线客服，QQ 等</li><li>pc 与移动浏览器标识切换</li><li>留言，打赏，博主日志等</li><li>分享功能，分享到 QQ，微信，浏览器打开等</li><li>app 内添加书签，自动记录历史记录，刷新等</li><li><strong>配合博客的<code>PWA + quicklink</code>功能可实现离线浏览</strong></li></ul></div><div class=post-footer><a href=/posts/fas-app/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/lua/ class=post-tag>lua</a><a href=/tags/fusion/ class=post-tag>fusion</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/caddy-file/>Caddy-两步搭建超简单云盘</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-11 13:59:27'>发布于 <time datetime=2018-11-11>2018-11-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h3 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ~\n</span></span><span class=line><span class=cl>curl https://getcaddy.com <span class=p>|</span> bash -s personal http.filemanager</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=编写配置文件><span>编写配置文件</span>\n<a href=#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim Caddyfile</span></span></code></pre></td></tr></table></div></div></div><p>内容如下：</p></div><div class=post-footer><a href=/posts/caddy-file/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BA%91%E7%9B%98/ class=post-tag>云盘</a><a href=/tags/caddy/ class=post-tag>caddy</a><a href=/tags/server/ class=post-tag>server</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/next-pdf/>Next 添加支持 Pdf</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-09 12:51:48'>发布于 <time datetime=2018-11-09>2018-11-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>最新的 next 主题已经更新了支持 PDF 功能，<del>写法也和链接写法一样</del>，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。</p></blockquote><h3 class=heading-element id=iframe推荐><span>iframe(推荐)</span>\n<a href=#iframe%e6%8e%a8%e8%8d%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;iframe</span> <span class=na>src=</span><span class=s>&#34;/posts/next-pdf/1.pdf&#34;</span> <span class=na>style=</span><span class=s>&#34;width: 100%;height: 800px;&#34;</span><span class=nt>&gt;&lt;/iframe&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=模板自带><span>模板自带</span>\n<a href=#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。</p></div><div class=post-footer><a href=/posts/next-pdf/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://www.cnblogs.com/coober/p/6594379.html\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/js-device/>Js 判断用户设备类型及平台</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-03 23:35:44'>发布于 <time datetime=2018-11-03>2018-11-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。</p></div><div class=post-footer><a href=/posts/js-device/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/15/>15</a></span></li><li class=page-item><span class=page-link><a href=/page/16/>16</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/17/>17</a></span></li><li class=page-item><span class=page-link><a href=/page/18/>18</a></span></li><li class=page-item><span class=page-link><a href=/page/19/>19</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/18/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/blog-backup/ aria-label=\"hexo 博客源码备份\"><img loading=eager src=/posts/blog-backup/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for hexo 博客源码备份\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/blog-backup/>Hexo 博客源码备份</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-11-03 12:49:28'>发布于 <time datetime=2018-11-03>2018-11-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><h3 class=heading-element id=备份-hexo-博客><span>备份 hexo 博客</span>\n<a href=#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\n</span></span><span class=line><span class=cl>cd hexo\n</span></span><span class=line><span class=cl>git init  //初始化本地仓库\n</span></span><span class=line><span class=cl>git add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\n</span></span><span class=line><span class=cl>git commit -m &#34;blog hexo&#34;\n</span></span><span class=line><span class=cl>git branch hexo  //新建 hexo 分支\n</span></span><span class=line><span class=cl>git checkout hexo  //切换到 hexo 分支上\n</span></span><span class=line><span class=cl>git remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\n</span></span><span class=line><span class=cl>git push origin hexo  //push 到 Github 项目的 hexo 分支上</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=在其他终端克隆和更新-hexo-博客><span>在其他终端克隆和更新 hexo 博客</span>\n<a href=#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>nodejs,git,hexo 已经安装好，即搭建完成</p></div><div class=post-footer><a href=/posts/blog-backup/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/node.js/ class=post-tag>Node.js</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/git/ aria-label=\"Git 常用指令汇总\"><img loading=eager src=/posts/git/images/relation-1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Git 常用指令汇总\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/git/>Git 常用指令汇总</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-30 08:59:56'>发布于 <time datetime=2018-10-30>2018-10-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><ul><li><strong>工作区</strong>：就是你在电脑里能看到的目录。</li><li><strong>暂存区</strong>：英文叫 stage, 或 index。一般存放在 &ldquo;.git 目录下&rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。</li><li><strong>版本库</strong>：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。</li></ul></div><div class=post-footer><a href=/posts/git/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/beian/>网站备案之旅</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-29 23:16:26'>发布于 <time datetime=2018-10-29>2018-10-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>备案<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。<br>备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz</div></div></div></div><div class=post-footer><a href=/posts/beian/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a><a href=/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/ class=post-tag>网站备案</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/shell/>Shell 脚本初体验</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-29 11:57:39'>发布于 <time datetime=2018-10-29>2018-10-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><p>今天上机学了几个小命令</p><ul><li>read</li><li>echo</li><li>if</li></ul><p>然后自己写了一个小脚本觉得还挺有趣的</p></div><div class=post-footer><a href=/posts/shell/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/shell/ class=post-tag>shell</a><a href=/tags/linux/ class=post-tag>linux</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://www.jianshu.com/p/0b67c6c5d21d\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/web-server-yun/>云服务器 CentOS 系统搭建 Web 服务</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-29 09:15:58'>发布于 <time datetime=2018-10-29>2018-10-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><h4 class=heading-element id=搭建-apache-web-服务><span>搭建 Apache web 服务</span>\n<a href=#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li>安装 Apache 超文本传输协议 (HTTP) 服务器的主程序</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>[root@VM_0_6_centos /]# yum install -y httpd</span></span></code></pre></td></tr></table></div></div></div><p>注意安装目录，可通过 cd 命令切换。</p></div><div class=post-footer><a href=/posts/web-server-yun/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/server/ class=post-tag>server</a><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=转载 class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/href-301/>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-28 14:22:00'>发布于 <time datetime=2018-10-28>2018-10-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><h4 class=heading-element id=获取链接转><span>获取链接（转）</span>\n<a href=#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a href=https://www.cnblogs.com/zhabayi/p/6419938.html target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。</p></div><div class=post-footer><a href=/posts/href-301/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/redirect/ class=post-tag>redirect</a><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/web-server-win/>Windows 上搭建 Web 服务器</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-26 21:56:18'>发布于 <time datetime=2018-10-26>2018-10-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><blockquote><p>我用的 win10</p></blockquote><h4 class=heading-element id=打开控制面板><span>打开控制面板</span>\n<a href=#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。<br><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/1.png title=打开控制面板 data-thumbnail=/posts/web-server-win/images/1.png data-sub-html=\"<h2>打开控制面板</h2><p>打开控制面板</p></div><div class=\" post-footer\"><a href=/posts/web-server-win/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/server/ class=post-tag>server</a><a href=/tags/windows/ class=post-tag>windows</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/gituse/>使用 Git 上传代码到 Github, Coding 等仓库</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-26 21:11:02'>发布于 <time datetime=2018-10-26>2018-10-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><h4 class=heading-element id=config><span>config</span>\n<a href=#config class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global user.name <span class=s2>&#34;Your Name&#34;</span>\n</span></span><span class=line><span class=cl>git config --global user.email <span class=s2>&#34;email@example.com&#34;</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>第一次使用 git 的时候需要设置提交者信息。<br>注意：<br>如果用了 <code>--global</code> 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。<br>如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 <code>--global</code> 选项重新配置即可，新的设定保存在当前项目的 <code>.git/config</code> 文件里。</p></div><div class=post-footer><a href=/posts/gituse/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/termux1/>Termux 基本使用教程</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-23 22:16:02'>发布于 <time datetime=2018-10-23>2018-10-23</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>前面有一篇文章写到一些，<a href=https://lruihao.cn/posts/termux/ target=_blank rel=\"external nofollow noopener noreferrer\">在 Android 上搭建 hexo 博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<strong>本文当初摘要自 <a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=_blank rel=\"external nofollow noopener noreferrer\">国光个人博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong>\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。<a href=https://www.freebuf.com/geek/170510.html target=_blank rel=\"external nofollow noopener noreferrer\">备用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h3 class=heading-element id=初始化><span>初始化</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>下载并初始化 termux</p></div><div class=post-footer><a href=/posts/termux1/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/termux/ class=post-tag>termux</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/web-font/>Ttf 字体压缩</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-17 21:38:06'>发布于 <time datetime=2018-10-17>2018-10-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=content><p>HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。</p></div><div class=post-footer><a href=/posts/web-font/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/ class=post-tag>字体压缩</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/16/>16</a></span></li><li class=page-item><span class=page-link><a href=/page/17/>17</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/18/>18</a></span></li><li class=page-item><span class=page-link><a href=/page/19/>19</a></span></li><li class=page-item><span class=page-link><a href=/page/20/>20</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/19/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/linux-hello-c/>Linux 编程初体验</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-15 21:19:27'>发布于 <time datetime=2018-10-15>2018-10-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><blockquote><p>在 Linux 上编译 c 语言文件。</p></blockquote><h4 class=heading-element id=打开-vim-编辑器><span>打开 vim 编辑器</span>\n<a href=#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>（没有就用 vi, 或者先安装 vim<code>sudo apt-get install vim</code>)</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=编辑文件><span>编辑文件</span>\n<a href=#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>打开文件编辑器之后编辑文件\n<a class=lightgallery target=_blank href=/posts/linux-hello-c/images/ubuntu.png title=edit data-thumbnail=/posts/linux-hello-c/images/ubuntu.png data-sub-html=\"<h2>edit</h2>\"><img loading=lazy src=/posts/linux-hello-c/images/ubuntu.png alt=edit height=725 width=1191></a></p></div><div class=post-footer><a href=/posts/linux-hello-c/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/projects/font-mmt/>沐目体</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-12 19:39:19'>发布于 <time datetime=2018-10-12>2018-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><iframe class=manuscript src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&a=fontshowPics&u=qbfRl8gPF2s-&z=Kqz%2FRroVGYc-\" style=width:100%;height:370px;margin-top:.25rem frameborder=0 allowfullscreen></iframe></div><div class=post-footer><a href=/projects/font-mmt/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/ class=post-tag>沐目体</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/liushuixian/>流水线</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-09 16:21:04'>发布于 <time datetime=2018-10-09>2018-10-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h3 class=heading-element id=概念><span>概念</span>\n<a href=#%e6%a6%82%e5%bf%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。</p></div><div class=post-footer><a href=/posts/liushuixian/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/ class=post-tag>流水线</a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ class=post-tag>计算机组成与体系结构</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/data/>计算机数据</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-10-08 23:01:10'>发布于 <time datetime=2018-10-08>2018-10-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h4 class=heading-element id=数据的表示><span>数据的表示</span>\n<a href=#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><strong>数据的表示可分为：原码，反码和补码。（二进制）</strong></p><ul><li>原码：符号位 0 为正，1 为负。</li><li>反码：符号位 0 为正，1 为负。<ul><li>正数：反码同原码。</li><li>负数：符号位除外其他位按位取反。</li></ul></li><li>补码：<ul><li>正数：同原码。</li><li>负数：符号位除外其他位按位取反再 +1。</li></ul></li><li>移码：补码符号位取反。</li></ul><h4 class=heading-element id=数据表示范围><span>数据表示范围</span>\n<a href=#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ul><li>原码： <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li><li>反码： <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li><li>补码： <code>-z^n-1 ~ 2^n-1 - 1</code> （补码正 0 和负 0 相同，少占一数位，就多一个范围）</li></ul><p>例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。</p></div><div class=post-footer><a href=/posts/data/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/ class=post-tag>计算机数据</a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ class=post-tag>计算机组成与体系结构</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/night/>网页夜间效果</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-09-27 13:13:31'>发布于 <time datetime=2018-09-27>2018-09-27</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><blockquote><p>这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。<code>css+js</code></p></blockquote></div><div class=post-footer><a href=/posts/night/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/crash-cheat/>网页离开时改变标题“崩溃欺骗”</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-09-26 16:36:08'>发布于 <time datetime=2018-09-26>2018-09-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><blockquote><p>从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。</p></blockquote></div><div class=post-footer><a href=/posts/crash-cheat/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/linux-git/>Linux/Centos 下的安装 Git</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-09-22 22:28:45'>发布于 <time datetime=2018-09-22>2018-09-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h4 class=heading-element id=下载-git><span>下载 git</span>\n<a href=#%e4%b8%8b%e8%bd%bd-git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>wget https://github.com/git/git/archive/v2.14.1.zip</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=安装依赖><span>安装依赖</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=解压-git><span>解压 git</span>\n<a href=#%e8%a7%a3%e5%8e%8b-git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>unzip v2.14.1.zip</span></span></code></pre></td></tr></table></div></div></div><p>注：\nunzip 命令用不了，具体步骤如下：</p></div><div class=post-footer><a href=/posts/linux-git/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/linux/ class=post-tag>linux</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/mood/>每一个优秀的人，都有一段沉默的时光</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-09-21 21:11:25'>发布于 <time datetime=2018-09-21>2018-09-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>手机便签里保存的一段话，也记不得在哪看到的了。</p></blockquote><p>每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。<br>什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。</p><p>人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。<br>自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。</p></div><div class=post-footer><a href=/posts/mood/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://www.jianshu.com/p/6aa2e0e39f99\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/vim/>Vim 速查表</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-31 11:46:39'>发布于 <time datetime=2018-08-31>2018-08-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>Vim 速查表 - 帮你提高 N 倍效率</p></div><div class=post-footer><a href=/posts/vim/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vim/ class=post-tag>vim</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexo-wordcount/>Hexo Next 主题添加字数统计（2018）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-30 13:15:50'>发布于 <time datetime=2018-08-30>2018-08-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><div class=\"details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p><strong>2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！</strong></p><p>最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)</p></div></div></div></div><div class=post-footer><a href=/posts/hexo-wordcount/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/ class=post-tag>字数统计</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/17/>17</a></span></li><li class=page-item><span class=page-link><a href=/page/18/>18</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/19/>19</a></span></li><li class=page-item><span class=page-link><a href=/page/20/>20</a></span></li><li class=page-item><span class=page-link><a href=/page/21/>21</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/drop-shadow/>现代 CSS 解决方案之异形元素怎么设置阴影？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-07-15 10:40:12'>发布于 <time datetime=2024-07-15>2024-07-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=content><p>今天记录一个 CSS 小知识点，如何给异形元素设置阴影。</p></div><div class=post-footer><a href=/posts/drop-shadow/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/drop-shadow/ class=post-tag>drop-shadow</a><a href=/tags/box-shadow/ class=post-tag>box-shadow</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/fixit-docs-bookmark/ aria-label=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><img loading=eager src=/posts/fixit-docs-bookmark/images/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for CSS 实现时间轴、背景图 loading 和渐变边框\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/fixit-docs-bookmark/>CSS 实现时间轴、背景图 Loading 和渐变边框</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-07-14 13:03:31'>发布于 <time datetime=2024-07-14>2024-07-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/ class=post-collection title=\"合集 - CSS 奇技淫巧\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> CSS 奇技淫巧</a>&ensp;<a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=content><p>本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。</p></div><div class=post-footer><a href=/posts/fixit-docs-bookmark/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/scss/ class=post-tag>Scss</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/scrollbar-styling/>标准滚动条控制规范</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-06-28 22:29:03'>发布于 <time datetime=2024-06-28>2024-06-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=content><p>使用 <code>scrollbar-width</code> 和 <code>scrollbar-color</code> 属性设置滚动条的样式。</p></div><div class=post-footer><a href=/posts/scrollbar-styling/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/scrollbar-styling/ class=post-tag>scrollbar-styling</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/aside-toggle-drag/>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-06-13 21:03:12'>发布于 <time datetime=2024-06-13>2024-06-13</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><p>边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。</p></div><div class=post-footer><a href=/posts/aside-toggle-drag/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/design-principles/>架构之基：从根儿上了解设计原则</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-06-09 02:24:31'>发布于 <time datetime=2024-06-09>2024-06-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=content>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</div><div class=post-footer><a href=/posts/design-principles/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/design-patterns/ class=post-tag>Design Patterns</a><a href=/tags/java/ class=post-tag>java</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/svg-dark-light/>怎么生成暗黑模式和明亮模式的 SVG 图片？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-06-06 22:13:26'>发布于 <time datetime=2024-06-06>2024-06-06</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><p>在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。</p></div><div class=post-footer><a href=/posts/svg-dark-light/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/svg/ class=post-tag>SVG</a><a href=/tags/hugo/ class=post-tag>Hugo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/404d6a2/ aria-label=坐高铁去柳州吃螺狮粉><img loading=eager src=/posts/404d6a2/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 坐高铁去柳州吃螺狮粉\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/404d6a2/>坐高铁去柳州吃螺狮粉</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-05-20 11:41:03'>发布于 <time datetime=2024-05-20>2024-05-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><p>坐高铁去柳州吃螺狮粉，是一种怎样的体验呢？</p></div><div class=post-footer><a href=/posts/404d6a2/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E6%83%B3/ class=post-tag>随想</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/projects/vercel-gravatar/>利用 Vercel 反代 Gravatar 实现镜像加速</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-04-17 12:51:35'>发布于 <time datetime=2024-04-17>2024-04-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><p>在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。</p></div><div class=post-footer><a href=/projects/vercel-gravatar/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vercel/ class=post-tag>vercel</a><a href=/tags/gravatar/ class=post-tag>Gravatar</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/projects/apple-devices-preview/ aria-label=\"临时决定再写一个小工具 - 网站预览图生成器\"><img loading=eager src=/projects/apple-devices-preview/images/cover.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 临时决定再写一个小工具 - 网站预览图生成器\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/projects/apple-devices-preview/>临时决定再写一个小工具 - 网站预览图生成器</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-04-04 13:23:37'>发布于 <time datetime=2024-04-04>2024-04-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><p>开发完 <a href=https://github.com/Lruihao/CoverView target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。</p></div><div class=post-footer><a href=/projects/apple-devices-preview/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/projects/coverview/ aria-label=用五天时间给自己制作一个封面图生成工具><img loading=eager src=/projects/coverview/images/cover.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 用五天时间给自己制作一个封面图生成工具\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/projects/coverview/>用五天时间给自己制作一个封面图生成工具</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-04-02 18:05:34'>发布于 <time datetime=2024-04-02>2024-04-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/react/ class=post-category title=\"分类 - React\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> React</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>Cool!<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>苦封面图久矣，今日终有所成。</div></div></div></div><div class=post-footer><a href=/projects/coverview/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/coverview/ class=post-tag>CoverView</a><a href=/tags/react/ class=post-tag>React</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/page/4/>4</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/20/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexo-d-error/>Hexo D 出错</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-21 22:15:01'>发布于 <time datetime=2018-08-21>2018-08-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。<br>现在做一下记录，防止以后出错用。<br>错误如下</p></div><div class=post-footer><a href=/posts/hexo-d-error/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dongtaisub/>Hexo 个性化 - Next 主题动态显示 Subtitle</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-20 16:16:40'>发布于 <time datetime=2018-08-20>2018-08-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。<a href=https://www.jianshu.com/p/df2c844eeabf target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（关键词：js, 后加载）<br>但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：</p></blockquote></div><div class=post-footer><a href=/posts/dongtaisub/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/heart/>“高逼格”C 语言画心</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-15 16:33:12'>发布于 <time datetime=2018-08-15>2018-08-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a></span></div><div class=content><p>七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。</p><p><figure><a class=lightgallery target=_blank href=/images/remote/5b8680e407e09_14695341072961183661.gif title=大一在机房拍的图 data-thumbnail=/images/remote/5b8680e407e09_14695341072961183661.gif data-sub-html=\"<h2>截图</h2><p>大一在机房拍的图</p>\"><img loading=lazy src=/images/remote/5b8680e407e09_14695341072961183661.gif alt=截图 height=210 width=210></a><figcaption class=image-caption>大一在机房拍的图</figcaption></figure></p></div><div class=post-footer><a href=/posts/heart/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/git-index-lock/>Git Index.lock</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-14 19:21:23'>发布于 <time datetime=2018-08-14>2018-08-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><p>在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fatal: Unable to create <span class=s1>&#39;/xxx/xx/.git/index.lock&#39;</span>: File exists.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>If no other git process is currently running, this probably means a\n</span></span><span class=line><span class=cl>git process crashed in this repository earlier. Make sure no other git\n</span></span><span class=line><span class=cl>process is running and remove the file manually to <span class=k>continue</span>.</span></span></code></pre></td></tr></table></div></div></div><p>原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。</p></div><div class=post-footer><a href=/posts/git-index-lock/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/termux/>在 Android 上搭建 Hexo 博客</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-11 16:59:05'>发布于 <time datetime=2018-08-11>2018-08-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**<a href=https://lruihao.gitee.io target=_blank rel=\"external nofollow noopener noreferrer\">部署后的效果<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>**</p></blockquote></div><div class=post-footer><a href=/posts/termux/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/termux/ class=post-tag>termux</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/nowcoder157a/>石子阵列（组合数学）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-10 22:11:00'>发布于 <time datetime=2018-08-10>2018-08-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>链接：<a href=https://www.nowcoder.com/acm/contest/157/A target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/157/A<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p><h3 class=heading-element id=题目描述><span>题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。</p></div><div class=post-footer><a href=/posts/nowcoder157a/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag>组合数学</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/codeforces476a/>Dreamoon and Stairs</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-10 20:13:08'>发布于 <time datetime=2018-08-10>2018-08-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><strong><a href=https://codeforces.com/contest/476/problem/a target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><p>Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.</p><p>What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?</p><h3 class=heading-element id=input><span>Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The single line contains two space separated integers n, m (0 &lt; n ≤ 10000, 1 &lt; m ≤ 10).</p></div><div class=post-footer><a href=/posts/codeforces476a/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/codeforces476b/>Dreamoon and WiFi（组合数学）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-10 17:44:47'>发布于 <time datetime=2018-08-10>2018-08-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><strong><a href=https://codeforces.com/contest/476/problem/B target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><h3 class=heading-element id=题目大意><span>题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>就是给定两个字符串，第一个字符串由\"+\",\"-&ldquo;组成，第二个字符串由&rdquo;+\",\"-\",\"?&ldquo;组成，“+”代表加 1，&rdquo;-&ldquo;代表减一，“?&ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。</p></div><div class=post-footer><a href=/posts/codeforces476b/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag>组合数学</a><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://www.cnblogs.com/Rinyo/archive/2012/11/25/2787419.html\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/euclid/>The Equation-SGU106（扩展欧几里得）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-10 10:32:39'>发布于 <time datetime=2018-08-10>2018-08-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题意><span>题意</span>\n<a href=#%e9%a2%98%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。</p></div><div class=post-footer><a href=/posts/euclid/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag>数论</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ class=post-tag>欧几里得</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/lightoj1282/>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-09 20:55:26'>发布于 <time datetime=2018-08-09>2018-08-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题目链接><span><a href=https://vjudge.net/contest/238979#problem/E target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=题目大意><span>题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>给定两个数 n,k 求 n^k 的前三位和最后三位。</p><h3 class=heading-element id=分析><span>分析</span>\n<a href=#%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>求后三位的话：直接快速幂，对 1000 取模就好了。<br>求前三位，对于给定的一个数 n, 它可以写成 n=10<sup>a, 其中这个 a 为浮点数，则<code>t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);</code>其中 x,y 分别是<code>a*k</code>的整数部分和小数部分，对于 t=n</sup>k 这个数，它的位数由 (10<sup>x) 决定，它的位数上的值则有 (10</sup>y) 决定，因此我们要求 t 的前三位，只需要将 10<sup>y 求出，在乘以 100，就得到了它的前三位。<br>分析完，我们再整体看，设 n</sup>k=10^z; 那么<code>z=k*log10(n)</code><br><code>fmod(z,1)</code>可以求出 x 的小数部分。</p></div><div class=post-footer><a href=/posts/lightoj1282/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag>数论</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/ class=post-tag>快速幂</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/18/>18</a></span></li><li class=page-item><span class=page-link><a href=/page/19/>19</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/20/>20</a></span></li><li class=page-item><span class=page-link><a href=/page/21/>21</a></span></li><li class=page-item><span class=page-link><a href=/page/22/>22</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/21/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cfcontest1017/>Codeforces Round 502(Div.1 + Div.2)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-09 10:48:00'>发布于 <time datetime=2018-08-09>2018-08-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h4 class=heading-element id=a-the-rank><span><a href=https://codeforces.com/contest/1017/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. The Rank<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#a-the-rank class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>题目大意：<br>给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；<br>开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。</p></div><div class=post-footer><a href=/posts/cfcontest1017/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag>组合数学</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/euler/>欧拉函数</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-08 17:10:07'>发布于 <time datetime=2018-08-08>2018-08-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=欧拉函数是求小于-x-并且和-x><span><strong><em>欧拉函数是求小于 x 并且和 x<a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=_blank rel=\"external nofollow noopener noreferrer\">互质<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的数的个数</em></strong></span>\n<a href=#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)<br><strong>其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数</strong><br>φ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2<em>2</em>3】</p><h3 class=heading-element id=定理><span>定理</span>\n<a href=#%e5%ae%9a%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>若 n 是素数 p 的 k 次幂，φ(n)=p<sup>k-p</sup>(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 <a class=lightgallery target=_blank href=/images/remote/5b6ab31239225_7187742310856122931.jpg title=IMG_20180808_170807.jpg data-thumbnail=/images/remote/5b6ab31239225_7187742310856122931.jpg data-sub-html=\"<h2>IMG_20180808_170807.jpg</h2>\"><img loading=lazy src=/images/remote/5b6ab31239225_7187742310856122931.jpg alt=IMG_20180808_170807.jpg height=1797 width=4160></a></li><li>欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)</li></ol><h3 class=heading-element id=特殊性质><span>特殊性质</span>\n<a href=#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>当 n 为奇数时，φ(2n)=φ(n)</li><li>p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值</li><li>若 a 为素数，b mod a=0,<code>φ(a*b)=φ(b)*a</code></li></ol></div><div class=post-footer><a href=/posts/euler/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag>数论</a><a href=/tags/euler/ class=post-tag>euler</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj1797/>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-06 09:42:11'>发布于 <time datetime=2018-08-06>2018-08-06</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://poj.org/problem?id=1797\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大意：<br>要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。<br>其实题意很简单，就是找一条 1&ndash;>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n<a class=lightgallery target=_blank href=images/update.jpg title=更新 data-thumbnail=images/update.jpg data-sub-html=\"<h2>更新</h2>\"><img loading=lazy src=images/update.jpg alt=更新></a></p></div><div class=post-footer><a href=/posts/poj1797/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag>最短路</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/console-log/>Hexo 博客自定义 Console Log</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-04 16:19:06'>发布于 <time datetime=2018-08-04>2018-08-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。<br>我主要用到的工具：</p><ul><li>console.log()</li><li>Notepad++</li><li><a href=http://picascii.com target=_blank rel=\"external nofollow noopener noreferrer\">在线图片转文字工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-footer><a href=/posts/console-log/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj2387/>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-03 21:40:33'>发布于 <time datetime=2018-08-03>2018-08-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://poj.org/problem?id=2387\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>题目大意：<br>说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。</p><p>两个点可能有多条路，选择最短的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;string.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;algorithm&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>INF</span><span class=o>=</span><span class=mi>99999999</span><span class=p>;</span>                    <span class=c1>//设为无穷大\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>maps</span><span class=p>[</span><span class=mi>1005</span><span class=p>][</span><span class=mi>1005</span><span class=p>],</span><span class=n>v</span><span class=p>[</span><span class=mi>1005</span><span class=p>],</span><span class=n>d</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>  <span class=c1>//v 表示是否已经过遍历 d 表示从源到点当前最短路\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>Dijkstra</span><span class=p>(</span><span class=kt>int</span> <span class=n>s</span><span class=p>,</span><span class=kt>int</span> <span class=n>t</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>k</span><span class=p>,</span><span class=n>mini</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>                      <span class=c1>//除源点设为 0 距离外 其他先设为无穷大\n</span></span></span><span class=line><span class=cl>    <span class=n>d</span><span class=p>[</span><span class=n>s</span><span class=p>]</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>         <span class=c1>//n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n</span></span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>mini</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>k</span><span class=o>=-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>              <span class=c1>//在所有未标记点中 选 d 值最小的点\n</span></span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&lt;</span><span class=n>mini</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>mini</span><span class=o>=</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=o>=</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>                         <span class=c1>//标记节点\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>k</span><span class=o>==</span><span class=n>t</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>d</span><span class=p>[</span><span class=n>t</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>+</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>])</span><span class=o>&lt;</span><span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>])</span>   <span class=c1>//表示从 k 出发的点，对于所有边，更新相连点\n</span></span></span><span class=line><span class=cl>                <span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>+</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>T</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>D</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d %d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>T</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>)</span><span class=o>!=</span><span class=n>EOF</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>v</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>v</span><span class=p>));</span>            <span class=c1>//清除标记\n</span></span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>maps</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>T</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=o>&amp;</span><span class=n>y</span><span class=p>,</span><span class=o>&amp;</span><span class=n>D</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>maps</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>&gt;</span><span class=n>D</span><span class=p>)</span>               <span class=c1>//可能有多条路，只记录最短的\n</span></span></span><span class=line><span class=cl>                <span class=n>maps</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=n>D</span><span class=p>,</span><span class=n>maps</span><span class=p>[</span><span class=n>y</span><span class=p>][</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=n>D</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>Dijkstra</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-footer><a href=/posts/poj2387/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag>最短路</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/zuiduanlu/>最短路入门</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-03 16:27:16'>发布于 <time datetime=2018-08-03>2018-08-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=dijkstra-算法><span>Dijkstra 算法</span>\n<a href=#dijkstra-%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=1-定义概览><span>1. 定义概览</span>\n<a href=#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。</p></div><div class=post-footer><a href=/posts/zuiduanlu/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag>最短路</a><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/nowcodersummer-5th/>牛客暑假多校第五场</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-02 21:27:02'>发布于 <time datetime=2018-08-02>2018-08-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA target=_blank rel=\"external nofollow noopener noreferrer\">题目链接 密码：l9sn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多</p></div><div class=post-footer><a href=/posts/nowcodersummer-5th/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj1182/>食物链-Poj1182（带权并查集经典模板）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-02 11:10:37'>发布于 <time datetime=2018-08-02>2018-08-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://poj.org/problem?id=1182\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><a href=https://blog.csdn.net/freezhanacmore/article/details/8767413 target=_blank rel=\"external nofollow noopener noreferrer\">思路参考 1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>,<a href=https://blog.csdn.net/niushuai666/article/details/6981689 target=_blank rel=\"external nofollow noopener noreferrer\">思路参考 2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（没看懂）</p></div><div class=post-footer><a href=/posts/poj1182/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu1272/>小希的迷宫-HDU-1272（并查集 or 树性质）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-01 21:45:50'>发布于 <time datetime=2018-08-01>2018-08-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题目链接小希的迷宫><span>题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=_blank rel=\"external nofollow noopener noreferrer\">小希的迷宫<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=并查集><span>并查集</span>\n<a href=#%e5%b9%b6%e6%9f%a5%e9%9b%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>无回路</li><li>单连通</li></ul><p>并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成<strong>回路</strong>，则可以判定 No，交了一发错了。<br>想了一下没有考虑到多个连通域的情况，该题必须只有<strong>一个连通域</strong></p><h3 class=heading-element id=树的性质><span>树的性质</span>\n<a href=#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;</p></div><div class=post-footer><a href=/posts/hdu1272/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu3038/>How Many Answers Are Wrong-Hdu3038（带权并查集）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-08-01 11:45:53'>发布于 <time datetime=2018-08-01>2018-08-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=_blank rel=\"external nofollow noopener noreferrer\">How Many Answers Are Wrong<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>思路参考：<a href=https://blog.csdn.net/duan_1998/article/details/70196576 target=_blank rel=\"external nofollow noopener noreferrer\">本题直接参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>,<a href=https://blog.csdn.net/dextrad_ihacker/article/details/51016017 target=_blank rel=\"external nofollow noopener noreferrer\">图文解释<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-footer><a href=/posts/hdu3038/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/19/>19</a></span></li><li class=page-item><span class=page-link><a href=/page/20/>20</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/21/>21</a></span></li><li class=page-item><span class=page-link><a href=/page/22/>22</a></span></li><li class=page-item><span class=page-link><a href=/page/23/>23</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/22/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/codeforces680b/>Bear and Finding Criminals-Codeforces680B</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 19:32:21'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>题目链接：<a href=https://codeforces.com/problemset/problem/680/B target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Finding Criminals<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里<strong>一定</strong>有罪犯。</p><p>一定能确定该城市有小偷的几种情况：</p><ol><li><p>警察所住城市有罪犯，则一定能检测到</p></li><li><p>警察所住城市的左边和右边位置若<strong>都</strong>不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）</p></li><li><p>警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯</p></li></ol></div><div class=post-footer><a href=/posts/codeforces680b/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/codeforces680a/>Bear and Five Cards-Codeforces680A</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 19:22:36'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>题目链接：<a href=https://codeforces.com/problemset/problem/680/A target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Five Cards<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。</p></div><div class=post-footer><a href=/posts/codeforces680a/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/how-tables/>How Many Tables-HDU-1213（并查集求连通域数目）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 11:12:10'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>并查集求连通域数目，初始化 sum=n；\n题目链接： <a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=_blank rel=\"external nofollow noopener noreferrer\">how many tables<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-footer><a href=/posts/how-tables/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-1611/>The-Suspects-POJ-1611（并查集）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 11:11:31'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题目链接the-suspects><span>题目链接：<a href=\"http://poj.org/problem?id=1611\" target=_blank rel=\"external nofollow noopener noreferrer\">The-suspects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=翻译><span>翻译</span>\n<a href=#%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？</p></div><div class=post-footer><a href=/posts/poj-1611/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c/ class=post-tag>C</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-2236/>Wireless Network-POJ-2236（并查集）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 11:10:54'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=题目链接wireless-network><span>题目链接：<a href=\"http://poj.org/problem?id=2236\" target=_blank rel=\"external nofollow noopener noreferrer\">wireless network<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=翻译><span>翻译</span>\n<a href=#%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3></div><div class=post-footer><a href=/posts/poj-2236/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/piles-with-stones/>Piles-With-Stones</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 11:09:31'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>Codeforces Round #500 (Div. 2)<br>题目链接：<a href=https://codeforces.com/contest/1013/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">Piles With Stones<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-footer><a href=/posts/piles-with-stones/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/>畅通工程-HDU-1232（并查集经典模板）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-31 11:08:43'>发布于 <time datetime=2018-07-31>2018-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=并查集入门推荐超有爱的并查集><span>并查集入门推荐：<a href=https://blog.csdn.net/iteye_10189/article/details/82103035 target=_blank rel=\"external nofollow noopener noreferrer\">超有爱的并查集~<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=题目链接畅通工程><span>题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=_blank rel=\"external nofollow noopener noreferrer\">畅通工程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=题意分析><span>题意分析</span>\n<a href=#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。</p></div><div class=post-footer><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag>并查集</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/>牛客练习赛 23</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-27 21:56:08'>发布于 <time datetime=2018-07-27>2018-07-27</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>两题水过，暴力，找规律。</p><h3 class=heading-element id=托米的赌球><span><a href=https://www.nowcoder.com/acm/contest/156/A target=_blank rel=\"external nofollow noopener noreferrer\">托米的赌球<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=托米的划分><span><a href=https://www.nowcoder.com/acm/contest/156/B target=_blank rel=\"external nofollow noopener noreferrer\">托米的划分<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3></div><div class=post-footer><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/>在线离线算法</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-26 09:57:32'>发布于 <time datetime=2018-07-26>2018-07-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h3 class=heading-element id=在线算法><span><a href=https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947 target=_blank rel=\"external nofollow noopener noreferrer\">在线算法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。</p></div><div class=post-footer><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=post-tag>在线离线算法</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu-1495/>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-24 15:34:00'>发布于 <time datetime=2018-07-24>2018-07-24</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=_blank rel=\"external nofollow noopener noreferrer\">非常可乐<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。</p></div><div class=post-footer><a href=/posts/hdu-1495/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/20/>20</a></span></li><li class=page-item><span class=page-link><a href=/page/21/>21</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/22/>22</a></span></li><li class=page-item><span class=page-link><a href=/page/23/>23</a></span></li><li class=page-item><span class=page-link><a href=/page/24/>24</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/23/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu-2612/>Hdu-2612-Find a Way（双 Bfs）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-23 12:34:42'>发布于 <time datetime=2018-07-23>2018-07-23</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=_blank rel=\"external nofollow noopener noreferrer\">Find a way<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &mldr;&mldr;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）</p></div><div class=post-footer><a href=/posts/hdu-2612/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-3278/>POJ-3278-Catch That Cow(bfs)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 12:10:32'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.</p><ul><li>Walking: FJ can move from any point X to the points X\",&ldquo;1 or X + 1 in a single minute</li><li>Teleporting: FJ can move from any point X to the point 2 × X in a single minute.</li></ul><p>If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?</p><h3 class=heading-element id=input><span>Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Line 1: Two space-separated integers: N and K</p></div><div class=post-footer><a href=/posts/poj-3278/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag>BFS</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-2251/>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 12:02:32'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://poj.org/problem?id=2251\" target=_blank rel=\"external nofollow noopener noreferrer\">英文原题链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=description---题目描述><span>Description - 题目描述</span>\n<a href=#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>你被困在一个三维的空间中，现在要寻找最短路径逃生！<br>空间由立方体单位构成<br>你每次向上下前后左右移动一个单位需要一分钟<br>你不能对角线移动并且四周封闭<br>是否存在逃出生天的可能性？如果存在，则需要多少时间？</p></div><div class=post-footer><a href=/posts/poj-2251/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag>BFS</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-1321/>Poj-1321 棋盘问题（dfs）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:58:14'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>Time Limit: 1000MS<br>Memory Limit: 10000K<br>Total Submissions: 63659<br>Accepted: 30423</p><h3 class=heading-element id=description><span>Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。</p></div><div class=post-footer><a href=/posts/poj-1321/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag>DFS</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-1426/>Poj-1426-Find the Multiple(dfs)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:57:13'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=find-the-multiple><span>Find The Multiple</span>\n<a href=#find-the-multiple class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Time Limit: 1000MS Memory Limit: 10000K<br>Total Submissions: 40713 Accepted: 17088 Special Judge</p><h4 class=heading-element id=description><span>Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.</p></div><div class=post-footer><a href=/posts/poj-1426/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag>DFS</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/adjacent-replacements/>Adjacent Replacements</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:54:14'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=https://codeforces.com/contest/1006/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. Adjacent Replacements<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>第一次打 cf 就做出一道这样的找规律的题，打到自闭。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>a</span><span class=p>[</span><span class=mi>1001</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>flag</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>))</span> <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=p>{</span><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span><span class=n>flag</span><span class=o>=</span><span class=mi>1</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-footer><a href=/posts/adjacent-replacements/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/poj-3984/>Poj-3984-迷宫问题 (Bfs 路径）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:50:20'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=\"http://poj.org/problem?id=3984\" target=_blank rel=\"external nofollow noopener noreferrer\">迷宫问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>Time Limit: 1000MS Memory Limit: 65536K<br>Total Submissions: 32323 Accepted: 18471</p><h3 class=heading-element id=description><span>Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>定义一个二维数组：</p><pre><code>int maze[5][5] = {\n  0, 1, 0, 0, 0,\n  0, 1, 0, 1, 0,\n  0, 0, 0, 0, 0,\n  0, 1, 1, 1, 0,\n  0, 0, 0, 1, 0,\n};\n</code></pre><p>它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。</p></div><div class=post-footer><a href=/posts/poj-3984/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag>BFS</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/poj/ class=post-tag>POJ</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wannafly-20/>Wannafly 挑战赛 20-染色</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:46:25'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>链接：<a href=https://www.nowcoder.com/acm/contest/133/A target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/133/A<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p><h3 class=heading-element id=题目描述><span>题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，<br>现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价</p></div><div class=post-footer><a href=/posts/wannafly-20/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/>杨辉三角</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:41:15'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a href=https://zhidao.baidu.com/question/367384574464313844.html target=_blank rel=\"external nofollow noopener noreferrer\">百度知道<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n1</p><p>1 1</p><p>1 2 1</p><p>1 3 3 1</p><p>1 4 6 4 1</p><p>1 5 10 10 5 1</p><p>1 6 15 20 15 6 1</p><hr></div><div class=post-footer><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag>数学</a><a href=/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=post-tag>杨辉三角</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hdu-1241/>Hdu-1241-Oil Deposits (Dfs)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:37:20'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=oil-deposits><span><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=_blank rel=\"external nofollow noopener noreferrer\">Oil Deposits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#oil-deposits class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://vjudge.net/contest/238973#problem/L target=_blank rel=\"external nofollow noopener noreferrer\">翻译<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)<br>Total Submission(s): 41406 Accepted Submission(s): 23977</p><h4 class=heading-element id=problem-description><span>Problem Description</span>\n<a href=#problem-description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.</p></div><div class=post-footer><a href=/posts/hdu-1241/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag>DFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/hdu/ class=post-tag>HDU</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/21/>21</a></span></li><li class=page-item><span class=page-link><a href=/page/22/>22</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/23/>23</a></span></li><li class=page-item><span class=page-link><a href=/page/24/>24</a></span></li><li class=page-item><span class=page-link><a href=/page/25/>25</a></span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/24/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/>BFS 求最短路</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:31:05'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.<br>如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，<br>以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。</p></div><div class=post-footer><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag>BFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cf-1009/>Educational Codeforces Round 47 (Rated for Div. 2)</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:25:56'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>那天晚上报名了没打，第二天早上打的，也只出了两题。</p><h3 class=heading-element id=a-game-shopping><span><a href=https://codeforces.com/contest/1009/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. Game Shopping<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#a-game-shopping class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>s</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>c</span><span class=p>[</span><span class=mi>1000</span><span class=p>],</span><span class=n>a</span><span class=p>[</span><span class=mi>1000</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>j</span><span class=o>==</span><span class=n>m</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;=</span><span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>            <span class=n>s</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>j</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>i</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>i</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>==</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>s</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;0</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>s</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=b-minimum-ternary-string><span><a href=https://codeforces.com/contest/1009/problem/B target=_blank rel=\"external nofollow noopener noreferrer\">B. Minimum Ternary String<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#b-minimum-ternary-string class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>string</span> <span class=n>s</span><span class=p>,</span> <span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span> <span class=o>&gt;&gt;</span> <span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>one</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>s</span><span class=p>.</span><span class=n>size</span><span class=p>();</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;0&#39;</span><span class=p>)</span> <span class=n>ans</span> <span class=o>+=</span> <span class=s>&#34;0&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;1&#39;</span><span class=p>)</span> <span class=n>one</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;2&#39;</span><span class=p>)</span> <span class=n>ans</span> <span class=o>+=</span> <span class=s>&#34;2&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>bool</span> <span class=n>flag</span> <span class=o>=</span> <span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>ans</span><span class=p>.</span><span class=n>size</span><span class=p>();</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>ans</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;2&#39;</span> <span class=o>&amp;&amp;</span> <span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=n>flag</span> <span class=o>=</span> <span class=nb>true</span><span class=p>,</span> <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>string</span><span class=p>(</span><span class=n>one</span><span class=p>,</span> <span class=sc>&#39;1&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>ans</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>string</span><span class=p>(</span><span class=n>one</span><span class=p>,</span> <span class=sc>&#39;1&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>100210\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>11222121\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>20\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>2001\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>020201\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>2012101\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>111\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>000\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-footer><a href=/posts/cf-1009/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag>Codeforces</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dfs_bfs/>深搜广搜</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 11:25:14'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h4 class=heading-element id=广度优先搜索bfs><span>广度优先搜索（BFS）</span>\n<a href=#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。</p><h4 class=heading-element id=深度优先搜索dfs><span>深度优先搜索（DFS）</span>\n<a href=#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。</p></div><div class=post-footer><a href=/posts/dfs_bfs/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/bfs/ class=post-tag>BFS</a><a href=/tags/dfs/ class=post-tag>DFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag>搜索</a><a href=/tags/c/ class=post-tag>C</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/>TaoTao 要吃鸡</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-22 10:55:21'>发布于 <time datetime=2018-07-22>2018-07-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><blockquote><p>2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）<br>链接：<a href=https://www.nowcoder.com/acm/contest/74/B target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/74/B<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p></blockquote><h3 class=heading-element id=题目描述><span>题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。</p></div><div class=post-footer><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ class=post-tag>背包问题</a><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/wannafly-18/>Wannafly 挑战赛 18-序列</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-07-18 08:40:21'>发布于 <time datetime=2018-07-18>2018-07-18</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>时间限制：C/C++ 1 秒，其他语言 2 秒<br>空间限制：C/C++ 262144K，其他语言 524288K<br>64bit IO Format: %lld</p><h3 class=heading-element id=题目描述><span>题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &lt;= x &lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。<br>两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。</p></div><div class=post-footer><a href=/posts/wannafly-18/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag>组合数学</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/nowcoder/ class=post-tag>Nowcoder</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/>简单背包</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-16 13:18:43'>发布于 <time datetime=2018-06-16>2018-06-16</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><code>弱鸡还是弱鸡啊最简单的背包问题——。——！</code></p><h3 class=heading-element id=问题描述><span>问题描述</span>\n<a href=#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。</p></div><div class=post-footer><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ class=post-tag>背包问题</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/>18 湘潭邀请赛参赛队员代表发言</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-15 07:51:21'>发布于 <time datetime=2018-06-15>2018-06-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><blockquote><p>来自一位大佬的演讲</p></blockquote><p>尊敬的领导、教练，亲爱的参赛选手们：<br>大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。<br>刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。<br>在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。<br>为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。<br>三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。<br>最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。</p></div><div class=post-footer><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/>18 湘潭邀请赛总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 23:32:47'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><p><a href=http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（hdu 复赛）</p><p>2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。</p></div><div class=post-footer><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/f-sorting/>F.sorting</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 22:49:27'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p><a class=lightgallery target=_blank href=/images/remote/5b2286fcec6fc_5173814137014719346.png title=sorting.png data-thumbnail=/images/remote/5b2286fcec6fc_5173814137014719346.png data-sub-html=\"<h2>sorting.png</h2>\"><img loading=lazy src=/images/remote/5b2286fcec6fc_5173814137014719346.png alt=sorting.png height=697 width=1049></a></p></div><div class=post-footer><a href=/posts/f-sorting/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/k-2018/>K.2018</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 22:48:16'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=k-2018><span>K. 2018</span>\n<a href=#k-2018 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.</p></div><div class=post-footer><a href=/posts/k-2018/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/22/>22</a></span></li><li class=page-item><span class=page-link><a href=/page/23/>23</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/24/>24</a></span></li><li class=page-item><span class=page-link><a href=/page/25/>25</a></span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/25/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/b-higher/>B.Higher H-Index</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 22:47:28'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=b-higher-h-index><span>B. Higher h-index</span>\n<a href=#b-higher-h-index class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br>Bobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the<br>paper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.<br>There is also a trick – one can cite his own papers published earlier.</p><p>Given Bobo has n working hours, ﬁnd the maximum h-index of him.</p></div><div class=post-footer><a href=/posts/b-higher/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/c/ class=post-tag>C</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/a-easy/>A.Easy H-Index</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 22:36:58'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=a-easy-h-index><span>A. Easy h-index</span>\n<a href=#a-easy-h-index class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br>Bobo has published many papers. Given a0,a1,a2,&mldr;,an which means Bobo has published ai papers with<br>itations exactly i, ﬁnd the h-index of Bobo.</p></div><div class=post-footer><a href=/posts/a-easy/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag>2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/c-sort/>Sort 排序</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 20:23:03'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><p>sort 使用<code>#include&lt;algorithm></code>头文件，</p><p>sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。</p><p>或者简单的用\n<code>less&lt;参数类型>()</code>表示升序</p><p><code>greater&lt;参数类型>()</code>表示降序</p><p>也可以用一个 bool 型函数，比如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>cmp</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>       <span class=k>return</span> <span class=n>a</span><span class=o>&gt;</span><span class=n>b</span><span class=p>;</span><span class=c1>//表从大到小，即降序\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>假设自己定义了一个结构体 node</p></div><div class=post-footer><a href=/posts/c-sort/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/c++/ class=post-tag>C++</a><a href=/tags/sort/ class=post-tag>sort</a><a href=/tags/stl/ class=post-tag>STL</a><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/>位运算</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 20:22:21'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><h3 class=heading-element id=1-运算><span>1. &运算</span>\n<a href=#1-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>&运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。</p></div><div class=post-footer><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=post-tag>位运算</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/c-with-stl/>C++ With STL</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-14 20:22:06'>发布于 <time datetime=2018-06-14>2018-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=content><h3 class=heading-element id=1swap交换两元素值在-algorithm-下用法swapab><span>1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）</span>\n<a href=#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>交换两元素的值在 C 语言课上作为指针讲解的典例。</p><p>int a=1,b=2;</p><p>swap(a,b);</p><p>//此时 a=2,b=1</p><p>（可以是其他类型）</p></div><div class=post-footer><a href=/posts/c-with-stl/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a><a href=/tags/stl/ class=post-tag>STL</a><a href=/tags/c++/ class=post-tag>C++</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/links/>各种 Links 汇总与分享</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-07 00:06:05'>发布于 <time datetime=2018-06-07>2018-06-07</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>2021/10/1 更新<br>使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。</p><p>我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，</p></blockquote></div><div class=post-footer><a href=/posts/links/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag>acm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/>戏子春秋</a></h2><div class=post-meta><span class=post-author><a href=mailto:1845280636@qq.com title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><i class=\"fa-solid fa-user-circle\" aria-hidden=true></i>\n杨灿</a></span>&nbsp;<span class=post-publish title='2018-06-03 19:41:32'>发布于 <time datetime=2018-06-03>2018-06-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>从此故乡只有冬夏，再无春秋。</p></blockquote></div><div class=post-footer><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexobuild/>Hexo+github 搭建个人博客及美化</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-06-01 14:34:23'>发布于 <time datetime=2018-06-01>2018-06-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p><strong><a href=/categories/hexo/>更多关于 hexo</a></strong></p><h3 class=heading-element id=首先><span>首先</span>\n<a href=#%e9%a6%96%e5%85%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://hexo.io/zh-cn/docs/index.html target=_blank rel=\"external nofollow noopener noreferrer\">官方文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：</p></div><div class=post-footer><a href=/posts/hexobuild/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/node.js/ class=post-tag>Node.js</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexowrite/>Hexo 添加图片，音乐，链接，视频</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-05-31 23:19:22'>发布于 <time datetime=2018-05-31>2018-05-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p><strong>如果实在搞得头晕直接去 <a href=https://www.jianshu.com/ target=_blank rel=\"external nofollow noopener noreferrer\">简书<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 <a href=https://maxiang.io/ target=_blank rel=\"external nofollow noopener noreferrer\">马克飞象，专为印象笔记打造的 Markdown 编辑器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://www.typora.io/# target=_blank rel=\"external nofollow noopener noreferrer\">typora 也是不错的<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，突然发现 <a href=https://www.csdn.net/ target=_blank rel=\"external nofollow noopener noreferrer\">csdn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 也支持 Markdown 编译器了</strong></p></blockquote></div><div class=post-footer><a href=/posts/hexowrite/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag>Hexo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ aria-label=猴子与哪吒><img loading=eager src=/posts/猴子与哪吒/images/hznz.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 猴子与哪吒\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/>猴子与哪吒</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-05-31 10:09:15'>发布于 <time datetime=2018-05-31>2018-05-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><p>一直觉得中国古代神话</p><p>能称得上传奇的只有两个人物：</p><p>一是猴子</p><p>一是哪吒</p><p>百世蕴灵育出只石猴 大闹天宫腾云驾雾</p><p>三年怀胎生了个哪吒 东海屠龙翻江倒海</p><p>可以说 除了这两人 没人再能当得起离经放纵四个字的</p><p>但称得上悲剧的 约摸也只有这两个</p><p>一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空</p><p>一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子</p></div><div class=post-footer><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/23/>23</a></span></li><li class=page-item><span class=page-link><a href=/page/24/>24</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/25/>25</a></span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/26/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/hello-world/ aria-label=\"Hello World\"><img loading=eager src=/posts/hello-world/images/lunyu.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Hello World\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hello-world/>Hello World</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2018-05-28 20:01:01'>发布于 <time datetime=2018-05-28>2018-05-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote><p>“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”</p></blockquote><p>我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，<br>其實也不重要了，還望披荊斬棘，不改初心。</p><p>不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！</p><p>從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。</p></div><div class=post-footer><a href=/posts/hello-world/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag>随笔</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/24/>24</a></span></li><li class=page-item><span class=page-link><a href=/page/25/>25</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/c6bc2d5/>写文档时英文标题什么时候要大写？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-03-26 12:23:44'>发布于 <time datetime=2024-03-26>2024-03-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>对于本文的标题的思考来自于 <a href=https://gohugo.io/getting-started/configuration/#titlecasestyle target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 配置文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>中的一个配置 <code>titleCaseStyle</code>，默认情况下，Hugo 在创建自动章节标题以及使用 <code>strings.Title</code> 函数转换字符串时遵循美联社样本中发布的大小写规则。</p><p>但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。</p><p>经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，<a href=https://pub.bnu.edu.cn/jzyg1/72203.html target=_blank rel=\"external nofollow noopener noreferrer\">“出版物中，英文什么时候要大写？ ”<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=post-footer><a href=/posts/c6bc2d5/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag>English</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/overflow-tooltip/>实现类似于 Element UI 表格的溢出文本提示功能</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-02-29 16:46:00'>发布于 <time datetime=2024-02-29>2024-02-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>在 Element UI 的表格组件中，当表格列的内容过长时，设置 <code>show-overflow-tooltip</code> 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？</p></div><div class=post-footer><a href=/posts/overflow-tooltip/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/auto-sizes/>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-02-21 10:00:13'>发布于 <time datetime=2024-02-21>2024-02-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a></span></div><div class=content><p>聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性。</p></div><div class=post-footer><a href=/posts/auto-sizes/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag>HTML</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/years/2023/>2023 年度总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-02-09 14:07:24'>发布于 <time datetime=2024-02-09>2024-02-09</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><p>与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。</p></div><div class=post-footer><a href=/years/2023/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/900d5e4/ aria-label=\"记一次 Debug 第三方包的过程\"><img loading=eager src=/posts/900d5e4/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 记一次 Debug 第三方包的过程\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/900d5e4/>记一次 Debug 第三方包的过程</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-01-17 14:57:48'>发布于 <time datetime=2024-01-17>2024-01-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><p>在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 <a href=https://lruihao.github.io/vue-el-demo/#/code-diff target=_blank rel=\"external nofollow noopener noreferrer\">code diff demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=post-footer><a href=/posts/900d5e4/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/debug/ class=post-tag>debug</a><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/vue3/ class=post-tag>vue3</a><a href=/tags/typescript/ class=post-tag>TypeScript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/20b75e9/>为什么很多教程中都有 Foo Bar？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-01-17 09:58:58'>发布于 <time datetime=2024-01-17>2024-01-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><p>foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。</p></div><div class=post-footer><a href=/posts/20b75e9/>阅读全文</a></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/6550187/>Git Submodule: Already Exists in the Index</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-01-11 10:30:04'>发布于 <time datetime=2024-01-11>2024-01-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><p>Git 报错 &ldquo;git submodule: already exists in the index&rdquo; 的解决方法。</p></div><div class=post-footer><a href=/posts/6550187/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/el-card-collapse/>给 El-Card 添加折叠功能</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2024-01-10 17:06:54'>发布于 <time datetime=2024-01-10>2024-01-10</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>出发点<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>虽然 Element 也有 <a href=https://element.eleme.cn/#/zh-CN/component/collapse target=_blank rel=\"external nofollow noopener noreferrer\">el-collapse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，<a href=https://element.eleme.cn/#/zh-CN/component/card target=_blank rel=\"external nofollow noopener noreferrer\">el-card<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。</div></div></div></div><div class=post-footer><a href=/posts/el-card-collapse/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/projects/fixit-cli/ aria-label=\"用 Node.js 开发一个轻量脚手架\"><img loading=eager src=/projects/fixit-cli/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 用 Node.js 开发一个轻量脚手架\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/projects/fixit-cli/>用 Node.js 开发一个轻量脚手架</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-11-28 10:48:07'>发布于 <time datetime=2023-11-28>2023-11-28</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><p>本文将介绍如何用 Node.js 开发一个轻量脚手架，以 <a href=https://github.com/hugo-fixit/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\">fixit-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 为例。</p></div><div class=post-footer><a href=/projects/fixit-cli/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/ class=post-tag>脚手架</a><a href=/tags/fixit/ class=post-tag>FixIt</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/ssh-sign/>SSH 提交签名验证</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-22 18:59:31'>发布于 <time datetime=2023-10-22>2023-10-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><p>Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。</p></div><div class=post-footer><a href=/posts/ssh-sign/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/ssh/ class=post-tag>SSH</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link><a href=/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/page/5/>5</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/4/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/patch-package/ aria-label=\"如何给 npm 包打补丁？\"><img loading=eager src=/posts/patch-package/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 如何给 npm 包打补丁？\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/patch-package/>如何给 Npm 包打补丁？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 22:37:56'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=content>本文将介绍如何给 npm 包打补丁。</div><div class=post-footer><a href=/posts/patch-package/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/debug/ class=post-tag>debug</a><a href=/tags/npm/ class=post-tag>npm</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashboard-summary/>拖拽式仪表盘系列总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 21:25:18'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content><p>当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。</p><h3 class=heading-element id=特点和功能><span>特点和功能</span>\n<a href=#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：</p></div><div class=post-footer><a href=/posts/dashboard-summary/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/widget/ class=post-tag>widget</a><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashborad-widget-usage/>拖拽式仪表盘 - 组件开发</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 20:07:56'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content><p>本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。</p></div><div class=post-footer><a href=/posts/dashborad-widget-usage/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/widget/ class=post-tag>widget</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/dashborad-template-usage/ aria-label=\"拖拽式仪表盘 - 模板使用\"><img loading=eager src=/posts/dashborad-template-usage/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 拖拽式仪表盘 - 模板使用\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashborad-template-usage/>拖拽式仪表盘 - 模板使用</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 20:07:20'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content><p>本文将通过一个简单的例子，介绍如何使用仪表盘模板。</p></div><div class=post-footer><a href=/posts/dashborad-template-usage/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashborad-widget-docs/>拖拽式仪表盘 - 组件配置文档</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 19:41:23'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content><p>本文将对 Dashboard 组件的使用方法进行介绍。</p></div><div class=post-footer><a href=/posts/dashborad-widget-docs/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/widget/ class=post-tag>widget</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashborad-template-docs/>拖拽式仪表盘 - 布局模板文档</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 19:27:49'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</div><div class=post-footer><a href=/posts/dashborad-template-docs/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/dashboard-analysis/>拖拽式仪表盘 - 功能需求分析</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-12 15:37:30'>发布于 <time datetime=2023-10-12>2023-10-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=content>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</div><div class=post-footer><a href=/posts/dashboard-analysis/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag>拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag>dashboard</a><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/ class=post-tag>需求分析</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/markdownlint/>给你的 Markdown 挑挑刺</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-11 14:26:48'>发布于 <time datetime=2023-10-11>2023-10-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=content><p>会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。</p></div><div class=post-footer><a href=/posts/markdownlint/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/markdown/ class=post-tag>Markdown</a><a href=/tags/markdownlint/ class=post-tag>markdownlint</a><a href=/tags/pangu.js/ class=post-tag>pangu.js</a><a href=/tags/autocorrect/ class=post-tag>AutoCorrect</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/cognitive-complexity/ aria-label=\"认知复杂度（Cognitive Complexity）\"><img loading=eager src=/posts/cognitive-complexity/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 认知复杂度（Cognitive Complexity）\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cognitive-complexity/>认知复杂度（Cognitive Complexity）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-10-08 09:52:44'>发布于 <time datetime=2023-10-08>2023-10-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E7%BF%BB%E8%AF%91/ class=post-category title=\"分类 - 翻译\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 翻译</a></span></div><div class=content><h3 class=heading-element id=摘要><span>摘要</span>\n<a href=#%e6%91%98%e8%a6%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。</p><h4 class=heading-element id=术语说明><span>术语说明</span>\n<a href=#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。</p><hr></div><div class=post-footer><a href=/posts/cognitive-complexity/>阅读全文</a></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/article-structure/>写作技巧：如何搭建文章的框架结构？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-26 15:17:52'>发布于 <time datetime=2023-09-26>2023-09-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。</p></div><div class=post-footer><a href=/posts/article-structure/>阅读全文</a></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link><a href=/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/page/3/>3</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/page/6/>6</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/5/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/projects/el-table-sticky/>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-25 17:49:58'>发布于 <time datetime=2023-09-25>2023-09-25</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><p>本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。</p></div><div class=post-footer><a href=/projects/el-table-sticky/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/vue-fullscreen-toggler/>封装 Vue FullScreenToggler 组件</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-17 19:44:07'>发布于 <time datetime=2023-09-17>2023-09-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><p>基于 <a href=https://github.com/mirari/vue-fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">vue-fullscreen<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 封装一个的 Vue 全屏/退出全屏切换组件。</p></div><div class=post-footer><a href=/posts/vue-fullscreen-toggler/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/js-fullscreen/>JS 实现全屏和退出全屏</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-15 17:29:25'>发布于 <time datetime=2023-09-15>2023-09-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><h3 class=heading-element id=背景><span>背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。</p></div><div class=post-footer><a href=/posts/js-fullscreen/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/translation-guide/>中文翻译的常见问题</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-15 11:07:56'>发布于 <time datetime=2023-09-15>2023-09-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E7%BF%BB%E8%AF%91/ class=post-category title=\"分类 - 翻译\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 翻译</a></span></div><div class=content><blockquote><p>以下内容截取自 <a href=https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md target=_blank rel=\"external nofollow noopener noreferrer\">针对 MDN 文档的本地化指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的中文翻译的常见问题小节。</p><p>其中翻译的规范也是中文写作的规范，更多详见之前写的 <a href=/posts/document-style-guide/>中文技术文档的写作规范</a>。</p></blockquote><p>为保证简体中文文档格式的一致性，翻译指南列出了部分规范。</p></div><div class=post-footer><a href=/posts/translation-guide/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/vue-svg-icon/>在 Vue 项目中更优雅地使用 Icon</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-14 11:24:48'>发布于 <time datetime=2023-09-14>2023-09-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><h3 class=heading-element id=前言><span>前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、<a href=https://fontawesome.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://www.iconfont.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">Iconfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 等等。</p><p>随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。</p></div><div class=post-footer><a href=/posts/vue-svg-icon/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/svg/ class=post-tag>SVG</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/vscode-snippets/>VSCode 添加用户代码片段，自定义用户代码片段</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-14 11:21:56'>发布于 <time datetime=2023-09-14>2023-09-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。</p></div><div class=post-footer><a href=/posts/vscode-snippets/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/shortcodes/ class=post-tag>Shortcodes</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/grid-bg-image/>CSS 如何实现网格背景效果？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-09-02 10:05:44'>发布于 <time datetime=2023-09-02>2023-09-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=content><p>本文将介绍如何使用 <code>linear-gradient</code> 、<code>background-size</code> 等属性来实现网格背景效果。</p><h3 class=heading-element id=前言><span>前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。</p></div><div class=post-footer><a href=/posts/grid-bg-image/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/el-backtop-fix/>用魔法打败魔法 - ElBacktop Fix</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-07-20 11:08:18'>发布于 <time datetime=2023-07-20>2023-07-20</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>这篇文章主要是记录一下继承 <a href=https://element.eleme.cn/#/zh-CN/component/backtop target=_blank rel=\"external nofollow noopener noreferrer\">ElBacktop<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件并修复了一些 bug 的过程。</p></div><div class=post-footer><a href=/posts/el-backtop-fix/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/gen-router/>使用 Node.js 自动创建 Vue 的路由</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-06-14 00:11:17'>发布于 <time datetime=2023-06-14>2023-06-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=content><p>最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。</p></div><div class=post-footer><a href=/posts/gen-router/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/vue2/ class=post-tag>Vue2</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/sourcetree-husky/>解决 SourceTree 提交时候 Husky 命令失败问题</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-06-12 10:58:44'>发布于 <time datetime=2023-06-12>2023-06-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=content><h3 class=heading-element id=问题描述><span>问题描述</span>\n<a href=#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：</p><p><a class=lightgallery target=_blank href=/posts/sourcetree-husky/images/23_1686538807.png title=问题截图 data-thumbnail=/posts/sourcetree-husky/images/23_1686538807.png data-sub-html=\"<h2>问题截图</h2>\"><img loading=lazy src=/posts/sourcetree-husky/images/23_1686538807.png alt=问题截图 height=856 width=1252></a></p></div><div class=post-footer><a href=/posts/sourcetree-husky/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/husky/ class=post-tag>husky</a><a href=/tags/mac/ class=post-tag>Mac</a><a href=/tags/nvm/ class=post-tag>nvm</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/page/4/>4</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/page/7/>7</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/6/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/v2-tailwind/>Vue2 + Tailwindcss 初始化</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-06-03 17:38:44'>发布于 <time datetime=2023-06-03>2023-06-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><h3 class=heading-element id=新建-vue2-项目><span>新建 Vue2 项目</span>\n<a href=#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>通过 <code>vue-cli</code> 创建一个叫 <code>v2-tailwind</code> 的项目：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vue create vue2-tailwind</span></span></code></pre></td></tr></table></div></div></div><p>根据需要选择其他的功能插件，例如：<code>Babel, Router, Vuex, CSS Pre-processors, Linter</code>。</p></div><div class=post-footer><a href=/posts/v2-tailwind/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/tailwindcss/ class=post-tag>tailwindcss</a><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/eslint/ class=post-tag>eslint</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://zhuanlan.zhihu.com/p/23134551\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/vue2-guid/>新手向：Vue 2.0 的建议学习顺序</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-03-14 08:37:59'>发布于 <time datetime=2023-03-14>2023-03-14</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=content><blockquote><p>注：2.0 已经有<a href=https://v2.cn.vuejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">中文文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 。如果对自己英文有信心，也可以直接阅读<a href=https://v2.vuejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">英文文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。<br>此指南仅供参考，请根据自身实际情况灵活调整。<br>转载自： <a href=https://www.zhihu.com/people/evanyou target=_blank rel=\"external nofollow noopener noreferrer\">尤雨溪<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://zhuanlan.zhihu.com/p/23134551 target=_blank rel=\"external nofollow noopener noreferrer\">新手向：Vue 2.0 的建议学习顺序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，2017-08-04 14:51</p></blockquote></div><div class=post-footer><a href=/posts/vue2-guid/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/native-img-loading-lazy/>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-02-12 19:40:43'>发布于 <time datetime=2023-02-12>2023-02-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a></span></div><div class=content><p>记录使用 HTML 原生方案实现图片的懒加载。</p></div><div class=post-footer><a href=/posts/native-img-loading-lazy/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag>HTML</a><a href=/tags/eager/ class=post-tag>eager</a><a href=/tags/lazy/ class=post-tag>lazy</a><a href=/tags/loading/ class=post-tag>loading</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/browser-rendering/>浏览器渲染原理</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-02-05 21:02:52'>发布于 <time datetime=2023-02-05>2023-02-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/browser/ class=post-category title=\"分类 - Browser\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Browser</a></span></div><div class=content><iframe src=files/browser-rendering.pdf width=100% height=550></iframe><h3 class=heading-element id=浏览器是如何渲染页面的><span>浏览器是如何渲染页面的？</span>\n<a href=#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。</p><p>在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。</p></div><div class=post-footer><a href=/posts/browser-rendering/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/browser/ class=post-tag>Browser</a><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/html/ class=post-tag>HTML</a><a href=/tags/css/ class=post-tag>CSS</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/document-style-guide/>中文技术文档的写作规范</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-02-04 16:04:42'>发布于 <time datetime=2023-02-04>2023-02-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=content><blockquote><p>以下参考来源：阮一峰的 <a href=https://github.com/ruanyf/document-style-guide target=_blank rel=\"external nofollow noopener noreferrer\">中文技术文档的写作规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如<a href=https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715 target=_blank rel=\"external nofollow noopener noreferrer\">微软<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=http://styleguide.mailchimp.com/ target=_blank rel=\"external nofollow noopener noreferrer\">MailChimp<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://help.apple.com/asg/mac/2013/ASG_2013.pdf target=_blank rel=\"external nofollow noopener noreferrer\">Apple<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&amp;btkr=1\" target=_blank rel=\"external nofollow noopener noreferrer\">Yahoo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://docs.docker.com/opensource/doc-style/ target=_blank rel=\"external nofollow noopener noreferrer\">docker<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://struts.apache.org/docs/documentation-style-guide.html target=_blank rel=\"external nofollow noopener noreferrer\">Struts<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 等等（维基百科有一份完整的<a href=https://en.wikipedia.org/wiki/List_of_style_guides target=_blank rel=\"external nofollow noopener noreferrer\">清单<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）。<a href=https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md target=_blank rel=\"external nofollow noopener noreferrer\">中文的<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>也有不少，但都不令人满意，要么太简单，要么不太适用。</p><p>对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。</p><p>对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。</p><p>参考上面的规范，于是有了下面一份中文技术文档的写作规范。</p></div><div class=post-footer><a href=/posts/document-style-guide/>阅读全文</a></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/event-loop/ aria-label=\"浏览器原理 - 事件循环\"><img loading=eager src=/posts/event-loop/images/202208092131410.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 浏览器原理 - 事件循环\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/event-loop/>浏览器原理 - 事件循环</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2023-01-11 11:16:02'>发布于 <time datetime=2023-01-11>2023-01-11</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/browser/ class=post-category title=\"分类 - Browser\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Browser</a></span></div><div class=content><p>最近在抖音上刷到很多次 <a href=http://yuanjin.tech/ target=_blank rel=\"external nofollow noopener noreferrer\">袁进老师<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。</p></div><div class=post-footer><a href=/posts/event-loop/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/browser/ class=post-tag>Browser</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/years/2022/>2022 年度总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-12-17 01:01:30'>发布于 <time datetime=2022-12-17>2022-12-17</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><blockquote class=blockquote-center>虚度有时候才是人生的最高境界</blockquote></div><div class=post-footer><a href=/years/2022/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/homebrew-npm/>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-12-15 15:33:30'>发布于 <time datetime=2022-12-15>2022-12-15</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>问题<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。</div></div></div></div><div class=post-footer><a href=/posts/homebrew-npm/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/homebrew/ class=post-tag>Homebrew</a><a href=/tags/npm/ class=post-tag>npm</a><a href=/tags/npx/ class=post-tag>npx</a><a href=/tags/mac/ class=post-tag>Mac</a><a href=/tags/nvm/ class=post-tag>nvm</a><a href=/tags/debug/ class=post-tag>debug</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/beego-install/ aria-label=\"Beego 安装及配置\"><img loading=eager src=/posts/beego-install/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Beego 安装及配置\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/beego-install/>Beego 安装及配置</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-31 09:32:44'>发布于 <time datetime=2022-08-31>2022-08-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/go/ class=post-category title=\"分类 - Go\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Go</a></span></div><div class=content><p>记录 GO 及 Beego 框架安装及基础配置。</p></div><div class=post-footer><a href=/posts/beego-install/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/beego/ class=post-tag>Beego</a><a href=/tags/go/ class=post-tag>Go</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/semver/ aria-label=语义版本控制（SemVer）><img loading=eager src=/posts/semver/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 语义版本控制（SemVer）\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/semver/>语义版本控制（SemVer）</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-13 13:32:03'>发布于 <time datetime=2022-08-13>2022-08-13</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=content><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>摘要<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>版本格式：<code>MAJOR.MINOR.PATCH</code>，版本号递增规则如下：</p><ol><li><code>MAJOR</code>: <strong>主版本号</strong>，当你做了不兼容的 API 修改</li><li><code>MINOR</code>: <strong>次版本号</strong>，当你做了向下兼容的功能性新增</li><li><code>PATCH</code>: <strong>修订号</strong>，当你做了向下兼容的问题修正</li></ol><p>先行版本号及版本编译信息可以加到 <code>MAJOR.MINOR.PATCH</code> 的后面，作为延伸。</p></div></div></div></div><div class=post-footer><a href=/posts/semver/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/semver/ class=post-tag>SemVer</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/page/5/>5</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/page/8/>8</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/7/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/commit-spec/>Commit Message Spec</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-12 15:37:44'>发布于 <time datetime=2022-08-12>2022-08-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><p>Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the <a href=https://www.conventionalcommits.org/en/v1.0.0-beta.4/ target=_blank rel=\"external nofollow noopener noreferrer\">Conventional Commits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> specification based on the <a href=https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit target=_blank rel=\"external nofollow noopener noreferrer\">Angular convention<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.</p></div><div class=post-footer><a href=/posts/commit-spec/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/electron-summary/ aria-label=\"electron 踩坑总结\"><img loading=eager src=/posts/electron-summary/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for electron 踩坑总结\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/electron-summary/>Electron 踩坑总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-12 11:22:01'>发布于 <time datetime=2022-08-12>2022-08-12</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>总结一下最近 electron 开发遇到的问题和一些重要知识点。</p></div><div class=post-footer><a href=/posts/electron-summary/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/electron/ class=post-tag>electron</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/encryption-fe/ aria-label=前端页面内容加密总结><img loading=eager src=/posts/encryption-fe/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for 前端页面内容加密总结\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/encryption-fe/>前端页面内容加密总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-08 13:49:22'>发布于 <time datetime=2022-08-08>2022-08-08</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><p>记录一下前端实现页面加密的思路。</p></div><div class=post-footer><a href=/posts/encryption-fe/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/%E5%8A%A0%E5%AF%86/ class=post-tag>加密</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/qcloudcdn/>Node.js + GitHub Actions 自动刷新 CDN</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-07 14:40:33'>发布于 <time datetime=2022-08-07>2022-08-07</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>问题<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。</div></div></div></div><div class=post-footer><a href=/posts/qcloudcdn/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cdn/ class=post-tag>CDN</a><a href=/tags/github-actions/ class=post-tag>GitHub Actions</a><a href=/tags/node.js/ class=post-tag>Node.js</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/newline/>不同系统的换行符的差异</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-08-07 00:10:30'>发布于 <time datetime=2022-08-07>2022-08-07</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><p>换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。</p></div><div class=post-footer><a href=/posts/newline/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/newline/ class=post-tag>newline</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/ohmyzsh-custom/>自定义 Ohmyzsh 主题</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-07-31 13:54:14'>发布于 <time datetime=2022-07-31>2022-07-31</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=content><p>ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。</p></div><div class=post-footer><a href=/posts/ohmyzsh-custom/>阅读全文</a></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><span title=\"转载 -> https://blog.csdn.net/icanlove/article/details/39667265/\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><a href=/posts/linux-permission/>Linux 文件权限</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-07-30 17:15:44'>发布于 <time datetime=2022-07-30>2022-07-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><p>记录 linux 系统下文件权限相关的内容，Mac OS 下类似。</p></div><div class=post-footer><a href=/posts/linux-permission/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/mac/ class=post-tag>Mac</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag>他山之石</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/config4mac/>Mac 上的开发配置总结</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-07-29 20:22:44'>发布于 <time datetime=2022-07-29>2022-07-29</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。</p></div><div class=post-footer><a href=/posts/config4mac/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/mac/ class=post-tag>Mac</a><a href=/tags/node.js/ class=post-tag>Node.js</a><a href=/tags/nvm/ class=post-tag>nvm</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/adb-for-mac/>Mac 配置 ADB</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-07-05 15:39:34'>发布于 <time datetime=2022-07-05>2022-07-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><p>作为非安卓专业开发，无需下载 Android SDK，<br>仅下载 Android SDK 中的 <a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=_blank rel=\"external nofollow noopener noreferrer\">platform-tools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 命令行工具即可，并配置好环境变量。</p></div><div class=post-footer><a href=/posts/adb-for-mac/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/android/ class=post-tag>Android</a><a href=/tags/adb/ class=post-tag>ADB</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/js-rediscover/>重新认识 JavaScript</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-05-01 10:59:36'>发布于 <time datetime=2022-05-01>2022-05-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>前言<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。</p><p>每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。</p></div></div></div></div><div class=post-footer><a href=/posts/js-rediscover/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/es6/ class=post-tag>ES6</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/page/6/>6</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/page/9/>9</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/8/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/css-scss-var/>关于 CSS 和 Scss 变量运算那些事</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2022-04-30 22:04:29'>发布于 <time datetime=2022-04-30>2022-04-30</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><h3 class=heading-element id=问题分析><span>问题分析</span>\n<a href=#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>昨天在开发 FixIt 的时候，在 Scss 中写 <code>max(foo, bar)</code> 函数比较不同的单位变量时报错了，但是在 CSS 中使用 <code>max</code> 或者 <code>min</code> 函数函数比较不同的单位变量是没有问题的。</p><p>造成这一问题的原因是，在 Scss 中，也实现了 <code>max</code> 和 <code>min</code> 函数，但是在 Scss 中，<strong>不同单位的变量是不能进行运算的</strong>，所以使得在 Scss 中直接使用 <code>max</code> 或者 <code>min</code> 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）</p><p>知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。</p></div><div class=post-footer><a href=/posts/css-scss-var/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag>CSS</a><a href=/tags/scss/ class=post-tag>Scss</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/gtd/ aria-label=\"Getting Things Done for ios App Reminders and Github issues\"><img loading=eager src=/posts/gtd/images/reminders_min.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Getting Things Done for ios App Reminders and Github issues\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/gtd/>Getting Things Done for Ios App Reminders and Github Issues</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-12-22 20:17:42'>发布于 <time datetime=2021-12-22>2021-12-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>quote<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p><strong>Getting Things Done (GTD)</strong> is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &ldquo;there is an inverse relationship between things on your mind and those things getting done&rdquo;.</p><ul><li><a href=https://en.wikipedia.org/wiki/Getting_Things_Done target=_blank rel=\"external nofollow noopener noreferrer\">Reference<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/hugo-blog/issues/20 target=_blank rel=\"external nofollow noopener noreferrer\">#20<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div></div></div></div><div class=post-footer><a href=/posts/gtd/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gtd/ class=post-tag>GTD</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/subl_imgpaste2/>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-05 21:54:06'>发布于 <time datetime=2021-10-05>2021-10-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><a href=https://github.com/robinchenyu/imagepaste title=插件地址 target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>插件地址</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/robinchenyu/imagepaste</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a></div><div class=post-footer><a href=/posts/subl_imgpaste2/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/markdown/ class=post-tag>Markdown</a><a href=/tags/sublime/ class=post-tag>Sublime</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hugo-cardlink/>Hugo 添加知乎卡片式链接 Shortcodes</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-05 19:33:13'>发布于 <time datetime=2021-10-05>2021-10-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>卡片式链接已整合到 FixIt 主题</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/FixIt</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>回顧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>之前在使用 hexo 的時候也有用到，<a href=/posts/linkcard/>模仿知乎卡片式链接</a><br>和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，<br>使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。</div></div></div></div><div class=post-footer><a href=/posts/hugo-cardlink/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/shortcodes/ class=post-tag>Shortcodes</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hugo-i18n-zh-tw/>Hugo I18n 添加中文繁體翻譯</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-05 19:14:45'>发布于 <time datetime=2021-10-05>2021-10-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。</p></blockquote></div><div class=post-footer><a href=/posts/hugo-i18n-zh-tw/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit/ class=post-tag>FixIt</a><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/i18n/ class=post-tag>I18n</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hugo-friends/>Hugo 友情連結模板</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-05 14:14:10'>发布于 <time datetime=2021-10-05>2021-10-05</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>過程<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。</div></div></div><a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>友情鏈接模板已整合到 FixIt 主題</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/FixIt</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a></div><div class=post-footer><a href=/posts/hugo-friends/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag>Hugo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/posts/hugo-admin/ aria-label=\"Hugo 本地管理 Shell 腳本\"><img loading=eager src=/posts/hugo-admin/images/hugo-admin1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for Hugo 本地管理 Shell 腳本\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hugo-admin/>Hugo 本地管理 Shell 腳本</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-04 23:49:00'>发布于 <time datetime=2021-10-04>2021-10-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><div class=\"details admonition abstract open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=true></i>摘要<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。<br>自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。</div></div></div></div><div class=post-footer><a href=/posts/hugo-admin/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/shell/ class=post-tag>shell</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/github-actions/>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-04 23:46:49'>发布于 <time datetime=2021-10-04>2021-10-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a>&ensp;<a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=content><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>解決痛點<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。<br>也就是説實現了在線寫靜態博客的需求。</div></div></div></div><div class=post-footer><a href=/posts/github-actions/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag>Git</a><a href=/tags/github-actions/ class=post-tag>GitHub Actions</a><a href=/tags/hugo/ class=post-tag>Hugo</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag>腾讯云 cos 桶</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/hexo-to-hugo/>个人博客从 Hexo 迁移至 Hugo</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-10-03 15:27:58'>发布于 <time datetime=2021-10-03>2021-10-03</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。</p></blockquote></div><div class=post-footer><a href=/posts/hexo-to-hugo/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit/ class=post-tag>FixIt</a><a href=/tags/hexo/ class=post-tag>Hexo</a><a href=/tags/hugo/ class=post-tag>Hugo</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/less-sass-scss/>Less&amp;sass&amp;scss</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-06-22 16:39:47'>发布于 <time datetime=2021-06-22>2021-06-22</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=content><blockquote><p>Sass 和 Less 都屬於 <strong>CSS 前置處理器</strong>，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。<br>轉化成通俗易懂的話來說就是 <strong>“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。</strong></p></blockquote></div><div class=post-footer><a href=/posts/less-sass-scss/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/less/ class=post-tag>Less</a><a href=/tags/sass/ class=post-tag>Sass</a><a href=/tags/scss/ class=post-tag>Scss</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/page/7/>7</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/page/10/>10</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "page/9/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta name=generator content=\"Hugo 0.161.1\"><meta name=theme content='FixIt v0.4.5'><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>菠菜眾長 - 李瑞豪的博客</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"菠菜眾長\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"菠菜眾長\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"菠菜眾長\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/ title=菠菜眾長><link rel=alternate type=application/rss+xml href=https://lruihao.cn/index.xml title=菠菜眾長><link rel=alternate type=application/json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=search type=application/json href=https://lruihao.cn/search.json title=菠菜眾長><link rel=alternate type=application/feed+json href=https://lruihao.cn/feed.json title=菠菜眾長><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"WebSite\",\"url\":\"https:\\/\\/lruihao.cn\\/\",\"inLanguage\":\"zh-CN\",\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508},\"thumbnailUrl\":\"https:\\/\\/lruihao.cn\\/images\\/tn.webp\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"name\":\"菠菜眾長\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page home posts\"><div class=home-profile><div class=home-avatar><a href=/about/ title=关于><img src=/images/avatar.jpg alt=\"Home avatar\" height=96 width=96></a></div><h1 class=home-title>Lruihao's Note</h1><p class=home-subtitle><span class=d-none>不怕萬人阻擋，只怕自己投降</span><span class=typeit><template>不怕萬人阻擋，只怕自己投降</template></span></p><div class=links><a href=https://github.com/Lruihao title=GitHub target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-github-alt\" aria-hidden=true></i>\n</a><a href=https://lruihao.cn/images/qr-wx-mp_s.webp title=加我微信：关注公众号回复“Cell” target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weixin fa-fw\" aria-hidden=true></i>\n</a><a href=https://weibo.com/liahao title=微博 target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-brands fa-weibo\" aria-hidden=true></i>\n</a><a href=mailto:1024@lruihao.cn title=Email target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-regular fa-envelope\" aria-hidden=true></i>\n</a><a href=/index.xml title=RSS target=_blank rel=\"external nofollow noopener noreferrer me\"><i class=\"fa-solid fa-rss\" aria-hidden=true></i></a></div><img class=profile-ghchart src=/images/remote/Lruihao_8422642176270081666.svg alt=\"Lruihao's GitHub chart\" height=104 width=633></div><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/lightbox/>Lightbox</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-06-21 16:18:04'>发布于 <time datetime=2021-06-21>2021-06-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=content><h3 class=heading-element id=簡介><span>簡介</span>\n<a href=#%e7%b0%a1%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。</p></div><div class=post-footer><a href=/posts/lightbox/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/lightbox/ class=post-tag>Lightbox</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/years/2020-2021/>2020&amp;2021 總結</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-06-21 10:17:38'>发布于 <time datetime=2021-06-21>2021-06-21</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>後知後覺<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>2020 已經過去半年了，由於情緒過於複杂，一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公，得空靜下來，和自己對話，不知从何說起，想到哪寫到哪吧。</div></div></div></div><div class=post-footer><a href=/years/2020-2021/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag>总结</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/projects/cell-watermark/>Cell Watermark</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-05-23 17:15:41'>发布于 <time datetime=2021-05-23>2021-05-23</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content>Create watermark for webpage and automatic adjust when window resize.</div><div class=post-footer><a href=/projects/cell-watermark/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/watermark/ class=post-tag>watermark</a><a href=/tags/javascript/ class=post-tag>javascript</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/codereview/>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-03-04 21:04:18'>发布于 <time datetime=2021-03-04>2021-03-04</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><h3 class=heading-element id=程式碼的持續優化><span>程式碼的持續優化</span>\n<a href=#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：</p></div><div class=post-footer><a href=/posts/codereview/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codereview/ class=post-tag>codereview</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/projects/bill-note/>基于 Leancloud-Storage 实现的无后端记账本</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-03-02 21:46:40'>发布于 <time datetime=2021-03-02>2021-03-02</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><h3 class=heading-element id=起因><span>起因</span>\n<a href=#%e8%b5%b7%e5%9b%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>起因<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！</p><p>自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；<br>三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (<code>AB, AC, BC, ABC</code>)。好麻煩啊！！！</p></div></div></div></div><div class=post-footer><a href=/projects/bill-note/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag>javascript</a><a href=/tags/vue2/ class=post-tag>Vue2</a><a href=/tags/leancloud/ class=post-tag>leancloud</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/me/whysmoke/>你为什么吸烟？</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2021-03-01 01:27:41'>发布于 <time datetime=2021-03-01>2021-03-01</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=content><p>这么说吧，其实三五年往上走的朋友都知道，我以前是不抽烟的，以至于后来得知我开始抽烟后，大家都会很震惊。所以，我并不是在那个懵懂的年纪为了装逼耍酷而开始的。</p><p>我为什么开始抽烟？为了爱情！开个玩笑，没有那么中二啦 →_→，但确实因为感情，2020 年 5 月 28 日，那晚回宿舍后，我一个人坐在明德宿舍的阳台上，点上了室友的一支利群，所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散，只是觉得头晕。</p></div><div class=post-footer><a href=/me/whysmoke/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E6%83%B3/ class=post-tag>随想</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><div class=featured-image-preview><a href=/projects/cell-blog/ aria-label=\"cell-blog 功能介绍与安装\"><img loading=eager src=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=\"Featured image for cell-blog 功能介绍与安装\" height=336 width=800></a></div><h2 class=single-title itemprop=\"name headline\"><a href=/projects/cell-blog/>Cell-Blog 功能介绍与安装</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-07-25 20:51:11'>发布于 <time datetime=2020-07-25>2020-07-25</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=content><blockquote><p>基于 Laravel7 开发，Markdown 语法的个人独立博客。<a href=https://github.com/Lruihao/cell-blog target=_blank rel=\"external nofollow noopener noreferrer\">Cell Blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, 也是我的毕业设计作品，目前已開源。</p></blockquote></div><div class=post-footer><a href=/projects/cell-blog/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a><a href=/tags/laravel/ class=post-tag>Laravel</a><a href=/tags/markdown/ class=post-tag>Markdown</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cell-blog-dev/>Cell-Blog 开发记录</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-07-25 20:42:42'>发布于 <time datetime=2020-07-25>2020-07-25</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=content><blockquote><p>Cell Blog 开发记录，<a href=https://github.com/Lruihao/cell-blog target=_blank rel=\"external nofollow noopener noreferrer\">项目地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-footer><a href=/posts/cell-blog-dev/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag>PHP</a><a href=/tags/laravel/ class=post-tag>Laravel</a><a href=/tags/markdown/ class=post-tag>Markdown</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/csdnvisiter/>使用 Python 刷 Csdn 访问量</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-03-26 11:08:38'>发布于 <time datetime=2020-03-26>2020-03-26</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=content><blockquote><p>使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~</p></blockquote></div><div class=post-footer><a href=/posts/csdnvisiter/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag>Python</a></div></div></article><article class=\"single summary\" itemscope itemtype=http://schema.org/Article><h2 class=single-title itemprop=\"name headline\"><a href=/posts/cron/>Cron 表达式的基本语法</a></h2><div class=post-meta><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span>&nbsp;<span class=post-publish title='2020-03-25 09:19:44'>发布于 <time datetime=2020-03-25>2020-03-25</time></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=content><h3 class=heading-element id=基本语法><span>基本语法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><code>&lt;秒> &lt;分钟> &lt;小时> &lt;日期 day-of-month> &lt;月份> &lt;星期 day-of-week></code></p></blockquote><p>Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 <code>X X X X X X</code>。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。</p></div><div class=post-footer><a href=/posts/cron/>阅读全文</a><div class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag>linux</a><a href=/tags/shell/ class=post-tag>shell</a><a href=/tags/cron/ class=post-tag>Cron</a></div></div></article><ul class=pagination><li class=page-item><span class=page-link><a href=/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/page/8/>8</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/page/11/>11</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/page/26/>26</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!1,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,typeit:{cursorChar:\"|\",cursorSpeed:1e3,duration:-1,loop:!1,speed:100},version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/18湘潭邀请赛总结/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>18 湘潭邀请赛总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接（hdu 复赛）\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\n\"><meta name=keywords content='2018 湘潭邀请赛,ACM,总结'><meta itemprop=name content=\"18 湘潭邀请赛总结\"><meta itemprop=description content=\"题目链接（hdu 复赛）\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\"><meta itemprop=datePublished content=\"2018-06-14T23:32:47+08:00\"><meta itemprop=dateModified content=\"2018-06-14T23:32:47+08:00\"><meta itemprop=wordCount content=\"553\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"2018 湘潭邀请赛,acm,总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"18 湘潭邀请赛总结\"><meta property=\"og:description\" content=\"题目链接（hdu 复赛）\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T23:32:47+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-14T23:32:47+08:00\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"18 湘潭邀请赛总结\"><meta name=twitter:description content=\"题目链接（hdu 复赛）\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ title=\"18 湘潭邀请赛总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/f-sorting/ title=F.sorting><link rel=next type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ title=\"18 湘潭邀请赛参赛队员代表发言\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/index.md title=\"18 湘潭邀请赛总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"18 湘潭邀请赛总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"2018 湘潭邀请赛, ACM, 总结\",\"wordcount\":553,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93\\/\",\"datePublished\":\"2018-06-14T23:32:47+08:00\",\"dateModified\":\"2018-06-14T23:32:47+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>18 湘潭邀请赛总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>18 湘潭邀请赛总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 23:32:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"553 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"18 湘潭邀请赛总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-06-14，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（hdu 复赛）</p><p>2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。</p><p>比赛开始，这次是三个人没人一份纸质题目，拿到题目，看最后一题，k.2018 发现可以做，（事实证明确实是一道水题），我就在做这题，他们看了 a 题，好像是 k 题一顿操作后提交，错了，一直到比赛结束都没做出来，后来回去看别人的题解，发现自己情况没有分析全面，其实是完全可以解出来的，真的做的太少太少了。a 题最后也是没过，还有一个 f 题，sort，我最初的想法是用 stl 里的那个 sort 排序，只要对 sort 的 compare 函数做处理应该可以完成排序，比赛之前我看过，但是不熟悉，zxm 她也看了我就交给她了，最后好像因为爆 long double 的问题也没做出来。<br>哎，菜还是菜，很多算法都不懂，数据结构也没学好，很有一段时间我都特别头疼算法，不想学，费劲，觉得自己不适合学计算机，更不适合 ACM。有时候又想，不适合好像总是 loser 的借口！总是在后悔和偷懒的矛盾中！<br>最后，放上，&ldquo;参赛奖\"羞辱自己，也是鞭策！<br><a class=lightgallery target=_blank href=/images/remote/5b249fed84000_9926586007743847616.jpg title=IMG_20180616_132759.jpg data-thumbnail=/images/remote/5b249fed84000_9926586007743847616.jpg data-sub-html=\"<h2>IMG_20180616_132759.jpg</h2>\"><img loading=lazy src=/images/remote/5b249fed84000_9926586007743847616.jpg alt=IMG_20180616_132759.jpg height=1237 width=1745></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-14 23:32:47\">更新于 2018-06-14&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e6%80%bb%e7%bb%93.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e6%80%bb%e7%bb%93.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%2018+%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c18+%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e6%80%bb%e7%bb%93.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ data-title=\"18 湘潭邀请赛总结\" data-hashtags=\"2018 湘潭邀请赛,ACM,总结\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ data-hashtag=\"2018 湘潭邀请赛\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ data-title=\"18 湘潭邀请赛总结\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ data-title=\"18 湘潭邀请赛总结\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/f-sorting/ class=post-nav-item rel=prev title=F.sorting><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>F.sorting</a><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=post-nav-item rel=next title=\"18 湘潭邀请赛参赛队员代表发言\">18 湘潭邀请赛参赛队员代表发言<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6fc44cad1abecf6df2cff07272bfd31b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6fc44cad1abecf6df2cff07272bfd31b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/18湘潭邀请赛总结/index.md",
    "content": "# 18 湘潭邀请赛总结\n\n\n[题目链接](http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf)（hdu 复赛）\n\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\n\n比赛开始，这次是三个人没人一份纸质题目，拿到题目，看最后一题，k.2018 发现可以做，（事实证明确实是一道水题），我就在做这题，他们看了 a 题，好像是 k 题一顿操作后提交，错了，一直到比赛结束都没做出来，后来回去看别人的题解，发现自己情况没有分析全面，其实是完全可以解出来的，真的做的太少太少了。a 题最后也是没过，还有一个 f 题，sort，我最初的想法是用 stl 里的那个 sort 排序，只要对 sort 的 compare 函数做处理应该可以完成排序，比赛之前我看过，但是不熟悉，zxm 她也看了我就交给她了，最后好像因为爆 long double 的问题也没做出来。  \n哎，菜还是菜，很多算法都不懂，数据结构也没学好，很有一段时间我都特别头疼算法，不想学，费劲，觉得自己不适合学计算机，更不适合 ACM。有时候又想，不适合好像总是 loser 的借口！总是在后悔和偷懒的矛盾中！  \n最后，放上，\"参赛奖\"羞辱自己，也是鞭策！  \n![IMG_20180616_132759.jpg](https://i.loli.net/2018/06/16/5b249fed84000.jpg)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/  \n\n"
  },
  {
    "path": "posts/18湘潭邀请赛队员代表发言/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>18 湘潭邀请赛参赛队员代表发言 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 来自一位大佬的演讲\n尊敬的领导、教练，亲爱的参赛选手们：\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\n\"><meta name=keywords content='ACM,2018 湘潭邀请赛'><meta itemprop=name content=\"18 湘潭邀请赛参赛队员代表发言\"><meta itemprop=description content=\"来自一位大佬的演讲\n尊敬的领导、教练，亲爱的参赛选手们：\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\"><meta itemprop=datePublished content=\"2018-06-15T07:51:21+08:00\"><meta itemprop=dateModified content=\"2018-06-15T07:51:21+08:00\"><meta itemprop=wordCount content=\"810\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,2018 湘潭邀请赛\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"18 湘潭邀请赛参赛队员代表发言\"><meta property=\"og:description\" content=\"来自一位大佬的演讲\n尊敬的领导、教练，亲爱的参赛选手们：\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-15T07:51:21+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-15T07:51:21+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"18 湘潭邀请赛参赛队员代表发言\"><meta name=twitter:description content=\"来自一位大佬的演讲\n尊敬的领导、教练，亲爱的参赛选手们：\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ title=\"18 湘潭邀请赛参赛队员代表发言 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ title=\"18 湘潭邀请赛总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ title=简单背包><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/index.md title=\"18 湘潭邀请赛参赛队员代表发言 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"18 湘潭邀请赛参赛队员代表发言\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 2018 湘潭邀请赛\",\"wordcount\":810,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80\\/\",\"datePublished\":\"2018-06-15T07:51:21+08:00\",\"dateModified\":\"2018-06-15T07:51:21+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>18 湘潭邀请赛参赛队员代表发言</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>18 湘潭邀请赛参赛队员代表发言</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-15 07:51:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-15>2018-06-15</time></span>&nbsp;<span title=\"810 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"18 湘潭邀请赛参赛队员代表发言\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-06-15，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>来自一位大佬的演讲</p></blockquote><p>尊敬的领导、教练，亲爱的参赛选手们：<br>大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。<br>刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。<br>在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。<br>为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。<br>三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。<br>最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-15 07:51:21\">更新于 2018-06-15&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e9%98%9f%e5%91%98%e4%bb%a3%e8%a1%a8%e5%8f%91%e8%a8%80.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e9%98%9f%e5%91%98%e4%bb%a3%e8%a1%a8%e5%8f%91%e8%a8%80.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%2018+%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E5%8F%82%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c18+%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E5%8F%82%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80%7c%0A%7cURL%7chttps://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/18%e6%b9%98%e6%bd%ad%e9%82%80%e8%af%b7%e8%b5%9b%e9%98%9f%e5%91%98%e4%bb%a3%e8%a1%a8%e5%8f%91%e8%a8%80.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ data-title=\"18 湘潭邀请赛参赛队员代表发言\" data-hashtags=\"ACM,2018 湘潭邀请赛\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ data-title=\"18 湘潭邀请赛参赛队员代表发言\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ data-title=\"18 湘潭邀请赛参赛队员代表发言\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=post-nav-item rel=prev title=\"18 湘潭邀请赛总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>18 湘潭邀请赛总结</a><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=post-nav-item rel=next title=简单背包>简单背包<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a2ae81125a3a0bcf0012a4a8dbfee438.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a2ae81125a3a0bcf0012a4a8dbfee438.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/18湘潭邀请赛队员代表发言/index.md",
    "content": "# 18 湘潭邀请赛参赛队员代表发言\n\n\n> 来自一位大佬的演讲\n\n尊敬的领导、教练，亲爱的参赛选手们：  \n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。  \n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。  \n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。  \n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。  \n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。  \n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/  \n\n"
  },
  {
    "path": "posts/1thintervivew/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>第一次面试经历 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\n\"><meta name=keywords content='面试'><meta itemprop=name content=\"第一次面试经历\"><meta itemprop=description content=\"时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\"><meta itemprop=datePublished content=\"2019-04-24T21:23:22+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"358\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"面试\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/1thintervivew/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"第一次面试经历\"><meta property=\"og:description\" content=\"时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-24T21:23:22+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"面试\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"第一次面试经历\"><meta name=twitter:description content=\"时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/1thintervivew/ title=\"第一次面试经历 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/mmtimgpy/ title=\"python 爬取网站图片（图片链接相似）\"><link rel=next type=text/html href=https://lruihao.cn/posts/qrcode/ title=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/1thintervivew/index.md title=\"第一次面试经历 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"第一次面试经历\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/1thintervivew\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"面试\",\"wordcount\":358,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/1thintervivew\\/\",\"datePublished\":\"2019-04-24T21:23:22+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/1thintervivew/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>第一次面试经历</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>第一次面试经历</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-24 21:23:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-24>2019-04-24</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"358 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=第一次面试经历><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。</p></blockquote><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>Success<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>富士康在学校有一个春招的机会，我和朋友抱着侥幸的心理去试了试。\n虽然深知自己还身有很多缺点，但是不面试不知道，一面试都暴露出来了，以下记录一下自己的不足之处：</p><ul><li>php 和 sql 的经典组合虽然有所接触了解，但是确实什么都会，得花时间学</li><li>html/css 等虽然平时折腾博客这些应用的比较多，但是今天竟然紧张地忘记了 margin 和 padding 都不会写了</li><li>如上一条，公众表现能力有待加强。正如当今“酒香也怕巷子深”，何况“不香”。</li></ul><p>惊喜的事说来就来，本来知道自己这么多缺点，这么菜后，觉得这个实习的 offer 是没戏了，没想到下午技术主管微信发来消息，说录用了。当场懵逼，受宠若惊的感觉！非常谢谢面试官老师！<br>无论生活还是学习，希望以后的自己一定要保持一颗谦逊爱学的心，早日实现全栈工程师的梦想，还有早点存钱把大学学费的贷款还掉！</p></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/1thintervivew/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/1thintervivew.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/1thintervivew.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%AC%AC%E4%B8%80%E6%AC%A1%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%AC%AC%E4%B8%80%E6%AC%A1%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/1thintervivew/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/1thintervivew.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/1thintervivew/ data-title=第一次面试经历 data-hashtags=面试><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/1thintervivew/ data-hashtag=面试><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/1thintervivew/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/1thintervivew/ data-title=第一次面试经历 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/1thintervivew/ data-title=第一次面试经历><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9D%A2%E8%AF%95/ class=post-tag title=\"标签 - 面试\">面试</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/mmtimgpy/ class=post-nav-item rel=prev title=\"Python 爬取网站图片（图片链接相似）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 爬取网站图片（图片链接相似）</a><a href=/posts/qrcode/ class=post-nav-item rel=next title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\">用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/160160b17b769c7c43691b7c09140d60.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/160160b17b769c7c43691b7c09140d60.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/1thintervivew/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/1thintervivew/index.md",
    "content": "# 第一次面试经历\n\n\n> 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\n\n<!--more-->\n\n{{< admonition success \"Success\" >}}\n富士康在学校有一个春招的机会，我和朋友抱着侥幸的心理去试了试。\n虽然深知自己还身有很多缺点，但是不面试不知道，一面试都暴露出来了，以下记录一下自己的不足之处：\n\n- php 和 sql 的经典组合虽然有所接触了解，但是确实什么都会，得花时间学\n- html/css 等虽然平时折腾博客这些应用的比较多，但是今天竟然紧张地忘记了 margin 和 padding 都不会写了\n- 如上一条，公众表现能力有待加强。正如当今“酒香也怕巷子深”，何况“不香”。\n\n惊喜的事说来就来，本来知道自己这么多缺点，这么菜后，觉得这个实习的 offer 是没戏了，没想到下午技术主管微信发来消息，说录用了。当场懵逼，受宠若惊的感觉！非常谢谢面试官老师！  \n无论生活还是学习，希望以后的自己一定要保持一颗谦逊爱学的心，早日实现全栈工程师的梦想，还有早点存钱把大学学费的贷款还掉！  \n{{< /admonition >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/1thintervivew/  \n\n"
  },
  {
    "path": "posts/20b75e9/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>为什么很多教程中都有 Foo Bar？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"为什么很多教程中都有 foo bar？\"><meta itemprop=description content=\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\"><meta itemprop=datePublished content=\"2024-01-17T09:58:58+08:00\"><meta itemprop=dateModified content=\"2024-07-17T17:37:00+08:00\"><meta itemprop=wordCount content=\"578\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Grocery\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/20b75e9/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"为什么很多教程中都有 foo bar？\"><meta property=\"og:description\" content=\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-01-17T09:58:58+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-17T17:37:00+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"为什么很多教程中都有 foo bar？\"><meta name=twitter:description content=\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/20b75e9/ title=\"为什么很多教程中都有 foo bar？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/6550187/ title=\"git submodule: already exists in the index\"><link rel=next type=text/html href=https://lruihao.cn/posts/900d5e4/ title=\"记一次 Debug 第三方包的过程\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/20b75e9/index.md title=\"为什么很多教程中都有 foo bar？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"为什么很多教程中都有 foo bar？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/20b75e9\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":578,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/20b75e9\\/\",\"datePublished\":\"2024-01-17T09:58:58+08:00\",\"dateModified\":\"2024-07-17T17:37:00+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/20b75e9/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>为什么很多教程中都有 Foo Bar？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>为什么很多教程中都有 Foo Bar？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2024-01-17 09:58:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-01-17>2024-01-17</time></span>&nbsp;<span title=\"更新于 2024-07-17 17:37:00\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-17>2024-07-17</time></span>&nbsp;<span title=\"578 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"为什么很多教程中都有 Foo Bar？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#foo-和-bar>foo 和 bar</a></li><li><a href=#quick-brown-fox>quick brown fox</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。</p><h2 class=heading-element id=foo-和-bar><span>1 foo 和 bar</span>\n<a href=#foo-%e5%92%8c-bar class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这些名称起源于 MIT，然后通过 Hacker 文化传播开来。它们主要的用途是作为示例代码的占位符，这样编程教程或者文档可以更专注于解释语法和逻辑，而不需要花费太多的精力去考虑如何命名这些函数或变量。</p><p>这就像是在其他文字中使用\"John Doe\" 或 &ldquo;Jane Doe\"来代表一个非特定的人一样。在编程的世界中，foo 和 bar 就扮演了类似的角色。</p><p>例如，如果我们要解释 JavaScript 中函数的使用，我们可能会写出这样的代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kd>function</span> <span class=nx>foo</span><span class=p>(</span><span class=nx>bar</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nx>bar</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=nx>foo</span><span class=p>(</span><span class=mi>1</span><span class=p>);</span> <span class=c1>// 2\n</span></span></span></code></pre></td></tr></table></div></div></div><p>在这个例子中，foo 是一个函数名，bar 是一个参数名，它们都可以被替换为任何合法的函数名和参数名，而不改变代码逻辑。</p><h2 class=heading-element id=quick-brown-fox><span>2 quick brown fox</span>\n<a href=#quick-brown-fox class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>另外，还常常看到一个这样的句子：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>The quick brown fox jumps over the lazy dog</span></span></code></pre></td></tr></table></div></div></div><p>相应中文可简译为“快狐跨懒狗”，完整翻译则是“那只敏捷的棕毛狐狸跃过了那只懒狗”，是一个著名的英语全字母句，常用于测试字体显示效果和键盘是否故障。此句也常以“quick brown fox”做为指代简称。</p><p>简而言之，这些都是英文世界里一些约定俗成的用语，类似于中文里的“张三李四”、“甲乙丙丁”等等。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-17 17:37:00\">更新于 2024-07-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/06f2f3e3c1d0f006154112bb9aab80e7751ba085 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 新增文章“Git 统计代码量”&#10&#10Commit: 06f2f3e3c1d0f006154112bb9aab80e7751ba085 [06f2f3e]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-17 17:37:00\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>06f2f3e</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/20b75e9/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/foo-bar.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/foo-bar.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BE%88%E5%A4%9A%E6%95%99%E7%A8%8B%E4%B8%AD%E9%83%BD%E6%9C%89+foo+bar%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BE%88%E5%A4%9A%E6%95%99%E7%A8%8B%E4%B8%AD%E9%83%BD%E6%9C%89+foo+bar%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/20b75e9/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/foo-bar.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/20b75e9/ data-title=\"为什么很多教程中都有 Foo Bar？\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/20b75e9/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/20b75e9/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/20b75e9/ data-title=\"为什么很多教程中都有 Foo Bar？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/20b75e9/ data-title=\"为什么很多教程中都有 Foo Bar？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/6550187/ class=post-nav-item rel=prev title=\"Git Submodule: Already Exists in the Index\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Git Submodule: Already Exists in the Index</a><a href=/posts/900d5e4/ class=post-nav-item rel=next title=\"记一次 Debug 第三方包的过程\">记一次 Debug 第三方包的过程<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#foo-和-bar>foo 和 bar</a></li><li><a href=#quick-brown-fox>quick brown fox</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/20b75e9cebe826082f74682133ae2ae5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/20b75e9cebe826082f74682133ae2ae5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/20b75e9/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/20b75e9/index.md",
    "content": "# 为什么很多教程中都有 Foo Bar？\n\n\nfoo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\n\n<!--more-->\n\n## foo 和 bar\n\n这些名称起源于 MIT，然后通过 Hacker 文化传播开来。它们主要的用途是作为示例代码的占位符，这样编程教程或者文档可以更专注于解释语法和逻辑，而不需要花费太多的精力去考虑如何命名这些函数或变量。\n\n这就像是在其他文字中使用\"John Doe\" 或 \"Jane Doe\"来代表一个非特定的人一样。在编程的世界中，foo 和 bar 就扮演了类似的角色。\n\n例如，如果我们要解释 JavaScript 中函数的使用，我们可能会写出这样的代码：\n\n```javascript\nfunction foo(bar) {\n  return bar + 1;\n}\nfoo(1); // 2\n```\n\n在这个例子中，foo 是一个函数名，bar 是一个参数名，它们都可以被替换为任何合法的函数名和参数名，而不改变代码逻辑。\n\n## quick brown fox\n\n另外，还常常看到一个这样的句子：\n\n```plain\nThe quick brown fox jumps over the lazy dog\n```\n\n相应中文可简译为“快狐跨懒狗”，完整翻译则是“那只敏捷的棕毛狐狸跃过了那只懒狗”，是一个著名的英语全字母句，常用于测试字体显示效果和键盘是否故障。此句也常以“quick brown fox”做为指代简称。\n\n简而言之，这些都是英文世界里一些约定俗成的用语，类似于中文里的“张三李四”、“甲乙丙丁”等等。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/20b75e9/  \n\n"
  },
  {
    "path": "posts/404d6a2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>坐高铁去柳州吃螺狮粉 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"坐高铁去柳州吃螺狮粉，是一种怎样的体验呢？\n\"><meta name=keywords content='随想'><meta itemprop=name content=\"坐高铁去柳州吃螺狮粉\"><meta itemprop=description content=\"坐高铁去柳州吃螺狮粉，是一种怎样的体验呢？\"><meta itemprop=datePublished content=\"2024-05-20T11:41:03+08:00\"><meta itemprop=dateModified content=\"2024-05-20T11:41:03+08:00\"><meta itemprop=wordCount content=\"535\"><meta itemprop=image content=\"https://lruihao.cn/posts/404d6a2/featured-image.webp\"><meta itemprop=keywords content=\"随想\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/404d6a2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"坐高铁去柳州吃螺狮粉\"><meta property=\"og:description\" content=\"坐高铁去柳州吃螺狮粉，是一种怎样的体验呢？\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2024-05-20T11:41:03+08:00\"><meta property=\"article:modified_time\" content=\"2024-05-20T11:41:03+08:00\"><meta property=\"article:tag\" content=\"随想\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/404d6a2/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/404d6a2/featured-image.webp\"><meta name=twitter:title content=\"坐高铁去柳州吃螺狮粉\"><meta name=twitter:description content=\"坐高铁去柳州吃螺狮粉，是一种怎样的体验呢？\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/404d6a2/ title=\"坐高铁去柳州吃螺狮粉 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><link rel=next type=text/html href=https://lruihao.cn/posts/svg-dark-light/ title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/404d6a2/index.md title=\"坐高铁去柳州吃螺狮粉 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"坐高铁去柳州吃螺狮粉\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/404d6a2\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/404d6a2\\/featured-image.webp\",\"width\":1170,\"height\":508}],\"genre\":\"posts\",\"keywords\":\"随想\",\"wordcount\":535,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/404d6a2\\/\",\"datePublished\":\"2024-05-20T11:41:03+08:00\",\"dateModified\":\"2024-05-20T11:41:03+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/404d6a2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/_posts/ title=加密文章>加密文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>坐高铁去柳州吃螺狮粉</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>坐高铁去柳州吃螺狮粉</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">假日随想录</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2024-05-20 11:41:03\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-05-20>2024-05-20</time></span>&nbsp;<span title=\"535 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=坐高铁去柳州吃螺狮粉><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/404d6a2/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/404d6a2/featured-image.webp height=508 width=1170></div><div class=ai-summary></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 请输入密码\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=7861d52697fb50e4>PHA+5Z2Q643095272cf06ba6bbd2c2b9cec89a77115b46142463c94536427086auY6ZOB5Y675p+z5bee5ZCD6J6654uu57KJ77yM5piv5LiA56eN5oCO5qC355qE5L2T6aqM5ZGi77yfPC9wPgo8cCBjbGFzcz0ic2hha3kiPui/meS4quS4lueVjOmcgOimgeeWr+eZq++8jOaIkeS5n+mcgOimgeOAgjwvcD4KPHA+5Lul5ZCO6KaB5aSa5Y6755yL55yL5LiW55WM77yM5Lmf55yL55yL6Ieq5bex44CCPC9wPgo8ZGl2IGNsYXNzPSJkb3V5aW4iPgogIDxpZnJhbWUgc3JjPSIvL29wZW4uZG91eWluLmNvbS9wbGF5ZXIvdmlkZW8/dmlkPTczNzAzNDQxOTMwNzc2NDQ1ODQmYXV0b3BsYXk9MCIgYm9yZGVyPSIwIiBmcmFtZXNwYWNpbmc9IjAiIGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSI+PC9pZnJhbWU+CjwvZGl2Pgo8aHI+Cjx1bAogIGNsYXNzPSJmaS10aW1lbGluZSIKICAgZGF0YS1hbmltYXRpb24+PGxpCiAgICAgIGNsYXNzPSJmaS10aW1lbGluZS1pdGVtIgogICAgICBkYXRhLXNpemU9Im1lZGl1bSIKICAgICAgZGF0YS1ub2RlPSJjaXJjbGUiCiAgICAgIHN0eWxlPSItLXRpbWVsaW5lLWluZGV4OiAxOyI+PGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fY29udGVudCI+PHA+6L+Y5piv5YiG5omL5LqG77yM6L+Y5piv5Lya5LiA6Lm25LiN5oyv77yM5Y+I6KaB5Lqr5Y+X5a2k54us5LqG44CCPGJyPiDlvILlnLDnoa7lrp7orqnlvbzmraTpg73kvJrlvojlp5TlsYjlvojntK/vvIzliIblvIDmmK/pgb/lhY3kuI3kuobnmoTmnKrmnaXjgII8L3A+CjxwPuelneS9oOaXqeaXpeW6t+Wkje+8jOWlveWlveeUn+a0u++8gTwvcD4KPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0wOC0zMDwvZGl2PjwvbGk+PGxpCiAgICAgIGNsYXNzPSJmaS10aW1lbGluZS1pdGVtIgogICAgICBkYXRhLXNpemU9Im1lZGl1bSIKICAgICAgZGF0YS1ub2RlPSJjaXJjbGUiCiAgICAgIHN0eWxlPSItLXRpbWVsaW5lLWluZGV4OiAyOyI+PGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fY29udGVudCI+5L2g56qB54S26K+05L2g5Yiw5oiR5YWs5Y+45qW85LiL5LqG77yM5oiR6LW257Sn5LiL5qW877yM55yL5Yiw5L2g56uZ5Zyo6YKj6YeM77yM5YaF5b+D5pep5bey5rOi5rab5rG55raM5LqG44CCPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0xMC0xNyDlkajlm5sg5rex5ZyzPC9kaXY+PC9saT48bGkKICAgICAgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW0iCiAgICAgIGRhdGEtc2l6ZT0ibWVkaXVtIgogICAgICBkYXRhLW5vZGU9ImNpcmNsZSIKICAgICAgc3R5bGU9Ii0tdGltZWxpbmUtaW5kZXg6IDM7Ij48ZGl2IGNsYXNzPSJmaS10aW1lbGluZS1pdGVtX19jb250ZW50Ij48cD7lkozkvaDni6zlpITkuoblh6DlpKnvvIzmhJ/op4nml7bpl7Tov4flvpflpKrlv6vkuobvvIzomb3nhLbml6nlsLHnn6XpgZPlvILlnLDlvojpmr7nhqzvvIzkvYbmmK/kvaDpg73ov5nkuYjkuLvliqjkuobvvIzmiJHov5jmmK/luIzmnJvnu5nlvbzmraTkuIDkuKrmnLrkvJrjgII8L3A+CjxwPuaIkeabvuWcqOaXoOaVsOS4quedoeS4jeedgOeahOWknOaZmu+8jOmXrui/h+iHquW3seaYr+WQpueIseS9oO+8jOS9oOWPiOaYr+WQpueIseaIkeOAguW+iOW6huW5uOW+l+WIsOS6huiCr+WumueahOWbnuetlOOAgjwvcD4KPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0xMC0yMCDlkajlpKk8L2Rpdj48L2xpPjxsaQogICAgICBjbGFzcz0iZmktdGltZWxpbmUtaXRlbSIKICAgICAgZGF0YS1zaXplPSJtZWRpdW0iCiAgICAgIGRhdGEtbm9kZT0iY2lyY2xlIgogICAgICBzdHlsZT0iLS10aW1lbGluZS1pbmRleDogNDsiPjxkaXYgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW1fX2NvbnRlbnQiPjxibG9ja3F1b3RlPgo8cD7mg7PkvaDvvIzmiJHlm57miJHku6znmoTlsI/ljr/ln47mib7kvaDkuobjgILmnKzmnaXmg7PnrYnnu5nkvaDkubDnmoTmiYvmnLrliLDkuobku6XlkI7lho3luKblm57mnaXkuIDotbfop4HkvaDnmoTjgII8L3A+CjwvYmxvY2txdW90ZT4KPHA+5Y6f5pys6K6i5LqG5ZGo5aSp5Lit5Y2I5Zue5rex5Zyz55qE56Wo55qE77yM5Y+v5piv5LiL5qyh6KeB6Z2i5Lyw6K6h5b6X5Yiw5YWD5pem5LqG77yM5LqO5piv5oiR5pS5562+5Yiw5LqG5LiL5Y2I77yM5q2j5aW95L2g5Lmf6KaB5Y675LiK54+t5LqG44CCPC9wPgo8cD7nrYnkvaDkuIvnj63nmoTml7bpl7TvvIzmiJHkuIDkuKrkurrlvoXlnKjmnpfmtbfphZLlupfvvIzkvp3ml6fop4nlvpfmnKrmnaXnmoTot6/lvojpmr7otbDvvIzlvojlpLTnlrzvvIzkvYbmmK/mgKXkuZ/msqHmnInnlKjjgII8L3A+CjxwPuWPquaYr++8jOWkp+amguinhOWIkuS6huS4gOS4i++8mjwvcD4KPG9sPgo8bGk+5Zyo5L2g56Gu5a6a5Lul5ZCO5Zyo6ZW/6ZO65oiW6ICF6ZW/5rKZ56iz5a6a5bel5L2c5LmL5YmN77yM5oiR5YWI5Zyo5rex5Zyz5aW95aW95bel5L2c77yM56ev57Sv5LiA5Lqb5a2Y5qy+PC9saT4KPGxpPuetieS9oOW3peS9nOeos+Wumu+8jOaIkeWwseWbnui+nuiBjOWbnumVv+aymeaJvuW3peS9nDwvbGk+CjxsaT7nhLblkI7kuIDotbfnlJ/mtLvvvIzop4TliJLnu5PlqZrnrYnnrYk8L2xpPgo8L29sPgo8cD7nkIbmg7PljJbnmoTorqHliJLlsLHov5nmoLfvvIzlhbbkuK3lv4XnhLbkvJrpgYfliLDlvojlpJrpmLvnoo3vvIzkvYbmmK/oh7PlsJHluIzmnJvmiJHoh6rlt7HmmI7nmb3vvIzlnKjmhJ/mg4XkuIrlkrHkv6nooajovr7niLHmhI/nmoTmlrnlvI/kuI3kuIDmoLfvvIzkuI3opoHor6/op6PvvIzlpJrkupvnkIbop6PjgII8L3A+CjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW1fX3RpbWVzdGFtcCBpcy1ib3R0b20iPjIwMjQtMTEtMDggfiAyMDI0LTExLTEwIOe7peWugTwvZGl2PjwvbGk+PC91bD4=</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-05-20 11:41:03\">更新于 2024-05-20&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E6%83%B3/ class=post-tag title=\"标签 - 随想\">随想</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/vercel-gravatar/ class=post-nav-item rel=prev title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>利用 Vercel 反代 Gravatar 实现镜像加速</a><a href=/posts/svg-dark-light/ class=post-nav-item rel=next title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\">怎么生成暗黑模式和明亮模式的 SVG 图片？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cce38c49564849ca8d84971eebfe1d72.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cce38c49564849ca8d84971eebfe1d72.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/404d6a2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/404d6a2/index.md",
    "content": "# 坐高铁去柳州吃螺狮粉\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/404d6a2/  \n\n"
  },
  {
    "path": "posts/6550187/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git Submodule: Already Exists in the Index | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Git 报错 &ldquo;git submodule: already exists in the index&rdquo; 的解决方法。\n\"><meta name=keywords content='Git'><meta itemprop=name content=\"git submodule: already exists in the index\"><meta itemprop=description content=\"Git 报错 “git submodule: already exists in the index” 的解决方法。\"><meta itemprop=datePublished content=\"2024-01-11T10:30:04+08:00\"><meta itemprop=dateModified content=\"2024-01-11T10:39:56+08:00\"><meta itemprop=wordCount content=\"157\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/6550187/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"git submodule: already exists in the index\"><meta property=\"og:description\" content=\"Git 报错 “git submodule: already exists in the index” 的解决方法。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-01-11T10:30:04+08:00\"><meta property=\"article:modified_time\" content=\"2024-01-11T10:39:56+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"git submodule: already exists in the index\"><meta name=twitter:description content=\"Git 报错 “git submodule: already exists in the index” 的解决方法。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/6550187/ title=\"git submodule: already exists in the index | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/el-card-collapse/ title=\"给 el-card 添加折叠功能\"><link rel=next type=text/html href=https://lruihao.cn/posts/20b75e9/ title=\"为什么很多教程中都有 foo bar？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/6550187/index.md title=\"git submodule: already exists in the index | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"git submodule: already exists in the index\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/6550187\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":157,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/6550187\\/\",\"datePublished\":\"2024-01-11T10:30:04+08:00\",\"dateModified\":\"2024-01-11T10:39:56+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/6550187/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git Submodule: Already Exists in the Index</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Git Submodule: Already Exists in the Index</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2024-01-11 10:30:04\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-01-11>2024-01-11</time></span>&nbsp;<span title=\"更新于 2024-01-11 10:39:56\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-01-11>2024-01-11</time></span>&nbsp;<span title=\"157 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Git Submodule: Already Exists in the Index\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#问题>问题</a></li><li><a href=#解决方法>解决方法</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-01-11，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Git 报错 &ldquo;git submodule: already exists in the index&rdquo; 的解决方法。</p><h2 class=heading-element id=问题><span>1 问题</span>\n<a href=#%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <a href=https://github.com/hugo-fixit/docs.git target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，里我增通过软连接的方式引入了 <a href=https://github.com/hugo-fixit/FixIt.git target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，位于 <code>themes/FixIt</code> 目录下。</p><p>然后为了把主题开发和主题文档分离（<a href=https://github.com/hugo-fixit/FixIt/issues/404 target=_blank rel=\"external nofollow noopener noreferrer\">#404<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>），我想通过 <code>git submodule</code> 的方式引入主题，于是我先把 <code>themes/FixIt</code> 目录删除，然后执行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt</span></span></code></pre></td></tr></table></div></div></div><p>结果报错：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fatal: <span class=s1>&#39;themes/FixIt&#39;</span> already exists in the index</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=解决方法><span>2 解决方法</span>\n<a href=#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git rm -r --cached themes/FixIt</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-01-11 10:39:56\">更新于 2024-01-11&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/e8a59cda45d1c2ca7856168db47e542202326bb1 rel=\"external nofollow noopener noreferrer\" target=_blank title='Docs: post \"git submodule: already exists in the index\"&#10&#10Commit: e8a59cda45d1c2ca7856168db47e542202326bb1 [e8a59cd]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-01-11 10:39:56'><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>e8a59cd</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/6550187/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/submodule-cached.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/submodule-cached.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20git+submodule%3A+already+exists+in+the+index&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cgit+submodule%3A+already+exists+in+the+index%7c%0A%7cURL%7chttps://lruihao.cn/posts/6550187/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/submodule-cached.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/6550187/ data-title=\"Git Submodule: Already Exists in the Index\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/6550187/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/6550187/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/6550187/ data-title=\"Git Submodule: Already Exists in the Index\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/6550187/ data-title=\"Git Submodule: Already Exists in the Index\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/el-card-collapse/ class=post-nav-item rel=prev title=\"给 El-Card 添加折叠功能\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>给 El-Card 添加折叠功能</a><a href=/posts/20b75e9/ class=post-nav-item rel=next title=\"为什么很多教程中都有 Foo Bar？\">为什么很多教程中都有 Foo Bar？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#问题>问题</a></li><li><a href=#解决方法>解决方法</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/65501877c75fd5623c9ba3a5519c5d9a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/65501877c75fd5623c9ba3a5519c5d9a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/6550187/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/6550187/index.md",
    "content": "# Git Submodule: Already Exists in the Index\n\n\nGit 报错 \"git submodule: already exists in the index\" 的解决方法。\n\n<!--more-->\n\n## 问题\n\n在 [hugo-fixit/docs](https://github.com/hugo-fixit/docs.git)，里我增通过软连接的方式引入了 [hugo-fixit/FixIt](https://github.com/hugo-fixit/FixIt.git)，位于 `themes/FixIt` 目录下。\n\n然后为了把主题开发和主题文档分离（[#404](https://github.com/hugo-fixit/FixIt/issues/404)），我想通过 `git submodule` 的方式引入主题，于是我先把 `themes/FixIt` 目录删除，然后执行：\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n```\n\n结果报错：\n\n```bash\nfatal: 'themes/FixIt' already exists in the index\n```\n\n## 解决方法\n\n```bash\ngit rm -r --cached themes/FixIt\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/6550187/  \n\n"
  },
  {
    "path": "posts/900d5e4/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>记一次 Debug 第三方包的过程 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\n\"><meta name=keywords content='debug,Vue2,Vue3,TypeScript'><meta itemprop=name content=\"记一次 Debug 第三方包的过程\"><meta itemprop=description content=\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\"><meta itemprop=datePublished content=\"2024-01-17T14:57:48+08:00\"><meta itemprop=dateModified content=\"2024-01-18T12:59:43+08:00\"><meta itemprop=wordCount content=\"1228\"><meta itemprop=image content=\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\"><meta itemprop=keywords content=\"debug,Vue2,vue3,TypeScript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/900d5e4/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"记一次 Debug 第三方包的过程\"><meta property=\"og:description\" content=\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-01-17T14:57:48+08:00\"><meta property=\"article:modified_time\" content=\"2024-01-18T12:59:43+08:00\"><meta property=\"article:tag\" content=\"debug\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"vue3\"><meta property=\"article:tag\" content=\"TypeScript\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\"><meta name=twitter:title content=\"记一次 Debug 第三方包的过程\"><meta name=twitter:description content=\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/900d5e4/ title=\"记一次 Debug 第三方包的过程 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/20b75e9/ title=\"为什么很多教程中都有 foo bar？\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/kityminder-core/ title=强大的脑图可视化工具><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/900d5e4/index.md title=\"记一次 Debug 第三方包的过程 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"记一次 Debug 第三方包的过程\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/900d5e4\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/900d5e4\\/images\\/featured-image.png\",\"width\":2091,\"height\":530}],\"genre\":\"posts\",\"keywords\":\"debug, Vue2, Vue3, TypeScript\",\"wordcount\":1228,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/900d5e4\\/\",\"datePublished\":\"2024-01-17T14:57:48+08:00\",\"dateModified\":\"2024-01-18T12:59:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/900d5e4/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>记一次 Debug 第三方包的过程</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>记一次 Debug 第三方包的过程</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2024-01-17 14:57:48\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-01-17>2024-01-17</time></span>&nbsp;<span title=\"更新于 2024-01-18 12:59:43\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-01-18>2024-01-18</time></span>&nbsp;<span title=\"1228 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"记一次 Debug 第三方包的过程\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/900d5e4/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/900d5e4/images/featured-image.png height=530 width=2091></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#需求>需求</a></li><li><a href=#师必有名>师必有名</a></li><li><a href=#出师有名>出师有名</a></li><li><a href=#一招制敌>一招制敌</a></li><li><a href=#备用方案>备用方案</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-01-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 <a href=https://lruihao.github.io/vue-el-demo/#/code-diff target=_blank rel=\"external nofollow noopener noreferrer\">code diff demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=需求><span>1 需求</span>\n<a href=#%e9%9c%80%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>使用 <a href=https://github.com/Shimada666/v-code-diff target=_blank rel=\"external nofollow noopener noreferrer\">v-code-diff<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件，来开发一个接口请求结果比对的功能。</p><p>开发过程中，发现虽然它的 1.8.0 版本提供了具名插槽 <code>stat</code>，但是插槽并没有回传值，于是乎，看了一下它的源码，提了一个 PR 加了一个作用域，见 <a href=https://github.com/Shimada666/v-code-diff/pull/119 target=_blank rel=\"external nofollow noopener noreferrer\">Shimada666/v-code-diff#119<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，作者很快也就合并了。</p><p>这样就简化了原插槽的使用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>CodeDiff</span>\n</span></span><span class=line><span class=cl>  <span class=nt>:old-string</span><span class=o>=</span><span class=s>&#34;form.oldString&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>:new-string</span><span class=o>=</span><span class=s>&#34;form.newString&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>:language</span><span class=o>=</span><span class=s>&#34;form.language&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>:diff-style</span><span class=o>=</span><span class=s>&#34;form.diffStyle&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>template</span> <span class=err>#</span><span class=na>stat</span><span class=o>=</span><span class=s>&#34;{ stat }&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>span</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;diff-stat-added&#34;</span><span class=p>&gt;</span><span class=o>+</span><span class=p>{{</span> <span class=nx>stat</span><span class=p>.</span><span class=nx>additionsNum</span> <span class=p>}}</span> <span class=nx>增</span><span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>span</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;diff-stat-deleted&#34;</span><span class=p>&gt;</span><span class=o>-</span><span class=p>{{</span> <span class=nx>stat</span><span class=p>.</span><span class=nx>deletionsNum</span> <span class=p>}}</span> <span class=nx>减</span><span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>CodeDiff</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>但这只是完成需求路上的一个小插曲，真正的难点在于“比对结果时，支持关键词过滤的功能”，也就是如果比对结果中有包含关键词的行，则忽略该行的 diff。</p><h2 class=heading-element id=师必有名><span>2 师必有名</span>\n<a href=#%e5%b8%88%e5%bf%85%e6%9c%89%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>“赵若献璧，乃惧怕我邦，不难臣服；若是不献，再去征讨，方算出师有名。”</p><p>自古战事都讲究师必有名，其实在代码世界也一样，得考虑这个需求是否通用，不然即使提交 PR 给原作者，也大概率不会合并。我自己也有开源，如果遇到定制化很重的需求，往往只会以一个 <code>wontfix</code> 的标签收尾。</p><p>所以，我先去查了有没有类似的工具或者产品有过类似的需求。</p><p>很快就找到了 Linux 的 <code>diff</code> 指令的 <code>--ignore-matching-lines</code> 参数有类似的功能。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>diff file1.json file2.json --ignore-matching-lines<span class=o>=</span><span class=s2>&#34;time&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>上面的命令在比较两个文件时，会忽略包含 <code>time</code> 的行。</p><h2 class=heading-element id=出师有名><span>3 出师有名</span>\n<a href=#%e5%87%ba%e5%b8%88%e6%9c%89%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>既然有了参考，那么就可以开始动手了。</p><p>多的先不管，先把 <a href=https://github.com/Shimada666/v-code-diff target=_blank rel=\"external nofollow noopener noreferrer\">v-code-diff<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的源码拉下来运行起来。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone git@github.com:Shimada666/v-code-diff.git <span class=o>&amp;&amp;</span> <span class=nb>cd</span> v-code-diff</span></span></code></pre></td></tr></table></div></div></div><p>看了一眼是用 TypeScript 和 Vue3 的 Composition API 写的，这个我都不熟，不过没关系，先把它跑起来再说。</p><p>它的包管理器是 pnpm，那就先安装一下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm i -g pnpm</span></span></code></pre></td></tr></table></div></div></div><p>然后安装依赖：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm install</span></span></code></pre></td></tr></table></div></div></div><p>然后在 <code>package.json</code> 找一下启动命令：</p><json-viewer value='\"\\\"scripts\\\": {\\n  \\\"dev:2\\\": \\\"vue-demi-switch 2 vue2 \\u0026\\u0026 pnpm --filter vue2-playground dev\\\",\\n  \\\"dev:2.7\\\": \\\"vue-demi-switch 2.7 vue2 \\u0026\\u0026 pnpm --filter vue2.7-playground dev\\\",\\n  \\\"dev:3\\\": \\\"vue-demi-switch 3 vue3 \\u0026\\u0026 pnpm --filter vue3-playground dev\\\",\\n  \\\"dev:demo\\\": \\\"vue-demi-switch 3 vue3 \\u0026\\u0026 pnpm --filter demo dev\\\",\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>随便选一个运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm run dev:2</span></span></code></pre></td></tr></table></div></div></div><p>ok，顺利启动！</p><h2 class=heading-element id=一招制敌><span>4 一招制敌</span>\n<a href=#%e4%b8%80%e6%8b%9b%e5%88%b6%e6%95%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>然后开始阅读源码，寻找突破点。</p><p>two hours later&mldr;</p><p>经过一段时间阅读，虽然没有用过 TypeScript 以及 Composition API，但是对于读懂逻辑影响不大，很多就找到了突破口。</p><p>既然忽略关键词是为了让有差异的行不显示，那么正常的行就无需处理，只要找到有差异的行处理的阶段，然后加入关键词过滤的逻辑就可以了。</p><p>然后给 <code>CodeDiff</code> 组件新增一个 <code>ignoreMatchingLines</code> 属性，用于接收匹配忽略关键词的正则表达式。</p><p>最后简单测试一个在 Vue2.x、Vue2.7 以及 Vue3.x 的 demo，然后顺手把文档也完善一下，就可以提交 PR 给原作者了。详见 <a href=https://github.com/Shimada666/v-code-diff/pull/121 target=_blank rel=\"external nofollow noopener noreferrer\">Shimada666/v-code-diff#121<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>在等待了短暂几天后，原作者也是很快合并了 PR，并发布了新的版本 1.9.0，这样我们就可以在自己项目中升级使用了。</p><h2 class=heading-element id=备用方案><span>5 备用方案</span>\n<a href=#%e5%a4%87%e7%94%a8%e6%96%b9%e6%a1%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果作者觉得需求不妥，我们也可以 fork 一份，然后改名发包，或者只是简单的打包成一个 js 文件，然后放到自己的项目中使用。</p><h2 class=heading-element id=总结><span>6 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>磨刀不误砍柴工，磨刀的过程也是砍柴的过程，找到根本原因，才能事半功倍。</p><p>比如，VS Code 的开发团队在使用 Electron 开发 VS Code 时，发现 Electron 的功能并不足以满足 VS Code 的开发需求，他们也是先参与到 Electron 的开发中，完善 Electron 后再使用 Electron 开发 VS Code 的。</p><p>经常逛 GitHub，潜移默化中，我也养成了看源码的习惯，遇到 BUG 时先想的是 PR，然后再是 issue，今年还提交了一下其他的 PR。</p><ul><li><a href=https://github.com/mdn/translated-content/pull/15859 target=_blank rel=\"external nofollow noopener noreferrer\">mdn/translated-content#15859<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/SchemaStore/schemastore/pull/3411 target=_blank rel=\"external nofollow noopener noreferrer\">SchemaStore/schemastore#3411<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/SchemaStore/schemastore/pull/3420 target=_blank rel=\"external nofollow noopener noreferrer\">SchemaStore/schemastore#3420<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/SchemaStore/schemastore/pull/3463 target=_blank rel=\"external nofollow noopener noreferrer\">SchemaStore/schemastore#3463<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-01-18 12:59:43\">更新于 2024-01-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/dd392a783ff06e7757405849d4bcd63dee159018 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: fix typo&#10&#10Commit: dd392a783ff06e7757405849d4bcd63dee159018 [dd392a7]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-01-18 12:59:43&#10Commit Date: 2024-02-09 14:03:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>dd392a7</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/900d5e4/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/v-code-diff/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/v-code-diff/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AE%B0%E4%B8%80%E6%AC%A1+Debug+%E7%AC%AC%E4%B8%89%E6%96%B9%E5%8C%85%E7%9A%84%E8%BF%87%E7%A8%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AE%B0%E4%B8%80%E6%AC%A1+Debug+%E7%AC%AC%E4%B8%89%E6%96%B9%E5%8C%85%E7%9A%84%E8%BF%87%E7%A8%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/900d5e4/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/v-code-diff/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/900d5e4/ data-title=\"记一次 Debug 第三方包的过程\" data-hashtags=debug,Vue2,Vue3,TypeScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/900d5e4/ data-hashtag=debug><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/900d5e4/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/900d5e4/ data-title=\"记一次 Debug 第三方包的过程\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/900d5e4/ data-title=\"记一次 Debug 第三方包的过程\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/debug/ class=post-tag title=\"标签 - debug\">debug</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/vue3/ class=post-tag title=\"标签 - vue3\">vue3</a><a href=/tags/typescript/ class=post-tag title=\"标签 - TypeScript\">TypeScript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/20b75e9/ class=post-nav-item rel=prev title=\"为什么很多教程中都有 Foo Bar？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>为什么很多教程中都有 Foo Bar？</a><a href=/projects/lruihao/kityminder-core/ class=post-nav-item rel=next title=Lruihao/kityminder-core>Lruihao/kityminder-core<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#需求>需求</a></li><li><a href=#师必有名>师必有名</a></li><li><a href=#出师有名>出师有名</a></li><li><a href=#一招制敌>一招制敌</a></li><li><a href=#备用方案>备用方案</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6e630006d7d1732df7885c17566d2d56.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6e630006d7d1732df7885c17566d2d56.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/900d5e4/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/900d5e4/index.md",
    "content": "# 记一次 Debug 第三方包的过程\n\n\n在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 [code diff demo](https://lruihao.github.io/vue-el-demo/#/code-diff)。\n\n<!--more-->\n\n## 需求\n\n使用 [v-code-diff](https://github.com/Shimada666/v-code-diff) 组件，来开发一个接口请求结果比对的功能。\n\n开发过程中，发现虽然它的 1.8.0 版本提供了具名插槽 `stat`，但是插槽并没有回传值，于是乎，看了一下它的源码，提了一个 PR 加了一个作用域，见 [Shimada666/v-code-diff#119](https://github.com/Shimada666/v-code-diff/pull/119)，作者很快也就合并了。\n\n这样就简化了原插槽的使用：\n\n```vue\n<CodeDiff\n  :old-string=\"form.oldString\"\n  :new-string=\"form.newString\"\n  :language=\"form.language\"\n  :diff-style=\"form.diffStyle\"\n>\n  <template #stat=\"{ stat }\">\n    <span class=\"diff-stat-added\">+{{ stat.additionsNum }} 增</span>\n    <span class=\"diff-stat-deleted\">-{{ stat.deletionsNum }} 减</span>\n  </template>\n</CodeDiff>\n```\n\n但这只是完成需求路上的一个小插曲，真正的难点在于“比对结果时，支持关键词过滤的功能”，也就是如果比对结果中有包含关键词的行，则忽略该行的 diff。\n\n## 师必有名\n\n“赵若献璧，乃惧怕我邦，不难臣服；若是不献，再去征讨，方算出师有名。”\n\n自古战事都讲究师必有名，其实在代码世界也一样，得考虑这个需求是否通用，不然即使提交 PR 给原作者，也大概率不会合并。我自己也有开源，如果遇到定制化很重的需求，往往只会以一个 `wontfix` 的标签收尾。\n\n所以，我先去查了有没有类似的工具或者产品有过类似的需求。\n\n很快就找到了 Linux 的 `diff` 指令的 `--ignore-matching-lines` 参数有类似的功能。\n\n```bash\ndiff file1.json file2.json --ignore-matching-lines=\"time\"\n```\n\n上面的命令在比较两个文件时，会忽略包含 `time` 的行。\n\n## 出师有名\n\n既然有了参考，那么就可以开始动手了。\n\n多的先不管，先把 [v-code-diff](https://github.com/Shimada666/v-code-diff) 的源码拉下来运行起来。\n\n```bash\ngit clone git@github.com:Shimada666/v-code-diff.git && cd v-code-diff\n```\n\n看了一眼是用 TypeScript 和 Vue3 的 Composition API 写的，这个我都不熟，不过没关系，先把它跑起来再说。\n\n它的包管理器是 pnpm，那就先安装一下：\n\n```bash\nnpm i -g pnpm\n```\n\n然后安装依赖：\n\n```bash\npnpm install\n```\n\n然后在 `package.json` 找一下启动命令：\n\n```json\n\"scripts\": {\n  \"dev:2\": \"vue-demi-switch 2 vue2 && pnpm --filter vue2-playground dev\",\n  \"dev:2.7\": \"vue-demi-switch 2.7 vue2 && pnpm --filter vue2.7-playground dev\",\n  \"dev:3\": \"vue-demi-switch 3 vue3 && pnpm --filter vue3-playground dev\",\n  \"dev:demo\": \"vue-demi-switch 3 vue3 && pnpm --filter demo dev\",\n}\n```\n\n随便选一个运行：\n\n```bash\nnpm run dev:2\n```\n\nok，顺利启动！\n\n## 一招制敌\n\n然后开始阅读源码，寻找突破点。\n\ntwo hours later...\n\n经过一段时间阅读，虽然没有用过 TypeScript 以及 Composition API，但是对于读懂逻辑影响不大，很多就找到了突破口。\n\n既然忽略关键词是为了让有差异的行不显示，那么正常的行就无需处理，只要找到有差异的行处理的阶段，然后加入关键词过滤的逻辑就可以了。\n\n然后给 `CodeDiff` 组件新增一个 `ignoreMatchingLines` 属性，用于接收匹配忽略关键词的正则表达式。\n\n最后简单测试一个在 Vue2.x、Vue2.7 以及 Vue3.x 的 demo，然后顺手把文档也完善一下，就可以提交 PR 给原作者了。详见 [Shimada666/v-code-diff#121](https://github.com/Shimada666/v-code-diff/pull/121)。\n\n在等待了短暂几天后，原作者也是很快合并了 PR，并发布了新的版本 1.9.0，这样我们就可以在自己项目中升级使用了。\n\n## 备用方案\n\n如果作者觉得需求不妥，我们也可以 fork 一份，然后改名发包，或者只是简单的打包成一个 js 文件，然后放到自己的项目中使用。\n\n## 总结\n\n磨刀不误砍柴工，磨刀的过程也是砍柴的过程，找到根本原因，才能事半功倍。\n\n比如，VS Code 的开发团队在使用 Electron 开发 VS Code 时，发现 Electron 的功能并不足以满足 VS Code 的开发需求，他们也是先参与到 Electron 的开发中，完善 Electron 后再使用 Electron 开发 VS Code 的。\n\n经常逛 GitHub，潜移默化中，我也养成了看源码的习惯，遇到 BUG 时先想的是 PR，然后再是 issue，今年还提交了一下其他的 PR。\n\n- [mdn/translated-content#15859](https://github.com/mdn/translated-content/pull/15859)\n- [SchemaStore/schemastore#3411](https://github.com/SchemaStore/schemastore/pull/3411)\n- [SchemaStore/schemastore#3420](https://github.com/SchemaStore/schemastore/pull/3420)\n- [SchemaStore/schemastore#3463](https://github.com/SchemaStore/schemastore/pull/3463)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/900d5e4/  \n\n"
  },
  {
    "path": "posts/91db0fa/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Amazon 如何让服务器享受着持续集群安全？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 在这个网络信息化时代，你真的注重安全性吗？ 常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？\n难以确定修复的优先级？不知道该先修复哪个漏洞？\n你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。\n\"><meta name=keywords content='AWS'><meta itemprop=name content=\"Amazon 如何让服务器享受着持续集群安全？\"><meta itemprop=description content=\"在这个网络信息化时代，你真的注重安全性吗？ 常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？\n难以确定修复的优先级？不知道该先修复哪个漏洞？\n你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。\"><meta itemprop=datePublished content=\"2024-11-22T14:01:18+08:00\"><meta itemprop=dateModified content=\"2024-12-07T01:20:02+08:00\"><meta itemprop=wordCount content=\"1794\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"AWS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/91db0fa/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Amazon 如何让服务器享受着持续集群安全？\"><meta property=\"og:description\" content=\"在这个网络信息化时代，你真的注重安全性吗？ 常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？\n难以确定修复的优先级？不知道该先修复哪个漏洞？\n你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-11-22T14:01:18+08:00\"><meta property=\"article:modified_time\" content=\"2024-12-07T01:20:02+08:00\"><meta property=\"article:tag\" content=\"AWS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Amazon 如何让服务器享受着持续集群安全？\"><meta name=twitter:description content=\"在这个网络信息化时代，你真的注重安全性吗？ 常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？\n难以确定修复的优先级？不知道该先修复哪个漏洞？\n你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/91db0fa/ title=\"Amazon 如何让服务器享受着持续集群安全？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ title=\"🐟 A canvas implemented animation effect of small fish swimming.\"><link rel=next type=text/html href=https://lruihao.cn/search/ title=搜索><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/91db0fa/index.md title=\"Amazon 如何让服务器享受着持续集群安全？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Amazon 如何让服务器享受着持续集群安全？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/91db0fa\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"AWS\",\"wordcount\":1794,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/91db0fa\\/\",\"datePublished\":\"2024-11-22T14:01:18+08:00\",\"dateModified\":\"2024-12-07T01:20:02+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/91db0fa/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href title=个人博客接的一些广子。>$</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Amazon Inspector</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Amazon 如何让服务器享受着持续集群安全？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/aws/ class=post-collection title=\"合集 - AWS\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> AWS</a></span></div><div class=post-meta-line><span title=\"发布于 2024-11-22 14:01:18\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-11-22>2024-11-22</time></span>&nbsp;<span title=\"更新于 2024-12-07 01:20:02\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-12-07>2024-12-07</time></span>&nbsp;<span title=\"1794 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Amazon 如何让服务器享受着持续集群安全？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#了解-amazon-inspector>了解 Amazon Inspector</a></li><li><a href=#它能做些什么>它能做些什么？</a></li><li><a href=#开始使用-amazon-inspector>开始使用 Amazon Inspector</a><ol><li><a href=#register-aws>注册亚马逊云科技账户</a></li><li><a href=#激活-amazon-inspector>激活 Amazon Inspector</a></li><li><a href=#设定哪些-esc-需要扫描>设定哪些 ESC 需要扫描</a></li><li><a href=#补丁筛选>补丁筛选</a></li><li><a href=#扫描结果分析统计>扫描结果分析统计</a></li><li><a href=#定时使用-lambda-函数生成安全报告>定时使用 Lambda 函数生成安全报告</a></li><li><a href=#创建新的-cis-扫描>创建新的 CIS 扫描</a></li></ol></li><li><a href=#费用相关>费用相关</a></li><li><a href=#使用心得>使用心得</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-12-07，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=（本篇完）><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>在这个网络信息化时代，你真的注重安全性吗？<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？</p><p>难以确定修复的优先级？不知道该先修复哪个漏洞？</p></div></div></div><p>你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。</p><h2 class=heading-element id=了解-amazon-inspector><span>1 了解 Amazon Inspector</span>\n<a href=#%e4%ba%86%e8%a7%a3-amazon-inspector class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Amazon Inspector 可以自动发现工作负载，例如 Amazon EC2 实例、容器和 Lambda 函数，并扫描它们是否存在软件漏洞和意外的网络暴露，是一项自动化持续漏洞扫描服务，用于在 Amazon ECR 中以及持续集成和持续交付（CI/CD）工具内评测 Amazon Elastic Compute Cloud（EC2）实例、Amazon Lambda 函数和容器镜像以提高基础设施工作负载的安全性和合规性。</p><h2 class=heading-element id=它能做些什么><span>2 它能做些什么？</span>\n<a href=#%e5%ae%83%e8%83%bd%e5%81%9a%e4%ba%9b%e4%bb%80%e4%b9%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>在开发周期的早期阶段纳入安全性，并集中管理所有受监控资源的软件物料清单 (SBOM) 导出。</li><li>近乎实时地检测亚马逊 ECR 和持续集成与持续交付 (CI/CD) 工具中的 Amazon EC2、Amazon Lambda 函数和容器映像等亚马逊云服务工作负载中的软件漏洞和意外网络暴露。</li><li>使用 Amazon Inspector 风险评分来确定修复的优先级，缩短平均修复时间 (MTTR)。</li><li>无缝扫描 EC2 实例，在基于代理和无代理的扫描之间切换。</li><li>通过 Amazon Inspector 扫描支持 NIST CSF、PCI DSS 和其他法规的合规性要求和最佳实践。</li></ul><p>以上只是 Amazon Inspector 一些最基本的能力，还有一些更优秀的功能，甚至让许多网安从业人员感到心动和震惊：</p><ul><li><p>利用超过 50 个漏洞情报来源，自动发现漏洞、加快漏洞路由并缩短 MTTR。</p></li><li><p>使用当前的常见漏洞和暴露（CVE）信息和网络可访问性来创建情境风险评分，以确定易受攻击资源的优先级并加以解决。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241121192852886.webp title=image-20241121192852886 data-thumbnail=/posts/91db0fa/images/image-20241121192852886.webp data-sub-html=\"<h2>image-20241121192852886</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241121192852886.webp alt=image-20241121192852886 height=1114 width=2320></a></p></li><li><p>在开发人员工具中嵌入漏洞扫描，并导出合并 SBOM 以获取监测资源。</p></li><li><p><strong>Amazon Lambda 标准扫描</strong>：持续评测每个已部署的 Lambda 函数是否存在软件包漏洞。每月总成本基于每月扫描的 Lambda 函数的平均数量。价格根据一个月内 Lambda 函数的 Amazon Inspector 覆盖小时总数（从函数被 Amazon Inspector 发现到函数被删除或从扫描中排除的小时数）按比例分配。</p></li><li><p>扫描后报告中有严重性评判标准（在你的 Amazon EC2 实例中存在已识别的新 CVE，该 CVE 只能远程使用。如果 Amazon Inspector 持续网络可达性扫描还发现无法通过网络访问该实例，Amazon Inspector 就会发现漏洞的利用性太低。因此，Amazon Inspector 将扫描结果与 CVE 相关联，以向下调整风险评分，更准确地反映 CVE 对该特定实例的影响。）：</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120203747459.webp title=image-20241120203747459 data-thumbnail=/posts/91db0fa/images/image-20241120203747459.webp data-sub-html=\"<h2>image-20241120203747459</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120203747459.webp alt=image-20241120203747459 height=472 width=674></a></p></li></ul><h2 class=heading-element id=开始使用-amazon-inspector><span>3 开始使用 Amazon Inspector</span>\n<a href=#%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8-amazon-inspector class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=register-aws><span>3.1 注册亚马逊云科技账户</span>\n<a href=#register-aws class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>要使用 Amazon Inspector，你需要一个亚马逊云科技账户，如果你没有账户，系统会提示你在注册 Amazon Inspector 时创建一个。在你使用 Amazon Inspector 之前，系统不会向你收取费用。</p><p>打开 <a href=\"https://aws.amazon.com/cn/free/?trk=997abc29-fa8e-41bf-afa1-da66c3de023b&amp;sc_channel=sm&amp;campaign=blog1432\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊云科技账号注册地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，点击右上角创建亚马逊云科技账户。</p><p><a class=lightgallery target=_blank href=/images/remote/23_1693042834_17610551993315334347.png title=\"创建 Amazon 账户\" data-thumbnail=/images/remote/23_1693042834_17610551993315334347.png data-sub-html=\"<h2>创建 Amazon 账户</h2>\"><img loading=lazy src=/images/remote/23_1693042834_17610551993315334347.png alt=\"创建 Amazon 账户\" height=190 width=1100></a></p><ol><li>填写邮件地址和账号名称（支持使用国内的邮箱）<br><a class=lightgallery target=_blank href=/images/remote/23_1693043425_11478102140858811333.png title=login data-thumbnail=/images/remote/23_1693043425_11478102140858811333.png data-sub-html=\"<h2>login</h2>\"><img loading=lazy src=/images/remote/23_1693043425_11478102140858811333.png alt=login height=1058 width=1754></a></li><li>验证邮件<br><a class=lightgallery target=_blank href=/images/remote/23_1693043626_17535622443610006994.png title=valid data-thumbnail=/images/remote/23_1693043626_17535622443610006994.png data-sub-html=\"<h2>valid</h2>\"><img loading=lazy src=/images/remote/23_1693043626_17535622443610006994.png alt=valid height=841 width=1603></a></li><li>输入密码<br><a class=lightgallery target=_blank href=/images/remote/23_1693043910_11457777203975392702.png title=password data-thumbnail=/images/remote/23_1693043910_11457777203975392702.png data-sub-html=\"<h2>password</h2>\"><img loading=lazy src=/images/remote/23_1693043910_11457777203975392702.png alt=password height=1002 width=1490></a></li><li>联系人信息<br><a class=lightgallery target=_blank href=/images/remote/23_1693044220_13800658647148752280.png title=contact data-thumbnail=/images/remote/23_1693044220_13800658647148752280.png data-sub-html=\"<h2>contact</h2>\"><img loading=lazy src=/images/remote/23_1693044220_13800658647148752280.png alt=contact height=1204 width=938></a></li><li>付款信息<br>接受所有主要信用卡和借记卡（包括 Visa、MasterCard 和 银联信用卡等）<br><a class=lightgallery target=_blank href=/images/remote/24_1720665206_18177136821762331842.webp title=payment-ways data-thumbnail=/images/remote/24_1720665206_18177136821762331842.webp data-sub-html=\"<h2>payment-ways</h2>\"><img loading=lazy src=/images/remote/24_1720665206_18177136821762331842.webp alt=payment-ways height=110 width=926></a>\n<a class=lightgallery target=_blank href=/images/remote/23_1693044537_12914390228998955445.png title=payment data-thumbnail=/images/remote/23_1693044537_12914390228998955445.png data-sub-html=\"<h2>payment</h2>\"><img loading=lazy src=/images/remote/23_1693044537_12914390228998955445.png alt=payment height=1180 width=1454></a></li><li>验证手机号（支持中国地区国内手机号）<br><a class=lightgallery target=_blank href=/images/remote/23_1693044806_12155413024896811585.png title=phone data-thumbnail=/images/remote/23_1693044806_12155413024896811585.png data-sub-html=\"<h2>phone</h2>\"><img loading=lazy src=/images/remote/23_1693044806_12155413024896811585.png alt=phone height=1052 width=974></a></li><li>选择支持计划<br><a class=lightgallery target=_blank href=/images/remote/23_1693045029_4682032809423430520.png title=plan data-thumbnail=/images/remote/23_1693045029_4682032809423430520.png data-sub-html=\"<h2>plan</h2>\"><img loading=lazy src=/images/remote/23_1693045029_4682032809423430520.png alt=plan height=1326 width=1308></a></li><li>完成注册<br><a class=lightgallery target=_blank href=/images/remote/23_1693045100_15388992423973593492.png title=complete data-thumbnail=/images/remote/23_1693045100_15388992423973593492.png data-sub-html=\"<h2>complete</h2>\"><img loading=lazy src=/images/remote/23_1693045100_15388992423973593492.png alt=complete height=754 width=1136></a></li><li>登录亚马逊云科技控制台，<a href=\"https://console.aws.amazon.com/console/home?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">登录地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。</li></ol><h3 class=heading-element id=激活-amazon-inspector><span>3.2 激活 Amazon Inspector</span>\n<a href=#%e6%bf%80%e6%b4%bb-amazon-inspector class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>我们注册之后，在激活页面对产品进行激活使用。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241121192006383.webp title=image-20241121192006383 data-thumbnail=/posts/91db0fa/images/image-20241121192006383.webp data-sub-html=\"<h2>image-20241121192006383</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241121192006383.webp alt=image-20241121192006383 height=578 width=2318></a></p><h3 class=heading-element id=设定哪些-esc-需要扫描><span>3.3 设定哪些 ESC 需要扫描</span>\n<a href=#%e8%ae%be%e5%ae%9a%e5%93%aa%e4%ba%9b-esc-%e9%9c%80%e8%a6%81%e6%89%ab%e6%8f%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 Scanning configuration 界面中，第一个选项为扫描类型（基础、增强）并且可以添加以标签为索引的服务器 ESC。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120204830625.webp title=image-20241120204830625 data-thumbnail=/posts/91db0fa/images/image-20241120204830625.webp data-sub-html=\"<h2>image-20241120204830625</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120204830625.webp alt=image-20241120204830625 height=1178 width=1334></a></p><h3 class=heading-element id=补丁筛选><span>3.4 补丁筛选</span>\n<a href=#%e8%a1%a5%e4%b8%81%e7%ad%9b%e9%80%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 Findings 界面中，我们可以看到 CVE 漏洞编号以及每个漏洞对应的时间和安全性质，在图中对活动状态进行筛选。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120204935440.webp title=image-20241120204935440 data-thumbnail=/posts/91db0fa/images/image-20241120204935440.webp data-sub-html=\"<h2>image-20241120204935440</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120204935440.webp alt=image-20241120204935440 height=870 width=1368></a></p><h3 class=heading-element id=扫描结果分析统计><span>3.5 扫描结果分析统计</span>\n<a href=#%e6%89%ab%e6%8f%8f%e7%bb%93%e6%9e%9c%e5%88%86%e6%9e%90%e7%bb%9f%e8%ae%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在结果页面中，可以按不同类型参数进行筛选，并且还可以额外添加筛选条件，点击实例即可查看该实例对漏洞信息。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120205120012.webp title=image-20241120205120012 data-thumbnail=/posts/91db0fa/images/image-20241120205120012.webp data-sub-html=\"<h2>image-20241120205120012</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120205120012.webp alt=image-20241120205120012 height=684 width=1390></a></p><h3 class=heading-element id=定时使用-lambda-函数生成安全报告><span>3.6 定时使用 Lambda 函数生成安全报告</span>\n<a href=#%e5%ae%9a%e6%97%b6%e4%bd%bf%e7%94%a8-lambda-%e5%87%bd%e6%95%b0%e7%94%9f%e6%88%90%e5%ae%89%e5%85%a8%e6%8a%a5%e5%91%8a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 Lambda 界面中，可以添加新规则或修改现有规则，添加计划安全任务并生成报告。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120205233244.webp title=image-20241120205233244 data-thumbnail=/posts/91db0fa/images/image-20241120205233244.webp data-sub-html=\"<h2>image-20241120205233244</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120205233244.webp alt=image-20241120205233244 height=1158 width=1358></a></p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241120205304160.webp title=image-20241120205304160 data-thumbnail=/posts/91db0fa/images/image-20241120205304160.webp data-sub-html=\"<h2>image-20241120205304160</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241120205304160.webp alt=image-20241120205304160 height=752 width=1368></a></p><h3 class=heading-element id=创建新的-cis-扫描><span>3.7 创建新的 CIS 扫描</span>\n<a href=#%e5%88%9b%e5%bb%ba%e6%96%b0%e7%9a%84-cis-%e6%89%ab%e6%8f%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241121192650957.webp title=image-20241121192650957 data-thumbnail=/posts/91db0fa/images/image-20241121192650957.webp data-sub-html=\"<h2>image-20241121192650957</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241121192650957.webp alt=image-20241121192650957 height=1406 width=1590></a></p><h2 class=heading-element id=费用相关><span>4 费用相关</span>\n<a href=#%e8%b4%b9%e7%94%a8%e7%9b%b8%e5%85%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先，它支持 15 天<strong>免费</strong>试用，你只需按实际使用量付费，没有最低费用，也没有预先承诺。</p><p><a class=lightgallery target=_blank href=/posts/91db0fa/images/image-20241121192436605.webp title=image-20241121192436605 data-thumbnail=/posts/91db0fa/images/image-20241121192436605.webp data-sub-html=\"<h2>image-20241121192436605</h2>\"><img loading=lazy src=/posts/91db0fa/images/image-20241121192436605.webp alt=image-20241121192436605 height=908 width=2262></a></p><blockquote><p><strong>注意</strong>：每个帐户可一次性免费使用 <strong>25</strong> 次映像评测。</p></blockquote><h2 class=heading-element id=使用心得><span>5 使用心得</span>\n<a href=#%e4%bd%bf%e7%94%a8%e5%bf%83%e5%be%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>经过使用 Amazon Inspector 服务，我有以下几点心得体会：</p><ul><li>会一键式入门、集中控制和操作可见性简化了操作，自动重新扫描实例，验证没有引入新的漏洞，这些都是自动化，让我们省不少事情。</li><li>会发现我们所有的工作负载，持续扫描它们，在其控制台中整合优先发现列表，并通过近乎即时通知新的严重漏洞来缩短我们的平均修复时间。</li><li>该服务发现我们所有的工作负载，使用来自多个漏洞通知源的数据持续扫描它们，在其控制台中整合优先发现列表，并让我们专注于漏洞修复，而不是管理多个发现工具和配置。</li></ul><p>安全是重中之重之事，实时预警与加强管控，有效安全防护与定期安全检查。</p><p>立即访问<a href=\"https://aws.amazon.com/cn/free/?trk=997abc29-fa8e-41bf-afa1-da66c3de023b&amp;sc_channel=sm&amp;campaign=blog1432\" target=_blank rel=\"external nofollow noopener noreferrer\">免费试用页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，开始你的亚马逊云科技云服务安全之旅吧！</p></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/aws/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・AWS</span></span></a> 5</div><div class=collection-nav><a href=/posts/d1fc0c7/ class=collection-nav-item rel=prev title=\"Amazon S3\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Amazon S3</span></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-12-07 01:20:02\">更新于 2024-12-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整 sections 批量参数&#10&#10Commit: d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 [d2d1d9d]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-07 01:20:02&#10Commit Date: 2024-12-07 01:25:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d2d1d9d</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/91db0fa/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/91db0fa/ data-title=\"Amazon 如何让服务器享受着持续集群安全？\" data-hashtags=AWS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/91db0fa/ data-hashtag=AWS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/91db0fa/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/91db0fa/ data-title=\"Amazon 如何让服务器享受着持续集群安全？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/91db0fa/ data-title=\"Amazon 如何让服务器享受着持续集群安全？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/aws/ class=post-tag title=\"标签 - AWS\">AWS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/cmpt-flyfish/ class=post-nav-item rel=prev title=hugo-fixit/cmpt-flyfish><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/cmpt-flyfish</a><a href=/projects/hugo-fixit/cmpt-translate/ class=post-nav-item rel=next title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#了解-amazon-inspector>了解 Amazon Inspector</a></li><li><a href=#它能做些什么>它能做些什么？</a></li><li><a href=#开始使用-amazon-inspector>开始使用 Amazon Inspector</a><ol><li><a href=#register-aws>注册亚马逊云科技账户</a></li><li><a href=#激活-amazon-inspector>激活 Amazon Inspector</a></li><li><a href=#设定哪些-esc-需要扫描>设定哪些 ESC 需要扫描</a></li><li><a href=#补丁筛选>补丁筛选</a></li><li><a href=#扫描结果分析统计>扫描结果分析统计</a></li><li><a href=#定时使用-lambda-函数生成安全报告>定时使用 Lambda 函数生成安全报告</a></li><li><a href=#创建新的-cis-扫描>创建新的 CIS 扫描</a></li></ol></li><li><a href=#费用相关>费用相关</a></li><li><a href=#使用心得>使用心得</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/91db0fa13e5e2065c1c8b336b86fc4c5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/91db0fa13e5e2065c1c8b336b86fc4c5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/91db0fa/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/91db0fa/index.md",
    "content": "# Amazon 如何让服务器享受着持续集群安全？\n\n\n> [!question]+ 在这个网络信息化时代，你真的注重安全性吗？\n> 常常担心服务器遭受黑客攻击，服务器集群防御措施难以统一化管理？\n>\n> 难以确定修复的优先级？不知道该先修复哪个漏洞？\n\n你是否也有过诸如此类的困扰？不要慌，同学们，在亚马逊云科技中，有一个契合的服务工具能帮助到你，它就是 Amazon Inspector。\n\n<!--more-->\n\n## 了解 Amazon Inspector\n\nAmazon Inspector 可以自动发现工作负载，例如 Amazon EC2 实例、容器和 Lambda 函数，并扫描它们是否存在软件漏洞和意外的网络暴露，是一项自动化持续漏洞扫描服务，用于在 Amazon ECR 中以及持续集成和持续交付（CI/CD）工具内评测 Amazon Elastic Compute Cloud（EC2）实例、Amazon Lambda 函数和容器镜像以提高基础设施工作负载的安全性和合规性。\n\n## 它能做些什么？\n\n- 在开发周期的早期阶段纳入安全性，并集中管理所有受监控资源的软件物料清单 (SBOM) 导出。\n- 近乎实时地检测亚马逊 ECR 和持续集成与持续交付 (CI/CD) 工具中的 Amazon EC2、Amazon Lambda 函数和容器映像等亚马逊云服务工作负载中的软件漏洞和意外网络暴露。\n- 使用 Amazon Inspector 风险评分来确定修复的优先级，缩短平均修复时间 (MTTR)。\n- 无缝扫描 EC2 实例，在基于代理和无代理的扫描之间切换。\n- 通过 Amazon Inspector 扫描支持 NIST CSF、PCI DSS 和其他法规的合规性要求和最佳实践。\n\n以上只是 Amazon Inspector 一些最基本的能力，还有一些更优秀的功能，甚至让许多网安从业人员感到心动和震惊：\n\n- 利用超过 50 个漏洞情报来源，自动发现漏洞、加快漏洞路由并缩短 MTTR。\n- 使用当前的常见漏洞和暴露（CVE）信息和网络可访问性来创建情境风险评分，以确定易受攻击资源的优先级并加以解决。\n\n    ![image-20241121192852886](images/image-20241121192852886.webp)\n\n- 在开发人员工具中嵌入漏洞扫描，并导出合并 SBOM 以获取监测资源。\n- **Amazon Lambda 标准扫描**：持续评测每个已部署的 Lambda 函数是否存在软件包漏洞。每月总成本基于每月扫描的 Lambda 函数的平均数量。价格根据一个月内 Lambda 函数的 Amazon Inspector 覆盖小时总数（从函数被 Amazon Inspector 发现到函数被删除或从扫描中排除的小时数）按比例分配。\n- 扫描后报告中有严重性评判标准（在你的 Amazon EC2 实例中存在已识别的新 CVE，该 CVE 只能远程使用。如果 Amazon Inspector 持续网络可达性扫描还发现无法通过网络访问该实例，Amazon Inspector 就会发现漏洞的利用性太低。因此，Amazon Inspector 将扫描结果与 CVE 相关联，以向下调整风险评分，更准确地反映 CVE 对该特定实例的影响。）：\n\n    ![image-20241120203747459](images/image-20241120203747459.webp)\n\n## 开始使用 Amazon Inspector\n\n### 注册亚马逊云科技账户 {#register-aws}\n\n要使用 Amazon Inspector，你需要一个亚马逊云科技账户，如果你没有账户，系统会提示你在注册 Amazon Inspector 时创建一个。在你使用 Amazon Inspector 之前，系统不会向你收取费用。\n\n打开 [亚马逊云科技账号注册地址][trial-url]，点击右上角创建亚马逊云科技账户。\n\n![创建 Amazon 账户](https://lruihao.cn/posts/aws-ec2/images/23_1693042834.png)\n\n1. 填写邮件地址和账号名称（支持使用国内的邮箱）\\\n   ![login](https://lruihao.cn/posts/aws-ec2/images/23_1693043425.png)\n2. 验证邮件\\\n   ![valid](https://lruihao.cn/posts/aws-ec2/images/23_1693043626.png)\n3. 输入密码\\\n   ![password](https://lruihao.cn/posts/aws-ec2/images/23_1693043910.png)\n4. 联系人信息\\\n   ![contact](https://lruihao.cn/posts/aws-ec2/images/23_1693044220.png)\n5. 付款信息\\\n   接受所有主要信用卡和借记卡（包括 Visa、MasterCard 和 银联信用卡等）\\\n   ![payment-ways](https://lruihao.cn/posts/d1fc0c7/images/24_1720665206.webp)\n   ![payment](https://lruihao.cn/posts/aws-ec2/images/23_1693044537.png)\n6. 验证手机号（支持中国地区国内手机号）\\\n   ![phone](https://lruihao.cn/posts/aws-ec2/images/23_1693044806.png)\n7. 选择支持计划\\\n   ![plan](https://lruihao.cn/posts/aws-ec2/images/23_1693045029.png)\n8. 完成注册\\\n   ![complete](https://lruihao.cn/posts/aws-ec2/images/23_1693045100.png)\n9. 登录亚马逊云科技控制台，[登录地址](https://console.aws.amazon.com/console/home?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&sc_channel=sm&campaign=blog1352)，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。\n\n### 激活 Amazon Inspector\n\n我们注册之后，在激活页面对产品进行激活使用。\n\n![image-20241121192006383](images/image-20241121192006383.webp)\n\n### 设定哪些 ESC 需要扫描\n\n在 Scanning configuration 界面中，第一个选项为扫描类型（基础、增强）并且可以添加以标签为索引的服务器 ESC。\n\n![image-20241120204830625](images/image-20241120204830625.webp)\n\n### 补丁筛选\n\n在 Findings 界面中，我们可以看到 CVE 漏洞编号以及每个漏洞对应的时间和安全性质，在图中对活动状态进行筛选。\n\n![image-20241120204935440](images/image-20241120204935440.webp)\n\n### 扫描结果分析统计\n\n在结果页面中，可以按不同类型参数进行筛选，并且还可以额外添加筛选条件，点击实例即可查看该实例对漏洞信息。\n\n![image-20241120205120012](images/image-20241120205120012.webp)\n\n### 定时使用 Lambda 函数生成安全报告\n\n在 Lambda 界面中，可以添加新规则或修改现有规则，添加计划安全任务并生成报告。\n\n![image-20241120205233244](images/image-20241120205233244.webp)\n\n![image-20241120205304160](images/image-20241120205304160.webp)\n\n### 创建新的 CIS 扫描\n\n![image-20241121192650957](images/image-20241121192650957.webp)\n\n## 费用相关\n\n首先，它支持 15 天**免费**试用，你只需按实际使用量付费，没有最低费用，也没有预先承诺。\n\n![image-20241121192436605](images/image-20241121192436605.webp)\n\n> **注意**：每个帐户可一次性免费使用 **25** 次映像评测。\n\n## 使用心得\n\n经过使用 Amazon Inspector 服务，我有以下几点心得体会：\n\n- 会一键式入门、集中控制和操作可见性简化了操作，自动重新扫描实例，验证没有引入新的漏洞，这些都是自动化，让我们省不少事情。\n- 会发现我们所有的工作负载，持续扫描它们，在其控制台中整合优先发现列表，并通过近乎即时通知新的严重漏洞来缩短我们的平均修复时间。\n- 该服务发现我们所有的工作负载，使用来自多个漏洞通知源的数据持续扫描它们，在其控制台中整合优先发现列表，并让我们专注于漏洞修复，而不是管理多个发现工具和配置。\n\n安全是重中之重之事，实时预警与加强管控，有效安全防护与定期安全检查。\n\n立即访问[免费试用页面][trial-url]，开始你的亚马逊云科技云服务安全之旅吧！\n\n<!-- link reference definition -->\n[trial-url]: https://aws.amazon.com/cn/free/?trk=997abc29-fa8e-41bf-afa1-da66c3de023b&sc_channel=sm&campaign=blog1432\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/91db0fa/  \n\n"
  },
  {
    "path": "posts/a-easy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A.Easy H-Index | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,&mldr;,an which means Bobo has published ai papers with\nitations exactly i, ﬁnd the h-index of Bobo.\n\"><meta name=keywords content='2018 湘潭邀请赛,ACM,C++'><meta itemprop=name content=\"A.Easy h-index\"><meta itemprop=description content=\"1 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with\nitations exactly i, ﬁnd the h-index of Bobo.\"><meta itemprop=datePublished content=\"2018-06-14T22:36:58+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"296\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"2018 湘潭邀请赛,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/a-easy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A.Easy h-index\"><meta property=\"og:description\" content=\"1 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with\nitations exactly i, ﬁnd the h-index of Bobo.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T22:36:58+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A.Easy h-index\"><meta name=twitter:description content=\"1 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with\nitations exactly i, ﬁnd the h-index of Bobo.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/a-easy/ title=\"A.Easy h-index | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/c-sort/ title=\"sort 排序\"><link rel=next type=text/html href=https://lruihao.cn/posts/b-higher/ title=\"B.Higher h-index\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/a-easy/index.md title=\"A.Easy h-index | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A.Easy h-index\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/a-easy\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"2018 湘潭邀请赛, ACM, C\\u002b\\u002b\",\"wordcount\":296,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/a-easy\\/\",\"datePublished\":\"2018-06-14T22:36:58+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/a-easy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>A.Easy H-Index</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A.Easy H-Index</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 22:36:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"296 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A.Easy H-Index\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#a-easy-h-index>A. Easy h-index</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=a-easy-h-index><span>1 A. Easy h-index</span>\n<a href=#a-easy-h-index class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br>Bobo has published many papers. Given a0,a1,a2,&mldr;,an which means Bobo has published ai papers with<br>itations exactly i, ﬁnd the h-index of Bobo.</p><h3 class=heading-element id=input><span>1.1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The input consists of several test cases and is terminated by end-of-ﬁle.<br>The ﬁrst line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,&mldr;,an.</p><h3 class=heading-element id=output><span>1.2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For each test case, print an integer which denotes the result.</p><h3 class=heading-element id=constraint><span>1.3 Constraint</span>\n<a href=#constraint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>• 1≤ n ≤2·105\n• 0≤ ai ≤109\n• The sum of n does not exceed 250,000.</p><h3 class=heading-element id=sample-input><span>1.4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>1\n1 2\n2\n1 2 3\n3\n0 0 0 0\n</code></pre><h3 class=heading-element id=sample-output><span>1.5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>1\n2\n0\n</code></pre><p>题意：给定被引用次数为 0<sub>n 的论文分别有几张，找到最大的 h，满足被引用次数大于等于 h 的论文至少有 h 张<br>思路：在区间 [0,n] 内二分答案；或直接从 n</sub>0 遍历找到第一个满足条件的 h</p><p>后 AC 代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&#34;bits/stdc++.h&#34;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=mi>200005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>sum</span><span class=o>=</span><span class=n>a</span><span class=p>[</span><span class=n>n</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>&gt;=</span><span class=mi>0</span><span class=p>;){</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>sum</span><span class=o>&gt;=</span><span class=n>i</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>i</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span> <span class=n>sum</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=o>--</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;0&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/a-easy/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/a-easy.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/a-easy.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20A.Easy+h-index&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cA.Easy+h-index%7c%0A%7cURL%7chttps://lruihao.cn/posts/a-easy/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/a-easy.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/a-easy/ data-title=\"A.Easy H-Index\" data-hashtags=\"2018 湘潭邀请赛,ACM,C++\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/a-easy/ data-hashtag=\"2018 湘潭邀请赛\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/a-easy/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/a-easy/ data-title=\"A.Easy H-Index\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/a-easy/ data-title=\"A.Easy H-Index\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/c-sort/ class=post-nav-item rel=prev title=\"Sort 排序\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Sort 排序</a><a href=/posts/b-higher/ class=post-nav-item rel=next title=\"B.Higher H-Index\">B.Higher H-Index<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#a-easy-h-index>A. Easy h-index</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2ef1295d48d146ea03955a5b8beab68d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2ef1295d48d146ea03955a5b8beab68d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/a-easy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/a-easy/index.md",
    "content": "# A.Easy H-Index\n\n\n## A. Easy h-index\n\nThe h-index of an author is the largest h where he has at least h papers with citations not less than h.  \nBobo has published many papers. Given a0,a1,a2,...,an which means Bobo has published ai papers with  \nitations exactly i, ﬁnd the h-index of Bobo.\n\n<!--more-->\n\n### Input\n\nThe input consists of several test cases and is terminated by end-of-ﬁle.  \nThe ﬁrst line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,...,an.\n\n### Output\n\nFor each test case, print an integer which denotes the result.\n\n### Constraint\n\n• 1≤ n ≤2·105\n• 0≤ ai ≤109\n• The sum of n does not exceed 250,000.\n\n### Sample Input\n\n    1\n    1 2\n    2\n    1 2 3\n    3\n    0 0 0 0\n\n### Sample Output\n\n    1\n    2\n    0\n\n题意：给定被引用次数为 0~n 的论文分别有几张，找到最大的 h，满足被引用次数大于等于 h 的论文至少有 h 张  \n思路：在区间 [0,n] 内二分答案；或直接从 n~0 遍历找到第一个满足条件的 h\n\n后 AC 代码\n\n```c\n#include \"bits/stdc++.h\"\nusing namespace std;\nint main(){\n    int a[200005];\n    int n;\n    int i;\n    while(cin>>n){\n        for(i=0;i<=n;i++)\n            cin>>a[i];\n        int sum=a[n];\n        for(i=n;i>=0;){\n            if(sum>=i){\n                cout<<i<<endl;\n                break;\n            }\n            else sum+=a[--i];\n        }\n        if(i<0)\n            cout<<\"0\"<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/a-easy/  \n\n"
  },
  {
    "path": "posts/adb-for-mac/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Mac 配置 ADB | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"作为非安卓专业开发，无需下载 Android SDK，\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\n\"><meta name=keywords content='Android,ADB'><meta itemprop=name content=\"Mac 配置 ADB\"><meta itemprop=description content=\"作为非安卓专业开发，无需下载 Android SDK，\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\"><meta itemprop=datePublished content=\"2022-07-05T15:39:34+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"255\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Android,ADB\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/adb-for-mac/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Mac 配置 ADB\"><meta property=\"og:description\" content=\"作为非安卓专业开发，无需下载 Android SDK，\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-07-05T15:39:34+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Android\"><meta property=\"article:tag\" content=\"ADB\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Mac 配置 ADB\"><meta name=twitter:description content=\"作为非安卓专业开发，无需下载 Android SDK，\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/adb-for-mac/ title=\"Mac 配置 ADB | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/js-rediscover/ title=\"重新认识 JavaScript\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/docs/ title=\"📄 The open-source repo for fixit.lruihao.cn\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/adb-for-mac/index.md title=\"Mac 配置 ADB | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Mac 配置 ADB\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/adb-for-mac\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Android, ADB\",\"wordcount\":255,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/adb-for-mac\\/\",\"datePublished\":\"2022-07-05T15:39:34+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/adb-for-mac/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Mac 配置 ADB</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Mac 配置 ADB</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2022-07-05 15:39:34\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-07-05>2022-07-05</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"255 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Mac 配置 ADB\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装>安装</a></li><li><a href=#配置环境变量>配置环境变量</a></li><li><a href=#adb-命令>ADB 命令</a></li><li><a href=#注意>注意</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>作为非安卓专业开发，无需下载 Android SDK，<br>仅下载 Android SDK 中的 <a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=_blank rel=\"external nofollow noopener noreferrer\">platform-tools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 命令行工具即可，并配置好环境变量。</p><h2 class=heading-element id=安装><span>1 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=_blank rel=\"external nofollow noopener noreferrer\">platform-tools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=配置环境变量><span>2 配置环境变量</span>\n<a href=#%e9%85%8d%e7%bd%ae%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>open .bash_profile</span></span></code></pre></td></tr></table></div></div></div><p>写入以下内容</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=c1># platform-tools of Android SDK</span>\n</span></span><span class=line><span class=cl><span class=k>export</span> <span class=n>PATH</span><span class=o>=$</span><span class=n>PATH</span><span class=p>:</span><span class=o>$</span><span class=n>HOME</span><span class=o>/</span><span class=n>Applications</span><span class=o>/</span><span class=n>platform</span><span class=o>-</span><span class=n>tools</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>source</span> .bash_profile</span></span></code></pre></td></tr></table></div></div></div><p>Windows 系统打开高级设置，配置 PATH 变量，增加一条路径即可。</p><h2 class=heading-element id=adb-命令><span>3 ADB 命令</span>\n<a href=#adb-%e5%91%bd%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通过 USB 连接手机和电脑，执行以下命令</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 1. 打开手机 tcpip 5555 端口</span>\n</span></span><span class=line><span class=cl>adb tcpip <span class=m>5555</span>\n</span></span><span class=line><span class=cl><span class=c1># 2. 查看手机网络 IP</span>\n</span></span><span class=line><span class=cl>adb shell ifconfig\n</span></span><span class=line><span class=cl><span class=c1># 3. 在电脑上 ping 手机网络 IP</span>\n</span></span><span class=line><span class=cl><span class=c1># 4. adb connect [Android IP]</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><a href=\"https://developer.android.com/studio/command-line/adb?hl=zh-cn\" target=_blank rel=\"external nofollow noopener noreferrer\">Android 调试桥 (adb)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/mzlogin/awesome-adb target=_blank rel=\"external nofollow noopener noreferrer\">awesome-adb<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=注意><span>4 注意</span>\n<a href=#%e6%b3%a8%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>windows 系统下的文件（夹）命名所采用的是 GBK 编码，而 linux 是采用的 UTF-8 编码，使用 adb 的\npush 和 pull 命令时由于编码方式的不同会产生错误，因此需要修改 adb 的源代码来支持编码转换。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/adb-for-mac/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/adb-for-mac.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/adb-for-mac.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Mac+%E9%85%8D%E7%BD%AE+ADB&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cMac+%E9%85%8D%E7%BD%AE+ADB%7c%0A%7cURL%7chttps://lruihao.cn/posts/adb-for-mac/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/adb-for-mac.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/adb-for-mac/ data-title=\"Mac 配置 ADB\" data-hashtags=Android,ADB><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/adb-for-mac/ data-hashtag=Android><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/adb-for-mac/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/adb-for-mac/ data-title=\"Mac 配置 ADB\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/adb-for-mac/ data-title=\"Mac 配置 ADB\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/android/ class=post-tag title=\"标签 - Android\">Android</a><a href=/tags/adb/ class=post-tag title=\"标签 - ADB\">ADB</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/js-rediscover/ class=post-nav-item rel=prev title=\"重新认识 JavaScript\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>重新认识 JavaScript</a><a href=/projects/hugo-fixit/docs/ class=post-nav-item rel=next title=hugo-fixit/docs>hugo-fixit/docs<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装>安装</a></li><li><a href=#配置环境变量>配置环境变量</a></li><li><a href=#adb-命令>ADB 命令</a></li><li><a href=#注意>注意</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/bf6cfc0dc4bddf23d51d404860b60c00.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/bf6cfc0dc4bddf23d51d404860b60c00.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/adb-for-mac/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/adb-for-mac/index.md",
    "content": "# Mac 配置 ADB\n\n\n作为非安卓专业开发，无需下载 Android SDK，  \n仅下载 Android SDK 中的 [platform-tools](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn) 命令行工具即可，并配置好环境变量。\n\n<!--more-->\n\n## 安装\n\n- [platform-tools](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn)\n\n## 配置环境变量\n\n```bash\nopen .bash_profile\n```\n\n写入以下内容\n\n```\n# platform-tools of Android SDK\nexport PATH=$PATH:$HOME/Applications/platform-tools\n```\n\n```bash\nsource .bash_profile\n```\n\nWindows 系统打开高级设置，配置 PATH 变量，增加一条路径即可。\n\n## ADB 命令\n\n通过 USB 连接手机和电脑，执行以下命令\n\n```bash\n# 1. 打开手机 tcpip 5555 端口\nadb tcpip 5555\n# 2. 查看手机网络 IP\nadb shell ifconfig\n# 3. 在电脑上 ping 手机网络 IP\n# 4. adb connect [Android IP]\n```\n\n- [Android 调试桥 (adb)](https://developer.android.com/studio/command-line/adb?hl=zh-cn)\n- [awesome-adb](https://github.com/mzlogin/awesome-adb)\n\n## 注意\n\nwindows 系统下的文件（夹）命名所采用的是 GBK 编码，而 linux 是采用的 UTF-8 编码，使用 adb 的\npush 和 pull 命令时由于编码方式的不同会产生错误，因此需要修改 adb 的源代码来支持编码转换。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/adb-for-mac/  \n\n"
  },
  {
    "path": "posts/adjacent-replacements/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Adjacent Replacements | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\"><meta name=keywords content='Codeforces,ACM,C++'><meta itemprop=name content=\"Adjacent Replacements\"><meta itemprop=description content=\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\"><meta itemprop=datePublished content=\"2018-07-22T11:54:14+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"69\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Codeforces,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/adjacent-replacements/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Adjacent Replacements\"><meta property=\"og:description\" content=\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:54:14+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Adjacent Replacements\"><meta name=twitter:description content=\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/adjacent-replacements/ title=\"Adjacent Replacements | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-3984/ title=\"poj-3984-迷宫问题 (bfs 路径）\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj-1426/ title=\"poj-1426-Find The Multiple(dfs)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/adjacent-replacements/index.md title=\"Adjacent Replacements | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Adjacent Replacements\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/adjacent-replacements\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Codeforces, ACM, C\\u002b\\u002b\",\"wordcount\":69,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/adjacent-replacements\\/\",\"datePublished\":\"2018-07-22T11:54:14+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/adjacent-replacements/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Adjacent Replacements</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Adjacent Replacements</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:54:14\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"69 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Adjacent Replacements\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=https://codeforces.com/contest/1006/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. Adjacent Replacements<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>第一次打 cf 就做出一道这样的找规律的题，打到自闭。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>a</span><span class=p>[</span><span class=mi>1001</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>flag</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>))</span> <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=p>{</span><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span><span class=n>flag</span><span class=o>=</span><span class=mi>1</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/adjacent-replacements/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/adjacent-replacements.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/adjacent-replacements.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Adjacent+Replacements&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cAdjacent+Replacements%7c%0A%7cURL%7chttps://lruihao.cn/posts/adjacent-replacements/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/adjacent-replacements.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/adjacent-replacements/ data-title=\"Adjacent Replacements\" data-hashtags=Codeforces,ACM,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/adjacent-replacements/ data-hashtag=Codeforces><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/adjacent-replacements/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/adjacent-replacements/ data-title=\"Adjacent Replacements\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/adjacent-replacements/ data-title=\"Adjacent Replacements\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-3984/ class=post-nav-item rel=prev title=\"Poj-3984-迷宫问题 (Bfs 路径）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Poj-3984-迷宫问题 (Bfs 路径）</a><a href=/posts/poj-1426/ class=post-nav-item rel=next title=\"Poj-1426-Find the Multiple(dfs)\">Poj-1426-Find the Multiple(dfs)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8133d23d199cb604b3b0b495c34058f9.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8133d23d199cb604b3b0b495c34058f9.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/adjacent-replacements/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/adjacent-replacements/index.md",
    "content": "# Adjacent Replacements\n\n\n[A. Adjacent Replacements](https://codeforces.com/contest/1006/problem/A)\n\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int n,a[1001];\n    cin>>n;\n    int i;\n    int flag=0;\n    for(i=0;i<n;i++){\n        cin>>a[i];\n        if(!(a[i]&1)) a[i]--;\n        if(!flag) {cout<<a[i];flag=1;}\n        else cout<<\" \"<<a[i];\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/adjacent-replacements/  \n\n"
  },
  {
    "path": "posts/article-structure/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>写作技巧：如何搭建文章的框架结构？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"写作技巧：如何搭建文章的框架结构？\"><meta itemprop=description content=\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\"><meta itemprop=datePublished content=\"2023-09-26T15:17:52+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"5893\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Memo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/article-structure/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"写作技巧：如何搭建文章的框架结构？\"><meta property=\"og:description\" content=\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-26T15:17:52+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"写作技巧：如何搭建文章的框架结构？\"><meta name=twitter:description content=\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/article-structure/ title=\"写作技巧：如何搭建文章的框架结构？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><link rel=next type=text/html href=https://lruihao.cn/posts/cognitive-complexity/ title=\"认知复杂度（Cognitive Complexity）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/article-structure/index.md title=\"写作技巧：如何搭建文章的框架结构？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"写作技巧：如何搭建文章的框架结构？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/article-structure\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":5893,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/article-structure\\/\",\"datePublished\":\"2023-09-26T15:17:52+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/article-structure/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>写作技巧：如何搭建文章的框架结构？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>写作技巧：如何搭建文章的框架结构？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-26 15:17:52\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-26>2023-09-26</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"5893 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 5900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 12 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=写作技巧：如何搭建文章的框架结构？><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#方法论的作用>方法论的作用</a></li><li><a href=#核心思想>核心思想</a></li><li><a href=#具体的写作套路>具体的写作套路</a><ol><li><a href=#1-技术科普>1. 技术科普</a></li><li><a href=#2-原理剖析>2. 原理剖析</a></li><li><a href=#3-功能实现>3. 功能实现</a></li><li><a href=#4-使用教程>4. 使用教程</a></li><li><a href=#5-问题解决>5. 问题解决</a></li><li><a href=#6-项目总结>6. 项目总结</a></li><li><a href=#7-会议记录>7. 会议记录</a></li><li><a href=#8-工具测评>8. 工具测评</a></li><li><a href=#9-技术人文>9. 技术人文</a></li><li><a href=#10-职场故事>10. 职场故事</a></li></ol></li><li><a href=#没有固定的套路>没有固定的套路</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。</p><h2 class=heading-element id=方法论的作用><span>1 方法论的作用</span>\n<a href=#%e6%96%b9%e6%b3%95%e8%ae%ba%e7%9a%84%e4%bd%9c%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>所谓方法论，通俗点讲就是套路，虽然限制了天才的火花，但是保证了合格的下限。</p><p>这个不难理解，拿武侠举例，每个门派都有剑招或者拳法，招式都是固定的，这个固定的招式就可以看成是方法论，而武功的最高境界是无招胜有招，讲求见招拆招，是不希望有固定的套路的。</p><p>但是，这些固定的招数你又不能不学，因为天才总是少数，而学习固定的招式，至少可以保证门派弟子比路人强一截。</p><p>学习如何说话，学习如何写作也是类似的，对于那些天生会说话，天生会写作的人而言，方法论反而是个桎梏，会限制他们的发挥。</p><p>但是对于原本不是这块料的人而言，方法论可以让你迅速进入学习的正轨，保证了实践结果不至于太差。</p><p>张鑫旭大佬结合自己的写作经验，总结出了一套核心思想，并抽象出了若干写作方法论。</p><h2 class=heading-element id=核心思想><span>2 核心思想</span>\n<a href=#%e6%a0%b8%e5%bf%83%e6%80%9d%e6%83%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>文章书写的核心思想无非这两个：</p><ol><li><p>文字前后连贯；</p></li><li><p>内容重点突出。</p></li></ol><p>这些核心思想和人类的认知特点正好是相匹配的。</p><p>&mldr;</p><h2 class=heading-element id=具体的写作套路><span>3 具体的写作套路</span>\n<a href=#%e5%85%b7%e4%bd%93%e7%9a%84%e5%86%99%e4%bd%9c%e5%a5%97%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这里按照文章类型的不同讲下可以拿来套用的写作路数。</p><p>正所谓一图胜千言，每一种写作结构都做了示意图。</p><h3 class=heading-element id=1-技术科普><span>3.1 1. 技术科普</span>\n<a href=#1-%e6%8a%80%e6%9c%af%e7%a7%91%e6%99%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>技术科普是人人都可以创作的一种文章类型，这类文章适合新人阅读，受众广泛。</p><p>这类文章结构可以如下图这般搭建：</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"作用是什么？\n  <small><b>（亮点前置）</b></small>\"]\n  B((\"效果演示\n  <small>(如果有)</small>\"))\n  C[\"语法和参数\"]\n  D[\"具体使用说明\n  <small><b>（主要篇幅）</b></small>\"]\n  E{\"案例\"}\n  F[\"细节知识（包括兼容性）\"]\n  G[\"点评总结\n  <small><b>（稀缺内容）</b></small>\"]\n  A---B---C---D---F---G\n  D-.->E\n  </pre><pre class=mermaid-dark>graph LR\n  A[\"作用是什么？\n  <small><b>（亮点前置）</b></small>\"]\n  B((\"效果演示\n  <small>(如果有)</small>\"))\n  C[\"语法和参数\"]\n  D[\"具体使用说明\n  <small><b>（主要篇幅）</b></small>\"]\n  E{\"案例\"}\n  F[\"细节知识（包括兼容性）\"]\n  G[\"点评总结\n  <small><b>（稀缺内容）</b></small>\"]\n  A---B---C---D---F---G\n  D-.->E\n  </pre><pre class=mermaid-neutral>graph LR\n  A[\"作用是什么？\n  <small><b>（亮点前置）</b></small>\"]\n  B((\"效果演示\n  <small>(如果有)</small>\"))\n  C[\"语法和参数\"]\n  D[\"具体使用说明\n  <small><b>（主要篇幅）</b></small>\"]\n  E{\"案例\"}\n  F[\"细节知识（包括兼容性）\"]\n  G[\"点评总结\n  <small><b>（稀缺内容）</b></small>\"]\n  A---B---C---D---F---G\n  D-.->E\n  </pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"作用是什么？\n  <small><b>（亮点前置）</b></small>\"]\n  B((\"效果演示\n  <small>(如果有)</small>\"))\n  C[\"语法和参数\"]\n  D[\"具体使用说明\n  <small><b>（主要篇幅）</b></small>\"]\n  E{\"案例\"}\n  F[\"细节知识（包括兼容性）\"]\n  G[\"点评总结\n  <small><b>（稀缺内容）</b></small>\"]\n  A---B---C---D---F---G\n  D-.->E\n  </pre></template></div><p>很多在线文档也是按照这个结构撰写的。</p><h3 class=heading-element id=2-原理剖析><span>3.2 2. 原理剖析</span>\n<a href=#2-%e5%8e%9f%e7%90%86%e5%89%96%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>原理剖析类的文章对于创作者加深对当前技术的理解很有帮助，虽然受众不一定广泛，但是对于自身的学习却很有帮助。</p><p>通常，这类文章可以遵循由表及里，层层深入的架构策略，方便他人的学习与理解。</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[现象描述]\n  B((\"想象演示\n  <small>（视频或图片）</small>\"))\n  C[解释说明]\n  D[基本概念]\n  E[浅层原因]\n  F[\"更深入解释\n  <small><b>（体现专业深度）</b></small>\"]\n  G[\"启示与拓展\n  <small><b>（稀缺内容）</b></small>\"]\n  D-.->C\n  A---B---C---F---G\n  E-.->C</pre><pre class=mermaid-dark>graph LR\n  A[现象描述]\n  B((\"想象演示\n  <small>（视频或图片）</small>\"))\n  C[解释说明]\n  D[基本概念]\n  E[浅层原因]\n  F[\"更深入解释\n  <small><b>（体现专业深度）</b></small>\"]\n  G[\"启示与拓展\n  <small><b>（稀缺内容）</b></small>\"]\n  D-.->C\n  A---B---C---F---G\n  E-.->C</pre><pre class=mermaid-neutral>graph LR\n  A[现象描述]\n  B((\"想象演示\n  <small>（视频或图片）</small>\"))\n  C[解释说明]\n  D[基本概念]\n  E[浅层原因]\n  F[\"更深入解释\n  <small><b>（体现专业深度）</b></small>\"]\n  G[\"启示与拓展\n  <small><b>（稀缺内容）</b></small>\"]\n  D-.->C\n  A---B---C---F---G\n  E-.->C</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[现象描述]\n  B((\"想象演示\n  <small>（视频或图片）</small>\"))\n  C[解释说明]\n  D[基本概念]\n  E[浅层原因]\n  F[\"更深入解释\n  <small><b>（体现专业深度）</b></small>\"]\n  G[\"启示与拓展\n  <small><b>（稀缺内容）</b></small>\"]\n  D-.->C\n  A---B---C---F---G\n  E-.->C</pre></template></div><h3 class=heading-element id=3-功能实现><span>3.3 3. 功能实现</span>\n<a href=#3-%e5%8a%9f%e8%83%bd%e5%ae%9e%e7%8e%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>我们所有的互联网产品都是通过一个又一个的功能实现的，比方说“鼠标经过按钮变色”就属于一个功能，点击按钮复制内容也属于功能。</p><p>所有这些功能的实现都可以创作成文章，而这些文章会成为搜索引擎流量来源大户。</p><p>因为很多开发者在实现某一个功能的时候，都习惯先去找找有没有现成的代码可以直接拿来使用。</p><p>这就要求我们在文章中一定要放代码，最后配上演示页面，然后为了吸引用户继续阅读，通常会把实现好的效果放在最前面，即上面提到的亮点前置。</p><p>所以，可以尝试使用下图所示的文章结构：</p><div class=diagram-container><pre class=mermaid>graph LR\nA[功能或效果说明]\nB((效果演示))\nC[在线 demo]\nD[视频或截图]\nE[实现思路]\nF[\"实现代码\n<small><b>（读者最关心）</b></small>\"]\nG[实现原理]\nH[总结与拓展]\nC-.->B\nE-. 你也可以在这个位置 .->G\nA---B---E---F---G---H\nD-.->B</pre><pre class=mermaid-dark>graph LR\nA[功能或效果说明]\nB((效果演示))\nC[在线 demo]\nD[视频或截图]\nE[实现思路]\nF[\"实现代码\n<small><b>（读者最关心）</b></small>\"]\nG[实现原理]\nH[总结与拓展]\nC-.->B\nE-. 你也可以在这个位置 .->G\nA---B---E---F---G---H\nD-.->B</pre><pre class=mermaid-neutral>graph LR\nA[功能或效果说明]\nB((效果演示))\nC[在线 demo]\nD[视频或截图]\nE[实现思路]\nF[\"实现代码\n<small><b>（读者最关心）</b></small>\"]\nG[实现原理]\nH[总结与拓展]\nC-.->B\nE-. 你也可以在这个位置 .->G\nA---B---E---F---G---H\nD-.->B</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\nA[功能或效果说明]\nB((效果演示))\nC[在线 demo]\nD[视频或截图]\nE[实现思路]\nF[\"实现代码\n<small><b>（读者最关心）</b></small>\"]\nG[实现原理]\nH[总结与拓展]\nC-.->B\nE-. 你也可以在这个位置 .->G\nA---B---E---F---G---H\nD-.->B</pre></template></div><h3 class=heading-element id=4-使用教程><span>3.4 4. 使用教程</span>\n<a href=#4-%e4%bd%bf%e7%94%a8%e6%95%99%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>每个人对教程的理解不一样，在我的写作认知中，教程专指针对小白的那种奶妈式的教学文章，会非常详细与具体，会有大量的配图与案例，生怕对方走错一步就不知道接下来该怎么办。</p><p>这类文章其实按部就班呈现就可以了：</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"背景说明\n  <small>（如果有）</small>\"]\n  B[\"步骤1/操作1\n  <small>（注意事项或示意图）</small>\"]\n  C[\"步骤2/操作2\n  <small>（注意事项或示意图）</small>\"]\n  D[\"步骤3/操作3\n  <small>（注意事项或示意图）</small>\"]\n  E[其他说明]\n  A---B---C---D-- ... ---E</pre><pre class=mermaid-dark>graph LR\n  A[\"背景说明\n  <small>（如果有）</small>\"]\n  B[\"步骤1/操作1\n  <small>（注意事项或示意图）</small>\"]\n  C[\"步骤2/操作2\n  <small>（注意事项或示意图）</small>\"]\n  D[\"步骤3/操作3\n  <small>（注意事项或示意图）</small>\"]\n  E[其他说明]\n  A---B---C---D-- ... ---E</pre><pre class=mermaid-neutral>graph LR\n  A[\"背景说明\n  <small>（如果有）</small>\"]\n  B[\"步骤1/操作1\n  <small>（注意事项或示意图）</small>\"]\n  C[\"步骤2/操作2\n  <small>（注意事项或示意图）</small>\"]\n  D[\"步骤3/操作3\n  <small>（注意事项或示意图）</small>\"]\n  E[其他说明]\n  A---B---C---D-- ... ---E</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"背景说明\n  <small>（如果有）</small>\"]\n  B[\"步骤1/操作1\n  <small>（注意事项或示意图）</small>\"]\n  C[\"步骤2/操作2\n  <small>（注意事项或示意图）</small>\"]\n  D[\"步骤3/操作3\n  <small>（注意事项或示意图）</small>\"]\n  E[其他说明]\n  A---B---C---D-- ... ---E</pre></template></div><h3 class=heading-element id=5-问题解决><span>3.5 5. 问题解决</span>\n<a href=#5-%e9%97%ae%e9%a2%98%e8%a7%a3%e5%86%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>如果问题解决的过程是写给公司内部的人（尤其是领导）看的，或者说写作的目的是炫一把自己解决问题的能力，则自己的<strong>思考过程</strong>一定要重点阐述。</p><p>如果你写作的目的很单纯，就是希望帮助外面遇到同样问题的人，那就可以多讲讲问题产生的原因，以及如何解决即可，别人对你的思考过程并不在意。</p><p>下面这个文章结构示意图是按照内部创作的背景设计的，强调个人在整个过程中的能动性。</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"背景描述\n  <small>（如果有）</small>\"]\n  B[问题描述]\n  C((\"问题演示\n  <small>（视频或图片）</small>\"))\n  D[\"我的思考\n 再次思考\n ...\"]\n  E[\"初次尝试\n 再次尝试\n ...\"]\n  F{结果}\n  G[结语]\n  A---B---C---D==>E==>F-- YES -->G\n  F== NO ==>D</pre><pre class=mermaid-dark>graph LR\n  A[\"背景描述\n  <small>（如果有）</small>\"]\n  B[问题描述]\n  C((\"问题演示\n  <small>（视频或图片）</small>\"))\n  D[\"我的思考\n 再次思考\n ...\"]\n  E[\"初次尝试\n 再次尝试\n ...\"]\n  F{结果}\n  G[结语]\n  A---B---C---D==>E==>F-- YES -->G\n  F== NO ==>D</pre><pre class=mermaid-neutral>graph LR\n  A[\"背景描述\n  <small>（如果有）</small>\"]\n  B[问题描述]\n  C((\"问题演示\n  <small>（视频或图片）</small>\"))\n  D[\"我的思考\n 再次思考\n ...\"]\n  E[\"初次尝试\n 再次尝试\n ...\"]\n  F{结果}\n  G[结语]\n  A---B---C---D==>E==>F-- YES -->G\n  F== NO ==>D</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"背景描述\n  <small>（如果有）</small>\"]\n  B[问题描述]\n  C((\"问题演示\n  <small>（视频或图片）</small>\"))\n  D[\"我的思考\n 再次思考\n ...\"]\n  E[\"初次尝试\n 再次尝试\n ...\"]\n  F{结果}\n  G[结语]\n  A---B---C---D==>E==>F-- YES -->G\n  F== NO ==>D</pre></template></div><p>如果你是对外创作，则可以根据侧重点不同，微调写作结构。</p><h3 class=heading-element id=6-项目总结><span>3.6 6. 项目总结</span>\n<a href=#6-%e9%a1%b9%e7%9b%ae%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>项目总结一定是对内的，即使我们在外网看到一些大公司团队发的项目总结类的文章，也是内销转出口。</p><p>这类文章一般看起来都很高大上，但读完一阵空虚，啥也没学到。</p><p>这是正常且理所当然的，因为项目总结的目的本质上就是一种职场邀功炫技手段，而不是技术传道。</p><p>所以，这类文章的难点不在于结构设计，而是如何通过不会让人反感的朴实无华的语言透露出项目牛逼、项目人员牛逼的信息。</p><div class=diagram-container><pre class=mermaid>graph LR\n A[项目背景]\n B[取得的成绩]\n C((漂亮数据\\n或最终效果))\n E[贡献]\n F[困难与解决]\n G[成长]\n H[主体可以是个人一可以是团队]\n I[总结]\n J[感谢]\n  C-.->B\n  A---B---D---I---J\n  subgraph D[\"项目详情<small>（根据实际情况调整）</small>\"]\n   direction BT\n    E & F & G---H\n  end</pre><pre class=mermaid-dark>graph LR\n A[项目背景]\n B[取得的成绩]\n C((漂亮数据\\n或最终效果))\n E[贡献]\n F[困难与解决]\n G[成长]\n H[主体可以是个人一可以是团队]\n I[总结]\n J[感谢]\n  C-.->B\n  A---B---D---I---J\n  subgraph D[\"项目详情<small>（根据实际情况调整）</small>\"]\n   direction BT\n    E & F & G---H\n  end</pre><pre class=mermaid-neutral>graph LR\n A[项目背景]\n B[取得的成绩]\n C((漂亮数据\\n或最终效果))\n E[贡献]\n F[困难与解决]\n G[成长]\n H[主体可以是个人一可以是团队]\n I[总结]\n J[感谢]\n  C-.->B\n  A---B---D---I---J\n  subgraph D[\"项目详情<small>（根据实际情况调整）</small>\"]\n   direction BT\n    E & F & G---H\n  end</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n A[项目背景]\n B[取得的成绩]\n C((漂亮数据\\n或最终效果))\n E[贡献]\n F[困难与解决]\n G[成长]\n H[主体可以是个人一可以是团队]\n I[总结]\n J[感谢]\n  C-.->B\n  A---B---D---I---J\n  subgraph D[\"项目详情<small>（根据实际情况调整）</small>\"]\n   direction BT\n    E & F & G---H\n  end</pre></template></div><h3 class=heading-element id=7-会议记录><span>3.7 7. 会议记录</span>\n<a href=#7-%e4%bc%9a%e8%ae%ae%e8%ae%b0%e5%bd%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>国内每年都会有很多技术峰会，当然，这几年因为口罩原因，多以线上为主了。</p><p>然后各个城市还有不少免费的技术沙龙，各个技术社区也会有一些免费的线上活动，一些知名行业从业者也会不定期直播，因此，只要你有兴趣，都可以作为观众参与其中。</p><p>参加完了，是不是可以写篇文章记录下呢？</p><p>跟大家讲，这种文章不需要技术含量，但是访问量相当的高，因为人都是懒惰的，总希望以最低的成本收获最多的东西。</p><p>一看，嘿，这个不错，我只要花几分钟看一下，就能学到别人花好几个小时学到的东西，何乐而不为呢？哪怕什么都没学到，至少满足了自己的好奇心，怎么看都不亏。</p><p>而这类文章的内容结构也比较固定，就按照时间进行组织就好了，会议的按会议时间，直播的按直播时间。</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"会议简介\n  <small>（时间、与会人等）</small>\"]\n  B((\"现场照片\n  <small>（如果有）</small>\"))\n  C[\"过程1\n  <small>点评（如果有）</small>\"]\n  D[\"过程2\n  <small>点评（如果有）</small>\"]\n  E[\"过程3\n  <small>点评（如果有）</small>\"]\n  F[自己的感受]\n  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F</pre><pre class=mermaid-dark>graph LR\n  A[\"会议简介\n  <small>（时间、与会人等）</small>\"]\n  B((\"现场照片\n  <small>（如果有）</small>\"))\n  C[\"过程1\n  <small>点评（如果有）</small>\"]\n  D[\"过程2\n  <small>点评（如果有）</small>\"]\n  E[\"过程3\n  <small>点评（如果有）</small>\"]\n  F[自己的感受]\n  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F</pre><pre class=mermaid-neutral>graph LR\n  A[\"会议简介\n  <small>（时间、与会人等）</small>\"]\n  B((\"现场照片\n  <small>（如果有）</small>\"))\n  C[\"过程1\n  <small>点评（如果有）</small>\"]\n  D[\"过程2\n  <small>点评（如果有）</small>\"]\n  E[\"过程3\n  <small>点评（如果有）</small>\"]\n  F[自己的感受]\n  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"会议简介\n  <small>（时间、与会人等）</small>\"]\n  B((\"现场照片\n  <small>（如果有）</small>\"))\n  C[\"过程1\n  <small>点评（如果有）</small>\"]\n  D[\"过程2\n  <small>点评（如果有）</small>\"]\n  E[\"过程3\n  <small>点评（如果有）</small>\"]\n  F[自己的感受]\n  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F</pre></template></div><h3 class=heading-element id=8-工具测评><span>3.8 8. 工具测评</span>\n<a href=#8-%e5%b7%a5%e5%85%b7%e6%b5%8b%e8%af%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>这类文章也非常适合新手创作，大家应该也都见过，比方说某某框架初体验、A 框架和 B 框架我该使用哪个？</p><p>这类文章的核心价值就在于评测，你以一个过来人的身份，是否建议读者使用这个工具之类的。</p><p>但评测是否中肯可信，还需要一些证明，这些证明就可以通过展示使用过程和最终效果来完成。</p><p>下图是可以参考使用的一种框架结构：</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"故事背景\n  <small>（为什么会使用此工具？）</small>\"]\n  B[使用过程全记录]\n  C[\"使用感受\n  <small><b>（核心价值）</b></small>\"]\n  D[\"优点是？缺点是？\"]\n  E[\"和同类工具对比如何？\"]\n  F[\"对其未来发展的判断是？\"]\n  G[最后的总结]\n  H((视频或截图))\n  A---B---C-->D & E & F-->G\n  H-.->B</pre><pre class=mermaid-dark>graph LR\n  A[\"故事背景\n  <small>（为什么会使用此工具？）</small>\"]\n  B[使用过程全记录]\n  C[\"使用感受\n  <small><b>（核心价值）</b></small>\"]\n  D[\"优点是？缺点是？\"]\n  E[\"和同类工具对比如何？\"]\n  F[\"对其未来发展的判断是？\"]\n  G[最后的总结]\n  H((视频或截图))\n  A---B---C-->D & E & F-->G\n  H-.->B</pre><pre class=mermaid-neutral>graph LR\n  A[\"故事背景\n  <small>（为什么会使用此工具？）</small>\"]\n  B[使用过程全记录]\n  C[\"使用感受\n  <small><b>（核心价值）</b></small>\"]\n  D[\"优点是？缺点是？\"]\n  E[\"和同类工具对比如何？\"]\n  F[\"对其未来发展的判断是？\"]\n  G[最后的总结]\n  H((视频或截图))\n  A---B---C-->D & E & F-->G\n  H-.->B</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"故事背景\n  <small>（为什么会使用此工具？）</small>\"]\n  B[使用过程全记录]\n  C[\"使用感受\n  <small><b>（核心价值）</b></small>\"]\n  D[\"优点是？缺点是？\"]\n  E[\"和同类工具对比如何？\"]\n  F[\"对其未来发展的判断是？\"]\n  G[最后的总结]\n  H((视频或截图))\n  A---B---C-->D & E & F-->G\n  H-.->B</pre></template></div><h3 class=heading-element id=9-技术人文><span>3.9 9. 技术人文</span>\n<a href=#9-%e6%8a%80%e6%9c%af%e4%ba%ba%e6%96%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>如果是技术人文，则情况就会变得复杂，因为技术人文所包含的写作范围非常广泛，例如软技能分享、心理困惑答疑、职业发展指导、行业发展看法等都属于技术人文的写作范畴，而不同的主题所需要的框架结构都是不一样的。</p><p>很多文章可以从其他类型的文章中找到可以借鉴的套路，这里，我就单纯地展示下观点类的技术文章的写作结构：</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[\"论点先行\n  <small>（我认为…）</small>\"]\n  B[\"原因1\n  <small>（案例佐证）</small>\"]\n  C[\"原因2\n  <small>（案例佐证）</small>\"]\n  D[\"原因3\n  <small>（案例佐证）</small>\"]\n  E[最后的总结]\n  A---B---C---D-- ... ---E</pre><pre class=mermaid-dark>graph LR\n  A[\"论点先行\n  <small>（我认为…）</small>\"]\n  B[\"原因1\n  <small>（案例佐证）</small>\"]\n  C[\"原因2\n  <small>（案例佐证）</small>\"]\n  D[\"原因3\n  <small>（案例佐证）</small>\"]\n  E[最后的总结]\n  A---B---C---D-- ... ---E</pre><pre class=mermaid-neutral>graph LR\n  A[\"论点先行\n  <small>（我认为…）</small>\"]\n  B[\"原因1\n  <small>（案例佐证）</small>\"]\n  C[\"原因2\n  <small>（案例佐证）</small>\"]\n  D[\"原因3\n  <small>（案例佐证）</small>\"]\n  E[最后的总结]\n  A---B---C---D-- ... ---E</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[\"论点先行\n  <small>（我认为…）</small>\"]\n  B[\"原因1\n  <small>（案例佐证）</small>\"]\n  C[\"原因2\n  <small>（案例佐证）</small>\"]\n  D[\"原因3\n  <small>（案例佐证）</small>\"]\n  E[最后的总结]\n  A---B---C---D-- ... ---E</pre></template></div><h3 class=heading-element id=10-职场故事><span>3.10 10. 职场故事</span>\n<a href=#10-%e8%81%8c%e5%9c%ba%e6%95%85%e4%ba%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>职场故事通常都是当事人的真实经历，是比较好写的，按照时间线讲好每个时间段的故事即可，如果分享的是刚编的故事，也可以遵循这个套路：</p><div class=diagram-container><pre class=mermaid>graph LR\n  A[背景故事]\n  B[做了什么事情]\n  C[发生了什么结果]\n  D[当事人的感受]\n  E[\"再后来……\"]\n  A---B-->C-->D-->E-->B</pre><pre class=mermaid-dark>graph LR\n  A[背景故事]\n  B[做了什么事情]\n  C[发生了什么结果]\n  D[当事人的感受]\n  E[\"再后来……\"]\n  A---B-->C-->D-->E-->B</pre><pre class=mermaid-neutral>graph LR\n  A[背景故事]\n  B[做了什么事情]\n  C[发生了什么结果]\n  D[当事人的感受]\n  E[\"再后来……\"]\n  A---B-->C-->D-->E-->B</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>graph LR\n  A[背景故事]\n  B[做了什么事情]\n  C[发生了什么结果]\n  D[当事人的感受]\n  E[\"再后来……\"]\n  A---B-->C-->D-->E-->B</pre></template></div><p>当然，还有其他类型的技术文章，例如技术八卦、行业新闻等，我就不一一展示了，基本上都是有迹可循的。</p><h2 class=heading-element id=没有固定的套路><span>4 没有固定的套路</span>\n<a href=#%e6%b2%a1%e6%9c%89%e5%9b%ba%e5%ae%9a%e7%9a%84%e5%a5%97%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>回到本文一开始的那个观点，写作其实是没有固定的套路的，这就像武功招式一样，这一套剑法必中其要害，结果人家穿了软猬甲，刀枪不入，是不是需要变化和调整？</p><p>写作也是这样，现实世界总是多变的，理想的条件总是难以满足，所以，套路虽好用，但也要学会应变。比方说：</p><ol><li>不同的账号主体</li><li>不同的阅读对象</li></ol><p>同样类型的文章，如果发布的账号主体不同，则文章的结构也会有所不同，同样的主题，给同事看的和给同行看的文章结构也是大不相同。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/article-structure/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/article-structure.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/article-structure.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%86%99%E4%BD%9C%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA%E6%96%87%E7%AB%A0%E7%9A%84%E6%A1%86%E6%9E%B6%E7%BB%93%E6%9E%84%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%86%99%E4%BD%9C%E6%8A%80%E5%B7%A7%EF%BC%9A%E5%A6%82%E4%BD%95%E6%90%AD%E5%BB%BA%E6%96%87%E7%AB%A0%E7%9A%84%E6%A1%86%E6%9E%B6%E7%BB%93%E6%9E%84%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/article-structure/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/article-structure.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/article-structure/ data-title=写作技巧：如何搭建文章的框架结构？><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/article-structure/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/article-structure/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/article-structure/ data-title=写作技巧：如何搭建文章的框架结构？ data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/article-structure/ data-title=写作技巧：如何搭建文章的框架结构？><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/el-table-sticky/ class=post-nav-item rel=prev title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a><a href=/posts/cognitive-complexity/ class=post-nav-item rel=next title=\"认知复杂度（Cognitive Complexity）\">认知复杂度（Cognitive Complexity）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#方法论的作用>方法论的作用</a></li><li><a href=#核心思想>核心思想</a></li><li><a href=#具体的写作套路>具体的写作套路</a><ol><li><a href=#1-技术科普>1. 技术科普</a></li><li><a href=#2-原理剖析>2. 原理剖析</a></li><li><a href=#3-功能实现>3. 功能实现</a></li><li><a href=#4-使用教程>4. 使用教程</a></li><li><a href=#5-问题解决>5. 问题解决</a></li><li><a href=#6-项目总结>6. 项目总结</a></li><li><a href=#7-会议记录>7. 会议记录</a></li><li><a href=#8-工具测评>8. 工具测评</a></li><li><a href=#9-技术人文>9. 技术人文</a></li><li><a href=#10-职场故事>10. 职场故事</a></li></ol></li><li><a href=#没有固定的套路>没有固定的套路</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1cd02bf1ad69a440c99ba61b5c6183ed.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1cd02bf1ad69a440c99ba61b5c6183ed.js defer></script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/article-structure/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/article-structure/index.md",
    "content": "# 写作技巧：如何搭建文章的框架结构？\n\n\n最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\n\n<!--more-->\n\n## 方法论的作用\n\n所谓方法论，通俗点讲就是套路，虽然限制了天才的火花，但是保证了合格的下限。\n\n这个不难理解，拿武侠举例，每个门派都有剑招或者拳法，招式都是固定的，这个固定的招式就可以看成是方法论，而武功的最高境界是无招胜有招，讲求见招拆招，是不希望有固定的套路的。\n\n但是，这些固定的招数你又不能不学，因为天才总是少数，而学习固定的招式，至少可以保证门派弟子比路人强一截。\n\n学习如何说话，学习如何写作也是类似的，对于那些天生会说话，天生会写作的人而言，方法论反而是个桎梏，会限制他们的发挥。\n\n但是对于原本不是这块料的人而言，方法论可以让你迅速进入学习的正轨，保证了实践结果不至于太差。\n\n张鑫旭大佬结合自己的写作经验，总结出了一套核心思想，并抽象出了若干写作方法论。\n\n## 核心思想\n\n文章书写的核心思想无非这两个：\n\n1. 文字前后连贯；\n\n2. 内容重点突出。\n\n这些核心思想和人类的认知特点正好是相匹配的。\n\n...\n\n## 具体的写作套路\n\n这里按照文章类型的不同讲下可以拿来套用的写作路数。\n\n正所谓一图胜千言，每一种写作结构都做了示意图。\n\n### 1. 技术科普\n\n技术科普是人人都可以创作的一种文章类型，这类文章适合新人阅读，受众广泛。\n\n这类文章结构可以如下图这般搭建：\n\n```mermaid\ngraph LR\n  A[\"作用是什么？\n  <small><b>（亮点前置）</b></small>\"]\n  B((\"效果演示\n  <small>(如果有)</small>\"))\n  C[\"语法和参数\"]\n  D[\"具体使用说明\n  <small><b>（主要篇幅）</b></small>\"]\n  E{\"案例\"}\n  F[\"细节知识（包括兼容性）\"]\n  G[\"点评总结\n  <small><b>（稀缺内容）</b></small>\"]\n  A---B---C---D---F---G\n  D-.->E\n  \n```\n\n很多在线文档也是按照这个结构撰写的。\n\n### 2. 原理剖析\n\n原理剖析类的文章对于创作者加深对当前技术的理解很有帮助，虽然受众不一定广泛，但是对于自身的学习却很有帮助。\n\n通常，这类文章可以遵循由表及里，层层深入的架构策略，方便他人的学习与理解。\n\n```mermaid\ngraph LR\n  A[现象描述]\n  B((\"想象演示\n  <small>（视频或图片）</small>\"))\n  C[解释说明]\n  D[基本概念]\n  E[浅层原因]\n  F[\"更深入解释\n  <small><b>（体现专业深度）</b></small>\"]\n  G[\"启示与拓展\n  <small><b>（稀缺内容）</b></small>\"]\n  D-.->C\n  A---B---C---F---G\n  E-.->C\n```\n\n### 3. 功能实现\n\n我们所有的互联网产品都是通过一个又一个的功能实现的，比方说“鼠标经过按钮变色”就属于一个功能，点击按钮复制内容也属于功能。\n\n所有这些功能的实现都可以创作成文章，而这些文章会成为搜索引擎流量来源大户。\n\n因为很多开发者在实现某一个功能的时候，都习惯先去找找有没有现成的代码可以直接拿来使用。\n\n这就要求我们在文章中一定要放代码，最后配上演示页面，然后为了吸引用户继续阅读，通常会把实现好的效果放在最前面，即上面提到的亮点前置。\n\n所以，可以尝试使用下图所示的文章结构：\n\n```mermaid\ngraph LR\nA[功能或效果说明]\nB((效果演示))\nC[在线 demo]\nD[视频或截图]\nE[实现思路]\nF[\"实现代码\n<small><b>（读者最关心）</b></small>\"]\nG[实现原理]\nH[总结与拓展]\nC-.->B\nE-. 你也可以在这个位置 .->G\nA---B---E---F---G---H\nD-.->B\n```\n\n### 4. 使用教程\n\n每个人对教程的理解不一样，在我的写作认知中，教程专指针对小白的那种奶妈式的教学文章，会非常详细与具体，会有大量的配图与案例，生怕对方走错一步就不知道接下来该怎么办。\n\n这类文章其实按部就班呈现就可以了：\n\n```mermaid\ngraph LR\n  A[\"背景说明\n  <small>（如果有）</small>\"]\n  B[\"步骤1/操作1\n  <small>（注意事项或示意图）</small>\"]\n  C[\"步骤2/操作2\n  <small>（注意事项或示意图）</small>\"]\n  D[\"步骤3/操作3\n  <small>（注意事项或示意图）</small>\"]\n  E[其他说明]\n  A---B---C---D-- ... ---E\n```\n\n### 5. 问题解决\n\n如果问题解决的过程是写给公司内部的人（尤其是领导）看的，或者说写作的目的是炫一把自己解决问题的能力，则自己的**思考过程**一定要重点阐述。\n\n如果你写作的目的很单纯，就是希望帮助外面遇到同样问题的人，那就可以多讲讲问题产生的原因，以及如何解决即可，别人对你的思考过程并不在意。\n\n下面这个文章结构示意图是按照内部创作的背景设计的，强调个人在整个过程中的能动性。\n\n```mermaid\ngraph LR\n  A[\"背景描述\n  <small>（如果有）</small>\"]\n  B[问题描述]\n  C((\"问题演示\n  <small>（视频或图片）</small>\"))\n  D[\"我的思考\n 再次思考\n ...\"]\n  E[\"初次尝试\n 再次尝试\n ...\"]\n  F{结果}\n  G[结语]\n  A---B---C---D==>E==>F-- YES -->G\n  F== NO ==>D\n\n```\n\n如果你是对外创作，则可以根据侧重点不同，微调写作结构。\n\n### 6. 项目总结\n\n项目总结一定是对内的，即使我们在外网看到一些大公司团队发的项目总结类的文章，也是内销转出口。\n\n这类文章一般看起来都很高大上，但读完一阵空虚，啥也没学到。\n\n这是正常且理所当然的，因为项目总结的目的本质上就是一种职场邀功炫技手段，而不是技术传道。\n\n所以，这类文章的难点不在于结构设计，而是如何通过不会让人反感的朴实无华的语言透露出项目牛逼、项目人员牛逼的信息。\n\n```mermaid\ngraph LR\n A[项目背景]\n B[取得的成绩]\n C((漂亮数据\\n或最终效果))\n E[贡献]\n F[困难与解决]\n G[成长]\n H[主体可以是个人一可以是团队]\n I[总结]\n J[感谢]\n  C-.->B\n  A---B---D---I---J\n  subgraph D[\"项目详情<small>（根据实际情况调整）</small>\"]\n   direction BT\n    E & F & G---H\n  end\n```\n\n### 7. 会议记录\n\n国内每年都会有很多技术峰会，当然，这几年因为口罩原因，多以线上为主了。\n\n然后各个城市还有不少免费的技术沙龙，各个技术社区也会有一些免费的线上活动，一些知名行业从业者也会不定期直播，因此，只要你有兴趣，都可以作为观众参与其中。\n\n参加完了，是不是可以写篇文章记录下呢？\n\n跟大家讲，这种文章不需要技术含量，但是访问量相当的高，因为人都是懒惰的，总希望以最低的成本收获最多的东西。\n\n一看，嘿，这个不错，我只要花几分钟看一下，就能学到别人花好几个小时学到的东西，何乐而不为呢？哪怕什么都没学到，至少满足了自己的好奇心，怎么看都不亏。\n\n而这类文章的内容结构也比较固定，就按照时间进行组织就好了，会议的按会议时间，直播的按直播时间。\n\n```mermaid\ngraph LR\n  A[\"会议简介\n  <small>（时间、与会人等）</small>\"]\n  B((\"现场照片\n  <small>（如果有）</small>\"))\n  C[\"过程1\n  <small>点评（如果有）</small>\"]\n  D[\"过程2\n  <small>点评（如果有）</small>\"]\n  E[\"过程3\n  <small>点评（如果有）</small>\"]\n  F[自己的感受]\n  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F\n\n```\n\n### 8. 工具测评\n\n这类文章也非常适合新手创作，大家应该也都见过，比方说某某框架初体验、A 框架和 B 框架我该使用哪个？\n\n这类文章的核心价值就在于评测，你以一个过来人的身份，是否建议读者使用这个工具之类的。\n\n但评测是否中肯可信，还需要一些证明，这些证明就可以通过展示使用过程和最终效果来完成。\n\n下图是可以参考使用的一种框架结构：\n\n```mermaid\ngraph LR\n  A[\"故事背景\n  <small>（为什么会使用此工具？）</small>\"]\n  B[使用过程全记录]\n  C[\"使用感受\n  <small><b>（核心价值）</b></small>\"]\n  D[\"优点是？缺点是？\"]\n  E[\"和同类工具对比如何？\"]\n  F[\"对其未来发展的判断是？\"]\n  G[最后的总结]\n  H((视频或截图))\n  A---B---C-->D & E & F-->G\n  H-.->B\n```\n\n### 9. 技术人文\n\n如果是技术人文，则情况就会变得复杂，因为技术人文所包含的写作范围非常广泛，例如软技能分享、心理困惑答疑、职业发展指导、行业发展看法等都属于技术人文的写作范畴，而不同的主题所需要的框架结构都是不一样的。\n\n很多文章可以从其他类型的文章中找到可以借鉴的套路，这里，我就单纯地展示下观点类的技术文章的写作结构：\n\n```mermaid\ngraph LR\n  A[\"论点先行\n  <small>（我认为…）</small>\"]\n  B[\"原因1\n  <small>（案例佐证）</small>\"]\n  C[\"原因2\n  <small>（案例佐证）</small>\"]\n  D[\"原因3\n  <small>（案例佐证）</small>\"]\n  E[最后的总结]\n  A---B---C---D-- ... ---E\n\n```\n\n### 10. 职场故事\n\n职场故事通常都是当事人的真实经历，是比较好写的，按照时间线讲好每个时间段的故事即可，如果分享的是刚编的故事，也可以遵循这个套路：\n\n```mermaid\ngraph LR\n  A[背景故事]\n  B[做了什么事情]\n  C[发生了什么结果]\n  D[当事人的感受]\n  E[\"再后来……\"]\n  A---B-->C-->D-->E-->B\n```\n\n当然，还有其他类型的技术文章，例如技术八卦、行业新闻等，我就不一一展示了，基本上都是有迹可循的。\n\n## 没有固定的套路\n\n回到本文一开始的那个观点，写作其实是没有固定的套路的，这就像武功招式一样，这一套剑法必中其要害，结果人家穿了软猬甲，刀枪不入，是不是需要变化和调整？\n\n写作也是这样，现实世界总是多变的，理想的条件总是难以满足，所以，套路虽好用，但也要学会应变。比方说：\n\n1. 不同的账号主体\n2. 不同的阅读对象\n\n同样类型的文章，如果发布的账号主体不同，则文章的结构也会有所不同，同样的主题，给同事看的和给同行看的文章结构也是大不相同。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/article-structure/  \n\n"
  },
  {
    "path": "posts/aside-toggle-drag/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\n\"><meta name=keywords content='Vue2,CSS,JavaScript'><meta itemprop=name content=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><meta itemprop=description content=\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\"><meta itemprop=datePublished content=\"2024-06-13T21:03:12+08:00\"><meta itemprop=dateModified content=\"2024-06-17T18:08:34+08:00\"><meta itemprop=wordCount content=\"514\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2,CSS,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/aside-toggle-drag/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><meta property=\"og:description\" content=\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-06-13T21:03:12+08:00\"><meta property=\"article:modified_time\" content=\"2024-06-17T18:08:34+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><meta name=twitter:description content=\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/aside-toggle-drag/ title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/design-principles/ title=架构之基：从根儿上了解设计原则><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ title=\"A Hugo theme component with caniuse shortcode.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/aside-toggle-drag/index.md title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/aside-toggle-drag\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2, CSS, JavaScript\",\"wordcount\":514,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/aside-toggle-drag\\/\",\"datePublished\":\"2024-06-13T21:03:12+08:00\",\"dateModified\":\"2024-06-17T18:08:34+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/aside-toggle-drag/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>如何实现 VSCode 编辑器窗口边界拖拽类似功能</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>如何实现 VSCode 编辑器窗口边界拖拽类似功能</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2024-06-13 21:03:12\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-06-13>2024-06-13</time></span>&nbsp;<span title=\"更新于 2024-06-17 18:08:34\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-06-17>2024-06-17</time></span>&nbsp;<span title=\"514 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#效果演示>效果演示</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#实现思路>实现思路</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-06-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。</p><h2 class=heading-element id=效果演示><span>1 效果演示</span>\n<a href=#%e6%95%88%e6%9e%9c%e6%bc%94%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.github.io/vue-el-demo/#/aside-toggle-drag target=_blank rel=\"external nofollow noopener noreferrer\">vue-el-demo/#/aside-toggle-drag<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=实现代码><span>2 实现代码</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/components/AsideToggler/index.vue target=_blank rel=\"external nofollow noopener noreferrer\">@/components/AsideToggler<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=实现思路><span>3 实现思路</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>怎么说呢，写这篇文章就是想记录一下思路，本来想画个图说明一下的，但是懒得画了，随便说几句吧。</p><p>实现边界拖拽调整窗口大小功能，主要是通过鼠标按下、移动、松开事件来实现的，主要思路如下：</p><ol><li>在 <code>mousedown</code> 事件中，我们记录下鼠标的初始位置和元素的初始宽度。</li><li>在 <code>mousemove</code> 事件中，我们根据鼠标的新位置计算出新的宽度，并使用 <code>clamp()</code> 函数将其限制在最小宽度和最大宽度之间。</li><li>同时，我们还需要根据鼠标位置的变化，动态更新鼠标样式，以提示用户当前的拖拽状态。</li><li>在 <code>mouseup</code> 事件中，我们清除之前设置的事件监听器，并恢复鼠标样式。</li></ol><p>实现过程中，有两个比较巧妙的点：</p><ul><li>计算宽度的时候，没有使用 JS 计算，而是直接使用了 CSS 的 <code>clamp()</code> 函数，一目了然。</li><li>为了鼠标移动到可拖拽边界时显示一条蓝色的线，但是又不想改变元素的宽度，所以 <code>resize-bar</code> 元素的使用了 <code>position: absolute</code>，并且设置了 <code>translateX(-50%)</code> 来让其居中显示。当鼠标移入时，通过线性渐变的背景色巧妙地来实现蓝色线条的效果。</li></ul><p>正是因为第二点的实现方式，使得在边界线左右两侧都能拖拽，这一点是优于 VSCode 的，因为 VSCode 只能在左侧拖拽 😂。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-06-17 18:08:34\">更新于 2024-06-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/f3cb33fd32989a76630ee651f3ee839711c8a87d rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 发布文章“如何实现 VSCode 编辑器窗口边界拖拽类似功能”&#10&#10Commit: f3cb33fd32989a76630ee651f3ee839711c8a87d [f3cb33f]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-06-17 18:08:34\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>f3cb33f</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/aside-toggle-drag/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/aside-toggle-drag.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/aside-toggle-drag.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0+VSCode+%E7%BC%96%E8%BE%91%E5%99%A8%E7%AA%97%E5%8F%A3%E8%BE%B9%E7%95%8C%E6%8B%96%E6%8B%BD%E7%B1%BB%E4%BC%BC%E5%8A%9F%E8%83%BD&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0+VSCode+%E7%BC%96%E8%BE%91%E5%99%A8%E7%AA%97%E5%8F%A3%E8%BE%B9%E7%95%8C%E6%8B%96%E6%8B%BD%E7%B1%BB%E4%BC%BC%E5%8A%9F%E8%83%BD%7c%0A%7cURL%7chttps://lruihao.cn/posts/aside-toggle-drag/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/aside-toggle-drag.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/aside-toggle-drag/ data-title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\" data-hashtags=Vue2,CSS,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/aside-toggle-drag/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/aside-toggle-drag/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/aside-toggle-drag/ data-title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/aside-toggle-drag/ data-title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/design-principles/ class=post-nav-item rel=prev title=架构之基：从根儿上了解设计原则><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>架构之基：从根儿上了解设计原则</a><a href=/projects/hugo-fixit/shortcode-caniuse/ class=post-nav-item rel=next title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#效果演示>效果演示</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#实现思路>实现思路</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5228cc9c439e70c10266f94192573758.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5228cc9c439e70c10266f94192573758.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/aside-toggle-drag/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/aside-toggle-drag/index.md",
    "content": "# 如何实现 VSCode 编辑器窗口边界拖拽类似功能\n\n\n边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\n\n<!--more-->\n\n## 效果演示\n\n[vue-el-demo/#/aside-toggle-drag](https://lruihao.github.io/vue-el-demo/#/aside-toggle-drag)\n\n## 实现代码\n\n[@/components/AsideToggler](https://github.com/Lruihao/vue-el-demo/blob/main/src/components/AsideToggler/index.vue)\n\n## 实现思路\n\n怎么说呢，写这篇文章就是想记录一下思路，本来想画个图说明一下的，但是懒得画了，随便说几句吧。\n\n实现边界拖拽调整窗口大小功能，主要是通过鼠标按下、移动、松开事件来实现的，主要思路如下：\n\n1. 在 `mousedown` 事件中，我们记录下鼠标的初始位置和元素的初始宽度。\n2. 在 `mousemove` 事件中，我们根据鼠标的新位置计算出新的宽度，并使用 `clamp()` 函数将其限制在最小宽度和最大宽度之间。\n3. 同时，我们还需要根据鼠标位置的变化，动态更新鼠标样式，以提示用户当前的拖拽状态。\n4. 在 `mouseup` 事件中，我们清除之前设置的事件监听器，并恢复鼠标样式。\n\n实现过程中，有两个比较巧妙的点：\n\n- 计算宽度的时候，没有使用 JS 计算，而是直接使用了 CSS 的 `clamp()` 函数，一目了然。\n- 为了鼠标移动到可拖拽边界时显示一条蓝色的线，但是又不想改变元素的宽度，所以 `resize-bar` 元素的使用了 `position: absolute`，并且设置了 `translateX(-50%)` 来让其居中显示。当鼠标移入时，通过线性渐变的背景色巧妙地来实现蓝色线条的效果。\n\n正是因为第二点的实现方式，使得在边界线左右两侧都能拖拽，这一点是优于 VSCode 的，因为 VSCode 只能在左侧拖拽 😂。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/aside-toggle-drag/  \n\n"
  },
  {
    "path": "posts/async-defer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Script 的三种加载方式 (Async, Defer) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 注意 JS 的加载分为两个部分：下载和执行。\n浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染，去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \"><meta name=keywords content='JavaScript,defer,async'><meta itemprop=name content=\"script 的三种加载方式 (async, defer)\"><meta itemprop=description content=\"注意 JS 的加载分为两个部分：下载和执行。\n浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染，去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\"><meta itemprop=datePublished content=\"2019-09-08T11:47:50+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"953\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript,defer,async\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/async-defer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"script 的三种加载方式 (async, defer)\"><meta property=\"og:description\" content=\"注意 JS 的加载分为两个部分：下载和执行。\n浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染，去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-09-08T11:47:50+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"defer\"><meta property=\"article:tag\" content=\"async\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"script 的三种加载方式 (async, defer)\"><meta name=twitter:description content=\"注意 JS 的加载分为两个部分：下载和执行。\n浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染，去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/async-defer/ title=\"script 的三种加载方式 (async, defer) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/sublime-text3/ title=\"Sublime Text3 快捷键大全\"><link rel=next type=text/html href=https://lruihao.cn/posts/site-time/ title=设置网站运行时间><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/async-defer/index.md title=\"script 的三种加载方式 (async, defer) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"script 的三种加载方式 (async, defer)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/async-defer\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript, defer, async\",\"wordcount\":953,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/async-defer\\/\",\"datePublished\":\"2019-09-08T11:47:50+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/async-defer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Script 的三种加载方式 (Async, Defer)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Script 的三种加载方式 (Async, Defer)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2019-09-08 11:47:50\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-09-08>2019-09-08</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"953 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Script 的三种加载方式 (Async, Defer)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/async-defer/images/async_vs_defer.svg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/async-defer/images/async_vs_defer.svg></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#不带任何属性>不带任何属性</a></li><li><a href=#defer>defer</a></li><li><a href=#async>async</a></li><li><a href=#区别>区别</a><ol><li><a href=#相同点>相同点</a></li><li><a href=#区别点>区别点</a></li></ol></li><li><a href=#那么这三种方式各在什么情况下使用呢>那么这三种方式各在什么情况下使用呢？</a></li><li><a href=#兼容性>兼容性</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>JS 的加载分为两个部分：下载和执行。<br>浏览器在执行 HTML 的时候如果遇到<code>&lt;script></code>时会停止页面的渲染，去下载和执行 js 的文件直接遇见<code>&lt;/scirpt></code>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。</div></div></div><h2 class=heading-element id=不带任何属性><span>1 不带任何属性</span>\n<a href=#%e4%b8%8d%e5%b8%a6%e4%bb%bb%e4%bd%95%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>同步模式，又称阻塞模式，我们平时使用的最多的一种方式。当浏览器解析到<code>&lt;script></code>标签时，浏览器会停止解析其后的内容，而优先下载脚本文件，并执行其中的代码，是个同步阻塞的过程。<br>一般建议把<code>&lt;script></code>标签放在<code>&lt;body></code>结尾处，这样尽可能减少页面阻塞。<br>而如果想要异步执行 script，则可以给其加上 async 或 defer 属性。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=defer><span>2 defer</span>\n<a href=#defer class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>defer 属性在 HTML 解析期间异步下载文件，并且只在 HTML 解析完成后才执行它。对于 defer，我们可以理解是将外链的 js 放在了页面底部。js 的加载不会阻塞页面的渲染和资源的加载。不过 defer 会按照原本的 js 的顺序执行，<strong>所以如果前后有依赖关系的 js 可以放心使用。</strong></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>defer</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=async><span>3 async</span>\n<a href=#async class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>async 属性会在 HTML 解析期间异步下载文件，并在完成下载后立即暂停 HTML 解析器去执行 script 中的代码。在执行过程中浏览器处于阻塞状态，响应不了任何需求。<strong>如果 js 前后有依赖性，用 async，就很有可能出错。</strong></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>async</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=区别><span>4 区别</span>\n<a href=#%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=相同点><span>4.1 相同点</span>\n<a href=#%e7%9b%b8%e5%90%8c%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>加载文件时不阻塞页面渲染</li><li>对于 inline 的 script 无效（只适用有<code>src</code>的外部 js）</li><li>使用这两个属性的脚本中不能调用 document.write 方法</li><li>有脚本的 onload 的事件回调</li></ol><h3 class=heading-element id=区别点><span>4.2 区别点</span>\n<a href=#%e5%8c%ba%e5%88%ab%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>html4.0 中定义了 defer；html5.0 中定义了 async</li><li>浏览器支持不同</li><li>每一个 async 属性的脚本都在它下载结束之后立刻执行，同时会在 window 的 load 事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况；每一个 defer 属性的脚本都是在页面解析完毕之后，按照原本的顺序执行，同时会在 document 的 DOMContentLoaded 之前执行。</li></ol><h2 class=heading-element id=那么这三种方式各在什么情况下使用呢><span>5 那么这三种方式各在什么情况下使用呢？</span>\n<a href=#%e9%82%a3%e4%b9%88%e8%bf%99%e4%b8%89%e7%a7%8d%e6%96%b9%e5%bc%8f%e5%90%84%e5%9c%a8%e4%bb%80%e4%b9%88%e6%83%85%e5%86%b5%e4%b8%8b%e4%bd%bf%e7%94%a8%e5%91%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通常来说，尽可能使用<code>async</code>，然后是<code>defer</code>，最后不使用属性。\n并遵循以下规则：</p><ul><li>如果脚本是模块化的，并且不依赖于任何脚本，则使用<code>async</code>。</li><li>如果脚本依赖于或依赖于另一个脚本，则使用<code>defer</code>。</li><li>如果脚本很小并且有<code>async</code>脚本依赖该脚本，则不加属性。</li></ul><h2 class=heading-element id=兼容性><span>6 兼容性</span>\n<a href=#%e5%85%bc%e5%ae%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>Internet Explorer 10、Firefox、Opera、Chrome 和 Safari 支持 async 属性。</li><li>所有主流浏览器都支持 defer 属性。</li></ol><h2 class=heading-element id=参考><span>7 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html target=_blank rel=\"external nofollow noopener noreferrer\">https://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.jianshu.com/p/17dc82bf08f1 target=_blank rel=\"external nofollow noopener noreferrer\">https://www.jianshu.com/p/17dc82bf08f1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/async-defer/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/async-defer/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/async-defer/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20script+%E7%9A%84%E4%B8%89%E7%A7%8D%E5%8A%A0%E8%BD%BD%E6%96%B9%E5%BC%8F+%28async%2C+defer%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cscript+%E7%9A%84%E4%B8%89%E7%A7%8D%E5%8A%A0%E8%BD%BD%E6%96%B9%E5%BC%8F+%28async%2C+defer%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/async-defer/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/async-defer/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/async-defer/ data-title=\"Script 的三种加载方式 (Async, Defer)\" data-hashtags=JavaScript,defer,async><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/async-defer/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/async-defer/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/async-defer/ data-title=\"Script 的三种加载方式 (Async, Defer)\" data-image=/posts/async-defer/images/async_vs_defer.svg data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/async-defer/ data-title=\"Script 的三种加载方式 (Async, Defer)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/defer/ class=post-tag title=\"标签 - defer\">defer</a><a href=/tags/async/ class=post-tag title=\"标签 - async\">async</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/sublime-text3/ class=post-nav-item rel=prev title=\"Sublime Text3 快捷键大全\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Sublime Text3 快捷键大全</a><a href=/posts/site-time/ class=post-nav-item rel=next title=设置网站运行时间>设置网站运行时间<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#不带任何属性>不带任何属性</a></li><li><a href=#defer>defer</a></li><li><a href=#async>async</a></li><li><a href=#区别>区别</a><ol><li><a href=#相同点>相同点</a></li><li><a href=#区别点>区别点</a></li></ol></li><li><a href=#那么这三种方式各在什么情况下使用呢>那么这三种方式各在什么情况下使用呢？</a></li><li><a href=#兼容性>兼容性</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/41df7cfd1a135f290b3fa56272d53632.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/41df7cfd1a135f290b3fa56272d53632.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/async-defer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/async-defer/index.md",
    "content": "# Script 的三种加载方式 (Async, Defer)\n\n\n{{< admonition note >}}\nJS 的加载分为两个部分：下载和执行。  \n浏览器在执行 HTML 的时候如果遇到`<script>`时会停止页面的渲染，去下载和执行 js 的文件直接遇见`</scirpt>`会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\n{{< /admonition >}}\n\n<!--more-->\n\n## 不带任何属性\n\n> 同步模式，又称阻塞模式，我们平时使用的最多的一种方式。当浏览器解析到`<script>`标签时，浏览器会停止解析其后的内容，而优先下载脚本文件，并执行其中的代码，是个同步阻塞的过程。  \n> 一般建议把`<script>`标签放在`<body>`结尾处，这样尽可能减少页面阻塞。  \n> 而如果想要异步执行 script，则可以给其加上 async 或 defer 属性。\n\n```html\n<script>\n```\n\n## defer\n\n> defer 属性在 HTML 解析期间异步下载文件，并且只在 HTML 解析完成后才执行它。对于 defer，我们可以理解是将外链的 js 放在了页面底部。js 的加载不会阻塞页面的渲染和资源的加载。不过 defer 会按照原本的 js 的顺序执行，**所以如果前后有依赖关系的 js 可以放心使用。**\n\n```html\n<script defer>\n```\n\n## async\n\n> async 属性会在 HTML 解析期间异步下载文件，并在完成下载后立即暂停 HTML 解析器去执行 script 中的代码。在执行过程中浏览器处于阻塞状态，响应不了任何需求。**如果 js 前后有依赖性，用 async，就很有可能出错。**\n\n```html\n<script async>\n```\n\n## 区别\n\n### 相同点\n\n1. 加载文件时不阻塞页面渲染\n2. 对于 inline 的 script 无效（只适用有`src`的外部 js）\n3. 使用这两个属性的脚本中不能调用 document.write 方法\n4. 有脚本的 onload 的事件回调\n\n### 区别点\n\n1. html4.0 中定义了 defer；html5.0 中定义了 async\n2. 浏览器支持不同\n3. 每一个 async 属性的脚本都在它下载结束之后立刻执行，同时会在 window 的 load 事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况；每一个 defer 属性的脚本都是在页面解析完毕之后，按照原本的顺序执行，同时会在 document 的 DOMContentLoaded 之前执行。\n\n## 那么这三种方式各在什么情况下使用呢？\n\n通常来说，尽可能使用`async`，然后是`defer`，最后不使用属性。\n并遵循以下规则：\n\n- 如果脚本是模块化的，并且不依赖于任何脚本，则使用`async`。\n- 如果脚本依赖于或依赖于另一个脚本，则使用`defer`。\n- 如果脚本很小并且有`async`脚本依赖该脚本，则不加属性。\n\n## 兼容性\n\n1. Internet Explorer 10、Firefox、Opera、Chrome 和 Safari 支持 async 属性。\n2. 所有主流浏览器都支持 defer 属性。\n\n## 参考\n\n- <https://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html>\n- <https://www.jianshu.com/p/17dc82bf08f1>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/async-defer/  \n\n"
  },
  {
    "path": "posts/at-layer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS @Layer：构建更高效、更可维护的样式层级 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\n\"><meta name=keywords content='CSS,@layer'><meta itemprop=name content=\"CSS @layer：构建更高效、更可维护的样式层级\"><meta itemprop=description content=\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\"><meta itemprop=datePublished content=\"2025-06-18T10:35:47+08:00\"><meta itemprop=dateModified content=\"2025-06-18T12:41:26+08:00\"><meta itemprop=wordCount content=\"1460\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,@layer\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/at-layer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS @layer：构建更高效、更可维护的样式层级\"><meta property=\"og:description\" content=\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-06-18T10:35:47+08:00\"><meta property=\"article:modified_time\" content=\"2025-06-18T12:41:26+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"@layer\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CSS @layer：构建更高效、更可维护的样式层级\"><meta name=twitter:description content=\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/at-layer/ title=\"CSS @layer：构建更高效、更可维护的样式层级 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vue-build/ title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/json-viewer-element/ title=\"A custom element for viewing and interacting with JSON data.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/at-layer/index.md title=\"CSS @layer：构建更高效、更可维护的样式层级 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/at-layer\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, @layer\",\"wordcount\":1460,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/at-layer\\/\",\"datePublished\":\"2025-06-18T10:35:47+08:00\",\"dateModified\":\"2025-06-18T12:41:26+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/at-layer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS @Layer：构建更高效、更可维护的样式层级</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>CSS @Layer：构建更高效、更可维护的样式层级</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2025-06-18 10:35:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-06-18>2025-06-18</time></span>&nbsp;<span title=\"更新于 2025-06-18 12:41:26\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-06-18>2025-06-18</time></span>&nbsp;<span title=\"1460 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"CSS @Layer：构建更高效、更可维护的样式层级\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#layer-的背景><code>@layer</code> 的背景</a></li><li><a href=#layer-的作用><code>@layer</code> 的作用</a><ol><li><a href=#定义样式层级>定义样式层级</a></li><li><a href=#提升代码可维护性>提升代码可维护性</a></li><li><a href=#支持组件化开发>支持组件化开发</a></li></ol></li><li><a href=#layer-的语法><code>@layer</code> 的语法</a><ol><li><a href=#基本语法>基本语法</a></li><li><a href=#让整个-css-文件变成-layer>让整个 CSS 文件变成 <code>@layer</code></a></li><li><a href=#嵌套层级>嵌套层级</a></li></ol></li><li><a href=#layer-的兼容性><code>@layer</code> 的兼容性</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-06-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 <code>@layer</code> 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 <code>@layer</code> 的背景、作用以及语法，带你一探究竟。</p><h2 class=heading-element id=layer-的背景><span>1 <code>@layer</code> 的背景</span>\n<a href=#layer-%e7%9a%84%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 CSS 的发展历程中，样式的优先级规则一直是核心概念之一。默认情况下，CSS 样式按照选择器的优先级（如内联样式 > ID 选择器 > 类选择器 > 元素选择器）以及代码的书写顺序来决定最终的样式效果。然而，这种简单的优先级规则在大型项目中常常会引发问题：</p><ol><li><strong>样式冲突</strong>：多个样式规则可能同时作用于同一个元素，导致样式冲突，开发者需要不断调整选择器的优先级来解决问题。</li><li><strong>维护困难</strong>：随着项目的复杂度增加，样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。</li><li><strong>组件化开发的挑战</strong>：在组件化开发中，不同组件的样式可能会相互干扰，导致样式管理混乱。</li></ol><p>为了解决这些问题，CSS 工作组引入了 <code>@layer</code> 规则。<code>@layer</code> 允许开发者显式地定义样式的层级关系，从而更好地组织和管理样式规则。</p><h2 class=heading-element id=layer-的作用><span>2 <code>@layer</code> 的作用</span>\n<a href=#layer-%e7%9a%84%e4%bd%9c%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=定义样式层级><span>2.1 定义样式层级</span>\n<a href=#%e5%ae%9a%e4%b9%89%e6%a0%b7%e5%bc%8f%e5%b1%82%e7%ba%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>@layer</code> 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层，我们可以明确地控制样式的优先级顺序。例如，我们可以将基础样式定义在较低的层级，而将特定组件的样式定义在较高的层级，从而避免样式冲突。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>base</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>body</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>font-family</span><span class=p>:</span> <span class=n>Arial</span><span class=p>,</span> <span class=kc>sans-serif</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>margin</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>padding</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=提升代码可维护性><span>2.2 提升代码可维护性</span>\n<a href=#%e6%8f%90%e5%8d%87%e4%bb%a3%e7%a0%81%e5%8f%af%e7%bb%b4%e6%8a%a4%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用 <code>@layer</code> 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层，便于后续的修改和扩展。同时，分层的样式规则也更容易被团队成员理解和协作。</p><h3 class=heading-element id=支持组件化开发><span>2.3 支持组件化开发</span>\n<a href=#%e6%94%af%e6%8c%81%e7%bb%84%e4%bb%b6%e5%8c%96%e5%bc%80%e5%8f%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在组件化开发中，<code>@layer</code> 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级，从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。</p><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>components</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nc>cell-button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>background-color</span><span class=p>:</span> <span class=kc>blue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>color</span><span class=p>:</span> <span class=kc>white</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>padding</span><span class=p>:</span> <span class=mi>10</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>border</span><span class=p>:</span> <span class=kc>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>cursor</span><span class=p>:</span> <span class=kc>pointer</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>在业务代码中，我们可以无视组件 CSS 的优先级，直接进行重置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>cell-button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-color</span><span class=p>:</span> <span class=kc>red</span><span class=p>;</span> <span class=c>/* 覆盖组件样式 */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>眼见为实：</p><iframe src=https://lruihao.github.io/html-demo/css-at-layer height=50px width=100%></iframe><p>可以理解为 <code>@layer</code> 定义的层级会整体下降一个优先级，这样便于分开业务代码和组件代码的样式管理。</p><h2 class=heading-element id=layer-的语法><span>3 <code>@layer</code> 的语法</span>\n<a href=#layer-%e7%9a%84%e8%af%ad%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=基本语法><span>3.1 基本语法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>layer-name</span><span class=o>?</span> <span class=p>{</span><span class=nt>rules</span><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>layer-name</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>layer-name</span><span class=o>,</span> <span class=nt>layer-name</span><span class=o>,</span> <span class=nt>layer-name</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p>简而言之，<code>@layer</code> 规则可以用来<strong>定义一个样式层级</strong>或者<strong>改变现有层级的优先级</strong>。</p><ul><li><code>@layer layer-name? {rules};</code> 这种形式用于定义一个新的样式层级，如果名称为空，则为匿名层级。</li><li><code>@layer</code> 后接一个或多个层级名称，用于指定样式层级的优先级顺序，按照前后顺序。</li></ul><h3 class=heading-element id=让整个-css-文件变成-layer><span>3.2 让整个 CSS 文件变成 <code>@layer</code></span>\n<a href=#%e8%ae%a9%e6%95%b4%e4%b8%aa-css-%e6%96%87%e4%bb%b6%e5%8f%98%e6%88%90-layer class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>如果我们希望将整个 CSS 文件作为一个层级，可以使用以下语法：</p><p><code>@import</code> 中使用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>import</span> <span class=o>(</span><span class=nt>utilities</span><span class=p>.</span><span class=nc>css</span><span class=o>)</span> <span class=nt>layer</span><span class=o>(</span><span class=nt>utilities</span><span class=o>)</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p><code>&lt;link></code> 元素引用 (*)：</p><div class=\"alert alert-warning\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z\"/></svg>警告</p><p>该用法有待考证，在 MDN 上尚未找到明确文档。</p></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;utilities.css&#34;</span> <span class=na>layer</span><span class=o>=</span><span class=s>&#34;utilities&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=c>&lt;!-- 样式引入到一个匿名级联层中 --&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;utilities.css&#34;</span> <span class=na>layer</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=嵌套层级><span>3.3 嵌套层级</span>\n<a href=#%e5%b5%8c%e5%a5%97%e5%b1%82%e7%ba%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>@layer</code> 也支持嵌套定义，这使得我们可以在一个层级中进一步细分样式规则。例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>base</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=p>@</span><span class=k>layer</span> <span class=nt>typography</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nt>h1</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>font-size</span><span class=p>:</span> <span class=mi>24</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nt>p</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>font-size</span><span class=p>:</span> <span class=mi>16</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>在嵌套层级中，外层层级的优先级低于内层层级。</p><p>多嵌套语法下的优先级：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>A</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>p</span> <span class=p>{</span> <span class=k>color</span><span class=p>:</span> <span class=kc>red</span><span class=p>;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>@</span><span class=k>layer</span> <span class=nt>B</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nt>p</span> <span class=p>{</span> <span class=k>color</span><span class=p>:</span> <span class=kc>green</span><span class=p>;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>C</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>p</span> <span class=p>{</span> <span class=k>color</span><span class=p>:</span> <span class=kc>orange</span><span class=p>;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>@</span><span class=k>layer</span> <span class=nt>D</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nt>p</span> <span class=p>{</span> <span class=k>color</span><span class=p>:</span> <span class=kc>blue</span><span class=p>;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>其中的优先级大小是这样的：C > C.D > A > A.B</p><p>另外，嵌套语法还支持使用级联写法简化。</p><p>例如，普通内外嵌套写法：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>outer</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>width</span><span class=p>:</span> <span class=mi>100</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>height</span><span class=p>:</span> <span class=mi>30</span><span class=kt>px</span><span class=p>;</span>    \n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>@</span><span class=k>layer</span> <span class=nt>inner</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nt>button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>height</span><span class=p>:</span> <span class=mi>40</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>width</span><span class=p>:</span> <span class=mi>160</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>    \n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>上面的内外嵌套语法还可以写成下面这样：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>outer</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>width</span><span class=p>:</span> <span class=mi>100</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>height</span><span class=p>:</span> <span class=mi>30</span><span class=kt>px</span><span class=p>;</span>    \n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>layer</span> <span class=nt>outer</span><span class=p>.</span><span class=nc>inner</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>height</span><span class=p>:</span> <span class=mi>40</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>width</span><span class=p>:</span> <span class=mi>160</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>    \n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=layer-的兼容性><span>4 <code>@layer</code> 的兼容性</span>\n<a href=#layer-%e7%9a%84%e5%85%bc%e5%ae%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><caniuse-embed feature=mdn-css_at-rules_layer past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed><h2 class=heading-element id=参考><span>5 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://developer.mozilla.org/en-US/docs/Web/CSS/@layer target=_blank rel=\"external nofollow noopener noreferrer\">MDN Web Docs - @layer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.zhangxinxu.com/wordpress/2022/05/css-layer-rule/ target=_blank rel=\"external nofollow noopener noreferrer\">详解日后定会大规模使用的 CSS @layer 规则<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-06-18 12:41:26\">更新于 2025-06-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/c0a61ec36b1c6c3ade0d3ebbf1362e5dcd5e3741 rel=\"external nofollow noopener noreferrer\" target=_blank title='Docs: 发布 \"CSS @layer：构建更高效、更可维护的样式层级\"&#10&#10Commit: c0a61ec36b1c6c3ade0d3ebbf1362e5dcd5e3741 [c0a61ec]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-06-18 12:41:26&#10Commit Date: 2025-06-18 14:08:43'><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>c0a61ec</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/at-layer/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/at-layer.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/at-layer.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20CSS+%40layer%EF%BC%9A%E6%9E%84%E5%BB%BA%E6%9B%B4%E9%AB%98%E6%95%88%E3%80%81%E6%9B%B4%E5%8F%AF%E7%BB%B4%E6%8A%A4%E7%9A%84%E6%A0%B7%E5%BC%8F%E5%B1%82%E7%BA%A7&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCSS+%40layer%EF%BC%9A%E6%9E%84%E5%BB%BA%E6%9B%B4%E9%AB%98%E6%95%88%E3%80%81%E6%9B%B4%E5%8F%AF%E7%BB%B4%E6%8A%A4%E7%9A%84%E6%A0%B7%E5%BC%8F%E5%B1%82%E7%BA%A7%7c%0A%7cURL%7chttps://lruihao.cn/posts/at-layer/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/at-layer.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/at-layer/ data-title=\"CSS @Layer：构建更高效、更可维护的样式层级\" data-hashtags=CSS,@layer><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/at-layer/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/at-layer/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/at-layer/ data-title=\"CSS @Layer：构建更高效、更可维护的样式层级\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/at-layer/ data-title=\"CSS @Layer：构建更高效、更可维护的样式层级\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/@layer/ class=post-tag title=\"标签 - @layer\">@layer</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vue-build/ class=post-nav-item rel=prev title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Vue.js History 模式下的 NGINX 配置与 API 代理</a><a href=/projects/lruihao/json-viewer-element/ class=post-nav-item rel=next title=Lruihao/json-viewer-element>Lruihao/json-viewer-element<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#layer-的背景><code>@layer</code> 的背景</a></li><li><a href=#layer-的作用><code>@layer</code> 的作用</a><ol><li><a href=#定义样式层级>定义样式层级</a></li><li><a href=#提升代码可维护性>提升代码可维护性</a></li><li><a href=#支持组件化开发>支持组件化开发</a></li></ol></li><li><a href=#layer-的语法><code>@layer</code> 的语法</a><ol><li><a href=#基本语法>基本语法</a></li><li><a href=#让整个-css-文件变成-layer>让整个 CSS 文件变成 <code>@layer</code></a></li><li><a href=#嵌套层级>嵌套层级</a></li></ol></li><li><a href=#layer-的兼容性><code>@layer</code> 的兼容性</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d367a7d65bc40ba4cd89e27d9afdd887.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d367a7d65bc40ba4cd89e27d9afdd887.js defer></script><script src=/js/theme.min.js defer></script><script src=/lib/shortcode-caniuse/caniuse-embed-element.iife.js async defer></script><script src=/js/shortcode-caniuse.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/at-layer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/at-layer/index.md",
    "content": "# CSS @Layer：构建更高效、更可维护的样式层级\n\n\n在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 `@layer` 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 `@layer` 的背景、作用以及语法，带你一探究竟。\n\n<!--more-->\n\n## `@layer` 的背景\n\n在 CSS 的发展历程中，样式的优先级规则一直是核心概念之一。默认情况下，CSS 样式按照选择器的优先级（如内联样式 > ID 选择器 > 类选择器 > 元素选择器）以及代码的书写顺序来决定最终的样式效果。然而，这种简单的优先级规则在大型项目中常常会引发问题：\n\n1. **样式冲突**：多个样式规则可能同时作用于同一个元素，导致样式冲突，开发者需要不断调整选择器的优先级来解决问题。\n2. **维护困难**：随着项目的复杂度增加，样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。\n3. **组件化开发的挑战**：在组件化开发中，不同组件的样式可能会相互干扰，导致样式管理混乱。\n\n为了解决这些问题，CSS 工作组引入了 `@layer` 规则。`@layer` 允许开发者显式地定义样式的层级关系，从而更好地组织和管理样式规则。\n\n## `@layer` 的作用\n\n### 定义样式层级\n\n`@layer` 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层，我们可以明确地控制样式的优先级顺序。例如，我们可以将基础样式定义在较低的层级，而将特定组件的样式定义在较高的层级，从而避免样式冲突。\n\n```css\n@layer base {\n  body {\n    font-family: Arial, sans-serif;\n    margin: 0;\n    padding: 0;\n  }\n}\n```\n\n### 提升代码可维护性\n\n使用 `@layer` 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层，便于后续的修改和扩展。同时，分层的样式规则也更容易被团队成员理解和协作。\n\n### 支持组件化开发\n\n在组件化开发中，`@layer` 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级，从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。\n\n例如：\n\n```css\n@layer components {\n  .cell-button {\n    background-color: blue;\n    color: white;\n    padding: 10px;\n    border: none;\n    cursor: pointer;\n  }\n}\n```\n\n在业务代码中，我们可以无视组件 CSS 的优先级，直接进行重置：\n\n```css\n.cell-button {\n  background-color: red; /* 覆盖组件样式 */\n}\n```\n\n眼见为实：\n\n{{< html-demo \"css-at-layer\" \"50px\" >}}\n\n可以理解为 `@layer` 定义的层级会整体下降一个优先级，这样便于分开业务代码和组件代码的样式管理。\n\n## `@layer` 的语法\n\n### 基本语法\n\n```css\n@layer layer-name? {rules}\n@layer layer-name;\n@layer layer-name, layer-name, layer-name;\n```\n\n简而言之，`@layer` 规则可以用来**定义一个样式层级**或者**改变现有层级的优先级**。\n\n- `@layer layer-name? {rules};` 这种形式用于定义一个新的样式层级，如果名称为空，则为匿名层级。\n- `@layer` 后接一个或多个层级名称，用于指定样式层级的优先级顺序，按照前后顺序。\n\n### 让整个 CSS 文件变成 `@layer`\n\n如果我们希望将整个 CSS 文件作为一个层级，可以使用以下语法：\n\n`@import` 中使用：\n\n```css\n@import (utilities.css) layer(utilities);\n```\n\n`<link>` 元素引用 (*)：\n\n> [!WARNING]\n> 该用法有待考证，在 MDN 上尚未找到明确文档。\n\n```html\n<link rel=\"stylesheet\" href=\"utilities.css\" layer=\"utilities\">\n<!-- 样式引入到一个匿名级联层中 -->\n<link rel=\"stylesheet\" href=\"utilities.css\" layer>\n```\n\n### 嵌套层级\n\n`@layer` 也支持嵌套定义，这使得我们可以在一个层级中进一步细分样式规则。例如：\n\n```css\n@layer base {\n  @layer typography {\n    h1 {\n      font-size: 24px;\n    }\n    p {\n      font-size: 16px;\n    }\n  }\n}\n```\n\n在嵌套层级中，外层层级的优先级低于内层层级。\n\n多嵌套语法下的优先级：\n\n```css\n@layer A {\n  p { color: red; }\n  @layer B {\n    p { color: green; }\n  }\n}\n@layer C {\n  p { color: orange; }\n  @layer D {\n    p { color: blue; }\n  }\n}\n```\n\n其中的优先级大小是这样的：C > C.D > A > A.B\n\n另外，嵌套语法还支持使用级联写法简化。\n\n例如，普通内外嵌套写法：\n\n```css\n@layer outer {\n  button {\n    width: 100px;\n    height: 30px;    \n  }\n  @layer inner {\n    button {\n      height: 40px;\n      width: 160px;\n    }    \n  }\n}\n```\n\n上面的内外嵌套语法还可以写成下面这样：\n\n```css\n@layer outer {\n  button {\n    width: 100px;\n    height: 30px;    \n  }\n}\n@layer outer.inner {\n  button {\n    height: 40px;\n    width: 160px;\n  }    \n}\n```\n\n## `@layer` 的兼容性\n\n{{< caniuse \"mdn-css_at-rules_layer\" >}}\n\n## 参考\n\n- [MDN Web Docs - @layer](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer)\n- [详解日后定会大规模使用的 CSS @layer 规则](https://www.zhangxinxu.com/wordpress/2022/05/css-layer-rule/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/at-layer/  \n\n"
  },
  {
    "path": "posts/auto-sizes/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>聊聊 Chrome 新增的 Sizes=\"auto\" 属性 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性。\n\"><meta name=keywords content='HTML'><meta itemprop=name content='聊聊 Chrome 新增的 sizes=\"auto\" 属性'><meta itemprop=description content=\"聊聊 Chrome 新增的 sizes=“auto” 属性。\"><meta itemprop=datePublished content=\"2024-02-21T10:00:13+08:00\"><meta itemprop=dateModified content=\"2024-02-21T11:06:12+08:00\"><meta itemprop=wordCount content=\"1718\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"HTML\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/auto-sizes/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content='聊聊 Chrome 新增的 sizes=\"auto\" 属性'><meta property=\"og:description\" content=\"聊聊 Chrome 新增的 sizes=“auto” 属性。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-02-21T10:00:13+08:00\"><meta property=\"article:modified_time\" content=\"2024-02-21T11:06:12+08:00\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content='聊聊 Chrome 新增的 sizes=\"auto\" 属性'><meta name=twitter:description content=\"聊聊 Chrome 新增的 sizes=“auto” 属性。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/auto-sizes/ title='聊聊 Chrome 新增的 sizes=\"auto\" 属性 | 菠菜眾長'><link rel=prev type=text/html href=https://lruihao.cn/years/2023/ title=\"2023 年度总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/overflow-tooltip/ title=\"实现类似于 Element UI 表格的溢出文本提示功能\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/auto-sizes/index.md title=\"聊聊 Chrome 新增的 sizes=\\\" auto\\\" 属性 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/auto-sizes\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"HTML\",\"wordcount\":1718,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/auto-sizes\\/\",\"datePublished\":\"2024-02-21T10:00:13+08:00\",\"dateModified\":\"2024-02-21T11:06:12+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/auto-sizes/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a></span></div><div class=post-meta-line><span title=\"发布于 2024-02-21 10:00:13\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-02-21>2024-02-21</time></span>&nbsp;<span title=\"更新于 2024-02-21 11:06:12\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-02-21>2024-02-21</time></span>&nbsp;<span title=\"1718 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性'><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前景>前景</a></li><li><a href=#简介>简介</a></li><li><a href=#详解>详解</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-02-21，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性。</p><h2 class=heading-element id=前景><span>1 前景</span>\n<a href=#%e5%89%8d%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>起因是网友给 FixIt 提了一个 issue <a href=https://github.com/hugo-fixit/FixIt/issues/411 target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/FixIt#411<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，说图片比例异常，我一回想，最近没动过图片的代码，于是用 Safari 和 Edge 试了一下，发现没问题，那么基本可以确定是 Chrome 新版的问题了。</p><p>经查，从 Chrome (121.0.6167.85) 开始，给 img size=&ldquo;auto&rdquo; 加了一个默认样式，恰巧 FixIt 主题之前用到了 <a href=https://github.com/aFarkas/lazysizes target=_blank rel=\"external nofollow noopener noreferrer\">lazysizes.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个库来做图片懒加载，也用了 size=&ldquo;auto&rdquo; 这个属性，于是就导致图片宽高比异常了。</p><p>解决办法：既然 FixIt 并没有再使用 lazysizes.js 来做图片懒加载，那么就直接去掉 size=&ldquo;auto&rdquo; 这个属性就好了。</p><p>好，问题解决了，那么就来看看这个 size=&ldquo;auto&rdquo; 到底是什么。</p><h2 class=heading-element id=简介><span>2 简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在网页开发中，我们通常会遇到需要对网页上的元素，尤其是图片进行布局和尺寸调整的情况。在 HTML 中，我们可以利用一些内置的属性来帮助我们完成这项工作，而 sizes 就是其中之一。sizes 属性定义了用于描述其中 <code>&lt;img></code>、<code>&lt;source></code> 元素 display size，以及 <code>&lt;link></code> 元素 viewport 的 source 大小。换句话说，它是一种设定网页元素尺寸的机制。</p><p>编写、阅读和维护响应式图片的 sizes 属性是最繁琐的部分；对于懒加载的图片，auto-sizes 是对平台的一个很好的补充。据统计，目前已有十分之一的 sizes 属性正在使用 auto，但是是通过 lazysizes.js（一个用于支持图片懒加载的库）。</p><h2 class=heading-element id=详解><span>3 详解</span>\n<a href=#%e8%af%a6%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>sizes 支持了 &ldquo;auto&rdquo; 值，那么情况就会变得稍微有些复杂。所谓的 &ldquo;auto&rdquo; 模式，实际上是一种让浏览器自动设定图片尺寸的模式。在这种模式下，浏览器会试图选择最合适的尺寸来显示图片，以获得最佳的用户体验。它的应用场景主要是在网站设计和开发过程中，需要灵活设定元素尺寸，尤其是图片的尺寸，以便于在不同设备和浏览器环境下，都能呈现出良好的布局和视觉效果。</p><p>根据 <a href=https://html.spec.whatwg.org/#sizes-attributes target=_blank rel=\"external nofollow noopener noreferrer\">HTML 规范 4.8.4.2.2 Sizes attributes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的提示：</p><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>此外，强烈建议使用 <code>width</code> 和 <code>height</code> 属性或使用 CSS 来指定尺寸。如果没有指定尺寸，图像可能会以 300x150 尺寸渲染，因为在渲染部分 sizes==&ldquo;auto&rdquo; 中有所暗示。contain-intrinsic-size: 300px 150px</div></div></div><p>Chrome 中打开调试台，可以看到默认样式：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>img</span><span class=p>:</span><span class=nd>has</span><span class=o>([</span><span class=nt>sizes</span><span class=o>=</span><span class=s2>&#34;auto&#34;</span> <span class=nt>i</span><span class=o>],</span> <span class=o>[</span><span class=nt>sizes</span><span class=o>^=</span><span class=s2>&#34;auto,&#34;</span> <span class=nt>i</span><span class=o>])</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>contain</span><span class=p>:</span> <span class=k>size</span> <span class=cp>!important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>contain-intrinsic-size</span><span class=p>:</span> <span class=mi>300</span><span class=kt>px</span> <span class=mi>150</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>这段 CSS 代码使用了属性选择器来选择 <code>img</code> 元素，具体的选择规则如下：</p><ol><li><code>[sizes=\"auto\" i]</code>：选择具有 <code>sizes</code> 属性且其值为 <code>auto</code>（不区分大小写）的 <code>img</code> 元素。</li><li><code>[sizes^=\"auto,\" i]</code>：选择具有 <code>sizes</code> 属性且以 <code>auto,</code> 开头（不区分大小写）的 <code>img</code> 元素。</li></ol><p>对于匹配上述选择规则的 <code>img</code> 元素，应用以下样式：</p><ul><li><code>contain: size !important;</code>：将元素的内容缩放以适合其容器的大小，并禁止其他样式表覆盖此规则（<code>!important</code> 用于提升优先级）。</li><li><code>contain-intrinsic-size: 300px 150px;</code>：指定元素的内在尺寸为宽度 300 像素和高度 150 像素。这可以影响到元素在执行缩放时的最终尺寸。</li></ul><p>顺便说一下，CSS 中的伪类 <code>:has</code> 被称为“父选择器”，但目前并没有广泛支持，因此这个选择器可能无法在所有浏览器中正常工作。另外，<code>i</code> 标记表示进行不区分大小写的匹配。</p><p>响应式图像自然尺寸的设定可能会让人意想不到的复杂，但实际上：</p><ol><li>有许多方式可以让已加载资源的自然尺寸影响其对应的 <code>&lt;img></code> 的布局尺寸。</li><li>每当 <code>&lt;img></code> 标签的布局尺寸发生变化，sizes=&ldquo;auto&rdquo; 的值就会进行更新，这可能会触发新的资源加载。</li><li>一旦加载新的资源，这个资源就会有新的自然尺寸，这可能会影响 <code>&lt;img></code> 的布局尺寸，导致 sizes=&ldquo;auto&rdquo; 的值更新，然后可能会触发又一次的资源加载；新加载的资源会有新的自然尺寸，这样以此类推&mldr;等等。</li></ol><p><a class=lightgallery target=_blank href=/posts/auto-sizes/images/resource-selection.png title=\"Resource Selection\" data-thumbnail=/posts/auto-sizes/images/resource-selection.png data-sub-html=\"<h2>Resource Selection</h2>\"><img loading=lazy src=/posts/auto-sizes/images/resource-selection.png alt=\"Resource Selection\" height=623 width=796></a></p><p>关于 sizes=&ldquo;auto&rdquo; 的规范讨论其实主要就是：那些能通过这种方式让 srcset 中的每一个资源依次被加载的极端情况。</p><p>Simon Pieters，撰写了 auto-sizes 规范的人，曾经巧妙并勇敢地尝试定义可能触发循环依赖的所有情况，同时也采用了一些无法让作者察觉或是感到奇怪的解决方式来避开这些问题。但是，当真正落实到实现的时候，这些权宜之计并没有站住脚。最后，大家都认为唯一的解决方法是做出一个明确的切割：规定加载资源的自然尺寸绝对不能影响其所对应的 <code>&lt;img></code> 的布局，这一点在涉及到 sizes=&ldquo;auto&rdquo; 时尤为重要。</p><p><a class=lightgallery target=_blank href=/posts/auto-sizes/images/css-containment.png title=\"CSS Containment\" data-thumbnail=/posts/auto-sizes/images/css-containment.png data-sub-html=\"<h2>CSS Containment</h2>\"><img loading=lazy src=/posts/auto-sizes/images/css-containment.png alt=\"CSS Containment\" height=388 width=801></a></p><p>幸运的是，我们有一个相对较新的特性，它就是“尺寸包含”（size containment），专门用来解决这个问题。</p><p><a class=lightgallery target=_blank href=/posts/auto-sizes/images/size-containment.png title=\"Size Containment\" data-thumbnail=/posts/auto-sizes/images/size-containment.png data-sub-html=\"<h2>Size Containment</h2>\"><img loading=lazy src=/posts/auto-sizes/images/size-containment.png alt=\"Size Containment\" height=640 width=787></a></p><p>所以，现在 Chrome 的 UA stylesheet 中的内容就变成了上面那段 CSS 代码的样子。</p><p>对于为什么选择 300×150，是因为这就是 <code>&lt;video></code> 和 <code>&lt;canvas></code> 标签所采取的方式；所有这些元素都会使用这种相对小一些但又不为零的默认尺寸，目的在于鼓励你优化你的布局。</p><h2 class=heading-element id=参考链接><span>4 参考链接</span>\n<a href=#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://html.spec.whatwg.org/#sizes-attributes target=_blank rel=\"external nofollow noopener noreferrer\">HTML 规范 4.8.4.2.2 Sizes attributes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/whatwg/html/issues/9448 target=_blank rel=\"external nofollow noopener noreferrer\">whatwg/html#9448<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://issues.chromium.org/issues/41495139 target=_blank rel=\"external nofollow noopener noreferrer\">Chromium#41495139<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-02-21 11:06:12\">更新于 2024-02-21&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d0105d6e82637df9e5e9bb26e7fedbff2e245224 rel=\"external nofollow noopener noreferrer\" target=_blank title='Docs: 新增文章“聊聊 Chrome 新增的 sizes=\"auto\" 属性”&#10&#10Commit: d0105d6e82637df9e5e9bb26e7fedbff2e245224 [d0105d6]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-02-21 11:06:12'><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d0105d6</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/auto-sizes/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_html/auto-sizes/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_html/auto-sizes/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%81%8A%E8%81%8A+Chrome+%E6%96%B0%E5%A2%9E%E7%9A%84+sizes%3D%22auto%22+%E5%B1%9E%E6%80%A7&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%81%8A%E8%81%8A+Chrome+%E6%96%B0%E5%A2%9E%E7%9A%84+sizes%3D%22auto%22+%E5%B1%9E%E6%80%A7%7c%0A%7cURL%7chttps://lruihao.cn/posts/auto-sizes/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_html/auto-sizes/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/auto-sizes/ data-title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性' data-hashtags=HTML><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/auto-sizes/ data-hashtag=HTML><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/auto-sizes/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/auto-sizes/ data-title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性' data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/auto-sizes/ data-title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性'><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/years/2023/ class=post-nav-item rel=prev title=\"2023 年度总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>2023 年度总结</a><a href=/posts/overflow-tooltip/ class=post-nav-item rel=next title=\"实现类似于 Element UI 表格的溢出文本提示功能\">实现类似于 Element UI 表格的溢出文本提示功能<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前景>前景</a></li><li><a href=#简介>简介</a></li><li><a href=#详解>详解</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/bbce6fbd8d4e759d7e4770be2ac8fe1e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/bbce6fbd8d4e759d7e4770be2ac8fe1e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/auto-sizes/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/auto-sizes/index.md",
    "content": "# 聊聊 Chrome 新增的 Sizes=\"auto\" 属性\n\n\n聊聊 Chrome 新增的 sizes=\"auto\" 属性。\n\n<!--more-->\n\n## 前景\n\n起因是网友给 FixIt 提了一个 issue [hugo-fixit/FixIt#411](https://github.com/hugo-fixit/FixIt/issues/411)，说图片比例异常，我一回想，最近没动过图片的代码，于是用 Safari 和 Edge 试了一下，发现没问题，那么基本可以确定是 Chrome 新版的问题了。\n\n经查，从 Chrome (121.0.6167.85) 开始，给 img size=\"auto\" 加了一个默认样式，恰巧 FixIt 主题之前用到了 [lazysizes.js](https://github.com/aFarkas/lazysizes) 这个库来做图片懒加载，也用了 size=\"auto\" 这个属性，于是就导致图片宽高比异常了。\n\n解决办法：既然 FixIt 并没有再使用 lazysizes.js 来做图片懒加载，那么就直接去掉 size=\"auto\" 这个属性就好了。\n\n好，问题解决了，那么就来看看这个 size=\"auto\" 到底是什么。\n\n## 简介\n\n在网页开发中，我们通常会遇到需要对网页上的元素，尤其是图片进行布局和尺寸调整的情况。在 HTML 中，我们可以利用一些内置的属性来帮助我们完成这项工作，而 sizes 就是其中之一。sizes 属性定义了用于描述其中 `<img>`、`<source>` 元素 display size，以及 `<link>` 元素 viewport 的 source 大小。换句话说，它是一种设定网页元素尺寸的机制。\n\n编写、阅读和维护响应式图片的 sizes 属性是最繁琐的部分；对于懒加载的图片，auto-sizes 是对平台的一个很好的补充。据统计，目前已有十分之一的 sizes 属性正在使用 auto，但是是通过 lazysizes.js（一个用于支持图片懒加载的库）。\n\n## 详解\n\nsizes 支持了 \"auto\" 值，那么情况就会变得稍微有些复杂。所谓的 \"auto\" 模式，实际上是一种让浏览器自动设定图片尺寸的模式。在这种模式下，浏览器会试图选择最合适的尺寸来显示图片，以获得最佳的用户体验。它的应用场景主要是在网站设计和开发过程中，需要灵活设定元素尺寸，尤其是图片的尺寸，以便于在不同设备和浏览器环境下，都能呈现出良好的布局和视觉效果。\n\n根据 [HTML 规范 4.8.4.2.2 Sizes attributes](https://html.spec.whatwg.org/#sizes-attributes) 的提示：\n\n{{< admonition note >}}\n此外，强烈建议使用 `width` 和 `height` 属性或使用 CSS 来指定尺寸。如果没有指定尺寸，图像可能会以 300x150 尺寸渲染，因为在渲染部分 sizes==\"auto\" 中有所暗示。contain-intrinsic-size: 300px 150px\n{{< /admonition >}}\n\nChrome 中打开调试台，可以看到默认样式：\n\n```css\nimg:has([sizes=\"auto\" i], [sizes^=\"auto,\" i]) {\n  contain: size !important;\n  contain-intrinsic-size: 300px 150px;\n}\n```\n\n这段 CSS 代码使用了属性选择器来选择 `img` 元素，具体的选择规则如下：\n\n1. `[sizes=\"auto\" i]`：选择具有 `sizes` 属性且其值为 `auto`（不区分大小写）的 `img` 元素。\n2. `[sizes^=\"auto,\" i]`：选择具有 `sizes` 属性且以 `auto,` 开头（不区分大小写）的 `img` 元素。\n\n对于匹配上述选择规则的 `img` 元素，应用以下样式：\n\n- `contain: size !important;`：将元素的内容缩放以适合其容器的大小，并禁止其他样式表覆盖此规则（`!important` 用于提升优先级）。\n- `contain-intrinsic-size: 300px 150px;`：指定元素的内在尺寸为宽度 300 像素和高度 150 像素。这可以影响到元素在执行缩放时的最终尺寸。\n\n顺便说一下，CSS 中的伪类 `:has` 被称为“父选择器”，但目前并没有广泛支持，因此这个选择器可能无法在所有浏览器中正常工作。另外，`i` 标记表示进行不区分大小写的匹配。\n\n响应式图像自然尺寸的设定可能会让人意想不到的复杂，但实际上：\n\n1. 有许多方式可以让已加载资源的自然尺寸影响其对应的 `<img>` 的布局尺寸。\n2. 每当 `<img>` 标签的布局尺寸发生变化，sizes=\"auto\" 的值就会进行更新，这可能会触发新的资源加载。\n3. 一旦加载新的资源，这个资源就会有新的自然尺寸，这可能会影响 `<img>` 的布局尺寸，导致 sizes=\"auto\" 的值更新，然后可能会触发又一次的资源加载；新加载的资源会有新的自然尺寸，这样以此类推...等等。\n\n![Resource Selection](images/resource-selection.png)\n\n关于 sizes=\"auto\" 的规范讨论其实主要就是：那些能通过这种方式让 srcset 中的每一个资源依次被加载的极端情况。\n\nSimon Pieters，撰写了 auto-sizes 规范的人，曾经巧妙并勇敢地尝试定义可能触发循环依赖的所有情况，同时也采用了一些无法让作者察觉或是感到奇怪的解决方式来避开这些问题。但是，当真正落实到实现的时候，这些权宜之计并没有站住脚。最后，大家都认为唯一的解决方法是做出一个明确的切割：规定加载资源的自然尺寸绝对不能影响其所对应的 `<img>` 的布局，这一点在涉及到 sizes=\"auto\" 时尤为重要。\n\n![CSS Containment](images/css-containment.png)\n\n幸运的是，我们有一个相对较新的特性，它就是“尺寸包含”（size containment），专门用来解决这个问题。\n\n![Size Containment](images/size-containment.png)\n\n所以，现在 Chrome 的 UA stylesheet 中的内容就变成了上面那段 CSS 代码的样子。\n\n对于为什么选择 300×150，是因为这就是 `<video>` 和 `<canvas>` 标签所采取的方式；所有这些元素都会使用这种相对小一些但又不为零的默认尺寸，目的在于鼓励你优化你的布局。\n\n## 参考链接\n\n- [HTML 规范 4.8.4.2.2 Sizes attributes](https://html.spec.whatwg.org/#sizes-attributes)\n- [whatwg/html#9448](https://github.com/whatwg/html/issues/9448)\n- [Chromium#41495139](https://issues.chromium.org/issues/41495139)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/auto-sizes/  \n\n"
  },
  {
    "path": "posts/aws-ec2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>将 Hugo 博客部署到亚马逊云服务器 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。\n1 前言 最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 hugo-fixit 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？\n今天就介绍一种方式：把博客部署到云服务器上。\n但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。\n\"><meta name=keywords content='AWS,hugo,linux,nginx'><meta itemprop=name content=\"将 Hugo 博客部署到亚马逊云服务器\"><meta itemprop=description content=\"本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。\n1 前言 最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 hugo-fixit 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？\n今天就介绍一种方式：把博客部署到云服务器上。\n但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。\"><meta itemprop=datePublished content=\"2023-08-26T17:22:57+08:00\"><meta itemprop=dateModified content=\"2023-08-26T17:22:57+08:00\"><meta itemprop=wordCount content=\"1401\"><meta itemprop=image content=\"https://lruihao.cn/posts/aws-ec2/images/featured-image.png\"><meta itemprop=keywords content=\"AWS,Hugo,linux,nginx\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/aws-ec2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"将 Hugo 博客部署到亚马逊云服务器\"><meta property=\"og:description\" content=\"本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。\n1 前言 最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 hugo-fixit 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？\n今天就介绍一种方式：把博客部署到云服务器上。\n但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-08-26T17:22:57+08:00\"><meta property=\"article:modified_time\" content=\"2023-08-26T17:22:57+08:00\"><meta property=\"article:tag\" content=\"AWS\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"nginx\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/aws-ec2/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/aws-ec2/images/featured-image.png\"><meta name=twitter:title content=\"将 Hugo 博客部署到亚马逊云服务器\"><meta name=twitter:description content=\"本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。\n1 前言 最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 hugo-fixit 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？\n今天就介绍一种方式：把博客部署到云服务器上。\n但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/aws-ec2/ title=\"将 Hugo 博客部署到亚马逊云服务器 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/vue-el-demo/ title=\"Vue2 and element-ui related demos\"><link rel=next type=text/html href=https://lruihao.cn/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/aws-ec2/index.md title=\"将 Hugo 博客部署到亚马逊云服务器 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"将 Hugo 博客部署到亚马逊云服务器\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/aws-ec2\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/aws-ec2\\/images\\/featured-image.png\",\"width\":1029,\"height\":627}],\"genre\":\"posts\",\"keywords\":\"AWS, hugo, linux, nginx\",\"wordcount\":1401,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/aws-ec2\\/\",\"datePublished\":\"2023-08-26T17:22:57+08:00\",\"dateModified\":\"2023-08-26T17:22:57+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/aws-ec2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href title=个人博客接的一些广子。>$</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>将 Hugo 博客部署到 AWS 服务器</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>将 Hugo 博客部署到亚马逊云服务器</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/aws/ class=post-collection title=\"合集 - AWS\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> AWS</a></span></div><div class=post-meta-line><span title=\"发布于 2023-08-26 17:22:57\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-08-26>2023-08-26</time></span>&nbsp;<span title=\"1401 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"将 Hugo 博客部署到亚马逊云服务器\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/aws-ec2/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/aws-ec2/images/featured-image.png height=627 width=1029></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#注册亚马逊云账户>注册亚马逊云账户</a></li><li><a href=#创建-ec2-服务实例>创建 EC2 服务实例</a></li><li><a href=#连接实例>连接实例</a></li><li><a href=#创建-root-用户角色>创建 root 用户角色</a></li><li><a href=#安装宝塔面板>安装宝塔面板</a></li><li><a href=#部署-hugo-博客>部署 Hugo 博客</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-08-26，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=（本篇完）><p>本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。</p><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？</p><p>今天就介绍一种方式：<strong>把博客部署到云服务器上</strong>。</p><p>但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。</p><h2 class=heading-element id=注册亚马逊云账户><span>2 注册亚马逊云账户</span>\n<a href=#%e6%b3%a8%e5%86%8c%e4%ba%9a%e9%a9%ac%e9%80%8a%e4%ba%91%e8%b4%a6%e6%88%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开 <a href=\"https://aws.amazon.com/cn/free/?sc_channel=seo&amp;sc_campaign=blog0805\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊账号注册地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，点击右上角创建 AWS 账户。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693042834.png title=\"创建 AWS 账户\" data-thumbnail=/posts/aws-ec2/images/23_1693042834.png data-sub-html=\"<h2>创建 AWS 账户</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693042834.png alt=\"创建 AWS 账户\" height=190 width=1100></a></p><ol><li>填写邮件地址和账号名称（支持使用国内的邮箱）\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693043425.png title=login data-thumbnail=/posts/aws-ec2/images/23_1693043425.png data-sub-html=\"<h2>login</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693043425.png alt=login height=1058 width=1754></a></li><li>验证邮件\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693043626.png title=valid data-thumbnail=/posts/aws-ec2/images/23_1693043626.png data-sub-html=\"<h2>valid</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693043626.png alt=valid height=841 width=1603></a></li><li>输入密码\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693043910.png title=password data-thumbnail=/posts/aws-ec2/images/23_1693043910.png data-sub-html=\"<h2>password</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693043910.png alt=password height=1002 width=1490></a></li><li>联系人信息\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693044220.png title=contact data-thumbnail=/posts/aws-ec2/images/23_1693044220.png data-sub-html=\"<h2>contact</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693044220.png alt=contact height=1204 width=938></a></li><li>付款信息（Visa）\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693044537.png title=payment data-thumbnail=/posts/aws-ec2/images/23_1693044537.png data-sub-html=\"<h2>payment</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693044537.png alt=payment height=1180 width=1454></a></li><li>验证手机号（支持中国地区国内手机号）\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693044806.png title=phone data-thumbnail=/posts/aws-ec2/images/23_1693044806.png data-sub-html=\"<h2>phone</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693044806.png alt=phone height=1052 width=974></a></li><li>选择支持计划\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693045029.png title=plan data-thumbnail=/posts/aws-ec2/images/23_1693045029.png data-sub-html=\"<h2>plan</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693045029.png alt=plan height=1326 width=1308></a></li><li>完成注册\n<a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693045100.png title=complete data-thumbnail=/posts/aws-ec2/images/23_1693045100.png data-sub-html=\"<h2>complete</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693045100.png alt=complete height=754 width=1136></a></li><li>登录亚马逊云控制台，<a href=https://console.aws.amazon.com/console/home target=_blank rel=\"external nofollow noopener noreferrer\">登录地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。</li></ol><h2 class=heading-element id=创建-ec2-服务实例><span>3 创建 EC2 服务实例</span>\n<a href=#%e5%88%9b%e5%bb%ba-ec2-%e6%9c%8d%e5%8a%a1%e5%ae%9e%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>点击链接查看 <a href=\"https://aws.amazon.com/cn/free/?sc_channel=seo&amp;sc_campaign=blog0805\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊免费套餐<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，找到云服务器 EC2，点击立即开始 12 个月免费使用。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693045572.png title=EC2 data-thumbnail=/posts/aws-ec2/images/23_1693045572.png data-sub-html=\"<h2>EC2</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693045572.png alt=EC2 height=1146 width=2368></a></p><p>进行 EC2 服务器主页后，点击页面<strong>创建实例</strong>按钮。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693045780.png title=start-EC2 data-thumbnail=/posts/aws-ec2/images/23_1693045780.png data-sub-html=\"<h2>start-EC2</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693045780.png alt=start-EC2 height=1294 width=2878></a></p><p>然后按照页面提示要求，依次填写或选择：</p><ol><li>实例的名称：随便填</li><li>应用程序和操作系统映像 (Amazon Machine Image)：Amazon Linux 和 Amazon Linux 2023 AMI 免费套餐</li><li>实例类型：选择免费套餐</li><li>密钥对（登录）：这里要点击创建密钥对，输入密钥对名称，选择 RSA 点击创建密钥对会下载文件到本地，要妥善保存，登录时会用到</li><li>网络设置：安全组把允许来自于 http 和 https 得都勾选上</li><li>配置存储：默认是 8G，但免费的最多可以 30G，可以手动改成 30G</li><li>然后点击右侧侧边栏启动实例，等待片刻实例就创建好了</li></ol><h2 class=heading-element id=连接实例><span>4 连接实例</span>\n<a href=#%e8%bf%9e%e6%8e%a5%e5%ae%9e%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693046630.png title=instance data-thumbnail=/posts/aws-ec2/images/23_1693046630.png data-sub-html=\"<h2>instance</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693046630.png alt=instance height=410 width=954></a></p><p>点击上面的实例 ID 进入实例的详情，再点击右上角的连接按钮。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693046822.png title=connect data-thumbnail=/posts/aws-ec2/images/23_1693046822.png data-sub-html=\"<h2>connect</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693046822.png alt=connect height=216 width=2344></a></p><p>连接成功后，页面会新打开一个窗口，这个窗口就是我们服务器的终端，可以在这里对服务器进行操作。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693046970.png title=cloudshell data-thumbnail=/posts/aws-ec2/images/23_1693046970.png data-sub-html=\"<h2>cloudshell</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693046970.png alt=cloudshell height=514 width=1408></a></p><h2 class=heading-element id=创建-root-用户角色><span>5 创建 root 用户角色</span>\n<a href=#%e5%88%9b%e5%bb%ba-root-%e7%94%a8%e6%88%b7%e8%a7%92%e8%89%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在终端中输入以下命令，创建 root 用户角色。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 切换到 root 用户</span>\n</span></span><span class=line><span class=cl>sudo -i\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 修改 sshd 配置文件</span>\n</span></span><span class=line><span class=cl>vi /etc/ssh/sshd_config</span></span></code></pre></td></tr></table></div></div></div><p>修改如下两项</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-text\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-text data-lang=text><span class=line><span class=cl>PermitRootLogin yes\n</span></span><span class=line><span class=cl>PasswordAuthentication yes</span></span></code></pre></td></tr></table></div></div></div><p>设置 root 用户密码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>passwd</span></span></code></pre></td></tr></table></div></div></div><p>会让输入两次密码，输入完成，重启一下 ssh 服务：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>service sshd restart</span></span></code></pre></td></tr></table></div></div></div><p>重启后在电脑命令行就可以通过 ssh 协议加上用户名称 + 密码连接远程服务器了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh root@3.85.xxx.xxx</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>后续操作尽量用 root 用户进行。</p></blockquote><h2 class=heading-element id=安装宝塔面板><span>6 安装宝塔面板</span>\n<a href=#%e5%ae%89%e8%a3%85%e5%ae%9d%e5%a1%94%e9%9d%a2%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>宝塔面板是一个服务器管理面板，可以通过宝塔面板来管理服务器，比如安装 nginx、mysql、php 等等。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>yum install -y wget <span class=o>&amp;&amp;</span> wget -O install.sh https://download.bt.cn/install/install_6.0.sh <span class=o>&amp;&amp;</span> sh install.sh ed8484bec</span></span></code></pre></td></tr></table></div></div></div><ol><li>在亚马逊服务器实例安全组中放行 TCP <code>19430</code> 端口</li><li>宝塔面板安装完后按照命令行提示打开宝塔面板，进入面板安装 <code>LAMP</code> 环境，其中包含了我们需要的 <code>nginx</code></li><li>等待 <code>LAMP</code> 环境安装完毕</li></ol><h2 class=heading-element id=部署-hugo-博客><span>7 部署 Hugo 博客</span>\n<a href=#%e9%83%a8%e7%bd%b2-hugo-%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Hugo 博客打包</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo -v --gc --minify</span></span></code></pre></td></tr></table></div></div></div><p>将打包好的 <code>public</code> 文件夹上传到服务器的 <code>/www/wwwroot/hugo</code> 目录下，输入以下命令，等待上传完成。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 上传文件（需要输入 root 用户密码）</span>\n</span></span><span class=line><span class=cl>scp -r /path/to/public root@3.85.xxx.xxx:/www/wwwroot/hugo</span></span></code></pre></td></tr></table></div></div></div><p>在宝塔面板中选择网站，点击添加站点：</p><ol><li>域名：填写你的公网 IP 或者域名</li><li>网站目录：选择 <code>/www/wwwroot/hugo</code></li><li>站点备注：随便填</li><li>FTP、数据库选择不创建，PHP 选择纯静态</li><li>点击提交</li></ol><p>在浏览器中输入服务器的公网 IP 地址，就可以看到 Hugo 博客了。</p><p><a class=lightgallery target=_blank href=/posts/aws-ec2/images/23_1693050865.png title=preview data-thumbnail=/posts/aws-ec2/images/23_1693050865.png data-sub-html=\"<h2>preview</h2>\"><img loading=lazy src=/posts/aws-ec2/images/23_1693050865.png alt=preview height=1354 width=2878></a></p><h2 class=heading-element id=注意事项><span>8 注意事项</span>\n<a href=#%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>亚马逊的服务器每个月免费时长时 <strong>750</strong> 小时，一个月 31 天 x 24 = 744 小时，正常使用是不会超出免费的份额的，但切记不要同时开两个服务器实例，使用时长会累加，不注意可能会超出套餐额度。</p><p>到期后，如果不想继续使用，一定要记得删除实例，不然会一直扣费的。在控制台选中实例，点击实例状态->终止实例。</p></blockquote><h2 class=heading-element id=总结><span>9 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>有了一台海外服务器，我们还可以做很多事情，比如部署 chatgpt 等等，有了服务器一定要多去探索和学习，这么复杂的申请的流程，不要白白放着让过期了。</p><p>保持探索欲，砥砺前行！</p></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/aws/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・AWS</span></span></a> 5</div><div class=collection-nav><a href=/posts/aws-solution/ class=collection-nav-item rel=next title=\"AWS 云上一站式解决方案\"><span>AWS 云上一站式解决方案</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-08-26 17:22:57\">更新于 2023-08-26&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整 sections 批量参数&#10&#10Commit: d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 [d2d1d9d]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-07 01:20:02&#10Commit Date: 2024-12-07 01:25:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d2d1d9d</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/aws-ec2/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/aws-ec2/ data-title=\"将 Hugo 博客部署到亚马逊云服务器\" data-hashtags=AWS,hugo,linux,nginx><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/aws-ec2/ data-hashtag=AWS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/aws-ec2/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/aws-ec2/ data-title=\"将 Hugo 博客部署到亚马逊云服务器\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/aws-ec2/ data-title=\"将 Hugo 博客部署到亚马逊云服务器\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/aws/ class=post-tag title=\"标签 - AWS\">AWS</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/nginx/ class=post-tag title=\"标签 - nginx\">nginx</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/vue-el-demo/ class=post-nav-item rel=prev title=Lruihao/vue-el-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/vue-el-demo</a><a href=/posts/grid-bg-image/ class=post-nav-item rel=next title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#注册亚马逊云账户>注册亚马逊云账户</a></li><li><a href=#创建-ec2-服务实例>创建 EC2 服务实例</a></li><li><a href=#连接实例>连接实例</a></li><li><a href=#创建-root-用户角色>创建 root 用户角色</a></li><li><a href=#安装宝塔面板>安装宝塔面板</a></li><li><a href=#部署-hugo-博客>部署 Hugo 博客</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/042a6806e0090fd207a9108f0c2b9f1f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/042a6806e0090fd207a9108f0c2b9f1f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/aws-ec2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/aws-ec2/index.md",
    "content": "# 将 Hugo 博客部署到亚马逊云服务器\n\n\n本文将介绍如何将 Hugo 博客打包并部署到亚马逊云服务器上，并附上亚马逊云服务器的配置过程。\n\n## 前言\n\n最近很长一段时间都是使用 Hugo 在写博客，也花了很多精力在 [hugo-fixit](https://github.com/hugo-fixit/FixIt) 这个主题的开发上。也听到很多使用 Hugo 写博客的网友们问我，如何部署博客？部署到哪里？\n\n今天就介绍一种方式：**把博客部署到云服务器上**。\n\n但是国内的云服务器太贵了，而且还要备案，所以就想到了海外的云服务器，比如亚马逊云服务器，以下便是注册到部署的全过程。\n\n<!--more-->\n\n## 注册亚马逊云账户\n\n打开 [亚马逊账号注册地址](https://aws.amazon.com/cn/free/?sc_channel=seo&sc_campaign=blog0805)，点击右上角创建 AWS 账户。\n\n![创建 AWS 账户](images/23_1693042834.png)\n\n1. 填写邮件地址和账号名称（支持使用国内的邮箱）\n   ![login](images/23_1693043425.png)\n2. 验证邮件\n   ![valid](images/23_1693043626.png)\n3. 输入密码\n   ![password](images/23_1693043910.png)\n4. 联系人信息\n   ![contact](images/23_1693044220.png)\n5. 付款信息（Visa）\n   ![payment](images/23_1693044537.png)\n6. 验证手机号（支持中国地区国内手机号）\n   ![phone](images/23_1693044806.png)\n7. 选择支持计划\n   ![plan](images/23_1693045029.png)\n8. 完成注册\n   ![complete](images/23_1693045100.png)\n9. 登录亚马逊云控制台，[登录地址](https://console.aws.amazon.com/console/home)，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。\n\n## 创建 EC2 服务实例\n\n点击链接查看 [亚马逊免费套餐](https://aws.amazon.com/cn/free/?sc_channel=seo&sc_campaign=blog0805)，找到云服务器 EC2，点击立即开始 12 个月免费使用。\n\n![EC2](images/23_1693045572.png)\n\n进行 EC2 服务器主页后，点击页面**创建实例**按钮。\n\n![start-EC2](images/23_1693045780.png)\n\n然后按照页面提示要求，依次填写或选择：\n\n1. 实例的名称：随便填\n2. 应用程序和操作系统映像 (Amazon Machine Image)：Amazon Linux 和 Amazon Linux 2023 AMI 免费套餐\n3. 实例类型：选择免费套餐\n4. 密钥对（登录）：这里要点击创建密钥对，输入密钥对名称，选择 RSA 点击创建密钥对会下载文件到本地，要妥善保存，登录时会用到\n5. 网络设置：安全组把允许来自于 http 和 https 得都勾选上\n6. 配置存储：默认是 8G，但免费的最多可以 30G，可以手动改成 30G\n7. 然后点击右侧侧边栏启动实例，等待片刻实例就创建好了\n\n## 连接实例\n\n![instance](images/23_1693046630.png)\n\n点击上面的实例 ID 进入实例的详情，再点击右上角的连接按钮。\n\n![connect](images/23_1693046822.png)\n\n连接成功后，页面会新打开一个窗口，这个窗口就是我们服务器的终端，可以在这里对服务器进行操作。\n\n![cloudshell](images/23_1693046970.png)\n\n## 创建 root 用户角色\n\n在终端中输入以下命令，创建 root 用户角色。\n\n```bash\n# 切换到 root 用户\nsudo -i\n\n# 修改 sshd 配置文件\nvi /etc/ssh/sshd_config\n```\n\n修改如下两项\n\n```text\nPermitRootLogin yes\nPasswordAuthentication yes\n```\n\n设置 root 用户密码\n\n```bash\npasswd\n```\n\n会让输入两次密码，输入完成，重启一下 ssh 服务：\n\n```bash\nservice sshd restart\n```\n\n重启后在电脑命令行就可以通过 ssh 协议加上用户名称 + 密码连接远程服务器了。\n\n```bash\nssh root@3.85.xxx.xxx\n```\n\n> 后续操作尽量用 root 用户进行。\n\n## 安装宝塔面板\n\n宝塔面板是一个服务器管理面板，可以通过宝塔面板来管理服务器，比如安装 nginx、mysql、php 等等。\n\n```bash\nyum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec\n```\n\n1. 在亚马逊服务器实例安全组中放行 TCP `19430` 端口\n2. 宝塔面板安装完后按照命令行提示打开宝塔面板，进入面板安装 `LAMP` 环境，其中包含了我们需要的 `nginx`\n3. 等待 `LAMP` 环境安装完毕\n\n## 部署 Hugo 博客\n\nHugo 博客打包\n\n```bash\nhugo -v --gc --minify\n```\n\n将打包好的 `public` 文件夹上传到服务器的 `/www/wwwroot/hugo` 目录下，输入以下命令，等待上传完成。\n\n```bash\n# 上传文件（需要输入 root 用户密码）\nscp -r /path/to/public root@3.85.xxx.xxx:/www/wwwroot/hugo\n```\n\n在宝塔面板中选择网站，点击添加站点：\n\n1. 域名：填写你的公网 IP 或者域名\n2. 网站目录：选择 `/www/wwwroot/hugo`\n3. 站点备注：随便填\n4. FTP、数据库选择不创建，PHP 选择纯静态\n5. 点击提交\n\n在浏览器中输入服务器的公网 IP 地址，就可以看到 Hugo 博客了。\n\n![preview](images/23_1693050865.png)\n\n## 注意事项\n\n> 亚马逊的服务器每个月免费时长时 **750** 小时，一个月 31 天 x 24 = 744 小时，正常使用是不会超出免费的份额的，但切记不要同时开两个服务器实例，使用时长会累加，不注意可能会超出套餐额度。\n>\n> 到期后，如果不想继续使用，一定要记得删除实例，不然会一直扣费的。在控制台选中实例，点击实例状态->终止实例。\n\n## 总结\n\n有了一台海外服务器，我们还可以做很多事情，比如部署 chatgpt 等等，有了服务器一定要多去探索和学习，这么复杂的申请的流程，不要白白放着让过期了。\n\n保持探索欲，砥砺前行！\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/aws-ec2/  \n\n"
  },
  {
    "path": "posts/aws-solution/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>探索 AWS 云上一站式解决方案免费使用 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。\n\"><meta name=keywords content='AWS'><meta itemprop=name content=\"探索 AWS 云上一站式解决方案免费使用\"><meta itemprop=description content=\"在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。\"><meta itemprop=datePublished content=\"2023-11-18T12:52:37+08:00\"><meta itemprop=dateModified content=\"2023-11-18T12:52:37+08:00\"><meta itemprop=wordCount content=\"1309\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"AWS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/aws-solution/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"探索 AWS 云上一站式解决方案免费使用\"><meta property=\"og:description\" content=\"在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-11-18T12:52:37+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-18T12:52:37+08:00\"><meta property=\"article:tag\" content=\"AWS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"探索 AWS 云上一站式解决方案免费使用\"><meta name=twitter:description content=\"在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/aws-solution/ title=\"探索 AWS 云上一站式解决方案免费使用 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ssh-sign/ title=\"SSH 提交签名验证\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ title=\"🛠️ A node-based tooling for FixIt site initialization.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/aws-solution/index.md title=\"探索 AWS 云上一站式解决方案免费使用 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"探索 AWS 云上一站式解决方案免费使用\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/aws-solution\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"AWS\",\"wordcount\":1309,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/aws-solution\\/\",\"datePublished\":\"2023-11-18T12:52:37+08:00\",\"dateModified\":\"2023-11-18T12:52:37+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/aws-solution/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href title=个人博客接的一些广子。>$</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>AWS 云上一站式解决方案</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>探索 AWS 云上一站式解决方案免费使用</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/aws/ class=post-collection title=\"合集 - AWS\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> AWS</a></span></div><div class=post-meta-line><span title=\"发布于 2023-11-18 12:52:37\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-11-18>2023-11-18</time></span>&nbsp;<span title=\"1309 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"探索 AWS 云上一站式解决方案免费使用\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#简介>简介</a></li><li><a href=#玩转免费试用>玩转免费试用</a><ol><li><a href=#免费云服务种类>免费云服务种类</a></li><li><a href=#免费云服务可以做什么>免费云服务可以做什么</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=（本篇完）><p>在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。</p><h2 class=heading-element id=简介><span>1 简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>AWS 官网地址：<a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">企业云上一站式解决方案_创新成长企业加速中心 - AWS 云服务<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>目前已经给出 11 种使用场景和解决方案，分别是：</p><ul><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-zhaoyunxi/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊云科技 Stable Diffusion WebUI 一键部署方案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xiongjunfeng/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">基于智能搜索的大语言模型增强方案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-lisiyuan/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">Stable Diffusion 亚马逊云科技 插件解决方案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hanxiaoyong/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">玩转免费试用 - 全球领先云服务的那些羊毛<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangbeichen/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">快速搭建容量高达 35GB 的免费个人网盘<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangjinglai/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">呼叫中心也免费？没错！<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-suzhe/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 Amazon Lightsail 构建 WordPress 网站<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-lilong/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">零代码一键部署多语言视频字幕解决方案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xuwei/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">Serverless 轻松搭建多人在线游戏小程序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hewenan/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">通知必达 - 无服务器通知方案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-luhaoyu/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">轻松使用开箱即用的 AI 功能 - AI Solution Kit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>从以上列表标题就能看出，不仅含括了近些年比较火的“生成式 AI”相关一站式解决方案，还有一些比较常见的“网盘”、“呼叫中心”、“WordPress 网站”等等。</p><h2 class=heading-element id=玩转免费试用><span>2 玩转免费试用</span>\n<a href=#%e7%8e%a9%e8%bd%ac%e5%85%8d%e8%b4%b9%e8%af%95%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>视频讲解详细链接：<a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hanxiaoyong/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">玩转免费试用 - 全球领先云服务的那些羊毛<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>这个视频主要讲解了 AWS 的免费试用。很多公司都是从小到大到独角兽这样的成长，最初的时候学习自研，搭建一个系统其实可以从很多的一些免费的云服务开始，或者对于一些个人或者学生，如果想找工作，想试用云计算，也可以免费申请 AWS 的账号来使用。</p><h3 class=heading-element id=免费云服务种类><span>2.1 免费云服务种类</span>\n<a href=#%e5%85%8d%e8%b4%b9%e4%ba%91%e6%9c%8d%e5%8a%a1%e7%a7%8d%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>从 AWS 官网的数据来看，截止 2023 年 11 月 18 日，亚马逊云科技已经提供了 246 种云服务：</p><p><a class=lightgallery target=_blank href=/posts/aws-solution/images/23_1700464182.png title=\"AWS 全部服务\" data-thumbnail=/posts/aws-solution/images/23_1700464182.png data-sub-html=\"<h2>AWS 全部服务</h2>\"><img loading=lazy src=/posts/aws-solution/images/23_1700464182.png alt=\"AWS 全部服务\" height=1172 width=2406></a></p><p>当然并不是所有的都是免费的，但是有免费的服务占比很大，其中免费的服务有 93 种。</p><p><a class=lightgallery target=_blank href=/posts/aws-solution/images/23_1700464456.png title=\"AWS 免费服务\" data-thumbnail=/posts/aws-solution/images/23_1700464456.png data-sub-html=\"<h2>AWS 免费服务</h2>\"><img loading=lazy src=/posts/aws-solution/images/23_1700464456.png alt=\"AWS 免费服务\" height=1216 width=2362></a></p><p>免费额度也很宽限，不同云服务的免费额度不一样，比如亚马逊云服务器，有免费一年的，云电话有免费接打电话 90 分钟，短信免费试用 2 个月等。</p><p>另外也有永久免费的服务，这一块应该是大家最感兴趣的，比如 Lambda 服务，如果一个月调用不超过一百万次的话，这是永久免费的，对于初创企业内部服务或者学习个人来说，这个额度是足够的。再有就是，SES 邮件服务，每个月外发次数可用 62000 次，对于小型服务运营，这个也是远远足够的了。</p><p>免费的服务还有很多，涵盖广泛的产品种类：计算、数据库、存储、容器、机器学习等等。</p><p><figure><a class=lightgallery target=_blank href=/posts/aws-solution/images/23_1700465041.png title=免费种类几乎囊括以提供服务的所有种类 data-thumbnail=/posts/aws-solution/images/23_1700465041.png data-sub-html=\"<h2>免费服务种类</h2><p>免费种类几乎囊括以提供服务的所有种类</p>\"><img loading=lazy src=/posts/aws-solution/images/23_1700465041.png alt=免费服务种类 height=1402 width=442></a><figcaption class=image-caption>免费种类几乎囊括以提供服务的所有种类</figcaption></figure></p><h3 class=heading-element id=免费云服务可以做什么><span>2.2 免费云服务可以做什么</span>\n<a href=#%e5%85%8d%e8%b4%b9%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%8f%af%e4%bb%a5%e5%81%9a%e4%bb%80%e4%b9%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>从上图可以基本可以看出涵盖面还是很广的，如果大家有什么新的 ideas 或者说想去尝试某种服务的话，综合运用以上服务，是完全可以零成本实现的。</p><p>我们还可以做很多事情，比如：</p><ul><li>学习亚马逊云科技的产品</li><li>尝试新的产品</li><li>验证你的创意方案</li></ul><p>不仅仅是学习，你可以利用它搭建出一些比较高级实用的工具，比如个人网站、个人网盘：</p><ul><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-suzhe/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 Amazon Lightsail 构建 WordPress 网站<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangbeichen/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">快速搭建容量高达 35GB 的免费个人网盘<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>甚至轻松搭建多人在线的”大炮打蚊子“的小游戏、轻松使用开箱即用的 AI 功能、零代码为视频生成多语言字幕，亦或是建造一个免费的呼叫中心：</p><ul><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xuwei/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">Serverless 轻松搭建多人在线游戏小程序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-luhaoyu/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">轻松使用开箱即用的 AI 功能 - AI Solution Kit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangjinglai/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">呼叫中心也免费？没错！<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>另外还有其他更多的免费一站式云服务方案也都很不错，这里不一一例举了。</p><p>对于初创企业或者有兴趣的这方面工作，但是苦于没有资源尝试的朋友们可以前往 <a href=\"https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/?sc_channel=seo&amp;sc_campaign=blog1104\" target=_blank rel=\"external nofollow noopener noreferrer\">官网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 观看视频详细讲解了解更多详细信息。</p></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/aws/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・AWS</span></span></a> 5</div><div class=collection-nav><a href=/posts/aws-ec2/ class=collection-nav-item rel=prev title=\"将 Hugo 博客部署到 AWS 服务器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>将 Hugo 博客部署到 AWS 服务器</span>\n</a><a href=/posts/d8ae205/ class=collection-nav-item rel=next title=\"Amazon Titan 文本模型\"><span>Amazon Titan 文本模型</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-18 12:52:37\">更新于 2023-11-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整 sections 批量参数&#10&#10Commit: d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 [d2d1d9d]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-07 01:20:02&#10Commit Date: 2024-12-07 01:25:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d2d1d9d</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/aws-solution/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/aws-solution/ data-title=\"探索 AWS 云上一站式解决方案免费使用\" data-hashtags=AWS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/aws-solution/ data-hashtag=AWS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/aws-solution/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/aws-solution/ data-title=\"探索 AWS 云上一站式解决方案免费使用\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/aws-solution/ data-title=\"探索 AWS 云上一站式解决方案免费使用\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/aws/ class=post-tag title=\"标签 - AWS\">AWS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ssh-sign/ class=post-nav-item rel=prev title=\"SSH 提交签名验证\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>SSH 提交签名验证</a><a href=/projects/hugo-fixit/fixit-cli/ class=post-nav-item rel=next title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#简介>简介</a></li><li><a href=#玩转免费试用>玩转免费试用</a><ol><li><a href=#免费云服务种类>免费云服务种类</a></li><li><a href=#免费云服务可以做什么>免费云服务可以做什么</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a5e7645e82813977ee845e1455ab1c50.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a5e7645e82813977ee845e1455ab1c50.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/aws-solution/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/aws-solution/index.md",
    "content": "# 探索 AWS 云上一站式解决方案免费使用\n\n\n在如今云计算蓬勃发展的时代，创新成长型企业正积极寻求一站式的云上解决方案，以提高效率、降低成本并实现快速发展。AWS（亚马逊云科技）作为全球领先的云服务提供商，为创新成长型企业提供一站式云上解决方案，助力创新成长型企业在不同发展阶段实现低成本上云，实现快速发展。本文将探索一下 AWS 云上一站式解决方案的免费使用。\n\n<!--more-->\n\n## 简介\n\n- AWS 官网地址：[企业云上一站式解决方案_创新成长企业加速中心 - AWS 云服务](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/?sc_channel=seo&sc_campaign=blog1104)\n\n目前已经给出 11 种使用场景和解决方案，分别是：\n\n- [亚马逊云科技 Stable Diffusion WebUI 一键部署方案](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-zhaoyunxi/?sc_channel=seo&sc_campaign=blog1104)\n- [基于智能搜索的大语言模型增强方案](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xiongjunfeng/?sc_channel=seo&sc_campaign=blog1104)\n- [Stable Diffusion 亚马逊云科技 插件解决方案](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-lisiyuan/?sc_channel=seo&sc_campaign=blog1104)\n- [玩转免费试用 - 全球领先云服务的那些羊毛](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hanxiaoyong/?sc_channel=seo&sc_campaign=blog1104)\n- [快速搭建容量高达 35GB 的免费个人网盘](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangbeichen/?sc_channel=seo&sc_campaign=blog1104)\n- [呼叫中心也免费？没错！](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangjinglai/?sc_channel=seo&sc_campaign=blog1104)\n- [使用 Amazon Lightsail 构建 WordPress 网站](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-suzhe/?sc_channel=seo&sc_campaign=blog1104)\n- [零代码一键部署多语言视频字幕解决方案](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-lilong/?sc_channel=seo&sc_campaign=blog1104)\n- [Serverless 轻松搭建多人在线游戏小程序](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xuwei/?sc_channel=seo&sc_campaign=blog1104)\n- [通知必达 - 无服务器通知方案](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hewenan/?sc_channel=seo&sc_campaign=blog1104)\n- [轻松使用开箱即用的 AI 功能 - AI Solution Kit](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-luhaoyu/?sc_channel=seo&sc_campaign=blog1104)\n\n从以上列表标题就能看出，不仅含括了近些年比较火的“生成式 AI”相关一站式解决方案，还有一些比较常见的“网盘”、“呼叫中心”、“WordPress 网站”等等。\n\n## 玩转免费试用\n\n视频讲解详细链接：[玩转免费试用 - 全球领先云服务的那些羊毛](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-hanxiaoyong/?sc_channel=seo&sc_campaign=blog1104)\n\n这个视频主要讲解了 AWS 的免费试用。很多公司都是从小到大到独角兽这样的成长，最初的时候学习自研，搭建一个系统其实可以从很多的一些免费的云服务开始，或者对于一些个人或者学生，如果想找工作，想试用云计算，也可以免费申请 AWS 的账号来使用。\n\n### 免费云服务种类\n\n从 AWS 官网的数据来看，截止 2023 年 11 月 18 日，亚马逊云科技已经提供了 246 种云服务：\n\n![AWS 全部服务](images/23_1700464182.png)\n\n当然并不是所有的都是免费的，但是有免费的服务占比很大，其中免费的服务有 93 种。\n\n![AWS 免费服务](images/23_1700464456.png)\n\n免费额度也很宽限，不同云服务的免费额度不一样，比如亚马逊云服务器，有免费一年的，云电话有免费接打电话 90 分钟，短信免费试用 2 个月等。\n\n另外也有永久免费的服务，这一块应该是大家最感兴趣的，比如 Lambda 服务，如果一个月调用不超过一百万次的话，这是永久免费的，对于初创企业内部服务或者学习个人来说，这个额度是足够的。再有就是，SES 邮件服务，每个月外发次数可用 62000 次，对于小型服务运营，这个也是远远足够的了。\n\n免费的服务还有很多，涵盖广泛的产品种类：计算、数据库、存储、容器、机器学习等等。\n\n![免费服务种类](images/23_1700465041.png \"免费种类几乎囊括以提供服务的所有种类\")\n\n### 免费云服务可以做什么\n\n从上图可以基本可以看出涵盖面还是很广的，如果大家有什么新的 ideas 或者说想去尝试某种服务的话，综合运用以上服务，是完全可以零成本实现的。\n\n我们还可以做很多事情，比如：\n\n- 学习亚马逊云科技的产品\n- 尝试新的产品\n- 验证你的创意方案\n\n不仅仅是学习，你可以利用它搭建出一些比较高级实用的工具，比如个人网站、个人网盘：\n\n- [使用 Amazon Lightsail 构建 WordPress 网站](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-suzhe/?sc_channel=seo&sc_campaign=blog1104)\n- [快速搭建容量高达 35GB 的免费个人网盘](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangbeichen/?sc_channel=seo&sc_campaign=blog1104)\n\n甚至轻松搭建多人在线的”大炮打蚊子“的小游戏、轻松使用开箱即用的 AI 功能、零代码为视频生成多语言字幕，亦或是建造一个免费的呼叫中心：\n\n- [Serverless 轻松搭建多人在线游戏小程序](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-xuwei/?sc_channel=seo&sc_campaign=blog1104)\n- [轻松使用开箱即用的 AI 功能 - AI Solution Kit](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-luhaoyu/?sc_channel=seo&sc_campaign=blog1104)\n- [呼叫中心也免费？没错！](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/watch-the-video-wangjinglai/?sc_channel=seo&sc_campaign=blog1104)\n\n另外还有其他更多的免费一站式云服务方案也都很不错，这里不一一例举了。\n\n对于初创企业或者有兴趣的这方面工作，但是苦于没有资源尝试的朋友们可以前往 [官网](https://aws.amazon.com/cn/campaigns/smb-cloud-one-stop-solution-paid-search/?sc_channel=seo&sc_campaign=blog1104) 观看视频详细讲解了解更多详细信息。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/aws-solution/  \n\n"
  },
  {
    "path": "posts/b-higher/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>B.Higher H-Index | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\n\"><meta name=keywords content='ACM,2018 湘潭邀请赛,C++,C'><meta itemprop=name content=\"B.Higher h-index\"><meta itemprop=description content=\"1 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\"><meta itemprop=datePublished content=\"2018-06-14T22:47:28+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"605\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,2018 湘潭邀请赛,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/b-higher/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"B.Higher h-index\"><meta property=\"og:description\" content=\"1 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T22:47:28+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"B.Higher h-index\"><meta name=twitter:description content=\"1 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/b-higher/ title=\"B.Higher h-index | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/a-easy/ title=\"A.Easy h-index\"><link rel=next type=text/html href=https://lruihao.cn/posts/k-2018/ title=K.2018><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/b-higher/index.md title=\"B.Higher h-index | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"B.Higher h-index\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/b-higher\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 2018 湘潭邀请赛, C\\u002b\\u002b, C\",\"wordcount\":605,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/b-higher\\/\",\"datePublished\":\"2018-06-14T22:47:28+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/b-higher/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>B.Higher H-Index</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>B.Higher H-Index</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 22:47:28\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"605 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"B.Higher H-Index\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#b-higher-h-index>B. Higher h-index</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#note>Note</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=b-higher-h-index><span>1 B. Higher h-index</span>\n<a href=#b-higher-h-index class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br>Bobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the<br>paper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.<br>There is also a trick – one can cite his own papers published earlier.</p><p>Given Bobo has n working hours, ﬁnd the maximum h-index of him.</p><h3 class=heading-element id=input><span>1.1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The input consists of several test cases and is terminated by end-of-ﬁle.<br>Each test case contains two integers n and a.</p><h3 class=heading-element id=output><span>1.2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For each test case, print an integer which denotes the maximum h-index.</p><h3 class=heading-element id=constraint><span>1.3 Constraint</span>\n<a href=#constraint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>• 1≤ n ≤109\n• 0≤ a ≤ n\n• The number of test cases does not exceed 104.\n</code></pre><h3 class=heading-element id=sample-input><span>1.4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>3 0\n3 1\n1000000000 1000000000\n</code></pre><h3 class=heading-element id=sample-output><span>1.5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>1\n2\n1000000000\n</code></pre><h3 class=heading-element id=note><span>1.6 Note</span>\n<a href=#note class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For the ﬁrst sample, Bobo can work 3 papers for 1 hour each. With the trick mentioned,<br>he will get papers with citations 2,1,0. Thus, his h-index is 1.<br>For the second sample, Bobo can work 2 papers for 1 and 2 hours respectively.<br>He will get papers with citations 1+1,2+0. Thus, his h-index is 2.</p><p>题意：给定 n 个小时，可以用其中 x(1&lt;=x&lt;=n) 个小时写一篇论文，那么这篇论文的\"既定\"引用数将会是<code>x*a</code>(a 为给定正整数）；此外，已经写好的论文将会被其后写成的论文所引用，也就是说，这篇论文的总引用数将会是\"既定\"引用数 + 其后论文篇数；问在所有的写论文方案中（例如一种方案就是用 n 个小时写 n 篇论文，每篇论文各花 1 小时（可以得到这 n 篇论文的引用数）)，h 最大为多少 (h 的含义同上题）（每一种方案都对应着一个 h，求这些 h 中的最大者）<br>思路：最优方案（即对应 h 值最大的方案）是平摊 n 小时写成 n 篇论文（证明未知）；此时 n 篇论文的引用数为 a,a+1,a+2,&mldr;,a+n-1，引用数为 a+i 时，引用数大于等于它的论文有 n-i 篇，令 a+i=n-i 得 i=(n-a)/2, 所以 h=a+(n-a)/2;</p><p>后 AC 代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;cstdio&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>   <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=k>while</span><span class=p>(</span><span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>)</span><span class=o>!=</span><span class=n>EOF</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=p>(</span><span class=n>n</span><span class=o>-</span><span class=n>a</span><span class=p>)</span><span class=o>/</span><span class=mi>2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>   <span class=p>}</span>\n</span></span><span class=line><span class=cl>   <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/b-higher/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/b-higher.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/b-higher.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20B.Higher+h-index&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cB.Higher+h-index%7c%0A%7cURL%7chttps://lruihao.cn/posts/b-higher/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/b-higher.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/b-higher/ data-title=\"B.Higher H-Index\" data-hashtags=\"ACM,2018 湘潭邀请赛,C++,C\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/b-higher/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/b-higher/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/b-higher/ data-title=\"B.Higher H-Index\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/b-higher/ data-title=\"B.Higher H-Index\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/a-easy/ class=post-nav-item rel=prev title=\"A.Easy H-Index\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>A.Easy H-Index</a><a href=/posts/k-2018/ class=post-nav-item rel=next title=K.2018>K.2018<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#b-higher-h-index>B. Higher h-index</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#note>Note</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/063a7c6d2aefb90daf3d805734b1df24.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/063a7c6d2aefb90daf3d805734b1df24.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/b-higher/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/b-higher/index.md",
    "content": "# B.Higher H-Index\n\n\n## B. Higher h-index\n\nThe h-index of an author is the largest h where he has at least h papers with citations not less than h.  \nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the  \npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.  \nThere is also a trick – one can cite his own papers published earlier.\n\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\n\n<!--more-->\n\n### Input\n\nThe input consists of several test cases and is terminated by end-of-ﬁle.  \nEach test case contains two integers n and a.\n\n### Output\n\nFor each test case, print an integer which denotes the maximum h-index.\n\n### Constraint\n\n    • 1≤ n ≤109\n    • 0≤ a ≤ n\n    • The number of test cases does not exceed 104.\n\n### Sample Input\n\n    3 0\n    3 1\n    1000000000 1000000000\n\n### Sample Output\n\n    1\n    2\n    1000000000\n\n### Note\n\nFor the ﬁrst sample, Bobo can work 3 papers for 1 hour each. With the trick mentioned,  \nhe will get papers with citations 2,1,0. Thus, his h-index is 1.  \nFor the second sample, Bobo can work 2 papers for 1 and 2 hours respectively.  \nHe will get papers with citations 1+1,2+0. Thus, his h-index is 2.\n\n题意：给定 n 个小时，可以用其中 x(1<=x<=n) 个小时写一篇论文，那么这篇论文的\"既定\"引用数将会是`x*a`(a 为给定正整数）；此外，已经写好的论文将会被其后写成的论文所引用，也就是说，这篇论文的总引用数将会是\"既定\"引用数 + 其后论文篇数；问在所有的写论文方案中（例如一种方案就是用 n 个小时写 n 篇论文，每篇论文各花 1 小时（可以得到这 n 篇论文的引用数）)，h 最大为多少 (h 的含义同上题）（每一种方案都对应着一个 h，求这些 h 中的最大者）  \n思路：最优方案（即对应 h 值最大的方案）是平摊 n 小时写成 n 篇论文（证明未知）；此时 n 篇论文的引用数为 a,a+1,a+2,...,a+n-1，引用数为 a+i 时，引用数大于等于它的论文有 n-i 篇，令 a+i=n-i 得 i=(n-a)/2, 所以 h=a+(n-a)/2;\n\n后 AC 代码\n\n```c\n#include<cstdio>\n\nint main(){\n   int n,a;\n   while(scanf(\"%d%d\",&n,&a)!=EOF){\n    printf(\"%d\\n\",a+(n-a)/2);\n   }\n   return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/b-higher/  \n\n"
  },
  {
    "path": "posts/beego-install/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Beego 安装及配置 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"记录 GO 及 Beego 框架安装及基础配置。\n\"><meta name=keywords content='Beego,Go'><meta itemprop=name content=\"Beego 安装及配置\"><meta itemprop=description content=\"记录 GO 及 Beego 框架安装及基础配置。\"><meta itemprop=datePublished content=\"2022-08-31T09:32:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"372\"><meta itemprop=image content=\"https://lruihao.cn/posts/beego-install/images/featured-image.png\"><meta itemprop=keywords content=\"Beego,Go\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/beego-install/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Beego 安装及配置\"><meta property=\"og:description\" content=\"记录 GO 及 Beego 框架安装及基础配置。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-31T09:32:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Beego\"><meta property=\"article:tag\" content=\"Go\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/beego-install/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/beego-install/images/featured-image.png\"><meta name=twitter:title content=\"Beego 安装及配置\"><meta name=twitter:description content=\"记录 GO 及 Beego 框架安装及基础配置。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/beego-install/ title=\"Beego 安装及配置 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/semver/ title=语义版本控制（SemVer）><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ title=\"Using frequently-used Hugo commands by shell.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/beego-install/index.md title=\"Beego 安装及配置 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Beego 安装及配置\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/beego-install\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/beego-install\\/images\\/featured-image.png\",\"width\":1348,\"height\":594}],\"genre\":\"posts\",\"keywords\":\"Beego, Go\",\"wordcount\":372,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/beego-install\\/\",\"datePublished\":\"2022-08-31T09:32:44+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/beego-install/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Beego 安装及配置</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Beego 安装及配置</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/go/ class=post-category title=\"分类 - Go\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Go</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-31 09:32:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-31>2022-08-31</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"372 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Beego 安装及配置\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/beego-install/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/beego-install/images/featured-image.png height=594 width=1348></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装-go>安装 Go</a></li><li><a href=#安装-beego>安装 Beego</a></li><li><a href=#安装-bee>安装 bee</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>记录 GO 及 Beego 框架安装及基础配置。</p><h2 class=heading-element id=安装-go><span>1 安装 Go</span>\n<a href=#%e5%ae%89%e8%a3%85-go class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>官网下载安装包：<a href=https://golang.google.cn/dl/ target=_blank rel=\"external nofollow noopener noreferrer\">https://golang.google.cn/dl/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></li><li><p>通过二进制文件快速安装，默认安装目录：<code>/usr/local/go</code></p></li><li><p>配置环境变量 <code>vim ~/.bash_profile</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># golang</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOROOT</span><span class=o>=</span>/usr/local/go\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOBIN</span><span class=o>=</span><span class=nv>$GOROOT</span>/bin\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$GOBIN</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOPATH</span><span class=o>=</span><span class=nv>$HOME</span>/go\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOPROXY</span><span class=o>=</span>https://goproxy.cn\n</span></span><span class=line><span class=cl><span class=c1># Go work bin</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$GOPATH</span>/bin</span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=安装-beego><span>2 安装 Beego</span>\n<a href=#%e5%ae%89%e8%a3%85-beego class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/beego/beego target=_blank rel=\"external nofollow noopener noreferrer\">Beego repository<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://beego.vip/ target=_blank rel=\"external nofollow noopener noreferrer\">Beego docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://beego.gocn.vip/ target=_blank rel=\"external nofollow noopener noreferrer\">Beego new docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>Beego 的安装需要在新建项目且 <code>go mod init &lt;module_name></code>之后，在项目下执行，具体参考 <a href=https://github.com/beego/beego#quick-start target=_blank rel=\"external nofollow noopener noreferrer\">beego#quick-start<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=安装-bee><span>3 安装 bee</span>\n<a href=#%e5%ae%89%e8%a3%85-bee class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/beego/bee target=_blank rel=\"external nofollow noopener noreferrer\">bee repository<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><blockquote><p>注意：arm64 架构的 mac (M1 ～系列)，下载安装 bee 时最好，使用 Rosetta 打开终端，不然无法下载 <code>darwin_arm64</code> 的依赖，如果已经安装了，可以使用 Rosetta 打开终端后，运行 <code>bee update</code> 升级，升级完后将终端复原。</p></blockquote><p>bee 工具安装，<code>go install</code> 安裝指定版本的 bee 工具，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>go install github.com/beego/bee/v2@latest</span></span></code></pre></td></tr></table></div></div></div><p>安装成功后，可以在 <code>$GOPATH/bin</code> 下看到 <code>bee</code> 的可执行文件。</p><p>检验 bee 工具是否安装成功：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>bee version</span></span></code></pre></td></tr></table></div></div></div><p>创建一个新的 Beego 项目</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>bee new hello\n</span></span><span class=line><span class=cl><span class=nb>cd</span> hello\n</span></span><span class=line><span class=cl>go mod tidy\n</span></span><span class=line><span class=cl>bee run</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/beego-install/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_go/beego-install/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_go/beego-install/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Beego+%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cBeego+%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/beego-install/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_go/beego-install/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/beego-install/ data-title=\"Beego 安装及配置\" data-hashtags=Beego,Go><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/beego-install/ data-hashtag=Beego><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/beego-install/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/beego-install/ data-title=\"Beego 安装及配置\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/beego-install/ data-title=\"Beego 安装及配置\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/beego/ class=post-tag title=\"标签 - Beego\">Beego</a><a href=/tags/go/ class=post-tag title=\"标签 - Go\">Go</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/semver/ class=post-nav-item rel=prev title=语义版本控制（SemVer）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>语义版本控制（SemVer）</a><a href=/projects/hugo-fixit/hugo-shell/ class=post-nav-item rel=next title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装-go>安装 Go</a></li><li><a href=#安装-beego>安装 Beego</a></li><li><a href=#安装-bee>安装 bee</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c46366ac40713b505bd07a45b9cda8cd.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c46366ac40713b505bd07a45b9cda8cd.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/beego-install/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/beego-install/index.md",
    "content": "# Beego 安装及配置\n\n\n记录 GO 及 Beego 框架安装及基础配置。\n\n<!--more-->\n\n## 安装 Go\n\n1. 官网下载安装包：<https://golang.google.cn/dl/>\n2. 通过二进制文件快速安装，默认安装目录：`/usr/local/go`\n3. 配置环境变量 `vim ~/.bash_profile`\n\n   ```bash\n   # golang\n   export GOROOT=/usr/local/go\n   export GOBIN=$GOROOT/bin\n   export PATH=$PATH:$GOBIN\n   export GOPATH=$HOME/go\n   export GOPROXY=https://goproxy.cn\n   # Go work bin\n   export PATH=$PATH:$GOPATH/bin\n   ```\n\n## 安装 Beego\n\n- [Beego repository](https://github.com/beego/beego)\n- [Beego docs](https://beego.vip/)\n- [Beego new docs](https://beego.gocn.vip/)\n\nBeego 的安装需要在新建项目且 `go mod init <module_name>`之后，在项目下执行，具体参考 [beego#quick-start](https://github.com/beego/beego#quick-start)。\n\n## 安装 bee\n\n- [bee repository](https://github.com/beego/bee)\n\n> 注意：arm64 架构的 mac (M1 ～系列)，下载安装 bee 时最好，使用 Rosetta 打开终端，不然无法下载 `darwin_arm64` 的依赖，如果已经安装了，可以使用 Rosetta 打开终端后，运行 `bee update` 升级，升级完后将终端复原。\n\nbee 工具安装，`go install` 安裝指定版本的 bee 工具，例如：\n\n```bash\ngo install github.com/beego/bee/v2@latest\n```\n\n安装成功后，可以在 `$GOPATH/bin` 下看到 `bee` 的可执行文件。\n\n检验 bee 工具是否安装成功：\n\n```bash\nbee version\n```\n\n创建一个新的 Beego 项目\n\n```bash\nbee new hello\ncd hello\ngo mod tidy\nbee run\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/beego-install/  \n\n"
  },
  {
    "path": "posts/beian/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>网站备案之旅 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \"><meta name=keywords content='随笔,网站备案'><meta itemprop=name content=\"网站备案之旅\"><meta itemprop=description content=\"备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\"><meta itemprop=datePublished content=\"2018-10-29T23:16:26+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"254\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔,网站备案\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/beian/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"网站备案之旅\"><meta property=\"og:description\" content=\"备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-29T23:16:26+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"article:tag\" content=\"网站备案\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"网站备案之旅\"><meta name=twitter:description content=\"备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/beian/ title=\"网站备案之旅 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/shell/ title=\"shell 脚本初体验\"><link rel=next type=text/html href=https://lruihao.cn/posts/git/ title=\"Git 常用指令汇总\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/beian/index.md title=\"网站备案之旅 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"网站备案之旅\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/beian\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔, 网站备案\",\"wordcount\":254,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/beian\\/\",\"datePublished\":\"2018-10-29T23:16:26+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/beian/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>网站备案之旅</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>网站备案之旅</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-29 23:16:26\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-29>2018-10-29</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"254 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=网站备案之旅><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>备案<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。<br>备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz</div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/beian/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/beian.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/beian.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88%E4%B9%8B%E6%97%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88%E4%B9%8B%E6%97%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/beian/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/beian.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/beian/ data-title=网站备案之旅 data-hashtags=随笔,网站备案><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/beian/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/beian/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/beian/ data-title=网站备案之旅 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/beian/ data-title=网站备案之旅><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a><a href=/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/ class=post-tag title=\"标签 - 网站备案\">网站备案</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/shell/ class=post-nav-item rel=prev title=\"Shell 脚本初体验\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Shell 脚本初体验</a><a href=/posts/git/ class=post-nav-item rel=next title=\"Git 常用指令汇总\">Git 常用指令汇总<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/64de0604052d048c582136011aaec101.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/64de0604052d048c582136011aaec101.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/beian/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/beian/index.md",
    "content": "# 网站备案之旅\n\n\n{{< admonition success \"备案\" >}}\n经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。  \n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz  \n{{< /admonition >}}\n\n<!--more-->\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/beian/  \n\n"
  },
  {
    "path": "posts/bfs求最短路/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>BFS 求最短路 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\n\"><meta name=keywords content='BFS,搜索,C++'><meta itemprop=name content=\"BFS 求最短路\"><meta itemprop=description content=\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\"><meta itemprop=datePublished content=\"2018-07-22T11:31:05+08:00\"><meta itemprop=dateModified content=\"2018-07-22T11:31:05+08:00\"><meta itemprop=wordCount content=\"611\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"BFS,搜索,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"BFS 求最短路\"><meta property=\"og:description\" content=\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:31:05+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T11:31:05+08:00\"><meta property=\"article:tag\" content=\"BFS\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"BFS 求最短路\"><meta name=twitter:description content=\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ title=\"BFS 求最短路 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cf-1009/ title=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu-1241/ title=\"hdu-1241-Oil Deposits (dfs)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/index.md title=\"BFS 求最短路 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"BFS 求最短路\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"BFS, 搜索, C\\u002b\\u002b\",\"wordcount\":611,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF\\/\",\"datePublished\":\"2018-07-22T11:31:05+08:00\",\"dateModified\":\"2018-07-22T11:31:05+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>BFS 求最短路</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>BFS 求最短路</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:31:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"611 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"BFS 求最短路\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#图>图</a></li><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li><li><a href=#代码>代码</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.<br>如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，<br>以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。</p><h2 class=heading-element id=图><span>1 图</span>\n<a href=#%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>1 3  0 21 23\n2 0 17 20 22\n4 0 14  0  0\n5 0 12 15 18\n6 8 10  0 19\n7 9 11 13 16\n</code></pre><h2 class=heading-element id=输入><span>2 输入</span>\n<a href=#%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>6 5\n1 1 0 1 1\n1 0 1 1 1\n1 0 1 0 0\n1 0 1 1 1\n1 1 1 0 1\n1 1 1 1 1\n</code></pre><h2 class=heading-element id=输出><span>3 输出</span>\n<a href=#%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>1 2 4 5 6 8 10 12 14 17 20 21 23\n12//最短距离\n</code></pre><h2 class=heading-element id=代码><span>4 代码</span>\n<a href=#%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;queue&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstring&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;vector&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>maxn</span><span class=o>=</span><span class=mi>100</span><span class=o>+</span><span class=mi>5</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>G</span><span class=p>[</span><span class=n>maxn</span><span class=p>][</span><span class=n>maxn</span><span class=p>];</span>   <span class=c1>//存图的 d=id\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>path</span><span class=p>[</span><span class=n>maxn</span><span class=p>];</span>      <span class=c1>//存每个节点的父节点，即路径\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>;</span>             <span class=c1>//n 行   m 列\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>k</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=c1>//记录编号\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>end_num</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>vx</span><span class=p>[</span><span class=mi>5</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>};</span>   <span class=c1>//vx  vy 用来计算一个节点周围上下左右 4 个节点\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>vy</span><span class=p>[</span><span class=mi>5</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=n>vis</span><span class=p>[</span><span class=n>maxn</span><span class=p>][</span><span class=n>maxn</span><span class=p>];</span>     <span class=c1>//判断某节点是否已经被访问过\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>id</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>parent</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>node</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>,</span><span class=kt>int</span> <span class=n>c</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span><span class=o>=</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>y</span><span class=o>=</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>id</span><span class=o>=</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//freopen(&#34;in.txt&#34;,&#34;r&#34;,stdin);\n</span></span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>G</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>G</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>vis</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>vis</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>path</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>path</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span> <span class=n>j</span><span class=o>&lt;=</span><span class=n>m</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>G</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>queue</span><span class=o>&lt;</span><span class=n>node</span><span class=o>&gt;</span> <span class=n>q</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>node</span> <span class=n>v</span><span class=o>=</span><span class=n>node</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>vis</span><span class=p>[</span><span class=mi>1</span><span class=p>][</span><span class=mi>1</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>q</span><span class=p>.</span><span class=n>empty</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>node</span> <span class=n>u</span><span class=o>=</span><span class=n>q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=n>q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=n>path</span><span class=p>[</span><span class=n>u</span><span class=p>.</span><span class=n>id</span><span class=p>]</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>parent</span><span class=p>;</span><span class=c1>//记录每个点的父节点\n</span></span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=mi>4</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>tx</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=o>+</span><span class=n>vx</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>ty</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=o>+</span><span class=n>vy</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>G</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>&amp;&amp;!</span><span class=n>vis</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>])</span><span class=c1>//有路可走且未访问\n</span></span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>vis</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=c1>//cout&lt;&lt;tx&lt;&lt;ty&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl>                <span class=n>node</span> <span class=n>v</span><span class=o>=</span><span class=n>node</span><span class=p>(</span><span class=n>tx</span><span class=p>,</span><span class=n>ty</span><span class=p>,</span><span class=o>++</span><span class=n>k</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                <span class=n>end_num</span><span class=o>=</span><span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>v</span><span class=p>.</span><span class=n>parent</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>id</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>vector</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span> <span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//cout&lt;&lt;end_num&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>end_num</span><span class=p>)</span><span class=c1>//从后面开始找父亲节点\n</span></span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>ans</span><span class=p>.</span><span class=n>push_back</span><span class=p>(</span><span class=n>end_num</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>end_num</span><span class=o>=</span><span class=n>path</span><span class=p>[</span><span class=n>end_num</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>s</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>ans</span><span class=p>.</span><span class=n>empty</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>s</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;*</span><span class=p>(</span><span class=n>ans</span><span class=p>.</span><span class=n>end</span><span class=p>()</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>&lt;&lt;</span><span class=sc>&#39; &#39;</span><span class=p>;</span><span class=c1>//ans 最后一个元素是 0\n</span></span></span><span class=line><span class=cl>        <span class=n>ans</span><span class=p>.</span><span class=n>pop_back</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=o>&lt;&lt;</span><span class=n>s</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 11:31:05\">更新于 2018-07-22&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/bfs%e6%b1%82%e6%9c%80%e7%9f%ad%e8%b7%af.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/bfs%e6%b1%82%e6%9c%80%e7%9f%ad%e8%b7%af.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20BFS+%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cBFS+%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF%7c%0A%7cURL%7chttps://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/bfs%e6%b1%82%e6%9c%80%e7%9f%ad%e8%b7%af.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-title=\"BFS 求最短路\" data-hashtags=BFS,搜索,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-hashtag=BFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-title=\"BFS 求最短路\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-title=\"BFS 求最短路\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag title=\"标签 - BFS\">BFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cf-1009/ class=post-nav-item rel=prev title=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Educational Codeforces Round 47 (Rated for Div. 2)</a><a href=/posts/hdu-1241/ class=post-nav-item rel=next title=\"Hdu-1241-Oil Deposits (Dfs)\">Hdu-1241-Oil Deposits (Dfs)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#图>图</a></li><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li><li><a href=#代码>代码</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3c0d788c5aef31e769a7bc0198259867.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3c0d788c5aef31e769a7bc0198259867.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/bfs求最短路/index.md",
    "content": "# BFS 求最短路\n\n\n假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.  \n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，  \n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\n\n<!--more-->\n\n## 图\n\n    1 3  0 21 23\n    2 0 17 20 22\n    4 0 14  0  0\n    5 0 12 15 18\n    6 8 10  0 19\n    7 9 11 13 16\n\n## 输入\n\n    6 5\n    1 1 0 1 1\n    1 0 1 1 1\n    1 0 1 0 0\n    1 0 1 1 1\n    1 1 1 0 1\n    1 1 1 1 1\n\n## 输出\n\n    1 2 4 5 6 8 10 12 14 17 20 21 23\n    12//最短距离\n\n## 代码\n\n```cpp\n#include<iostream>\n#include<queue>\n#include<cstdio>\n#include<cstring>\n#include<vector>\nusing namespace std;\nconst int maxn=100+5;\n\nint G[maxn][maxn];   //存图的 d=id\nint path[maxn];      //存每个节点的父节点，即路径\nint n,m;             //n 行   m 列\nint k=1;//记录编号\nint end_num;\nint vx[5] = {-1,1,0,0};   //vx  vy 用来计算一个节点周围上下左右 4 个节点\nint vy[5] = {0,0,-1,1};\nbool vis[maxn][maxn];     //判断某节点是否已经被访问过\n\nstruct node\n{\n    int x;\n    int y;\n    int id;\n    int parent=0;\n    node(int a,int b,int c)\n    {\n        x=a;\n        y=b;\n        id=c;\n    }\n};\n\nint main()\n{\n    //freopen(\"in.txt\",\"r\",stdin);\n    memset(G,0,sizeof(G));\n    memset(vis,0,sizeof(vis));\n    memset(path,0,sizeof(path));\n    cin>>n>>m;\n    for(int i=1; i<=n; i++)\n        for(int j=1; j<=m; j++)\n        {\n            cin>>G[i][j];\n        }\n    queue<node> q;\n    node v=node(1,1,1);\n    q.push(v);\n    vis[1][1]=1;\n    while(!q.empty())\n    {\n        node u=q.front();\n        q.pop();\n        path[u.id]=u.parent;//记录每个点的父节点\n        for(int i=0; i<4; i++)\n        {\n            int tx=u.x+vx[i];\n            int ty=u.y+vy[i];\n            if(G[tx][ty]&&!vis[tx][ty])//有路可走且未访问\n            {\n                vis[tx][ty]=1;\n                //cout<<tx<<ty<<endl;\n                node v=node(tx,ty,++k);\n                end_num=k;\n                v.parent=u.id;\n                q.push(v);\n            }\n        }\n    }\n    vector<int> ans;\n    //cout<<end_num<<endl;\n    while(end_num)//从后面开始找父亲节点\n    {\n        ans.push_back(end_num);\n        end_num=path[end_num];\n    }\n    int s=0;\n    while(!ans.empty())\n    {\n        s++;\n        cout<<*(ans.end()-1)<<' ';//ans 最后一个元素是 0\n        ans.pop_back();\n    }\n    cout<<endl<<s-1;\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/  \n\n"
  },
  {
    "path": "posts/biaoshi/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 标识符 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 标识符 给类，接口，方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\n\"><meta name=keywords content='Java'><meta itemprop=name content=\"java 标识符\"><meta itemprop=description content=\"1 标识符 给类，接口，方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\"><meta itemprop=datePublished content=\"2019-01-14T15:07:57+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"233\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/biaoshi/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 标识符\"><meta property=\"og:description\" content=\"1 标识符 给类，接口，方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-14T15:07:57+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 标识符\"><meta name=twitter:description content=\"1 标识符 给类，接口，方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/biaoshi/ title=\"java 标识符 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/subject-verb/ title=英语语法--主谓一致><link rel=next type=text/html href=https://lruihao.cn/posts/java-input/ title=\"java 录入数据\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/biaoshi/index.md title=\"java 标识符 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 标识符\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/biaoshi\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":233,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/biaoshi\\/\",\"datePublished\":\"2019-01-14T15:07:57+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/biaoshi/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 标识符</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 标识符</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-14 15:07:57\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-14>2019-01-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"233 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 标识符\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#标识符>标识符</a></li><li><a href=#组成规则>组成规则</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#常见命名方式>常见命名方式</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=标识符><span>1 标识符</span>\n<a href=#%e6%a0%87%e8%af%86%e7%ac%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>给类，接口，方法或者变量起名字的符号</p><h2 class=heading-element id=组成规则><span>2 组成规则</span>\n<a href=#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>A: 英文字母大小写<br>B: 数字<br>C:_和$</p><h2 class=heading-element id=注意事项><span>3 注意事项</span>\n<a href=#%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>A: 不能以数字开头<br>B: 不能是 Java 中的关键字<br>C: 区分大小写<br>Student,student 这是两个名称</p><h2 class=heading-element id=常见命名方式><span>4 常见命名方式</span>\n<a href=#%e5%b8%b8%e8%a7%81%e5%91%bd%e5%90%8d%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>A: 包 其实就是文件夹，用于解决相同类名问题<br>全部小写<br>单级：com<br>多级：cn.itcast<br>B: 类或者接口<br>一个单词：首字母大写<br>Student,Person,Teacher<br>多个单词：每个单词的首字母大写<br>HelloWorld,MyName,NameDemo<br>C: 方法或者变量<br>一个单词：全部小写<br>name,age,show()<br>多个单词：从第二个单词开始，每个单词首字母大写<br>myName,showAllStudentNames()<br>D: 常量<br>一个单词：全部大写<br>AGE<br>多个单词：每个单词都大写，用_连接<br>STUDENT_MAX_AGE</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/biaoshi/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/biaoshi.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/biaoshi.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E6%A0%87%E8%AF%86%E7%AC%A6&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E6%A0%87%E8%AF%86%E7%AC%A6%7c%0A%7cURL%7chttps://lruihao.cn/posts/biaoshi/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/biaoshi.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/biaoshi/ data-title=\"Java 标识符\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/biaoshi/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/biaoshi/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/biaoshi/ data-title=\"Java 标识符\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/biaoshi/ data-title=\"Java 标识符\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/subject-verb/ class=post-nav-item rel=prev title=英语语法--主谓一致><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>英语语法--主谓一致</a><a href=/posts/java-input/ class=post-nav-item rel=next title=\"Java 录入数据\">Java 录入数据<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#标识符>标识符</a></li><li><a href=#组成规则>组成规则</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#常见命名方式>常见命名方式</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/68e86329cdb902703397dd04f5fc4416.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/68e86329cdb902703397dd04f5fc4416.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/biaoshi/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/biaoshi/index.md",
    "content": "# Java 标识符\n\n\n## 标识符\n\n给类，接口，方法或者变量起名字的符号\n\n## 组成规则\n\nA: 英文字母大小写  \nB: 数字  \nC:\\_和$\n\n## 注意事项\n\nA: 不能以数字开头  \nB: 不能是 Java 中的关键字  \nC: 区分大小写  \n Student,student 这是两个名称\n\n## 常见命名方式\n\nA: 包 其实就是文件夹，用于解决相同类名问题  \n 全部小写  \n 单级：com  \n 多级：cn.itcast  \nB: 类或者接口  \n 一个单词：首字母大写  \n Student,Person,Teacher  \n 多个单词：每个单词的首字母大写  \n HelloWorld,MyName,NameDemo  \nC: 方法或者变量  \n 一个单词：全部小写  \n name,age,show()  \n 多个单词：从第二个单词开始，每个单词首字母大写  \n myName,showAllStudentNames()  \nD: 常量  \n 一个单词：全部大写  \n AGE  \n 多个单词：每个单词都大写，用\\_连接  \n STUDENT_MAX_AGE\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/biaoshi/  \n\n"
  },
  {
    "path": "posts/blog-backup/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo 博客源码备份 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='1 备份 hexo 博客 1 2 3 4 5 6 7 8 9 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上 2 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\n'><meta name=keywords content='Git,Hexo,Node.js'><meta itemprop=name content=\"hexo 博客源码备份\"><meta itemprop=description content='1 备份 hexo 博客 1 2 3 4 5 6 7 8 9 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上 2 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成'><meta itemprop=datePublished content=\"2018-11-03T12:49:28+08:00\"><meta itemprop=dateModified content=\"2018-11-03T12:49:28+08:00\"><meta itemprop=wordCount content=\"398\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,Hexo,Node.js\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/blog-backup/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo 博客源码备份\"><meta property=\"og:description\" content='1 备份 hexo 博客 1 2 3 4 5 6 7 8 9 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上 2 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-03T12:49:28+08:00\"><meta property=\"article:modified_time\" content=\"2018-11-03T12:49:28+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo 博客源码备份\"><meta name=twitter:description content='1 备份 hexo 博客 1 2 3 4 5 6 7 8 9 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上 2 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/blog-backup/ title=\"hexo 博客源码备份 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/git/ title=\"Git 常用指令汇总\"><link rel=next type=text/html href=https://lruihao.cn/posts/js-device/ title=\"js 判断用户设备类型及平台\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/blog-backup/index.md title=\"hexo 博客源码备份 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo 博客源码备份\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/blog-backup\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, Hexo, Node.js\",\"wordcount\":398,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/blog-backup\\/\",\"datePublished\":\"2018-11-03T12:49:28+08:00\",\"dateModified\":\"2018-11-03T12:49:28+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/blog-backup/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo 博客源码备份</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo 博客源码备份</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-03 12:49:28\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-03>2018-11-03</time></span>&nbsp;<span title=\"398 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo 博客源码备份\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/blog-backup/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/blog-backup/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#备份-hexo-博客>备份 hexo 博客</a></li><li><a href=#在其他终端克隆和更新-hexo-博客>在其他终端克隆和更新 hexo 博客</a><ol><li><a href=#克隆-hexo-博客备份>克隆 hexo 博客备份</a></li><li><a href=#写新文章并备份和部署备用操作>写新文章并备份和部署（备用操作）</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-11-03，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=备份-hexo-博客><span>1 备份 hexo 博客</span>\n<a href=#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\n</span></span><span class=line><span class=cl>cd hexo\n</span></span><span class=line><span class=cl>git init  //初始化本地仓库\n</span></span><span class=line><span class=cl>git add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\n</span></span><span class=line><span class=cl>git commit -m &#34;blog hexo&#34;\n</span></span><span class=line><span class=cl>git branch hexo  //新建 hexo 分支\n</span></span><span class=line><span class=cl>git checkout hexo  //切换到 hexo 分支上\n</span></span><span class=line><span class=cl>git remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\n</span></span><span class=line><span class=cl>git push origin hexo  //push 到 Github 项目的 hexo 分支上</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=在其他终端克隆和更新-hexo-博客><span>2 在其他终端克隆和更新 hexo 博客</span>\n<a href=#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>nodejs,git,hexo 已经安装好，即搭建完成</p></blockquote><h3 class=heading-element id=克隆-hexo-博客备份><span>2.1 克隆 hexo 博客备份</span>\n<a href=#%e5%85%8b%e9%9a%86-hexo-%e5%8d%9a%e5%ae%a2%e5%a4%87%e4%bb%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git clone -b hexo git@github.com:username/username.github.io.git  //将 Github 中 hexo 分支 clone 到本地\n</span></span><span class=line><span class=cl>cd user.github.io\n</span></span><span class=line><span class=cl>npm install  //注意，这里一定要切换到刚刚 clone 的文件夹内执行，安装必要的所需组件，不用再 init</span></span></code></pre></td></tr></table></div></div></div><p>这样我们的备份文件就会原封不动的拷贝到本地。</p><h3 class=heading-element id=写新文章并备份和部署备用操作><span>2.2 写新文章并备份和部署（备用操作）</span>\n<a href=#%e5%86%99%e6%96%b0%e6%96%87%e7%ab%a0%e5%b9%b6%e5%a4%87%e4%bb%bd%e5%92%8c%e9%83%a8%e7%bd%b2%e5%a4%87%e7%94%a8%e6%93%8d%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>其实源码拷下来了，这步不做我们也知道怎么做了，完全没必要按照教程死搬硬套。灵活一点就行了。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>//进入 username.github.io 文件夹，应是 hexo 分支\n</span></span><span class=line><span class=cl>git pull origin hexo //本地和远端的融合\n</span></span><span class=line><span class=cl>hexo new post &#34;new post name&#34;  //写新文章\n</span></span><span class=line><span class=cl>git add source\n</span></span><span class=line><span class=cl>git commit -m &#34;xxx&#34;\n</span></span><span class=line><span class=cl>git push origin hexo  //备份\n</span></span><span class=line><span class=cl>hexo d -g  //部署</span></span></code></pre></td></tr></table></div></div></div><p><a href=https://blog.csdn.net/Monkey_LZL/article/details/60870891 target=_blank rel=\"external nofollow noopener noreferrer\">参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-11-03 12:49:28\">更新于 2018-11-03&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/blog-backup/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/blog-backup/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/blog-backup/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+%E5%8D%9A%E5%AE%A2%E6%BA%90%E7%A0%81%E5%A4%87%E4%BB%BD&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+%E5%8D%9A%E5%AE%A2%E6%BA%90%E7%A0%81%E5%A4%87%E4%BB%BD%7c%0A%7cURL%7chttps://lruihao.cn/posts/blog-backup/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/blog-backup/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/blog-backup/ data-title=\"Hexo 博客源码备份\" data-hashtags=Git,Hexo,Node.js><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/blog-backup/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/blog-backup/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/blog-backup/ data-title=\"Hexo 博客源码备份\" data-image=/posts/blog-backup/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/blog-backup/ data-title=\"Hexo 博客源码备份\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/git/ class=post-nav-item rel=prev title=\"Git 常用指令汇总\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Git 常用指令汇总</a><a href=/posts/js-device/ class=post-nav-item rel=next title=\"Js 判断用户设备类型及平台\">Js 判断用户设备类型及平台<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#备份-hexo-博客>备份 hexo 博客</a></li><li><a href=#在其他终端克隆和更新-hexo-博客>在其他终端克隆和更新 hexo 博客</a><ol><li><a href=#克隆-hexo-博客备份>克隆 hexo 博客备份</a></li><li><a href=#写新文章并备份和部署备用操作>写新文章并备份和部署（备用操作）</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/893dcbfb89ffeacaa99f40f37c31c669.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/893dcbfb89ffeacaa99f40f37c31c669.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/blog-backup/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/blog-backup/index.md",
    "content": "# Hexo 博客源码备份\n\n\n## 备份 hexo 博客\n\n```\n//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init  //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\ngit commit -m \"blog hexo\"\ngit branch hexo  //新建 hexo 分支\ngit checkout hexo  //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\n```\n\n## 在其他终端克隆和更新 hexo 博客\n\n> nodejs,git,hexo 已经安装好，即搭建完成\n\n### 克隆 hexo 博客备份\n\n```\ngit clone -b hexo git@github.com:username/username.github.io.git  //将 Github 中 hexo 分支 clone 到本地\ncd user.github.io\nnpm install  //注意，这里一定要切换到刚刚 clone 的文件夹内执行，安装必要的所需组件，不用再 init\n```\n\n这样我们的备份文件就会原封不动的拷贝到本地。\n\n### 写新文章并备份和部署（备用操作）\n\n> 其实源码拷下来了，这步不做我们也知道怎么做了，完全没必要按照教程死搬硬套。灵活一点就行了。\n\n```\n//进入 username.github.io 文件夹，应是 hexo 分支\ngit pull origin hexo //本地和远端的融合\nhexo new post \"new post name\"  //写新文章\ngit add source\ngit commit -m \"xxx\"\ngit push origin hexo  //备份\nhexo d -g  //部署\n```\n\n[参考](https://blog.csdn.net/Monkey_LZL/article/details/60870891)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/blog-backup/  \n\n"
  },
  {
    "path": "posts/bqbj/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>百钱百鸡（枚举法） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\n\"><meta name=keywords content='ACM'><meta itemprop=name content=\"百钱百鸡（枚举法）\"><meta itemprop=description content=\"我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\"><meta itemprop=datePublished content=\"2019-03-30T10:13:33+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"284\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/bqbj/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"百钱百鸡（枚举法）\"><meta property=\"og:description\" content=\"我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-30T10:13:33+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"百钱百鸡（枚举法）\"><meta name=twitter:description content=\"我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/bqbj/ title=\"百钱百鸡（枚举法） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dacheng/ title=大数乘法><link rel=next type=text/html href=https://lruihao.cn/posts/ms-html-css/ title=\"前端面试题 - HTML+CSS\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/bqbj/index.md title=\"百钱百鸡（枚举法） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"百钱百鸡（枚举法）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/bqbj\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM\",\"wordcount\":284,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/bqbj\\/\",\"datePublished\":\"2019-03-30T10:13:33+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/bqbj/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>百钱百鸡（枚举法）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>百钱百鸡（枚举法）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-30 10:13:33\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-30>2019-03-30</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"284 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=百钱百鸡（枚举法）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#约束条件>约束条件</a></li><li><a href=#算法分析>算法分析</a></li><li><a href=#算法设计>算法设计</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？</p></blockquote><blockquote><p>设公鸡，母鸡，小鸡数目分别为 x,y,z(x&lt;=20,y&lt;=33,z&lt;=100)</p></blockquote><h2 class=heading-element id=约束条件><span>1 约束条件</span>\n<a href=#%e7%ba%a6%e6%9d%9f%e6%9d%a1%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>x+y+z=100</li><li>5x+3y+z/3=100</li></ul><h2 class=heading-element id=算法分析><span>2 算法分析</span>\n<a href=#%e7%ae%97%e6%b3%95%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>若依次枚举 x,y,x, 则至少尝试 21*34*100=71400 次，显然效率太低。<br>在 x,y 的数目确定后，z 的数目也就确定下来了 100-x-y，无须再进行枚举，此时约束条件只有一个 5x+3y+z/3=100. 只需枚举 x,y，共 21*34=714 次。</p></blockquote><h2 class=heading-element id=算法设计><span>3 算法设计</span>\n<a href=#%e7%ae%97%e6%b3%95%e8%ae%be%e8%ae%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>z</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>x</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>x</span><span class=o>&lt;=</span><span class=mi>20</span><span class=p>;</span><span class=n>x</span><span class=o>++</span><span class=p>)</span> <span class=c1>//21*34=714\n</span></span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>y</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>y</span><span class=o>&lt;=</span><span class=mi>33</span><span class=p>;</span><span class=n>y</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>z</span><span class=o>=</span><span class=mi>100</span><span class=o>-</span><span class=n>y</span><span class=o>-</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>z</span><span class=o>%</span><span class=mi>3</span><span class=o>==</span><span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=mi>5</span><span class=o>*</span><span class=n>x</span><span class=o>+</span><span class=mi>3</span><span class=o>*</span><span class=n>y</span><span class=o>+</span><span class=n>z</span><span class=o>/</span><span class=mi>3</span><span class=p>)</span><span class=o>==</span><span class=mi>100</span><span class=p>){</span><span class=c1>//限定 z 能被 3 整除，进一步提高效率\n</span></span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;cock number:%d</span><span class=se>\\t</span><span class=s>&#34;</span><span class=p>,</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;hen number:%d</span><span class=se>\\t</span><span class=s>&#34;</span><span class=p>,</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;chick number:%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>z</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>运行解</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=n>cock</span> <span class=nl>number</span><span class=p>:</span><span class=mi>0</span>   <span class=n>hen</span> <span class=nl>number</span><span class=p>:</span><span class=mi>25</span>   <span class=n>chick</span> <span class=nl>number</span><span class=p>:</span><span class=mi>75</span>\n</span></span><span class=line><span class=cl><span class=n>cock</span> <span class=nl>number</span><span class=p>:</span><span class=mi>4</span>   <span class=n>hen</span> <span class=nl>number</span><span class=p>:</span><span class=mi>18</span>   <span class=n>chick</span> <span class=nl>number</span><span class=p>:</span><span class=mi>78</span>\n</span></span><span class=line><span class=cl><span class=n>cock</span> <span class=nl>number</span><span class=p>:</span><span class=mi>8</span>   <span class=n>hen</span> <span class=nl>number</span><span class=p>:</span><span class=mi>11</span>   <span class=n>chick</span> <span class=nl>number</span><span class=p>:</span><span class=mi>81</span>\n</span></span><span class=line><span class=cl><span class=n>cock</span> <span class=nl>number</span><span class=p>:</span><span class=mi>12</span>  <span class=n>hen</span> <span class=nl>number</span><span class=p>:</span><span class=mi>4</span>    <span class=n>chick</span> <span class=nl>number</span><span class=p>:</span><span class=mi>84</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/bqbj/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/bqbj.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/bqbj.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%99%BE%E9%92%B1%E7%99%BE%E9%B8%A1%EF%BC%88%E6%9E%9A%E4%B8%BE%E6%B3%95%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%99%BE%E9%92%B1%E7%99%BE%E9%B8%A1%EF%BC%88%E6%9E%9A%E4%B8%BE%E6%B3%95%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/bqbj/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/bqbj.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/bqbj/ data-title=百钱百鸡（枚举法） data-hashtags=ACM><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/bqbj/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/bqbj/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/bqbj/ data-title=百钱百鸡（枚举法） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/bqbj/ data-title=百钱百鸡（枚举法）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dacheng/ class=post-nav-item rel=prev title=大数乘法><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>大数乘法</a><a href=/posts/ms-html-css/ class=post-nav-item rel=next title=\"前端面试题 - HTML+CSS\">前端面试题 - HTML+CSS<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#约束条件>约束条件</a></li><li><a href=#算法分析>算法分析</a></li><li><a href=#算法设计>算法设计</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5954156ca63ba6e21a8d13d55731c53b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5954156ca63ba6e21a8d13d55731c53b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/bqbj/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/bqbj/index.md",
    "content": "# 百钱百鸡（枚举法）\n\n\n> 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\n\n<!--more-->\n\n> 设公鸡，母鸡，小鸡数目分别为 x,y,z(x<=20,y<=33,z<=100)\n\n## 约束条件\n\n- x+y+z=100\n- 5x+3y+z/3=100\n\n## 算法分析\n\n> 若依次枚举 x,y,x, 则至少尝试 21\\*34\\*100=71400 次，显然效率太低。  \n> 在 x,y 的数目确定后，z 的数目也就确定下来了 100-x-y，无须再进行枚举，此时约束条件只有一个 5x+3y+z/3=100. 只需枚举 x,y，共 21\\*34=714 次。\n\n## 算法设计\n\n```cpp\n#include<stdio.h>\n\nint main(){\n    int x,y,z;\n    for(x=0;x<=20;x++) //21*34=714\n    for(y=0;y<=33;y++){\n        z=100-y-x;\n        if(z%3==0 && (5*x+3*y+z/3)==100){//限定 z 能被 3 整除，进一步提高效率\n            printf(\"cock number:%d\\t\",x);\n            printf(\"hen number:%d\\t\",y);\n            printf(\"chick number:%d\\n\",z);\n        }\n    }\n    return 0;\n}\n```\n\n运行解\n\n```cpp 运行解\ncock number:0   hen number:25   chick number:75\ncock number:4   hen number:18   chick number:78\ncock number:8   hen number:11   chick number:81\ncock number:12  hen number:4    chick number:84\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/bqbj/  \n\n"
  },
  {
    "path": "posts/browser-rendering/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>浏览器渲染原理 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\n\"><meta name=keywords content='Browser,JavaScript,HTML,CSS'><meta itemprop=name content=\"浏览器渲染原理\"><meta itemprop=description content=\"1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\"><meta itemprop=datePublished content=\"2023-02-05T21:02:52+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1799\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Browser,javascript,HTML,CSS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/browser-rendering/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"浏览器渲染原理\"><meta property=\"og:description\" content=\"1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-02-05T21:02:52+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Browser\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"浏览器渲染原理\"><meta name=twitter:description content=\"1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/browser-rendering/ title=\"浏览器渲染原理 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/document-style-guide/ title=中文技术文档的写作规范><link rel=next type=text/html href=https://lruihao.cn/posts/native-img-loading-lazy/ title='浏览器 IMG 图片原生懒加载 loading=\"lazy\"'><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/browser-rendering/index.md title=\"浏览器渲染原理 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"浏览器渲染原理\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/browser-rendering\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Browser, JavaScript, HTML, CSS\",\"wordcount\":1799,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/browser-rendering\\/\",\"datePublished\":\"2023-02-05T21:02:52+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/browser-rendering/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>浏览器渲染原理</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>浏览器渲染原理</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/browser/ class=post-category title=\"分类 - Browser\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Browser</a></span></div><div class=post-meta-line><span title=\"发布于 2023-02-05 21:02:52\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-02-05>2023-02-05</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1799 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=浏览器渲染原理><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#浏览器是如何渲染页面的>浏览器是如何渲染页面的？</a></li><li><a href=#什么是-reflow>什么是 reflow？</a></li><li><a href=#什么是-repaint>什么是 repaint？</a></li><li><a href=#为什么-transform-的效率高>为什么 transform 的效率高？</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><iframe src=files/browser-rendering.pdf width=100% height=550></iframe><h2 class=heading-element id=浏览器是如何渲染页面的><span>1 浏览器是如何渲染页面的？</span>\n<a href=#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。</p><p>在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。</p><hr><p>整个渲染流程分为多个阶段，分别是：HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画</p><p>每个阶段都有明确的输入输出，上一个阶段的输出会成为下一个阶段的输入。</p><p>这样，整个渲染流程就形成了一套组织严密的生产流水线。</p><hr><p>渲染的第一步是<strong>解析 HTML</strong>。</p><p>解析过程中遇到 CSS 解析 CSS，遇到 JS 执行 JS。为了提高解析效率，浏览器在开始解析前，会启动一个预解析的线程，率先下载 HTML 中的外部 CSS 文件和 外部的 JS 文件。</p><p>如果主线程解析到<code>link</code>位置，此时外部的 CSS 文件还没有下载解析好，主线程不会等待，继续解析后续的 HTML。这是因为下载和解析 CSS 的工作是在预解析线程中进行的。这就是 CSS 不会阻塞 HTML 解析的根本原因。</p><p>如果主线程解析到<code>script</code>位置，会停止解析 HTML，转而等待 JS 文件下载好，并将全局代码解析执行完成后，才能继续解析 HTML。这是因为 JS 代码的执行过程可能会修改当前的 DOM 树，所以 DOM 树的生成必须暂停。这就是 JS 会阻塞 HTML 解析的根本原因。</p><p>第一步完成后，会得到 DOM 树和 CSSOM 树，浏览器的默认样式、内部样式、外部样式、行内样式均会包含在 CSSOM 树中。</p><hr><p>渲染的下一步是<strong>样式计算</strong>。</p><p>主线程会遍历得到的 DOM 树，依次为树中的每个节点计算出它最终的样式，称之为 Computed Style。</p><p>在这一过程中，很多预设值会变成绝对值，比如<code>red</code>会变成<code class=color-code><span class=color-preview style=background-color:red title=\"Color: rgb(255,0,0)\"></span>rgb(255,0,0)</code>；相对单位会变成绝对单位，比如<code>em</code>会变成<code>px</code></p><p>这一步完成后，会得到一棵带有样式的 DOM 树。</p><hr><p>接下来是<strong>布局</strong>，布局完成后会得到布局树。</p><p>布局阶段会依次遍历 DOM 树的每一个节点，计算每个节点的几何信息。例如节点的宽高、相对包含块的位置。</p><p>大部分时候，DOM 树和布局树并非一一对应。</p><p>比如<code>display:none</code>的节点没有几何信息，因此不会生成到布局树；又比如使用了伪元素选择器，虽然 DOM 树中不存在这些伪元素节点，但它们拥有几何信息，所以会生成到布局树中。还有匿名行盒、匿名块盒等等都会导致 DOM 树和布局树无法一一对应。</p><hr><p>下一步是<strong>分层</strong></p><p>主线程会使用一套复杂的策略对整个布局树中进行分层。</p><p>分层的好处在于，将来某一个层改变后，仅会对该层进行后续处理，从而提升效率。</p><p>滚动条、堆叠上下文、transform、opacity 等样式都会或多或少的影响分层结果，也可以通过<code>will-change</code>属性更大程度的影响分层结果。</p><hr><p>再下一步是<strong>绘制</strong></p><p>主线程会为每个层单独产生绘制指令集，用于描述这一层的内容该如何画出来。</p><hr><p>完成绘制后，主线程将每个图层的绘制信息提交给合成线程，剩余工作将由合成线程完成。</p><p>合成线程首先对每个图层进行分块，将其划分为更多的小区域。</p><p>它会从线程池中拿取多个线程来完成分块工作。</p><hr><p>分块完成后，进入<strong>光栅化</strong>阶段。</p><p>合成线程会将块信息交给 GPU 进程，以极高的速度完成光栅化。</p><p>GPU 进程会开启多个线程来完成光栅化，并且优先处理靠近视口区域的块。</p><p>光栅化的结果，就是一块一块的位图</p><hr><p>最后一个阶段就是<strong>画</strong>了</p><p>合成线程拿到每个层、每个块的位图后，生成一个个「指引（quad）」信息。</p><p>指引会标识出每个位图应该画到屏幕的哪个位置，以及会考虑到旋转、缩放等变形。</p><p>变形发生在合成线程，与渲染主线程无关，这就是<code>transform</code>效率高的本质原因。</p><p>合成线程会把 quad 提交给 GPU 进程，由 GPU 进程产生系统调用，提交给 GPU 硬件，完成最终的屏幕成像。</p><h2 class=heading-element id=什么是-reflow><span>2 什么是 reflow？</span>\n<a href=#%e4%bb%80%e4%b9%88%e6%98%af-reflow class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>reflow 的本质就是重新计算 layout 树。</p><p>当进行了会影响布局树的操作后，需要重新计算布局树，会引发 layout。</p><p>为了避免连续的多次操作导致布局树反复计算，浏览器会合并这些操作，当 JS 代码全部完成后再进行统一计算。所以，改动属性造成的 reflow 是异步完成的。</p><p>也同样因为如此，当 JS 获取布局属性时，就可能造成无法获取到最新的布局信息。</p><p>浏览器在反复权衡下，最终决定获取属性立即 reflow。</p><h2 class=heading-element id=什么是-repaint><span>3 什么是 repaint？</span>\n<a href=#%e4%bb%80%e4%b9%88%e6%98%af-repaint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>repaint 的本质就是重新根据分层信息计算了绘制指令。</p><p>当改动了可见样式后，就需要重新计算，会引发 repaint。</p><p>由于元素的布局信息也属于可见样式，所以 reflow 一定会引起 repaint。</p><h2 class=heading-element id=为什么-transform-的效率高><span>4 为什么 transform 的效率高？</span>\n<a href=#%e4%b8%ba%e4%bb%80%e4%b9%88-transform-%e7%9a%84%e6%95%88%e7%8e%87%e9%ab%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>因为 transform 既不会影响布局也不会影响绘制指令，它影响的只是渲染流程的最后一个「draw」阶段</p><p>由于 draw 阶段在合成线程中，所以 transform 的变化几乎不会影响渲染主线程。反之，渲染主线程无论如何忙碌，也不会影响 transform 的变化。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/browser-rendering/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/browser-rendering/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/browser-rendering/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B5%8F%E8%A7%88%E5%99%A8%E6%B8%B2%E6%9F%93%E5%8E%9F%E7%90%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B5%8F%E8%A7%88%E5%99%A8%E6%B8%B2%E6%9F%93%E5%8E%9F%E7%90%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/browser-rendering/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/browser-rendering/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/browser-rendering/ data-title=浏览器渲染原理 data-hashtags=Browser,JavaScript,HTML,CSS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/browser-rendering/ data-hashtag=Browser><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/browser-rendering/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/browser-rendering/ data-title=浏览器渲染原理 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/browser-rendering/ data-title=浏览器渲染原理><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/browser/ class=post-tag title=\"标签 - Browser\">Browser</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/document-style-guide/ class=post-nav-item rel=prev title=中文技术文档的写作规范><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>中文技术文档的写作规范</a><a href=/posts/native-img-loading-lazy/ class=post-nav-item rel=next title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"'>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#浏览器是如何渲染页面的>浏览器是如何渲染页面的？</a></li><li><a href=#什么是-reflow>什么是 reflow？</a></li><li><a href=#什么是-repaint>什么是 repaint？</a></li><li><a href=#为什么-transform-的效率高>为什么 transform 的效率高？</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/50d88726c42a23edb45562a9bce23a02.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/50d88726c42a23edb45562a9bce23a02.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/browser-rendering/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/browser-rendering/index.md",
    "content": "# 浏览器渲染原理\n\n\n<iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"></iframe>\n\n## 浏览器是如何渲染页面的？\n\n当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\n\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\n\n---\n\n整个渲染流程分为多个阶段，分别是：HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画\n\n每个阶段都有明确的输入输出，上一个阶段的输出会成为下一个阶段的输入。\n\n这样，整个渲染流程就形成了一套组织严密的生产流水线。\n\n---\n\n渲染的第一步是**解析 HTML**。\n\n解析过程中遇到 CSS 解析 CSS，遇到 JS 执行 JS。为了提高解析效率，浏览器在开始解析前，会启动一个预解析的线程，率先下载 HTML 中的外部 CSS 文件和 外部的 JS 文件。\n\n如果主线程解析到`link`位置，此时外部的 CSS 文件还没有下载解析好，主线程不会等待，继续解析后续的 HTML。这是因为下载和解析 CSS 的工作是在预解析线程中进行的。这就是 CSS 不会阻塞 HTML 解析的根本原因。\n\n如果主线程解析到`script`位置，会停止解析 HTML，转而等待 JS 文件下载好，并将全局代码解析执行完成后，才能继续解析 HTML。这是因为 JS 代码的执行过程可能会修改当前的 DOM 树，所以 DOM 树的生成必须暂停。这就是 JS 会阻塞 HTML 解析的根本原因。\n\n第一步完成后，会得到 DOM 树和 CSSOM 树，浏览器的默认样式、内部样式、外部样式、行内样式均会包含在 CSSOM 树中。\n\n---\n\n渲染的下一步是**样式计算**。\n\n主线程会遍历得到的 DOM 树，依次为树中的每个节点计算出它最终的样式，称之为 Computed Style。\n\n在这一过程中，很多预设值会变成绝对值，比如`red`会变成`rgb(255,0,0)`；相对单位会变成绝对单位，比如`em`会变成`px`\n\n这一步完成后，会得到一棵带有样式的 DOM 树。\n\n---\n\n接下来是**布局**，布局完成后会得到布局树。\n\n布局阶段会依次遍历 DOM 树的每一个节点，计算每个节点的几何信息。例如节点的宽高、相对包含块的位置。\n\n大部分时候，DOM 树和布局树并非一一对应。\n\n比如`display:none`的节点没有几何信息，因此不会生成到布局树；又比如使用了伪元素选择器，虽然 DOM 树中不存在这些伪元素节点，但它们拥有几何信息，所以会生成到布局树中。还有匿名行盒、匿名块盒等等都会导致 DOM 树和布局树无法一一对应。\n\n---\n\n下一步是**分层**\n\n主线程会使用一套复杂的策略对整个布局树中进行分层。\n\n分层的好处在于，将来某一个层改变后，仅会对该层进行后续处理，从而提升效率。\n\n滚动条、堆叠上下文、transform、opacity 等样式都会或多或少的影响分层结果，也可以通过`will-change`属性更大程度的影响分层结果。\n\n---\n\n再下一步是**绘制**\n\n主线程会为每个层单独产生绘制指令集，用于描述这一层的内容该如何画出来。\n\n---\n\n完成绘制后，主线程将每个图层的绘制信息提交给合成线程，剩余工作将由合成线程完成。\n\n合成线程首先对每个图层进行分块，将其划分为更多的小区域。\n\n它会从线程池中拿取多个线程来完成分块工作。\n\n---\n\n分块完成后，进入**光栅化**阶段。\n\n合成线程会将块信息交给 GPU 进程，以极高的速度完成光栅化。\n\nGPU 进程会开启多个线程来完成光栅化，并且优先处理靠近视口区域的块。\n\n光栅化的结果，就是一块一块的位图\n\n---\n\n最后一个阶段就是**画**了\n\n合成线程拿到每个层、每个块的位图后，生成一个个「指引（quad）」信息。\n\n指引会标识出每个位图应该画到屏幕的哪个位置，以及会考虑到旋转、缩放等变形。\n\n变形发生在合成线程，与渲染主线程无关，这就是`transform`效率高的本质原因。\n\n合成线程会把 quad 提交给 GPU 进程，由 GPU 进程产生系统调用，提交给 GPU 硬件，完成最终的屏幕成像。\n\n## 什么是 reflow？\n\nreflow 的本质就是重新计算 layout 树。\n\n当进行了会影响布局树的操作后，需要重新计算布局树，会引发 layout。\n\n为了避免连续的多次操作导致布局树反复计算，浏览器会合并这些操作，当 JS 代码全部完成后再进行统一计算。所以，改动属性造成的 reflow 是异步完成的。\n\n也同样因为如此，当 JS 获取布局属性时，就可能造成无法获取到最新的布局信息。\n\n浏览器在反复权衡下，最终决定获取属性立即 reflow。\n\n## 什么是 repaint？\n\nrepaint 的本质就是重新根据分层信息计算了绘制指令。\n\n当改动了可见样式后，就需要重新计算，会引发 repaint。\n\n由于元素的布局信息也属于可见样式，所以 reflow 一定会引起 repaint。\n\n## 为什么 transform 的效率高？\n\n因为 transform 既不会影响布局也不会影响绘制指令，它影响的只是渲染流程的最后一个「draw」阶段\n\n由于 draw 阶段在合成线程中，所以 transform 的变化几乎不会影响渲染主线程。反之，渲染主线程无论如何忙碌，也不会影响 transform 的变化。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/browser-rendering/  \n\n"
  },
  {
    "path": "posts/bt/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>宝塔面板安装 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\n\"><meta name=keywords content='linux,server,宝塔面板'><meta itemprop=name content=\"宝塔面板安装\"><meta itemprop=description content=\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\"><meta itemprop=datePublished content=\"2019-03-18T21:31:43+08:00\"><meta itemprop=dateModified content=\"2019-03-18T21:31:43+08:00\"><meta itemprop=wordCount content=\"397\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"linux,server,宝塔面板\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/bt/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"宝塔面板安装\"><meta property=\"og:description\" content=\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-18T21:31:43+08:00\"><meta property=\"article:modified_time\" content=\"2019-03-18T21:31:43+08:00\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"server\"><meta property=\"article:tag\" content=\"宝塔面板\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"宝塔面板安装\"><meta name=twitter:description content=\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/bt/ title=\"宝塔面板安装 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/webbiji/ title=\"web 汇总\"><link rel=next type=text/html href=https://lruihao.cn/posts/player/ title=宅音乐播放器><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/bt/index.md title=\"宝塔面板安装 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"宝塔面板安装\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/bt\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"linux, server, 宝塔面板\",\"wordcount\":397,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/bt\\/\",\"datePublished\":\"2019-03-18T21:31:43+08:00\",\"dateModified\":\"2019-03-18T21:31:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/bt/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>宝塔面板安装</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>宝塔面板安装</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-18 21:31:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-18>2019-03-18</time></span>&nbsp;<span title=\"397 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=宝塔面板安装><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/bt/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/bt/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#系统要求>系统要求</a></li><li><a href=#安装方法>安装方法</a></li><li><a href=#搭建-ftp-和云盘服务器>搭建 ftp 和云盘服务器</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2019-03-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。<a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=_blank rel=\"external nofollow noopener noreferrer\">宝塔官网介绍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=系统要求><span>1 系统要求</span>\n<a href=#%e7%b3%bb%e7%bb%9f%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>操作系统：全新系统（支持 CentOS、Ubuntu、Debian、Fedora、Deepin)，<br>确保是干净的操作系统，没有安装过其它环境带的 Apache/Nginx/php/MySQL<br>宝塔 Linux6.0 版本是基于 centos7 开发的，强烈建议使用 centos7.x 系统<br>内存要求：内存要求最低 512MB，推荐 768MB 以上，纯面板约占系统 60MB 内存。</p></blockquote><h2 class=heading-element id=安装方法><span>2 安装方法</span>\n<a href=#%e5%ae%89%e8%a3%85%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>官方号称 2 分钟装好面板，一键管理服务器。</p><blockquote><p>使用 SSH 连接工具，如宝塔远程桌面助手连接到你的 Linux 服务器后，挂载磁盘，根据系统执行相应命令开始安装（大约 2 分钟完成面板安装）：</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Shell data-lang=Shell><span class=line><span class=cl>yum install -y wget <span class=o>&amp;&amp;</span> wget -O install.sh http://download.bt.cn/install/install_6.0.sh <span class=o>&amp;&amp;</span> sh install.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Shell data-lang=Shell><span class=line><span class=cl>wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh <span class=o>&amp;&amp;</span> sudo bash install.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Shell data-lang=Shell><span class=line><span class=cl>wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh <span class=o>&amp;&amp;</span> bash install.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Shell data-lang=Shell><span class=line><span class=cl>wget -O install.sh http://download.bt.cn/install/install_6.0.sh <span class=o>&amp;&amp;</span> bash install.sh</span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/bt/images/2.png title=宝塔软件管理页面 data-thumbnail=/posts/bt/images/2.png data-sub-html=\"<h2>宝塔软件管理页面</h2>\"><img loading=lazy src=/posts/bt/images/2.png alt=宝塔软件管理页面 height=1030 width=1920></a></p><h2 class=heading-element id=搭建-ftp-和云盘服务器><span>3 搭建 ftp 和云盘服务器</span>\n<a href=#%e6%90%ad%e5%bb%ba-ftp-%e5%92%8c%e4%ba%91%e7%9b%98%e6%9c%8d%e5%8a%a1%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以很傻瓜式的搭建自己的云盘，和平时用的比较多的 ftp 服务器。搭建静态网站也可以用 ftp 来上传文件。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-03-18 21:31:43\">更新于 2019-03-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/bt/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/bt/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/bt/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/bt/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/bt/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/bt/ data-title=宝塔面板安装 data-hashtags=linux,server,宝塔面板><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/bt/ data-hashtag=linux><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/bt/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/bt/ data-title=宝塔面板安装 data-image=/posts/bt/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/bt/ data-title=宝塔面板安装><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag title=\"标签 - 宝塔面板\">宝塔面板</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/webbiji/ class=post-nav-item rel=prev title=\"Web 汇总\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Web 汇总</a><a href=/posts/player/ class=post-nav-item rel=next title=宅音乐播放器>宅音乐播放器<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#系统要求>系统要求</a></li><li><a href=#安装方法>安装方法</a></li><li><a href=#搭建-ftp-和云盘服务器>搭建 ftp 和云盘服务器</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/36735ed50e9a4121e9fea9ef0954a5a1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/36735ed50e9a4121e9fea9ef0954a5a1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/bt/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/bt/index.md",
    "content": "# 宝塔面板安装\n\n\n极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。[宝塔官网介绍](https://www.bt.cn/?invite_code=MV9sYXJnZHI=)\n\n<!--more-->\n\n## 系统要求\n\n> 操作系统：全新系统（支持 CentOS、Ubuntu、Debian、Fedora、Deepin)，  \n> 确保是干净的操作系统，没有安装过其它环境带的 Apache/Nginx/php/MySQL  \n> 宝塔 Linux6.0 版本是基于 centos7 开发的，强烈建议使用 centos7.x 系统  \n> 内存要求：内存要求最低 512MB，推荐 768MB 以上，纯面板约占系统 60MB 内存。\n\n## 安装方法\n\n官方号称 2 分钟装好面板，一键管理服务器。\n\n> 使用 SSH 连接工具，如宝塔远程桌面助手连接到你的 Linux 服务器后，挂载磁盘，根据系统执行相应命令开始安装（大约 2 分钟完成面板安装）：\n\n```Shell Centos 安装脚本\nyum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh\n```\n\n```Shell Ubuntu/Deepin 安装脚本\nwget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh\n```\n\n```Shell Debian 安装脚本\nwget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh\n```\n\n```Shell Fedora 安装脚本\nwget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh\n```\n\n![宝塔软件管理页面](images/2.png)\n\n## 搭建 ftp 和云盘服务器\n\n可以很傻瓜式的搭建自己的云盘，和平时用的比较多的 ftp 服务器。搭建静态网站也可以用 ftp 来上传文件。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/bt/  \n\n"
  },
  {
    "path": "posts/byteio/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>文件加密解密（字节流） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\n\"><meta name=keywords content='Java'><meta itemprop=name content=\"文件加密解密（字节流）\"><meta itemprop=description content=\"基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\"><meta itemprop=datePublished content=\"2019-05-02T23:04:32+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1207\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/byteio/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"文件加密解密（字节流）\"><meta property=\"og:description\" content=\"基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-02T23:04:32+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"文件加密解密（字节流）\"><meta name=twitter:description content=\"基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/byteio/ title=\"文件加密解密（字节流） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/javaexception/ title=\"模拟借书系统（java 异常练习）\"><link rel=next type=text/html href=https://lruihao.cn/posts/java-urlreader/ title=\"java 通过 URL 和 URLConnection 访问网页资源\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/byteio/index.md title=\"文件加密解密（字节流） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"文件加密解密（字节流）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/byteio\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":1207,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/byteio\\/\",\"datePublished\":\"2019-05-02T23:04:32+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/byteio/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>文件加密解密（字节流）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>文件加密解密（字节流）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-02 23:04:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-02>2019-05-02</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1207 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=文件加密解密（字节流）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#文件加密解密>文件加密解密</a></li><li><a href=#文件复制>文件复制</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。</p><p>这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。</p></blockquote><h2 class=heading-element id=文件加密解密><span>1 文件加密解密</span>\n<a href=#%e6%96%87%e4%bb%b6%e5%8a%a0%e5%af%86%e8%a7%a3%e5%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileInputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileOutputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.IOException</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>EncryptFile</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=kd>throws</span><span class=w> </span><span class=n>IOException</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>byte</span><span class=w> </span><span class=n>pwd</span><span class=o>=</span><span class=n>123</span><span class=p>;</span><span class=c1>//加密/解密密码</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileInputStream</span><span class=w> </span><span class=n>f</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileInputStream</span><span class=p>(</span><span class=s>&#34;src/cn/lruihao/base/EncryptFile.java&#34;</span><span class=p>);</span><span class=c1>//待加密文件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileOutputStream</span><span class=w> </span><span class=n>fout</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileOutputStream</span><span class=p>(</span><span class=s>&#34;encrypted.txt&#34;</span><span class=p>);</span><span class=c1>//已加密文件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;开始加密。&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>n</span><span class=o>=</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>()</span><span class=o>/</span><span class=n>5</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>byte</span><span class=o>[]</span><span class=w> </span><span class=n>b</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=kt>byte</span><span class=o>[</span><span class=n>n</span><span class=o>]</span><span class=p>;</span><span class=c1>//以一个字节数组的长度读取和复制</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>count</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>while</span><span class=p>((</span><span class=n>count</span><span class=o>=</span><span class=n>f</span><span class=p>.</span><span class=na>read</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>n</span><span class=p>))</span><span class=o>!=-</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//写入之前先加密/解密</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>count</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]=</span><span class=p>(</span><span class=kt>byte</span><span class=p>)(</span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]^</span><span class=n>pwd</span><span class=p>);</span><span class=c1>//</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>fout</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>count</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;完成加密&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>f</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    f=new FileInputStream(&#34;encrypted.txt&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    fout=new FileOutputStream(&#34;unencrypted.txt&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    System.out.println(&#34;开始解密。&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    n=f.available()/5;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    b=new byte[n];//以一个字节数组的长度读取和复制</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    count=0;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    while((count=f.read(b,0,n))!=-1) {</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//      //写入之前先加密/解密</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//      for(int i=0;i&lt;count;i++) {</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//        b[i]=(byte)(b[i]^pwd);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//      }</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//      fout.write(b,0,count);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    }</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    System.out.println(&#34;完成解密&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    f.close();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//    fout.close();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=文件复制><span>2 文件复制</span>\n<a href=#%e6%96%87%e4%bb%b6%e5%a4%8d%e5%88%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileInputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileOutputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.IOException</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>FileStreamCopy</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=kd>throws</span><span class=w> </span><span class=n>IOException</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>size</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileInputStream</span><span class=w> </span><span class=n>f</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileInputStream</span><span class=p>(</span><span class=s>&#34;src/cn/lruihao/base/FileStreamCopy.java&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileOutputStream</span><span class=w> </span><span class=n>fout</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileOutputStream</span><span class=p>(</span><span class=s>&#34;copy-of-file.txt&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;总长度：&#34;</span><span class=o>+</span><span class=p>(</span><span class=n>size</span><span class=o>=</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>()));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>n</span><span class=o>=</span><span class=n>size</span><span class=o>/</span><span class=n>10</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;使用单字节方法读取后：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>fout</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>f</span><span class=p>.</span><span class=na>read</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;剩余长度：&#34;</span><span class=o>+</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;读取一个字节数组后：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>byte</span><span class=w> </span><span class=n>b</span><span class=o>[]=</span><span class=k>new</span><span class=w> </span><span class=kt>byte</span><span class=o>[</span><span class=n>n</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>f</span><span class=p>.</span><span class=na>read</span><span class=p>(</span><span class=n>b</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>b</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;剩余长度：&#34;</span><span class=o>+</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;读取余下数据：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>count</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>while</span><span class=p>((</span><span class=n>count</span><span class=o>=</span><span class=n>f</span><span class=p>.</span><span class=na>read</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>n</span><span class=p>))</span><span class=o>!=-</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//System.out.println(count);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>fout</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>count</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;剩余长度：&#34;</span><span class=o>+</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>f</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>flush</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.BufferedInputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.BufferedOutputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileInputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileOutputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.IOException</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>BufferedStreamCopy</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=kd>throws</span><span class=w> </span><span class=n>IOException</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileInputStream</span><span class=w> </span><span class=n>f</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileInputStream</span><span class=p>(</span><span class=s>&#34;src/cn/lruihao/base/BufferedStreamCopy.java&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileOutputStream</span><span class=w> </span><span class=n>fout</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileOutputStream</span><span class=p>(</span><span class=s>&#34;copy-of-file.txt&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>BufferedInputStream</span><span class=w> </span><span class=n>bis</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>BufferedInputStream</span><span class=p>(</span><span class=n>f</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>BufferedOutputStream</span><span class=w> </span><span class=n>bos</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>BufferedOutputStream</span><span class=p>(</span><span class=n>fout</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;开始复制。&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>n</span><span class=o>=</span><span class=n>f</span><span class=p>.</span><span class=na>available</span><span class=p>()</span><span class=o>/</span><span class=n>5</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>byte</span><span class=o>[]</span><span class=w> </span><span class=n>b</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=kt>byte</span><span class=o>[</span><span class=n>n</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>count</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>while</span><span class=p>((</span><span class=n>count</span><span class=o>=</span><span class=n>bis</span><span class=p>.</span><span class=na>read</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>n</span><span class=p>))</span><span class=o>!=-</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>bos</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>count</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;复制完成&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>bis</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>bos</span><span class=p>.</span><span class=na>flush</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>bos</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>f</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>flush</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>fout</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/byteio/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/byteio.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/byteio.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%96%87%E4%BB%B6%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86%EF%BC%88%E5%AD%97%E8%8A%82%E6%B5%81%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%96%87%E4%BB%B6%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86%EF%BC%88%E5%AD%97%E8%8A%82%E6%B5%81%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/byteio/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/byteio.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/byteio/ data-title=文件加密解密（字节流） data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/byteio/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/byteio/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/byteio/ data-title=文件加密解密（字节流） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/byteio/ data-title=文件加密解密（字节流）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/javaexception/ class=post-nav-item rel=prev title=\"模拟借书系统（java 异常练习）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>模拟借书系统（java 异常练习）</a><a href=/posts/java-urlreader/ class=post-nav-item rel=next title=\"Java 通过 URL 和 URLConnection 访问网页资源\">Java 通过 URL 和 URLConnection 访问网页资源<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#文件加密解密>文件加密解密</a></li><li><a href=#文件复制>文件复制</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/39573cf1686e4588c2700c87529273c0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/39573cf1686e4588c2700c87529273c0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/byteio/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/byteio/index.md",
    "content": "# 文件加密解密（字节流）\n\n\n> 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\n>\n> 这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\n\n<!--more-->\n\n## 文件加密解密\n\n```java\npackage cn.lruihao.base;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\npublic class EncryptFile {\n\n  public static void main(String[] args) throws IOException {\n    byte pwd=123;//加密/解密密码\n    FileInputStream f=new FileInputStream(\"src/cn/lruihao/base/EncryptFile.java\");//待加密文件\n    FileOutputStream fout=new FileOutputStream(\"encrypted.txt\");//已加密文件\n    System.out.println(\"开始加密。\");\n    int n=f.available()/5;\n    byte[] b=new byte[n];//以一个字节数组的长度读取和复制\n    int count=0;\n    while((count=f.read(b,0,n))!=-1) {\n      //写入之前先加密/解密\n      for(int i=0;i<count;i++) {\n        b[i]=(byte)(b[i]^pwd);//\n      }\n      fout.write(b,0,count);\n    }\n    System.out.println(\"完成加密\");\n    f.close();\n    fout.close();\n//    f=new FileInputStream(\"encrypted.txt\");\n//    fout=new FileOutputStream(\"unencrypted.txt\");\n//    System.out.println(\"开始解密。\");\n//    n=f.available()/5;\n//    b=new byte[n];//以一个字节数组的长度读取和复制\n//    count=0;\n//    while((count=f.read(b,0,n))!=-1) {\n//      //写入之前先加密/解密\n//      for(int i=0;i<count;i++) {\n//        b[i]=(byte)(b[i]^pwd);\n//      }\n//      fout.write(b,0,count);\n//    }\n//    System.out.println(\"完成解密\");\n//    f.close();\n//    fout.close();\n  }\n\n}\n```\n\n## 文件复制\n\n```java\npackage cn.lruihao.base;\n\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\npublic class FileStreamCopy {\n\n  public static void main(String[] args) throws IOException {\n    int size;\n    FileInputStream f=new FileInputStream(\"src/cn/lruihao/base/FileStreamCopy.java\");\n    FileOutputStream fout=new FileOutputStream(\"copy-of-file.txt\");\n    System.out.println(\"总长度：\"+(size=f.available()));\n    int n=size/10;\n    System.out.print(\"使用单字节方法读取后：\");\n    for(int i=0;i<n;i++) {\n      fout.write(f.read());\n    }\n    System.out.println(\"剩余长度：\"+f.available());\n    System.out.println(\"读取一个字节数组后：\");\n    byte b[]=new byte[n];\n    f.read(b);\n    fout.write(b);\n    System.out.println(\"剩余长度：\"+f.available());\n    System.out.println(\"读取余下数据：\");\n    int count=0;\n    while((count=f.read(b,0,n))!=-1) {\n      //System.out.println(count);\n      fout.write(b,0,count);\n    }\n    System.out.println(\"剩余长度：\"+f.available());\n    f.close();\n    fout.flush();\n    fout.close();\n  }\n\n}\n```\n\n```java\npackage cn.lruihao.base;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\n\npublic class BufferedStreamCopy {\n\n  public static void main(String[] args) throws IOException {\n    FileInputStream f=new FileInputStream(\"src/cn/lruihao/base/BufferedStreamCopy.java\");\n    FileOutputStream fout=new FileOutputStream(\"copy-of-file.txt\");\n    BufferedInputStream bis=new BufferedInputStream(f);\n    BufferedOutputStream bos=new BufferedOutputStream(fout);\n    System.out.println(\"开始复制。\");\n    int n=f.available()/5;\n    byte[] b=new byte[n];\n    int count=0;\n    while((count=bis.read(b,0,n))!=-1) {\n      bos.write(b,0,count);\n    }\n    System.out.println(\"复制完成\");\n    bis.close();\n    bos.flush();\n    bos.close();\n    f.close();\n    fout.flush();\n    fout.close();\n  }\n\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/byteio/  \n\n"
  },
  {
    "path": "posts/c-sort/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Sort 排序 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"sort 使用#include<algorithm>头文件，\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\n或者简单的用 less<参数类型>()表示升序\ngreater<参数类型>()表示降序\n也可以用一个 bool 型函数，比如：\n1 2 3 4 5 bool cmp(int a,int b){ return a>b;//表从大到小，即降序 } 假设自己定义了一个结构体 node\n\"><meta name=keywords content='C++,sort,STL,ACM'><meta itemprop=name content=\"sort 排序\"><meta itemprop=description content=\"sort 使用#include<algorithm>头文件，\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\n或者简单的用 less<参数类型>()表示升序\ngreater<参数类型>()表示降序\n也可以用一个 bool 型函数，比如：\n1 2 3 4 5 bool cmp(int a,int b){ return a>b;//表从大到小，即降序 } 假设自己定义了一个结构体 node\"><meta itemprop=datePublished content=\"2018-06-14T20:23:03+08:00\"><meta itemprop=dateModified content=\"2018-06-14T20:23:03+08:00\"><meta itemprop=wordCount content=\"449\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"C++,sort,STL,acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/c-sort/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"sort 排序\"><meta property=\"og:description\" content=\"sort 使用#include<algorithm>头文件，\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\n或者简单的用 less<参数类型>()表示升序\ngreater<参数类型>()表示降序\n也可以用一个 bool 型函数，比如：\n1 2 3 4 5 bool cmp(int a,int b){ return a>b;//表从大到小，即降序 } 假设自己定义了一个结构体 node\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T20:23:03+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-14T20:23:03+08:00\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"sort\"><meta property=\"article:tag\" content=\"STL\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"sort 排序\"><meta name=twitter:description content=\"sort 使用#include<algorithm>头文件，\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\n或者简单的用 less<参数类型>()表示升序\ngreater<参数类型>()表示降序\n也可以用一个 bool 型函数，比如：\n1 2 3 4 5 bool cmp(int a,int b){ return a>b;//表从大到小，即降序 } 假设自己定义了一个结构体 node\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/c-sort/ title=\"sort 排序 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ title=位运算><link rel=next type=text/html href=https://lruihao.cn/posts/a-easy/ title=\"A.Easy h-index\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/c-sort/index.md title=\"sort 排序 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"sort 排序\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/c-sort\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"C\\u002b\\u002b, sort, STL, ACM\",\"wordcount\":449,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/c-sort\\/\",\"datePublished\":\"2018-06-14T20:23:03+08:00\",\"dateModified\":\"2018-06-14T20:23:03+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/c-sort/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sort 排序</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Sort 排序</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 20:23:03\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"449 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Sort 排序\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-06-14，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>sort 使用<code>#include&lt;algorithm></code>头文件，</p><p>sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。</p><p>或者简单的用\n<code>less&lt;参数类型>()</code>表示升序</p><p><code>greater&lt;参数类型>()</code>表示降序</p><p>也可以用一个 bool 型函数，比如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>cmp</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>       <span class=k>return</span> <span class=n>a</span><span class=o>&gt;</span><span class=n>b</span><span class=p>;</span><span class=c1>//表从大到小，即降序\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>假设自己定义了一个结构体 node</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=k>typedef</span> <span class=k>struct</span> <span class=nc>node</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>double</span> <span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=n>note</span><span class=p>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>有一个 node 类型的数组 node arr[100]，想对它进行排序：先按 a 值升序排列，如果 a 值相同，再按 b 值降序排列，如果 b 还相同，就按 c 降序排列。就可以写这样一个比较函数：</p><p>以下是代码片段：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>cmp</span><span class=p>(</span><span class=n>node</span> <span class=n>x</span><span class=p>,</span><span class=n>node</span> <span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=p>.</span><span class=n>a</span><span class=o>!=</span><span class=n>y</span><span class=p>.</span><span class=n>a</span><span class=p>)</span> <span class=k>return</span> <span class=n>x</span><span class=p>.</span><span class=n>a</span><span class=o>&lt;</span><span class=n>y</span><span class=p>.</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=p>.</span><span class=n>b</span><span class=o>!=</span><span class=n>y</span><span class=p>.</span><span class=n>b</span><span class=p>)</span> <span class=k>return</span> <span class=n>x</span><span class=p>.</span><span class=n>b</span><span class=o>&gt;</span><span class=n>y</span><span class=p>.</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>return</span> <span class=n>x</span><span class=p>.</span><span class=n>c</span><span class=o>&gt;</span><span class=n>y</span><span class=p>.</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>sort() 函数是完全通用的，你可以用它来操作几乎任何数据集合，包括链表，容器和数组，数组类型可以是 int,char 等。</p><p>实例：先降序再升序</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;iostream&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;algorithm&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=k>struct</span> <span class=n>data</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>double</span> <span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=n>date</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>cmp</span><span class=p>(</span><span class=n>date</span> <span class=n>a</span><span class=p>,</span><span class=n>date</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=n>b</span><span class=o>!=</span><span class=n>b</span><span class=p>.</span><span class=n>b</span><span class=p>)</span> <span class=k>return</span> <span class=n>a</span><span class=p>.</span><span class=n>b</span><span class=o>&gt;</span><span class=n>b</span><span class=p>.</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>a</span><span class=p>.</span><span class=n>a</span><span class=o>&lt;</span><span class=n>b</span><span class=p>.</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>date</span> <span class=n>a</span><span class=p>[</span><span class=mi>3</span><span class=p>]</span><span class=o>=</span><span class=p>{{</span><span class=mi>5</span><span class=p>,</span><span class=mf>56.5</span><span class=p>},{</span><span class=mi>4</span><span class=p>,</span><span class=mf>56.5</span><span class=p>},{</span><span class=mi>8</span><span class=p>,</span><span class=mi>85</span><span class=p>}};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=nf>sort</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>3</span><span class=p>,</span><span class=n>cmp</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>3</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>a</span><span class=o>&lt;&lt;</span><span class=s>&#34;-&#34;</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>b</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=\"https://weibo.com/ttarticle/p/show?id=2309404237869425234111&amp;mod=zwenzhang\" target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-14 20:23:03\">更新于 2018-06-14&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/c-sort/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/c-sort.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/c-sort.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20sort+%E6%8E%92%E5%BA%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7csort+%E6%8E%92%E5%BA%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/c-sort/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/c-sort.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/c-sort/ data-title=\"Sort 排序\" data-hashtags=C++,sort,STL,ACM><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/c-sort/ data-hashtag=C++><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/c-sort/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/c-sort/ data-title=\"Sort 排序\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/c-sort/ data-title=\"Sort 排序\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/sort/ class=post-tag title=\"标签 - sort\">sort</a><a href=/tags/stl/ class=post-tag title=\"标签 - STL\">STL</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=post-nav-item rel=prev title=位运算><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>位运算</a><a href=/posts/a-easy/ class=post-nav-item rel=next title=\"A.Easy H-Index\">A.Easy H-Index<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/19817062b86725f9931c9927d3c37d20.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/19817062b86725f9931c9927d3c37d20.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/c-sort/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/c-sort/index.md",
    "content": "# Sort 排序\n\n\nsort 使用`#include<algorithm>`头文件，\n\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\n\n或者简单的用\n`less<参数类型>()`表示升序\n\n`greater<参数类型>()`表示降序\n\n也可以用一个 bool 型函数，比如：\n\n```cpp\nbool cmp(int a,int b){\n\n       return a>b;//表从大到小，即降序\n\n}\n```\n\n假设自己定义了一个结构体 node\n\n```cpp\ntypedef struct node\n\n{\n\nint a;\n\nint b;\n\ndouble c;\n\n}note;\n```\n\n有一个 node 类型的数组 node arr[100]，想对它进行排序：先按 a 值升序排列，如果 a 值相同，再按 b 值降序排列，如果 b 还相同，就按 c 降序排列。就可以写这样一个比较函数：\n\n以下是代码片段：\n\n```cpp\nbool cmp(node x,node y)\n\n{\n\nif(x.a!=y.a) return x.a<y.a;\n\nif(x.b!=y.b) return x.b>y.b;\n\nreturn x.c>y.c;\n\n}\n```\n\nsort() 函数是完全通用的，你可以用它来操作几乎任何数据集合，包括链表，容器和数组，数组类型可以是 int,char 等。\n\n实例：先降序再升序\n\n```c\n#include<iostream>\n\n#include<algorithm>\n\nusing namespace std;\n\ntypedef struct data{\n\n    int a;\n\n    double b;\n\n}date;\n\nbool cmp(date a,date b){\n\n    if(a.b!=b.b) return a.b>b.b;\n\n    return a.a<b.a;\n\n}\n\nint main(){\n\n    date a[3]={{5,56.5},{4,56.5},{8,85}};\n\n    sort(a,a+3,cmp);\n\n    for(int i=0;i<3;i++)\n\n        cout<<a[i].a<<\"-\"<<a[i].b<<endl;\n\n    cout<<endl;\n\n    return 0;\n\n}\n```\n\n[传送门](https://weibo.com/ttarticle/p/show?id=2309404237869425234111&mod=zwenzhang)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/c-sort/  \n\n"
  },
  {
    "path": "posts/c-with-stl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>C++ With STL | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\n\"><meta name=keywords content='ACM,STL,C++'><meta itemprop=name content=\"C++ with STL\"><meta itemprop=description content=\"1 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\"><meta itemprop=datePublished content=\"2018-06-14T20:22:06+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"959\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,STL,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/c-with-stl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"C++ with STL\"><meta property=\"og:description\" content=\"1 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T20:22:06+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"STL\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"C++ with STL\"><meta name=twitter:description content=\"1 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/c-with-stl/ title=\"C++ with STL | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/links/ title=\"各种 Links 汇总与分享\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ title=位运算><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/c-with-stl/index.md title=\"C++ with STL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"C++ with STL\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/c-with-stl\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, STL, C\\u002b\\u002b\",\"wordcount\":959,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/c-with-stl\\/\",\"datePublished\":\"2018-06-14T20:22:06+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/c-with-stl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>C++ With STL</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>C++ With STL</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 20:22:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"959 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"C++ With STL\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#1swap交换两元素值在-algorithm-下用法swapab>1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）</a></li><li><a href=#2sort>2.sort(,,)</a></li><li><a href=#3reverse翻转序列在-algorithm-下>3.reverse（翻转序列，在 algorithm 下）</a></li><li><a href=#4minmax取大取小>4.min，max（取大，取小）</a></li><li><a href=#5__gcd最大公约数>5.<code>__gcd</code>（最大公约数）</a></li><li><a href=#6lower_bound-和-upper_bound二分查找>6.lower_bound 和 upper_bound（二分查找）</a></li><li><a href=#7next_permutation排列>7.next_permutation（排列）</a></li><li><a href=#8unique去重>8.unique（去重）</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=1swap交换两元素值在-algorithm-下用法swapab><span>1 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）</span>\n<a href=#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>交换两元素的值在 C 语言课上作为指针讲解的典例。</p><p>int a=1,b=2;</p><p>swap(a,b);</p><p>//此时 a=2,b=1</p><p>（可以是其他类型）</p><h2 class=heading-element id=2sort><span>2 2.sort(,,)</span>\n<a href=#2sort class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>sort 排序是不稳定的，stl 中的 stable_sort 才是稳定的</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=n>inta</span><span class=p>[</span><span class=mi>10</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>6</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mi>4</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>8</span><span class=p>,</span><span class=mi>9</span><span class=p>,</span><span class=mi>7</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nf>stable_sort</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>10</span><span class=p>,</span><span class=n>greater</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span><span class=p>());</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>10</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=3reverse翻转序列在-algorithm-下><span>3 3.reverse（翻转序列，在 algorithm 下）</span>\n<a href=#3reverse%e7%bf%bb%e8%bd%ac%e5%ba%8f%e5%88%97%e5%9c%a8-algorithm-%e4%b8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>//常用在字符串上</p><p>int a[5]={1,2,3,4,5};</p><p>reverse(a,a+5);</p><p>//序列现在是 5 4 3 2 1</p><p>char s[]=&ldquo;ericxie&rdquo;;</p><p>reverse(s,s+strlen(s));</p><p>//序列现在是 &ldquo;eixcire&rdquo;</p><p>//同样适用于 string</p><p>string s=&ldquo;qwer&rdquo;;</p><p>reverse(s.begin(),s.end());</p><h2 class=heading-element id=4minmax取大取小><span>4 4.min，max（取大，取小）</span>\n<a href=#4minmax%e5%8f%96%e5%a4%a7%e5%8f%96%e5%b0%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>int a=1,b=2,c;</p><p>c=min(a,b);</p><p>//此时 c 等于 1</p><p>c=max(a,b);</p><p>//此时 c 等于 2</p><p>string s=&ldquo;qwer&rdquo;,d=&ldquo;asjk&rdquo;,c;</p><p>c=min(s,d);</p><p>//c=&ldquo;asjk&rdquo;</p><h2 class=heading-element id=5__gcd最大公约数><span>5 5.<code>__gcd</code>（最大公约数）</span>\n<a href=#5__gcd%e6%9c%80%e5%a4%a7%e5%85%ac%e7%ba%a6%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>手写 gcd 函数也行，辗转相除，辗转相减；</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=nf>gcd</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>a</span><span class=o>%</span><span class=n>b</span> <span class=o>?</span> <span class=nl>b</span> <span class=p>:</span> <span class=nf>gcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span><span class=o>%</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>//直接用</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=o>=</span><span class=mi>4</span><span class=p>,</span><span class=n>b</span><span class=o>=</span><span class=mi>6</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>c</span><span class=o>=</span><span class=nf>__gcd</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>//注意下划线，此时 c 等于 2</p><h2 class=heading-element id=6lower_bound-和-upper_bound二分查找><span>6 6.lower_bound 和 upper_bound（二分查找）</span>\n<a href=#6lower_bound-%e5%92%8c-upper_bound%e4%ba%8c%e5%88%86%e6%9f%a5%e6%89%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>lower_bound 意思就是：找到第一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。</p><p>upper_bound 是找到最后一个符合数位置后一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。</p><p>//数组</p><p>int a[8]={1,2,4,4,9,12,12,15};</p><p>int pos1 = lower_bound(a,a+8,4)-a;</p><p>int pos2 = upper_bound(a,a+8,4)-a-1;</p><p>//在这个样例下 pos1!=pos2;pos1=2;pos2=3;</p><p>根据我的理解 lower_bound(a,a+8,value)</p><p>得到的是一个地址，拿这个地址减去数组首地址 a[0]，那么刚好就是 value 应该放入的位置。</p><p>//vector</p><p><code>vector&lt;int> a;</code></p><p>若 a 中目前的元素也是{1,2,4,4,9,12,12,15};</p><p>那么这里用 lower_bound 得到的应该也是一个类似于指针的东西，为什么不叫它指针呢？因为他有了一个名字，叫做迭代器。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=n>vector</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;::</span><span class=n>iterator</span> <span class=n>it</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>it</span> <span class=o>=</span> <span class=nf>lower_bound</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=nf>begin</span><span class=p>(),</span><span class=n>a</span><span class=p>.</span><span class=nf>end</span><span class=p>(),</span><span class=mi>4</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>//这里的 it 就是迭代器，那么* it 就是该下标对应的 value 了。</p><p>//set 集合</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=n>set</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>set</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;::</span><span class=n>iterator</span> <span class=n>it</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>it</span> <span class=o>=</span> <span class=n>a</span><span class=p>.</span><span class=nf>lower_bound</span><span class=p>(</span><span class=n>value</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=7next_permutation排列><span>7 7.next_permutation（排列）</span>\n<a href=#7next_permutation%e6%8e%92%e5%88%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>bool next_permutation( iterator start, iterator end ); 通常用于生成序列的全排列。用之前先保证有序；</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[]</span><span class=o>=</span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>do</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>3</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span><span class=k>while</span><span class=p>(</span><span class=nf>next_permutation</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>3</span><span class=p>));</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>结果为：</p><pre><code>1 2 3\n1 3 2\n2 1 3\n2 3 1\n3 1 2\n3 2 1\n</code></pre><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=n>string</span> <span class=n>str</span><span class=o>=</span><span class=s>&#34;STL&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nf>sort</span><span class=p>(</span><span class=n>str</span><span class=p>.</span><span class=nf>begin</span><span class=p>(),</span> <span class=n>str</span><span class=p>.</span><span class=nf>end</span><span class=p>());</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>do</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>str</span> <span class=o>&lt;&lt;</span> <span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=k>while</span> <span class=p>(</span><span class=nf>next_permutation</span><span class=p>(</span><span class=n>str</span><span class=p>.</span><span class=nf>begin</span><span class=p>(),</span><span class=n>str</span><span class=p>.</span><span class=nf>end</span><span class=p>()))</span><span class=err>；</span></span></span></code></pre></td></tr></table></div></div></div><p>结果：</p><pre><code>LST\nLTS\nSLT\nSTL\nTLS\nTSL\n</code></pre><p>大数据 c 比 c++效率高</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=n>length</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>char</span> <span class=n>str</span><span class=p>[</span><span class=n>MAX</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nf>gets</span><span class=p>(</span><span class=n>str</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>length</span> <span class=o>=</span> <span class=nf>strlen</span><span class=p>(</span><span class=n>str</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nf>sort</span><span class=p>(</span><span class=n>str</span><span class=p>,</span> <span class=n>str</span> <span class=o>+</span> <span class=n>length</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>do</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>       <span class=nf>puts</span><span class=p>(</span><span class=n>str</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=k>while</span><span class=p>(</span><span class=nf>next_permutation</span><span class=p>(</span><span class=n>str</span><span class=p>,</span> <span class=n>str</span><span class=o>+</span><span class=n>length</span><span class=p>))</span><span class=err>；</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=8unique去重><span>8 8.unique（去重）</span>\n<a href=#8unique%e5%8e%bb%e9%87%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如何把序列 a 中的重复元素去除呢？首先需要对原序列 a 进行排序，保证有序后，调用 unique(a.head , a.tail ) 就可以了。unique 会返回一个类似指针的东西（和 lower_bound 有点像），-a 后表示去重之后序列的长度。</p><p>下面是实例。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[]</span><span class=o>=</span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mi>7</span><span class=p>,</span><span class=mi>9</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nf>sort</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>11</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>len</span> <span class=o>=</span> <span class=nf>unique</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>11</span><span class=p>)</span><span class=o>-</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>len</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p>输出结果为：1 2 3 5 7 9</p><p><a href=\"https://weibo.com/ttarticle/p/show?id=2309404241150725776250&amp;mod=zwenzhang\" target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/c-with-stl/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/c-with-stl.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/c-with-stl.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20C%2B%2B+with+STL&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cC%2B%2B+with+STL%7c%0A%7cURL%7chttps://lruihao.cn/posts/c-with-stl/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/c-with-stl.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/c-with-stl/ data-title=\"C++ With STL\" data-hashtags=ACM,STL,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/c-with-stl/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/c-with-stl/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/c-with-stl/ data-title=\"C++ With STL\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/c-with-stl/ data-title=\"C++ With STL\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/stl/ class=post-tag title=\"标签 - STL\">STL</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/links/ class=post-nav-item rel=prev title=\"各种 Links 汇总与分享\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>各种 Links 汇总与分享</a><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=post-nav-item rel=next title=位运算>位运算<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#1swap交换两元素值在-algorithm-下用法swapab>1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）</a></li><li><a href=#2sort>2.sort(,,)</a></li><li><a href=#3reverse翻转序列在-algorithm-下>3.reverse（翻转序列，在 algorithm 下）</a></li><li><a href=#4minmax取大取小>4.min，max（取大，取小）</a></li><li><a href=#5__gcd最大公约数>5.<code>__gcd</code>（最大公约数）</a></li><li><a href=#6lower_bound-和-upper_bound二分查找>6.lower_bound 和 upper_bound（二分查找）</a></li><li><a href=#7next_permutation排列>7.next_permutation（排列）</a></li><li><a href=#8unique去重>8.unique（去重）</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ca64402c74c2c861854a74d9fee0d56b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ca64402c74c2c861854a74d9fee0d56b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/c-with-stl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/c-with-stl/index.md",
    "content": "# C++ With STL\n\n\n## 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\n\n交换两元素的值在 C 语言课上作为指针讲解的典例。\n\nint a=1,b=2;\n\nswap(a,b);\n\n//此时 a=2,b=1\n\n（可以是其他类型）\n\n## 2.sort(,,)\n\nsort 排序是不稳定的，stl 中的 stable_sort 才是稳定的\n\n```c\ninta[10]={1,6,2,3,5,4,3,8,9,7};\n\nstable_sort(a,a+10,greater<int>());\n\nfor(int i=0;i<10;i++)\n\n    cout<<a[i]<<\" \";\n```\n\n## 3.reverse（翻转序列，在 algorithm 下）\n\n//常用在字符串上\n\nint a[5]={1,2,3,4,5};\n\nreverse(a,a+5);\n\n//序列现在是 5 4 3 2 1\n\nchar s[]=\"ericxie\";\n\nreverse(s,s+strlen(s));\n\n//序列现在是 \"eixcire\"\n\n//同样适用于 string\n\nstring s=\"qwer\";\n\nreverse(s.begin(),s.end());\n\n## 4.min，max（取大，取小）\n\nint a=1,b=2,c;\n\nc=min(a,b);\n\n//此时 c 等于 1\n\nc=max(a,b);\n\n//此时 c 等于 2\n\nstring s=\"qwer\",d=\"asjk\",c;\n\nc=min(s,d);\n\n//c=\"asjk\"\n\n## 5.`__gcd`（最大公约数）\n\n手写 gcd 函数也行，辗转相除，辗转相减；\n\n```c\nint gcd(int a,int b){\n\n    return a%b ? b : gcd(b,a%b);\n\n}\n```\n\n//直接用\n\n```c\nint a=4,b=6;\n\nint c=__gcd(a,b);\n```\n\n//注意下划线，此时 c 等于 2\n\n## 6.lower_bound 和 upper_bound（二分查找）\n\nlower_bound 意思就是：找到第一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。\n\nupper_bound 是找到最后一个符合数位置后一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。\n\n//数组\n\nint a[8]={1,2,4,4,9,12,12,15};\n\nint pos1 = lower_bound(a,a+8,4)-a;\n\nint pos2 = upper_bound(a,a+8,4)-a-1;\n\n//在这个样例下 pos1!=pos2;pos1=2;pos2=3;\n\n根据我的理解 lower_bound(a,a+8,value)\n\n得到的是一个地址，拿这个地址减去数组首地址 a[0]，那么刚好就是 value 应该放入的位置。\n\n//vector\n\n`vector<int> a;`\n\n若 a 中目前的元素也是{1,2,4,4,9,12,12,15};\n\n那么这里用 lower_bound 得到的应该也是一个类似于指针的东西，为什么不叫它指针呢？因为他有了一个名字，叫做迭代器。\n\n```c\nvector<int>::iterator it;\n\nit = lower_bound(a.begin(),a.end(),4);\n```\n\n//这里的 it 就是迭代器，那么\\* it 就是该下标对应的 value 了。\n\n//set 集合\n\n```c\nset<int> a;\n\nset<int>::iterator it;\n\nit = a.lower_bound(value);\n```\n\n## 7.next_permutation（排列）\n\nbool next_permutation( iterator start, iterator end ); 通常用于生成序列的全排列。用之前先保证有序；\n\n```c\nint a[]={1,2,3};\n\n    do{\n\n        for(int i=0;i<3;i++)\n\n                cout<<a[i]<<\" \";\n\n        cout<<endl;\n\n    }while(next_permutation(a,a+3));\n```\n\n结果为：\n\n    1 2 3\n    1 3 2\n    2 1 3\n    2 3 1\n    3 1 2\n    3 2 1\n\n```c\nstring str=\"STL\";\n\nsort(str.begin(), str.end());\n\ndo{\n\n    cout << str << endl;\n\n}while (next_permutation(str.begin(),str.end()))；\n```\n\n结果：\n\n    LST\n    LTS\n    SLT\n    STL\n    TLS\n    TSL\n\n大数据 c 比 c++效率高\n\n```c\nint length;\n\nchar str[MAX];\n\ngets(str);\n\nlength = strlen(str);\n\nsort(str, str + length);\n\ndo{\n\n       puts(str);\n\n}while(next_permutation(str, str+length))；\n```\n\n## 8.unique（去重）\n\n如何把序列 a 中的重复元素去除呢？首先需要对原序列 a 进行排序，保证有序后，调用 unique(a.head , a.tail ) 就可以了。unique 会返回一个类似指针的东西（和 lower_bound 有点像），-a 后表示去重之后序列的长度。\n\n下面是实例。\n\n```c\nint a[]={1,3,5,7,9,2,2,2,1,1,1};\n\nsort(a,a+11);\n\nint len = unique(a,a+11)-a;\n\nfor(int i=0;i<len;i++)\n\n    cout<<a[i]<<\" \";\n```\n\n输出结果为：1 2 3 5 7 9\n\n[传送门](https://weibo.com/ttarticle/p/show?id=2309404241150725776250&mod=zwenzhang)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/c-with-stl/  \n\n"
  },
  {
    "path": "posts/c6bc2d5/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>写文档时英文标题什么时候要大写？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\n\"><meta name=keywords content='English'><meta itemprop=name content=\"写文档时英文标题什么时候要大写？\"><meta itemprop=description content=\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\"><meta itemprop=datePublished content=\"2024-03-26T12:23:44+08:00\"><meta itemprop=dateModified content=\"2024-04-02T21:13:59+08:00\"><meta itemprop=wordCount content=\"1557\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"English\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/c6bc2d5/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"写文档时英文标题什么时候要大写？\"><meta property=\"og:description\" content=\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-03-26T12:23:44+08:00\"><meta property=\"article:modified_time\" content=\"2024-04-02T21:13:59+08:00\"><meta property=\"article:tag\" content=\"English\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"写文档时英文标题什么时候要大写？\"><meta name=twitter:description content=\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/c6bc2d5/ title=\"写文档时英文标题什么时候要大写？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/overflow-tooltip/ title=\"实现类似于 Element UI 表格的溢出文本提示功能\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/coverview/ title=\"🛠 Create awesome cover images for your blog posts quickly.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/c6bc2d5/index.md title=\"写文档时英文标题什么时候要大写？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"写文档时英文标题什么时候要大写？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/c6bc2d5\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"English\",\"wordcount\":1557,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/c6bc2d5\\/\",\"datePublished\":\"2024-03-26T12:23:44+08:00\",\"dateModified\":\"2024-04-02T21:13:59+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/c6bc2d5/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>写文档时英文标题什么时候要大写？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>写文档时英文标题什么时候要大写？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2024-03-26 12:23:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-03-26>2024-03-26</time></span>&nbsp;<span title=\"更新于 2024-04-02 21:13:59\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-04-02>2024-04-02</time></span>&nbsp;<span title=\"1557 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=写文档时英文标题什么时候要大写？><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#标题中的大写规则>标题中的大写规则</a><ol><li><a href=#英式英语>英式英语</a></li><li><a href=#美式英语比较常见>美式英语（比较常见）</a></li></ol></li><li><a href=#句子的大写规则>句子的大写规则</a></li><li><a href=#专有名词缩略词及其他大写情况>专有名词、缩略词及其他大写情况</a></li><li><a href=#全部字母大写>全部字母大写</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-04-02，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>对于本文的标题的思考来自于 <a href=https://gohugo.io/getting-started/configuration/#titlecasestyle target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 配置文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>中的一个配置 <code>titleCaseStyle</code>，默认情况下，Hugo 在创建自动章节标题以及使用 <code>strings.Title</code> 函数转换字符串时遵循美联社样本中发布的大小写规则。</p><p>但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。</p><p>经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，<a href=https://pub.bnu.edu.cn/jzyg1/72203.html target=_blank rel=\"external nofollow noopener noreferrer\">“出版物中，英文什么时候要大写？ ”<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=标题中的大写规则><span>1 标题中的大写规则</span>\n<a href=#%e6%a0%87%e9%a2%98%e4%b8%ad%e7%9a%84%e5%a4%a7%e5%86%99%e8%a7%84%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=英式英语><span>1.1 英式英语</span>\n<a href=#%e8%8b%b1%e5%bc%8f%e8%8b%b1%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>文章标题一般只第一个单词的首字母大写，主副标题均是。</p><p>例如：China Daily《中国日报》的文章标题均第一个单词首字母大写。</p><p>China&rsquo;s panda protection bears fruit amid 150th anniversary of discovery.</p><h3 class=heading-element id=美式英语比较常见><span>1.2 美式英语（比较常见）</span>\n<a href=#%e7%be%8e%e5%bc%8f%e8%8b%b1%e8%af%ad%e6%af%94%e8%be%83%e5%b8%b8%e8%a7%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>标题的第一个单词，无论是实词还是虚词，首字母要大写。</p></li><li><p>实词首字母要大写，比如名词、动词、形容词、副词、代词等。</p></li><li><p>虚词推荐使用小写，除非在标题的第一个单词，比如冠词、介词、连词、感叹词等。</p><p>满 5 个字母的虚词可以大写，不满 5 个字母的不得大写，满 7 个字母的虚词（through）则在标题或条标中必须大写。\n还有一种说法：虚词字母多于 3 个（不含 3）时首字母大写。</p></li></ol><p>例如：</p><p>The Visual Arts and the Catholic Reformation</p><p>视觉艺术与天主教改革</p><p>看到这里和我高中所学的规则是一致的，终于对上了。另外这种风格对应的就是 Hugo 的 <code>titleCaseStyle</code> 配置项的 <code>chicago</code>，<a href=https://www.chicagomanualofstyle.org/home.html target=_blank rel=\"external nofollow noopener noreferrer\">Chicago Manual of Style<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（应该是吧 :D）</p><h2 class=heading-element id=句子的大写规则><span>2 句子的大写规则</span>\n<a href=#%e5%8f%a5%e5%ad%90%e7%9a%84%e5%a4%a7%e5%86%99%e8%a7%84%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>句子开头的第一个字母要大写。“I（我）”在句中任何位置都要大写。</p><p>例如：Mary and I are teachers．</p></li><li><p>直接引语中，句首字母要大写。</p><p>例如：&ldquo;Then,&rdquo; I said, &ldquo;You have been making a mistake, and the letter is not in the apartment.&rdquo;</p></li><li><p>诗歌每一行的第一个单词的首字母要大写。</p></li></ol><h2 class=heading-element id=专有名词缩略词及其他大写情况><span>3 专有名词、缩略词及其他大写情况</span>\n<a href=#%e4%b8%93%e6%9c%89%e5%90%8d%e8%af%8d%e7%bc%a9%e7%95%a5%e8%af%8d%e5%8f%8a%e5%85%b6%e4%bb%96%e5%a4%a7%e5%86%99%e6%83%85%e5%86%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>国名、地名、人名、艺术作品、船只、航空器等专有名词首字母要大写。</p><p>例如：Russia（俄罗斯），Youyang（酉阳），Chengdu（成都），Jack（杰克）</p></li><li><p>由普通名词构成的专有名词词组，除其中的冠词、较短的介词和连词外，每个词的首字母都要大写。</p><p>例如：the Great Wall（长城），the United States（美国）</p></li><li><p>表示语种、民族的名词或形容词首字母要大写。</p><p>例如：Russian（俄语、俄罗斯人的），Chinese（汉语、中国人的）</p></li><li><p>星期、月份名称的首字母要大写，但季节名称首字母不大写。</p><p>例如：Sunday 星期天，August 八月（星期、月份大写）</p><p>winter 冬天，spring 春天（季节不大写）</p></li><li><p>一些大型节日名称的第一个实词的首字母大写。</p><p>例如：Children&rsquo;s Day 儿童节，National Day 国庆节，Teachers&rsquo; Day 教师节</p></li><li><p>大型会议、文件、条约、组织机关、学校等名称中的每个实词的首字母都要大写，这些名称的缩略词也大写。</p><p>例如：Conference of Asia and Africa 亚非会议</p><p>World Trade Organization 世界贸易组织（WTO）</p><p>Beijing Normal University 北京师范大学（BNU）</p></li><li><p>书名、报刊名中的每个实词的首字母应大写（且用斜体）。</p><p>New York Times《纽约时报》</p><p>English Coaching Paper《英语辅导报》</p></li><li><p>south，north 等方位名词一般小写，但形成专有名词时要大写。</p><p>例如：South Africa（南非），North Carolina（北卡罗莱纳州）</p></li><li><p>一些亲属关系（如 mother，sister，mum，dad 等）用作称呼语时首字母要大写。</p><p>例如：Thank you, Granny．谢谢你，奶奶。</p></li><li><p>人名前的称呼，以及头衔、职务的词首字母要大写。</p><p>例如：Mr Green 格林先生，Dr. Li 李博士</p></li><li><p>大多数的缩略词要大写。</p><p>例如：OK (Okay), CCTV (China Central Television)</p><p>由单词首字母构成的缩略词一般全部字母都大写，注意区分下列情况：</p><p>who 谁</p><p>WHO (World Health Organization) 世界卫生组织</p><p>Project Hope 希望工程</p><p>Project HOPE (Health Opportunities for People Everywhere) 世界健康基金会（简称世健会）</p></li></ol><h2 class=heading-element id=全部字母大写><span>4 全部字母大写</span>\n<a href=#%e5%85%a8%e9%83%a8%e5%ad%97%e6%af%8d%e5%a4%a7%e5%86%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>表示惊讶、感叹或强调时，部分单词会全部大写。</li><li>美术设计根据需要，书名会全部字母大写。</li></ol><p>例如：</p><p>LOOKING AHEAD</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-04-02 21:13:59\">更新于 2024-04-02&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/1b1899a7111e1fd1b8e77cde4f86cac7acbf47b2 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 新增文章“用五天时间给自己制作一个封面图生成工具”，并更新主题版本&#10&#10Commit: 1b1899a7111e1fd1b8e77cde4f86cac7acbf47b2 [1b1899a]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-04-02 21:13:59\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>1b1899a</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/c6bc2d5/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/capitalization-rules.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/capitalization-rules.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%86%99%E6%96%87%E6%A1%A3%E6%97%B6%E8%8B%B1%E6%96%87%E6%A0%87%E9%A2%98%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E8%A6%81%E5%A4%A7%E5%86%99%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%86%99%E6%96%87%E6%A1%A3%E6%97%B6%E8%8B%B1%E6%96%87%E6%A0%87%E9%A2%98%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E8%A6%81%E5%A4%A7%E5%86%99%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/c6bc2d5/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/capitalization-rules.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/c6bc2d5/ data-title=写文档时英文标题什么时候要大写？ data-hashtags=English><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/c6bc2d5/ data-hashtag=English><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/c6bc2d5/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/c6bc2d5/ data-title=写文档时英文标题什么时候要大写？ data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/c6bc2d5/ data-title=写文档时英文标题什么时候要大写？><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag title=\"标签 - English\">English</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/overflow-tooltip/ class=post-nav-item rel=prev title=\"实现类似于 Element UI 表格的溢出文本提示功能\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>实现类似于 Element UI 表格的溢出文本提示功能</a><a href=/projects/lruihao/coverview/ class=post-nav-item rel=next title=Lruihao/CoverView>Lruihao/CoverView<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#标题中的大写规则>标题中的大写规则</a><ol><li><a href=#英式英语>英式英语</a></li><li><a href=#美式英语比较常见>美式英语（比较常见）</a></li></ol></li><li><a href=#句子的大写规则>句子的大写规则</a></li><li><a href=#专有名词缩略词及其他大写情况>专有名词、缩略词及其他大写情况</a></li><li><a href=#全部字母大写>全部字母大写</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c6bc2d5d0c5396826c9d0b6d5c23e26d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c6bc2d5d0c5396826c9d0b6d5c23e26d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/c6bc2d5/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/c6bc2d5/index.md",
    "content": "# 写文档时英文标题什么时候要大写？\n\n\n对于本文的标题的思考来自于 [Hugo 配置文档](https://gohugo.io/getting-started/configuration/#titlecasestyle)中的一个配置 `titleCaseStyle`，默认情况下，Hugo 在创建自动章节标题以及使用 `strings.Title` 函数转换字符串时遵循美联社样本中发布的大小写规则。\n\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\n\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，[“出版物中，英文什么时候要大写？ ”](https://pub.bnu.edu.cn/jzyg1/72203.html)。\n\n<!--more-->\n\n## 标题中的大写规则\n\n### 英式英语\n\n文章标题一般只第一个单词的首字母大写，主副标题均是。\n\n例如：China Daily《中国日报》的文章标题均第一个单词首字母大写。\n\nChina's panda protection bears fruit amid 150th anniversary of discovery.\n\n### 美式英语（比较常见）\n\n1. 标题的第一个单词，无论是实词还是虚词，首字母要大写。\n2. 实词首字母要大写，比如名词、动词、形容词、副词、代词等。\n3. 虚词推荐使用小写，除非在标题的第一个单词，比如冠词、介词、连词、感叹词等。\n\n    满 5 个字母的虚词可以大写，不满 5 个字母的不得大写，满 7 个字母的虚词（through）则在标题或条标中必须大写。\n    还有一种说法：虚词字母多于 3 个（不含 3）时首字母大写。\n\n例如：\n\nThe Visual Arts and the Catholic Reformation\n\n视觉艺术与天主教改革\n\n看到这里和我高中所学的规则是一致的，终于对上了。另外这种风格对应的就是 Hugo 的 `titleCaseStyle` 配置项的 `chicago`，[Chicago Manual of Style](https://www.chicagomanualofstyle.org/home.html)（应该是吧 :D）\n\n## 句子的大写规则\n\n1. 句子开头的第一个字母要大写。“I（我）”在句中任何位置都要大写。\n\n    例如：Mary and I are teachers．\n\n2. 直接引语中，句首字母要大写。\n\n    例如：\"Then,\" I said, \"You have been making a mistake, and the letter is not in the apartment.\"\n\n3. 诗歌每一行的第一个单词的首字母要大写。\n\n## 专有名词、缩略词及其他大写情况\n\n1. 国名、地名、人名、艺术作品、船只、航空器等专有名词首字母要大写。\n\n    例如：Russia（俄罗斯），Youyang（酉阳），Chengdu（成都），Jack（杰克）\n\n2. 由普通名词构成的专有名词词组，除其中的冠词、较短的介词和连词外，每个词的首字母都要大写。\n\n    例如：the Great Wall（长城），the United States（美国）\n\n3. 表示语种、民族的名词或形容词首字母要大写。\n\n    例如：Russian（俄语、俄罗斯人的），Chinese（汉语、中国人的）\n\n4. 星期、月份名称的首字母要大写，但季节名称首字母不大写。\n\n    例如：Sunday 星期天，August 八月（星期、月份大写）\n\n    winter 冬天，spring 春天（季节不大写）\n\n5. 一些大型节日名称的第一个实词的首字母大写。\n\n    例如：Children's Day 儿童节，National Day 国庆节，Teachers' Day 教师节\n\n6. 大型会议、文件、条约、组织机关、学校等名称中的每个实词的首字母都要大写，这些名称的缩略词也大写。\n\n    例如：Conference of Asia and Africa   亚非会议\n\n    World Trade Organization 世界贸易组织（WTO）\n\n    Beijing Normal University 北京师范大学（BNU）\n\n7. 书名、报刊名中的每个实词的首字母应大写（且用斜体）。\n\n    New York Times《纽约时报》\n\n    English Coaching Paper《英语辅导报》\n\n8. south，north 等方位名词一般小写，但形成专有名词时要大写。\n\n    例如：South Africa（南非），North Carolina（北卡罗莱纳州）\n\n9. 一些亲属关系（如 mother，sister，mum，dad 等）用作称呼语时首字母要大写。\n\n    例如：Thank you, Granny．谢谢你，奶奶。\n\n10. 人名前的称呼，以及头衔、职务的词首字母要大写。\n\n    例如：Mr Green 格林先生，Dr. Li 李博士\n\n11. 大多数的缩略词要大写。\n\n    例如：OK (Okay), CCTV (China Central Television)\n\n    由单词首字母构成的缩略词一般全部字母都大写，注意区分下列情况：\n\n    who 谁\n\n    WHO (World Health Organization) 世界卫生组织\n\n    Project Hope 希望工程\n\n    Project HOPE (Health Opportunities for People Everywhere) 世界健康基金会（简称世健会）\n\n## 全部字母大写\n\n1. 表示惊讶、感叹或强调时，部分单词会全部大写。\n2. 美术设计根据需要，书名会全部字母大写。\n\n例如：\n\nLOOKING AHEAD\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/c6bc2d5/  \n\n"
  },
  {
    "path": "posts/caddy-file/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Caddy-两步搭建超简单云盘 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 安装 1 2 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager 2 编写配置文件 1 vim Caddyfile 内容如下：\n\"><meta name=keywords content='云盘,caddy,server'><meta itemprop=name content=\"caddy-两步搭建超简单云盘\"><meta itemprop=description content=\"1 安装 1 2 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager 2 编写配置文件 1 vim Caddyfile 内容如下：\"><meta itemprop=datePublished content=\"2018-11-11T13:59:27+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"427\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"云盘,caddy,server\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/caddy-file/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"caddy-两步搭建超简单云盘\"><meta property=\"og:description\" content=\"1 安装 1 2 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager 2 编写配置文件 1 vim Caddyfile 内容如下：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-11T13:59:27+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"云盘\"><meta property=\"article:tag\" content=\"caddy\"><meta property=\"article:tag\" content=\"server\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"caddy-两步搭建超简单云盘\"><meta name=twitter:description content=\"1 安装 1 2 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager 2 编写配置文件 1 vim Caddyfile 内容如下：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/caddy-file/ title=\"caddy-两步搭建超简单云盘 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/next-pdf/ title=\"next 添加支持 pdf\"><link rel=next type=text/html href=https://lruihao.cn/posts/fas-app/ title=\"博採眾長 app\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/caddy-file/index.md title=\"caddy-两步搭建超简单云盘 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"caddy-两步搭建超简单云盘\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/caddy-file\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"云盘, caddy, server\",\"wordcount\":427,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/caddy-file\\/\",\"datePublished\":\"2018-11-11T13:59:27+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/caddy-file/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Caddy-两步搭建超简单云盘</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Caddy-两步搭建超简单云盘</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-11 13:59:27\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-11>2018-11-11</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"427 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=Caddy-两步搭建超简单云盘><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装>安装</a></li><li><a href=#编写配置文件>编写配置文件</a></li><li><a href=#demo>demo</a></li><li><a href=#设置定时器启动-caddy好像没用我不会>设置定时器启动 caddy（好像没用，我不会）</a></li><li><a href=#heading>？？？</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=安装><span>1 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ~\n</span></span><span class=line><span class=cl>curl https://getcaddy.com <span class=p>|</span> bash -s personal http.filemanager</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=编写配置文件><span>2 编写配置文件</span>\n<a href=#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim Caddyfile</span></span></code></pre></td></tr></table></div></div></div><p>内容如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>:80 {\n</span></span><span class=line><span class=cl>filemanager / /sdcard\n</span></span><span class=line><span class=cl>timeouts none\n</span></span><span class=line><span class=cl>gzip\n</span></span><span class=line><span class=cl>}</span></span></code></pre></td></tr></table></div></div></div><p>这里的 8080 端口号可以随意指定，如果在手机 termux 等搭建，由于手机权限比较低，所以一般设置 1024 以上的端口。<code>80</code>端口可以直接通过 ip 访问。如<code>118.24.217.167</code></p><p>如果用域名，先在域名服务商解析 ip, 再配置文件如下</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>https://pan.lruihao.cn <span class=o>{</span>\n</span></span><span class=line><span class=cl>filemanager / /sdcard\n</span></span><span class=line><span class=cl>timeouts none\n</span></span><span class=line><span class=cl>tls admin@lruihao.cn\n</span></span><span class=line><span class=cl>gzip\n</span></span><span class=line><span class=cl><span class=o>}</span></span></span></code></pre></td></tr></table></div></div></div><p>指定邮箱是为了申请 ssl, 实现 https.</p><h2 class=heading-element id=demo><span>3 <a href=https://pan.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>启动 caddy</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>caddy</span></span></code></pre></td></tr></table></div></div></div><p>账号密码默认<code>admin</code>\n<a class=lightgallery target=_blank href=/posts/caddy-file/images/1.png title=/posts/caddy-file/images/1.png data-thumbnail=/posts/caddy-file/images/1.png data-sub-html=\"<h2>/posts/caddy-file/images/1.png</h2>\"><img loading=lazy src=/posts/caddy-file/images/1.png alt=/posts/caddy-file/images/1.png height=993 width=1914></a></p><h2 class=heading-element id=设置定时器启动-caddy好像没用我不会><span>4 设置定时器启动 caddy（好像没用，我不会）</span>\n<a href=#%e8%ae%be%e7%bd%ae%e5%ae%9a%e6%97%b6%e5%99%a8%e5%90%af%e5%8a%a8-caddy%e5%a5%bd%e5%83%8f%e6%b2%a1%e7%94%a8%e6%88%91%e4%b8%8d%e4%bc%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了断开 xshell 后 caddy 还在运行。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim run.sh</span></span></code></pre></td></tr></table></div></div></div><p>编辑以下内容</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl>caddy</span></span></code></pre></td></tr></table></div></div></div><p>加权</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>chmod +x run.sh</span></span></code></pre></td></tr></table></div></div></div><p>设置任务\n<a href=https://www.jianshu.com/p/95d1473859d1 target=_blank rel=\"external nofollow noopener noreferrer\">参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>crontab -e</span></span></code></pre></td></tr></table></div></div></div><p>加入</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>* * * * * /root/run.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>service crond start</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=heading><span>5 ？？？</span>\n<a href=#heading class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最后误打误撞开启了 caddy<br>昨晚双十一要抢裤子，加上湘潭天气太 tm 冷了，就上床了，接着用 termux 远程连接服务器继续搞。结果连接的时候命令输错了-_-!<br>本来是<code>ssh root@118.24.217.167</code>再输入密码就可以了。这次搞错了多写了个<code>-T</code>, 然后运行<code>caddy</code>,<code>ctrl+c</code> 再断开，意外地发现 filemanager 竟然可以访问了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh -T root@118.24.217.167\n</span></span><span class=line><span class=cl>caddy\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Ctrl+c</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/caddy-file/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/caddy-file/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/caddy-file/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20caddy-%E4%B8%A4%E6%AD%A5%E6%90%AD%E5%BB%BA%E8%B6%85%E7%AE%80%E5%8D%95%E4%BA%91%E7%9B%98&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7ccaddy-%E4%B8%A4%E6%AD%A5%E6%90%AD%E5%BB%BA%E8%B6%85%E7%AE%80%E5%8D%95%E4%BA%91%E7%9B%98%7c%0A%7cURL%7chttps://lruihao.cn/posts/caddy-file/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/caddy-file/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/caddy-file/ data-title=Caddy-两步搭建超简单云盘 data-hashtags=云盘,caddy,server><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/caddy-file/ data-hashtag=云盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/caddy-file/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/caddy-file/ data-title=Caddy-两步搭建超简单云盘 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/caddy-file/ data-title=Caddy-两步搭建超简单云盘><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BA%91%E7%9B%98/ class=post-tag title=\"标签 - 云盘\">云盘</a><a href=/tags/caddy/ class=post-tag title=\"标签 - caddy\">caddy</a><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/next-pdf/ class=post-nav-item rel=prev title=\"Next 添加支持 Pdf\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Next 添加支持 Pdf</a><a href=/posts/fas-app/ class=post-nav-item rel=next title=\"博採眾長 App\">博採眾長 App<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装>安装</a></li><li><a href=#编写配置文件>编写配置文件</a></li><li><a href=#demo>demo</a></li><li><a href=#设置定时器启动-caddy好像没用我不会>设置定时器启动 caddy（好像没用，我不会）</a></li><li><a href=#heading>？？？</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2ce8440d2e698a0bc48ed62d63347606.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2ce8440d2e698a0bc48ed62d63347606.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/caddy-file/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/caddy-file/index.md",
    "content": "# Caddy-两步搭建超简单云盘\n\n\n## 安装\n\n```bash\ncd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager\n```\n\n## 编写配置文件\n\n```bash\nvim Caddyfile\n```\n\n内容如下：\n\n```\n:80 {\nfilemanager / /sdcard\ntimeouts none\ngzip\n}\n```\n\n这里的 8080 端口号可以随意指定，如果在手机 termux 等搭建，由于手机权限比较低，所以一般设置 1024 以上的端口。`80`端口可以直接通过 ip 访问。如`118.24.217.167`\n\n如果用域名，先在域名服务商解析 ip, 再配置文件如下\n\n```bash\nhttps://pan.lruihao.cn {\nfilemanager / /sdcard\ntimeouts none\ntls admin@lruihao.cn\ngzip\n}\n```\n\n指定邮箱是为了申请 ssl, 实现 https.\n\n## [demo](https://pan.lruihao.cn)\n\n启动 caddy\n\n```\ncaddy\n```\n\n账号密码默认`admin`\n![](images/1.png)\n\n## 设置定时器启动 caddy（好像没用，我不会）\n\n为了断开 xshell 后 caddy 还在运行。\n\n```bash\nvim run.sh\n```\n\n编辑以下内容\n\n```\n#!/bin/bash\ncaddy\n```\n\n加权\n\n```\nchmod +x run.sh\n```\n\n设置任务\n[参考](https://www.jianshu.com/p/95d1473859d1)\n\n```\ncrontab -e\n```\n\n加入\n\n```\n* * * * * /root/run.sh\n```\n\n```\nservice crond start\n```\n\n## ？？？\n\n最后误打误撞开启了 caddy  \n昨晚双十一要抢裤子，加上湘潭天气太 tm 冷了，就上床了，接着用 termux 远程连接服务器继续搞。结果连接的时候命令输错了-\\_-!  \n本来是`ssh root@118.24.217.167`再输入密码就可以了。这次搞错了多写了个`-T`, 然后运行`caddy`,`ctrl+c` 再断开，意外地发现 filemanager 竟然可以访问了。\n\n```bash\nssh -T root@118.24.217.167\ncaddy\n\nCtrl+c\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/caddy-file/  \n\n"
  },
  {
    "path": "posts/cell-blog-dev/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Cell-Blog 开发记录 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Cell Blog 开发记录，项目地址\n\"><meta name=keywords content='PHP,Laravel,Markdown'><meta itemprop=name content=\"cell-blog 开发记录\"><meta itemprop=description content=\"Cell Blog 开发记录，项目地址\"><meta itemprop=datePublished content=\"2020-07-25T20:42:42+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"1565\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP,Laravel,Markdown\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cell-blog-dev/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cell-blog 开发记录\"><meta property=\"og:description\" content=\"Cell Blog 开发记录，项目地址\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2020-07-25T20:42:42+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"article:tag\" content=\"Laravel\"><meta property=\"article:tag\" content=\"Markdown\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cell-blog 开发记录\"><meta name=twitter:description content=\"Cell Blog 开发记录，项目地址\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cell-blog-dev/ title=\"cell-blog 开发记录 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/cell-blog/ title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><link rel=next type=text/html href=https://lruihao.cn/projects/cell-blog/ title=\"cell-blog 功能介绍与安装\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cell-blog-dev/index.md title=\"cell-blog 开发记录 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"cell-blog 开发记录\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cell-blog-dev\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP, Laravel, Markdown\",\"wordcount\":1565,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cell-blog-dev\\/\",\"datePublished\":\"2020-07-25T20:42:42+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cell-blog-dev/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cell-Blog 开发记录</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Cell-Blog 开发记录</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2020-07-25 20:42:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-07-25>2020-07-25</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1565 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Cell-Blog 开发记录\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#搭建-php-环境>搭建 php 环境</a></li><li><a href=#新建-laravel-项目>新建 laravel 项目</a></li><li><a href=#下载-debugbar>下载 debugbar</a></li><li><a href=#修改语言时区>修改语言时区</a></li><li><a href=#配置数据库>配置数据库</a></li><li><a href=#下载-laravel-admin>下载 laravel-admin</a></li><li><a href=#下载-dcat-admin>下载 dcat-admin</a></li><li><a href=#迁移文件创建表>迁移文件创建表</a></li><li><a href=#创建模型-model>创建模型 model</a></li><li><a href=#创建控制器>创建控制器</a></li><li><a href=#添加后台路由>添加后台路由</a></li><li><a href=#editormd-安装>editormd 安装</a><ol><li><a href=#存放本地表情>存放本地表情</a></li><li><a href=#图片上传>图片上传</a><ol><li><a href=#csrf-419-错误>csrf 419 错误</a></li></ol></li></ol></li><li><a href=#markdown-转-html>markdown 转 HTML</a></li><li><a href=#eloquent-模型事件>Eloquent 模型事件</a></li><li><a href=#添加后台验证码>添加后台验证码</a></li><li><a href=#media-manager>Media manager</a></li><li><a href=#前台设计>前台设计</a></li><li><a href=#后台-img-灯箱>后台 img 灯箱</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>Cell Blog 开发记录，<a href=https://github.com/Lruihao/cell-blog target=_blank rel=\"external nofollow noopener noreferrer\">项目地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=搭建-php-环境><span>1 搭建 php 环境</span>\n<a href=#%e6%90%ad%e5%bb%ba-php-%e7%8e%af%e5%a2%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>安装 wampserver</li><li>安装 composer</li><li>更换 aliyun 源</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=新建-laravel-项目><span>2 新建 laravel 项目</span>\n<a href=#%e6%96%b0%e5%bb%ba-laravel-%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer create-project --prefer-dist laravel/laravel cell-blog &#34;7.*&#34;</span></span></code></pre></td></tr></table></div></div></div><p>或者</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer global require laravel/installer\n</span></span><span class=line><span class=cl>laravel new blog</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=下载-debugbar><span>3 下载 debugbar</span>\n<a href=#%e4%b8%8b%e8%bd%bd-debugbar class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require barryvdh/laravel-debugbar --dev</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=修改语言时区><span>4 修改语言时区</span>\n<a href=#%e4%bf%ae%e6%94%b9%e8%af%ad%e8%a8%80%e6%97%b6%e5%8c%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>修改 config/app.php，将 local 的值 en 改成 zh-CN(laravel-admin 自带 zh-CN)：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>## 时区\n</span></span><span class=line><span class=cl>&#39;timezone&#39; =&gt; &#39;Asia/Shanghai&#39;,\n</span></span><span class=line><span class=cl>## 语言\n</span></span><span class=line><span class=cl>&#39;locale&#39; =&gt; &#39;zh-CN&#39;,</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置数据库><span>5 配置数据库</span>\n<a href=#%e9%85%8d%e7%bd%ae%e6%95%b0%e6%8d%ae%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先确保安装好了 laravel，并且数据库连接设置正确。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>APP_URL=http://cell.blog\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>DB_CONNECTION=mysql\n</span></span><span class=line><span class=cl>DB_HOST=127.0.0.1\n</span></span><span class=line><span class=cl>DB_PORT=3307\n</span></span><span class=line><span class=cl>DB_DATABASE=cell_blog\n</span></span><span class=line><span class=cl>DB_USERNAME=root\n</span></span><span class=line><span class=cl>DB_PASSWORD=123456</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=下载-laravel-admin><span>6 下载 laravel-admin</span>\n<a href=#%e4%b8%8b%e8%bd%bd-laravel-admin class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>cd cell-blog\n</span></span><span class=line><span class=cl>composer require encore/laravel-admin</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>卸载命令<code>composer remove xxx</code></p></blockquote><p>然后运行下面的命令来发布资源：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan vendor:publish --provider=&#34;Encore\\Admin\\AdminServiceProvider&#34;</span></span></code></pre></td></tr></table></div></div></div><p>在该命令会生成配置文件<code>config/admin.php</code>，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。</p><p>然后运行下面的命令完成安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan admin:install</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>运行这个命令的时候，如果遇到了下面的错误：\n<code>SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email))</code><br>参考这个 issue 来解决 <a href=https://github.com/z-song/laravel-admin/issues/1541 target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/z-song/laravel-admin/issues/1541<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>在<code>app\\Providers\\AppServiceProvider.php</code>添加默认值</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>namespace</span> <span class=nx>App\\Providers</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>use</span> <span class=nx>Illuminate\\Support\\ServiceProvider</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>use</span> <span class=nx>Illuminate\\Support\\Facades\\Schema</span><span class=p>;</span> <span class=c1>//add fixed sql\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>AppServiceProvider</span> <span class=k>extends</span> <span class=nx>ServiceProvider</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd>     * Bootstrap any application services.\n</span></span></span><span class=line><span class=cl><span class=sd>     *\n</span></span></span><span class=line><span class=cl><span class=sd>     * @return void\n</span></span></span><span class=line><span class=cl><span class=sd>     */</span>\n</span></span><span class=line><span class=cl>    <span class=k>public</span> <span class=k>function</span> <span class=nf>boot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>Schema</span><span class=o>::</span><span class=na>defaultStringLength</span><span class=p>(</span><span class=mi>191</span><span class=p>);</span> <span class=c1>//add fixed sql\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd>     * Register any application services.\n</span></span></span><span class=line><span class=cl><span class=sd>     *\n</span></span></span><span class=line><span class=cl><span class=sd>     * @return void\n</span></span></span><span class=line><span class=cl><span class=sd>     */</span>\n</span></span><span class=line><span class=cl>    <span class=k>public</span> <span class=k>function</span> <span class=nf>register</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>启动服务后，在浏览器打开 <code>http://localhost/admin/</code> , 使用用户名 <code>admin</code> 和密码 <code>admin</code> 登录。</p><blockquote><p>报错<code>Disk [admin] not configured, please add a disk config in config/filesystems.php</code></p></blockquote><p>在<code>config/filesystems.php</code>中 disks 处添加以下配置后执行<code>php artisan storage:link</code>来创建软链接（windows 和 linux 的软链接不一样不能直接复制！）</p><blockquote><p>宝塔执行时删除禁用函数 putenv(),symlink()</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=s1>&#39;admin&#39;</span> <span class=o>=&gt;</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;driver&#39;</span> <span class=o>=&gt;</span> <span class=s1>&#39;local&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;root&#39;</span> <span class=o>=&gt;</span> <span class=n>storage_path</span><span class=p>(</span><span class=s1>&#39;app/public/system&#39;</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;url&#39;</span> <span class=o>=&gt;</span> <span class=n>env</span><span class=p>(</span><span class=s1>&#39;APP_URL&#39;</span><span class=p>)</span><span class=o>.</span><span class=s1>&#39;/storage/system&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;visibility&#39;</span> <span class=o>=&gt;</span> <span class=s1>&#39;public&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>],</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=err>或</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=s1>&#39;admin&#39;</span> <span class=o>=&gt;</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;driver&#39;</span> <span class=o>=&gt;</span> <span class=s1>&#39;local&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;root&#39;</span> <span class=o>=&gt;</span> <span class=n>public_path</span><span class=p>(</span><span class=s1>&#39;uploads&#39;</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;url&#39;</span> <span class=o>=&gt;</span> <span class=n>env</span><span class=p>(</span><span class=s1>&#39;APP_URL&#39;</span><span class=p>)</span><span class=o>.</span><span class=s1>&#39;/public/uploads/&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;visibility&#39;</span> <span class=o>=&gt;</span> <span class=s1>&#39;public&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>],</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=下载-dcat-admin><span>7 下载 dcat-admin</span>\n<a href=#%e4%b8%8b%e8%bd%bd-dcat-admin class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require dcat/laravel-admin</span></span></code></pre></td></tr></table></div></div></div><p>然后运行下面的命令来发布资源：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan admin:publish</span></span></code></pre></td></tr></table></div></div></div><p>在该命令会生成配置文件<code>config/admin.php</code>，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。</p><p>然后运行下面的命令完成安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan admin:install</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=迁移文件创建表><span>8 迁移文件创建表</span>\n<a href=#%e8%bf%81%e7%a7%bb%e6%96%87%e4%bb%b6%e5%88%9b%e5%bb%ba%e8%a1%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-sh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sh data-lang=sh><span class=line><span class=cl>php artisan make:migration create_articles_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_tags_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_categories_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_article_tags_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_navigations_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_friendship_links_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_pages_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_systems_table\n</span></span><span class=line><span class=cl>php artisan make:migration create_mottoes_table</span></span></code></pre></td></tr></table></div></div></div><p>运行迁移</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan migrate</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=创建模型-model><span>9 创建模型 model</span>\n<a href=#%e5%88%9b%e5%bb%ba%e6%a8%a1%e5%9e%8b-model class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-sh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sh data-lang=sh><span class=line><span class=cl>php artisan make:model Models/Article\n</span></span><span class=line><span class=cl>php artisan make:model Models/Category\n</span></span><span class=line><span class=cl>php artisan make:model Models/Tag\n</span></span><span class=line><span class=cl>php artisan make:model Models/Navigation\n</span></span><span class=line><span class=cl>php artisan make:model Models/FriendshipLink\n</span></span><span class=line><span class=cl>php artisan make:model Models/Page\n</span></span><span class=line><span class=cl>php artisan make:model Models/System\n</span></span><span class=line><span class=cl>php artisan make:model Models/Motto</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=创建控制器><span>10 创建控制器</span>\n<a href=#%e5%88%9b%e5%bb%ba%e6%8e%a7%e5%88%b6%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-sh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sh data-lang=sh><span class=line><span class=cl>php artisan admin:make ArticleController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\A</span>rticle\n</span></span><span class=line><span class=cl>php artisan admin:make CategoryController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\C</span>ategory\n</span></span><span class=line><span class=cl>php artisan admin:make TagController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\T</span>ag\n</span></span><span class=line><span class=cl>php artisan admin:make NavigationController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\N</span>avigation\n</span></span><span class=line><span class=cl>php artisan admin:make FriendshipLinkController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\F</span>riendshipLink\n</span></span><span class=line><span class=cl>php artisan admin:make PageController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\P</span>age\n</span></span><span class=line><span class=cl>php artisan admin:make SystemController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\S</span>ystem\n</span></span><span class=line><span class=cl>php artisan admin:make MottoController --model<span class=o>=</span>App<span class=se>\\M</span>odels<span class=se>\\M</span>otto</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=添加后台路由><span>11 添加后台路由</span>\n<a href=#%e6%b7%bb%e5%8a%a0%e5%90%8e%e5%8f%b0%e8%b7%af%e7%94%b1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>app/Admin/routes.php</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>$router-&gt;resource(&#39;articles&#39;, ArticleController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;categories&#39;, CategoryController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;tags&#39;, TagController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;navigations&#39;, NavigationController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;friendship-links&#39;, FriendshipLinkController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;pages&#39;, PageController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;systems&#39;, SystemController::class);\n</span></span><span class=line><span class=cl>$router-&gt;resource(&#39;mottoes&#39;, MottoController::class);</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=editormd-安装><span>12 editormd 安装</span>\n<a href=#editormd-%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/ShareManT/laravel-admin-ext-editormd target=_blank rel=\"external nofollow noopener noreferrer\">editormd<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<a href=https://github.com/ShareManT/laravel-admin-ext-editormd/issues/3 target=_blank rel=\"external nofollow noopener noreferrer\">github 图像问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=存放本地表情><span>12.1 存放本地表情</span>\n<a href=#%e5%ad%98%e6%94%be%e6%9c%ac%e5%9c%b0%e8%a1%a8%e6%83%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>public\\vendor\\laravel-admin-ext\\editormd\\editormd-1.5.0\\images\\emojis</span></span></code></pre></td></tr></table></div></div></div><p>修改 editormd.js 及 editormd.min.js</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>// Emoji graphics files url path\n</span></span><span class=line><span class=cl>editormd.emoji     = {\n</span></span><span class=line><span class=cl>    path  : &#34;/iamges/emojis/&#34;,\n</span></span><span class=line><span class=cl>    ext   : &#34;.png&#34;\n</span></span><span class=line><span class=cl>};</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=图片上传><span>12.2 图片上传</span>\n<a href=#%e5%9b%be%e7%89%87%e4%b8%8a%e4%bc%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=csrf-419-错误><span>12.2.1 csrf 419 错误</span>\n<a href=#csrf-419-%e9%94%99%e8%af%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>可以在<code>VerifyCsrfToken.php</code>中添加白名单跳过验证，或者手动添加 csrf 验证器：</p><p>修改 image-dialog.js 的<code>var dialogContent</code><br><a href=https://www.jianshu.com/p/8101f7bc80f6 target=_blank rel=\"external nofollow noopener noreferrer\">参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=n>settings</span><span class=o>.</span><span class=n>crossDomainUpload</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>action</span> <span class=o>+=</span> <span class=s2>&#34;&amp;callback=&#34;</span> <span class=o>+</span> <span class=n>settings</span><span class=o>.</span><span class=n>uploadCallbackURL</span> <span class=o>+</span> <span class=s2>&#34;&amp;dialog_id=editormd-image-dialog-&#34;</span> <span class=o>+</span> <span class=n>guid</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=o>//</span><span class=err>添加</span> <span class=n>csrf</span> <span class=err>验证</span>\n</span></span><span class=line><span class=cl><span class=k>var</span> <span class=n>csrfToken</span> <span class=o>=</span> <span class=o>$</span><span class=p>(</span><span class=s1>&#39;meta[name=&#34;csrf-token&#34;]&#39;</span><span class=p>)</span><span class=o>.</span><span class=n>attr</span><span class=p>(</span><span class=s1>&#39;content&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=k>var</span> <span class=n>csrfField</span> <span class=o>=</span> <span class=s2>&#34;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=n>csrfToken</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>csrfField</span> <span class=o>=</span> <span class=s2>&#34;&lt;input type=&#39;hidden&#39; name=&#39;_token&#39; value=&#39;&#34;</span> <span class=o>+</span> <span class=n>csrfToken</span> <span class=o>+</span> <span class=s2>&#34;&#39; /&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=markdown-转-html><span>13 markdown 转 HTML</span>\n<a href=#markdown-%e8%bd%ac-html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://www.zhiqiexing.com/119.html target=_blank rel=\"external nofollow noopener noreferrer\">https://www.zhiqiexing.com/119.html<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<a href=https://github.com/GrahamCampbell/Laravel-Markdown target=_blank rel=\"external nofollow noopener noreferrer\">Laravel Markdown 安装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require graham-campbell/markdown\n</span></span><span class=line><span class=cl>php artisan vendor:publish</span></span></code></pre></td></tr></table></div></div></div><p>扩展表格</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require league/commonmark</span></span></code></pre></td></tr></table></div></div></div><p>config/markdown.php</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&#39;extensions&#39; =&gt; [\n</span></span><span class=line><span class=cl>        League\\CommonMark\\Extension\\TaskList\\TaskListExtension::class,\n</span></span><span class=line><span class=cl>    ],</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=eloquent-模型事件><span>14 Eloquent 模型事件</span>\n<a href=#eloquent-%e6%a8%a1%e5%9e%8b%e4%ba%8b%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Eloquent 模型可以触发事件，允许你在模型生命周期中的多个时间点调用如下这些方法：retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored。事件允许你在一个指定模型类每次保存或更新的时候执行代码。</p><p>retrieved 事件会在从数据库中获取已存在模型时触发。当一个新模型被首次保存的时候，creating 和 created 事件会被触发。如果一个模型已经在数据库中存在并调用 save 方法，updating/updated 事件会被触发，无论是创建还是更新，saving/saved 事件都会被触发。</p><h2 class=heading-element id=添加后台验证码><span>15 添加后台验证码</span>\n<a href=#%e6%b7%bb%e5%8a%a0%e5%90%8e%e5%8f%b0%e9%aa%8c%e8%af%81%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>依赖 php 扩展<code>fileinfo</code><br><a href=https://learnku.com/articles/32842 target=_blank rel=\"external nofollow noopener noreferrer\">添加验证码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=media-manager><span>16 Media manager</span>\n<a href=#media-manager class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require laravel-admin-ext/media-manager\n</span></span><span class=line><span class=cl>php artisan admin:import media-manager</span></span></code></pre></td></tr></table></div></div></div><p>&rsquo;extensions&rsquo; => [\n&lsquo;media-manager&rsquo; => [\n// Select a local disk that you configured in <code>config/filesystem.php</code>\n&lsquo;disk&rsquo; => &lsquo;public&rsquo;\n],\n],</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>## 给 laravel-admin 增加锁屏功能</span></span></code></pre></td></tr></table></div></div></div><p>composer require laravel-admin-ext/lock-screen</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&#39;route&#39; =&gt; [\n</span></span><span class=line><span class=cl>    &#39;prefix&#39; =&gt; &#39;demo&#39;,\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    &#39;namespace&#39;     =&gt; &#39;App\\\\Admin\\\\Controllers&#39;,\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    // 在中间件数组中加上&#39;admin.lock&#39;\n</span></span><span class=line><span class=cl>    &#39;middleware&#39;    =&gt; [&#39;web&#39;, &#39;admin&#39;, &#39;admin.lock&#39;],\n</span></span><span class=line><span class=cl>],</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=前台设计><span>17 前台设计</span>\n<a href=#%e5%89%8d%e5%8f%b0%e8%ae%be%e8%ae%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>创建控制器</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan make:controller HomeController\n</span></span><span class=line><span class=cl>php artisan make:controller ArticleController\n</span></span><span class=line><span class=cl>php artisan make:controller CategoryController\n</span></span><span class=line><span class=cl>php artisan make:controller TagController\n</span></span><span class=line><span class=cl>php artisan make:controller PageController</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=后台-img-灯箱><span>18 后台 img 灯箱</span>\n<a href=#%e5%90%8e%e5%8f%b0-img-%e7%81%af%e7%ae%b1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/laravel-admin-extensions/grid-lightbox target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/laravel-admin-extensions/grid-lightbox<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer require laravel-admin-ext/grid-lightbox\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>php artisan vendor:publish --tag=laravel-admin-grid-lightbox</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cell-blog-dev/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/cell-blog-dev.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/cell-blog-dev.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20cell-blog+%E5%BC%80%E5%8F%91%E8%AE%B0%E5%BD%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7ccell-blog+%E5%BC%80%E5%8F%91%E8%AE%B0%E5%BD%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/cell-blog-dev/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/cell-blog-dev.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cell-blog-dev/ data-title=\"Cell-Blog 开发记录\" data-hashtags=PHP,Laravel,Markdown><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cell-blog-dev/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cell-blog-dev/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cell-blog-dev/ data-title=\"Cell-Blog 开发记录\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cell-blog-dev/ data-title=\"Cell-Blog 开发记录\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/laravel/ class=post-tag title=\"标签 - Laravel\">Laravel</a><a href=/tags/markdown/ class=post-tag title=\"标签 - Markdown\">Markdown</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/cell-blog/ class=post-nav-item rel=prev title=Lruihao/cell-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/cell-blog</a><a href=/projects/cell-blog/ class=post-nav-item rel=next title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#搭建-php-环境>搭建 php 环境</a></li><li><a href=#新建-laravel-项目>新建 laravel 项目</a></li><li><a href=#下载-debugbar>下载 debugbar</a></li><li><a href=#修改语言时区>修改语言时区</a></li><li><a href=#配置数据库>配置数据库</a></li><li><a href=#下载-laravel-admin>下载 laravel-admin</a></li><li><a href=#下载-dcat-admin>下载 dcat-admin</a></li><li><a href=#迁移文件创建表>迁移文件创建表</a></li><li><a href=#创建模型-model>创建模型 model</a></li><li><a href=#创建控制器>创建控制器</a></li><li><a href=#添加后台路由>添加后台路由</a></li><li><a href=#editormd-安装>editormd 安装</a><ol><li><a href=#存放本地表情>存放本地表情</a></li><li><a href=#图片上传>图片上传</a><ol><li><a href=#csrf-419-错误>csrf 419 错误</a></li></ol></li></ol></li><li><a href=#markdown-转-html>markdown 转 HTML</a></li><li><a href=#eloquent-模型事件>Eloquent 模型事件</a></li><li><a href=#添加后台验证码>添加后台验证码</a></li><li><a href=#media-manager>Media manager</a></li><li><a href=#前台设计>前台设计</a></li><li><a href=#后台-img-灯箱>后台 img 灯箱</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1a22a336553538929c787e5f03170f51.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1a22a336553538929c787e5f03170f51.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cell-blog-dev/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cell-blog-dev/index.md",
    "content": "# Cell-Blog 开发记录\n\n\n> Cell Blog 开发记录，[项目地址](https://github.com/Lruihao/cell-blog)\n\n<!--more-->\n\n## 搭建 php 环境\n\n1. 安装 wampserver\n2. 安装 composer\n3. 更换 aliyun 源\n\n```\ncomposer config -g repo.packagist composer https://mirrors.aliyun.com/composer/\n```\n\n## 新建 laravel 项目\n\n```\ncomposer create-project --prefer-dist laravel/laravel cell-blog \"7.*\"\n```\n\n或者\n\n```\ncomposer global require laravel/installer\nlaravel new blog\n```\n\n## 下载 debugbar\n\n```\ncomposer require barryvdh/laravel-debugbar --dev\n```\n\n## 修改语言时区\n\n修改 config/app.php，将 local 的值 en 改成 zh-CN(laravel-admin 自带 zh-CN)：\n\n```\n## 时区\n'timezone' => 'Asia/Shanghai',\n## 语言\n'locale' => 'zh-CN',\n```\n\n## 配置数据库\n\n首先确保安装好了 laravel，并且数据库连接设置正确。\n\n```\nAPP_URL=http://cell.blog\n\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3307\nDB_DATABASE=cell_blog\nDB_USERNAME=root\nDB_PASSWORD=123456\n```\n\n## 下载 laravel-admin\n\n```\ncd cell-blog\ncomposer require encore/laravel-admin\n```\n\n> 卸载命令`composer remove xxx`\n\n然后运行下面的命令来发布资源：\n\n```\nphp artisan vendor:publish --provider=\"Encore\\Admin\\AdminServiceProvider\"\n```\n\n在该命令会生成配置文件`config/admin.php`，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。\n\n然后运行下面的命令完成安装：\n\n```\nphp artisan admin:install\n```\n\n> 运行这个命令的时候，如果遇到了下面的错误：\n> `SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email))`  \n> 参考这个 issue 来解决 <https://github.com/z-song/laravel-admin/issues/1541>  \n> 在`app\\Providers\\AppServiceProvider.php`添加默认值\n\n```php\n<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Support\\Facades\\Schema; //add fixed sql\n\nclass AppServiceProvider extends ServiceProvider\n{\n    /**\n     * Bootstrap any application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        Schema::defaultStringLength(191); //add fixed sql\n    }\n\n    /**\n     * Register any application services.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n}\n```\n\n启动服务后，在浏览器打开 `http://localhost/admin/` , 使用用户名 `admin` 和密码 `admin` 登录。\n\n> 报错`Disk [admin] not configured, please add a disk config in config/filesystems.php`\n\n在`config/filesystems.php`中 disks 处添加以下配置后执行`php artisan storage:link`来创建软链接（windows 和 linux 的软链接不一样不能直接复制！）\n\n> 宝塔执行时删除禁用函数 putenv(),symlink()\n\n```\n'admin' => [\n    'driver' => 'local',\n    'root' => storage_path('app/public/system'),\n    'url' => env('APP_URL').'/storage/system',\n    'visibility' => 'public',\n],\n\n或\n\n'admin' => [\n    'driver' => 'local',\n    'root' => public_path('uploads'),\n    'url' => env('APP_URL').'/public/uploads/',\n    'visibility' => 'public',\n],\n```\n\n## 下载 dcat-admin\n\n```\ncomposer require dcat/laravel-admin\n```\n\n然后运行下面的命令来发布资源：\n\n```\nphp artisan admin:publish\n```\n\n在该命令会生成配置文件`config/admin.php`，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。\n\n然后运行下面的命令完成安装：\n\n```\nphp artisan admin:install\n```\n\n## 迁移文件创建表\n\n```sh\nphp artisan make:migration create_articles_table\nphp artisan make:migration create_tags_table\nphp artisan make:migration create_categories_table\nphp artisan make:migration create_article_tags_table\nphp artisan make:migration create_navigations_table\nphp artisan make:migration create_friendship_links_table\nphp artisan make:migration create_pages_table\nphp artisan make:migration create_systems_table\nphp artisan make:migration create_mottoes_table\n```\n\n运行迁移\n\n```\nphp artisan migrate\n```\n\n## 创建模型 model\n\n```sh\nphp artisan make:model Models/Article\nphp artisan make:model Models/Category\nphp artisan make:model Models/Tag\nphp artisan make:model Models/Navigation\nphp artisan make:model Models/FriendshipLink\nphp artisan make:model Models/Page\nphp artisan make:model Models/System\nphp artisan make:model Models/Motto\n```\n\n## 创建控制器\n\n```sh\nphp artisan admin:make ArticleController --model=App\\Models\\Article\nphp artisan admin:make CategoryController --model=App\\Models\\Category\nphp artisan admin:make TagController --model=App\\Models\\Tag\nphp artisan admin:make NavigationController --model=App\\Models\\Navigation\nphp artisan admin:make FriendshipLinkController --model=App\\Models\\FriendshipLink\nphp artisan admin:make PageController --model=App\\Models\\Page\nphp artisan admin:make SystemController --model=App\\Models\\System\nphp artisan admin:make MottoController --model=App\\Models\\Motto\n```\n\n## 添加后台路由\n\napp/Admin/routes.php\n\n```\n$router->resource('articles', ArticleController::class);\n$router->resource('categories', CategoryController::class);\n$router->resource('tags', TagController::class);\n$router->resource('navigations', NavigationController::class);\n$router->resource('friendship-links', FriendshipLinkController::class);\n$router->resource('pages', PageController::class);\n$router->resource('systems', SystemController::class);\n$router->resource('mottoes', MottoController::class);\n```\n\n## editormd 安装\n\n[editormd](https://github.com/ShareManT/laravel-admin-ext-editormd)\n[github 图像问题](https://github.com/ShareManT/laravel-admin-ext-editormd/issues/3)\n\n### 存放本地表情\n\n```\npublic\\vendor\\laravel-admin-ext\\editormd\\editormd-1.5.0\\images\\emojis\n```\n\n修改 editormd.js 及 editormd.min.js\n\n```\n// Emoji graphics files url path\neditormd.emoji     = {\n    path  : \"/iamges/emojis/\",\n    ext   : \".png\"\n};\n```\n\n### 图片上传\n\n#### csrf 419 错误\n\n可以在`VerifyCsrfToken.php`中添加白名单跳过验证，或者手动添加 csrf 验证器：\n\n修改 image-dialog.js 的`var dialogContent`  \n[参考](https://www.jianshu.com/p/8101f7bc80f6)\n\n```\nif (settings.crossDomainUpload)\n{\n    action += \"&callback=\" + settings.uploadCallbackURL + \"&dialog_id=editormd-image-dialog-\" + guid;\n}\n//添加 csrf 验证\nvar csrfToken = $('meta[name=\"csrf-token\"]').attr('content');\nvar csrfField = \"\";\nif (csrfToken) {\n    csrfField = \"<input type='hidden' name='_token' value='\" + csrfToken + \"' />\";\n}\n```\n\n## markdown 转 HTML\n\n<https://www.zhiqiexing.com/119.html>\n[Laravel Markdown 安装](https://github.com/GrahamCampbell/Laravel-Markdown)\n\n```\ncomposer require graham-campbell/markdown\nphp artisan vendor:publish\n```\n\n扩展表格\n\n```\ncomposer require league/commonmark\n```\n\nconfig/markdown.php\n\n```\n'extensions' => [\n        League\\CommonMark\\Extension\\TaskList\\TaskListExtension::class,\n    ],\n```\n\n## Eloquent 模型事件\n\nEloquent 模型可以触发事件，允许你在模型生命周期中的多个时间点调用如下这些方法：retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored。事件允许你在一个指定模型类每次保存或更新的时候执行代码。\n\nretrieved 事件会在从数据库中获取已存在模型时触发。当一个新模型被首次保存的时候，creating 和 created 事件会被触发。如果一个模型已经在数据库中存在并调用 save 方法，updating/updated 事件会被触发，无论是创建还是更新，saving/saved 事件都会被触发。\n\n## 添加后台验证码\n\n依赖 php 扩展`fileinfo`  \n[添加验证码](https://learnku.com/articles/32842)\n\n## Media manager\n\n```\ncomposer require laravel-admin-ext/media-manager\nphp artisan admin:import media-manager\n```\n\n'extensions' => [\n'media-manager' => [\n// Select a local disk that you configured in `config/filesystem.php`\n'disk' => 'public'\n],\n],\n\n```\n\n## 给 laravel-admin 增加锁屏功能\n```\n\ncomposer require laravel-admin-ext/lock-screen\n\n```\n'route' => [\n    'prefix' => 'demo',\n\n    'namespace'     => 'App\\\\Admin\\\\Controllers',\n\n    // 在中间件数组中加上'admin.lock'\n    'middleware'    => ['web', 'admin', 'admin.lock'],\n],\n```\n\n## 前台设计\n\n创建控制器\n\n```\nphp artisan make:controller HomeController\nphp artisan make:controller ArticleController\nphp artisan make:controller CategoryController\nphp artisan make:controller TagController\nphp artisan make:controller PageController\n```\n\n## 后台 img 灯箱\n\n<https://github.com/laravel-admin-extensions/grid-lightbox>\n\n```\ncomposer require laravel-admin-ext/grid-lightbox\n\nphp artisan vendor:publish --tag=laravel-admin-grid-lightbox\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cell-blog-dev/  \n\n"
  },
  {
    "path": "posts/cf-1009/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Educational Codeforces Round 47 (Rated for Div. 2) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"那天晚上报名了没打，第二天早上打的，也只出了两题。\n1 A. Game Shopping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include<iostream> using namespace std; int main(){ int n,m,s=0; cin>>n>>m; int i,j; int c[1000],a[1000]; for(i=0;i<n;i++) cin>>c[i]; for(i=0;i<m;i++) cin>>a[i]; for(i=0,j=0;i<n;){ if(j==m) break; if(c[i]<=a[j]){ s++; j++; i++; } else i++; } if(i==n&&amp;s==0) cout<<&#34;0\\n&#34;; else cout<<s<<endl; return 0; } 2 B. Minimum Ternary String 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <bits/stdc++.h> using namespace std; string s, ans; int main(){ cin >> s; int one = 0; for (int i = 0; i < s.size(); i++){ if (s[i] == '0') ans += &#34;0&#34;; if (s[i] == '1') one++; if (s[i] == '2') ans += &#34;2&#34;; } bool flag = false; for (int i = 0; i < ans.size(); i++){ if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1'); cout << ans[i]; } if (!flag) cout << string(one, '1'); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */ \"><meta name=keywords content='Codeforces,ACM,C++,C'><meta itemprop=name content=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><meta itemprop=description content=\"那天晚上报名了没打，第二天早上打的，也只出了两题。\n1 A. Game Shopping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include<iostream> using namespace std; int main(){ int n,m,s=0; cin>>n>>m; int i,j; int c[1000],a[1000]; for(i=0;i<n;i++) cin>>c[i]; for(i=0;i<m;i++) cin>>a[i]; for(i=0,j=0;i<n;){ if(j==m) break; if(c[i]<=a[j]){ s++; j++; i++; } else i++; } if(i==n&&amp;s==0) cout<<&#34;0\\n&#34;; else cout<<s<<endl; return 0; } 2 B. Minimum Ternary String 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <bits/stdc++.h> using namespace std; string s, ans; int main(){ cin >> s; int one = 0; for (int i = 0; i < s.size(); i++){ if (s[i] == '0') ans += &#34;0&#34;; if (s[i] == '1') one++; if (s[i] == '2') ans += &#34;2&#34;; } bool flag = false; for (int i = 0; i < ans.size(); i++){ if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1'); cout << ans[i]; } if (!flag) cout << string(one, '1'); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */\"><meta itemprop=datePublished content=\"2018-07-22T11:25:56+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"232\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Codeforces,acm,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cf-1009/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><meta property=\"og:description\" content=\"那天晚上报名了没打，第二天早上打的，也只出了两题。\n1 A. Game Shopping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include<iostream> using namespace std; int main(){ int n,m,s=0; cin>>n>>m; int i,j; int c[1000],a[1000]; for(i=0;i<n;i++) cin>>c[i]; for(i=0;i<m;i++) cin>>a[i]; for(i=0,j=0;i<n;){ if(j==m) break; if(c[i]<=a[j]){ s++; j++; i++; } else i++; } if(i==n&&amp;s==0) cout<<&#34;0\\n&#34;; else cout<<s<<endl; return 0; } 2 B. Minimum Ternary String 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <bits/stdc++.h> using namespace std; string s, ans; int main(){ cin >> s; int one = 0; for (int i = 0; i < s.size(); i++){ if (s[i] == '0') ans += &#34;0&#34;; if (s[i] == '1') one++; if (s[i] == '2') ans += &#34;2&#34;; } bool flag = false; for (int i = 0; i < ans.size(); i++){ if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1'); cout << ans[i]; } if (!flag) cout << string(one, '1'); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:25:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><meta name=twitter:description content=\"那天晚上报名了没打，第二天早上打的，也只出了两题。\n1 A. Game Shopping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include<iostream> using namespace std; int main(){ int n,m,s=0; cin>>n>>m; int i,j; int c[1000],a[1000]; for(i=0;i<n;i++) cin>>c[i]; for(i=0;i<m;i++) cin>>a[i]; for(i=0,j=0;i<n;){ if(j==m) break; if(c[i]<=a[j]){ s++; j++; i++; } else i++; } if(i==n&&amp;s==0) cout<<&#34;0\\n&#34;; else cout<<s<<endl; return 0; } 2 B. Minimum Ternary String 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <bits/stdc++.h> using namespace std; string s, ans; int main(){ cin >> s; int one = 0; for (int i = 0; i < s.size(); i++){ if (s[i] == '0') ans += &#34;0&#34;; if (s[i] == '1') one++; if (s[i] == '2') ans += &#34;2&#34;; } bool flag = false; for (int i = 0; i < ans.size(); i++){ if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1'); cout << ans[i]; } if (!flag) cout << string(one, '1'); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cf-1009/ title=\"Educational Codeforces Round 47 (Rated for Div. 2) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dfs_bfs/ title=深搜广搜><link rel=next type=text/html href=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ title=\"BFS 求最短路\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cf-1009/index.md title=\"Educational Codeforces Round 47 (Rated for Div. 2) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cf-1009\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Codeforces, ACM, C\\u002b\\u002b, C\",\"wordcount\":232,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cf-1009\\/\",\"datePublished\":\"2018-07-22T11:25:56+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cf-1009/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Educational Codeforces Round 47 (Rated for Div. 2)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Educational Codeforces Round 47 (Rated for Div. 2)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:25:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"232 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#a-game-shopping>A. Game Shopping</a></li><li><a href=#b-minimum-ternary-string>B. Minimum Ternary String</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>那天晚上报名了没打，第二天早上打的，也只出了两题。</p><h2 class=heading-element id=a-game-shopping><span>1 <a href=https://codeforces.com/contest/1009/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. Game Shopping<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#a-game-shopping class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>s</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>c</span><span class=p>[</span><span class=mi>1000</span><span class=p>],</span><span class=n>a</span><span class=p>[</span><span class=mi>1000</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>j</span><span class=o>==</span><span class=n>m</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;=</span><span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>            <span class=n>s</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>j</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>i</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>i</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>==</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>s</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;0</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>s</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=b-minimum-ternary-string><span>2 <a href=https://codeforces.com/contest/1009/problem/B target=_blank rel=\"external nofollow noopener noreferrer\">B. Minimum Ternary String<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#b-minimum-ternary-string class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>string</span> <span class=n>s</span><span class=p>,</span> <span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span> <span class=o>&gt;&gt;</span> <span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>one</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>s</span><span class=p>.</span><span class=n>size</span><span class=p>();</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;0&#39;</span><span class=p>)</span> <span class=n>ans</span> <span class=o>+=</span> <span class=s>&#34;0&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;1&#39;</span><span class=p>)</span> <span class=n>one</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;2&#39;</span><span class=p>)</span> <span class=n>ans</span> <span class=o>+=</span> <span class=s>&#34;2&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>bool</span> <span class=n>flag</span> <span class=o>=</span> <span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>ans</span><span class=p>.</span><span class=n>size</span><span class=p>();</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>ans</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;2&#39;</span> <span class=o>&amp;&amp;</span> <span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=n>flag</span> <span class=o>=</span> <span class=nb>true</span><span class=p>,</span> <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>string</span><span class=p>(</span><span class=n>one</span><span class=p>,</span> <span class=sc>&#39;1&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>ans</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>string</span><span class=p>(</span><span class=n>one</span><span class=p>,</span> <span class=sc>&#39;1&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>100210\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>11222121\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>20\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>2001\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>020201\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>2012101\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>111\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>000\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cf-1009/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/cf-1009.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/cf-1009.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Educational+Codeforces+Round+47+%28Rated+for+Div.+2%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cEducational+Codeforces+Round+47+%28Rated+for+Div.+2%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/cf-1009/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/cf-1009.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cf-1009/ data-title=\"Educational Codeforces Round 47 (Rated for Div. 2)\" data-hashtags=Codeforces,ACM,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cf-1009/ data-hashtag=Codeforces><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cf-1009/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cf-1009/ data-title=\"Educational Codeforces Round 47 (Rated for Div. 2)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cf-1009/ data-title=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dfs_bfs/ class=post-nav-item rel=prev title=深搜广搜><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>深搜广搜</a><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-nav-item rel=next title=\"BFS 求最短路\">BFS 求最短路<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#a-game-shopping>A. Game Shopping</a></li><li><a href=#b-minimum-ternary-string>B. Minimum Ternary String</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/35329dfb1fc66d8a56de7b21aab94c36.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/35329dfb1fc66d8a56de7b21aab94c36.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cf-1009/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cf-1009/index.md",
    "content": "# Educational Codeforces Round 47 (Rated for Div. 2)\n\n\n那天晚上报名了没打，第二天早上打的，也只出了两题。\n\n## [A. Game Shopping](https://codeforces.com/contest/1009/problem/A)\n\n```cpp\n#include<iostream>\nusing namespace std;\n\nint main(){\n    int n,m,s=0;\n    cin>>n>>m;\n    int i,j;\n    int c[1000],a[1000];\n    for(i=0;i<n;i++)\n        cin>>c[i];\n    for(i=0;i<m;i++)\n        cin>>a[i];\n    for(i=0,j=0;i<n;){\n        if(j==m)\n            break;\n        if(c[i]<=a[j]){\n            s++;\n            j++;\n            i++;\n        }\n        else i++;\n    }\n    if(i==n&&s==0)\n        cout<<\"0\\n\";\n    else cout<<s<<endl;\n    return 0;\n}\n\n```\n\n## [B. Minimum Ternary String](https://codeforces.com/contest/1009/problem/B)\n\n```cpp\n#include <bits/stdc++.h>\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n    cin >> s;\n    int one = 0;\n    for (int i = 0; i < s.size(); i++){\n        if (s[i] == '0') ans += \"0\";\n        if (s[i] == '1') one++;\n        if (s[i] == '2') ans += \"2\";\n    }\n    bool flag = false;\n    for (int i = 0; i < ans.size(); i++){\n        if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1');\n        cout << ans[i];\n    }\n    if (!flag) cout << string(one, '1');\n    return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cf-1009/  \n\n"
  },
  {
    "path": "posts/cfcontest1017/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Codeforces Round 502(Div.1 + Div.2) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 A. The Rank 题目大意：\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\n\"><meta name=keywords content='ACM,Codeforces,组合数学,C++'><meta itemprop=name content=\"Codeforces Round 502(Div.1 + Div.2)\"><meta itemprop=description content=\"0.1 A. The Rank 题目大意：\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\"><meta itemprop=datePublished content=\"2018-08-09T10:48:00+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"444\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,Codeforces,组合数学,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cfcontest1017/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Codeforces Round 502(Div.1 + Div.2)\"><meta property=\"og:description\" content=\"0.1 A. The Rank 题目大意：\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-09T10:48:00+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"组合数学\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Codeforces Round 502(Div.1 + Div.2)\"><meta name=twitter:description content=\"0.1 A. The Rank 题目大意：\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cfcontest1017/ title=\"Codeforces Round 502(Div.1 + Div.2) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/euler/ title=欧拉函数><link rel=next type=text/html href=https://lruihao.cn/posts/lightoj1282/ title=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cfcontest1017/index.md title=\"Codeforces Round 502(Div.1 + Div.2) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Codeforces Round 502(Div.1 + Div.2)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cfcontest1017\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, Codeforces, 组合数学, C\\u002b\\u002b\",\"wordcount\":444,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cfcontest1017\\/\",\"datePublished\":\"2018-08-09T10:48:00+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cfcontest1017/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Codeforces Round 502(Div.1 + Div.2)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Codeforces Round 502(Div.1 + Div.2)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-09 10:48:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-09>2018-08-09</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"444 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Codeforces Round 502(Div.1 + Div.2)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#a-the-rank>A. The Rank</a></li><li><a href=#b-the-bits>B. The Bits</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=a-the-rank><span>0.1 <a href=https://codeforces.com/contest/1017/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">A. The Rank<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#a-the-rank class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>题目大意：<br>给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；<br>开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=mi>4</span><span class=p>],</span><span class=n>sum</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>s</span><span class=p>,</span><span class=n>f1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>s</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=n>s</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>j</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>f1</span><span class=o>=</span><span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nf>sort</span><span class=p>(</span><span class=n>sum</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>sum</span><span class=o>+</span><span class=n>n</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>greater</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span><span class=p>());</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>sum</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=n>f1</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>i</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=b-the-bits><span>0.2 <a href=https://codeforces.com/contest/1017/problem/B target=_blank rel=\"external nofollow noopener noreferrer\">B. The Bits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#b-the-bits class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>题目大意：<br>先给出二进制数的长度，然后输入两个二进制数 a,b，问交换 a 中的某些位数的数，使得 a|b（按位或）的结果不同，求有多少种不同的或值。</p><div class=table-wrapper><table><thead><tr><th style=text-align:center>a,b 上下对应的情况：a/b</th><th style=text-align:center>个数</th></tr></thead><tbody><tr><td style=text-align:center>1/0</td><td style=text-align:center>m</td></tr><tr><td style=text-align:center>0/0</td><td style=text-align:center>n</td></tr><tr><td style=text-align:center>1/1</td><td style=text-align:center>x</td></tr><tr><td style=text-align:center>0/1</td><td style=text-align:center>y</td></tr></tbody></table></div><p>用组合数学的思想来想：<br>只要看 b 为 0 的位就行了，如果 0/0,a 只能换 1 的位置，为了避免重复，所以这里总数为<code>n*x</code>,<br>再考虑 1/0 的情况，只能和 0 的位置换，这是后可以把 0/0 没算的都算上，所以总数<code>m*(n+y)</code><br><strong>所以最后总数为<code>sum=n*x+m*(n+y)</code></strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>n</span><span class=o>=</span><span class=n>m</span><span class=o>=</span><span class=n>x</span><span class=o>=</span><span class=n>y</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>char</span> <span class=n>a</span><span class=p>[</span><span class=mi>100005</span><span class=p>],</span><span class=n>b</span><span class=p>[</span><span class=mi>100005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>t</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>p</span><span class=o>=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>-</span><span class=sc>&#39;0&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>q</span><span class=o>=</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>-</span><span class=sc>&#39;0&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=o>==</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>q</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=n>n</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=o>==</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>q</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=n>m</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=o>==</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>q</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>x</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=o>==</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>q</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>y</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>sum</span><span class=o>=</span><span class=n>n</span><span class=o>*</span><span class=n>x</span><span class=o>+</span><span class=n>m</span><span class=o>*</span><span class=p>(</span><span class=n>y</span><span class=o>+</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>sum</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cfcontest1017/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/cfcontest1017.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/cfcontest1017.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Codeforces+Round+502%28Div.1+%2B+Div.2%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCodeforces+Round+502%28Div.1+%2B+Div.2%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/cfcontest1017/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/cfcontest1017.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cfcontest1017/ data-title=\"Codeforces Round 502(Div.1 + Div.2)\" data-hashtags=ACM,Codeforces,组合数学,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cfcontest1017/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cfcontest1017/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cfcontest1017/ data-title=\"Codeforces Round 502(Div.1 + Div.2)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cfcontest1017/ data-title=\"Codeforces Round 502(Div.1 + Div.2)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 组合数学\">组合数学</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/euler/ class=post-nav-item rel=prev title=欧拉函数><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>欧拉函数</a><a href=/posts/lightoj1282/ class=post-nav-item rel=next title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\">Leading and Trailing-Lightoj1282（快速幂 + 对数运算）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#a-the-rank>A. The Rank</a></li><li><a href=#b-the-bits>B. The Bits</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/dbf8e36831437278c75ac3295d420944.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/dbf8e36831437278c75ac3295d420944.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cfcontest1017/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cfcontest1017/index.md",
    "content": "# Codeforces Round 502(Div.1 + Div.2)\n\n\n### [A. The Rank](https://codeforces.com/contest/1017/problem/A)\n\n题目大意：  \n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；  \n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\n\n<!--more-->\n\n```c\n#include<bits/stdc++.h>\nusing namespace std;\n\nint a[4],sum[1005];\n\nint main(){\n    int n,s,f1;\n    cin>>n;\n    for(int j=1;j<=n;j++){\n        s=0;\n        for(int i=0;i<4;i++){\n            cin>>a[i];\n            s+=a[i];\n        }\n        sum[j]=s;\n        if(j==1) f1=s;\n    }\n    sort(sum+1,sum+n+1,greater<int>());\n\n    for(int i=1;i<=n;i++)\n        if(sum[i]==f1){\n            cout<<i<<endl;\n            break;\n        }\n    return 0;\n}\n```\n\n### [B. The Bits](https://codeforces.com/contest/1017/problem/B)\n\n题目大意：  \n先给出二进制数的长度，然后输入两个二进制数 a,b，问交换 a 中的某些位数的数，使得 a|b（按位或）的结果不同，求有多少种不同的或值。\n\n| a,b 上下对应的情况：a/b | 个数 |\n| :---------------------: | :--: |\n|           1/0           | m   |\n|           0/0           | n   |\n|           1/1           | x   |\n|           0/1           | y   |\n\n用组合数学的思想来想：  \n只要看 b 为 0 的位就行了，如果 0/0,a 只能换 1 的位置，为了避免重复，所以这里总数为`n*x`,  \n再考虑 1/0 的情况，只能和 0 的位置换，这是后可以把 0/0 没算的都算上，所以总数`m*(n+y)`  \n**所以最后总数为`sum=n*x+m*(n+y)`**\n\n```c\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    long long n,m,x,y,t;\n    n=m=x=y=0;\n    char a[100005],b[100005];\n    cin>>t;\n    cin>>a>>b;\n    for(int i=0;i<t;i++){\n        int p=a[i]-'0';\n        int q=b[i]-'0';\n        if(p==0&&q==0) n++;\n        if(p==1&&q==0) m++;\n        if(p==1&&q==1) x++;\n        if(p==0&&q==1) y++;\n    }\n    long long sum=n*x+m*(y+n);\n    cout<<sum<<endl;\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cfcontest1017/  \n\n"
  },
  {
    "path": "posts/cipanadmin/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>磁盘存储器的管理 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\n\"><meta name=keywords content='OS,磁盘'><meta itemprop=name content=\"磁盘存储器的管理\"><meta itemprop=description content=\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\"><meta itemprop=datePublished content=\"2019-03-04T23:08:32+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"739\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"OS,磁盘\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cipanadmin/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"磁盘存储器的管理\"><meta property=\"og:description\" content=\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-04T23:08:32+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"OS\"><meta property=\"article:tag\" content=\"磁盘\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"磁盘存储器的管理\"><meta name=twitter:description content=\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cipanadmin/ title=\"磁盘存储器的管理 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/js-vcode/ title=\"JS 验证码\"><link rel=next type=text/html href=https://lruihao.cn/posts/qqxml/ title=\"QQ 强制生成卡片式链接\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cipanadmin/index.md title=\"磁盘存储器的管理 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"磁盘存储器的管理\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cipanadmin\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"OS, 磁盘\",\"wordcount\":739,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cipanadmin\\/\",\"datePublished\":\"2019-03-04T23:08:32+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cipanadmin/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>磁盘存储器的管理</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>磁盘存储器的管理</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-04 23:08:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-04>2019-03-04</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"739 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=磁盘存储器的管理><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#外存的组织方式>外存的组织方式</a><ol><li><a href=#连续组织方式>连续组织方式</a></li><li><a href=#链接组织方式>链接组织方式</a></li><li><a href=#fat-技术>FAT 技术</a></li><li><a href=#ntfs-的文件组织方式>NTFS 的文件组织方式</a></li><li><a href=#索引组织方式>索引组织方式</a></li></ol></li><li><a href=#文件存储空间的管理>文件存储空间的管理</a><ol><li><a href=#空闲表法和空闲链表法>空闲表法和空闲链表法</a></li><li><a href=#位示图法>位示图法</a></li><li><a href=#成组链接法>成组链接法</a></li></ol></li><li><a href=#提高磁盘-io-速度的途径>提高磁盘 I/O 速度的途径</a><ol><li><a href=#磁盘高速缓存>磁盘高速缓存</a></li><li><a href=#提高磁盘-io-速度的其他方法>提高磁盘 I/O 速度的其他方法</a></li><li><a href=#廉价磁盘冗余阵列-raid>廉价磁盘冗余阵列 (RAID)</a></li></ol></li><li><a href=#提高磁盘可靠性的技术>提高磁盘可靠性的技术</a><ol><li><a href=#第一级容错技术-sft->第一级容错技术 SFT-Ⅰ</a></li><li><a href=#第二级容错技术-sft->第二级容错技术 SFT-Ⅱ</a></li><li><a href=#基于集群技术的容错功能>基于集群技术的容错功能</a></li><li><a href=#后备系统>后备系统</a></li></ol></li><li><a href=#数据一致性控制>数据一致性控制</a><ol><li><a href=#事务>事务</a></li><li><a href=#检查点>检查点</a></li><li><a href=#并发控制>并发控制</a></li><li><a href=#重复数据的数据一致性问题>重复数据的数据一致性问题</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=外存的组织方式><span>1 外存的组织方式</span>\n<a href=#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=连续组织方式><span>1.1 连续组织方式</span>\n<a href=#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>连续组织方式的优点</p><ul><li>顺序访问容易</li><li>顺序访问速度快</li></ul></li><li><p>连续组织方式的缺点</p><ul><li>分配连续的存储空间</li><li>必须知道文件长度</li><li>删除与插入数据不灵活</li><li>动态增长的文件分配空间问题</li></ul></li></ul><h3 class=heading-element id=链接组织方式><span>1.2 链接组织方式</span>\n<a href=#%e9%93%be%e6%8e%a5%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>隐式链接</li><li>显式链接</li></ul><h3 class=heading-element id=fat-技术><span>1.3 FAT 技术</span>\n<a href=#fat-%e6%8a%80%e6%9c%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>FAT12</p><ul><li>早期的 FAT12 文件系统</li><li>以簇为单位的 FAT12 文件系统</li></ul></li><li><p>FAT16</p></li><li><p>FAT32</p></li></ul><h3 class=heading-element id=ntfs-的文件组织方式><span>1.4 NTFS 的文件组织方式</span>\n<a href=#ntfs-%e7%9a%84%e6%96%87%e4%bb%b6%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>NTFS 新特征</li><li>磁盘组织</li><li>文件的组织</li></ul><h3 class=heading-element id=索引组织方式><span>1.5 索引组织方式</span>\n<a href=#%e7%b4%a2%e5%bc%95%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>单级索引组织方式</p></li><li><p>多级索引组织方式</p></li><li><p>增量式索引组织方式</p><ul><li><p>增量式索引组织方式的基本思想</p></li><li><p>UNIX System V 的组织方式</p><ul><li>直接地址</li><li>一次间接地址</li><li>多次间接地址</li></ul></li></ul></li></ul><h2 class=heading-element id=文件存储空间的管理><span>2 文件存储空间的管理</span>\n<a href=#%e6%96%87%e4%bb%b6%e5%ad%98%e5%82%a8%e7%a9%ba%e9%97%b4%e7%9a%84%e7%ae%a1%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=空闲表法和空闲链表法><span>2.1 空闲表法和空闲链表法</span>\n<a href=#%e7%a9%ba%e9%97%b2%e8%a1%a8%e6%b3%95%e5%92%8c%e7%a9%ba%e9%97%b2%e9%93%be%e8%a1%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>空闲表法</p><ul><li>空闲表</li><li>存储空间的分配与回收</li></ul></li><li><p>空闲链表法</p><ul><li>空闲盘块链</li><li>空闲盘区链</li></ul></li></ul><h3 class=heading-element id=位示图法><span>2.2 位示图法</span>\n<a href=#%e4%bd%8d%e7%a4%ba%e5%9b%be%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>位示图</p></li><li><p>盘块的分配（步骤）</p><ul><li><ol><li>顺序扫描示图</li></ol></li><li><ol start=2><li>转换盘块号</li></ol></li><li><ol start=3><li>修改位示图</li></ol></li></ul></li><li><p>盘块的回收（步骤）</p><ul><li><ol><li>盘块号转换成行列号</li></ol></li><li><ol start=2><li>修改位示图</li></ol></li></ul></li></ul><h3 class=heading-element id=成组链接法><span>2.3 成组链接法</span>\n<a href=#%e6%88%90%e7%bb%84%e9%93%be%e6%8e%a5%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>空闲盘块的组织</li><li>空闲盘块的分配与回收</li></ul><h2 class=heading-element id=提高磁盘-io-速度的途径><span>3 提高磁盘 I/O 速度的途径</span>\n<a href=#%e6%8f%90%e9%ab%98%e7%a3%81%e7%9b%98-io-%e9%80%9f%e5%ba%a6%e7%9a%84%e9%80%94%e5%be%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=磁盘高速缓存><span>3.1 磁盘高速缓存</span>\n<a href=#%e7%a3%81%e7%9b%98%e9%ab%98%e9%80%9f%e7%bc%93%e5%ad%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>数据交付方式</p><ul><li>数据交付</li><li>指针交付</li></ul></li><li><p>置换算法</p></li><li><p>周期性地写回磁盘</p></li></ul><h3 class=heading-element id=提高磁盘-io-速度的其他方法><span>3.2 提高磁盘 I/O 速度的其他方法</span>\n<a href=#%e6%8f%90%e9%ab%98%e7%a3%81%e7%9b%98-io-%e9%80%9f%e5%ba%a6%e7%9a%84%e5%85%b6%e4%bb%96%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>提前读</li><li>延迟写</li><li>优化物理块的分布</li><li>虚拟盘</li></ul><h3 class=heading-element id=廉价磁盘冗余阵列-raid><span>3.3 廉价磁盘冗余阵列 (RAID)</span>\n<a href=#%e5%bb%89%e4%bb%b7%e7%a3%81%e7%9b%98%e5%86%97%e4%bd%99%e9%98%b5%e5%88%97-raid class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>并行交叉存取</p></li><li><p>RAID 的分级</p><ul><li>RAID 0 级</li><li>RAID 1 级</li><li>RAID 2 级</li><li>RAID 3 级</li><li>RAID 4 级</li><li>RAID 5 级</li><li>RAID 6 级和 RAID 7 级</li></ul></li><li><p>RAID 的优点</p><ul><li>可靠性高</li><li>磁盘 I/O 速度高</li><li>性价比高</li></ul></li></ul><h2 class=heading-element id=提高磁盘可靠性的技术><span>4 提高磁盘可靠性的技术</span>\n<a href=#%e6%8f%90%e9%ab%98%e7%a3%81%e7%9b%98%e5%8f%af%e9%9d%a0%e6%80%a7%e7%9a%84%e6%8a%80%e6%9c%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=第一级容错技术-sft-><span>4.1 第一级容错技术 SFT-Ⅰ</span>\n<a href=#%e7%ac%ac%e4%b8%80%e7%ba%a7%e5%ae%b9%e9%94%99%e6%8a%80%e6%9c%af-sft- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>双份目录和双份文件分配表</p></li><li><p>热修复重定向和写后读校验</p><ul><li>热修复重定向</li><li>写后读校验方式</li></ul></li></ul><h3 class=heading-element id=第二级容错技术-sft-><span>4.2 第二级容错技术 SFT-Ⅱ</span>\n<a href=#%e7%ac%ac%e4%ba%8c%e7%ba%a7%e5%ae%b9%e9%94%99%e6%8a%80%e6%9c%af-sft- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>磁盘镜像</li><li>磁盘双工</li></ul><h3 class=heading-element id=基于集群技术的容错功能><span>4.3 基于集群技术的容错功能</span>\n<a href=#%e5%9f%ba%e4%ba%8e%e9%9b%86%e7%be%a4%e6%8a%80%e6%9c%af%e7%9a%84%e5%ae%b9%e9%94%99%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>双机热备份模式</li><li>双机互为备份模式</li><li>公用磁盘模式</li></ul><h3 class=heading-element id=后备系统><span>4.4 后备系统</span>\n<a href=#%e5%90%8e%e5%a4%87%e7%b3%bb%e7%bb%9f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>磁带机</p></li><li><p>硬盘</p><ul><li>移动磁盘</li><li>固定硬盘驱动器</li></ul></li><li><p>光盘驱动器</p><ul><li>CD-ROM 和 DVD-ROM</li><li>刻录机</li></ul></li></ul><h2 class=heading-element id=数据一致性控制><span>5 数据一致性控制</span>\n<a href=#%e6%95%b0%e6%8d%ae%e4%b8%80%e8%87%b4%e6%80%a7%e6%8e%a7%e5%88%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=事务><span>5.1 事务</span>\n<a href=#%e4%ba%8b%e5%8a%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><p>事务的定义</p></li><li><p>事务记录</p></li><li><p>恢复算法</p><ul><li>undo &lt;Ti></li><li>redo &lt;Ti></li></ul></li></ul><h3 class=heading-element id=检查点><span>5.2 检查点</span>\n<a href=#%e6%a3%80%e6%9f%a5%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>检查点的作用</li><li>新的恢复算法</li></ul><h3 class=heading-element id=并发控制><span>5.3 并发控制</span>\n<a href=#%e5%b9%b6%e5%8f%91%e6%8e%a7%e5%88%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>利用互斥锁实现“顺序性”</li><li>利用互斥锁和共享锁实现顺序性</li></ul><h3 class=heading-element id=重复数据的数据一致性问题><span>5.4 重复数据的数据一致性问题</span>\n<a href=#%e9%87%8d%e5%a4%8d%e6%95%b0%e6%8d%ae%e7%9a%84%e6%95%b0%e6%8d%ae%e4%b8%80%e8%87%b4%e6%80%a7%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>重复文件的一致性</li><li>链接数一致性检查</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cipanadmin/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/cipanadmin.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/cipanadmin.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%A3%81%E7%9B%98%E5%AD%98%E5%82%A8%E5%99%A8%E7%9A%84%E7%AE%A1%E7%90%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%A3%81%E7%9B%98%E5%AD%98%E5%82%A8%E5%99%A8%E7%9A%84%E7%AE%A1%E7%90%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/cipanadmin/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/cipanadmin.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cipanadmin/ data-title=磁盘存储器的管理 data-hashtags=OS,磁盘><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cipanadmin/ data-hashtag=OS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cipanadmin/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cipanadmin/ data-title=磁盘存储器的管理 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cipanadmin/ data-title=磁盘存储器的管理><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/os/ class=post-tag title=\"标签 - OS\">OS</a><a href=/tags/%E7%A3%81%E7%9B%98/ class=post-tag title=\"标签 - 磁盘\">磁盘</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/js-vcode/ class=post-nav-item rel=prev title=\"JS 验证码\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>JS 验证码</a><a href=/posts/qqxml/ class=post-nav-item rel=next title=\"QQ 强制生成卡片式链接\">QQ 强制生成卡片式链接<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#外存的组织方式>外存的组织方式</a><ol><li><a href=#连续组织方式>连续组织方式</a></li><li><a href=#链接组织方式>链接组织方式</a></li><li><a href=#fat-技术>FAT 技术</a></li><li><a href=#ntfs-的文件组织方式>NTFS 的文件组织方式</a></li><li><a href=#索引组织方式>索引组织方式</a></li></ol></li><li><a href=#文件存储空间的管理>文件存储空间的管理</a><ol><li><a href=#空闲表法和空闲链表法>空闲表法和空闲链表法</a></li><li><a href=#位示图法>位示图法</a></li><li><a href=#成组链接法>成组链接法</a></li></ol></li><li><a href=#提高磁盘-io-速度的途径>提高磁盘 I/O 速度的途径</a><ol><li><a href=#磁盘高速缓存>磁盘高速缓存</a></li><li><a href=#提高磁盘-io-速度的其他方法>提高磁盘 I/O 速度的其他方法</a></li><li><a href=#廉价磁盘冗余阵列-raid>廉价磁盘冗余阵列 (RAID)</a></li></ol></li><li><a href=#提高磁盘可靠性的技术>提高磁盘可靠性的技术</a><ol><li><a href=#第一级容错技术-sft->第一级容错技术 SFT-Ⅰ</a></li><li><a href=#第二级容错技术-sft->第二级容错技术 SFT-Ⅱ</a></li><li><a href=#基于集群技术的容错功能>基于集群技术的容错功能</a></li><li><a href=#后备系统>后备系统</a></li></ol></li><li><a href=#数据一致性控制>数据一致性控制</a><ol><li><a href=#事务>事务</a></li><li><a href=#检查点>检查点</a></li><li><a href=#并发控制>并发控制</a></li><li><a href=#重复数据的数据一致性问题>重复数据的数据一致性问题</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/52ed700aaee4c796d3aba30f6abc325f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/52ed700aaee4c796d3aba30f6abc325f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cipanadmin/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cipanadmin/index.md",
    "content": "# 磁盘存储器的管理\n\n\n## 外存的组织方式\n\n### 连续组织方式\n\n- 连续组织方式的优点\n\n  - 顺序访问容易\n  - 顺序访问速度快\n\n- 连续组织方式的缺点\n\n  - 分配连续的存储空间\n  - 必须知道文件长度\n  - 删除与插入数据不灵活\n  - 动态增长的文件分配空间问题\n\n### 链接组织方式\n\n- 隐式链接\n- 显式链接\n\n### FAT 技术\n\n- FAT12\n\n  - 早期的 FAT12 文件系统\n  - 以簇为单位的 FAT12 文件系统\n\n- FAT16\n- FAT32\n\n### NTFS 的文件组织方式\n\n- NTFS 新特征\n- 磁盘组织\n- 文件的组织\n\n### 索引组织方式\n\n- 单级索引组织方式\n- 多级索引组织方式\n- 增量式索引组织方式\n\n  - 增量式索引组织方式的基本思想\n  - UNIX System V 的组织方式\n\n    - 直接地址\n    - 一次间接地址\n    - 多次间接地址\n\n## 文件存储空间的管理\n\n### 空闲表法和空闲链表法\n\n- 空闲表法\n\n  - 空闲表\n  - 存储空间的分配与回收\n\n- 空闲链表法\n\n  - 空闲盘块链\n  - 空闲盘区链\n\n### 位示图法\n\n- 位示图\n- 盘块的分配（步骤）\n\n  - 1. 顺序扫描示图\n  - 2. 转换盘块号\n  - 3. 修改位示图\n\n- 盘块的回收（步骤）\n\n  - 1. 盘块号转换成行列号\n  - 2. 修改位示图\n\n### 成组链接法\n\n- 空闲盘块的组织\n- 空闲盘块的分配与回收\n\n## 提高磁盘 I/O 速度的途径\n\n### 磁盘高速缓存\n\n- 数据交付方式\n\n  - 数据交付\n  - 指针交付\n\n- 置换算法\n- 周期性地写回磁盘\n\n### 提高磁盘 I/O 速度的其他方法\n\n- 提前读\n- 延迟写\n- 优化物理块的分布\n- 虚拟盘\n\n### 廉价磁盘冗余阵列 (RAID)\n\n- 并行交叉存取\n- RAID 的分级\n\n  - RAID 0 级\n  - RAID 1 级\n  - RAID 2 级\n  - RAID 3 级\n  - RAID 4 级\n  - RAID 5 级\n  - RAID 6 级和 RAID 7 级\n\n- RAID 的优点\n\n  - 可靠性高\n  - 磁盘 I/O 速度高\n  - 性价比高\n\n## 提高磁盘可靠性的技术\n\n### 第一级容错技术 SFT-Ⅰ\n\n- 双份目录和双份文件分配表\n- 热修复重定向和写后读校验\n\n  - 热修复重定向\n  - 写后读校验方式\n\n### 第二级容错技术 SFT-Ⅱ\n\n- 磁盘镜像\n- 磁盘双工\n\n### 基于集群技术的容错功能\n\n- 双机热备份模式\n- 双机互为备份模式\n- 公用磁盘模式\n\n### 后备系统\n\n- 磁带机\n- 硬盘\n\n  - 移动磁盘\n  - 固定硬盘驱动器\n\n- 光盘驱动器\n\n  - CD-ROM 和 DVD-ROM\n  - 刻录机\n\n## 数据一致性控制\n\n### 事务\n\n- 事务的定义\n- 事务记录\n- 恢复算法\n\n  - undo <Ti\\>\n  - redo <Ti\\>\n\n### 检查点\n\n- 检查点的作用\n- 新的恢复算法\n\n### 并发控制\n\n- 利用互斥锁实现“顺序性”\n- 利用互斥锁和共享锁实现顺序性\n\n### 重复数据的数据一致性问题\n\n- 重复文件的一致性\n- 链接数一致性检查\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cipanadmin/  \n\n"
  },
  {
    "path": "posts/code-playground/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Code Playground | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\n\"><meta name=keywords content='Node.js,npm'><meta itemprop=name content=\"Code Playground\"><meta itemprop=description content=\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\"><meta itemprop=datePublished content=\"2025-08-04T11:37:24+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=wordCount content=\"375\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Node.js,npm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/code-playground/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Code Playground\"><meta property=\"og:description\" content=\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-08-04T11:37:24+08:00\"><meta property=\"article:modified_time\" content=\"2025-08-27T12:30:22+08:00\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"npm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Code Playground\"><meta name=twitter:description content=\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/code-playground/ title=\"Code Playground | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><link rel=next type=text/html href=https://lruihao.cn/posts/wc-01-prologue/ title=黑盒出关・三把钥匙定江湖><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/code-playground/index.md title=\"Code Playground | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Code Playground\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/code-playground\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Node.js, npm\",\"wordcount\":375,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/code-playground\\/\",\"datePublished\":\"2025-08-04T11:37:24+08:00\",\"dateModified\":\"2025-08-27T12:30:22+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/code-playground/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Code Playground</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Code Playground</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2025-08-04 11:37:24\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-08-04>2025-08-04</time></span>&nbsp;<span title=\"更新于 2025-08-27 12:30:22\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-08-27>2025-08-27</time></span>&nbsp;<span title=\"375 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Code Playground\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-08-27，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>以下是常见的在线代码演示和开发环境服务，适合不同场景使用：</p><div class=table-wrapper><table><thead><tr><th>名称</th><th>特点与适用场景</th><th>网址</th></tr></thead><tbody><tr><td><strong>CodeSandbox</strong></td><td>支持前后端全栈开发，内置 Docker，支持 React、Vue、Node、Python 等，适合复杂项目</td><td><a href=https://codesandbox.io target=_blank rel=\"external nofollow noopener noreferrer\">https://codesandbox.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>CodePen</strong></td><td>专注于前端小效果演示，社区活跃，适合分享和展示 HTML/CSS/JS 片段</td><td><a href=https://codepen.io target=_blank rel=\"external nofollow noopener noreferrer\">https://codepen.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>JSFiddle</strong></td><td>轻量级前端代码片段运行环境，适合快速测试和分享小 demo</td><td><a href=https://jsfiddle.net target=_blank rel=\"external nofollow noopener noreferrer\">https://jsfiddle.net<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>JS Bin</strong></td><td>类似 JSFiddle，支持实时协作和分享，适合调试和教学</td><td><a href=https://jsbin.com target=_blank rel=\"external nofollow noopener noreferrer\">https://jsbin.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>Playcode.io</strong></td><td>无需登录即可运行 JS/TS，界面类似本地 IDE，适合快速原型开发</td><td><a href=https://playcode.io target=_blank rel=\"external nofollow noopener noreferrer\">https://playcode.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>Replit</strong></td><td>支持多语言（如 Python、Java、C++），适合教育用途和全栈开发</td><td><a href=https://replit.com target=_blank rel=\"external nofollow noopener noreferrer\">https://replit.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>StackBlitz</strong></td><td>基于浏览器的全栈 IDE，支持 Node、React、Angular 等框架，自动部署到 Vercel，适合快速原型和教程</td><td><a href=https://stackblitz.com target=_blank rel=\"external nofollow noopener noreferrer\">https://stackblitz.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>Gitpod</strong></td><td>基于 VS Code 的云端 IDE，适合 GitHub 项目快速启动和协作</td><td><a href=https://gitpod.io target=_blank rel=\"external nofollow noopener noreferrer\">https://gitpod.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td><strong>码上掘金</strong></td><td>国内版轻量 Playground，支持 React、Vue 等框架，适合中文用户</td><td><a href=https://code.juejin.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://code.juejin.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-08-27 12:30:22\">更新于 2025-08-27&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ef9a1469dec0bd833c4ab3a14489edcc04921147 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"docs: add StackBlitz&#10&#10Commit: ef9a1469dec0bd833c4ab3a14489edcc04921147 [ef9a146]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-08-27 12:30:22\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ef9a146</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/code-playground/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/code-playground.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/code-playground.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Code+Playground&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCode+Playground%7c%0A%7cURL%7chttps://lruihao.cn/posts/code-playground/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/code-playground.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/code-playground/ data-title=\"Code Playground\" data-hashtags=Node.js,npm><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/code-playground/ data-hashtag=Node.js><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/code-playground/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/code-playground/ data-title=\"Code Playground\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/code-playground/ data-title=\"Code Playground\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/npm/ class=post-tag title=\"标签 - npm\">npm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/caniuse-embed-element/ class=post-nav-item rel=prev title=Lruihao/caniuse-embed-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/caniuse-embed-element</a><a href=/posts/wc-01-prologue/ class=post-nav-item rel=next title=黑盒出关・三把钥匙定江湖>黑盒出关・三把钥匙定江湖<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/07d140fad64e8e303ead3a6cdf7ac46e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/07d140fad64e8e303ead3a6cdf7ac46e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/code-playground/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/code-playground/index.md",
    "content": "# Code Playground\n\n\n以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\n\n<!--more-->\n\n| 名称            | 特点与适用场景                                                                                | 网址                     |\n| --------------- | --------------------------------------------------------------------------------------------- | ------------------------ |\n| **CodeSandbox** | 支持前后端全栈开发，内置 Docker，支持 React、Vue、Node、Python 等，适合复杂项目               | <https://codesandbox.io> |\n| **CodePen**     | 专注于前端小效果演示，社区活跃，适合分享和展示 HTML/CSS/JS 片段                               | <https://codepen.io>     |\n| **JSFiddle**    | 轻量级前端代码片段运行环境，适合快速测试和分享小 demo                                         | <https://jsfiddle.net>   |\n| **JS Bin**      | 类似 JSFiddle，支持实时协作和分享，适合调试和教学                                             | <https://jsbin.com>      |\n| **Playcode.io** | 无需登录即可运行 JS/TS，界面类似本地 IDE，适合快速原型开发                                    | <https://playcode.io>    |\n| **Replit**      | 支持多语言（如 Python、Java、C++），适合教育用途和全栈开发                                    | <https://replit.com>     |\n| **StackBlitz**  | 基于浏览器的全栈 IDE，支持 Node、React、Angular 等框架，自动部署到 Vercel，适合快速原型和教程 | <https://stackblitz.com> |\n| **Gitpod**      | 基于 VS Code 的云端 IDE，适合 GitHub 项目快速启动和协作                                       | <https://gitpod.io>      |\n| **码上掘金**    | 国内版轻量 Playground，支持 React、Vue 等框架，适合中文用户                                   | <https://code.juejin.cn> |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/code-playground/  \n\n"
  },
  {
    "path": "posts/codeforces476a/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Dreamoon and Stairs | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n1 Input The single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).\n\"><meta name=keywords content='Codeforces,ACM,数学,C++,C'><meta itemprop=name content=\"Dreamoon and Stairs\"><meta itemprop=description content=\"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n1 Input The single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).\"><meta itemprop=datePublished content=\"2018-08-10T20:13:08+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"302\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Codeforces,acm,数学,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/codeforces476a/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Dreamoon and Stairs\"><meta property=\"og:description\" content=\"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n1 Input The single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-10T20:13:08+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Dreamoon and Stairs\"><meta name=twitter:description content=\"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n1 Input The single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/codeforces476a/ title=\"Dreamoon and Stairs | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/codeforces476b/ title=\"Dreamoon and WiFi（组合数学）\"><link rel=next type=text/html href=https://lruihao.cn/posts/nowcoder157a/ title=石子阵列（组合数学）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/codeforces476a/index.md title=\"Dreamoon and Stairs | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Dreamoon and Stairs\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces476a\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Codeforces, ACM, 数学, C\\u002b\\u002b, C\",\"wordcount\":302,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces476a\\/\",\"datePublished\":\"2018-08-10T20:13:08+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/codeforces476a/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Dreamoon and Stairs</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Dreamoon and Stairs</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-10 20:13:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-10>2018-08-10</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"302 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Dreamoon and Stairs\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#examples>Examples</a><ol><li><a href=#input1>input1</a></li><li><a href=#output1>output1</a></li><li><a href=#input2>input2</a></li><li><a href=#output2>output2</a></li><li><a href=#note>Note</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><strong><a href=https://codeforces.com/contest/476/problem/a target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><p>Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.</p><p>What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?</p><h2 class=heading-element id=input><span>1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The single line contains two space separated integers n, m (0 &lt; n ≤ 10000, 1 &lt; m ≤ 10).</p><h2 class=heading-element id=output><span>2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Print a single integer — the minimal number of moves being a multiple of m. If there is no way he can climb satisfying condition print  - 1 instead.</p><h2 class=heading-element id=examples><span>3 Examples</span>\n<a href=#examples class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=input1><span>3.1 input1</span>\n<a href=#input1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>10 2\n</code></pre><h3 class=heading-element id=output1><span>3.2 output1</span>\n<a href=#output1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>6\n</code></pre><h3 class=heading-element id=input2><span>3.3 input2</span>\n<a href=#input2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>3 5\n</code></pre><h3 class=heading-element id=output2><span>3.4 output2</span>\n<a href=#output2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>-1\n</code></pre><h3 class=heading-element id=note><span>3.5 Note</span>\n<a href=#note class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For the first sample, Dreamoon could climb in 6 moves with following sequence of steps: {2, 2, 2, 2, 1, 1}.<br>For the second sample, there are only three valid sequence of steps {2, 1}, {1, 2}, {1, 1, 1} with 2, 2, and 3 steps respectively. All these numbers are not multiples of 5.</p><p>有一个 n 级台阶，每次可以走一级或两级，问最少的步数是多少，且步数必须是 m 的倍数。<br>找一下数学公式就好了。<br>具体看代码。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>&lt;</span><span class=n>m</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;-</span><span class=mi>1</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>==</span><span class=n>m</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>n</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>2</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span><span class=o>=</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>%</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>+</span><span class=n>m</span><span class=o>-</span><span class=n>x</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span><span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>2</span><span class=o>!=</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span><span class=o>=</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>+</span><span class=mi>1</span><span class=p>)</span><span class=o>%</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>+</span><span class=mi>1</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=o>+</span><span class=mi>1</span><span class=p>)</span><span class=o>+</span><span class=n>m</span><span class=o>-</span><span class=n>x</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/codeforces476a/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces476a.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/codeforces476a.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Dreamoon+and+Stairs&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cDreamoon+and+Stairs%7c%0A%7cURL%7chttps://lruihao.cn/posts/codeforces476a/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces476a.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/codeforces476a/ data-title=\"Dreamoon and Stairs\" data-hashtags=Codeforces,ACM,数学,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/codeforces476a/ data-hashtag=Codeforces><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/codeforces476a/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/codeforces476a/ data-title=\"Dreamoon and Stairs\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/codeforces476a/ data-title=\"Dreamoon and Stairs\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/codeforces476b/ class=post-nav-item rel=prev title=\"Dreamoon and WiFi（组合数学）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Dreamoon and WiFi（组合数学）</a><a href=/posts/nowcoder157a/ class=post-nav-item rel=next title=石子阵列（组合数学）>石子阵列（组合数学）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#examples>Examples</a><ol><li><a href=#input1>input1</a></li><li><a href=#output1>output1</a></li><li><a href=#input2>input2</a></li><li><a href=#output2>output2</a></li><li><a href=#note>Note</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cbdcef242cc969fdcea7bbd898430f4a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cbdcef242cc969fdcea7bbd898430f4a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/codeforces476a/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/codeforces476a/index.md",
    "content": "# Dreamoon and Stairs\n\n\n**[题目链接](https://codeforces.com/contest/476/problem/a)**\n\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\n\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n\n## Input\n\nThe single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).\n\n## Output\n\nPrint a single integer — the minimal number of moves being a multiple of m. If there is no way he can climb satisfying condition print  - 1 instead.\n\n## Examples\n\n### input1\n\n    10 2\n\n### output1\n\n    6\n\n### input2\n\n    3 5\n\n### output2\n\n    -1\n\n### Note\n\nFor the first sample, Dreamoon could climb in 6 moves with following sequence of steps: {2, 2, 2, 2, 1, 1}.  \nFor the second sample, there are only three valid sequence of steps {2, 1}, {1, 2}, {1, 1, 1} with 2, 2, and 3 steps respectively. All these numbers are not multiples of 5.\n\n有一个 n 级台阶，每次可以走一级或两级，问最少的步数是多少，且步数必须是 m 的倍数。  \n找一下数学公式就好了。  \n具体看代码。\n\n<!-- markdownlint-disable code-block-style -->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int x,n,m;\n    cin>>n>>m;\n    if(n<m){\n        cout<<-1<<endl;\n        return 0;\n    }\n    if(n==m){\n        cout<<n<<endl;\n        return 0;\n    }\n    if(n%2==0){\n        x=n/2%m;\n        if(x==0) cout<<n/2<<endl;\n        else cout<<n/2+m-x<<endl;\n    }else if(n%2!=0){\n        x=(n/2+1)%m;\n        if(x==0) cout<<n/2+1<<endl;\n        else cout<<(n/2+1)+m-x<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/codeforces476a/  \n\n"
  },
  {
    "path": "posts/codeforces476b/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Dreamoon and WiFi（组合数学） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='题目链接\n1 题目大意 就是给定两个字符串，第一个字符串由\"+\",\"-&ldquo;组成，第二个字符串由&rdquo;+\",\"-\",\"?&ldquo;组成，“+”代表加 1，&rdquo;-&ldquo;代表减一，“?&ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\n'><meta name=keywords content='组合数学,Codeforces,ACM,数学,C++,C'><meta itemprop=name content=\"Dreamoon and WiFi（组合数学）\"><meta itemprop=description content='题目链接\n1 题目大意 就是给定两个字符串，第一个字符串由\"+\",\"-“组成，第二个字符串由”+\",\"-\",\"?“组成，“+”代表加 1，”-“代表减一，“?“代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。'><meta itemprop=datePublished content=\"2018-08-10T17:44:47+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"978\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"组合数学,Codeforces,acm,数学,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/codeforces476b/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Dreamoon and WiFi（组合数学）\"><meta property=\"og:description\" content='题目链接\n1 题目大意 就是给定两个字符串，第一个字符串由\"+\",\"-“组成，第二个字符串由”+\",\"-\",\"?“组成，“+”代表加 1，”-“代表减一，“?“代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-10T17:44:47+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"组合数学\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Dreamoon and WiFi（组合数学）\"><meta name=twitter:description content='题目链接\n1 题目大意 就是给定两个字符串，第一个字符串由\"+\",\"-“组成，第二个字符串由”+\",\"-\",\"?“组成，“+”代表加 1，”-“代表减一，“?“代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/codeforces476b/ title=\"Dreamoon and WiFi（组合数学） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/euclid/ title=\"The equation-SGU106（扩展欧几里得）\"><link rel=next type=text/html href=https://lruihao.cn/posts/codeforces476a/ title=\"Dreamoon and Stairs\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/codeforces476b/index.md title=\"Dreamoon and WiFi（组合数学） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Dreamoon and WiFi（组合数学）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces476b\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"组合数学, Codeforces, ACM, 数学, C\\u002b\\u002b, C\",\"wordcount\":978,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces476b\\/\",\"datePublished\":\"2018-08-10T17:44:47+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/codeforces476b/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Dreamoon and WiFi（组合数学）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Dreamoon and WiFi（组合数学）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-10 17:44:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-10>2018-08-10</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"978 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Dreamoon and WiFi（组合数学）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目大意>题目大意</a></li><li><a href=#错误代码>错误代码</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><strong><a href=https://codeforces.com/contest/476/problem/B target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><h2 class=heading-element id=题目大意><span>1 题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>就是给定两个字符串，第一个字符串由\"+\",\"-&ldquo;组成，第二个字符串由&rdquo;+\",\"-\",\"?&ldquo;组成，“+”代表加 1，&rdquo;-&ldquo;代表减一，“?&ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。</p><p>我一开始的想法是把（+1，-1）^n 看成和二项式定理一样的展开始式，只不过把乘法改为加法，然后得到公式<br><code>c(n,0)(n+(-1)0)+c(n,1)(n-1+(-1)1)+c(n,i)(n-i+(-1)i)+...+c(n,n)(n-n+(-1)n)</code><br>化简一下可知通项为<code>c(n,i)(n-2*i)</code><br>然后我对第一个串求出位置 sum, 第二个串先求出已知位置 sum1，然后记录下？的个数，然后遍历找出展开式中某一项 n-2i+sum1==sum，这样 x 的系数就是可能出现位置相等的所有情况，用 (n-2i)/系数和就是概率了啊，可是为什么不对呢，本地调试，数据没问题，可是交到 cf 上第二组都过不了，烦亏我还觉得想到一个独辟的方法呢，过不了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>//cf 错误报告，思前恐后不晓得 why,wtf??? 先码着吧\n</span></span><span class=line><span class=cl>Test: <span class=c1>#2, time: 0 ms., memory: 0 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER</span>\n</span></span><span class=line><span class=cl>Input\n</span></span><span class=line><span class=cl>+-+-\n</span></span><span class=line><span class=cl>+-??\n</span></span><span class=line><span class=cl>Output\n</span></span><span class=line><span class=cl>-0.000000000000\n</span></span><span class=line><span class=cl>Answer\n</span></span><span class=line><span class=cl>0.500000000000\n</span></span><span class=line><span class=cl>Checker Log\n</span></span><span class=line><span class=cl>wrong answer 1st numbers differ - expected: <span class=s1>&#39;0.5000000&#39;</span>, found: <span class=s1>&#39;-0.0000000&#39;</span>, <span class=nv>error</span> <span class=o>=</span> <span class=s1>&#39;0.5000000&#39;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=错误代码><span>2 错误代码</span>\n<a href=#%e9%94%99%e8%af%af%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>cnt</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>c</span><span class=p>[</span><span class=mi>11</span><span class=p>][</span><span class=mi>11</span><span class=p>],</span><span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>sum1</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=mi>11</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span><span class=c1>//杨辉三角\n</span></span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>j</span> <span class=o>&lt;</span> <span class=n>i</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>=</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>+</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=o>-</span><span class=mi>1</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>string</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//cout&lt;&lt;a&lt;&lt;endl&lt;&lt;b&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>len</span><span class=o>=</span><span class=n>a</span><span class=p>.</span><span class=nf>length</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>len</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;+&#39;</span><span class=p>)</span> <span class=n>sum</span><span class=o>+=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>sum</span><span class=o>-=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>b</span><span class=p>.</span><span class=nf>length</span><span class=p>();</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;+&#39;</span><span class=p>)</span> <span class=n>sum1</span><span class=o>+=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;-&#39;</span><span class=p>)</span><span class=n>sum1</span><span class=o>-=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;?&#39;</span><span class=p>)</span> <span class=n>cnt</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>sum</span><span class=o>==</span><span class=n>sum1</span><span class=o>&amp;&amp;</span><span class=n>cnt</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;1.000000000000</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>flag</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>cnt</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span><span class=o>+=</span><span class=n>c</span><span class=p>[</span><span class=n>cnt</span><span class=p>][</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//cout&lt;&lt;x&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>cnt</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>cnt</span><span class=o>-</span><span class=mi>2</span><span class=o>*</span><span class=n>i</span><span class=o>+</span><span class=n>sum1</span><span class=o>==</span><span class=n>sum</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>flag</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=kt>long</span> <span class=kt>double</span> <span class=n>y</span><span class=o>=</span><span class=n>c</span><span class=p>[</span><span class=n>cnt</span><span class=p>][</span><span class=n>i</span><span class=p>]</span><span class=o>*</span><span class=mf>1.0</span><span class=o>/</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%.12llf</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span><span class=nf>printf</span><span class=p>(</span><span class=s>&#34;0.000000000000</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>想不通，没办法只好换思路。</p><p>我先分别记下 a,b 串的&rsquo;+&rsquo;,&rsquo;-&rsquo;,&rsquo;?&lsquo;个数，然后后我们很容易知道，如要 a,b 位置相等，则加号和减号的数目，两串要相等，且 a 中的加号要比 b 中已知的加号要多，减号也要比 b 中已知的要多，否则打死都不会相等的，仔细比划一下就知道了。然后有 z 个‘?’，相当于有 z 个坑，让我们去填使得 a,b 相等。只能填 + 或-，设加号差等于 x-p, 所以概率就等于 c(z,x-p)/2^z。</p><h2 class=heading-element id=ac-代码><span>3 AC 代码</span>\n<a href=#ac-%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=n>string</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span>  <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>z</span><span class=p>,</span><span class=n>p</span><span class=p>,</span><span class=n>q</span><span class=p>,</span><span class=n>c</span><span class=p>[</span><span class=mi>11</span><span class=p>][</span><span class=mi>11</span><span class=p>],</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=mi>11</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>j</span> <span class=o>&lt;</span> <span class=n>i</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>=</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>+</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=o>-</span><span class=mi>1</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span><span class=o>=</span><span class=n>y</span><span class=o>=</span><span class=n>z</span><span class=o>=</span><span class=n>p</span><span class=o>=</span><span class=n>q</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>a</span><span class=p>.</span><span class=nf>length</span><span class=p>();</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;+&#39;</span><span class=p>)</span> <span class=n>x</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>y</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>b</span><span class=p>.</span><span class=nf>length</span><span class=p>();</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;+&#39;</span><span class=p>)</span> <span class=n>p</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;-&#39;</span><span class=p>)</span> <span class=n>q</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>z</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=n>p</span><span class=o>&amp;&amp;</span><span class=n>z</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;1.000000000000</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>-</span><span class=n>p</span><span class=o>&lt;</span><span class=mi>0</span><span class=o>||</span><span class=n>y</span><span class=o>-</span><span class=n>q</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;0.000000000000</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span><span class=o>=</span><span class=n>x</span><span class=o>-</span><span class=n>p</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%0.12f&#34;</span><span class=p>,</span><span class=n>c</span><span class=p>[</span><span class=n>z</span><span class=p>][</span><span class=n>x</span><span class=p>]</span><span class=o>*</span><span class=mf>1.0</span><span class=o>/</span><span class=p>(</span><span class=mi>2</span><span class=o>&lt;&lt;</span><span class=p>(</span><span class=n>z</span><span class=o>-</span><span class=mi>1</span><span class=p>)));</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>几分钟写完后面的代码，心中一万头草泥马在奔腾。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/codeforces476b/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces476b.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/codeforces476b.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Dreamoon+and+WiFi%EF%BC%88%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cDreamoon+and+WiFi%EF%BC%88%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/codeforces476b/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces476b.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/codeforces476b/ data-title=\"Dreamoon and WiFi（组合数学）\" data-hashtags=组合数学,Codeforces,ACM,数学,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/codeforces476b/ data-hashtag=组合数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/codeforces476b/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/codeforces476b/ data-title=\"Dreamoon and WiFi（组合数学）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/codeforces476b/ data-title=\"Dreamoon and WiFi（组合数学）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 组合数学\">组合数学</a><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/euclid/ class=post-nav-item rel=prev title=\"The Equation-SGU106（扩展欧几里得）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a><a href=/posts/codeforces476a/ class=post-nav-item rel=next title=\"Dreamoon and Stairs\">Dreamoon and Stairs<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目大意>题目大意</a></li><li><a href=#错误代码>错误代码</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/bd37631ebcc69021fee8a3a115e9188c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/bd37631ebcc69021fee8a3a115e9188c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/codeforces476b/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/codeforces476b/index.md",
    "content": "# Dreamoon and WiFi（组合数学）\n\n\n**[题目链接](https://codeforces.com/contest/476/problem/B)**\n\n## 题目大意\n\n就是给定两个字符串，第一个字符串由\"+\",\"-\"组成，第二个字符串由\"+\",\"-\",\"?\"组成，“+”代表加 1，\"-\"代表减一，“?\"代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\n\n我一开始的想法是把（+1，-1）^n 看成和二项式定理一样的展开始式，只不过把乘法改为加法，然后得到公式  \n`c(n,0)(n+(-1)0)+c(n,1)(n-1+(-1)1)+c(n,i)(n-i+(-1)i)+...+c(n,n)(n-n+(-1)n)`  \n化简一下可知通项为`c(n,i)(n-2*i)`  \n然后我对第一个串求出位置 sum, 第二个串先求出已知位置 sum1，然后记录下？的个数，然后遍历找出展开式中某一项 n-2i+sum1==sum，这样 x 的系数就是可能出现位置相等的所有情况，用 (n-2i)/系数和就是概率了啊，可是为什么不对呢，本地调试，数据没问题，可是交到 cf 上第二组都过不了，烦亏我还觉得想到一个独辟的方法呢，过不了。\n\n```bash\n//cf 错误报告，思前恐后不晓得 why,wtf??? 先码着吧\nTest: #2, time: 0 ms., memory: 0 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER\nInput\n+-+-\n+-??\nOutput\n-0.000000000000\nAnswer\n0.500000000000\nChecker Log\nwrong answer 1st numbers differ - expected: '0.5000000', found: '-0.0000000', error = '0.5000000'\n```\n\n## 错误代码\n\n```c\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int i,j,cnt=0;\n    long long c[11][11],sum=0,sum1=0;\n    for(i = 0; i < 11; i++){//杨辉三角\n        c[i][0] = 1;\n        c[i][i] = 1;\n        for(j = 1; j < i; j++)\n            c[i][j] = c[i-1][j] + c[i-1][j-1];\n    }\n    string a,b;\n    cin>>a>>b;\n    //cout<<a<<endl<<b<<endl;\n    int len=a.length();\n    for(i=0;i<len;i++)\n        if(a[i]=='+') sum+=1;\n        else sum-=1;\n    for(i=0;i<b.length();i++){\n        if(b[i]=='+') sum1+=1;\n        else if(b[i]=='-')sum1-=1;\n        if(b[i]=='?') cnt++;\n    }\n    if(sum==sum1&&cnt==0){\n        printf(\"1.000000000000\\n\");\n        return 0;\n    }\n    int flag=0;\n    int x=0;\n    for(j=0;j<=cnt;j++)\n        x+=c[cnt][j];\n        //cout<<x<<endl;\n    for(i=0;i<=cnt;i++)\n        if(cnt-2*i+sum1==sum){\n            flag=1;\n            long double y=c[cnt][i]*1.0/x;\n            printf(\"%.12llf\\n\",y);\n        }\n    if(!flag)printf(\"0.000000000000\\n\");\n    return 0;\n}\n```\n\n想不通，没办法只好换思路。\n\n我先分别记下 a,b 串的'+','-','?'个数，然后后我们很容易知道，如要 a,b 位置相等，则加号和减号的数目，两串要相等，且 a 中的加号要比 b 中已知的加号要多，减号也要比 b 中已知的要多，否则打死都不会相等的，仔细比划一下就知道了。然后有 z 个‘?’，相当于有 z 个坑，让我们去填使得 a,b 相等。只能填 + 或-，设加号差等于 x-p, 所以概率就等于 c(z,x-p)/2^z。\n\n## AC 代码\n\n```c\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    string a,b;\n    int  x,y,z,p,q,c[11][11],i,j;\n    for(i = 0; i < 11; i++){\n        c[i][0] = 1;\n        c[i][i] = 1;\n        for(j = 1; j < i; j++)\n            c[i][j] = c[i-1][j] + c[i-1][j-1];\n    }\n\n    cin>>a;\n    cin>>b;\n    x=y=z=p=q=0;\n    for(i=0;i<a.length();i++)\n        if(a[i]=='+') x++;\n        else y++;\n    for(i=0;i<b.length();i++){\n        if(b[i]=='+') p++;\n        else if(b[i]=='-') q++;\n        else z++;\n    }\n    if(x==p&&z==0){\n        printf(\"1.000000000000\\n\");\n        return 0;\n    }\n    if(x-p<0||y-q<0) {\n        printf(\"0.000000000000\\n\");\n        return 0;\n    }\n    x=x-p;\n    printf(\"%0.12f\",c[z][x]*1.0/(2<<(z-1)));\n    return 0;\n}\n```\n\n几分钟写完后面的代码，心中一万头草泥马在奔腾。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/codeforces476b/  \n\n"
  },
  {
    "path": "posts/codeforces680a/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Bear and Five Cards-Codeforces680A | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接：Bear and Five Cards\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\n\"><meta name=keywords content='Codeforces,ACM,C++'><meta itemprop=name content=\"Bear and Five Cards-Codeforces680A\"><meta itemprop=description content=\"题目链接：Bear and Five Cards\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\"><meta itemprop=datePublished content=\"2018-07-31T19:22:36+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"162\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Codeforces,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/codeforces680a/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Bear and Five Cards-Codeforces680A\"><meta property=\"og:description\" content=\"题目链接：Bear and Five Cards\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T19:22:36+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Bear and Five Cards-Codeforces680A\"><meta name=twitter:description content=\"题目链接：Bear and Five Cards\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/codeforces680a/ title=\"Bear and Five Cards-Codeforces680A | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/how-tables/ title=\"how many tables-HDU-1213（并查集求连通域数目）\"><link rel=next type=text/html href=https://lruihao.cn/posts/codeforces680b/ title=\"Bear and Finding Criminals-Codeforces680B\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/codeforces680a/index.md title=\"Bear and Five Cards-Codeforces680A | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Bear and Five Cards-Codeforces680A\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces680a\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Codeforces, ACM, C\\u002b\\u002b\",\"wordcount\":162,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces680a\\/\",\"datePublished\":\"2018-07-31T19:22:36+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/codeforces680a/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Bear and Five Cards-Codeforces680A</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Bear and Five Cards-Codeforces680A</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 19:22:36\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"162 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Bear and Five Cards-Codeforces680A\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>题目链接：<a href=https://codeforces.com/problemset/problem/680/A target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Five Cards<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。</p><p>没有想得那么复杂，由于分数最大才 100，所以直接暴力就好了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=mi>5</span><span class=p>],</span><span class=n>b</span><span class=p>[</span><span class=mi>107</span><span class=p>],</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>sum1</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>5</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>sort</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=mi>5</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>b</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>5</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>b</span><span class=p>[</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]]</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>107</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>sum1</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=mi>2</span><span class=o>*</span><span class=n>i</span><span class=p>,</span><span class=n>sum1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&gt;=</span><span class=mi>3</span><span class=p>)</span> <span class=p>{</span><span class=n>sum1</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=mi>3</span><span class=o>*</span><span class=n>i</span><span class=p>,</span><span class=n>sum1</span><span class=p>);</span><span class=cm>/*cout&lt;&lt;3*i&lt;&lt;&#34; &#34;&lt;&lt;sum1&lt;&lt;endl;*/</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>sum</span><span class=o>-</span><span class=n>sum1</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/codeforces680a/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces680a.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/codeforces680a.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Bear+and+Five+Cards-Codeforces680A&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cBear+and+Five+Cards-Codeforces680A%7c%0A%7cURL%7chttps://lruihao.cn/posts/codeforces680a/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces680a.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/codeforces680a/ data-title=\"Bear and Five Cards-Codeforces680A\" data-hashtags=Codeforces,ACM,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/codeforces680a/ data-hashtag=Codeforces><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/codeforces680a/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/codeforces680a/ data-title=\"Bear and Five Cards-Codeforces680A\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/codeforces680a/ data-title=\"Bear and Five Cards-Codeforces680A\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/how-tables/ class=post-nav-item rel=prev title=\"How Many Tables-HDU-1213（并查集求连通域数目）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>How Many Tables-HDU-1213（并查集求连通域数目）</a><a href=/posts/codeforces680b/ class=post-nav-item rel=next title=\"Bear and Finding Criminals-Codeforces680B\">Bear and Finding Criminals-Codeforces680B<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c17747a3ee44a81b34f8a2dece22f076.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c17747a3ee44a81b34f8a2dece22f076.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/codeforces680a/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/codeforces680a/index.md",
    "content": "# Bear and Five Cards-Codeforces680A\n\n\n题目链接：[Bear and Five Cards](https://codeforces.com/problemset/problem/680/A)\n\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\n\n<!--more-->\n\n没有想得那么复杂，由于分数最大才 100，所以直接暴力就好了。\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int a[5],b[107],i,j,sum=0,sum1=0;\n    for(i=0;i<5;i++){\n        cin>>a[i];\n        sum+=a[i];\n    }\n    sort(a,a+5);\n    memset(b,0,sizeof(b));\n    for(i=0;i<5;i++)\n        b[a[i]]++;\n    for(i=0;i<107;i++){\n        if(b[i]==2)\n            sum1=max(2*i,sum1);\n        if(b[i]>=3) {sum1=max(3*i,sum1);/*cout<<3*i<<\" \"<<sum1<<endl;*/}\n    }\n    cout<<sum-sum1<<endl;\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/codeforces680a/  \n\n"
  },
  {
    "path": "posts/codeforces680b/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Bear and Finding Criminals-Codeforces680B | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接：Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况：\n警察所住城市有罪犯，则一定能检测到\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\n\"><meta name=keywords content='Codeforces,ACM,C++'><meta itemprop=name content=\"Bear and Finding Criminals-Codeforces680B\"><meta itemprop=description content=\"题目链接：Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况：\n警察所住城市有罪犯，则一定能检测到\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\"><meta itemprop=datePublished content=\"2018-07-31T19:32:21+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"322\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Codeforces,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/codeforces680b/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Bear and Finding Criminals-Codeforces680B\"><meta property=\"og:description\" content=\"题目链接：Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况：\n警察所住城市有罪犯，则一定能检测到\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T19:32:21+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Bear and Finding Criminals-Codeforces680B\"><meta name=twitter:description content=\"题目链接：Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况：\n警察所住城市有罪犯，则一定能检测到\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/codeforces680b/ title=\"Bear and Finding Criminals-Codeforces680B | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/codeforces680a/ title=\"Bear and Five Cards-Codeforces680A\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu3038/ title=\"How Many Answers Are Wrong-hdu3038（带权并查集）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/codeforces680b/index.md title=\"Bear and Finding Criminals-Codeforces680B | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Bear and Finding Criminals-Codeforces680B\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces680b\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Codeforces, ACM, C\\u002b\\u002b\",\"wordcount\":322,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/codeforces680b\\/\",\"datePublished\":\"2018-07-31T19:32:21+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/codeforces680b/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Bear and Finding Criminals-Codeforces680B</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Bear and Finding Criminals-Codeforces680B</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 19:32:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"322 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Bear and Finding Criminals-Codeforces680B\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>题目链接：<a href=https://codeforces.com/problemset/problem/680/B target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Finding Criminals<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里<strong>一定</strong>有罪犯。</p><p>一定能确定该城市有小偷的几种情况：</p><ol><li><p>警察所住城市有罪犯，则一定能检测到</p></li><li><p>警察所住城市的左边和右边位置若<strong>都</strong>不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）</p></li><li><p>警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯</p></li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>t</span><span class=p>[</span><span class=mi>107</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>n</span><span class=p>,</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>sum</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span><span class=mi>1</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>cin</span> <span class=o>&gt;&gt;</span> <span class=n>t</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=p>[</span><span class=n>a</span><span class=p>])</span> <span class=n>sum</span><span class=o>++</span><span class=p>;</span><span class=c1>//小熊所在城市有罪犯\n</span></span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=n>i</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>a</span><span class=o>+</span><span class=n>i</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=p>[</span><span class=n>a</span><span class=o>-</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>t</span><span class=p>[</span><span class=n>a</span><span class=o>+</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=n>sum</span><span class=o>+=</span><span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=n>i</span> <span class=o>&lt;=</span> <span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>a</span><span class=o>+</span><span class=n>i</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>){</span><span class=c1>//警察在第一个点\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=p>[</span><span class=n>a</span><span class=o>+</span><span class=n>i</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>          <span class=n>sum</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=n>i</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>a</span><span class=o>+</span><span class=n>i</span> <span class=o>&gt;</span> <span class=n>n</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=p>[</span><span class=n>a</span><span class=o>-</span><span class=n>i</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>          <span class=n>sum</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span> <span class=o>&lt;&lt;</span><span class=n>sum</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/codeforces680b/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces680b.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/codeforces680b.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Bear+and+Finding+Criminals-Codeforces680B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cBear+and+Finding+Criminals-Codeforces680B%7c%0A%7cURL%7chttps://lruihao.cn/posts/codeforces680b/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/codeforces680b.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/codeforces680b/ data-title=\"Bear and Finding Criminals-Codeforces680B\" data-hashtags=Codeforces,ACM,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/codeforces680b/ data-hashtag=Codeforces><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/codeforces680b/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/codeforces680b/ data-title=\"Bear and Finding Criminals-Codeforces680B\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/codeforces680b/ data-title=\"Bear and Finding Criminals-Codeforces680B\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/codeforces680a/ class=post-nav-item rel=prev title=\"Bear and Five Cards-Codeforces680A\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Bear and Five Cards-Codeforces680A</a><a href=/posts/hdu3038/ class=post-nav-item rel=next title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\">How Many Answers Are Wrong-Hdu3038（带权并查集）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/996fd5a4211944694571fca1aaa87105.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/996fd5a4211944694571fca1aaa87105.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/codeforces680b/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/codeforces680b/index.md",
    "content": "# Bear and Finding Criminals-Codeforces680B\n\n\n题目链接：[Bear and Finding Criminals](https://codeforces.com/problemset/problem/680/B)\n\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里**一定**有罪犯。\n\n一定能确定该城市有小偷的几种情况：\n\n1. 警察所住城市有罪犯，则一定能检测到\n\n2. 警察所住城市的左边和右边位置若**都**不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\n3. 警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\n\n<!--more-->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint t[107];\n\nint main()\n{\n  int n, a;\n  while(cin>>n>>a){\n    int sum = 0;\n    for(int i =1; i <= n; i++)\n      cin >> t[i];\n    if(t[a]) sum++;//小熊所在城市有罪犯\n    for(int i = 1; i <= n; i++){\n      if(a-i > 0&&a+i <= n) {\n        if(t[a-i] == 1&&t[a+i] == 1)\n          sum+=2;\n      }\n      else if(a-i <= 0&&a+i <= n){//警察在第一个点\n        if(t[a+i])\n          sum++;\n      }\n      else if(a-i > 0&&a+i > n){\n        if(t[a-i])\n          sum++;\n      }\n    }\n    cout <<sum<<endl;\n  }\n  return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/codeforces680b/  \n\n"
  },
  {
    "path": "posts/codereview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Code Review 怎麼做？新手工程師如何提升「程式碼品質」 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\n\"><meta name=keywords content='codereview'><meta itemprop=name content=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><meta itemprop=description content=\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\"><meta itemprop=datePublished content=\"2021-03-04T21:04:18+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"1500\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"codereview\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/codereview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><meta property=\"og:description\" content=\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-03-04T21:04:18+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"codereview\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><meta name=twitter:description content=\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/codereview/ title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本\"><link rel=next type=text/html href=https://lruihao.cn/projects/cell-watermark/ title=\"Cell Watermark\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/codereview/index.md title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/codereview\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"codereview\",\"wordcount\":1500,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/codereview\\/\",\"datePublished\":\"2021-03-04T21:04:18+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/codereview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-03-04 21:04:18\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-03-04>2021-03-04</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1500 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#程式碼的持續優化>程式碼的持續優化</a></li><li><a href=#code-review-的關注點>Code Review 的關注點</a></li><li><a href=#從架構的規劃到細節的優化>從架構的規劃到細節的優化</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=程式碼的持續優化><span>1 程式碼的持續優化</span>\n<a href=#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：</p><ol><li>程式執行效能更好</li><li>程式碼結構更精簡</li></ol><p>程式執行效能就是從速度跟空間來思考，執行時間越短、變數佔用空間越小。而程式碼結構則會從可讀性和精簡來衡量，例如：變數的命名有沒有意義、程式碼有沒有冗余、繁瑣的部分等等。只不過新手很容易停留在寫出程式的喜悅以及受到固有的解題思考，而忽略優化的過程。</p><p>透過「Code Review」是推薦新手的方法，經由反饋與討論來找出程式中可優化的空間。</p><h2 class=heading-element id=code-review-的關注點><span>2 Code Review 的關注點</span>\n<a href=#code-review-%e7%9a%84%e9%97%9c%e6%b3%a8%e9%bb%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以我自己的經驗來說，Review 一份專案的時候會關注：</p><ol><li>程式能不能正常操作，有没有什么明显的错误？（低標）</li><li>程式碼當中有沒有奇怪的地方？（優化）</li></ol><p>第一個關注點是程式碼的低標，結果正確與可正常運行一定是最重要的。如果程式無法運行動或存在很明顯的問題，那再多的優化都沒有意義。除了確保執行之外，同時也會檢查一下是否有低級的邏輯失誤或是安全性的疑慮，像是資料庫沒有正確關閉或密碼明碼沒有加密之類的問題。</p><p>第二個關注點是「程式碼品質提升」的部分，我會把它定義成程式運作上沒有問題，但看起來很不舒服或執行效率很差的部分。大致上可以從以下幾點下手：</p><ol><li>命名有沒有意義/不一致</li><li>資料庫的正規化情況</li><li>是否存在特別複雜的程式片段（例如多次的資料庫查詢、多層的迴圈使用）</li><li>重複的程式碼有沒有定義成 <code>function</code></li><li>冗長的程式碼能不能拆分成 <code>function</code></li></ol><p>不過一次的 Code Review 建議著重在 3 - 5 個優化地方，比較容易聚焦在優化的品質。根據時程的壓力，決定 Code Review 迭代的次數。</p><h2 class=heading-element id=從架構的規劃到細節的優化><span>3 從架構的規劃到細節的優化</span>\n<a href=#%e5%be%9e%e6%9e%b6%e6%a7%8b%e7%9a%84%e8%a6%8f%e5%8a%83%e5%88%b0%e7%b4%b0%e7%af%80%e7%9a%84%e5%84%aa%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在拿到一份程式碼時，通常會先掃過一眼程式的檔案結構，是否有不該上傳的檔案或缺漏。</p><p>以這個例子來說，第一眼會覺得檔案配置蠻結構化的。但再多看一點會發現存在幾個冗餘的檔案，例如：<code>-filesqqqq</code>、<code>diff</code>，甚至 <code>/icon</code> 資料夾也不該放在最上層。</p><p>進入程式的第一步先從 <code>package.json</code> 檔案開始，確認一下專案的基本資訊是否完整、使用到的套件與版本，以及程式的進入點是什麼。然後打開進入點的檔案（通常會命名成 <code>app</code> 或 <code>main</code>），通常有幾個點需要注意：「套件的載入順序」會建議從第三方套件 → 自定義的模組 → 程式內的變數這樣順序定義；「善用 MVC 的架構」將非主程式的部分依照功能拆分模組，避免檔案資訊量太雜亂。接著就會從 <code>Router</code> → <code>Controller</code> → <code>Service</code> → <code>View</code> 的流程一個一個功能，以下分享一些存在優化空間的程式碼：</p><ol><li>善用工具，已有的工具，不用自己手刻</li><li>變數名稱不建議用大寫開頭（通常是用在 Class 的命名）</li><li>保持優化的空間與彈性</li></ol><p>「優化其實是一種取捨」，不需要也不應該追求一步到位。開發往往都是在品質跟產出做取捨，初期可以把開發目標放在「先求可以動，再求持續優化」的節奏上。新手需要在意的點有幾下兩點：</p><ol><li>很容易把重點全部放在程式碼的產出上而忽略的程式碼的品質。</li><li>停留在做出成果的喜悅，而停滯了優化的步調。</li></ol><p>因此，會建議在開發當下就「多想」兩秒鐘，感覺可優化但來不及的部分先在旁邊加個註解提醒自己。另外也養成一段時間回頭看之前的程式碼的習慣，試著刻意找出可以優化改進的部分。專案的提交可能會有期限，但程式碼的優化沒有盡頭。面對相同的專案與程式碼，唯有透過不停的迭代優化才能打造更好的程式，同時也見證了你和程式一起變得更好的過程。所以建立逐步優化的空間，養成持續提升程式碼品質的習慣，才是一個新手工程師需要修煉的心法。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/codereview/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/codereview.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/codereview.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Code+Review+%E6%80%8E%E9%BA%BC%E5%81%9A%EF%BC%9F%E6%96%B0%E6%89%8B%E5%B7%A5%E7%A8%8B%E5%B8%AB%E5%A6%82%E4%BD%95%E6%8F%90%E5%8D%87%E3%80%8C%E7%A8%8B%E5%BC%8F%E7%A2%BC%E5%93%81%E8%B3%AA%E3%80%8D&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCode+Review+%E6%80%8E%E9%BA%BC%E5%81%9A%EF%BC%9F%E6%96%B0%E6%89%8B%E5%B7%A5%E7%A8%8B%E5%B8%AB%E5%A6%82%E4%BD%95%E6%8F%90%E5%8D%87%E3%80%8C%E7%A8%8B%E5%BC%8F%E7%A2%BC%E5%93%81%E8%B3%AA%E3%80%8D%7c%0A%7cURL%7chttps://lruihao.cn/posts/codereview/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/codereview.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/codereview/ data-title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\" data-hashtags=codereview><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/codereview/ data-hashtag=codereview><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/codereview/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/codereview/ data-title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/codereview/ data-title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/codereview/ class=post-tag title=\"标签 - codereview\">codereview</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/bill-note/ class=post-nav-item rel=prev title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>基于 Leancloud-Storage 实现的无后端记账本</a><a href=/projects/cell-watermark/ class=post-nav-item rel=next title=\"Cell Watermark\">Cell Watermark<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#程式碼的持續優化>程式碼的持續優化</a></li><li><a href=#code-review-的關注點>Code Review 的關注點</a></li><li><a href=#從架構的規劃到細節的優化>從架構的規劃到細節的優化</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7df4a721a60c5380b21ea35def918bf4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7df4a721a60c5380b21ea35def918bf4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/codereview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/codereview/index.md",
    "content": "# Code Review 怎麼做？新手工程師如何提升「程式碼品質」\n\n\n## 程式碼的持續優化\n\n對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\n\n1. 程式執行效能更好\n2. 程式碼結構更精簡\n\n程式執行效能就是從速度跟空間來思考，執行時間越短、變數佔用空間越小。而程式碼結構則會從可讀性和精簡來衡量，例如：變數的命名有沒有意義、程式碼有沒有冗余、繁瑣的部分等等。只不過新手很容易停留在寫出程式的喜悅以及受到固有的解題思考，而忽略優化的過程。\n\n透過「Code Review」是推薦新手的方法，經由反饋與討論來找出程式中可優化的空間。\n\n## Code Review 的關注點\n\n以我自己的經驗來說，Review 一份專案的時候會關注：\n\n1. 程式能不能正常操作，有没有什么明显的错误？（低標）\n2. 程式碼當中有沒有奇怪的地方？（優化）\n\n第一個關注點是程式碼的低標，結果正確與可正常運行一定是最重要的。如果程式無法運行動或存在很明顯的問題，那再多的優化都沒有意義。除了確保執行之外，同時也會檢查一下是否有低級的邏輯失誤或是安全性的疑慮，像是資料庫沒有正確關閉或密碼明碼沒有加密之類的問題。\n\n第二個關注點是「程式碼品質提升」的部分，我會把它定義成程式運作上沒有問題，但看起來很不舒服或執行效率很差的部分。大致上可以從以下幾點下手：\n\n1. 命名有沒有意義/不一致\n2. 資料庫的正規化情況\n3. 是否存在特別複雜的程式片段（例如多次的資料庫查詢、多層的迴圈使用）\n4. 重複的程式碼有沒有定義成 `function`\n5. 冗長的程式碼能不能拆分成 `function`\n\n不過一次的 Code Review 建議著重在 3 - 5 個優化地方，比較容易聚焦在優化的品質。根據時程的壓力，決定 Code Review 迭代的次數。\n\n## 從架構的規劃到細節的優化\n\n在拿到一份程式碼時，通常會先掃過一眼程式的檔案結構，是否有不該上傳的檔案或缺漏。\n\n以這個例子來說，第一眼會覺得檔案配置蠻結構化的。但再多看一點會發現存在幾個冗餘的檔案，例如：`-filesqqqq`、`diff`，甚至 `/icon` 資料夾也不該放在最上層。\n\n進入程式的第一步先從 `package.json` 檔案開始，確認一下專案的基本資訊是否完整、使用到的套件與版本，以及程式的進入點是什麼。然後打開進入點的檔案（通常會命名成 `app` 或 `main`），通常有幾個點需要注意：「套件的載入順序」會建議從第三方套件 → 自定義的模組 → 程式內的變數這樣順序定義；「善用 MVC 的架構」將非主程式的部分依照功能拆分模組，避免檔案資訊量太雜亂。接著就會從 `Router` → `Controller` → `Service` → `View` 的流程一個一個功能，以下分享一些存在優化空間的程式碼：\n\n1. 善用工具，已有的工具，不用自己手刻\n2. 變數名稱不建議用大寫開頭（通常是用在 Class 的命名）\n3. 保持優化的空間與彈性\n\n「優化其實是一種取捨」，不需要也不應該追求一步到位。開發往往都是在品質跟產出做取捨，初期可以把開發目標放在「先求可以動，再求持續優化」的節奏上。新手需要在意的點有幾下兩點：\n\n1. 很容易把重點全部放在程式碼的產出上而忽略的程式碼的品質。\n2. 停留在做出成果的喜悅，而停滯了優化的步調。\n\n因此，會建議在開發當下就「多想」兩秒鐘，感覺可優化但來不及的部分先在旁邊加個註解提醒自己。另外也養成一段時間回頭看之前的程式碼的習慣，試著刻意找出可以優化改進的部分。專案的提交可能會有期限，但程式碼的優化沒有盡頭。面對相同的專案與程式碼，唯有透過不停的迭代優化才能打造更好的程式，同時也見證了你和程式一起變得更好的過程。所以建立逐步優化的空間，養成持續提升程式碼品質的習慣，才是一個新手工程師需要修煉的心法。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/codereview/  \n\n"
  },
  {
    "path": "posts/cognitive-complexity/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>认知复杂度（Cognitive Complexity） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n1.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"认知复杂度（Cognitive Complexity）\"><meta itemprop=description content=\"1 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n1.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\"><meta itemprop=datePublished content=\"2023-10-08T09:52:44+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"5604\"><meta itemprop=image content=\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\"><meta itemprop=keywords content=\"程序猿的自我修养,翻译\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cognitive-complexity/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"认知复杂度（Cognitive Complexity）\"><meta property=\"og:description\" content=\"1 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n1.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-08T09:52:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\"><meta name=twitter:title content=\"认知复杂度（Cognitive Complexity）\"><meta name=twitter:description content=\"1 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n1.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cognitive-complexity/ title=\"认知复杂度（Cognitive Complexity） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/article-structure/ title=写作技巧：如何搭建文章的框架结构？><link rel=next type=text/html href=https://lruihao.cn/posts/markdownlint/ title=\"给你的 Markdown 挑挑刺\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cognitive-complexity/index.md title=\"认知复杂度（Cognitive Complexity） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"认知复杂度（Cognitive Complexity）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cognitive-complexity\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cognitive-complexity\\/images\\/featured-image.png\",\"width\":1940,\"height\":1298}],\"genre\":\"posts\",\"wordcount\":5604,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cognitive-complexity\\/\",\"datePublished\":\"2023-10-08T09:52:44+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cognitive-complexity/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>认知复杂度（Cognitive Complexity）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>认知复杂度（Cognitive Complexity）</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">一种衡量可理解性的新方式</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E7%BF%BB%E8%AF%91/ class=post-category title=\"分类 - 翻译\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 翻译</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-08 09:52:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-08>2023-10-08</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"5604 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 5700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 12 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"认知复杂度（Cognitive Complexity）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/cognitive-complexity/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/cognitive-complexity/images/featured-image.png height=1298 width=1940></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#摘要>摘要</a><ol><li><a href=#术语说明>术语说明</a></li></ol></li><li><a href=#引言>引言</a></li><li><a href=#问题示例>问题示例</a></li><li><a href=#基本准则和方法>基本准则和方法</a></li><li><a href=#忽略简写>忽略简写</a></li><li><a href=#中断线性流程>中断线性流程</a><ol><li><a href=#捕获catches>捕获（Catches）</a></li><li><a href=#开关switches>开关（Switches）</a></li><li><a href=#逻辑运算符序列sequences-of-logical-operators>逻辑运算符序列（Sequences of logical operators）</a></li><li><a href=#递归recursion>递归（Recursion）</a></li><li><a href=#跳转到标签jumps-to-labels>跳转到标签（Jumps to labels）</a></li></ol></li><li><a href=#嵌套流程中的增量>嵌套流程中的增量</a></li><li><a href=#影响>影响</a><ol><li><a href=#直观地正确的复杂性分数>直观地“正确”的复杂性分数</a></li><li><a href=#高于方法级别的有价值的指标>高于方法级别的有价值的指标</a></li></ol></li><li><a href=#结论>结论</a></li><li><a href=#参考文献>参考文献</a></li><li><a href=#附录-a补偿用法>附录 A：补偿用法</a><ol><li><a href=#cobol-missing-else-if>COBOL: Missing <code>else if</code></a></li><li><a href=#javascript-missing-class-structures>JavaScript: Missing class structures</a></li><li><a href=#python-decorators>Python: Decorators</a></li></ol></li><li><a href=#附录-b规范>附录 B：规范</a><ol><li><a href=#b1-增量increments>B1. 增量（Increments）</a></li><li><a href=#b2-嵌套级别nesting-level>B2. 嵌套级别（Nesting level）</a></li><li><a href=#b3-嵌套增量nesting-increments>B3. 嵌套增量（Nesting increments）</a></li></ol></li><li><a href=#附录-c示例>附录 C：示例</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=摘要><span>1 摘要</span>\n<a href=#%e6%91%98%e8%a6%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。</p><h3 class=heading-element id=术语说明><span>1.1 术语说明</span>\n<a href=#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。</p><hr><h2 class=heading-element id=引言><span>2 引言</span>\n<a href=#%e5%bc%95%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>循环复杂度（Cyclomatic Complexity）是一种用于衡量代码中控制流的度量标准，它最初是由 Thomas J. McCabe 在 1976 年提出的。<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup> 该度量标准的目的是衡量代码的“可测试性和可维护性”。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。</p><p>与此同时，循环复杂度已经不再全面。它于 1976 年在 Fortran 环境中制定，不包括像 <code>try/catch</code> 和 <code>lambda</code> 这样的现代语言结构。</p><p>最后，由于每个方法的最小循环复杂度分数为 1，我们无法知道具有高聚合循环复杂度的任何给定类是一个大型、易于维护的域类，还是一个具有复杂控制流的小型类。除了类级别之外，广泛认可的观点是应用程序的循环复杂度得分与其代码行数总和相关。换句话说，循环复杂度在方法级别以上几乎没有用处。</p><p>为了解决这些问题，认知复杂度（Cognitive Complexity）已经被制定出来，以解决现代语言结构的问题，并产生在类和应用程序级别上有意义的值。更重要的是，它摒弃了基于数学模型评估代码的做法，以便能够提供与程序员对理解流程所需的心智或认知努力的直觉相符的控制流评估。</p><h2 class=heading-element id=问题示例><span>3 问题示例</span>\n<a href=#%e9%97%ae%e9%a2%98%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>从一个示例开始讨论认知复杂度可以帮助理解它的应用对象。下面的两个方法具有相同的循环复杂度，但在可理解性方面却存在明显的差异。</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696818696.png title=\"An illustration of the problem\" data-thumbnail=/posts/cognitive-complexity/images/23_1696818696.png data-sub-html=\"<h2>An illustration of the problem</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696818696.png alt=\"An illustration of the problem\" height=428 width=1476></a></p><p>循环复杂度的数学模型给予这两个方法相同的权重，然而直观上很明显，sumOfPrimes 方法的控制流比 getWords 方法更难理解。这就是为什么认知复杂度放弃了使用数学模型评估控制流的做法，而采用了一组简单的规则，将程序员的直觉转化为数字。</p><h2 class=heading-element id=基本准则和方法><span>4 基本准则和方法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e5%87%86%e5%88%99%e5%92%8c%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>根据三个基本规则来评估认知复杂度得分：</p><ol><li>忽略允许多个语句可读性缩写成一个的结构</li><li>每次中断代码的线性流程时增加一个（加一）</li><li>嵌套时进行增量计算</li></ol><dl><dt>此外，复杂度得分由四种不同类型的增量组成：</dt><dd>A. 嵌套（Nesting）— 对嵌套控制流结构进行评估</dd><dd>B. 结构（Structural）— 对受嵌套增量影响并增加嵌套计数的控制流结构进行评估</dd><dd>C. 基础（Fundamental）— 对不受嵌套增量影响的语句进行评估</dd><dd>D. 混合（Hybrid）— 对不受嵌套增量影响的控制流结构进行评估</dd></dl><p>虽然在数学上，增量的类型没有影响，每个增量都会将最终得分增加一点，但对被计数的特征类别进行区分可以更容易地理解嵌套增量适用和不适用的地方。</p><p>这些规则及其背后的原则在以下章节中进一步详细介绍。</p><h2 class=heading-element id=忽略简写><span>5 忽略简写</span>\n<a href=#%e5%bf%bd%e7%95%a5%e7%ae%80%e5%86%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在制定认知复杂度的过程中，一个指导原则是它应该激励良好的编码实践。也就是说，它应该忽略或减少使代码更易读的特性。</p><p>方法的结构本身就是一个很好的例子。将代码分解为方法可以将多个语句压缩为一个具有描述性名称的调用，即“简写（shorthand）”。因此，认知复杂度不会针对方法进行增量计算。</p><p>认知复杂度还忽略许多编程语言中常见的空合并运算符，因为它们允许将多行代码缩减为一行。例如，下面两个代码示例执行相同的操作：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696826535.png title=\"ignore shorthand\" data-thumbnail=/posts/cognitive-complexity/images/23_1696826535.png data-sub-html=\"<h2>ignore shorthand</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696826535.png alt=\"ignore shorthand\" height=176 width=1084></a></p><p>左侧版本的含义需要一些时间来理解，而一旦理解了空合并语法，右侧版本就立即清晰明了。因此，认知复杂度忽略了空合并运算符。</p><h2 class=heading-element id=中断线性流程><span>6 中断线性流程</span>\n<a href=#%e4%b8%ad%e6%96%ad%e7%ba%bf%e6%80%a7%e6%b5%81%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在制定认知复杂度的过程中，另一个指导原则是打破代码从上到下、从左到右的正常线性流程的结构会使维护者在理解代码时需要付出更多的努力。为了认可这种额外的努力，认知复杂度对以下结构进行结构增量评估：</p><ul><li>循环结构：<code>for</code>、<code>while</code>、<code>do while</code>、&mldr;</li><li>条件判断：三元运算符、<code>if</code>、<code>#if</code>、<code>#ifdef</code>、&mldr;</li></ul><p>它对混合增量进行评估：</p><ul><li><code>else if</code>、<code>elif</code>、<code>else</code>、&mldr;</li></ul><p>对于这些结构，不会评估嵌套增量，因为在阅读条件语句时已经承担了心理成本。</p><p>这些增量目标对于那些习惯于圈复杂度的人来说可能会很熟悉。此外，认知复杂度还会增加以下方面的复杂度：</p><h3 class=heading-element id=捕获catches><span>6.1 捕获（Catches）</span>\n<a href=#%e6%8d%95%e8%8e%b7catches class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>catch</code> 语句与 <code>if</code> 语句一样，代表了控制流程中的一种分支。因此，每个 <code>catch</code> 子句都会对认知复杂度进行结构增量评估。请注意，无论捕获了多少种异常类型，每个 <code>catch</code> 子句只会给认知复杂度得分增加一个点。<code>try</code> 和 <code>finally</code> 块则完全被忽略。</p><h3 class=heading-element id=开关switches><span>6.2 开关（Switches）</span>\n<a href=#%e5%bc%80%e5%85%b3switches class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>一个 <code>switch</code> 语句及其所有的 <code>case</code> 合并会导致一个单独的结构增量。</p><p>在圈复杂度中，<code>switch</code> 语句被视为类似于 <code>if-else</code> <code>if</code> 链的模拟。也就是说，<code>switch</code> 语句中的每个 <code>case</code> 都会导致增量，因为它在控制流的数学模型中引起了一个分支。</p><p>但是从维护者的角度来看，一个 <code>switch</code> 语句，它将一个变量与一组明确命名的字面值进行比较，比一个 <code>if-else</code> <code>if</code> 链容易理解得多，因为后者可能进行任意数量的比较，使用任意数量的变量和值。</p><p>简而言之，必须仔细阅读 <code>if-else</code> <code>if</code> 链，而 <code>switch</code> 语句通常可以一目了然地理解。</p><h3 class=heading-element id=逻辑运算符序列sequences-of-logical-operators><span>6.3 逻辑运算符序列（Sequences of logical operators）</span>\n<a href=#%e9%80%bb%e8%be%91%e8%bf%90%e7%ae%97%e7%ac%a6%e5%ba%8f%e5%88%97sequences-of-logical-operators class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>出于类似的原因，认知复杂度不会对每个二进制逻辑运算符进行增量计算。相反，它对每个二进制逻辑运算符序列进行基本增量评估。例如，考虑以下几对示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>a</span> <span class=o>&amp;&amp;</span> <span class=nx>b</span>\n</span></span><span class=line><span class=cl><span class=nx>a</span> <span class=o>&amp;&amp;</span> <span class=nx>b</span> <span class=o>&amp;&amp;</span> <span class=nx>c</span> <span class=o>&amp;&amp;</span> <span class=nx>d</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>a</span> <span class=o>||</span> <span class=nx>b</span>\n</span></span><span class=line><span class=cl><span class=nx>a</span> <span class=o>||</span> <span class=nx>b</span> <span class=o>||</span> <span class=nx>c</span> <span class=o>||</span> <span class=nx>d</span></span></span></code></pre></td></tr></table></div></div></div><p>理解每对示例中的第二行并不比理解第一行困难太多。然而，对于理解下面两行的努力确实存在明显的差异：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>a</span> <span class=o>&amp;&amp;</span> <span class=nx>b</span> <span class=o>&amp;&amp;</span> <span class=nx>c</span> <span class=o>&amp;&amp;</span> <span class=nx>d</span>\n</span></span><span class=line><span class=cl><span class=nx>a</span> <span class=o>||</span> <span class=nx>b</span> <span class=o>&amp;&amp;</span> <span class=nx>c</span> <span class=o>||</span> <span class=nx>d</span></span></span></code></pre></td></tr></table></div></div></div><p>因为混合运算符的布尔表达式变得更难理解，所以认知复杂度会对每个新的相同运算符序列进行增量计算。例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>a</span>                   <span class=c1>// +1 for `if`\n</span></span></span><span class=line><span class=cl>  <span class=o>&amp;&amp;</span> <span class=nx>b</span> <span class=o>&amp;&amp;</span> <span class=nx>c</span>             <span class=c1>// +1\n</span></span></span><span class=line><span class=cl>  <span class=o>||</span> <span class=nx>d</span> <span class=o>||</span> <span class=nx>e</span>             <span class=c1>// +1\n</span></span></span><span class=line><span class=cl>  <span class=o>&amp;&amp;</span> <span class=nx>f</span><span class=p>)</span>                 <span class=c1>// +1\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>a</span>                   <span class=c1>// +1 for `if`\n</span></span></span><span class=line><span class=cl>  <span class=o>&amp;&amp;</span>                    <span class=c1>// +1\n</span></span></span><span class=line><span class=cl>  <span class=o>!</span><span class=p>(</span><span class=nx>b</span> <span class=o>&amp;&amp;</span> <span class=nx>c</span><span class=p>))</span>            <span class=c1>// +1\n</span></span></span></code></pre></td></tr></table></div></div></div><p>虽然相对于圈复杂度，认知复杂度对相同的运算符提供了一种“折扣”，但它会对所有的二元布尔运算符序列进行增量计算，例如变量赋值、方法调用和返回语句中的序列。</p><h3 class=heading-element id=递归recursion><span>6.4 递归（Recursion）</span>\n<a href=#%e9%80%92%e5%bd%92recursion class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>与圈复杂度不同，认知复杂度对递归循环中的每个方法（无论是直接递归还是间接递归）都会增加一个基本增量。</p><p>这个决定有两个动机。首先，递归代表了一种“元循环（meta-loop）”，而认知复杂度对循环进行增量计算。其次，认知复杂度旨在估计理解方法控制流的相对难度，即使对一些经验丰富的程序员来说，递归也很难理解。</p><h3 class=heading-element id=跳转到标签jumps-to-labels><span>6.5 跳转到标签（Jumps to labels）</span>\n<a href=#%e8%b7%b3%e8%bd%ac%e5%88%b0%e6%a0%87%e7%ad%bejumps-to-labels class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用 <code>goto</code> 语句会给认知复杂度增加一个基本增量，同样的，使用带有标签的 <code>break</code> 或 <code>continue</code> 语句以及其他多级跳转（如某些语言中的带有数字的 <code>break</code> 或 <code>continue</code> 语句）也会增加增量。但是，因为提前返回通常可以使代码更清晰，其他跳转或提前退出不会增加增量。</p><h2 class=heading-element id=嵌套流程中的增量><span>7 嵌套流程中的增量</span>\n<a href=#%e5%b5%8c%e5%a5%97%e6%b5%81%e7%a8%8b%e4%b8%ad%e7%9a%84%e5%a2%9e%e9%87%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>直观上很明显，一系列线性的五个 <code>if</code> 和 <code>for</code> 结构比相同的五个结构连续嵌套更容易理解，而不管每个系列中的执行路径数量如何。因为这样的嵌套增加了理解代码的心理需求，认知复杂度对其进行了嵌套增量的评估。</p><p>具体来说，每当一个导致结构增量或混合增量的结构嵌套在另一个这样的结构内部时，每个嵌套级别都会增加一个嵌套增量。例如，在下面的示例中，对于方法本身或 <code>try</code> 语句，都没有嵌套增量，因为这两个结构都不会导致结构增量或混合增量：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696904025.png title=\"Illustration 1 of “Increment for nested flow-break structures”\" data-thumbnail=/posts/cognitive-complexity/images/23_1696904025.png data-sub-html=\"<h2>Illustration 1 of “Increment for nested flow-break structures”</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696904025.png alt=\"Illustration 1 of “Increment for nested flow-break structures”\" height=456 width=1366></a></p><p>然而，<code>if</code>、<code>for</code>、<code>while</code>和<code>catch</code>结构都会受到结构增量和嵌套增量的影响。\n此外，顶层方法会被忽略，并且 <code>lambda</code> 表达式、嵌套方法和类似特性不会导致结构增量，但当这些方法嵌套在其他类似方法的结构内部时，会增加嵌套级别：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696904298.png title=\"Illustration 2 of “Increment for nested flow-break structures”\" data-thumbnail=/posts/cognitive-complexity/images/23_1696904298.png data-sub-html=\"<h2>Illustration 2 of “Increment for nested flow-break structures”</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696904298.png alt=\"Illustration 2 of “Increment for nested flow-break structures”\" height=594 width=1368></a></p><h2 class=heading-element id=影响><span>8 影响</span>\n<a href=#%e5%bd%b1%e5%93%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>认知复杂度的主要目标是计算方法分数，以更准确地反映方法的相对可理解性，并且其次目标是处理现代语言结构并生成在方法级别以上有价值的度量标准。可以证明，处理现代语言结构的目标已经实现。下面将对另外两个目标进行详细讨论。</p><h3 class=heading-element id=直观地正确的复杂性分数><span>8.1 直观地“正确”的复杂性分数</span>\n<a href=#%e7%9b%b4%e8%a7%82%e5%9c%b0%e6%ad%a3%e7%a1%ae%e7%9a%84%e5%a4%8d%e6%9d%82%e6%80%a7%e5%88%86%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>这次讨论始于一对具有相等圈复杂度但明显不同可理解性的方法。现在是重新审视这些方法并计算它们的认知复杂度分数的时候了。</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696904888.png title=\"Intuitively ‘right’ complexity scores\" data-thumbnail=/posts/cognitive-complexity/images/23_1696904888.png data-sub-html=\"<h2>Intuitively ‘right’ complexity scores</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696904888.png alt=\"Intuitively ‘right’ complexity scores\" height=534 width=1734></a></p><p>认知复杂度算法给出了这两个方法明显不同的分数，这些分数更能反映它们相对可理解性的差异。</p><h3 class=heading-element id=高于方法级别的有价值的指标><span>8.2 高于方法级别的有价值的指标</span>\n<a href=#%e9%ab%98%e4%ba%8e%e6%96%b9%e6%b3%95%e7%ba%a7%e5%88%ab%e7%9a%84%e6%9c%89%e4%bb%b7%e5%80%bc%e7%9a%84%e6%8c%87%e6%a0%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>此外，由于认知复杂度不会针对方法结构增加增量，聚合的数值变得有用起来。现在，通过比较它们的度量值，你可以轻松区分一个包含大量简单的 <code>getter</code> 和 <code>setter</code> 的领域类和一个包含复杂控制流的类。因此，认知复杂度成为衡量类和应用程序相对可理解性的工具。</p><h2 class=heading-element id=结论><span>9 结论</span>\n<a href=#%e7%bb%93%e8%ae%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>编写和维护代码是人类过程，它们的输出必须符合数学模型，但它们本身并不适合数学模型。这就是为什么数学模型不足以评估它们所需努力的原因。</p><p>认知复杂度打破了使用数学模型评估软件可维护性的做法。它起源于圈复杂度所设定的先例，但使用人类判断来评估应该如何计算结构，并决定整体模型应该加入什么内容。结果，它产生了方法复杂度分数，相对于以前的模型，程序员认为这些分数更公平地评估了可理解性。</p><p>此外，因为认知复杂度对于一个方法没有“进入成本”的要求，它不仅在方法级别产生了这些更公平的相对评估，还在类和应用程序级别上产生了相应的评估。</p><h2 class=heading-element id=参考文献><span>10 参考文献</span>\n<a href=#%e5%8f%82%e8%80%83%e6%96%87%e7%8c%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本文翻译自 G. Ann Campbell 的文章“{Cognitive Complexity} a new way of measuring understandability”<sup id=fnref:2><a href=#fn:2 class=footnote-ref role=doc-noteref>2</a></sup>，原文发表于 2023 年 8 月 29 日，版本号为 1.7。</p><h2 class=heading-element id=附录-a补偿用法><span>11 附录 A：补偿用法</span>\n<a href=#%e9%99%84%e5%bd%95-a%e8%a1%a5%e5%81%bf%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>认知复杂度被设计为一种与语言无关的度量标准，但不可忽视的是不同的编程语言提供了不同的特性。例如，COBOL 中没有 <code>else if</code> 结构，而 JavaScript 直到最近也缺乏类似的结构。不幸的是，这些缺陷并不能阻止开发人员需要这些结构或者试图用手头的工具构建类似的结构。在这种情况下，严格遵守认知复杂度规则会导致不成比例的高分。</p><p>因此，为了不惩罚一种语言相对于另一种语言的使用，对于语言的缺陷，即在考虑的语言中普遍使用并且在大多数现代语言中都是期望的结构，但在该语言中缺失的结构（例如 COBOL 缺少的 <code>else if</code>），可以进行例外处理。</p><p>另一方面，当一种语言创新引入一个特性时，例如 Java 7 可以一次捕获多个异常类型，其他语言中缺乏这种创新不应被视为缺陷，因此不应有例外。</p><p>这意味着如果一次捕获多个异常类型成为一种常见预期的语言特性，那么对于不提供该功能的语言中的“额外”<code>catch</code> 子句可能会添加例外。这种可能性并没有排除，但对于是否添加这样的未来例外的评估应该以保守为原则。换句话说，新的例外应该慢慢引入。</p><p>另一方面，如果 COBOL 标准的未来版本添加了\"else if\"结构，应尽快放弃 COBOL 的\"else &mldr; if\"例外（如下所述）。</p><p>到目前为止，已经确定了三个例外情况：</p><h3 class=heading-element id=cobol-missing-else-if><span>11.1 COBOL: Missing <code>else if</code></span>\n<a href=#cobol-missing-else-if class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>对于缺乏 <code>else if</code> 结构的 COBOL 语言，一个 <code>else</code> 子句中如果只包含一个 <code>if</code> 语句，则不会增加嵌套惩罚。此外，<code>else</code> 本身不会增加复杂度。也就是说，如果 <code>else</code> 后面紧跟着 <code>if</code> 语句，尽管从语法上讲它并不是 <code>else if</code>，但在计算复杂度时会视作 <code>else if</code>。</p><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cobol\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-COBOL data-lang=COBOL><span class=line><span class=cl><span class=c>IF con</span><span class=nv>dition1</span>        <span class=o>//</span> <span class=o>+</span><span class=mi>1 </span><span class=nv>structure</span><span class=p>,</span> <span class=o>+</span><span class=mi>0 </span><span class=kp>for</span> <span class=nv>nesting</span><span class=err>\n</span></span></span><span class=line><span class=cl>  <span class=p>...</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=kr>ELSE\n</span></span></span><span class=line><span class=cl><span class=kr> </span> <span class=kr>IF</span> <span class=nv>condition2</span>      <span class=o>//</span> <span class=o>+</span><span class=mi>1 </span><span class=nv>structure</span><span class=p>,</span> <span class=o>+</span><span class=mi>0 </span><span class=kp>for</span> <span class=nv>nesting</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>    ..</span><span class=p>.</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>  ELSE</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>    IF</span> <span class=nv>condition3</span>    <span class=o>//</span> <span class=o>+</span><span class=mi>1 </span><span class=nv>structure</span><span class=p>,</span> <span class=o>+</span><span class=mi>0 </span><span class=kp>for</span> <span class=nv>nesting</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>      </span><span class=nv>statement1</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>      </span><span class=kr>IF</span> <span class=nv>condition4</span>  <span class=o>//</span> <span class=o>+</span><span class=mi>1 </span><span class=nv>structure</span><span class=p>,</span> <span class=o>+</span><span class=mi>1 </span><span class=kp>for</span> <span class=nv>nesting</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>      </span>  <span class=p>...</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>      </span><span class=kr>END-IF\n</span></span></span><span class=line><span class=cl><span class=kr>   </span> <span class=kr>END-IF\n</span></span></span><span class=line><span class=cl><span class=kr> </span> <span class=nv>ENDIF</span><span class=err>\n</span></span></span><span class=line><span class=cl><span class=c>ENDIF.</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=javascript-missing-class-structures><span>11.2 JavaScript: Missing class structures</span>\n<a href=#javascript-missing-class-structures class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>尽管 ECMAScript 6 规范最近为 JavaScript 添加了类的功能，但这个特性尚未被广泛采用。实际上，许多流行的框架要求继续使用一种补偿习惯用法：使用外部函数作为替代，创建一种命名空间或伪类。为了不对 JavaScript 用户进行惩罚，当外部函数仅用作声明机制时（即它们只包含顶级的声明），它们将被忽略。</p><p>然而，如果一个函数位于顶级（即不嵌套在子函数内部），并且包含需要进行结构增加的语句，那么说明它不仅仅是纯粹的声明使用。因此，这类函数应该接受标准处理。</p><p>例如：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696907520.png title=\"ES5 class\" data-thumbnail=/posts/cognitive-complexity/images/23_1696907520.png data-sub-html=\"<h2>ES5 class</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696907520.png alt=\"ES5 class\" height=968 width=1368></a></p><h3 class=heading-element id=python-decorators><span>11.3 Python: Decorators</span>\n<a href=#python-decorators class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Python 的装饰器习惯用法允许在不修改函数本身的情况下向现有函数添加额外的行为。这是通过在装饰器中使用嵌套函数来实现的，嵌套函数提供了额外的行为。</p><p>为了不对使用其语言的 Python 开发人员进行惩罚，已经添加了一个例外。然而，已经试图对例外进行明确定义。具体来说，要符合例外的条件，一个函数只能包含一个嵌套函数和一个 <code>return</code> 语句。</p><p>例如：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696907633.png title=\"Python decorator\" data-thumbnail=/posts/cognitive-complexity/images/23_1696907633.png data-sub-html=\"<h2>Python decorator</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696907633.png alt=\"Python decorator\" height=948 width=1368></a></p><h2 class=heading-element id=附录-b规范><span>12 附录 B：规范</span>\n<a href=#%e9%99%84%e5%bd%95-b%e8%a7%84%e8%8c%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本节的目的是对增加认知复杂度的结构和情况进行简明列举，但需考虑 <strong>附录 A</strong> 中列出的例外情况。这旨在提供一个全面的列表，但并非穷尽所有编程语言。也就是说，如果某种语言对关键字有非典型的拼写，例如用 <code>elif</code> 表示 <code>else if</code>，那么在此处的省略并不意味着在规范中忽略该结构。</p><h3 class=heading-element id=b1-增量increments><span>12.1 B1. 增量（Increments）</span>\n<a href=#b1-%e5%a2%9e%e9%87%8fincrements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>对于以下每个结构，都会增加复杂度的计数：</p><ul><li><code>if</code>、<code>else if</code>、<code>else</code> 条件语句和三元运算符</li><li><code>switch</code></li><li><code>for</code>、<code>foreach</code></li><li><code>while</code>、<code>do while</code></li><li><code>catch</code></li><li><code>goto LABEL</code>、<code>break LABEL</code>、<code>continue LABEL</code>、<code>break NUMBER</code>、<code>continue NUMBER</code></li><li>连续的二元逻辑运算符</li><li>递归循环中的每个方法</li></ul><h3 class=heading-element id=b2-嵌套级别nesting-level><span>12.2 B2. 嵌套级别（Nesting level）</span>\n<a href=#b2-%e5%b5%8c%e5%a5%97%e7%ba%a7%e5%88%abnesting-level class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>以下结构会增加嵌套层级的计数：</p><ul><li><code>if</code>、<code>else if</code>、<code>else</code> 条件语句和三元运算符</li><li><code>switch</code></li><li><code>for</code>、<code>foreach</code></li><li><code>while</code>、<code>do while</code></li><li><code>catch</code></li><li>嵌套方法和类似方法的结构，如 <code>lambda</code> 表达式。</li></ul><h3 class=heading-element id=b3-嵌套增量nesting-increments><span>12.3 B3. 嵌套增量（Nesting increments）</span>\n<a href=#b3-%e5%b5%8c%e5%a5%97%e5%a2%9e%e9%87%8fnesting-increments class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>以下结构将根据其在 B2 结构内的嵌套深度而增加相应的嵌套层级计数：</p><ul><li><code>if</code> 条件语句和三元运算符</li><li><code>switch</code></li><li><code>for</code>、<code>foreach</code></li><li><code>while</code>、<code>do while</code></li><li><code>catch</code></li></ul><h2 class=heading-element id=附录-c示例><span>13 附录 C：示例</span>\n<a href=#%e9%99%84%e5%bd%95-c%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p><strong>Note</strong>\n译者注：在各大 IDE 中可以安装 SonarLint 插件，以便在编码过程中实时检查代码质量，<a href=\"https://www.sonarsource.com/products/sonarlint/?gads_campaign=SL-Class02-Brand&amp;gads_ad_group=SonarLint&amp;gads_keyword=sonarlint&amp;gclid=CjwKCAjwyY6pBhA9EiwAMzmfwba_MRBC_UXg_im757z_Om_T6Jfd_vt_gVuNL-Wxh9S0HVKKqK7nRhoCl5UQAvD_BwE\" target=_blank rel=\"external nofollow noopener noreferrer\">详见<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>来自 SonarJava 分析器中的 <code>org.sonar.java.resolve.JavaSymbol.java</code>：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696908636.png title=org.sonar.java.resolve.JavaSymbol.java data-thumbnail=/posts/cognitive-complexity/images/23_1696908636.png data-sub-html=\"<h2>org.sonar.java.resolve.JavaSymbol.java</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696908636.png alt=org.sonar.java.resolve.JavaSymbol.java height=1094 width=1378></a></p><p>来自 sonar-persistit 中的 <code>com.persistit.TimelyResource.java</code>：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696908742.png title=com.persistit.TimelyResource.java data-thumbnail=/posts/cognitive-complexity/images/23_1696908742.png data-sub-html=\"<h2>com.persistit.TimelyResource.java</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696908742.png alt=com.persistit.TimelyResource.java height=1540 width=1354></a></p><p>来自 SonarQube 中的 <code>org.sonar.api.utils.WildcardPattern.java</code>：</p><p>来自 YUI 中的 <code>model.js</code>：</p><p><a class=lightgallery target=_blank href=/posts/cognitive-complexity/images/23_1696908890.png title=model.js data-thumbnail=/posts/cognitive-complexity/images/23_1696908890.png data-sub-html=\"<h2>model.js</h2>\"><img loading=lazy src=/posts/cognitive-complexity/images/23_1696908890.png alt=model.js height=1532 width=1166></a></p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>Thomas J. McCabe, &ldquo;A Complexity Measure&rdquo;, IEEE Transactions on Software Engineering, Vol. SE-2, No. 4, December 1976&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li><li id=fn:2><p>G. Ann Campbell, &ldquo;<a href=https://www.sonarsource.com/docs/CognitiveComplexity.pdf target=_blank rel=\"external nofollow noopener noreferrer\">Cognitive Complexity - a new way of measuring understandability<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>&rdquo;, <a href=https://www.sonarsource.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Sonar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, 29 August 2023, Version 1.7&#160;<a href=#fnref:2 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cognitive-complexity/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/cognitive-complexity/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/cognitive-complexity/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AE%A4%E7%9F%A5%E5%A4%8D%E6%9D%82%E5%BA%A6%EF%BC%88Cognitive+Complexity%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AE%A4%E7%9F%A5%E5%A4%8D%E6%9D%82%E5%BA%A6%EF%BC%88Cognitive+Complexity%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/cognitive-complexity/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/cognitive-complexity/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cognitive-complexity/ data-title=\"认知复杂度（Cognitive Complexity）\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cognitive-complexity/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cognitive-complexity/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cognitive-complexity/ data-title=\"认知复杂度（Cognitive Complexity）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cognitive-complexity/ data-title=\"认知复杂度（Cognitive Complexity）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/article-structure/ class=post-nav-item rel=prev title=写作技巧：如何搭建文章的框架结构？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>写作技巧：如何搭建文章的框架结构？</a><a href=/posts/markdownlint/ class=post-nav-item rel=next title=\"给你的 Markdown 挑挑刺\">给你的 Markdown 挑挑刺<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#摘要>摘要</a><ol><li><a href=#术语说明>术语说明</a></li></ol></li><li><a href=#引言>引言</a></li><li><a href=#问题示例>问题示例</a></li><li><a href=#基本准则和方法>基本准则和方法</a></li><li><a href=#忽略简写>忽略简写</a></li><li><a href=#中断线性流程>中断线性流程</a><ol><li><a href=#捕获catches>捕获（Catches）</a></li><li><a href=#开关switches>开关（Switches）</a></li><li><a href=#逻辑运算符序列sequences-of-logical-operators>逻辑运算符序列（Sequences of logical operators）</a></li><li><a href=#递归recursion>递归（Recursion）</a></li><li><a href=#跳转到标签jumps-to-labels>跳转到标签（Jumps to labels）</a></li></ol></li><li><a href=#嵌套流程中的增量>嵌套流程中的增量</a></li><li><a href=#影响>影响</a><ol><li><a href=#直观地正确的复杂性分数>直观地“正确”的复杂性分数</a></li><li><a href=#高于方法级别的有价值的指标>高于方法级别的有价值的指标</a></li></ol></li><li><a href=#结论>结论</a></li><li><a href=#参考文献>参考文献</a></li><li><a href=#附录-a补偿用法>附录 A：补偿用法</a><ol><li><a href=#cobol-missing-else-if>COBOL: Missing <code>else if</code></a></li><li><a href=#javascript-missing-class-structures>JavaScript: Missing class structures</a></li><li><a href=#python-decorators>Python: Decorators</a></li></ol></li><li><a href=#附录-b规范>附录 B：规范</a><ol><li><a href=#b1-增量increments>B1. 增量（Increments）</a></li><li><a href=#b2-嵌套级别nesting-level>B2. 嵌套级别（Nesting level）</a></li><li><a href=#b3-嵌套增量nesting-increments>B3. 嵌套增量（Nesting increments）</a></li></ol></li><li><a href=#附录-c示例>附录 C：示例</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e782f1b3e6277fd8a5f7c6717b41da12.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e782f1b3e6277fd8a5f7c6717b41da12.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cognitive-complexity/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cognitive-complexity/index.md",
    "content": "# 认知复杂度（Cognitive Complexity）\n\n\n## 摘要\n\n循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n\n### 术语说明\n\n虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\n\n---\n\n<!--more-->\n\n## 引言\n\n循环复杂度（Cyclomatic Complexity）是一种用于衡量代码中控制流的度量标准，它最初是由 Thomas J. McCabe 在 1976 年提出的。[^1] 该度量标准的目的是衡量代码的“可测试性和可维护性”。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n\n与此同时，循环复杂度已经不再全面。它于 1976 年在 Fortran 环境中制定，不包括像 `try/catch` 和 `lambda` 这样的现代语言结构。\n\n最后，由于每个方法的最小循环复杂度分数为 1，我们无法知道具有高聚合循环复杂度的任何给定类是一个大型、易于维护的域类，还是一个具有复杂控制流的小型类。除了类级别之外，广泛认可的观点是应用程序的循环复杂度得分与其代码行数总和相关。换句话说，循环复杂度在方法级别以上几乎没有用处。\n\n为了解决这些问题，认知复杂度（Cognitive Complexity）已经被制定出来，以解决现代语言结构的问题，并产生在类和应用程序级别上有意义的值。更重要的是，它摒弃了基于数学模型评估代码的做法，以便能够提供与程序员对理解流程所需的心智或认知努力的直觉相符的控制流评估。\n\n## 问题示例\n\n从一个示例开始讨论认知复杂度可以帮助理解它的应用对象。下面的两个方法具有相同的循环复杂度，但在可理解性方面却存在明显的差异。\n\n![An illustration of the problem](images/23_1696818696.png)\n\n循环复杂度的数学模型给予这两个方法相同的权重，然而直观上很明显，sumOfPrimes 方法的控制流比 getWords 方法更难理解。这就是为什么认知复杂度放弃了使用数学模型评估控制流的做法，而采用了一组简单的规则，将程序员的直觉转化为数字。\n\n## 基本准则和方法\n\n根据三个基本规则来评估认知复杂度得分：\n\n1. 忽略允许多个语句可读性缩写成一个的结构\n2. 每次中断代码的线性流程时增加一个（加一）\n3. 嵌套时进行增量计算\n\n此外，复杂度得分由四种不同类型的增量组成：\n: A. 嵌套（Nesting）— 对嵌套控制流结构进行评估\n: B. 结构（Structural）— 对受嵌套增量影响并增加嵌套计数的控制流结构进行评估\n: C. 基础（Fundamental）— 对不受嵌套增量影响的语句进行评估\n: D. 混合（Hybrid）— 对不受嵌套增量影响的控制流结构进行评估\n\n虽然在数学上，增量的类型没有影响，每个增量都会将最终得分增加一点，但对被计数的特征类别进行区分可以更容易地理解嵌套增量适用和不适用的地方。\n\n这些规则及其背后的原则在以下章节中进一步详细介绍。\n\n## 忽略简写\n\n在制定认知复杂度的过程中，一个指导原则是它应该激励良好的编码实践。也就是说，它应该忽略或减少使代码更易读的特性。\n\n方法的结构本身就是一个很好的例子。将代码分解为方法可以将多个语句压缩为一个具有描述性名称的调用，即“简写（shorthand）”。因此，认知复杂度不会针对方法进行增量计算。\n\n认知复杂度还忽略许多编程语言中常见的空合并运算符，因为它们允许将多行代码缩减为一行。例如，下面两个代码示例执行相同的操作：\n\n![ignore shorthand](images/23_1696826535.png)\n\n左侧版本的含义需要一些时间来理解，而一旦理解了空合并语法，右侧版本就立即清晰明了。因此，认知复杂度忽略了空合并运算符。\n\n## 中断线性流程\n\n在制定认知复杂度的过程中，另一个指导原则是打破代码从上到下、从左到右的正常线性流程的结构会使维护者在理解代码时需要付出更多的努力。为了认可这种额外的努力，认知复杂度对以下结构进行结构增量评估：\n\n- 循环结构：`for`、`while`、`do while`、...\n- 条件判断：三元运算符、`if`、`#if`、`#ifdef`、...\n\n它对混合增量进行评估：\n\n- `else if`、`elif`、`else`、...\n\n对于这些结构，不会评估嵌套增量，因为在阅读条件语句时已经承担了心理成本。\n\n这些增量目标对于那些习惯于圈复杂度的人来说可能会很熟悉。此外，认知复杂度还会增加以下方面的复杂度：\n\n### 捕获（Catches）\n\n`catch` 语句与 `if` 语句一样，代表了控制流程中的一种分支。因此，每个 `catch` 子句都会对认知复杂度进行结构增量评估。请注意，无论捕获了多少种异常类型，每个 `catch` 子句只会给认知复杂度得分增加一个点。`try` 和 `finally` 块则完全被忽略。\n\n### 开关（Switches）\n\n一个 `switch` 语句及其所有的 `case` 合并会导致一个单独的结构增量。\n\n在圈复杂度中，`switch` 语句被视为类似于 `if-else` `if` 链的模拟。也就是说，`switch` 语句中的每个 `case` 都会导致增量，因为它在控制流的数学模型中引起了一个分支。\n\n但是从维护者的角度来看，一个 `switch` 语句，它将一个变量与一组明确命名的字面值进行比较，比一个 `if-else` `if` 链容易理解得多，因为后者可能进行任意数量的比较，使用任意数量的变量和值。\n\n简而言之，必须仔细阅读 `if-else` `if` 链，而 `switch` 语句通常可以一目了然地理解。\n\n### 逻辑运算符序列（Sequences of logical operators）\n\n出于类似的原因，认知复杂度不会对每个二进制逻辑运算符进行增量计算。相反，它对每个二进制逻辑运算符序列进行基本增量评估。例如，考虑以下几对示例：\n\n```js\na && b\na && b && c && d\n\na || b\na || b || c || d\n```\n\n理解每对示例中的第二行并不比理解第一行困难太多。然而，对于理解下面两行的努力确实存在明显的差异：\n\n```js\na && b && c && d\na || b && c || d\n```\n\n因为混合运算符的布尔表达式变得更难理解，所以认知复杂度会对每个新的相同运算符序列进行增量计算。例如：\n\n```js\nif (a                   // +1 for `if`\n  && b && c             // +1\n  || d || e             // +1\n  && f)                 // +1\n\nif (a                   // +1 for `if`\n  &&                    // +1\n  !(b && c))            // +1\n```\n\n虽然相对于圈复杂度，认知复杂度对相同的运算符提供了一种“折扣”，但它会对所有的二元布尔运算符序列进行增量计算，例如变量赋值、方法调用和返回语句中的序列。\n\n### 递归（Recursion）\n\n与圈复杂度不同，认知复杂度对递归循环中的每个方法（无论是直接递归还是间接递归）都会增加一个基本增量。\n\n这个决定有两个动机。首先，递归代表了一种“元循环（meta-loop）”，而认知复杂度对循环进行增量计算。其次，认知复杂度旨在估计理解方法控制流的相对难度，即使对一些经验丰富的程序员来说，递归也很难理解。\n\n### 跳转到标签（Jumps to labels）\n\n使用 `goto` 语句会给认知复杂度增加一个基本增量，同样的，使用带有标签的 `break` 或 `continue` 语句以及其他多级跳转（如某些语言中的带有数字的 `break` 或 `continue` 语句）也会增加增量。但是，因为提前返回通常可以使代码更清晰，其他跳转或提前退出不会增加增量。\n\n## 嵌套流程中的增量\n\n直观上很明显，一系列线性的五个 `if` 和 `for` 结构比相同的五个结构连续嵌套更容易理解，而不管每个系列中的执行路径数量如何。因为这样的嵌套增加了理解代码的心理需求，认知复杂度对其进行了嵌套增量的评估。\n\n具体来说，每当一个导致结构增量或混合增量的结构嵌套在另一个这样的结构内部时，每个嵌套级别都会增加一个嵌套增量。例如，在下面的示例中，对于方法本身或 `try` 语句，都没有嵌套增量，因为这两个结构都不会导致结构增量或混合增量：\n\n![Illustration 1 of \"Increment for nested flow-break structures\"](images/23_1696904025.png)\n\n然而，`if`、`for`、`while`和`catch`结构都会受到结构增量和嵌套增量的影响。\n此外，顶层方法会被忽略，并且 `lambda` 表达式、嵌套方法和类似特性不会导致结构增量，但当这些方法嵌套在其他类似方法的结构内部时，会增加嵌套级别：\n\n![Illustration 2 of \"Increment for nested flow-break structures\"](images/23_1696904298.png)\n\n## 影响\n\n认知复杂度的主要目标是计算方法分数，以更准确地反映方法的相对可理解性，并且其次目标是处理现代语言结构并生成在方法级别以上有价值的度量标准。可以证明，处理现代语言结构的目标已经实现。下面将对另外两个目标进行详细讨论。\n\n### 直观地“正确”的复杂性分数\n\n这次讨论始于一对具有相等圈复杂度但明显不同可理解性的方法。现在是重新审视这些方法并计算它们的认知复杂度分数的时候了。\n\n![Intuitively ‘right’ complexity scores](images/23_1696904888.png)\n\n认知复杂度算法给出了这两个方法明显不同的分数，这些分数更能反映它们相对可理解性的差异。\n\n### 高于方法级别的有价值的指标\n\n此外，由于认知复杂度不会针对方法结构增加增量，聚合的数值变得有用起来。现在，通过比较它们的度量值，你可以轻松区分一个包含大量简单的 `getter` 和 `setter` 的领域类和一个包含复杂控制流的类。因此，认知复杂度成为衡量类和应用程序相对可理解性的工具。\n\n## 结论\n\n编写和维护代码是人类过程，它们的输出必须符合数学模型，但它们本身并不适合数学模型。这就是为什么数学模型不足以评估它们所需努力的原因。\n\n认知复杂度打破了使用数学模型评估软件可维护性的做法。它起源于圈复杂度所设定的先例，但使用人类判断来评估应该如何计算结构，并决定整体模型应该加入什么内容。结果，它产生了方法复杂度分数，相对于以前的模型，程序员认为这些分数更公平地评估了可理解性。\n\n此外，因为认知复杂度对于一个方法没有“进入成本”的要求，它不仅在方法级别产生了这些更公平的相对评估，还在类和应用程序级别上产生了相应的评估。\n\n## 参考文献\n\n本文翻译自 G. Ann Campbell 的文章“{Cognitive Complexity} a new way of measuring understandability”[^2]，原文发表于 2023 年 8 月 29 日，版本号为 1.7。\n\n[^1]: Thomas J. McCabe, \"A Complexity Measure\", IEEE Transactions on Software Engineering, Vol. SE-2, No. 4, December 1976\n[^2]: G. Ann Campbell, \"[Cognitive Complexity - a new way of measuring understandability](https://www.sonarsource.com/docs/CognitiveComplexity.pdf)\", [Sonar](https://www.sonarsource.com/), 29 August 2023, Version 1.7\n\n## 附录 A：补偿用法\n\n认知复杂度被设计为一种与语言无关的度量标准，但不可忽视的是不同的编程语言提供了不同的特性。例如，COBOL 中没有 `else if` 结构，而 JavaScript 直到最近也缺乏类似的结构。不幸的是，这些缺陷并不能阻止开发人员需要这些结构或者试图用手头的工具构建类似的结构。在这种情况下，严格遵守认知复杂度规则会导致不成比例的高分。\n\n因此，为了不惩罚一种语言相对于另一种语言的使用，对于语言的缺陷，即在考虑的语言中普遍使用并且在大多数现代语言中都是期望的结构，但在该语言中缺失的结构（例如 COBOL 缺少的 `else if`），可以进行例外处理。\n\n另一方面，当一种语言创新引入一个特性时，例如 Java 7 可以一次捕获多个异常类型，其他语言中缺乏这种创新不应被视为缺陷，因此不应有例外。\n\n这意味着如果一次捕获多个异常类型成为一种常见预期的语言特性，那么对于不提供该功能的语言中的“额外”`catch` 子句可能会添加例外。这种可能性并没有排除，但对于是否添加这样的未来例外的评估应该以保守为原则。换句话说，新的例外应该慢慢引入。\n\n另一方面，如果 COBOL 标准的未来版本添加了\"else if\"结构，应尽快放弃 COBOL 的\"else ... if\"例外（如下所述）。\n\n到目前为止，已经确定了三个例外情况：\n\n### COBOL: Missing `else if`\n\n对于缺乏 `else if` 结构的 COBOL 语言，一个 `else` 子句中如果只包含一个 `if` 语句，则不会增加嵌套惩罚。此外，`else` 本身不会增加复杂度。也就是说，如果 `else` 后面紧跟着 `if` 语句，尽管从语法上讲它并不是 `else if`，但在计算复杂度时会视作 `else if`。\n\n例如：\n\n```COBOL\nIF condition1        // +1 structure, +0 for nesting\n  ...\nELSE\n  IF condition2      // +1 structure, +0 for nesting\n    ...\n  ELSE\n    IF condition3    // +1 structure, +0 for nesting\n      statement1\n      IF condition4  // +1 structure, +1 for nesting\n        ...\n      END-IF\n    END-IF\n  ENDIF\nENDIF.\n```\n\n### JavaScript: Missing class structures\n\n尽管 ECMAScript 6 规范最近为 JavaScript 添加了类的功能，但这个特性尚未被广泛采用。实际上，许多流行的框架要求继续使用一种补偿习惯用法：使用外部函数作为替代，创建一种命名空间或伪类。为了不对 JavaScript 用户进行惩罚，当外部函数仅用作声明机制时（即它们只包含顶级的声明），它们将被忽略。\n\n然而，如果一个函数位于顶级（即不嵌套在子函数内部），并且包含需要进行结构增加的语句，那么说明它不仅仅是纯粹的声明使用。因此，这类函数应该接受标准处理。\n\n例如：\n\n![ES5 class](images/23_1696907520.png)\n\n### Python: Decorators\n\nPython 的装饰器习惯用法允许在不修改函数本身的情况下向现有函数添加额外的行为。这是通过在装饰器中使用嵌套函数来实现的，嵌套函数提供了额外的行为。\n\n为了不对使用其语言的 Python 开发人员进行惩罚，已经添加了一个例外。然而，已经试图对例外进行明确定义。具体来说，要符合例外的条件，一个函数只能包含一个嵌套函数和一个 `return` 语句。\n\n例如：\n\n![Python decorator](images/23_1696907633.png)\n\n## 附录 B：规范\n\n本节的目的是对增加认知复杂度的结构和情况进行简明列举，但需考虑 **附录 A** 中列出的例外情况。这旨在提供一个全面的列表，但并非穷尽所有编程语言。也就是说，如果某种语言对关键字有非典型的拼写，例如用 `elif` 表示 `else if`，那么在此处的省略并不意味着在规范中忽略该结构。\n\n### B1. 增量（Increments）\n\n对于以下每个结构，都会增加复杂度的计数：\n\n- `if`、`else if`、`else` 条件语句和三元运算符\n- `switch`\n- `for`、`foreach`\n- `while`、`do while`\n- `catch`\n- `goto LABEL`、`break LABEL`、`continue LABEL`、`break NUMBER`、`continue NUMBER`\n- 连续的二元逻辑运算符\n- 递归循环中的每个方法\n\n### B2. 嵌套级别（Nesting level）\n\n以下结构会增加嵌套层级的计数：\n\n- `if`、`else if`、`else` 条件语句和三元运算符\n- `switch`\n- `for`、`foreach`\n- `while`、`do while`\n- `catch`\n- 嵌套方法和类似方法的结构，如 `lambda` 表达式。\n\n### B3. 嵌套增量（Nesting increments）\n\n以下结构将根据其在 B2 结构内的嵌套深度而增加相应的嵌套层级计数：\n\n- `if` 条件语句和三元运算符\n- `switch`\n- `for`、`foreach`\n- `while`、`do while`\n- `catch`\n\n## 附录 C：示例\n\n> **Note**\n> 译者注：在各大 IDE 中可以安装 SonarLint 插件，以便在编码过程中实时检查代码质量，[详见](https://www.sonarsource.com/products/sonarlint/?gads_campaign=SL-Class02-Brand&gads_ad_group=SonarLint&gads_keyword=sonarlint&gclid=CjwKCAjwyY6pBhA9EiwAMzmfwba_MRBC_UXg_im757z_Om_T6Jfd_vt_gVuNL-Wxh9S0HVKKqK7nRhoCl5UQAvD_BwE\n)\n\n来自 SonarJava 分析器中的 `org.sonar.java.resolve.JavaSymbol.java`：\n\n![org.sonar.java.resolve.JavaSymbol.java](images/23_1696908636.png)\n\n来自 sonar-persistit 中的 `com.persistit.TimelyResource.java`：\n\n![com.persistit.TimelyResource.java](images/23_1696908742.png)\n\n来自 SonarQube 中的 `org.sonar.api.utils.WildcardPattern.java`：\n\n来自 YUI 中的 `model.js`：\n\n![model.js](images/23_1696908890.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cognitive-complexity/  \n\n"
  },
  {
    "path": "posts/commit-bat/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>通过 Bat 批处理文件自动提交博客代码 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * （添加需要提交的文件，这里全选） git commit -m &ldquo;提交信息&rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\n\"><meta name=keywords content='bat'><meta itemprop=name content=\"通过 bat 批处理文件自动提交博客代码\"><meta itemprop=description content=\"前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * （添加需要提交的文件，这里全选） git commit -m “提交信息” git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\"><meta itemprop=datePublished content=\"2018-11-17T14:25:49+08:00\"><meta itemprop=dateModified content=\"2018-11-17T14:25:49+08:00\"><meta itemprop=wordCount content=\"388\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"bat\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/commit-bat/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"通过 bat 批处理文件自动提交博客代码\"><meta property=\"og:description\" content=\"前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * （添加需要提交的文件，这里全选） git commit -m “提交信息” git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-17T14:25:49+08:00\"><meta property=\"article:modified_time\" content=\"2018-11-17T14:25:49+08:00\"><meta property=\"article:tag\" content=\"bat\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"通过 bat 批处理文件自动提交博客代码\"><meta name=twitter:description content=\"前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * （添加需要提交的文件，这里全选） git commit -m “提交信息” git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/commit-bat/ title=\"通过 bat 批处理文件自动提交博客代码 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/fas-app/ title=\"博採眾長 app\"><link rel=next type=text/html href=https://lruihao.cn/posts/nextplugin/ title=\"hexo 插件及 next 内置样式集\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/commit-bat/index.md title=\"通过 bat 批处理文件自动提交博客代码 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"通过 bat 批处理文件自动提交博客代码\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/commit-bat\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"bat\",\"wordcount\":388,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/commit-bat\\/\",\"datePublished\":\"2018-11-17T14:25:49+08:00\",\"dateModified\":\"2018-11-17T14:25:49+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/commit-bat/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>通过 Bat 批处理文件自动提交博客代码</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>通过 Bat 批处理文件自动提交博客代码</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-17 14:25:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-17>2018-11-17</time></span>&nbsp;<span title=\"388 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"通过 Bat 批处理文件自动提交博客代码\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#新建文本文档>新建文本文档</a></li><li><a href=#使用>使用</a></li><li><a href=#hexo-博客新姿势>hexo 博客新姿势</a></li><li><a href=#其他>其他</a><ol><li><a href=#死机脚本>死机脚本</a></li><li><a href=#统计文件名>统计文件名</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤</p><ul><li>git add * （添加需要提交的文件，这里全选）</li><li>git commit -m &ldquo;提交信息&rdquo;</li><li>git push</li></ul><p>但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！</p></blockquote><h2 class=heading-element id=新建文本文档><span>1 新建文本文档</span>\n<a href=#%e6%96%b0%e5%bb%ba%e6%96%87%e6%9c%ac%e6%96%87%e6%a1%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bat\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bat data-lang=bat><span class=line><span class=cl><span class=p>@</span><span class=k>echo</span> off\n</span></span><span class=line><span class=cl><span class=k>title</span> Commit\n</span></span><span class=line><span class=cl>git add .\n</span></span><span class=line><span class=cl><span class=k>set</span> <span class=k>/p</span> <span class=nv>m</span><span class=p>=</span>Message:\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;</span><span class=nv>%m%</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>git push</span></span></code></pre></td></tr></table></div></div></div><p>然后另存为<code>commit.bat</code>文件，只要后缀是<code>bat</code>就行了。</p><h2 class=heading-element id=使用><span>2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>把文件放到你原本需要提交代码的本地文件夹。双击运行，输入提交信息回车即可。</p><h2 class=heading-element id=hexo-博客新姿势><span>3 hexo 博客新姿势</span>\n<a href=#hexo-%e5%8d%9a%e5%ae%a2%e6%96%b0%e5%a7%bf%e5%8a%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>hexo 提交也很麻烦，当然也要批处理一下呀</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bat\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bat data-lang=bat><span class=line><span class=cl>hexo clean<span class=p>&amp;&amp;</span>hexo g -d</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=其他><span>4 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=死机脚本><span>4.1 死机脚本</span>\n<a href=#%e6%ad%bb%e6%9c%ba%e8%84%9a%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>(<strong>友情提醒千万不要在真机实验，请在虚拟机运行</strong>)</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bat\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bat data-lang=bat><span class=line><span class=cl><span class=k>start</span> cmd ifconfig</span></span></code></pre></td></tr></table></div></div></div><p>另外也说一下 linux 死机命令。fork 炸弹。<br>死机无非是耗尽系统资源</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>_(){ _ | _ &amp; }; _</span></span></code></pre></td></tr></table></div></div></div><p>这个&指后台运行的意思。</p><h3 class=heading-element id=统计文件名><span>4.2 统计文件名</span>\n<a href=#%e7%bb%9f%e8%ae%a1%e6%96%87%e4%bb%b6%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bat\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bat data-lang=bat><span class=line><span class=cl><span class=k>dir</span> \\\\?\\<span class=nv>%1</span> /a:-d /b /o /p /w <span class=p>&gt;</span>Filelist.txt</span></span></code></pre></td></tr></table></div></div></div><p>将需要统计的文件夹拖到 bat 文件上。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-11-17 14:25:49\">更新于 2018-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/4204ee53f217d99621ff9feef63aafe4c0623a45 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Fix: 修复 Hugo 0.123.0 版本自动大写标签首字母&#10&#10Commit: 4204ee53f217d99621ff9feef63aafe4c0623a45 [4204ee5]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-02-26 11:37:31&#10Commit Date: 2024-02-26 12:14:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>4204ee5</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/commit-bat/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/commit-bat.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/commit-bat.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%80%9A%E8%BF%87+bat+%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E6%8F%90%E4%BA%A4%E5%8D%9A%E5%AE%A2%E4%BB%A3%E7%A0%81&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%80%9A%E8%BF%87+bat+%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E6%8F%90%E4%BA%A4%E5%8D%9A%E5%AE%A2%E4%BB%A3%E7%A0%81%7c%0A%7cURL%7chttps://lruihao.cn/posts/commit-bat/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/commit-bat.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/commit-bat/ data-title=\"通过 Bat 批处理文件自动提交博客代码\" data-hashtags=bat><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/commit-bat/ data-hashtag=bat><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/commit-bat/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/commit-bat/ data-title=\"通过 Bat 批处理文件自动提交博客代码\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/commit-bat/ data-title=\"通过 Bat 批处理文件自动提交博客代码\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bat/ class=post-tag title=\"标签 - bat\">bat</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/fas-app/ class=post-nav-item rel=prev title=\"博採眾長 App\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>博採眾長 App</a><a href=/posts/nextplugin/ class=post-nav-item rel=next title=\"Hexo 插件及 Next 内置样式集\">Hexo 插件及 Next 内置样式集<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#新建文本文档>新建文本文档</a></li><li><a href=#使用>使用</a></li><li><a href=#hexo-博客新姿势>hexo 博客新姿势</a></li><li><a href=#其他>其他</a><ol><li><a href=#死机脚本>死机脚本</a></li><li><a href=#统计文件名>统计文件名</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/07dc02755c6f7b78185d6842db700b36.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/07dc02755c6f7b78185d6842db700b36.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/commit-bat/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/commit-bat/index.md",
    "content": "# 通过 Bat 批处理文件自动提交博客代码\n\n\n> 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\n>\n> - git add \\* （添加需要提交的文件，这里全选）\n> - git commit -m \"提交信息\"\n> - git push\n>\n> 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n> 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\n\n<!--more-->\n\n## 新建文本文档\n\n```bat\n@echo off\ntitle Commit\ngit add .\nset /p m=Message:\ngit commit -m \"%m%\"\ngit push\n```\n\n然后另存为`commit.bat`文件，只要后缀是`bat`就行了。\n\n## 使用\n\n把文件放到你原本需要提交代码的本地文件夹。双击运行，输入提交信息回车即可。\n\n## hexo 博客新姿势\n\nhexo 提交也很麻烦，当然也要批处理一下呀\n\n```bat\nhexo clean&&hexo g -d\n```\n\n## 其他\n\n### 死机脚本\n\n(**友情提醒千万不要在真机实验，请在虚拟机运行**)\n\n```bat\nstart cmd ifconfig\n```\n\n另外也说一下 linux 死机命令。fork 炸弹。  \n死机无非是耗尽系统资源\n\n```\n_(){ _ | _ & }; _\n```\n\n这个&指后台运行的意思。\n\n### 统计文件名\n\n```bat\ndir \\\\?\\%1 /a:-d /b /o /p /w >Filelist.txt\n```\n\n将需要统计的文件夹拖到 bat 文件上。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/commit-bat/  \n\n"
  },
  {
    "path": "posts/commit-spec/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Commit Message Spec | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\n\"><meta name=keywords content='Git'><meta itemprop=name content=\"Commit Message Spec\"><meta itemprop=description content=\"Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\"><meta itemprop=datePublished content=\"2022-08-12T15:37:44+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"307\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/commit-spec/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Commit Message Spec\"><meta property=\"og:description\" content=\"Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-12T15:37:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Commit Message Spec\"><meta name=twitter:description content=\"Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/commit-spec/ title=\"Commit Message Spec | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/electron-summary/ title=\"electron 踩坑总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/semver/ title=语义版本控制（SemVer）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/commit-spec/index.md title=\"Commit Message Spec | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Commit Message Spec\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/commit-spec\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":307,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/commit-spec\\/\",\"datePublished\":\"2022-08-12T15:37:44+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/commit-spec/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Commit Message Spec</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Commit Message Spec</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-12 15:37:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-12>2022-08-12</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"307 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Commit Message Spec\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#format>Format</a></li><li><a href=#emoji>Emoji</a></li><li><a href=#message>Message</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the <a href=https://www.conventionalcommits.org/en/v1.0.0-beta.4/ target=_blank rel=\"external nofollow noopener noreferrer\">Conventional Commits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> specification based on the <a href=https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit target=_blank rel=\"external nofollow noopener noreferrer\">Angular convention<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.</p><h2 class=heading-element id=format><span>1 Format</span>\n<a href=#format class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>[{emoji} ]{type}[({module})]: {subject within 50 words}[ (#{issue/pull request})]</code></p><p>example:</p><ul><li>: tada: Feat: add shortcode fixit-encryptor shortcode (#123)</li><li>: arrow_up: Chore(libs): update Artalk from 2.2.12 to 2.3.4 (#150)</li></ul><h2 class=heading-element id=emoji><span>2 Emoji</span>\n<a href=#emoji class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://gitmoji.dev target=_blank rel=\"external nofollow noopener noreferrer\">https://gitmoji.dev<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/maixiaojie/git-emoji-zh.git target=_blank rel=\"external nofollow noopener noreferrer\">vscode plugin<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>utools plugin <code>GitEmoji</code></li></ul><h2 class=heading-element id=message><span>3 Message</span>\n<a href=#message class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>Emoji</th><th style=text-align:left>Type</th><th style=text-align:left>Example</th><th style=text-align:left>Description (No Ambiguous)</th></tr></thead><tbody><tr><td style=text-align:left>&#x1f389;<br>&#x2728;</td><td style=text-align:left>Feat</td><td style=text-align:left>Feat: add {feature}</td><td style=text-align:left>new feature</td></tr><tr><td style=text-align:left>&#x1f69a;</td><td style=text-align:left></td><td style=text-align:left>Feat: adjust/migrate {feature name}, {change details}</td><td style=text-align:left>For the adjustment feature, it is necessary to describe the current situation (before) and after adjustment (after)</td></tr><tr><td style=text-align:left>&#x1f525;</td><td style=text-align:left></td><td style=text-align:left>Feat: delete {feature name}, {deletion reason}</td><td style=text-align:left>If the feature is deleted, the reason for deletion must be explained</td></tr><tr><td style=text-align:left>&#x1f41b;<br>&#x1f6a7;<br>&#x1f6a8;</td><td style=text-align:left>Fix</td><td style=text-align:left>Fix: fix {bug description}</td><td style=text-align:left>Fix known bugs</td></tr><tr><td style=text-align:left>&#x1f3a8;<br>&#x1f484;<br>&#9999;&#xfe0f;</td><td style=text-align:left>Style</td><td style=text-align:left>Style: Typesetting/CSS style {optimizing content}</td><td style=text-align:left>Changes that do not affect code operation, such as code layout and style change</td></tr><tr><td style=text-align:left>&#9851;&#xfe0f;</td><td style=text-align:left>Refactor</td><td style=text-align:left>Refactor: override {feature name}</td><td style=text-align:left>It is neither a new function nor a code change to fix a bug. Simply rewriting the code of a function does not affect the function result</td></tr><tr><td style=text-align:left>&#9889;</td><td style=text-align:left>Perf</td><td style=text-align:left>Perf: improve performance {function name}, {improve content}</td><td style=text-align:left>Optimize code performance</td></tr><tr><td style=text-align:left>&#9194;</td><td style=text-align:left>Revert</td><td style=text-align:left>Revert: restore version {commit message of restore version}</td><td style=text-align:left>Restore the version of one commit</td></tr><tr><td style=text-align:left>&#x1f4dd;<br>&#9999;&#xfe0f;</td><td style=text-align:left>Docs</td><td style=text-align:left>Docs: revise comments/update documents</td><td style=text-align:left>Adjustment of documents and notes</td></tr><tr><td style=text-align:left>&#x1f527;</td><td style=text-align:left>Chore</td><td style=text-align:left>Chore: update plugin version</td><td style=text-align:left>Changes in the construction process or auxiliary tools</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/commit-spec/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/commit-spec.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/commit-spec.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Commit+Message+Spec&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCommit+Message+Spec%7c%0A%7cURL%7chttps://lruihao.cn/posts/commit-spec/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/commit-spec.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/commit-spec/ data-title=\"Commit Message Spec\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/commit-spec/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/commit-spec/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/commit-spec/ data-title=\"Commit Message Spec\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/commit-spec/ data-title=\"Commit Message Spec\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/electron-summary/ class=post-nav-item rel=prev title=\"Electron 踩坑总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Electron 踩坑总结</a><a href=/posts/semver/ class=post-nav-item rel=next title=语义版本控制（SemVer）>语义版本控制（SemVer）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#format>Format</a></li><li><a href=#emoji>Emoji</a></li><li><a href=#message>Message</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/aba4cbe833311b22bf5d0427f24941e6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/aba4cbe833311b22bf5d0427f24941e6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/commit-spec/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/commit-spec/index.md",
    "content": "# Commit Message Spec\n\n\n<!-- markdownlint-disable MD033 -->\n\nCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0-beta.4/) specification based on the [Angular convention](https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit) that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\n\n<!--more-->\n\n## Format\n\n`[{emoji} ]{type}[({module})]: {subject within 50 words}[ (#{issue/pull request})]`\n\nexample:\n\n- : tada: Feat: add shortcode fixit-encryptor shortcode (#123)\n- : arrow_up: Chore(libs): update Artalk from 2.2.12 to 2.3.4 (#150)\n\n## Emoji\n\n- <https://gitmoji.dev>\n- [vscode plugin](https://github.com/maixiaojie/git-emoji-zh.git)\n- utools plugin `GitEmoji`\n\n## Message\n\n| Emoji                                         | Type     | Example                                                      | Description (No Ambiguous)                                                                                                               |\n| :-------------------------------------------- | :------- | :----------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |\n| :tada: <br>:sparkles:                         | Feat     | Feat: add {feature}                                          | new feature                                                                                                                              |\n| :truck:                                       |          | Feat: adjust/migrate {feature name}, {change details}        | For the adjustment feature, it is necessary to describe the current situation (before) and after adjustment (after)                      |\n| :fire:                                        |          | Feat: delete {feature name}, {deletion reason}               | If the feature is deleted, the reason for deletion must be explained                                                                     |\n| :bug: <br>:construction: <br>:rotating_light: | Fix      | Fix: fix {bug description}                                   | Fix known bugs                                                                                                                           |\n| :art: <br>:lipstick: <br>:pencil2:            | Style    | Style: Typesetting/CSS style {optimizing content}            | Changes that do not affect code operation, such as code layout and style change                                                          |\n| :recycle:                                     | Refactor | Refactor: override {feature name}                            | It is neither a new function nor a code change to fix a bug. Simply rewriting the code of a function does not affect the function result |\n| :zap:                                         | Perf     | Perf: improve performance {function name}, {improve content} | Optimize code performance                                                                                                                |\n| :rewind:                                      | Revert   | Revert: restore version {commit message of restore version}  | Restore the version of one commit                                                                                                        |\n| :pencil: <br>:pencil2:                        | Docs     | Docs: revise comments/update documents                       | Adjustment of documents and notes                                                                                                        |\n| :wrench:                                      | Chore    | Chore: update plugin version                                 | Changes in the construction process or auxiliary tools                                                                                   |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/commit-spec/  \n\n"
  },
  {
    "path": "posts/config4mac/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Mac 上的开发配置总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\n\"><meta name=keywords content='Git,Mac,Node.js,nvm'><meta itemprop=name content=\"Mac 上的开发配置总结\"><meta itemprop=description content=\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\"><meta itemprop=datePublished content=\"2022-07-29T20:22:44+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=wordCount content=\"1468\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,Mac,Node.js,nvm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/config4mac/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Mac 上的开发配置总结\"><meta property=\"og:description\" content=\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-07-29T20:22:44+08:00\"><meta property=\"article:modified_time\" content=\"2025-01-07T10:08:46+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"Mac\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"nvm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Mac 上的开发配置总结\"><meta name=twitter:description content=\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/config4mac/ title=\"Mac 上的开发配置总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/docs/ title=\"📄 The open-source repo for fixit.lruihao.cn\"><link rel=next type=text/html href=https://lruihao.cn/posts/linux-permission/ title=\"linux 文件权限\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/config4mac/index.md title=\"Mac 上的开发配置总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Mac 上的开发配置总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/config4mac\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, Mac, Node.js, nvm\",\"wordcount\":1468,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/config4mac\\/\",\"datePublished\":\"2022-07-29T20:22:44+08:00\",\"dateModified\":\"2025-01-07T10:08:46+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/config4mac/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Mac 上的开发配置总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Mac 上的开发配置总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2022-07-29 20:22:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-07-29>2022-07-29</time></span>&nbsp;<span title=\"更新于 2025-01-07 10:08:46\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-01-07>2025-01-07</time></span>&nbsp;<span title=\"1468 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Mac 上的开发配置总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#配置文件>配置文件</a></li><li><a href=#常用命令>常用命令</a></li><li><a href=#node>Node</a></li><li><a href=#sourcetree>SourceTree</a></li><li><a href=#terminal>Terminal</a></li><li><a href=#sublime-text-3>sublime-text 3</a></li><li><a href=#startup>开机自启动</a></li><li><a href=#备份>备份</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-01-07，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。</p><h2 class=heading-element id=配置文件><span>1 配置文件</span>\n<a href=#%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Mac 上有很多配置文件都可以用来保存环境变量等配置，根据自己的理解记录了四个文件的用途：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># etc/profile        系统配置文件</span>\n</span></span><span class=line><span class=cl><span class=c1># etc/.bash_profile  系统环境变量配置</span>\n</span></span><span class=line><span class=cl><span class=c1># ~/.bash_profile    个人环境变量配置</span>\n</span></span><span class=line><span class=cl><span class=c1># ~/.zshrc           zsh 的配置文件</span>\n</span></span><span class=line><span class=cl><span class=c1># $ZSH_CUSTOM/*.zsh  自定义 zsh 脚本，在 zsh 启动时会自动执行</span></span></span></code></pre></td></tr></table></div></div></div><p>编辑最多的应该是 <code>~/.bash_profile</code> 和 <code>~/.zshrc</code>, 基本上建议所有的个人配置都放在 <code>~/.bash_profile</code> 中，然后在 <code>~/.zshrc</code> 最后执行 <code>source ~/.bash_profile</code>, 这样也方便将自己的个人环境变量配置备份。</p><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p><code>pnpm setup</code> 会自动在 <code>~/.zshrc</code> 中添加一些配置，如下：</p></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># pnpm</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PNPM_HOME</span><span class=o>=</span><span class=s2>&#34;/Users/liruihao/Library/pnpm&#34;</span>\n</span></span><span class=line><span class=cl><span class=k>case</span> <span class=s2>&#34;:</span><span class=nv>$PATH</span><span class=s2>:&#34;</span> in\n</span></span><span class=line><span class=cl>  *<span class=s2>&#34;:</span><span class=nv>$PNPM_HOME</span><span class=s2>:&#34;</span>*<span class=o>)</span> <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  *<span class=o>)</span> <span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$PNPM_HOME</span><span class=s2>:</span><span class=nv>$PATH</span><span class=s2>&#34;</span> <span class=p>;;</span>\n</span></span><span class=line><span class=cl><span class=k>esac</span>\n</span></span><span class=line><span class=cl><span class=c1># pnpm end</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=常用命令><span>2 常用命令</span>\n<a href=#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 安装/卸载 homebrew install.sh/uninstall.sh</span>\n</span></span><span class=line><span class=cl>/bin/bash -c <span class=s2>&#34;</span><span class=k>$(</span>curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1># 注意：安装 Homebrew 会下载 node, 请做好 node 环境被破坏的准备</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 显示隐藏文件 true/false or cmd+shift+.</span>\n</span></span><span class=line><span class=cl>defaults write com.apple.finder AppleShowAllFiles -boolean <span class=nb>true</span> <span class=p>;</span> killall Finder\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 释放端口</span>\n</span></span><span class=line><span class=cl>lsof -i:<span class=nv>$your_port</span>  <span class=c1># 1. 查看使用端口进程</span>\n</span></span><span class=line><span class=cl><span class=nb>kill</span> -9 <span class=nv>$your_PID</span>   <span class=c1># 2. 释放进程</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=node><span>3 Node</span>\n<a href=#node class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 设置阿里镜像</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> <span class=nv>registry</span><span class=o>=</span>https://registry.npmmirror.com\n</span></span><span class=line><span class=cl><span class=c1># npm config set registry https://registry.npmjs.org</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># GitHub 仓库下载地址前缀镜像</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> <span class=nv>disturl</span><span class=o>=</span>https://registry.npmmirror.com/-/binary/\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 全局安装的依赖</span>\n</span></span><span class=line><span class=cl>npm install -g npm@8.13.1\n</span></span><span class=line><span class=cl>npm install -g cnpm\n</span></span><span class=line><span class=cl>npm install -g @vue/cli\n</span></span><span class=line><span class=cl>npm install -g nvm\n</span></span><span class=line><span class=cl>npm install -g nrm\n</span></span><span class=line><span class=cl>npm install -g yarn\n</span></span><span class=line><span class=cl>npm install -g yrm\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># npm 参数</span>\n</span></span><span class=line><span class=cl>--ignore-scripts  <span class=c1># 忽略脚本错误</span>\n</span></span><span class=line><span class=cl>--force  <span class=c1># 会无视冲突，并强制获取远端 npm 库资源，即使本地有资源也会覆盖掉</span>\n</span></span><span class=line><span class=cl>--legacy-peer-deps  <span class=c1># 安装时忽略所有 peerDependencies，忽视依赖冲突，采用 npm 版本 4 到版本 6 的样式去安装依赖，已有的依赖不会覆盖</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 清除缓存</span>\n</span></span><span class=line><span class=cl>npm cache clean --force\n</span></span><span class=line><span class=cl>rm -rf node_modules\n</span></span><span class=line><span class=cl>rm -rf package-lock.json\n</span></span><span class=line><span class=cl>npm install\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># nvm</span>\n</span></span><span class=line><span class=cl>nvm <span class=nb>alias</span> default <span class=o>[</span>node_version<span class=o>]</span>  <span class=c1># 设置默认版本</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 检查过时依赖</span>\n</span></span><span class=line><span class=cl>npm outdated\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 安全更新</span>\n</span></span><span class=line><span class=cl>npm update\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># ncu 更新检查工具</span>\n</span></span><span class=line><span class=cl><span class=c1># https://blog.51cto.com/u_13028258/5115637?b=totalstatistic</span>\n</span></span><span class=line><span class=cl>npm install -g npm-check-updates\n</span></span><span class=line><span class=cl><span class=c1>## 检查</span>\n</span></span><span class=line><span class=cl>ncu\n</span></span><span class=line><span class=cl>ncu vue\n</span></span><span class=line><span class=cl><span class=c1>## 更新</span>\n</span></span><span class=line><span class=cl>ncu -u\n</span></span><span class=line><span class=cl>ncu -u vue</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>electron 相关配置</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 设置 electron 镜像仓库</span>\n</span></span><span class=line><span class=cl><span class=c1># https://registry.npmmirror.com/-/binary/electron</span>\n</span></span><span class=line><span class=cl><span class=c1># 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> <span class=nv>electron_mirror</span><span class=o>=</span>https://npmmirror.com/mirrors/electron/</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=sourcetree><span>4 SourceTree</span>\n<a href=#sourcetree class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Custom actions</p><ul><li>Script target: <code>/bin/bash</code></li><li>Parameters: <code>/Users/liruihao/workspace/.shell/sync_tags.sh</code></li></ul><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>技巧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>根据不同的 shell 程序选择不同的文件后缀名，并给文件增加可执行权限：</p><ul><li>zsh: <code>.zsh</code></li><li>bash: <code>.sh</code></li></ul></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#! /bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1># 同步远程仓库标签分支脚本</span>\n</span></span><span class=line><span class=cl>git tag -l <span class=p>|</span> xargs git tag -d\n</span></span><span class=line><span class=cl><span class=c1># git fetch origin --prune</span>\n</span></span><span class=line><span class=cl><span class=c1># git fetch origin --tags</span>\n</span></span><span class=line><span class=cl>git fetch origin --prune --prune-tags</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#! /bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1># 同步所有子模组</span>\n</span></span><span class=line><span class=cl>git submodule update --remote --merge</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#! /bin/zsh\n</span></span></span><span class=line><span class=cl><span class=c1># ssh 配置但无法连接时</span>\n</span></span><span class=line><span class=cl>ssh-agent -s\n</span></span><span class=line><span class=cl>ssh-add ~/.ssh/Lruihao-Github  <span class=c1># 私钥路径</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>技巧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>开机启动时系统会去自动读取 <code>id_rsa</code> 的私钥来启动 SSH 链接，若不是默认命令就会失败需要手动执行上诉命令启动，可添加到<a href=#startup>开机自启动</a>。</div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>SourceTree 相关文章<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><ul><li><a href=/posts/sourcetree-husky/>解决 SourceTree 提交时候 husky 命令失败问题</a></li></ul></div></div></div><h2 class=heading-element id=terminal><span>5 Terminal</span>\n<a href=#terminal class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Terminal: 系统自带</li><li>Shell: zsh</li><li>美化：<a href=https://github.com/ohmyzsh/ohmyzsh target=_blank rel=\"external nofollow noopener noreferrer\">ohmyzsh<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>修改启动语</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim <span class=nv>$PREFIX</span>/etc/motd</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=sublime-text-3><span>6 sublime-text 3</span>\n<a href=#sublime-text-3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Terminal 启用 sublime 别名 subl</span>\n</span></span><span class=line><span class=cl><span class=c1>## 1.设置软链（推荐）</span>\n</span></span><span class=line><span class=cl>sudo ln -s <span class=s2>&#34;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl&#34;</span> /usr/local/bin/subl\n</span></span><span class=line><span class=cl><span class=c1>## 2.设置别名</span>\n</span></span><span class=line><span class=cl>vim ~/.bash_profile\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>subl</span><span class=o>=</span><span class=s2>&#34;&#39;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl&#39;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>source</span> ~/.bash_profile <span class=c1># 每打开一个命令窗口，需要先让命令生效</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=startup><span>7 开机自启动</span>\n<a href=#startup class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>系统偏好设置 -> 用户与群组 -> 登录项 -> 增删可执行文件 (需配置默认启动软件)</li><li>将 shell 命令添加到 <code>/System/Library/StartupItems/</code> 或 <code>/Library/StartupItems/</code> 文件夹（测试无效）</li></ol><h2 class=heading-element id=备份><span>8 备份</span>\n<a href=#%e5%a4%87%e4%bb%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=~/.bash_profile><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>~/.bash_profile</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># -------------------------------------</span>\n</span></span><span class=line><span class=cl><span class=c1># This configuration is for Lruihao.</span>\n</span></span><span class=line><span class=cl><span class=c1># https://lruihao.cn/posts/config4mac/</span>\n</span></span><span class=line><span class=cl><span class=c1># -------------------------------------</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>LC_ALL</span><span class=o>=</span>en_US.UTF-8\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>LANG</span><span class=o>=</span>en_US.UTF-8\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># workspace</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>WORKSPACE</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$HOME</span><span class=s2>/workspace&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># alias</span>\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>subl</span><span class=o>=</span><span class=s2>&#34;&#39;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl&#39;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>mysql</span><span class=o>=</span>/usr/local/mysql/bin/mysql\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>mysqladmin</span><span class=o>=</span>/usr/local/mysql/bin/mysqladmin\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>incr</span><span class=o>=</span><span class=s2>&#34;source </span><span class=nv>$WORKSPACE</span><span class=s2>/.shell/incr*.zsh&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>alias</span> <span class=nv>typora</span><span class=o>=</span><span class=s2>&#34;open -a typora&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># maven</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>M2_HOME</span><span class=o>=</span><span class=nv>$HOME</span>/Applications/apache-maven-3.8.5\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$M2_HOME</span>/bin\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># jenv</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$HOME</span><span class=s2>/.jenv/bin:</span><span class=nv>$PATH</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>eval</span> <span class=s2>&#34;</span><span class=k>$(</span>jenv init -<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># java</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>JAVA_8_HOME</span><span class=o>=</span>/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>JAVA_17_HOME</span><span class=o>=</span>/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>JAVA_HOME</span><span class=o>=</span><span class=nv>$JAVA_8_HOME</span>  <span class=c1># 设置一个中间变量，为了方便多个 JDK 版本时更换 JAVA_HOME</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$JAVA_HOME</span>/bin:<span class=nv>$PATH</span>:.  <span class=c1># 冒号前代表 JDK 目录下的 bin 目录，冒号后代表当前目录</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>CLASSPATH</span><span class=o>=</span>.:<span class=nv>$JAVA_HOME</span>/lib/dt.jar:<span class=nv>$JAVA_HOME</span>/lib/tools.jar\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># jmeter</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>JMETER_HOME</span><span class=o>=</span><span class=nv>$HOME</span>/jmeter/apache-jmeter-5.4.1\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$JAVA_HOME</span>/bin:<span class=nv>$PATH</span>:.:<span class=nv>$JMETER_HOME</span>/bin:<span class=nv>$PATH</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>CLASSPATH</span><span class=o>=</span>.:<span class=nv>$JAVA_HOME</span>/lib/dt.jar:<span class=nv>$JAVA_HOME</span>/lib/tools.jar:<span class=nv>$JMETER_HOME</span>/lib/ext/ApacheJMeter_core.jar:<span class=nv>$JMETER_HOME</span>/lib/jorphan.jar:<span class=nv>$JMETER_HOME</span>/lib/logkit-2.0.jar\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># platform-tools of Android SDK</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$HOME</span>/Applications/platform-tools\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># Electron-Mac app development</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>CSC_LINK</span><span class=o>=</span><span class=nv>$WORKSPACE</span>/mac_app_dev/Mac.p12\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>CSC_KEY_PASSWORD</span><span class=o>=</span>xxxxxxxxx\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># yarn</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$HOME</span><span class=s2>/.yarn/bin:</span><span class=nv>$HOME</span><span class=s2>/.config/yarn/global/node_modules/.bin:</span><span class=nv>$PATH</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># zsh custom plugin</span>\n</span></span><span class=line><span class=cl><span class=c1># https://mimosa-pudica.net/zsh-incremental.html</span>\n</span></span><span class=line><span class=cl><span class=c1># source $WORKSPACE/.shell/incr*.zsh</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># Qcloud secret key-value</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>SECRET_ID</span><span class=o>=</span><span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>SECRET_KEY</span><span class=o>=</span><span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># golang</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOROOT</span><span class=o>=</span>/usr/local/go\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOBIN</span><span class=o>=</span><span class=nv>$GOROOT</span>/bin\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$GOBIN</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOPATH</span><span class=o>=</span><span class=nv>$HOME</span>/go\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>GOPROXY</span><span class=o>=</span>https://goproxy.cn\n</span></span><span class=line><span class=cl><span class=c1># Go work bin</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$GOPATH</span>/bin\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># sass_embedded</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=nv>$PATH</span>:<span class=nv>$HOME</span>/Applications/sass_embedded</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=$ZSH_CUSTOM/nvm_custom.zsh><div class=chroma><div class=\"code-header language-zsh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>/nvm_custom.zsh</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-zsh data-lang=zsh><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#manual-install</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>NVM_DIR</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$HOME</span><span class=s2>/.nvm&#34;</span>\n</span></span><span class=line><span class=cl><span class=o>[</span> -s <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/nvm.sh&#34;</span> <span class=o>]</span> <span class=o>&amp;&amp;</span> <span class=se>\\.</span> <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/nvm.sh&#34;</span>  <span class=c1># This loads nvm</span>\n</span></span><span class=line><span class=cl><span class=o>[</span> -s <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/bash_completion&#34;</span> <span class=o>]</span> <span class=o>&amp;&amp;</span> <span class=se>\\.</span> <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/bash_completion&#34;</span>  <span class=c1># This loads nvm bash_completion</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#deeper-shell-integration</span>\n</span></span><span class=line><span class=cl>autoload -U add-zsh-hook\n</span></span><span class=line><span class=cl>load-nvmrc<span class=o>()</span> <span class=o>{</span>\n</span></span><span class=line><span class=cl>  <span class=nb>local</span> <span class=nv>node_version</span><span class=o>=</span><span class=s2>&#34;</span><span class=k>$(</span>nvm version<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>local</span> <span class=nv>nvmrc_path</span><span class=o>=</span><span class=s2>&#34;</span><span class=k>$(</span>nvm_find_nvmrc<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=o>[</span> -n <span class=s2>&#34;</span><span class=nv>$nvmrc_path</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>    <span class=nb>local</span> <span class=nv>nvmrc_node_version</span><span class=o>=</span><span class=k>$(</span>nvm version <span class=s2>&#34;</span><span class=k>$(</span>cat <span class=s2>&#34;</span><span class=si>${</span><span class=nv>nvmrc_path</span><span class=si>}</span><span class=s2>&#34;</span><span class=k>)</span><span class=s2>&#34;</span><span class=k>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$nvmrc_node_version</span><span class=s2>&#34;</span> <span class=o>=</span> <span class=s2>&#34;N/A&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>      nvm install\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$nvmrc_node_version</span><span class=s2>&#34;</span> !<span class=o>=</span> <span class=s2>&#34;</span><span class=nv>$node_version</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>      nvm use\n</span></span><span class=line><span class=cl>    <span class=k>fi</span>\n</span></span><span class=line><span class=cl>  <span class=k>elif</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$node_version</span><span class=s2>&#34;</span> !<span class=o>=</span> <span class=s2>&#34;</span><span class=k>$(</span>nvm version default<span class=k>)</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>    <span class=nb>echo</span> <span class=s2>&#34;Reverting to nvm default version&#34;</span>\n</span></span><span class=line><span class=cl>    nvm use default\n</span></span><span class=line><span class=cl>  <span class=k>fi</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1># fix husky hook</span>\n</span></span><span class=line><span class=cl>  <span class=c1># ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;export PATH=\\&#34;</span><span class=k>$(</span>dirname <span class=k>$(</span>which node<span class=k>))</span><span class=s2>:\\$PATH\\&#34;&#34;</span> &gt; ~/.huskyrc\n</span></span><span class=line><span class=cl><span class=o>}</span>\n</span></span><span class=line><span class=cl>add-zsh-hook chpwd load-nvmrc\n</span></span><span class=line><span class=cl>load-nvmrc\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>NVM_NODEJS_ORG_MIRROR</span><span class=o>=</span>https://mirrors.ustc.edu.cn/node/</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>先添加一些基础配置 <a href=https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim target=_blank rel=\"external nofollow noopener noreferrer\">basic.vim<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=~/.vimrc><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>~/.vimrc</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=s2>&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;\n</span></span></span><span class=line><span class=cl><span class=s2>&#34;</span> <span class=o>=</span>&gt; Custom config <span class=k>for</span> Lruihao\n</span></span><span class=line><span class=cl><span class=s2>&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;&#34;\n</span></span></span><span class=line><span class=cl><span class=s2>&#34;</span> Enable mouse\n</span></span><span class=line><span class=cl><span class=nb>set</span> <span class=nv>mouse</span><span class=o>=</span>a\n</span></span><span class=line><span class=cl><span class=s2>&#34; Enable line-number\n</span></span></span><span class=line><span class=cl><span class=s2>set number</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-01-07 10:08:46\">更新于 2025-01-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8d4dfb6ef92b3c7bdf2763b895671cd8dfdc384e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 更新配置备份，修改默认搜素引擎&#10&#10Commit: 8d4dfb6ef92b3c7bdf2763b895671cd8dfdc384e [8d4dfb6]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-01-07 10:08:46\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8d4dfb6</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/config4mac/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/config4mac.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/config4mac.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Mac+%E4%B8%8A%E7%9A%84%E5%BC%80%E5%8F%91%E9%85%8D%E7%BD%AE%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cMac+%E4%B8%8A%E7%9A%84%E5%BC%80%E5%8F%91%E9%85%8D%E7%BD%AE%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/config4mac/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/config4mac.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/config4mac/ data-title=\"Mac 上的开发配置总结\" data-hashtags=Git,Mac,Node.js,nvm><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/config4mac/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/config4mac/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/config4mac/ data-title=\"Mac 上的开发配置总结\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/config4mac/ data-title=\"Mac 上的开发配置总结\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/mac/ class=post-tag title=\"标签 - Mac\">Mac</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/nvm/ class=post-tag title=\"标签 - nvm\">nvm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/docs/ class=post-nav-item rel=prev title=hugo-fixit/docs><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/docs</a><a href=/posts/linux-permission/ class=post-nav-item rel=next title=\"Linux 文件权限\">Linux 文件权限<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#配置文件>配置文件</a></li><li><a href=#常用命令>常用命令</a></li><li><a href=#node>Node</a></li><li><a href=#sourcetree>SourceTree</a></li><li><a href=#terminal>Terminal</a></li><li><a href=#sublime-text-3>sublime-text 3</a></li><li><a href=#startup>开机自启动</a></li><li><a href=#备份>备份</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d1ff0bc4ecb52aa165876cbd218d8413.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d1ff0bc4ecb52aa165876cbd218d8413.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/config4mac/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/config4mac/index.md",
    "content": "# Mac 上的开发配置总结\n\n\n记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\n\n<!--more-->\n\n## 配置文件\n\nMac 上有很多配置文件都可以用来保存环境变量等配置，根据自己的理解记录了四个文件的用途：\n\n```bash\n# etc/profile        系统配置文件\n# etc/.bash_profile  系统环境变量配置\n# ~/.bash_profile    个人环境变量配置\n# ~/.zshrc           zsh 的配置文件\n# $ZSH_CUSTOM/*.zsh  自定义 zsh 脚本，在 zsh 启动时会自动执行\n```\n\n编辑最多的应该是 `~/.bash_profile` 和 `~/.zshrc`, 基本上建议所有的个人配置都放在 `~/.bash_profile` 中，然后在 `~/.zshrc` 最后执行 `source ~/.bash_profile`, 这样也方便将自己的个人环境变量配置备份。\n\n> [!note]\n> `pnpm setup` 会自动在 `~/.zshrc` 中添加一些配置，如下：\n\n```bash\n# pnpm\nexport PNPM_HOME=\"/Users/liruihao/Library/pnpm\"\ncase \":$PATH:\" in\n  *\":$PNPM_HOME:\"*) ;;\n  *) export PATH=\"$PNPM_HOME:$PATH\" ;;\nesac\n# pnpm end\n```\n\n## 常用命令\n\n```bash\n# 安装/卸载 homebrew install.sh/uninstall.sh\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n# 注意：安装 Homebrew 会下载 node, 请做好 node 环境被破坏的准备\n\n# 显示隐藏文件 true/false or cmd+shift+.\ndefaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder\n\n# 释放端口\nlsof -i:$your_port  # 1. 查看使用端口进程\nkill -9 $your_PID   # 2. 释放进程\n```\n\n## Node\n\n```bash\n# 设置阿里镜像\nnpm config set registry=https://registry.npmmirror.com\n# npm config set registry https://registry.npmjs.org\n\n# GitHub 仓库下载地址前缀镜像\nnpm config set disturl=https://registry.npmmirror.com/-/binary/\n\n# 全局安装的依赖\nnpm install -g npm@8.13.1\nnpm install -g cnpm\nnpm install -g @vue/cli\nnpm install -g nvm\nnpm install -g nrm\nnpm install -g yarn\nnpm install -g yrm\n\n# npm 参数\n--ignore-scripts  # 忽略脚本错误\n--force  # 会无视冲突，并强制获取远端 npm 库资源，即使本地有资源也会覆盖掉\n--legacy-peer-deps  # 安装时忽略所有 peerDependencies，忽视依赖冲突，采用 npm 版本 4 到版本 6 的样式去安装依赖，已有的依赖不会覆盖\n\n# 清除缓存\nnpm cache clean --force\nrm -rf node_modules\nrm -rf package-lock.json\nnpm install\n\n# nvm\nnvm alias default [node_version]  # 设置默认版本\n\n# 检查过时依赖\nnpm outdated\n\n# 安全更新\nnpm update\n\n# ncu 更新检查工具\n# https://blog.51cto.com/u_13028258/5115637?b=totalstatistic\nnpm install -g npm-check-updates\n## 检查\nncu\nncu vue\n## 更新\nncu -u\nncu -u vue\n```\n\nelectron 相关配置\n\n```bash\n# 设置 electron 镜像仓库\n# https://registry.npmmirror.com/-/binary/electron\n# 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v\nnpm config set electron_mirror=https://npmmirror.com/mirrors/electron/\n```\n\n## SourceTree\n\nCustom actions\n\n- Script target: `/bin/bash`\n- Parameters: `/Users/liruihao/workspace/.shell/sync_tags.sh`\n\n{{< admonition tip >}}\n根据不同的 shell 程序选择不同的文件后缀名，并给文件增加可执行权限：\n\n- zsh: `.zsh`\n- bash: `.sh`\n\n{{< /admonition >}}\n\n```bash sync_tags.sh\n#! /bin/bash\n# 同步远程仓库标签分支脚本\ngit tag -l | xargs git tag -d\n# git fetch origin --prune\n# git fetch origin --tags\ngit fetch origin --prune --prune-tags\n```\n\n```bash sync_submodules.ssh\n#! /bin/bash\n# 同步所有子模组\ngit submodule update --remote --merge\n```\n\n```bash ssh.zsh\n#! /bin/zsh\n# ssh 配置但无法连接时\nssh-agent -s\nssh-add ~/.ssh/Lruihao-Github  # 私钥路径\n```\n\n{{< admonition tip >}}\n开机启动时系统会去自动读取 `id_rsa` 的私钥来启动 SSH 链接，若不是默认命令就会失败需要手动执行上诉命令启动，可添加到[开机自启动](#startup)。\n{{< /admonition >}}\n\n{{< admonition tip \"SourceTree 相关文章\" >}}\n\n- [解决 SourceTree 提交时候 husky 命令失败问题](/posts/sourcetree-husky/)\n{{< /admonition >}}\n\n## Terminal\n\n- Terminal: 系统自带\n- Shell: zsh\n- 美化：[ohmyzsh](https://github.com/ohmyzsh/ohmyzsh)\n\n修改启动语\n\n```bash\nvim $PREFIX/etc/motd\n```\n\n## sublime-text 3\n\n```bash\n# Terminal 启用 sublime 别名 subl\n## 1.设置软链（推荐）\nsudo ln -s \"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl\" /usr/local/bin/subl\n## 2.设置别名\nvim ~/.bash_profile\nalias subl=\"'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'\"\nsource ~/.bash_profile # 每打开一个命令窗口，需要先让命令生效\n```\n\n## 开机自启动 {#startup}\n\n1. 系统偏好设置 -> 用户与群组 -> 登录项 -> 增删可执行文件 (需配置默认启动软件)\n2. 将 shell 命令添加到 `/System/Library/StartupItems/` 或 `/Library/StartupItems/` 文件夹（测试无效）\n\n## 备份\n\n```bash {title=\"~/.bash_profile\"}\n# -------------------------------------\n# This configuration is for Lruihao.\n# https://lruihao.cn/posts/config4mac/\n# -------------------------------------\n\nexport LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8\n\n# workspace\nexport WORKSPACE=\"$HOME/workspace\"\n\n# alias\nalias subl=\"'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'\"\nalias mysql=/usr/local/mysql/bin/mysql\nalias mysqladmin=/usr/local/mysql/bin/mysqladmin\nalias incr=\"source $WORKSPACE/.shell/incr*.zsh\"\nalias typora=\"open -a typora\"\n\n# maven\nexport M2_HOME=$HOME/Applications/apache-maven-3.8.5\nexport PATH=$PATH:$M2_HOME/bin\n\n# jenv\nexport PATH=\"$HOME/.jenv/bin:$PATH\"\neval \"$(jenv init -)\"\n\n# java\nexport JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home\nexport JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home\nexport JAVA_HOME=$JAVA_8_HOME  # 设置一个中间变量，为了方便多个 JDK 版本时更换 JAVA_HOME\nexport PATH=$JAVA_HOME/bin:$PATH:.  # 冒号前代表 JDK 目录下的 bin 目录，冒号后代表当前目录\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar\n\n# jmeter\nexport JMETER_HOME=$HOME/jmeter/apache-jmeter-5.4.1\nexport PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar\n\n# platform-tools of Android SDK\nexport PATH=$PATH:$HOME/Applications/platform-tools\n\n# Electron-Mac app development\nexport CSC_LINK=$WORKSPACE/mac_app_dev/Mac.p12\nexport CSC_KEY_PASSWORD=xxxxxxxxx\n\n# yarn\nexport PATH=\"$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH\"\n\n# zsh custom plugin\n# https://mimosa-pudica.net/zsh-incremental.html\n# source $WORKSPACE/.shell/incr*.zsh\n\n# Qcloud secret key-value\nexport SECRET_ID=\"\"\nexport SECRET_KEY=\"\"\n\n# golang\nexport GOROOT=/usr/local/go\nexport GOBIN=$GOROOT/bin\nexport PATH=$PATH:$GOBIN\nexport GOPATH=$HOME/go\nexport GOPROXY=https://goproxy.cn\n# Go work bin\nexport PATH=$PATH:$GOPATH/bin\n\n# sass_embedded\nexport PATH=$PATH:$HOME/Applications/sass_embedded\n```\n\n```zsh {title=\"$ZSH_CUSTOM/nvm_custom.zsh\"}\n# https://github.com/nvm-sh/nvm#manual-install\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] && \\. \"$NVM_DIR/nvm.sh\"  # This loads nvm\n[ -s \"$NVM_DIR/bash_completion\" ] && \\. \"$NVM_DIR/bash_completion\"  # This loads nvm bash_completion\n\n# https://github.com/nvm-sh/nvm#deeper-shell-integration\nautoload -U add-zsh-hook\nload-nvmrc() {\n  local node_version=\"$(nvm version)\"\n  local nvmrc_path=\"$(nvm_find_nvmrc)\"\n\n  if [ -n \"$nvmrc_path\" ]; then\n    local nvmrc_node_version=$(nvm version \"$(cat \"${nvmrc_path}\")\")\n\n    if [ \"$nvmrc_node_version\" = \"N/A\" ]; then\n      nvm install\n    elif [ \"$nvmrc_node_version\" != \"$node_version\" ]; then\n      nvm use\n    fi\n  elif [ \"$node_version\" != \"$(nvm version default)\" ]; then\n    echo \"Reverting to nvm default version\"\n    nvm use default\n  fi\n\n  # fix husky hook\n  # ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421\n  echo \"export PATH=\\\"$(dirname $(which node)):\\$PATH\\\"\" > ~/.huskyrc\n}\nadd-zsh-hook chpwd load-nvmrc\nload-nvmrc\n\n# https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries\nexport NVM_NODEJS_ORG_MIRROR=https://mirrors.ustc.edu.cn/node/\n```\n\n> 先添加一些基础配置 [basic.vim](https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim)\n\n```bash {title=\"~/.vimrc\"}\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\" => Custom config for Lruihao\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\" Enable mouse\nset mouse=a\n\" Enable line-number\nset number\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/config4mac/  \n\n"
  },
  {
    "path": "posts/console-log/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo 博客自定义 Console Log | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具：\nconsole.log() Notepad++ 在线图片转文字工具 \"><meta name=keywords content='Hexo,JavaScript'><meta itemprop=name content=\"hexo 博客自定义 console log\"><meta itemprop=description content=\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具：\nconsole.log() Notepad++ 在线图片转文字工具\"><meta itemprop=datePublished content=\"2018-08-04T16:19:06+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"517\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/console-log/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo 博客自定义 console log\"><meta property=\"og:description\" content=\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具：\nconsole.log() Notepad++ 在线图片转文字工具\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-04T16:19:06+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo 博客自定义 console log\"><meta name=twitter:description content=\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具：\nconsole.log() Notepad++ 在线图片转文字工具\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/console-log/ title=\"hexo 博客自定义 console log | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj2387/ title=\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj1797/ title=\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/console-log/index.md title=\"hexo 博客自定义 console log | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo 博客自定义 console log\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/console-log\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, JavaScript\",\"wordcount\":517,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/console-log\\/\",\"datePublished\":\"2018-08-04T16:19:06+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/console-log/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo 博客自定义 Console Log</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo 博客自定义 Console Log</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-04 16:19:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-04>2018-08-04</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"517 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo 博客自定义 Console Log\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#用法>用法</a></li><li><a href=#图案>图案</a></li><li><a href=#效果图>效果图</a></li><li><a href=#我的-txt>我的 txt</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。<br>我主要用到的工具：</p><ul><li>console.log()</li><li>Notepad++</li><li><a href=http://picascii.com target=_blank rel=\"external nofollow noopener noreferrer\">在线图片转文字工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=用法><span>1 用法</span>\n<a href=#%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>用 js 在<code>&lt;body>&lt;/body></code>使用 console.log() 就行了，hexo 的主题文件在<code>_layout.swig</code>里，所以我们打开该文件，在该位置，添加 js 就行了；</p><p><figure><a class=lightgallery target=_blank href=/posts/console-log/images/console.png title=console data-thumbnail=/posts/console-log/images/console.png data-sub-html=\"<h2>/posts/console-log/images/console.png</h2><p>console</p>\"><img loading=lazy src=/posts/console-log/images/console.png alt=/posts/console-log/images/console.png height=313 width=526></a><figcaption class=image-caption>console</figcaption></figure></p><h2 class=heading-element id=图案><span>2 图案</span>\n<a href=#%e5%9b%be%e6%a1%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我用的我自己的一张照片（电脑上照片就那么几张。)，然后用 在线图片转文字工具 转字符，<br>选择文件，设置大小，然后生成，</p><p><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ1.png title=1 data-thumbnail=/posts/console-log/images/QQ1.png data-sub-html=\"<h2>/posts/console-log/images/QQ1.png</h2><p>1</p>\"><img loading=lazy src=/posts/console-log/images/QQ1.png alt=/posts/console-log/images/QQ1.png height=343 width=939></a><figcaption class=image-caption>1</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ2.png title=2 data-thumbnail=/posts/console-log/images/QQ2.png data-sub-html=\"<h2>/posts/console-log/images/QQ2.png</h2><p>2</p>\"><img loading=lazy src=/posts/console-log/images/QQ2.png alt=/posts/console-log/images/QQ2.png height=451 width=711></a><figcaption class=image-caption>2</figcaption></figure></p><p>生成后，复制 TXT 文件（下面那个框，上面的是 HTML 代码）<br><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ3.png title=3 data-thumbnail=/posts/console-log/images/QQ3.png data-sub-html=\"<h2>/posts/console-log/images/QQ3.png</h2><p>3</p>\"><img loading=lazy src=/posts/console-log/images/QQ3.png alt=/posts/console-log/images/QQ3.png height=570 width=716></a><figcaption class=image-caption>3</figcaption></figure><br>粘贴到 Notepad++ 里面，然后按图操作；<br><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ4.png title=4 data-thumbnail=/posts/console-log/images/QQ4.png data-sub-html=\"<h2>/posts/console-log/images/QQ4.png</h2><p>4</p>\"><img loading=lazy src=/posts/console-log/images/QQ4.png alt=/posts/console-log/images/QQ4.png height=253 width=568></a><figcaption class=image-caption>4</figcaption></figure><br>Ctrl+H 替换<br><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ5.png title=5 data-thumbnail=/posts/console-log/images/QQ5.png data-sub-html=\"<h2>/posts/console-log/images/QQ5.png</h2><p>5</p>\"><img loading=lazy src=/posts/console-log/images/QQ5.png alt=/posts/console-log/images/QQ5.png height=438 width=669></a><figcaption class=image-caption>5</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ6.png title=6 data-thumbnail=/posts/console-log/images/QQ6.png data-sub-html=\"<h2>/posts/console-log/images/QQ6.png</h2><p>6</p>\"><img loading=lazy src=/posts/console-log/images/QQ6.png alt=/posts/console-log/images/QQ6.png height=438 width=669></a><figcaption class=image-caption>6</figcaption></figure><br>最后就变成一个字符串了。</p><h2 class=heading-element id=效果图><span>3 效果图</span>\n<a href=#%e6%95%88%e6%9e%9c%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/console-log/images/QQ7.png title=7 data-thumbnail=/posts/console-log/images/QQ7.png data-sub-html=\"<h2>/posts/console-log/images/QQ7.png</h2><p>7</p>\"><img loading=lazy src=/posts/console-log/images/QQ7.png alt=/posts/console-log/images/QQ7.png height=912 width=947></a><figcaption class=image-caption>7</figcaption></figure><br><a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">线上 demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, 按 F12 找到 console</p><h2 class=heading-element id=我的-txt><span>4 我的 txt</span>\n<a href=#%e6%88%91%e7%9a%84-txt class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-txt\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-txt data-lang=txt><span class=line><span class=cl>\\n`              @@#``@@@@@@@@@@@@@@@@@@##,`   \\n`              @@#`;@@@@@@@@@@@@@@@@@@@&#39;:&#39;   \\n`              @@#`@@@@@@@@@@@@@@@@@@@#+#;`  \\n`              @@#`@@@@@@@@@@@@@@@@@@###@&#39;.  \\n`              @@+.@@@@@@@@@@@@@@@@@@@@@##,  \\n`              @@#,@@@@@@@@@@@@@@@@@@@@@@#,  \\n`              #@#:@@@@@@@@@@@@@@@@@@@@@@@,  \\n`              #@#&#39;@@@@@@@@@@@@@@@@@@@@@@@.  \\n`              +@#;@@@@@@@@@@@@@@@@@@@@@@#   \\n`          `;: ;@#&#39;@@@@@@@@@@@@@@@@@@+&#39;+@&#39;   \\n`    `,,;&#39;;&#39;+&#39;;&#39;@@+:@@@@@@@@@@@@##@#&#39;,.:#;   \\n,, ``    ``..,:;@@#&#39;@@@@@@@@#####@@@@#:`:.   \\n`       `````:++@@@@@@@@@@@@@###@@@@#+,..    \\n        ``````.#@@@@@@@@@@@@@@#@@@#++#&#39;``    \\n`    ```.,,:,.`:@@@@@@@@@@@@@###@@@##&#39;.`     \\n``..`````..,::;+@@@@@@@@@@@@#+`::+##&#39;`.      \\n`      ````.```,@@@@@@@@@@@##;``.,&#39;;` `      \\n``.;@@@@@@@@@@@@@@@@@@@@@@###;``..``````     \\n#@@@@@@@@@@@@@@@@@@@@@@@@##@#;``,``,.``      \\n@@@@@@@@@@@@@@@@@@@.`````..``.. +` `:`       \\n@+&#39;&#39;++#####@@#`.@@@``````` ` `,```  ``       \\n&#39;;;;;&#39;+##+&#39;+.`;+@@@,..```` `` :,.            \\n;::,,:;+#++``,,#@@@&#39;..``````` ,`.``          \\n;,,,,...&#39;#.,,..#@@@#,,.`````` .````          \\n:,,,,....`,::;&#39;&#39;+#@#;,..`````````.``         \\n:,,,.....&#39;##++&#39;&#39;&#39;;:+&#39;:,.`..,,...`            \\n:,,,...#####+&#39;+#@@@&#39;.&#39;;+:.  ` ``             \\n;,,.`&#39;####&#39;#,`.`+@@@+&#39;``` `.`                \\n;,.`#@@@#+:&#39;+++##+@##@,,,,`                  \\n&#39;,.#@@###&#39;&#39;&#39;&#39;;:,.```,+#.                     \\n+,#@@@####;,,..```````````````         `.:,::\\n+@@@@###+;,,..``````````````````          `.,\\n#@@@##+&#39;,,,........``````````````            \\n@@@@#+:,,,,`........``````````               \\n@@@#+:,,,,.`````.....``````````           `` \\n@@##&#39;:,......`````....```  `````          ```\\n@@@#&#39;:,....,..``````..````    ```         ```\\n@@@#&#39;,....,,,..```````````     ```         ..\\n@@@#,.....,,,,.``  ````````   ``````         \\n@@@+....,,,,,..`````````````   ``````````    \\n@@@:....,,,,.LiRuihao````````  ```````````` \\n#@@,....,,,,.Always Be Yourself !````````````\\n,##,,...,::,.````````````..``````   `......``\\n,&#39;#,,..,,:::.`````````........``````   `.,,..\\n\\n 你好！\\n 欢迎进入什么都不会的李瑞豪的个人网站！\\nhttps://lruihao.cn\\nhttps://www.lruihao.cn\\nhttps://lruihao.github.io\\nhttps://liruihao.coding.me\\n\\n\\n\\n</span></span></code></pre></td></tr></table></div></div></div><p>其他个人网站，个人博客也是可以的。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/console-log/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/console-log/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/console-log/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+%E5%8D%9A%E5%AE%A2%E8%87%AA%E5%AE%9A%E4%B9%89+console+log&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+%E5%8D%9A%E5%AE%A2%E8%87%AA%E5%AE%9A%E4%B9%89+console+log%7c%0A%7cURL%7chttps://lruihao.cn/posts/console-log/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/console-log/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/console-log/ data-title=\"Hexo 博客自定义 Console Log\" data-hashtags=Hexo,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/console-log/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/console-log/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/console-log/ data-title=\"Hexo 博客自定义 Console Log\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/console-log/ data-title=\"Hexo 博客自定义 Console Log\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj2387/ class=post-nav-item rel=prev title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a><a href=/posts/poj1797/ class=post-nav-item rel=next title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\">Heavy Transportation-Poj1797(dijkstra 或最大生成树）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#用法>用法</a></li><li><a href=#图案>图案</a></li><li><a href=#效果图>效果图</a></li><li><a href=#我的-txt>我的 txt</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c7d4ef89bfcee2c44727fc9bac4c6f1d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c7d4ef89bfcee2c44727fc9bac4c6f1d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/console-log/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/console-log/index.md",
    "content": "# Hexo 博客自定义 Console Log\n\n\n看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。  \n我主要用到的工具：\n\n- console.log()\n- Notepad++\n- [在线图片转文字工具](http://picascii.com)\n\n<!--more-->\n\n## 用法\n\n用 js 在`<body></body>`使用 console.log() 就行了，hexo 的主题文件在`_layout.swig`里，所以我们打开该文件，在该位置，添加 js 就行了；\n\n![](images/console.png 'console')\n\n## 图案\n\n我用的我自己的一张照片（电脑上照片就那么几张。)，然后用 在线图片转文字工具 转字符，  \n选择文件，设置大小，然后生成，\n\n![](images/QQ1.png '1')  \n![](images/QQ2.png '2')\n\n生成后，复制 TXT 文件（下面那个框，上面的是 HTML 代码）  \n![](images/QQ3.png '3')  \n粘贴到 Notepad++ 里面，然后按图操作；  \n![](images/QQ4.png '4')  \nCtrl+H 替换  \n![](images/QQ5.png '5')  \n![](images/QQ6.png '6')  \n最后就变成一个字符串了。\n\n## 效果图\n\n![](images/QQ7.png '7')  \n[线上 demo](https://lruihao.cn), 按 F12 找到 console\n\n## 我的 txt\n\n```````````````````txt\n\\n`              @@#``@@@@@@@@@@@@@@@@@@##,`   \\n`              @@#`;@@@@@@@@@@@@@@@@@@@':'   \\n`              @@#`@@@@@@@@@@@@@@@@@@@#+#;`  \\n`              @@#`@@@@@@@@@@@@@@@@@@###@'.  \\n`              @@+.@@@@@@@@@@@@@@@@@@@@@##,  \\n`              @@#,@@@@@@@@@@@@@@@@@@@@@@#,  \\n`              #@#:@@@@@@@@@@@@@@@@@@@@@@@,  \\n`              #@#'@@@@@@@@@@@@@@@@@@@@@@@.  \\n`              +@#;@@@@@@@@@@@@@@@@@@@@@@#   \\n`          `;: ;@#'@@@@@@@@@@@@@@@@@@+'+@'   \\n`    `,,;';'+';'@@+:@@@@@@@@@@@@##@#',.:#;   \\n,, ``    ``..,:;@@#'@@@@@@@@#####@@@@#:`:.   \\n`       `````:++@@@@@@@@@@@@@###@@@@#+,..    \\n        ``````.#@@@@@@@@@@@@@@#@@@#++#'``    \\n`    ```.,,:,.`:@@@@@@@@@@@@@###@@@##'.`     \\n``..`````..,::;+@@@@@@@@@@@@#+`::+##'`.      \\n`      ````.```,@@@@@@@@@@@##;``.,';` `      \\n``.;@@@@@@@@@@@@@@@@@@@@@@###;``..``````     \\n#@@@@@@@@@@@@@@@@@@@@@@@@##@#;``,``,.``      \\n@@@@@@@@@@@@@@@@@@@.`````..``.. +` `:`       \\n@+''++#####@@#`.@@@``````` ` `,```  ``       \\n';;;;'+##+'+.`;+@@@,..```` `` :,.            \\n;::,,:;+#++``,,#@@@'..``````` ,`.``          \\n;,,,,...'#.,,..#@@@#,,.`````` .````          \\n:,,,,....`,::;''+#@#;,..`````````.``         \\n:,,,.....'##++''';:+':,.`..,,...`            \\n:,,,...#####+'+#@@@'.';+:.  ` ``             \\n;,,.`'####'#,`.`+@@@+'``` `.`                \\n;,.`#@@@#+:'+++##+@##@,,,,`                  \\n',.#@@###'''';:,.```,+#.                     \\n+,#@@@####;,,..```````````````         `.:,::\\n+@@@@###+;,,..``````````````````          `.,\\n#@@@##+',,,........``````````````            \\n@@@@#+:,,,,`........``````````               \\n@@@#+:,,,,.`````.....``````````           `` \\n@@##':,......`````....```  `````          ```\\n@@@#':,....,..``````..````    ```         ```\\n@@@#',....,,,..```````````     ```         ..\\n@@@#,.....,,,,.``  ````````   ``````         \\n@@@+....,,,,,..`````````````   ``````````    \\n@@@:....,,,,.LiRuihao````````  ```````````` \\n#@@,....,,,,.Always Be Yourself !````````````\\n,##,,...,::,.````````````..``````   `......``\\n,'#,,..,,:::.`````````........``````   `.,,..\\n\\n 你好！\\n 欢迎进入什么都不会的李瑞豪的个人网站！\\nhttps://lruihao.cn\\nhttps://www.lruihao.cn\\nhttps://lruihao.github.io\\nhttps://liruihao.coding.me\\n\\n\\n\\n\n```````````````````\n\n其他个人网站，个人博客也是可以的。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/console-log/  \n\n"
  },
  {
    "path": "posts/content-adapters/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>自动获取 GitHub README 内容添加到 Hugo 文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\n\"><meta name=keywords content='hugo,GitHub API'><meta itemprop=name content=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><meta itemprop=description content=\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\"><meta itemprop=datePublished content=\"2024-10-06T11:10:22+08:00\"><meta itemprop=dateModified content=\"2024-10-06T12:21:43+08:00\"><meta itemprop=wordCount content=\"720\"><meta itemprop=image content=\"https://lruihao.cn/posts/content-adapters/featured-image.webp\"><meta itemprop=keywords content=\"Hugo,GitHub API\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/content-adapters/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><meta property=\"og:description\" content=\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-10-06T11:10:22+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T12:21:43+08:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"GitHub API\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/content-adapters/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/content-adapters/featured-image.webp\"><meta name=twitter:title content=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><meta name=twitter:description content=\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/content-adapters/ title=\"自动获取 GitHub README 内容添加到 Hugo 文章 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/html-demo/ title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ title=\"🐟 A canvas implemented animation effect of small fish swimming.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/content-adapters/index.md title=\"自动获取 GitHub README 内容添加到 Hugo 文章 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/content-adapters\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/content-adapters\\/featured-image.webp\",\"width\":900,\"height\":450}],\"genre\":\"posts\",\"keywords\":\"hugo, GitHub API\",\"wordcount\":720,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/content-adapters\\/\",\"datePublished\":\"2024-10-06T11:10:22+08:00\",\"dateModified\":\"2024-10-06T12:21:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/content-adapters/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>自动获取 GitHub README 内容添加到 Hugo 文章</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>自动获取 GitHub README 内容添加到 Hugo 文章</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2024-10-06 11:10:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"更新于 2024-10-06 12:21:43\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"720 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/content-adapters/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/content-adapters/featured-image.webp height=450 width=900></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#github-api>GitHub API</a></li><li><a href=#content-adapters>Content Adapters</a></li><li><a href=#实现效果>实现效果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。</p><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这个愿景我想了很久了，但是用 JS 通过 GitHub API 获取 README 内容的实现方式体验并不好，所以我一直没有实现。直到最近，我发现了 Hugo v0.126.0 版本新增了一个内容适配器（Content adapters）的概念。</p><blockquote class=blockquote-center><p>Create content adapters to dynamically add content when building your site.</p></blockquote><p>也就是说，我们可以在构建 Hugo 站点时，通过自定义的适配器动态添加内容。理论可行，实践开始。</p><h2 class=heading-element id=github-api><span>2 GitHub API</span>\n<a href=#github-api class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先，我们需要找到 GitHub API 获取 README 内容的接口。懒得翻文档了，直接浏览器打开 <code>https://api.github.com</code>，在 API 列表中最终找到了获取 README 内容的接口：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>GET</span> <span class=nn>/repos/{owner}/{repo}/readme</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>api.github.com</span>\n</span></span><span class=line><span class=cl><span class=n>Authorization</span><span class=o>:</span> <span class=l>token {your_token}</span></span></span></code></pre></td></tr></table></div></div></div><p>有些仓库会有多种语言的 README，还需要获取指定语言的 README 内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>GET</span> <span class=nn>/repos/{owner}/{repo}/contents/README.{lang}.md</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>api.github.com</span>\n</span></span><span class=line><span class=cl><span class=n>Authorization</span><span class=o>:</span> <span class=l>token {your_token}</span></span></span></code></pre></td></tr></table></div></div></div><p>另外，GitHub API 有访问频率限制，需要在请求头中添加 <code>Authorization</code> 字段，值为 <code>token {your_token}</code>。<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup></p><h2 class=heading-element id=content-adapters><span>3 Content Adapters</span>\n<a href=#content-adapters class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在项目文件夹中创建 <code>_content.gotmpl</code>，添加以下代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-go-html-template\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-go-html-template data-lang=go-html-template><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>partial</span><span class=w> </span><span class=s>&#34;adapters/projects.html&#34;</span><span class=w> </span><span class=na>.</span><span class=w> </span><span class=cp>-}}</span></span></span></code></pre></td></tr></table></div></div></div><p>目录结构如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>content/\n</span></span><span class=line><span class=cl>├── projects/\n</span></span><span class=line><span class=cl>│   ├── _content.gotmpl  &lt;-- content adapter\n</span></span><span class=line><span class=cl>│   └── _index.md        &lt;-- layout: projects\n</span></span><span class=line><span class=cl>data/\n</span></span><span class=line><span class=cl>└── projects.yml         &lt;-- projects data</span></span></code></pre></td></tr></table></div></div></div><p>然后，打开 <code>hugo.toml</code> 文件，配置的 <code>projectsAdapters</code> 选项，启用内容适配器：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>projectsAdapters</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>enable</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=nx>onlyPublic</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=nx>categories</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>collections</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>ignoreList</span> <span class=p>=</span> <span class=p>[]</span></span></span></code></pre></td></tr></table></div></div></div><p>好了，现在准备工作都做完了，剩下要做的就是实现 <code>adapters/projects.html</code> 就好了。</p><p>思路：</p><ul class=fi-timeline data-animation><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:1><div class=fi-timeline-item__content>遍历 <code>data/projects.yml</code> 中的项目数据</div><div class=\"fi-timeline-item__timestamp is-bottom\"></div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:2><div class=fi-timeline-item__content>通过 GitHub API 获取 README 内容</div><div class=\"fi-timeline-item__timestamp is-bottom\"></div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:3><div class=fi-timeline-item__content>README 解析为 Markdown 格式，并处理图片链接，部分字符转义</div><div class=\"fi-timeline-item__timestamp is-bottom\"></div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:4 data-type=success><div class=fi-timeline-item__content>将 README 内容添加到 Hugo 文章中</div><div class=\"fi-timeline-item__timestamp is-bottom\"></div></li></ul><p>具体的源码实现可以查看 <a href=https://github.com/hugo-fixit/component-projects/ target=_blank rel=\"external nofollow noopener noreferrer\">component-projects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题组件。</p><h2 class=heading-element id=实现效果><span>4 实现效果</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=/projects/>我的开源</a></li><li><a href=https://fixit.lruihao.cn/components/ target=_blank rel=\"external nofollow noopener noreferrer\">Theme Components ｜ FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>点击跳到 GitHub <a href=https://github.com/settings/tokens/new target=_blank rel=\"external nofollow noopener noreferrer\">生成 token<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择名为 <code>public_repo</code> 的范围以生成个人访问令牌。&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 12:21:43\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8aeae96d83f14641e38c35e1c44040ef33f790ca rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 新增文章“自动获取 GitHub README 内容添加到 Hugo 文章”&#10&#10Commit: 8aeae96d83f14641e38c35e1c44040ef33f790ca [8aeae96]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 12:21:43&#10Commit Date: 2024-10-06 12:25:32\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8aeae96</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/content-adapters/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/content-adapters/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/content-adapters/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%87%AA%E5%8A%A8%E8%8E%B7%E5%8F%96+GitHub+README+%E5%86%85%E5%AE%B9%E6%B7%BB%E5%8A%A0%E5%88%B0+Hugo+%E6%96%87%E7%AB%A0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%87%AA%E5%8A%A8%E8%8E%B7%E5%8F%96+GitHub+README+%E5%86%85%E5%AE%B9%E6%B7%BB%E5%8A%A0%E5%88%B0+Hugo+%E6%96%87%E7%AB%A0%7c%0A%7cURL%7chttps://lruihao.cn/posts/content-adapters/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/content-adapters/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/content-adapters/ data-title=\"自动获取 GitHub README 内容添加到 Hugo 文章\" data-hashtags=\"hugo,GitHub API\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/content-adapters/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/content-adapters/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/content-adapters/ data-title=\"自动获取 GitHub README 内容添加到 Hugo 文章\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/content-adapters/ data-title=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/github-api/ class=post-tag title=\"标签 - GitHub API\">GitHub API</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/html-demo/ class=post-nav-item rel=prev title=Lruihao/html-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/html-demo</a><a href=/projects/hugo-fixit/cmpt-flyfish/ class=post-nav-item rel=next title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#github-api>GitHub API</a></li><li><a href=#content-adapters>Content Adapters</a></li><li><a href=#实现效果>实现效果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2b16902a0ab9359c22af350a1293eba5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2b16902a0ab9359c22af350a1293eba5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/content-adapters/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/content-adapters/index.md",
    "content": "# 自动获取 GitHub README 内容添加到 Hugo 文章\n\n\n在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\n\n<!--more-->\n\n## 前言\n\n这个愿景我想了很久了，但是用 JS 通过 GitHub API 获取 README 内容的实现方式体验并不好，所以我一直没有实现。直到最近，我发现了 Hugo v0.126.0 版本新增了一个内容适配器（Content adapters）的概念。\n\n> Create content adapters to dynamically add content when building your site.\n{.blockquote-center}\n\n也就是说，我们可以在构建 Hugo 站点时，通过自定义的适配器动态添加内容。理论可行，实践开始。\n\n## GitHub API\n\n首先，我们需要找到 GitHub API 获取 README 内容的接口。懒得翻文档了，直接浏览器打开 `https://api.github.com`，在 API 列表中最终找到了获取 README 内容的接口：\n\n```http\nGET /repos/{owner}/{repo}/readme HTTP/1.1\nHost: api.github.com\nAuthorization: token {your_token}\n```\n\n有些仓库会有多种语言的 README，还需要获取指定语言的 README 内容：\n\n```http\nGET /repos/{owner}/{repo}/contents/README.{lang}.md HTTP/1.1\nHost: api.github.com\nAuthorization: token {your_token}\n```\n\n另外，GitHub API 有访问频率限制，需要在请求头中添加 `Authorization` 字段，值为 `token {your_token}`。[^1]\n\n## Content Adapters\n\n在项目文件夹中创建 `_content.gotmpl`，添加以下代码：\n\n```go-html-template\n{{- partial \"adapters/projects.html\" . -}}\n```\n\n目录结构如下：\n\n```plain\ncontent/\n├── projects/\n│   ├── _content.gotmpl  <-- content adapter\n│   └── _index.md        <-- layout: projects\ndata/\n└── projects.yml         <-- projects data\n```\n\n然后，打开 `hugo.toml` 文件，配置的 `projectsAdapters` 选项，启用内容适配器：\n\n```toml\n[params]\n  [params.projectsAdapters]\n    enable = true\n    onlyPublic = true\n    categories = []\n    collections = []\n    ignoreList = []\n```\n\n好了，现在准备工作都做完了，剩下要做的就是实现 `adapters/projects.html` 就好了。\n\n思路：\n\n```timeline {animation=true}\nevents:\n  - content: 遍历 `data/projects.yml` 中的项目数据\n  - content: 通过 GitHub API 获取 README 内容\n  - content: README 解析为 Markdown 格式，并处理图片链接，部分字符转义\n  - content: 将 README 内容添加到 Hugo 文章中\n    type: success\n```\n\n具体的源码实现可以查看 [component-projects](https://github.com/hugo-fixit/component-projects/) 主题组件。\n\n## 实现效果\n\n- [我的开源](/projects/)\n- [Theme Components ｜ FixIt](https://fixit.lruihao.cn/components/)\n\n<!-- footnote reference definition -->\n[^1]: 点击跳到 GitHub [生成 token](https://github.com/settings/tokens/new)，选择名为 `public_repo` 的范围以生成个人访问令牌。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/content-adapters/  \n\n"
  },
  {
    "path": "posts/cos-album.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/projects/cos-album/</title><link rel=canonical href=https://lruihao.cn/projects/cos-album/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/projects/cos-album/\"></head></html>"
  },
  {
    "path": "posts/cos-hexo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>利用腾讯云对象存储 COS 桶托管 Hexo 博客 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\n\"><meta name=keywords content='Hexo,hugo,对象存储,腾讯云 cos 桶'><meta itemprop=name content=\"利用腾讯云对象存储 COS 桶托管 hexo 博客\"><meta itemprop=description content=\"本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\"><meta itemprop=datePublished content=\"2019-01-22T14:57:08+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=wordCount content=\"975\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,Hugo,对象存储,腾讯云 cos 桶\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cos-hexo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"利用腾讯云对象存储 COS 桶托管 hexo 博客\"><meta property=\"og:description\" content=\"本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-22T14:57:08+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T10:24:30+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"对象存储\"><meta property=\"article:tag\" content=\"腾讯云 cos 桶\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"利用腾讯云对象存储 COS 桶托管 hexo 博客\"><meta name=twitter:description content=\"本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cos-hexo/ title=\"利用腾讯云对象存储 COS 桶托管 hexo 博客 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/java-arrays/ title=\"Arrays 类及基本使用\"><link rel=next type=text/html href=https://lruihao.cn/posts/jicheng/ title=\"java 继承 test\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cos-hexo/index.md title=\"利用腾讯云对象存储 COS 桶托管 hexo 博客 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cos-hexo\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, hugo, 对象存储, 腾讯云 cos 桶\",\"wordcount\":975,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cos-hexo\\/\",\"datePublished\":\"2019-01-22T14:57:08+08:00\",\"dateModified\":\"2024-10-06T10:24:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cos-hexo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>利用腾讯云对象存储 COS 桶托管 Hexo 博客</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>利用腾讯云对象存储 COS 桶托管 Hexo 博客</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-22 14:57:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-22>2019-01-22</time></span>&nbsp;<span title=\"更新于 2024-10-06 10:24:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"975 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#创建存储桶>创建存储桶</a></li><li><a href=#开启静态网站设置>开启静态网站设置</a></li><li><a href=#绑定域名>绑定域名</a></li><li><a href=#域名解析添加记录>域名解析，添加记录</a></li><li><a href=#hexo-设置>hexo 设置</a></li><li><a href=#cdn-刷新>CDN 刷新</a></li><li><a href=#自动-cdn-刷新配置推荐>自动 CDN 刷新配置（推荐）</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。<br>适用于 hexo, hugo 等静态博客的部署。</p></blockquote><h2 class=heading-element id=创建存储桶><span>1 创建存储桶</span>\n<a href=#%e5%88%9b%e5%bb%ba%e5%ad%98%e5%82%a8%e6%a1%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开腾讯云控制台&ndash;云产品&ndash;存储&ndash;对象存储，然后创建存储桶。<br><a class=lightgallery target=_blank href=/posts/cos-hexo/images/1.png title=/posts/cos-hexo/images/1.png data-thumbnail=/posts/cos-hexo/images/1.png data-sub-html=\"<h2>/posts/cos-hexo/images/1.png</h2>\"><img loading=lazy src=/posts/cos-hexo/images/1.png alt=/posts/cos-hexo/images/1.png height=548 width=911></a></p><h2 class=heading-element id=开启静态网站设置><span>2 开启静态网站设置</span>\n<a href=#%e5%bc%80%e5%90%af%e9%9d%99%e6%80%81%e7%bd%91%e7%ab%99%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在基础配置打开静态网站（关掉强制 https)<br><a class=lightgallery target=_blank href=/posts/cos-hexo/images/2.png title=/posts/cos-hexo/images/2.png data-thumbnail=/posts/cos-hexo/images/2.png data-sub-html=\"<h2>/posts/cos-hexo/images/2.png</h2>\"><img loading=lazy src=/posts/cos-hexo/images/2.png alt=/posts/cos-hexo/images/2.png height=455 width=683></a></p><h2 class=heading-element id=绑定域名><span>3 绑定域名</span>\n<a href=#%e7%bb%91%e5%ae%9a%e5%9f%9f%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/cos-hexo/images/3.png title=/posts/cos-hexo/images/3.png data-thumbnail=/posts/cos-hexo/images/3.png data-sub-html=\"<h2>/posts/cos-hexo/images/3.png</h2>\"><img loading=lazy src=/posts/cos-hexo/images/3.png alt=/posts/cos-hexo/images/3.png height=551 width=1647></a></p><p>SSL 设置<br><a class=lightgallery target=_blank href=/posts/cos-hexo/images/4.png title=/posts/cos-hexo/images/4.png data-thumbnail=/posts/cos-hexo/images/4.png data-sub-html=\"<h2>/posts/cos-hexo/images/4.png</h2>\"><img loading=lazy src=/posts/cos-hexo/images/4.png alt=/posts/cos-hexo/images/4.png height=459 width=1500></a></p><h2 class=heading-element id=域名解析添加记录><span>4 域名解析，添加记录</span>\n<a href=#%e5%9f%9f%e5%90%8d%e8%a7%a3%e6%9e%90%e6%b7%bb%e5%8a%a0%e8%ae%b0%e5%bd%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>去 dns 服务商添加域名解析记录 CNAME 指向上面的域名</p><h2 class=heading-element id=hexo-设置><span>5 hexo 设置</span>\n<a href=#hexo-%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>安装插件</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>npm install hexo-deployer-cos --save</span></span></code></pre></td></tr></table></div></div></div><ul><li>站点配置文件</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>deploy:\n</span></span><span class=line><span class=cl>  type: cos\n</span></span><span class=line><span class=cl>  bucket: yourBucketName #cos 桶名称\n</span></span><span class=line><span class=cl>  appId: yourAppId #cos 桶名称后数字\n</span></span><span class=line><span class=cl>  secretId: yourSecretId  #云 API 密钥\n</span></span><span class=line><span class=cl>  secretKey: yourSecretKey #云 API 密钥\n</span></span><span class=line><span class=cl>  region: yourRegion #所属地域</span></span></code></pre></td></tr></table></div></div></div><ul><li>发布还是一样的</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>hexo clean\n</span></span><span class=line><span class=cl>hexo g -d</span></span></code></pre></td></tr></table></div></div></div><p>结果类似于<br><a class=lightgallery target=_blank href=/posts/cos-hexo/images/5.png title=/posts/cos-hexo/images/5.png data-thumbnail=/posts/cos-hexo/images/5.png data-sub-html=\"<h2>/posts/cos-hexo/images/5.png</h2>\"><img loading=lazy src=/posts/cos-hexo/images/5.png alt=/posts/cos-hexo/images/5.png height=449 width=745></a></p><h2 class=heading-element id=cdn-刷新><span>6 CDN 刷新</span>\n<a href=#cdn-%e5%88%b7%e6%96%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>每次更新博客内容完后，都要登陆腾讯云 CDN&ndash;缓存刷新，手动刷新一下 CDN。</p><p>用脚本在每次更新后刷新</p><ul><li>安装</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>npm install qcloud-cdn-node-sdk --save</span></span></code></pre></td></tr></table></div></div></div><ul><li>创建<code>qcloudcdn.js</code>放入<code>script</code>文件夹</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>qcloudSDK</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;qcloud-cdn-node-sdk&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>qcloudSDK</span><span class=p>.</span><span class=nx>config</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>secretId</span><span class=o>:</span> <span class=s1>&#39;你的 ID&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>secretKey</span><span class=o>:</span> <span class=s1>&#39;你的密钥&#39;</span>\n</span></span><span class=line><span class=cl><span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>qcloudSDK</span><span class=p>.</span><span class=nx>request</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>  <span class=s1>&#39;RefreshCdnDir&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;dirs.1&#39;</span><span class=o>:</span> <span class=s1>&#39;http://博客地址&#39;</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>(</span><span class=nx>res</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>res</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>);</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=自动-cdn-刷新配置推荐><span>7 自动 CDN 刷新配置（推荐）</span>\n<a href=#%e8%87%aa%e5%8a%a8-cdn-%e5%88%b7%e6%96%b0%e9%85%8d%e7%bd%ae%e6%8e%a8%e8%8d%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>进入腾讯云，找到 函数计算 -> CDN 缓存刷新函数 -> 创建 CDN 缓存刷新函数</li><li>修改 <code>index.js</code> 内容后重新部署</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=s1>&#39;use strict&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>CosSdk</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;cos-nodejs-sdk-v5&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>CdnSdk</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;./common/CdnSdk&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>CdnRefreshTask</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;./common/CdnRefreshTask&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=p>{</span> <span class=nx>getParams</span><span class=p>,</span> <span class=nx>getObjectUrl</span><span class=p>,</span> <span class=nx>logger</span><span class=p>,</span> <span class=nx>getLogSummary</span> <span class=p>}</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;./common/utils&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>exports</span><span class=p>.</span><span class=nx>main_handler</span> <span class=o>=</span> <span class=kr>async</span> <span class=p>(</span><span class=nx>event</span><span class=p>,</span> <span class=nx>context</span><span class=p>,</span> <span class=nx>callback</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * parse param from event and process.env\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=p>{</span> <span class=nx>objects</span><span class=p>,</span> <span class=nx>cdnHosts</span><span class=p>,</span> <span class=nx>secretId</span><span class=p>,</span> <span class=nx>secretKey</span><span class=p>,</span> <span class=nx>token</span> <span class=p>}</span> <span class=o>=</span> <span class=nx>getParams</span><span class=p>(</span><span class=nx>event</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>logger</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>title</span><span class=o>:</span> <span class=s1>&#39;param is parsed success, param as follow: &#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>data</span><span class=o>:</span> <span class=p>{</span> <span class=nx>objects</span><span class=p>,</span> <span class=nx>cdnHosts</span><span class=p>,</span> <span class=nx>event</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * init cos instance\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>secretId</span> <span class=o>||</span> <span class=o>!</span><span class=nx>secretKey</span> <span class=o>||</span> <span class=o>!</span><span class=nx>token</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>throw</span> <span class=k>new</span> <span class=nb>Error</span><span class=p>(</span><span class=sb>`secretId, secretKey or token is missing`</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>cdnSdkInstance</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>CdnSdk</span><span class=p>({</span> <span class=nx>secretId</span><span class=p>,</span> <span class=nx>secretKey</span><span class=p>,</span> <span class=nx>token</span> <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>cosInstance</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>CosSdk</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>SecretId</span><span class=o>:</span> <span class=nx>secretId</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>SecretKey</span><span class=o>:</span> <span class=nx>secretKey</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>XCosSecurityToken</span><span class=o>:</span> <span class=nx>token</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>taskList</span> <span class=o>=</span> <span class=nx>objects</span><span class=p>.</span><span class=nx>map</span><span class=p>(({</span> <span class=nx>bucket</span><span class=p>,</span> <span class=nx>region</span><span class=p>,</span> <span class=nx>key</span> <span class=p>})</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/* 变更内容-START */</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>purgeUrls</span> <span class=o>=</span> <span class=p>[];</span>\n</span></span><span class=line><span class=cl>    <span class=nx>cdnHosts</span><span class=p>.</span><span class=nx>forEach</span><span class=p>((</span><span class=nx>host</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>tempUrl</span> <span class=o>=</span> <span class=nx>getObjectUrl</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>        <span class=nx>cosInstance</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>bucket</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>region</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>key</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>origin</span><span class=o>:</span> <span class=sb>`</span><span class=si>${</span><span class=o>/^</span><span class=p>(</span><span class=nx>http</span><span class=err>\\</span><span class=o>:</span><span class=err>\\</span><span class=o>/</span><span class=err>\\</span><span class=o>/|</span><span class=nx>https</span><span class=err>\\</span><span class=o>:</span><span class=err>\\</span><span class=o>/</span><span class=err>\\</span><span class=o>/</span><span class=p>)</span><span class=o>/</span><span class=p>.</span><span class=nx>test</span><span class=p>(</span><span class=nx>host</span><span class=p>)</span> <span class=o>?</span> <span class=s1>&#39;&#39;</span> <span class=o>:</span> <span class=s1>&#39;https://&#39;</span><span class=si>}${</span><span class=nx>host</span><span class=si>}</span><span class=sb>`</span>\n</span></span><span class=line><span class=cl>      <span class=p>});</span>\n</span></span><span class=line><span class=cl>      <span class=nx>purgeUrls</span><span class=p>.</span><span class=nx>push</span><span class=p>(</span><span class=nx>tempUrl</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 如果以 /index.html 结尾，则增加目录首页/。\n</span></span></span><span class=line><span class=cl>      <span class=c1>// 例如 https://www.xxxx.com/index.html, 则增加 https://www.xxxx.com/。\n</span></span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=nx>tempUrl</span><span class=p>.</span><span class=nx>lastIndexOf</span><span class=p>(</span><span class=s1>&#39;/index.html&#39;</span><span class=p>)</span> <span class=o>==</span> <span class=nx>tempUrl</span><span class=p>.</span><span class=nx>length</span> <span class=o>-</span> <span class=mi>11</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>purgeUrls</span><span class=p>.</span><span class=nx>push</span><span class=p>(</span><span class=nx>tempUrl</span><span class=p>.</span><span class=nx>substr</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span> <span class=nx>tempUrl</span><span class=p>.</span><span class=nx>length</span> <span class=o>-</span> <span class=mi>10</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=k>new</span> <span class=nx>CdnRefreshTask</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>      <span class=nx>cdnSdkInstance</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>urls</span><span class=o>:</span> <span class=nx>purgeUrls</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/* 变更内容-END */</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>taskResults</span> <span class=o>=</span> <span class=p>[];</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=kr>const</span> <span class=nx>task</span> <span class=k>of</span> <span class=nx>taskList</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>results</span> <span class=o>=</span> <span class=kr>await</span> <span class=nx>task</span><span class=p>.</span><span class=nx>runPurgeTasks</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>taskResults</span><span class=p>.</span><span class=nx>push</span><span class=p>(...</span><span class=nx>results</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>logger</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>title</span><span class=o>:</span> <span class=s1>&#39;cdn refresh full logs:&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>data</span><span class=o>:</span> <span class=nx>taskResults</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=p>{</span> <span class=nx>status</span><span class=p>,</span> <span class=nx>messages</span> <span class=p>}</span> <span class=o>=</span> <span class=nx>getLogSummary</span><span class=p>(</span><span class=nx>taskResults</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>logger</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>messages</span><span class=o>:</span> <span class=nx>messages</span><span class=p>.</span><span class=nx>map</span><span class=p>((</span><span class=nx>item</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>item</span><span class=p>.</span><span class=nx>replace</span><span class=p>(</span><span class=sr>/\\,\\ /g</span><span class=p>,</span> <span class=s1>&#39;\\n&#39;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>status</span> <span class=o>===</span> <span class=s1>&#39;fail&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>throw</span> <span class=nx>messages</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=s1>&#39;; &#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=nx>messages</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=s1>&#39;; &#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>};</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 10:24:30\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cos-hexo/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/cos-hexo/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/cos-hexo/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%88%A9%E7%94%A8%E8%85%BE%E8%AE%AF%E4%BA%91%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8+COS+%E6%A1%B6%E6%89%98%E7%AE%A1+hexo+%E5%8D%9A%E5%AE%A2&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%88%A9%E7%94%A8%E8%85%BE%E8%AE%AF%E4%BA%91%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8+COS+%E6%A1%B6%E6%89%98%E7%AE%A1+hexo+%E5%8D%9A%E5%AE%A2%7c%0A%7cURL%7chttps://lruihao.cn/posts/cos-hexo/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/cos-hexo/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cos-hexo/ data-title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\" data-hashtags=\"Hexo,hugo,对象存储,腾讯云 cos 桶\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cos-hexo/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cos-hexo/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cos-hexo/ data-title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cos-hexo/ data-title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ class=post-tag title=\"标签 - 对象存储\">对象存储</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag title=\"标签 - 腾讯云 cos 桶\">腾讯云 cos 桶</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/java-arrays/ class=post-nav-item rel=prev title=\"Arrays 类及基本使用\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Arrays 类及基本使用</a><a href=/posts/jicheng/ class=post-nav-item rel=next title=\"Java 继承 Test\">Java 继承 Test<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#创建存储桶>创建存储桶</a></li><li><a href=#开启静态网站设置>开启静态网站设置</a></li><li><a href=#绑定域名>绑定域名</a></li><li><a href=#域名解析添加记录>域名解析，添加记录</a></li><li><a href=#hexo-设置>hexo 设置</a></li><li><a href=#cdn-刷新>CDN 刷新</a></li><li><a href=#自动-cdn-刷新配置推荐>自动 CDN 刷新配置（推荐）</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0bb6dac5aeef225eee1557f8c20108f6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0bb6dac5aeef225eee1557f8c20108f6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cos-hexo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cos-hexo/index.md",
    "content": "# 利用腾讯云对象存储 COS 桶托管 Hexo 博客\n\n\n> 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。  \n> 适用于 hexo, hugo 等静态博客的部署。\n\n<!--more-->\n\n## 创建存储桶\n\n打开腾讯云控制台--云产品--存储--对象存储，然后创建存储桶。  \n![](images/1.png)\n\n## 开启静态网站设置\n\n在基础配置打开静态网站（关掉强制 https)  \n![](images/2.png)\n\n## 绑定域名\n\n![](images/3.png)\n\nSSL 设置  \n![](images/4.png)\n\n## 域名解析，添加记录\n\n去 dns 服务商添加域名解析记录 CNAME 指向上面的域名\n\n## hexo 设置\n\n- 安装插件\n\n```\nnpm install hexo-deployer-cos --save\n```\n\n- 站点配置文件\n\n```\ndeploy:\n  type: cos\n  bucket: yourBucketName #cos 桶名称\n  appId: yourAppId #cos 桶名称后数字\n  secretId: yourSecretId  #云 API 密钥\n  secretKey: yourSecretKey #云 API 密钥\n  region: yourRegion #所属地域\n```\n\n- 发布还是一样的\n\n```\nhexo clean\nhexo g -d\n```\n\n结果类似于  \n![](images/5.png)\n\n## CDN 刷新\n\n每次更新博客内容完后，都要登陆腾讯云 CDN--缓存刷新，手动刷新一下 CDN。\n\n用脚本在每次更新后刷新\n\n- 安装\n\n```\nnpm install qcloud-cdn-node-sdk --save\n```\n\n- 创建`qcloudcdn.js`放入`script`文件夹\n\n```js\nconst qcloudSDK = require('qcloud-cdn-node-sdk');\n\nqcloudSDK.config({\n  secretId: '你的 ID',\n  secretKey: '你的密钥'\n});\n\nqcloudSDK.request(\n  'RefreshCdnDir',\n  {\n    'dirs.1': 'http://博客地址'\n  },\n  (res) => {\n    console.log(res);\n  }\n);\n```\n\n## 自动 CDN 刷新配置（推荐）\n\n1. 进入腾讯云，找到 函数计算 -> CDN 缓存刷新函数 -> 创建 CDN 缓存刷新函数\n2. 修改 `index.js` 内容后重新部署\n\n```js\n'use strict';\n\nconst CosSdk = require('cos-nodejs-sdk-v5');\nconst CdnSdk = require('./common/CdnSdk');\nconst CdnRefreshTask = require('./common/CdnRefreshTask');\nconst { getParams, getObjectUrl, logger, getLogSummary } = require('./common/utils');\n\nexports.main_handler = async (event, context, callback) => {\n  /**\n   * parse param from event and process.env\n   */\n  const { objects, cdnHosts, secretId, secretKey, token } = getParams(event);\n\n  logger({\n    title: 'param is parsed success, param as follow: ',\n    data: { objects, cdnHosts, event }\n  });\n  /**\n   * init cos instance\n   */\n  if (!secretId || !secretKey || !token) {\n    throw new Error(`secretId, secretKey or token is missing`);\n  }\n\n  const cdnSdkInstance = new CdnSdk({ secretId, secretKey, token });\n  const cosInstance = new CosSdk({\n    SecretId: secretId,\n    SecretKey: secretKey,\n    XCosSecurityToken: token\n  });\n\n  const taskList = objects.map(({ bucket, region, key }) => {\n    /* 变更内容-START */\n    const purgeUrls = [];\n    cdnHosts.forEach((host) => {\n      const tempUrl = getObjectUrl({\n        cosInstance,\n        bucket,\n        region,\n        key,\n        origin: `${/^(http\\:\\/\\/|https\\:\\/\\/)/.test(host) ? '' : 'https://'}${host}`\n      });\n      purgeUrls.push(tempUrl);\n      // 如果以 /index.html 结尾，则增加目录首页/。\n      // 例如 https://www.xxxx.com/index.html, 则增加 https://www.xxxx.com/。\n      if (tempUrl.lastIndexOf('/index.html') == tempUrl.length - 11) {\n        purgeUrls.push(tempUrl.substr(0, tempUrl.length - 10));\n      }\n    });\n    return new CdnRefreshTask({\n      cdnSdkInstance,\n      urls: purgeUrls\n    });\n    /* 变更内容-END */\n  });\n\n  const taskResults = [];\n  for (const task of taskList) {\n    const results = await task.runPurgeTasks();\n    taskResults.push(...results);\n  }\n\n  logger({\n    title: 'cdn refresh full logs:',\n    data: taskResults\n  });\n\n  const { status, messages } = getLogSummary(taskResults);\n\n  logger({\n    messages: messages.map((item) => item.replace(/\\,\\ /g, '\\n'))\n  });\n\n  if (status === 'fail') {\n    throw messages.join('; ');\n  } else {\n    return messages.join('; ');\n  }\n};\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cos-hexo/  \n\n"
  },
  {
    "path": "posts/crash-cheat/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>网页离开时改变标题“崩溃欺骗” | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\n\"><meta name=keywords content='Hexo,JavaScript'><meta itemprop=name content=\"网页离开时改变标题“崩溃欺骗”\"><meta itemprop=description content=\"从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\"><meta itemprop=datePublished content=\"2018-09-26T16:36:08+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"513\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/crash-cheat/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"网页离开时改变标题“崩溃欺骗”\"><meta property=\"og:description\" content=\"从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-09-26T16:36:08+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"网页离开时改变标题“崩溃欺骗”\"><meta name=twitter:description content=\"从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/crash-cheat/ title=\"网页离开时改变标题“崩溃欺骗” | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/linux-git/ title=\"linux/centos 下的安装 git\"><link rel=next type=text/html href=https://lruihao.cn/posts/night/ title=网页夜间效果><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/crash-cheat/index.md title=\"网页离开时改变标题“崩溃欺骗” | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"网页离开时改变标题“崩溃欺骗”\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/crash-cheat\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, JavaScript\",\"wordcount\":513,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/crash-cheat\\/\",\"datePublished\":\"2018-09-26T16:36:08+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/crash-cheat/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>网页离开时改变标题“崩溃欺骗”</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>网页离开时改变标题“崩溃欺骗”</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2018-09-26 16:36:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-09-26>2018-09-26</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"513 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=网页离开时改变标题“崩溃欺骗”><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#创建一个-js-文件>创建一个 js 文件</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。</p></blockquote><h2 class=heading-element id=创建一个-js-文件><span>1 创建一个 js 文件</span>\n<a href=#%e5%88%9b%e5%bb%ba%e4%b8%80%e4%b8%aa-js-%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我们先创建一个 js 文件，我们用记事本就好了，然后改个文件名，不妨就叫<code>crash-cheat.js</code>吧，你们可以随意！<br>然后把文件放到 source 文件夹的 js 文件夹的 src 里面。（我用的 next 主题，放这里统一存放，其他主题随意）</p><p>崩溃欺骗 (Jquery 版）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>var</span> <span class=nx>OriginTitle</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>title</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>titleTime</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;visibilitychange&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>hidden</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>$</span><span class=p>(</span><span class=s1>&#39;[rel=&#34;icon&#34;]&#39;</span><span class=p>).</span><span class=nx>attr</span><span class=p>(</span><span class=s1>&#39;href&#39;</span><span class=p>,</span> <span class=s1>&#39;https://i.loli.net/2018/08/24/5b7fcb00ed9bf.png&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=s1>&#39;怎么回事╭(°A°`)╮&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>clearTimeout</span><span class=p>(</span><span class=nx>titleTime</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>$</span><span class=p>(</span><span class=s2>&#34;[rel=&#39;icon&#39;]&#34;</span><span class=p>).</span><span class=nx>attr</span><span class=p>(</span><span class=s1>&#39;href&#39;</span><span class=p>,</span> <span class=s1>&#39;https://i.loli.net/2018/09/25/5baa4f21661e7.png&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=s1>&#39;小老弟 (ฅ&gt;ω&lt;*ฅ)&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>titleTime</span> <span class=o>=</span> <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=nx>OriginTitle</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>$</span><span class=p>(</span><span class=s2>&#34;[rel=&#39;icon&#39;]&#34;</span><span class=p>).</span><span class=nx>attr</span><span class=p>(</span><span class=s1>&#39;href&#39;</span><span class=p>,</span> <span class=s1>&#39;/images/favicon-32x32-next.png&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span> <span class=mi>2000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>崩溃欺骗 (JS 版）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>var</span> <span class=nx>oldTitle</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>title</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>titleTime</span><span class=p>;</span> <span class=c1>//標題恢復計時器\n</span></span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;visibilitychange&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>hidden</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s2>&#34;[rel=&#39;icon&#39;]&#34;</span><span class=p>).</span><span class=nx>setAttribute</span><span class=p>(</span><span class=s1>&#39;href&#39;</span><span class=p>,</span> <span class=s1>&#39;/images/icons/favicon-32.png&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=s1>&#39;網站崩潰了！&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>clearTimeout</span><span class=p>(</span><span class=nx>titleTime</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=s1>&#39;其實並沒有！&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s2>&#34;[rel=&#39;icon&#39;]&#34;</span><span class=p>).</span><span class=nx>setAttribute</span><span class=p>(</span><span class=s1>&#39;href&#39;</span><span class=p>,</span> <span class=s1>&#39;/images/icons/crash.png&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nx>titleTime</span> <span class=o>=</span> <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nb>document</span><span class=p>.</span><span class=nx>title</span> <span class=o>=</span> <span class=nx>oldTitle</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span> <span class=mi>1000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用><span>2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在<code>hexo\\themes\\hexo-theme-next\\layout</code>文件路径找到<code>layout.swig</code>文件，其他有些主题用的是<code>.ejs</code>后缀，一样的。<br>然后打开文件，在<code>&lt;body>&lt;/body></code>之间加入调用刚刚的 js。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;/js/src/crash-cheat.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>重新部署博客就可以了。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/crash-cheat/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/crash-cheat.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/crash-cheat.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%BD%91%E9%A1%B5%E7%A6%BB%E5%BC%80%E6%97%B6%E6%94%B9%E5%8F%98%E6%A0%87%E9%A2%98%E2%80%9C%E5%B4%A9%E6%BA%83%E6%AC%BA%E9%AA%97%E2%80%9D&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%BD%91%E9%A1%B5%E7%A6%BB%E5%BC%80%E6%97%B6%E6%94%B9%E5%8F%98%E6%A0%87%E9%A2%98%E2%80%9C%E5%B4%A9%E6%BA%83%E6%AC%BA%E9%AA%97%E2%80%9D%7c%0A%7cURL%7chttps://lruihao.cn/posts/crash-cheat/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/crash-cheat.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/crash-cheat/ data-title=网页离开时改变标题“崩溃欺骗” data-hashtags=Hexo,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/crash-cheat/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/crash-cheat/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/crash-cheat/ data-title=网页离开时改变标题“崩溃欺骗” data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/crash-cheat/ data-title=网页离开时改变标题“崩溃欺骗”><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/linux-git/ class=post-nav-item rel=prev title=\"Linux/Centos 下的安装 Git\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Linux/Centos 下的安装 Git</a><a href=/posts/night/ class=post-nav-item rel=next title=网页夜间效果>网页夜间效果<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#创建一个-js-文件>创建一个 js 文件</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f9292c8cd2371ac9de89f6c155166df1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f9292c8cd2371ac9de89f6c155166df1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/crash-cheat/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/crash-cheat/index.md",
    "content": "# 网页离开时改变标题“崩溃欺骗”\n\n\n> 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\n\n<!--more-->\n\n## 创建一个 js 文件\n\n我们先创建一个 js 文件，我们用记事本就好了，然后改个文件名，不妨就叫`crash-cheat.js`吧，你们可以随意！  \n然后把文件放到 source 文件夹的 js 文件夹的 src 里面。（我用的 next 主题，放这里统一存放，其他主题随意）\n\n崩溃欺骗 (Jquery 版）\n\n```js 崩溃欺骗 (Jquery 版）\nvar OriginTitle = document.title;\nvar titleTime;\ndocument.addEventListener('visibilitychange', function () {\n  if (document.hidden) {\n    $('[rel=\"icon\"]').attr('href', 'https://i.loli.net/2018/08/24/5b7fcb00ed9bf.png');\n    document.title = '怎么回事╭(°A°`)╮';\n    clearTimeout(titleTime);\n  } else {\n    $(\"[rel='icon']\").attr('href', 'https://i.loli.net/2018/09/25/5baa4f21661e7.png');\n    document.title = '小老弟 (ฅ>ω<*ฅ)';\n    titleTime = setTimeout(function () {\n      document.title = OriginTitle;\n      $(\"[rel='icon']\").attr('href', '/images/favicon-32x32-next.png');\n    }, 2000);\n  }\n});\n```\n\n崩溃欺骗 (JS 版）\n\n```js 崩溃欺骗 (JS 版）\nvar oldTitle = document.title;\nvar titleTime; //標題恢復計時器\ndocument.addEventListener('visibilitychange', function () {\n  if (document.hidden) {\n    document.querySelector(\"[rel='icon']\").setAttribute('href', '/images/icons/favicon-32.png');\n    document.title = '網站崩潰了！';\n    clearTimeout(titleTime);\n  } else {\n    document.title = '其實並沒有！';\n    document.querySelector(\"[rel='icon']\").setAttribute('href', '/images/icons/crash.png');\n    titleTime = setTimeout(function () {\n      document.title = oldTitle;\n    }, 1000);\n  }\n});\n```\n\n## 使用\n\n在`hexo\\themes\\hexo-theme-next\\layout`文件路径找到`layout.swig`文件，其他有些主题用的是`.ejs`后缀，一样的。  \n然后打开文件，在`<body></body>`之间加入调用刚刚的 js。\n\n```html\n<script type=\"text/javascript\" src=\"/js/src/crash-cheat.js\"></script>\n```\n\n重新部署博客就可以了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/crash-cheat/  \n\n"
  },
  {
    "path": "posts/cron/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Cron 表达式的基本语法 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 基本语法 <秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\n\"><meta name=keywords content='linux,shell,Cron'><meta itemprop=name content=\"Cron 表达式的基本语法\"><meta itemprop=description content=\"1 基本语法 <秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\"><meta itemprop=datePublished content=\"2020-03-25T09:19:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1385\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"linux,shell,Cron\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/cron/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Cron 表达式的基本语法\"><meta property=\"og:description\" content=\"1 基本语法 <秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2020-03-25T09:19:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"shell\"><meta property=\"article:tag\" content=\"Cron\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Cron 表达式的基本语法\"><meta name=twitter:description content=\"1 基本语法 <秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/cron/ title=\"Cron 表达式的基本语法 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/daka/ title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><link rel=next type=text/html href=https://lruihao.cn/posts/csdnvisiter/ title=\"使用 Python 刷 csdn 访问量\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/cron/index.md title=\"Cron 表达式的基本语法 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Cron 表达式的基本语法\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/cron\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"linux, shell, Cron\",\"wordcount\":1385,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/cron\\/\",\"datePublished\":\"2020-03-25T09:19:44+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/cron/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cron 表达式的基本语法</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Cron 表达式的基本语法</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2020-03-25 09:19:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-03-25>2020-03-25</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1385 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Cron 表达式的基本语法\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#基本语法>基本语法</a></li><li><a href=#域取值>域取值</a></li><li><a href=#特殊符号>特殊符号</a></li><li><a href=#举个栗子->举个栗子 🌰</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=基本语法><span>1 基本语法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p><code>&lt;秒> &lt;分钟> &lt;小时> &lt;日期 day-of-month> &lt;月份> &lt;星期 day-of-week></code></p></blockquote><p>Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 <code>X X X X X X</code>。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。</p><h2 class=heading-element id=域取值><span>2 域取值</span>\n<a href=#%e5%9f%9f%e5%8f%96%e5%80%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>位置</th><th>字段</th><th>约束</th><th>取值</th><th>可使用的特殊符号</th></tr></thead><tbody><tr><td>1</td><td>秒</td><td>必须</td><td>0-59</td><td><code>, - * /</code></td></tr><tr><td>2</td><td>分钟</td><td>必须</td><td>0-59</td><td><code>, - * /</code></td></tr><tr><td>3</td><td>小时</td><td>必须</td><td>0-23（0 为午夜）</td><td><code>, - * /</code></td></tr><tr><td>4</td><td>日期</td><td>必须</td><td>1-31</td><td><code>, - * ? / L W</code></td></tr><tr><td>5</td><td>月份</td><td>必须</td><td>1-12 或者 JAN-DEC</td><td><code>, - * /</code></td></tr><tr><td>6</td><td>星期</td><td>必须</td><td>1-7 或者 SUN-SAT (<code>1</code> 代表星期一）</td><td><code>, - ? / L #</code></td></tr></tbody></table></div><h2 class=heading-element id=特殊符号><span>3 特殊符号</span>\n<a href=#%e7%89%b9%e6%ae%8a%e7%ac%a6%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>符号</th><th style=text-align:left>含义</th><th style=text-align:left>示例</th></tr></thead><tbody><tr><td style=text-align:left><code>*</code></td><td style=text-align:left>所有可能的值。</td><td style=text-align:left>在月域中，<code>*</code>表示每个月；在星期域中，<code>*</code>表示星期的每一天。</td></tr><tr><td style=text-align:left><code>,</code></td><td style=text-align:left>列出枚举值。</td><td style=text-align:left>在分钟域中，<code>5,20</code>表示分别在 5 分钟和 20 分钟触发一次。</td></tr><tr><td style=text-align:left><code>-</code></td><td style=text-align:left>范围。</td><td style=text-align:left>在分钟域中，<code>5-20</code>表示从 5 分钟到 20 分钟之间每隔一分钟触发一次。</td></tr><tr><td style=text-align:left><code>/</code></td><td style=text-align:left>指定数值的增量。</td><td style=text-align:left>在分钟域中，<code>0/15</code>表示从第 0 分钟开始，每 15 分钟。在分钟域中<code>3/20</code>表示从第 3 分钟开始，每 20 分钟。<strong>*/</strong> 和 <strong>0/</strong> 相同</td></tr><tr><td style=text-align:left><code>?</code></td><td style=text-align:left>不指定值，仅日期和星期域支持该字符。</td><td style=text-align:left>当日期或星期域其中之一被指定了值以后，为了避免冲突，需要将另一个域的值设为<code>?</code>。</td></tr><tr><td style=text-align:left><code>L</code></td><td style=text-align:left>单词 Last 的首字母，表示最后一天，仅日期和星期域支持该字符。<strong>说明</strong> 指定<code>L</code>字符时，避免指定列表或者范围，否则，会导致逻辑问题。</td><td style=text-align:left>在日期域中，<code>L</code>表示某个月的最后一天。在星期域中，<code>L</code>表示一个星期的最后一天，也就是星期日（<code>SUN</code>）。如果在<code>L</code>前有具体的内容，例如，在星期域中的<code>6L</code>表示这个月的最后一个星期六。</td></tr><tr><td style=text-align:left><code>W</code></td><td style=text-align:left>除周末以外的有效工作日，在离指定日期的最近的有效工作日触发事件。<code>W</code>字符寻找最近有效工作日时不会跨过当前月份，连用字符<code>LW</code>时表示为指定月份的最后一个工作日。</td><td style=text-align:left>在日期域中<code>5W</code>，如果 5 日是星期六，则将在最近的工作日星期五，即 4 日触发。如果 5 日是星期天，则将在最近的工作日星期一，即 6 日触发；如果 5 日在星期一到星期五中的一天，则就在 5 日触发。</td></tr><tr><td style=text-align:left><code>#</code></td><td style=text-align:left>确定每个月第几个星期几，仅星期域支持该字符。</td><td style=text-align:left>在星期域中，<code>4#2</code>表示某月的第二个星期四。</td></tr></tbody></table></div><h2 class=heading-element id=举个栗子-><span>4 举个栗子 🌰</span>\n<a href=#%e4%b8%be%e4%b8%aa%e6%a0%97%e5%ad%90- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>表达式</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left><code>0 0/5 * * * ?</code></td><td style=text-align:left>每隔 5 分钟执行一次</td></tr><tr><td style=text-align:left><code>10 0/5 * * * ?</code></td><td style=text-align:left>每隔 5 分钟执行一次，每次执行都在分钟开始的 10 秒，例如 10:00:10、10:05:10 等等。</td></tr><tr><td style=text-align:left><code>0 30 10-13 ? * WED,FRI</code></td><td style=text-align:left>每周三和每周五的 10:30、11:30、12:30、13:30 执行。</td></tr><tr><td style=text-align:left><code>0 0/30 8-9 5,20 * ?</code></td><td style=text-align:left>每个月的 5 号和 20 号的 8 点和 10 点之间每隔 30 分钟执行一次，也就是 8:00、8:30、9:00 和 9:30。</td></tr><tr><td style=text-align:left><code>0 15 10 ? * *</code></td><td style=text-align:left>每天上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 15 10 * * ?</code></td><td style=text-align:left>每天上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 0 12 * * ?</code></td><td style=text-align:left>每天中午 12:00 执行任务</td></tr><tr><td style=text-align:left><code>0 0 10,14,16 * * ?</code></td><td style=text-align:left>每天上午 10:00 点、下午 14:00 以及下午 16:00 执行任务</td></tr><tr><td style=text-align:left><code>0 0/30 9-17 * * ?</code></td><td style=text-align:left>每天上午 09:00 到下午 17:00 时间段内每隔半小时执行任务</td></tr><tr><td style=text-align:left><code>0 * 14 * * ?</code></td><td style=text-align:left>每天下午 14:00 到下午 14:59 时间段内每隔 1 分钟执行任务</td></tr><tr><td style=text-align:left><code>0 0-5 14 * * ?</code></td><td style=text-align:left>每天下午 14:00 到下午 14:05 时间段内每隔 1 分钟执行任务</td></tr><tr><td style=text-align:left><code>0 0/5 14 * * ?</code></td><td style=text-align:left>每天下午 14:00 到下午 14:55 时间段内每隔 5 分钟执行任务</td></tr><tr><td style=text-align:left><code>0 0/5 14,18 * * ?</code></td><td style=text-align:left>每天下午 14:00 到下午 14:55、下午 18:00 到下午 18:55 时间段内每隔 5 分钟执行任务</td></tr><tr><td style=text-align:left><code>0 0 12 ? * WED</code></td><td style=text-align:left>每个星期三中午 12:00 执行任务</td></tr><tr><td style=text-align:left><code>0 15 10 15 * ?</code></td><td style=text-align:left>每月 15 日上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 15 10 L * ?</code></td><td style=text-align:left>每月最后一日上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 15 10 ? * 6L</code></td><td style=text-align:left>每月最后一个星期六上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 15 10 ? * 6#3</code></td><td style=text-align:left>每月第三个星期六上午 10:15 执行任务</td></tr><tr><td style=text-align:left><code>0 10,44 14 ? 3 WED</code></td><td style=text-align:left>每年 3 月的每个星期三下午 14:10 和 14:44 执行任务</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/cron/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/cron.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/cron.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Cron+%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCron+%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/cron/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/cron.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/cron/ data-title=\"Cron 表达式的基本语法\" data-hashtags=linux,shell,Cron><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/cron/ data-hashtag=linux><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/cron/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/cron/ data-title=\"Cron 表达式的基本语法\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/cron/ data-title=\"Cron 表达式的基本语法\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/shell/ class=post-tag title=\"标签 - shell\">shell</a><a href=/tags/cron/ class=post-tag title=\"标签 - Cron\">Cron</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/daka/ class=post-nav-item rel=prev title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>新冠疫情未返校未返工第 N 天之“自动打卡”</a><a href=/posts/csdnvisiter/ class=post-nav-item rel=next title=\"使用 Python 刷 Csdn 访问量\">使用 Python 刷 Csdn 访问量<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#基本语法>基本语法</a></li><li><a href=#域取值>域取值</a></li><li><a href=#特殊符号>特殊符号</a></li><li><a href=#举个栗子->举个栗子 🌰</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/914a1ddda61ca7ee342100d93e625e25.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/914a1ddda61ca7ee342100d93e625e25.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/cron/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/cron/index.md",
    "content": "# Cron 表达式的基本语法\n\n\n## 基本语法\n\n> `<秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>`\n\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 `X X X X X X`。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\n\n<!--more-->\n\n## 域取值\n\n| 位置 | 字段 | 约束 | 取值                               | 可使用的特殊符号 |\n| ---- | ---- | ---- | ---------------------------------- | ---------------- |\n| 1    | 秒   | 必须 | 0-59                               | `, - * /`        |\n| 2    | 分钟 | 必须 | 0-59                               | `, - * /`        |\n| 3    | 小时 | 必须 | 0-23（0 为午夜）                   | `, - * /`        |\n| 4    | 日期 | 必须 | 1-31                               | `, - * ? / L W`  |\n| 5    | 月份 | 必须 | 1-12 或者 JAN-DEC                  | `, - * /`        |\n| 6    | 星期 | 必须 | 1-7 或者 SUN-SAT (`1` 代表星期一） | `, - ? / L #`    |\n\n## 特殊符号\n\n| 符号 | 含义                                                                                                                                                        | 示例                                                                                                                                                                                     |\n| :--- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `*`  | 所有可能的值。                                                                                                                                              | 在月域中，`*`表示每个月；在星期域中，`*`表示星期的每一天。                                                                                                                               |\n| `,`  | 列出枚举值。                                                                                                                                                | 在分钟域中，`5,20`表示分别在 5 分钟和 20 分钟触发一次。                                                                                                                                  |\n| `-`  | 范围。                                                                                                                                                      | 在分钟域中，`5-20`表示从 5 分钟到 20 分钟之间每隔一分钟触发一次。                                                                                                                        |\n| `/`  | 指定数值的增量。                                                                                                                                            | 在分钟域中，`0/15`表示从第 0 分钟开始，每 15 分钟。在分钟域中`3/20`表示从第 3 分钟开始，每 20 分钟。**\\*/** 和 **0/** 相同                                                               |\n| `?`  | 不指定值，仅日期和星期域支持该字符。                                                                                                                        | 当日期或星期域其中之一被指定了值以后，为了避免冲突，需要将另一个域的值设为`?`。                                                                                                          |\n| `L`  | 单词 Last 的首字母，表示最后一天，仅日期和星期域支持该字符。**说明** 指定`L`字符时，避免指定列表或者范围，否则，会导致逻辑问题。                            | 在日期域中，`L`表示某个月的最后一天。在星期域中，`L`表示一个星期的最后一天，也就是星期日（`SUN`）。如果在`L`前有具体的内容，例如，在星期域中的`6L`表示这个月的最后一个星期六。           |\n| `W`  | 除周末以外的有效工作日，在离指定日期的最近的有效工作日触发事件。`W`字符寻找最近有效工作日时不会跨过当前月份，连用字符`LW`时表示为指定月份的最后一个工作日。 | 在日期域中`5W`，如果 5 日是星期六，则将在最近的工作日星期五，即 4 日触发。如果 5 日是星期天，则将在最近的工作日星期一，即 6 日触发；如果 5 日在星期一到星期五中的一天，则就在 5 日触发。 |\n| `#`  | 确定每个月第几个星期几，仅星期域支持该字符。                                                                                                                | 在星期域中，`4#2`表示某月的第二个星期四。                                                                                                                                                |\n\n## 举个栗子 🌰\n\n| 表达式                   | 说明                                                                                            |\n| :----------------------- | :---------------------------------------------------------------------------------------------- |\n| `0 0/5 * * * ?`          | 每隔 5 分钟执行一次                                                                             |\n| `10 0/5 * * * ?`         | 每隔 5 分钟执行一次，每次执行都在分钟开始的 10 秒，例如 10:00:10、10:05:10 等等。               |\n| `0 30 10-13 ? * WED,FRI` | 每周三和每周五的 10:30、11:30、12:30、13:30 执行。                                              |\n| `0 0/30 8-9 5,20 * ?`    | 每个月的 5 号和 20 号的 8 点和 10 点之间每隔 30 分钟执行一次，也就是 8:00、8:30、9:00 和 9:30。 |\n| `0 15 10 ? * *`          | 每天上午 10:15 执行任务                                                                         |\n| `0 15 10 * * ?`          | 每天上午 10:15 执行任务                                                                         |\n| `0 0 12 * * ?`           | 每天中午 12:00 执行任务                                                                         |\n| `0 0 10,14,16 * * ?`     | 每天上午 10:00 点、下午 14:00 以及下午 16:00 执行任务                                           |\n| `0 0/30 9-17 * * ?`      | 每天上午 09:00 到下午 17:00 时间段内每隔半小时执行任务                                          |\n| `0 * 14 * * ?`           | 每天下午 14:00 到下午 14:59 时间段内每隔 1 分钟执行任务                                         |\n| `0 0-5 14 * * ?`         | 每天下午 14:00 到下午 14:05 时间段内每隔 1 分钟执行任务                                         |\n| `0 0/5 14 * * ?`         | 每天下午 14:00 到下午 14:55 时间段内每隔 5 分钟执行任务                                         |\n| `0 0/5 14,18 * * ?`      | 每天下午 14:00 到下午 14:55、下午 18:00 到下午 18:55 时间段内每隔 5 分钟执行任务                |\n| `0 0 12 ? * WED`         | 每个星期三中午 12:00 执行任务                                                                   |\n| `0 15 10 15 * ?`         | 每月 15 日上午 10:15 执行任务                                                                   |\n| `0 15 10 L * ?`          | 每月最后一日上午 10:15 执行任务                                                                 |\n| `0 15 10 ? * 6L`         | 每月最后一个星期六上午 10:15 执行任务                                                           |\n| `0 15 10 ? * 6#3`        | 每月第三个星期六上午 10:15 执行任务                                                             |\n| `0 10,44 14 ? 3 WED`     | 每年 3 月的每个星期三下午 14:10 和 14:44 执行任务                                               |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/cron/  \n\n"
  },
  {
    "path": "posts/csdnvisiter/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>使用 Python 刷 Csdn 访问量 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\n\"><meta name=keywords content='Python'><meta itemprop=name content=\"使用 Python 刷 csdn 访问量\"><meta itemprop=description content=\"使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\"><meta itemprop=datePublished content=\"2020-03-26T11:08:38+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"677\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/csdnvisiter/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"使用 Python 刷 csdn 访问量\"><meta property=\"og:description\" content=\"使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2020-03-26T11:08:38+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"使用 Python 刷 csdn 访问量\"><meta name=twitter:description content=\"使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/csdnvisiter/ title=\"使用 Python 刷 csdn 访问量 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cron/ title=\"Cron 表达式的基本语法\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/cell-blog/ title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/csdnvisiter/index.md title=\"使用 Python 刷 csdn 访问量 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"使用 Python 刷 csdn 访问量\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/csdnvisiter\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python\",\"wordcount\":677,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/csdnvisiter\\/\",\"datePublished\":\"2020-03-26T11:08:38+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/csdnvisiter/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>使用 Python 刷 Csdn 访问量</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>使用 Python 刷 Csdn 访问量</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2020-03-26 11:08:38\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-03-26>2020-03-26</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"677 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"使用 Python 刷 Csdn 访问量\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~</p></blockquote><p>直接丢代码，把代码挂到服务器上可以策马奔腾~，也可以生成二进制文件放到 Windows 桌面上随时使用~<br><a href=/posts/pyinstallererror/>打包 exe 参考</a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=ch>#!/usr/bin/python</span>\n</span></span><span class=line><span class=cl><span class=c1># -*- coding: utf-8 -*-</span>\n</span></span><span class=line><span class=cl><span class=n>__author__</span> <span class=o>=</span> <span class=s1>&#39;lruihao.cn&#39;</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>urllib.request</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>re</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>time</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>bs4</span> <span class=kn>import</span> <span class=n>BeautifulSoup</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>opener</span> <span class=o>=</span> <span class=n>urllib</span><span class=o>.</span><span class=n>request</span><span class=o>.</span><span class=n>build_opener</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=n>opener</span><span class=o>.</span><span class=n>addheaders</span> <span class=o>=</span> <span class=p>[(</span><span class=s1>&#39;User-agent&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                      <span class=s1>&#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36&#39;</span><span class=p>)]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>get_article_url</span><span class=p>(</span><span class=n>page</span><span class=p>,</span><span class=n>name</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>endurl</span> <span class=o>=</span> <span class=s2>&#34;/&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s2>&#34;/article/details/........&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>p</span> <span class=o>=</span> <span class=n>re</span><span class=o>.</span><span class=n>compile</span><span class=p>(</span><span class=n>endurl</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>url</span> <span class=o>=</span> <span class=s2>&#34;http://blog.csdn.net/&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s2>&#34;/article/list/&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>page</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 使用 build_opener() 是为了让 python 程序模仿浏览器进行访问</span>\n</span></span><span class=line><span class=cl>    <span class=n>html</span> <span class=o>=</span> <span class=n>opener</span><span class=o>.</span><span class=n>open</span><span class=p>(</span><span class=n>url</span><span class=p>)</span><span class=o>.</span><span class=n>read</span><span class=p>()</span><span class=o>.</span><span class=n>decode</span><span class=p>(</span><span class=s1>&#39;utf-8&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>allfinds</span> <span class=o>=</span> <span class=n>p</span><span class=o>.</span><span class=n>findall</span><span class=p>(</span><span class=n>html</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>allfinds</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#print(&#39;allfinds&#39;,allfinds)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>start_do</span><span class=p>(</span><span class=n>allfinds</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>urlBase</span> <span class=o>=</span> <span class=s2>&#34;http://blog.csdn.net&#34;</span>  <span class=c1># 需要将网址合并的部分</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 页面中的网址有重复的，需要使用 set 进行去重复</span>\n</span></span><span class=line><span class=cl>    <span class=n>mypages</span> <span class=o>=</span> <span class=nb>list</span><span class=p>(</span><span class=nb>set</span><span class=p>(</span><span class=n>allfinds</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>mypages</span><span class=p>)):</span>\n</span></span><span class=line><span class=cl>        <span class=n>mypages</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=n>urlBase</span> <span class=o>+</span> <span class=n>mypages</span><span class=p>[</span><span class=n>i</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;要刷的网页有：&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>index</span><span class=p>,</span> <span class=n>page</span> <span class=ow>in</span> <span class=nb>enumerate</span><span class=p>(</span><span class=n>mypages</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=nb>str</span><span class=p>(</span><span class=n>index</span><span class=p>),</span> <span class=n>page</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 设置每个网页要刷的次数</span>\n</span></span><span class=line><span class=cl>    <span class=n>brushNum</span> <span class=o>=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1># 所有的页面都刷</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;下面开始刷了哦：&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>index</span><span class=p>,</span> <span class=n>page</span> <span class=ow>in</span> <span class=nb>enumerate</span><span class=p>(</span><span class=n>mypages</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>j</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=n>brushNum</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>            <span class=k>try</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>pageContent</span> <span class=o>=</span> <span class=n>opener</span><span class=o>.</span><span class=n>open</span><span class=p>(</span><span class=n>page</span><span class=p>)</span><span class=o>.</span><span class=n>read</span><span class=p>()</span><span class=o>.</span><span class=n>decode</span><span class=p>(</span><span class=s1>&#39;utf-8&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=c1># 使用 BeautifulSoup 解析每篇博客的标题</span>\n</span></span><span class=line><span class=cl>                <span class=n>soup</span> <span class=o>=</span> <span class=n>BeautifulSoup</span><span class=p>(</span><span class=n>pageContent</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>blogTitle</span> <span class=o>=</span> <span class=nb>str</span><span class=p>(</span><span class=n>soup</span><span class=o>.</span><span class=n>title</span><span class=o>.</span><span class=n>string</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>blogTitle</span> <span class=o>=</span> <span class=n>blogTitle</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=n>blogTitle</span><span class=o>.</span><span class=n>find</span><span class=p>(</span><span class=s1>&#39;-&#39;</span><span class=p>)]</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=nb>str</span><span class=p>(</span><span class=n>j</span><span class=p>),</span> <span class=n>blogTitle</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>except</span> <span class=n>urllib</span><span class=o>.</span><span class=n>error</span><span class=o>.</span><span class=n>HTTPError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;urllib.error.HTTPError&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>3</span><span class=p>)</span>  <span class=c1># 出现错误，停几秒先</span>\n</span></span><span class=line><span class=cl>            <span class=k>except</span> <span class=n>urllib</span><span class=o>.</span><span class=n>error</span><span class=o>.</span><span class=n>URLError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;urllib.error.URLError&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>3</span><span class=p>)</span>  <span class=c1># 出现错误，停几秒先</span>\n</span></span><span class=line><span class=cl>                <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mf>0.5</span><span class=p>)</span>  <span class=c1># 正常停顿，以免服务器拒绝访问</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>main</span><span class=p>(</span><span class=n>name</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>page</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=mi>5</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;************第&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>page</span><span class=p>)</span><span class=o>+</span><span class=s2>&#34;页*************&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>endurl</span> <span class=o>=</span> <span class=n>get_article_url</span><span class=p>(</span><span class=n>page</span><span class=p>,</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>start_do</span><span class=p>(</span><span class=n>endurl</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span> <span class=o>==</span> <span class=s1>&#39;__main__&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=n>name</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;输入你的 csdn 用户名：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=n>name</span><span class=o>==</span><span class=s2>&#34;&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>name</span> <span class=o>=</span> <span class=s2>&#34;qq_39520417&#34;</span> <span class=c1>#cheung99857</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>main</span><span class=p>(</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;开始休息 ...&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>40</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>主函数也可以这样写实现同时刷多人的访问量，人多可以适当减少休眠时间，当然有兴趣的可以尝试一下多线程~</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span> <span class=o>==</span> <span class=s1>&#39;__main__&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 多用户</span>\n</span></span><span class=line><span class=cl>    <span class=n>names</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;qq_39520417&#34;</span><span class=p>,</span><span class=s2>&#34;cheung99857&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>name</span> <span class=ow>in</span> <span class=n>names</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>main</span><span class=p>(</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;开始休息 ...&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=c1># 控制休眠时间相当于控制刷新的速度</span>\n</span></span><span class=line><span class=cl>            <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>30</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/csdnvisiter/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/csdnvisiter.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/csdnvisiter.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BD%BF%E7%94%A8+Python+%E5%88%B7+csdn+%E8%AE%BF%E9%97%AE%E9%87%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BD%BF%E7%94%A8+Python+%E5%88%B7+csdn+%E8%AE%BF%E9%97%AE%E9%87%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/csdnvisiter/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/csdnvisiter.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/csdnvisiter/ data-title=\"使用 Python 刷 Csdn 访问量\" data-hashtags=Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/csdnvisiter/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/csdnvisiter/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/csdnvisiter/ data-title=\"使用 Python 刷 Csdn 访问量\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/csdnvisiter/ data-title=\"使用 Python 刷 Csdn 访问量\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cron/ class=post-nav-item rel=prev title=\"Cron 表达式的基本语法\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Cron 表达式的基本语法</a><a href=/projects/lruihao/cell-blog/ class=post-nav-item rel=next title=Lruihao/cell-blog>Lruihao/cell-blog<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/dd6bebe0a76227cd094747aab35d9b67.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/dd6bebe0a76227cd094747aab35d9b67.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/csdnvisiter/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/csdnvisiter/index.md",
    "content": "# 使用 Python 刷 Csdn 访问量\n\n\n> 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\n\n<!--more-->\n\n直接丢代码，把代码挂到服务器上可以策马奔腾~，也可以生成二进制文件放到 Windows 桌面上随时使用~  \n[打包 exe 参考](/posts/pyinstallererror/)\n\n```python\n#!/usr/bin/python\n# -*- coding: utf-8 -*-\n__author__ = 'lruihao.cn'\nimport urllib.request\nimport re\nimport time\nfrom bs4 import BeautifulSoup\n\nopener = urllib.request.build_opener()\nopener.addheaders = [('User-agent',\n                      'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36')]\n\ndef get_article_url(page,name):\n    endurl = \"/\"+name+\"/article/details/........\"\n    print(name)\n    p = re.compile(endurl)\n    url = \"http://blog.csdn.net/\"+name+\"/article/list/\"+str(page)\n    # 使用 build_opener() 是为了让 python 程序模仿浏览器进行访问\n    html = opener.open(url).read().decode('utf-8')\n    allfinds = p.findall(html)\n    return allfinds\n    #print('allfinds',allfinds)\n\ndef start_do(allfinds):\n    urlBase = \"http://blog.csdn.net\"  # 需要将网址合并的部分\n    # 页面中的网址有重复的，需要使用 set 进行去重复\n    mypages = list(set(allfinds))\n    for i in range(len(mypages)):\n        mypages[i] = urlBase + mypages[i]\n    print('要刷的网页有：')\n    for index, page in enumerate(mypages):\n        print(str(index), page)\n    # 设置每个网页要刷的次数\n    brushNum = 1\n\n    # 所有的页面都刷\n    print('下面开始刷了哦：')\n    for index, page in enumerate(mypages):\n        for j in range(brushNum):\n            try:\n                pageContent = opener.open(page).read().decode('utf-8')\n                # 使用 BeautifulSoup 解析每篇博客的标题\n                soup = BeautifulSoup(pageContent)\n                blogTitle = str(soup.title.string)\n                blogTitle = blogTitle[0:blogTitle.find('-')]\n                print(str(j), blogTitle)\n            except urllib.error.HTTPError:\n                print('urllib.error.HTTPError')\n                time.sleep(3)  # 出现错误，停几秒先\n            except urllib.error.URLError:\n                print('urllib.error.URLError')\n                time.sleep(3)  # 出现错误，停几秒先\n                time.sleep(0.5)  # 正常停顿，以免服务器拒绝访问\n\ndef main(name):\n    for page in range(1,5):\n        print(\"************第\"+str(page)+\"页*************\")\n        endurl = get_article_url(page,name)\n        start_do(endurl)\n\nif __name__ == '__main__':\n  name = input(\"输入你的 csdn 用户名：\")\n  if name==\"\":\n    name = \"qq_39520417\" #cheung99857\n  while 1:\n    main(name)\n        print(\"开始休息 ...\")\n        time.sleep(40)\n```\n\n主函数也可以这样写实现同时刷多人的访问量，人多可以适当减少休眠时间，当然有兴趣的可以尝试一下多线程~\n\n```py\nif __name__ == '__main__':\n    # 多用户\n    names = [\"qq_39520417\",\"cheung99857\"]\n    while 1:\n        for name in names:\n            main(name)\n            print(\"开始休息 ...\")\n            # 控制休眠时间相当于控制刷新的速度\n            time.sleep(30)\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/csdnvisiter/  \n\n"
  },
  {
    "path": "posts/css-round/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>现代 CSS 解决方案：CSS 四舍五入数值单位 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\n\"><meta name=keywords content='CSS,round'><meta itemprop=name content=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><meta itemprop=description content=\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\"><meta itemprop=datePublished content=\"2024-07-29T20:32:39+08:00\"><meta itemprop=dateModified content=\"2024-10-13T12:28:31+08:00\"><meta itemprop=wordCount content=\"2095\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,round\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/css-round/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><meta property=\"og:description\" content=\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-07-29T20:32:39+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-13T12:28:31+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"round\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><meta name=twitter:description content=\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/css-round/ title=\"现代 CSS 解决方案：CSS 四舍五入数值单位 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ title=\"Mobile devtools component powered by vConsole and eruda.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/css-round/index.md title=\"现代 CSS 解决方案：CSS 四舍五入数值单位 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/css-round\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, round\",\"wordcount\":2095,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/css-round\\/\",\"datePublished\":\"2024-07-29T20:32:39+08:00\",\"dateModified\":\"2024-10-13T12:28:31+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/css-round/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS 四舍五入数值单位</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>现代 CSS 解决方案</span>\n<span class=collection-count>5</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？</a></li><li class=collection-item><a href=/posts/scrollbar-styling/ title=标准滚动条控制规范>标准滚动条控制规范</a></li><li class=collection-item><a href=/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</a></li><li class=collection-item><a href=/posts/drop-shadow/ title=异形元素怎么设置阴影？>异形元素怎么设置阴影？</a></li><li class=collection-item><span class=active title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位</span></li></ul><div class=collection-nav-simple><a href=/posts/drop-shadow/ class=collection-nav-item rel=prev title=异形元素怎么设置阴影？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>5/5</span><i class=\"fa-solid fa-angle-right collection-nav-item text-secondary\" aria-hidden=true></i></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>现代 CSS 解决方案：CSS 四舍五入数值单位</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-29 20:32:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-29>2024-07-29</time></span>&nbsp;<span title=\"更新于 2024-10-13 12:28:31\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-13>2024-10-13</time></span>&nbsp;<span title=\"2095 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#何为-css-round-函数>何为 CSS round 函数</a><ol><li><a href=#语法规则>语法规则</a></li><li><a href=#示例>示例</a></li></ol></li><li><a href=#有什么用>有什么用</a></li><li><a href=#实际场景应用>实际场景应用</a></li><li><a href=#兼容性>兼容性</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-13，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将介绍另外一个非常实用的 CSS 数学函数 - <code>round()</code> 及其实际应用场景。</p><h2 class=heading-element id=何为-css-round-函数><span>1 何为 CSS round 函数</span>\n<a href=#%e4%bd%95%e4%b8%ba-css-round-%e5%87%bd%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>这是一个比较新的 CSS 函数，在 <a href=https://drafts.csswg.org/css-values/#funcdef-round target=_blank rel=\"external nofollow noopener noreferrer\">CSS Values and Units Module Level 4<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 规范中提出，自 2024 年 5 月起，此功能适用于最新设备和浏览器版本。此功能可能无法在较旧的设备或浏览器中使用。</p></blockquote><p>CSS <code>round()</code> 函数<strong>根据选定的舍入策略返回舍入数</strong>。</p><p>作者应使用自定义 CSS 属性（例如 <code>--my-property</code>）作为舍入值、间隔或两者兼而有之；如果这些函数具有已知值，使用 <code>round()</code> 函数显然不太必要。</p><h3 class=heading-element id=语法规则><span>1.1 语法规则</span>\n<a href=#%e8%af%ad%e6%b3%95%e8%a7%84%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>round()</code> 的完整语法规则还是比较复杂的。完整的介绍可以看 <a href=https://developer.mozilla.org/en-US/docs/Web/CSS/round target=_blank rel=\"external nofollow noopener noreferrer\">MDN - round()<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=o>&lt;</span><span class=nt>round</span><span class=o>()&gt;</span> <span class=o>=</span> <span class=nt>round</span><span class=o>(</span> <span class=o>&lt;</span><span class=nt>rounding-strategy</span><span class=o>&gt;?,</span> <span class=o>&lt;</span><span class=nt>valueToRound</span><span class=o>&gt;</span> <span class=o>,</span> <span class=o>&lt;</span><span class=nt>roundingInterval</span><span class=o>&gt;</span> <span class=o>)</span></span></span></code></pre></td></tr></table></div></div></div><p><code>round(&lt;rounding-strategy>, valueToRound, roundingInterval)</code> 函数指定可选的舍入策略、要舍入的值（或数学表达式）和舍入间隔（或数学表达式）。根据舍入策略，<code>valueToRound</code> 四舍五入到 <code>roundingInterval</code> 的最接近整数倍。</p><ul><li><code>&lt;rounding-strategy></code>: 可选参数，表示舍入策略。这可能是以下值之一：<ul><li><code>up</code>: 相当于 JavaScript Math.ceil() 方法，将 valueToRound 向上舍入到 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.ceil() 方法。</li><li><code>down</code>: 将 valueToRound 向下舍入为 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.floor() 方法。</li><li><code>nearest</code>: 将 valueToRound 舍入为 roundingInterval 的最接近的整数倍，该倍数可以高于或低于该值。如果 valueToRound 是上方和下方舍入目标之间的一半，则会向上舍入。相当于 JavaScript Math.round()。</li><li><code>to-zero</code>: 将 valueToRound 舍入为 roundingInterval 接近/接近零的最接近整数倍。这相当于 JavaScript Math.trunc() 方法。</li></ul></li><li><code>&lt;valueToRound></code>: 需要被四舍五入的值。必须是 <code>&lt;number></code>、<code>&lt;dimension></code> 或 <code>&lt;percentage></code>，或者解析为这些值之一的数学表达式。</li><li><code>&lt;roundingInterval></code>: 舍入的间隔规则。这是一个 <code>&lt;number></code>、<code>&lt;dimension></code> 或 <code>&lt;percentage></code>，或者解析为这些值之一的数学表达式。</li></ul><h3 class=heading-element id=示例><span>1.2 示例</span>\n<a href=#%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>round</span><span class=o>(</span><span class=nt>var</span><span class=o>(</span><span class=nt>--width</span><span class=o>),</span> <span class=nt>50px</span><span class=o>);</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>round</span><span class=o>(</span><span class=nt>up</span><span class=o>,</span> <span class=nt>101px</span><span class=o>,</span> <span class=nt>var</span><span class=o>(</span><span class=nt>--interval</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>round</span><span class=o>(</span><span class=nt>down</span><span class=o>,</span> <span class=nt>var</span><span class=o>(</span><span class=nt>--height</span><span class=o>),</span> <span class=nt>var</span><span class=o>(</span><span class=nt>--interval</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>margin</span><span class=o>:</span> <span class=nt>round</span><span class=o>(</span><span class=nt>to-zero</span><span class=o>,</span> <span class=nt>-105px</span><span class=o>,</span> <span class=nt>10px</span><span class=o>);</span></span></span></code></pre></td></tr></table></div></div></div><p>MDN 官方写了一个完整的例子，可以看 <a href=https://developer.mozilla.org/en-US/docs/Web/CSS/round target=_blank rel=\"external nofollow noopener noreferrer\">Playground | MDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=有什么用><span>2 有什么用</span>\n<a href=#%e6%9c%89%e4%bb%80%e4%b9%88%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>上面讲了一大堆概念，那这玩意到底有什么用勒？</p><p>好好好，那就再回想一下在此之前我们开发中遇到的痛点吧：</p><ul><li>解决基于 transform 的模糊问题</li><li>使用 <code>round()</code> 模拟步骤缓动动画</li><li>解决百分比或者 <code>rem</code> 单位的四舍五入问题</li></ul><p>前两点可以看 ChokCoco 的文章 <a href=https://www.cnblogs.com/coco1s/p/17676226.html target=_blank rel=\"external nofollow noopener noreferrer\">现代 CSS 解决方案：数学函数 Round<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，里面有详细的讲解。</p><p>而我遇到的主要问题就是第三点，也就是由于浏览器渲染机制，导致有时百分比或者 <code>rem</code> 的单位实际计算值为小数的情况引起的系列问题。</p><p>造成这个现象的主要原因有：</p><ul><li>像素单位和设备像素比（DPR）</li><li>浏览器的子像素渲染偏差</li></ul><p>举个例子吧：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=mi>100</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>child</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=mf>33.33</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>如果容器 <code>.container</code> 中有三个 <code>.child</code> 元素，那么每个 <code>.child</code> 的理论宽度应该是 <code>33.33px</code>。然而，由于不能将像素拆分，浏览器采取四舍五入方式处理，从而得到了 <code>33px</code> 或 <code>34px</code> 的结果。然而，为了保持布局的精确性，浏览器实际上以子像素的方式保存了这些值，并且在渲染时考虑了这部分差异。</p><p>但是！！！坑爹的是，不同浏览器的处理方式也会不同，还有就是子孙节点继承宽度时可能会有四舍五入导致子孙节点宽度大于父节点宽度的问题。</p><h2 class=heading-element id=实际场景应用><span>3 实际场景应用</span>\n<a href=#%e5%ae%9e%e9%99%85%e5%9c%ba%e6%99%af%e5%ba%94%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 FixIt 主题中，页面内容分为左、中、右三栏：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.wrapper</span> <span class=nt>main</span><span class=nc>.container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=ni>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>align-items</span><span class=o>:</span> <span class=ni>flex-start</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>justify-content</span><span class=o>:</span> <span class=ni>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>padding-inline</span><span class=o>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>gap</span><span class=o>:</span> <span class=mi>0</span><span class=mf>.5</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nc>.page</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>width</span><span class=o>:</span> <span class=mi>56</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nn>#comments</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 评论区域 iframe\n</span></span></span><span class=line><span class=cl>      <span class=nt>iframe</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>例如在 <code>1440px</code> 的屏幕上，中间内容宽度应该为 <code>(1440 - 2 * 16) * 0.56 = 788.48px</code>，实际渲染结果却是 <code>788.48px</code>。</p><p>问题来了，在内容的最后加上一个 giscus 评论区域，评论区域容器 <code>iframe</code> 和 <code>iframe</code> 里面的内容按理说应该都是 <code>788.48px</code>，但是实际渲染结果却是：</p><ul><li>评论容器 <code>iframe</code>：<code>788.48px</code></li><li><code>iframe</code> 内评论内容 HTML：<code>789px</code></li></ul><p>怎么说？无奈不，四舍五入，你舍掉其实这个场景我也就不纠结了，恰好它是符合<strong>五入</strong>的规则，向上 <code>1px</code> 取整了，导致的视觉上的影响就是 giscus 评论区域右侧的边框恰巧不见了。—T_T—</p><p>那怎么搞勒，治标不治本的做法就是，把评论区 <code>#comments</code> 的宽度缩小一些，但是我不想这样做。</p><p>我想既然问题是小数点造成的，避免产生小数点不就好了，然后就用到了 <code>round()</code> 函数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>page</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=nf>round</span><span class=p>(</span><span class=mi>56</span><span class=kt>%</span><span class=p>,</span> <span class=mi>2</span><span class=kt>px</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>我希望页面中间永远是偶数，这样可以同时避免左、中、右三个部分出现小数，所以这里的 <code>roundingInterval</code> 设置为 <code>2px</code>，表示四舍五入到 <code>2px</code> 的整数倍，这样就避免了小数点的问题。</p><p>好了，问题就这样愉快地解决了……吗？</p><p>好吧，并没有。—T_T—</p><h2 class=heading-element id=兼容性><span>4 兼容性</span>\n<a href=#%e5%85%bc%e5%ae%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>开头说了这是一个比较新的 CSS 函数，所以兼容性肯定是个问题。尽管<strong>截至 2024 年 7 月 29 日</strong>，<code>round()</code> 函数覆盖了 <strong>67.63%</strong> 的浏览器，并且在各类浏览器中的最新几个版本都得到了完全支持（忽略 IE），但是在一些老版本的浏览器中还是不支持的，如下图。</p><caniuse-embed feature=mdn-css_types_round past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed><p>那又怎么搞勒？要崩溃了，最讨厌兼容性了，也讨厌 Polyfill，但是毕竟 FixIt 主题不是我一个人在用，还是加一下 Polyfill 吧。</p><p>好家伙！没有 Polyfill 可用。真要崩溃了，前面都白折腾了？—T_T—</p><p>也不是没有办法，自己写一个，利用 <code>@supports</code> 写一些兼容性代码吧，不支持的就不用 <code>round()</code> 函数了。</p><p>上面简化后的例子兼容性可以这样写：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=c1>// 顺便提一下，大写 ROUND 是为了避免和 Sass 的 round 函数冲突，CSS 中对函数关键词大小写不敏感。\n</span></span></span><span class=line><span class=cl><span class=nc>.wrapper</span> <span class=nt>main</span><span class=nc>.container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=ni>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>align-items</span><span class=o>:</span> <span class=ni>flex-start</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>justify-content</span><span class=o>:</span> <span class=ni>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>padding-inline</span><span class=o>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>gap</span><span class=o>:</span> <span class=mi>0</span><span class=mf>.5</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nc>.page</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>width</span><span class=o>:</span> <span class=nf>ROUND</span><span class=p>(</span><span class=mi>56</span><span class=kt>%</span><span class=o>,</span> <span class=mi>2</span><span class=kt>px</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=nn>#comments</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 评论区域 iframe\n</span></span></span><span class=line><span class=cl>      <span class=nt>iframe</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>// 如果不支持 round() 函数，回退到设定固定值 56%\n</span></span></span><span class=line><span class=cl>  <span class=k>@supports</span> <span class=nt>not</span> <span class=o>(</span><span class=nt>width</span><span class=nd>:</span> <span class=nt>ROUND</span><span class=o>(</span><span class=nt>56</span><span class=err>%</span><span class=o>,</span> <span class=nt>2px</span><span class=o>))</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nc>.page</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>width</span><span class=o>:</span> <span class=mi>56</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=cm>/* ... */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>好了，跌跌撞撞就这样了，等过两年 <code>round()</code> 函数覆盖率更高了我第一件事就是把上面的兼容性代码删掉。&#x1f602;</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・现代 CSS 解决方案</span></span></a> 5</div><div class=collection-nav><a href=/posts/drop-shadow/ class=collection-nav-item rel=prev title=异形元素怎么设置阴影？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>异形元素怎么设置阴影？</span></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-13 12:28:31\">更新于 2024-10-13&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/847232ca88f6d4c196e1b4f750c6653f5bf5c02f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 更新主题&#10&#10Commit: 847232ca88f6d4c196e1b4f750c6653f5bf5c02f [847232c]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-13 12:28:31&#10Commit Date: 2024-10-13 12:28:52\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>847232c</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/css-round/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-round.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/css-round.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%8E%B0%E4%BB%A3+CSS+%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9ACSS+%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%E6%95%B0%E5%80%BC%E5%8D%95%E4%BD%8D&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%8E%B0%E4%BB%A3+CSS+%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9ACSS+%E5%9B%9B%E8%88%8D%E4%BA%94%E5%85%A5%E6%95%B0%E5%80%BC%E5%8D%95%E4%BD%8D%7c%0A%7cURL%7chttps://lruihao.cn/posts/css-round/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-round.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/css-round/ data-title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\" data-hashtags=CSS,round><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/css-round/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/css-round/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/css-round/ data-title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/css-round/ data-title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/round/ class=post-tag title=\"标签 - round\">round</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/shortcode-rewards/ class=post-nav-item rel=prev title=hugo-fixit/shortcode-rewards><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/shortcode-rewards</a><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=post-nav-item rel=next title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#何为-css-round-函数>何为 CSS round 函数</a><ol><li><a href=#语法规则>语法规则</a></li><li><a href=#示例>示例</a></li></ol></li><li><a href=#有什么用>有什么用</a></li><li><a href=#实际场景应用>实际场景应用</a></li><li><a href=#兼容性>兼容性</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/dbef3e0d34ebab88f6ee074213b96e0c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/dbef3e0d34ebab88f6ee074213b96e0c.js defer></script><script src=/js/theme.min.js defer></script><script src=/lib/shortcode-caniuse/caniuse-embed-element.iife.js async defer></script><script src=/js/shortcode-caniuse.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/css-round/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/css-round/index.md",
    "content": "# 现代 CSS 解决方案：CSS 四舍五入数值单位\n\n\n本文将介绍另外一个非常实用的 CSS 数学函数 - `round()` 及其实际应用场景。\n\n<!--more-->\n\n## 何为 CSS round 函数\n\n> 这是一个比较新的 CSS 函数，在 [CSS Values and Units Module Level 4](https://drafts.csswg.org/css-values/#funcdef-round) 规范中提出，自 2024 年 5 月起，此功能适用于最新设备和浏览器版本。此功能可能无法在较旧的设备或浏览器中使用。\n\nCSS `round()` 函数**根据选定的舍入策略返回舍入数**。\n\n作者应使用自定义 CSS 属性（例如 `--my-property`）作为舍入值、间隔或两者兼而有之；如果这些函数具有已知值，使用 `round()` 函数显然不太必要。\n\n### 语法规则\n\n`round()` 的完整语法规则还是比较复杂的。完整的介绍可以看 [MDN - round()](https://developer.mozilla.org/en-US/docs/Web/CSS/round)。\n\n```css\n<round()> = round( <rounding-strategy>?, <valueToRound> , <roundingInterval> )\n```\n\n`round(<rounding-strategy>, valueToRound, roundingInterval)` 函数指定可选的舍入策略、要舍入的值（或数学表达式）和舍入间隔（或数学表达式）。根据舍入策略，`valueToRound` 四舍五入到 `roundingInterval` 的最接近整数倍。\n\n- `<rounding-strategy>`: 可选参数，表示舍入策略。这可能是以下值之一：\n  - `up`: 相当于 JavaScript Math.ceil() 方法，将 valueToRound 向上舍入到 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.ceil() 方法。\n  - `down`: 将 valueToRound 向下舍入为 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.floor() 方法。\n  - `nearest`: 将 valueToRound 舍入为 roundingInterval 的最接近的整数倍，该倍数可以高于或低于该值。如果 valueToRound 是上方和下方舍入目标之间的一半，则会向上舍入。相当于 JavaScript Math.round()。\n  - `to-zero`: 将 valueToRound 舍入为 roundingInterval 接近/接近零的最接近整数倍。这相当于 JavaScript Math.trunc() 方法。\n- `<valueToRound>`: 需要被四舍五入的值。必须是 `<number>`、`<dimension>` 或 `<percentage>`，或者解析为这些值之一的数学表达式。\n- `<roundingInterval>`: 舍入的间隔规则。这是一个 `<number>`、`<dimension>` 或 `<percentage>`，或者解析为这些值之一的数学表达式。\n\n### 示例\n\n```css\nwidth: round(var(--width), 50px);\nwidth: round(up, 101px, var(--interval));\nwidth: round(down, var(--height), var(--interval));\nmargin: round(to-zero, -105px, 10px);\n```\n\nMDN 官方写了一个完整的例子，可以看 [Playground | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/round)。\n\n## 有什么用\n\n上面讲了一大堆概念，那这玩意到底有什么用勒？\n\n好好好，那就再回想一下在此之前我们开发中遇到的痛点吧：\n\n- 解决基于 transform 的模糊问题\n- 使用 `round()` 模拟步骤缓动动画\n- 解决百分比或者 `rem` 单位的四舍五入问题\n\n前两点可以看 ChokCoco 的文章 [现代 CSS 解决方案：数学函数 Round](https://www.cnblogs.com/coco1s/p/17676226.html)，里面有详细的讲解。\n\n而我遇到的主要问题就是第三点，也就是由于浏览器渲染机制，导致有时百分比或者 `rem` 的单位实际计算值为小数的情况引起的系列问题。\n\n造成这个现象的主要原因有：\n\n- 像素单位和设备像素比（DPR）\n- 浏览器的子像素渲染偏差\n\n举个例子吧：\n\n```css\n.container {\n  width: 100px;\n}\n.child {\n  width: 33.33%;\n}\n```\n\n如果容器 `.container` 中有三个 `.child` 元素，那么每个 `.child` 的理论宽度应该是 `33.33px`。然而，由于不能将像素拆分，浏览器采取四舍五入方式处理，从而得到了 `33px` 或 `34px` 的结果。然而，为了保持布局的精确性，浏览器实际上以子像素的方式保存了这些值，并且在渲染时考虑了这部分差异。\n\n但是！！！坑爹的是，不同浏览器的处理方式也会不同，还有就是子孙节点继承宽度时可能会有四舍五入导致子孙节点宽度大于父节点宽度的问题。\n\n## 实际场景应用\n\n在 FixIt 主题中，页面内容分为左、中、右三栏：\n\n```scss\n.wrapper main.container {\n  display: flex;\n  align-items: flex-start;\n  justify-content: center;\n  padding-inline: 1rem;\n  gap: 0.5rem;\n  .page {\n    width: 56%;\n    #comments {\n      width: 100%;\n      // 评论区域 iframe\n      iframe {\n        width: 100%;\n      }\n    }\n  }\n}\n```\n\n例如在 `1440px` 的屏幕上，中间内容宽度应该为 `(1440 - 2 * 16) * 0.56 = 788.48px`，实际渲染结果却是 `788.48px`。\n\n问题来了，在内容的最后加上一个 giscus 评论区域，评论区域容器 `iframe` 和 `iframe` 里面的内容按理说应该都是 `788.48px`，但是实际渲染结果却是：\n\n- 评论容器 `iframe`：`788.48px`\n- `iframe` 内评论内容 HTML：`789px`\n\n怎么说？无奈不，四舍五入，你舍掉其实这个场景我也就不纠结了，恰好它是符合**五入**的规则，向上 `1px` 取整了，导致的视觉上的影响就是 giscus 评论区域右侧的边框恰巧不见了。—T_T—\n\n那怎么搞勒，治标不治本的做法就是，把评论区 `#comments` 的宽度缩小一些，但是我不想这样做。\n\n我想既然问题是小数点造成的，避免产生小数点不就好了，然后就用到了 `round()` 函数：\n\n```css\n.page {\n  width: round(56%, 2px);\n}\n```\n\n我希望页面中间永远是偶数，这样可以同时避免左、中、右三个部分出现小数，所以这里的 `roundingInterval` 设置为 `2px`，表示四舍五入到 `2px` 的整数倍，这样就避免了小数点的问题。\n\n好了，问题就这样愉快地解决了……吗？\n\n好吧，并没有。—T_T—\n\n## 兼容性\n\n开头说了这是一个比较新的 CSS 函数，所以兼容性肯定是个问题。尽管**截至 2024 年 7 月 29 日**，`round()` 函数覆盖了 **67.63%** 的浏览器，并且在各类浏览器中的最新几个版本都得到了完全支持（忽略 IE），但是在一些老版本的浏览器中还是不支持的，如下图。\n\n{{< caniuse \"mdn-css_types_round\" >}}\n\n那又怎么搞勒？要崩溃了，最讨厌兼容性了，也讨厌 Polyfill，但是毕竟 FixIt 主题不是我一个人在用，还是加一下 Polyfill 吧。\n\n好家伙！没有 Polyfill 可用。真要崩溃了，前面都白折腾了？—T_T—\n\n也不是没有办法，自己写一个，利用 `@supports` 写一些兼容性代码吧，不支持的就不用 `round()` 函数了。\n\n上面简化后的例子兼容性可以这样写：\n\n```scss\n// 顺便提一下，大写 ROUND 是为了避免和 Sass 的 round 函数冲突，CSS 中对函数关键词大小写不敏感。\n.wrapper main.container {\n  display: flex;\n  align-items: flex-start;\n  justify-content: center;\n  padding-inline: 1rem;\n  gap: 0.5rem;\n  .page {\n    width: ROUND(56%, 2px);\n\n    #comments {\n      width: 100%;\n      // 评论区域 iframe\n      iframe {\n        width: 100%;\n      }\n    }\n  }\n\n  // 如果不支持 round() 函数，回退到设定固定值 56%\n  @supports not (width: ROUND(56%, 2px)) {\n    .page {\n      width: 56%;\n    }\n  }\n\n  /* ... */\n}\n```\n\n好了，跌跌撞撞就这样了，等过两年 `round()` 函数覆盖率更高了我第一件事就是把上面的兼容性代码删掉。:joy:\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/css-round/  \n\n"
  },
  {
    "path": "posts/css-scss-var/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>关于 CSS 和 Scss 变量运算那些事 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"关于 CSS 和 Scss 变量运算那些事\"><meta name=keywords content='CSS,Scss'><meta itemprop=name content=\"关于 CSS 和 Scss 变量运算那些事\"><meta itemprop=description content=\"关于 CSS 和 Scss 变量运算那些事\"><meta itemprop=datePublished content=\"2022-04-30T22:04:29+08:00\"><meta itemprop=dateModified content=\"2024-07-14T17:09:39+08:00\"><meta itemprop=wordCount content=\"472\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,Scss\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/css-scss-var/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"关于 CSS 和 Scss 变量运算那些事\"><meta property=\"og:description\" content=\"关于 CSS 和 Scss 变量运算那些事\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-04-30T22:04:29+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-14T17:09:39+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"Scss\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"关于 CSS 和 Scss 变量运算那些事\"><meta name=twitter:description content=\"关于 CSS 和 Scss 变量运算那些事\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/css-scss-var/ title=\"关于 CSS 和 Scss 变量运算那些事 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/gtd/ title=\"Getting Things Done for ios App Reminders and Github issues\"><link rel=next type=text/html href=https://lruihao.cn/posts/js-rediscover/ title=\"重新认识 JavaScript\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/css-scss-var/index.md title=\"关于 CSS 和 Scss 变量运算那些事 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"关于 CSS 和 Scss 变量运算那些事\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/css-scss-var\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, Scss\",\"wordcount\":472,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/css-scss-var\\/\",\"datePublished\":\"2022-04-30T22:04:29+08:00\",\"dateModified\":\"2024-07-14T17:09:39+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"关于 CSS 和 Scss 变量运算那些事\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/css-scss-var/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>关于 CSS 和 Scss 变量运算那些事</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>关于 CSS 和 Scss 变量运算那些事</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2022-04-30 22:04:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-04-30>2022-04-30</time></span>&nbsp;<span title=\"更新于 2024-07-14 17:09:39\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-14>2024-07-14</time></span>&nbsp;<span title=\"472 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"关于 CSS 和 Scss 变量运算那些事\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#问题分析>问题分析</a></li><li><a href=#奇技淫巧>奇技淫巧</a></li><li><a href=#by-the-way>By the way</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-14，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=问题分析><span>1 问题分析</span>\n<a href=#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>昨天在开发 FixIt 的时候，在 Scss 中写 <code>max(foo, bar)</code> 函数比较不同的单位变量时报错了，但是在 CSS 中使用 <code>max</code> 或者 <code>min</code> 函数函数比较不同的单位变量是没有问题的。</p><p>造成这一问题的原因是，在 Scss 中，也实现了 <code>max</code> 和 <code>min</code> 函数，但是在 Scss 中，<strong>不同单位的变量是不能进行运算的</strong>，所以使得在 Scss 中直接使用 <code>max</code> 或者 <code>min</code> 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）</p><p>知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。</p><h2 class=heading-element id=奇技淫巧><span>2 奇技淫巧</span>\n<a href=#%e5%a5%87%e6%8a%80%e6%b7%ab%e5%b7%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>由于 <strong>Scss 区分大小写而 CSS 不区分</strong>，所以为了不让 Scss 中的函数覆盖 CSS 的函数，我们可以使用除了 <code>max</code> 以外的 2<sup>3</sup> - 1 种写法，这样就能使用原生 CSS 的 <code>max</code> 函数来比较了，就不会报错了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>padding-left</span><span class=o>:</span> <span class=nf>MAX</span><span class=p>(</span><span class=mi>10</span><span class=kt>vh</span><span class=o>,</span> <span class=mi>3</span><span class=mf>.5</span><span class=kt>rem</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>使用 Scss 没有的 CSS 函数 <a href=https://developer.mozilla.org/zh-CN/docs/web/css/clamp target=_blank rel=\"external nofollow noopener noreferrer\"><code>clamp</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>:</p><p><code>clamp(MIN, VAL, MAX)</code> 其实就是表示 <code>max(MIN, min(VAL, MAX))</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>padding-left</span><span class=o>:</span> <span class=nf>clamp</span><span class=p>(</span><span class=nv>$header-height</span><span class=o>,</span> <span class=mi>10</span><span class=kt>vh</span><span class=o>,</span> <span class=mi>10</span><span class=kt>vh</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>使用 <code>unquote($string)</code> 函数让 Scss 删除字符串最前和最后的单引号或双引号</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>padding-left</span><span class=o>:</span> <span class=nf>unquote</span><span class=p>(</span><span class=s1>&#39;max(10vh, </span><span class=si>#{</span><span class=nv>$header-height</span><span class=si>}</span><span class=s1>)&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=by-the-way><span>3 By the way</span>\n<a href=#by-the-way class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果需要在 CSS 函数内部恢复 <code>Scss</code> 解析（引用 <code>Scss</code> 变量），只需用 <code>#{...}</code> 包围 Scss 代码。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nv>$header-height</span><span class=o>:</span> <span class=mi>3</span><span class=mf>.5</span><span class=kt>rem</span> <span class=k>!default</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nc>.foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>margin</span><span class=o>:</span> <span class=nf>calc</span><span class=p>(</span><span class=mi>10</span><span class=kt>vh</span> <span class=o>-</span> <span class=nv>$header-height</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>上面的 Scss 将解析成 以下无效的 CSS 代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin</span><span class=p>:</span> <span class=nb>calc</span><span class=p>(</span><span class=mi>10</span><span class=kt>vh</span> <span class=o>-</span> <span class=err>$</span><span class=n>header</span><span class=o>-</span><span class=n>height</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>用 <code>#{...}</code> 包围 Scss 变量</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nv>$header-height</span><span class=o>:</span> <span class=mi>3</span><span class=mf>.5</span><span class=kt>rem</span> <span class=k>!default</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nc>.foo</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>margin</span><span class=o>:</span> <span class=nf>calc</span><span class=p>(</span><span class=mi>10</span><span class=kt>vh</span> <span class=o>-</span> <span class=si>#{</span><span class=nv>$header-height</span><span class=si>}</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-14 17:09:39\">更新于 2024-07-14&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/e4be65eff36383466c1aa6ed544bf39c97c8f70c rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 新增文章“CSS 实现时间轴、背景图 loading 和渐变边框”&#10&#10Commit: e4be65eff36383466c1aa6ed544bf39c97c8f70c [e4be65e]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-14 17:09:39&#10Commit Date: 2024-07-14 17:43:27\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>e4be65e</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/css-scss-var/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-scss-var.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/css-scss-var.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%85%B3%E4%BA%8E+CSS+%E5%92%8C+Scss+%E5%8F%98%E9%87%8F%E8%BF%90%E7%AE%97%E9%82%A3%E4%BA%9B%E4%BA%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%85%B3%E4%BA%8E+CSS+%E5%92%8C+Scss+%E5%8F%98%E9%87%8F%E8%BF%90%E7%AE%97%E9%82%A3%E4%BA%9B%E4%BA%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/css-scss-var/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-scss-var.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/css-scss-var/ data-title=\"关于 CSS 和 Scss 变量运算那些事\" data-hashtags=CSS,Scss><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/css-scss-var/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/css-scss-var/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/css-scss-var/ data-title=\"关于 CSS 和 Scss 变量运算那些事\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/css-scss-var/ data-title=\"关于 CSS 和 Scss 变量运算那些事\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/scss/ class=post-tag title=\"标签 - Scss\">Scss</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/gtd/ class=post-nav-item rel=prev title=\"Getting Things Done for Ios App Reminders and Github Issues\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Getting Things Done for Ios App Reminders and Github Issues</a><a href=/posts/js-rediscover/ class=post-nav-item rel=next title=\"重新认识 JavaScript\">重新认识 JavaScript<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#问题分析>问题分析</a></li><li><a href=#奇技淫巧>奇技淫巧</a></li><li><a href=#by-the-way>By the way</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a5237505c0018dcaf2332aa645d98fb7.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a5237505c0018dcaf2332aa645d98fb7.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/css-scss-var/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/css-scss-var/index.md",
    "content": "# 关于 CSS 和 Scss 变量运算那些事\n\n\n## 问题分析\n\n昨天在开发 FixIt 的时候，在 Scss 中写 `max(foo, bar)` 函数比较不同的单位变量时报错了，但是在 CSS 中使用 `max` 或者 `min` 函数函数比较不同的单位变量是没有问题的。\n\n造成这一问题的原因是，在 Scss 中，也实现了 `max` 和 `min` 函数，但是在 Scss 中，**不同单位的变量是不能进行运算的**，所以使得在 Scss 中直接使用 `max` 或者 `min` 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\n\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\n\n<!--more-->\n\n## 奇技淫巧\n\n1. 由于 **Scss 区分大小写而 CSS 不区分**，所以为了不让 Scss 中的函数覆盖 CSS 的函数，我们可以使用除了 `max` 以外的 2<sup>3</sup> - 1 种写法，这样就能使用原生 CSS 的 `max` 函数来比较了，就不会报错了。\n\n   ```scss\n   .foo {\n     padding-left: MAX(10vh, 3.5rem);\n   }\n   ```\n\n2. 使用 Scss 没有的 CSS 函数 [`clamp`](https://developer.mozilla.org/zh-CN/docs/web/css/clamp):\n\n   `clamp(MIN, VAL, MAX)` 其实就是表示 `max(MIN, min(VAL, MAX))`\n\n   ```scss\n   .foo {\n     padding-left: clamp($header-height, 10vh, 10vh);\n   }\n   ```\n\n3. 使用 `unquote($string)` 函数让 Scss 删除字符串最前和最后的单引号或双引号\n\n   ```scss\n   .foo {\n     padding-left: unquote('max(10vh, #{$header-height})');\n   }\n   ```\n\n## By the way\n\n如果需要在 CSS 函数内部恢复 `Scss` 解析（引用 `Scss` 变量），只需用 `#{...}` 包围 Scss 代码。\n\n```scss\n$header-height: 3.5rem !default;\n\n.foo {\n  margin: calc(10vh - $header-height);\n}\n```\n\n上面的 Scss 将解析成 以下无效的 CSS 代码：\n\n```css\n.foo {\n  margin: calc(10vh - $header-height);\n}\n```\n\n用 `#{...}` 包围 Scss 变量\n\n```scss\n$header-height: 3.5rem !default;\n\n.foo {\n  margin: calc(10vh - #{$header-height});\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/css-scss-var/  \n\n"
  },
  {
    "path": "posts/css-viewport/css-viewport.css",
    "content": "/* 自定义属性是为了把 vw 和 vh 转成 px */\n@property --vw {\n  syntax: '<length>';\n  inherits: true;\n  initial-value: 100vw;\n}\n@property --vh {\n  syntax: '<length>';\n  inherits: true;\n  initial-value: 100vh;\n}\n/*\n  核心公式：\n  tan(θ) = opposite / adjacent\n  θ = arctan(opposite / adjacent)\n  tan(arctan(a)) = a\n*/\n.viewport-size {\n  --width: tan(atan2(var(--vw), 1px));\n  --height: tan(atan2(var(--vh), 1px));\n\n  &::before {\n    content: counter(width) ' X ' counter(height);\n    counter-reset: width var(--width) height var(--height);\n    font-size: 2em;\n    font-weight: 900;\n  }\n}\n"
  },
  {
    "path": "posts/css-viewport/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>震惊！CSS 竟然能获取视口尺寸？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\n\"><meta name=keywords content='CSS'><meta itemprop=name content=\"震惊！CSS 竟然能获取视口尺寸？\"><meta itemprop=description content=\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\"><meta itemprop=datePublished content=\"2024-12-06T10:32:22+08:00\"><meta itemprop=dateModified content=\"2024-12-06T11:51:15+08:00\"><meta itemprop=wordCount content=\"885\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/css-viewport/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"震惊！CSS 竟然能获取视口尺寸？\"><meta property=\"og:description\" content=\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-12-06T10:32:22+08:00\"><meta property=\"article:modified_time\" content=\"2024-12-06T11:51:15+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"震惊！CSS 竟然能获取视口尺寸？\"><meta name=twitter:description content=\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/css-viewport/ title=\"震惊！CSS 竟然能获取视口尺寸？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ title=\"🌐 A component for site automatic translation.\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ title=\"A Hugo theme component with asciinema-embed shortcode.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/css-viewport/index.md title=\"震惊！CSS 竟然能获取视口尺寸？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"震惊！CSS 竟然能获取视口尺寸？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/css-viewport\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS\",\"wordcount\":885,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/css-viewport\\/\",\"datePublished\":\"2024-12-06T10:32:22+08:00\",\"dateModified\":\"2024-12-06T11:51:15+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/css-viewport/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>震惊！CSS 竟然能获取视口尺寸？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>震惊！CSS 竟然能获取视口尺寸？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2024-12-06 10:32:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-12-06>2024-12-06</time></span>&nbsp;<span title=\"更新于 2024-12-06 11:51:15\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-12-06>2024-12-06</time></span>&nbsp;<span title=\"885 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"震惊！CSS 竟然能获取视口尺寸？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#效果>效果</a></li><li><a href=#实现原理>实现原理</a><ol><li><a href=#计算视口尺寸>计算视口尺寸</a></li><li><a href=#三角函数>三角函数</a></li></ol></li><li><a href=#代码示例>代码示例</a></li><li><a href=#兼容性>兼容性</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-12-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。</p><h2 class=heading-element id=效果><span>1 效果</span>\n<a href=#%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote class=blockquote-center><p><span class=viewport-size></span></p></blockquote><p>调整浏览器窗口大小，你会发现视口的宽度和高度会实时更新（旧浏览器可能不支持）。</p><blockquote><p>重要的是，这个效果是纯 CSS 实现的，不需要 JavaScript，真的震惊了！</p></blockquote><h2 class=heading-element id=实现原理><span>2 实现原理</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e5%8e%9f%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>定义 CSS 自定义属性（<code>@property</code>） <code>--vw</code> 和 <code>--vh</code>，分别表示视口的宽度和高度。</li><li>使用 <code>tan()</code> 和 <code>atan2()</code> 函数计算视口的宽度和高度。</li><li>使用 <code>counter</code> 和 <code>counter-reset</code> 属性将计算结果显示在页面上。</li></ol><h3 class=heading-element id=计算视口尺寸><span>2.1 计算视口尺寸</span>\n<a href=#%e8%ae%a1%e7%ae%97%e8%a7%86%e5%8f%a3%e5%b0%ba%e5%af%b8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>我们可以使用 <code>vw</code> 和 <code>vh</code> 获取浏览器视口尺寸，但是这是相对单位，所以需要转换为 <code>px</code> 才行。我们先利用自定义属性把相对单位转成 <code>px</code>，然后最关键的一步是巧妙地利用了三角函数 <span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">tan(arctan(a)) = a</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:1em;vertical-align:-.25em></span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">rc</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\">a</span><span class=mclose>))</span><span class=mspace style=margin-right:.2778em></span><span class=mrel>=</span><span class=mspace style=margin-right:.2778em></span></span><span class=base><span class=strut style=height:.4306em></span><span class=\"mord mathnormal\">a</span></span></span></span> 来实现这个转换。</p><h3 class=heading-element id=三角函数><span>2.2 三角函数</span>\n<a href=#%e4%b8%89%e8%a7%92%e5%87%bd%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在三角函数中，<span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>θ</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">tan(θ)</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:1em;vertical-align:-.25em></span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\" style=margin-right:.02778em>θ</span><span class=mclose>)</span></span></span></span> 表示一个角度 <span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>θ</mi></mrow><annotation encoding=\"application/x-tex\">θ</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:.6944em></span><span class=\"mord mathnormal\" style=margin-right:.02778em>θ</span></span></span></span> 的正切值，它等于对边（opposite）与邻边（adjacent）的比值。反过来，<span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo></mrow><annotation encoding=\"application/x-tex\">arctan(a)</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:1em;vertical-align:-.25em></span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">rc</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\">a</span><span class=mclose>)</span></span></span></span> 表示一个数值 <span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">a</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:.4306em></span><span class=\"mord mathnormal\">a</span></span></span></span> 的反正切值，它返回一个角度 <span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>θ</mi></mrow><annotation encoding=\"application/x-tex\">θ</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:.6944em></span><span class=\"mord mathnormal\" style=margin-right:.02778em>θ</span></span></span></span>，使得 <span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>θ</mi><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi></mrow><annotation encoding=\"application/x-tex\">tan(θ) = a</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:1em;vertical-align:-.25em></span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\" style=margin-right:.02778em>θ</span><span class=mclose>)</span><span class=mspace style=margin-right:.2778em></span><span class=mrel>=</span><span class=mspace style=margin-right:.2778em></span></span><span class=base><span class=strut style=height:.4306em></span><span class=\"mord mathnormal\">a</span></span></span></span>，因此得到公式：</p><span class=katex-display><span class=katex><span class=katex-mathml><math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><semantics><mrow><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>a</mi><mi>n</mi><mo stretchy=\"false\">(</mo><mi>a</mi><mo stretchy=\"false\">)</mo><mo stretchy=\"false\">)</mo><mo>=</mo><mi>a</mi></mrow><annotation encoding=\"application/x-tex\"> tan(arctan(a)) = a </annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:1em;vertical-align:-.25em></span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\">a</span><span class=\"mord mathnormal\">rc</span><span class=\"mord mathnormal\">t</span><span class=\"mord mathnormal\">an</span><span class=mopen>(</span><span class=\"mord mathnormal\">a</span><span class=mclose>))</span><span class=mspace style=margin-right:.2778em></span><span class=mrel>=</span><span class=mspace style=margin-right:.2778em></span></span><span class=base><span class=strut style=height:.4306em></span><span class=\"mord mathnormal\">a</span></span></span></span></span><p>CSS 中的 <code>tan()</code> 和 <code>atan2()</code> 函数可以用来计算正切值和反正切值。</p><p><code>tan()</code> 函数的语法如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 单个 &lt;angle&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>45deg</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>0</span><span class=p>.</span><span class=nc>125turn</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>0</span><span class=p>.</span><span class=nc>785398163rad</span><span class=o>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 单个 &lt;number&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>0</span><span class=p>.</span><span class=nc>5773502</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>1</span><span class=p>.</span><span class=nc>732</span> <span class=err>–</span> <span class=nt>1</span><span class=o>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 其他值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>pi</span> <span class=o>/</span> <span class=nt>3</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>width</span><span class=o>:</span> <span class=nt>calc</span><span class=o>(</span><span class=nt>100px</span> <span class=o>*</span> <span class=nt>tan</span><span class=o>(</span><span class=nt>e</span><span class=o>));</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><code>atan2()</code> 函数接受两个参数，对于所给两值 <code>x</code> 和 <code>y</code>，函数 <code>atan2(y, x)</code> 计算并返回正半横轴与从原点到点 <code>(x, y)</code> 的射线的夹角。函数的语法如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 两个 &lt;number&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>transform</span><span class=o>:</span> <span class=nt>rotate</span><span class=o>(</span><span class=nt>atan2</span><span class=o>(</span><span class=nt>3</span><span class=o>,</span> <span class=nt>2</span><span class=o>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 两个 &lt;dimension&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>transform</span><span class=o>:</span> <span class=nt>rotate</span><span class=o>(</span><span class=nt>atan2</span><span class=o>(</span><span class=nt>1rem</span><span class=o>,</span> <span class=nt>-0</span><span class=p>.</span><span class=nc>5rem</span><span class=o>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 两个 &lt;percentage&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>transform</span><span class=o>:</span> <span class=nt>rotate</span><span class=o>(</span><span class=nt>atan2</span><span class=o>(</span><span class=nt>20</span><span class=o>%,</span> <span class=nt>-30</span><span class=o>%));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 其他值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>transform</span><span class=o>:</span> <span class=nt>rotate</span><span class=o>(</span><span class=nt>atan2</span><span class=o>(</span><span class=nt>pi</span><span class=o>,</span> <span class=nt>45</span><span class=o>));</span>\n</span></span><span class=line><span class=cl><span class=nt>transform</span><span class=o>:</span> <span class=nt>rotate</span><span class=o>(</span><span class=nt>atan2</span><span class=o>(</span><span class=nt>e</span><span class=o>,</span> <span class=nt>30</span><span class=o>));</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=代码示例><span>3 代码示例</span>\n<a href=#%e4%bb%a3%e7%a0%81%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以下是完整的 HTML 和 CSS 代码，你也可以在我的 <a href=https://lruihao.github.io/html-demo/css-viewport.html target=_blank rel=\"external nofollow noopener noreferrer\">html-demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中查看。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=cp>&lt;!DOCTYPE html&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>html</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;en&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>charset</span><span class=o>=</span><span class=s>&#34;UTF-8&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;viewport&#34;</span> <span class=na>content</span><span class=o>=</span><span class=s>&#34;width=device-width, initial-scale=1.0&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>title</span><span class=p>&gt;</span>CSS Viewport Size<span class=p>&lt;/</span><span class=nt>title</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=c>/* 自定义属性是为了把 vw 和 vh 转成 px */</span>\n</span></span><span class=line><span class=cl>    <span class=p>@</span><span class=k>property</span> <span class=nt>--vw</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nt>syntax</span><span class=o>:</span> <span class=s1>&#39;&lt;length&gt;&#39;</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>inherits</span><span class=o>:</span> <span class=nt>true</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>initial-value</span><span class=o>:</span> <span class=nt>100vw</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>@</span><span class=k>property</span> <span class=nt>--vh</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nt>syntax</span><span class=o>:</span> <span class=s1>&#39;&lt;length&gt;&#39;</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>inherits</span><span class=o>:</span> <span class=nt>true</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>initial-value</span><span class=o>:</span> <span class=nt>100vh</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=c>/*\n</span></span></span><span class=line><span class=cl><span class=c>      核心公式：\n</span></span></span><span class=line><span class=cl><span class=c>      tan(θ) = opposite / adjacent\n</span></span></span><span class=line><span class=cl><span class=c>      θ = arctan(opposite / adjacent)\n</span></span></span><span class=line><span class=cl><span class=c>      tan(arctan(a)) = a\n</span></span></span><span class=line><span class=cl><span class=c>    */</span>\n</span></span><span class=line><span class=cl>    <span class=p>:</span><span class=nd>root</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nv>--width</span><span class=p>:</span> <span class=nf>tan</span><span class=p>(</span><span class=nf>atan2</span><span class=p>(</span><span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>vw</span><span class=p>),</span> <span class=mi>1</span><span class=kt>px</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>      <span class=nv>--height</span><span class=p>:</span> <span class=nf>tan</span><span class=p>(</span><span class=nf>atan2</span><span class=p>(</span><span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>vh</span><span class=p>),</span> <span class=mi>1</span><span class=kt>px</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nt>body</span><span class=p>::</span><span class=nd>before</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>content</span><span class=p>:</span> <span class=nb>counter</span><span class=p>(</span><span class=n>width</span><span class=p>)</span> <span class=s1>&#39; X &#39;</span> <span class=nb>counter</span><span class=p>(</span><span class=n>height</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=k>counter-reset</span><span class=p>:</span> <span class=k>width</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>width</span><span class=p>)</span> <span class=k>height</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>height</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=k>display</span><span class=p>:</span> <span class=kc>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>font-size</span><span class=p>:</span> <span class=mi>150</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>font-weight</span><span class=p>:</span> <span class=mi>900</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>position</span><span class=p>:</span> <span class=kc>fixed</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>width</span><span class=p>:</span> <span class=n>fit-content</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>height</span><span class=p>:</span> <span class=n>fit-content</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>inset</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>margin</span><span class=p>:</span> <span class=kc>auto</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>html</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=兼容性><span>4 兼容性</span>\n<a href=#%e5%85%bc%e5%ae%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>主要是 <code>counter</code> 和 <code>counter-reset</code> 属性的兼容性问题，看漫山红遍，层林尽染。</p><caniuse-embed feature=css-at-counter-style past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed><caniuse-embed feature=mdn-css_properties_counter-reset_reset_does_not_affect_siblings past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-12-06 11:51:15\">更新于 2024-12-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7e5db14afcdbd5c272d4d3b6e74e45de8a44e26e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: CSS 获取视口尺寸&#10&#10Commit: 7e5db14afcdbd5c272d4d3b6e74e45de8a44e26e [7e5db14]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-06 11:51:15&#10Commit Date: 2024-12-06 12:26:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7e5db14</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/css-viewport/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-viewport/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/css-viewport/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%9C%87%E6%83%8A%EF%BC%81CSS+%E7%AB%9F%E7%84%B6%E8%83%BD%E8%8E%B7%E5%8F%96%E8%A7%86%E5%8F%A3%E5%B0%BA%E5%AF%B8%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%9C%87%E6%83%8A%EF%BC%81CSS+%E7%AB%9F%E7%84%B6%E8%83%BD%E8%8E%B7%E5%8F%96%E8%A7%86%E5%8F%A3%E5%B0%BA%E5%AF%B8%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/css-viewport/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/css-viewport/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/css-viewport/ data-title=\"震惊！CSS 竟然能获取视口尺寸？\" data-hashtags=CSS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/css-viewport/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/css-viewport/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/css-viewport/ data-title=\"震惊！CSS 竟然能获取视口尺寸？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/css-viewport/ data-title=\"震惊！CSS 竟然能获取视口尺寸？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/cmpt-translate/ class=post-nav-item rel=prev title=hugo-fixit/cmpt-translate><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/cmpt-translate</a><a href=/projects/hugo-fixit/shortcode-asciinema/ class=post-nav-item rel=next title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#效果>效果</a></li><li><a href=#实现原理>实现原理</a><ol><li><a href=#计算视口尺寸>计算视口尺寸</a></li><li><a href=#三角函数>三角函数</a></li></ol></li><li><a href=#代码示例>代码示例</a></li><li><a href=#兼容性>兼容性</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/katex@0.16.22/dist/katex.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/katex@0.16.22/dist/katex.min.css></noscript><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><link rel=stylesheet href=css-viewport.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/katex@0.16.22/dist/contrib/copy-tex.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7d2bcc6b215b153c1d49ec5edfede53e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7d2bcc6b215b153c1d49ec5edfede53e.js defer></script><script src=/js/theme.min.js defer></script><script src=/lib/shortcode-caniuse/caniuse-embed-element.iife.js async defer></script><script src=/js/shortcode-caniuse.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/css-viewport/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/css-viewport/index.md",
    "content": "# 震惊！CSS 竟然能获取视口尺寸？\n\n\n在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\n\n<!--more-->\n\n## 效果\n\n<!-- markdownlint-disable-next-line no-inline-html -->\n> <span class=\"viewport-size\"></span>\n{.blockquote-center}\n\n调整浏览器窗口大小，你会发现视口的宽度和高度会实时更新（旧浏览器可能不支持）。\n\n> 重要的是，这个效果是纯 CSS 实现的，不需要 JavaScript，真的震惊了！\n\n## 实现原理\n\n1. 定义 CSS 自定义属性（`@property`） `--vw` 和 `--vh`，分别表示视口的宽度和高度。\n2. 使用 `tan()` 和 `atan2()` 函数计算视口的宽度和高度。\n3. 使用 `counter` 和 `counter-reset` 属性将计算结果显示在页面上。\n\n### 计算视口尺寸\n\n我们可以使用 `vw` 和 `vh` 获取浏览器视口尺寸，但是这是相对单位，所以需要转换为 `px` 才行。我们先利用自定义属性把相对单位转成 `px`，然后最关键的一步是巧妙地利用了三角函数 $tan(arctan(a)) = a$ 来实现这个转换。\n\n### 三角函数\n\n在三角函数中，$tan(θ)$ 表示一个角度 $θ$ 的正切值，它等于对边（opposite）与邻边（adjacent）的比值。反过来，$arctan(a)$ 表示一个数值 $a$ 的反正切值，它返回一个角度 $θ$，使得 $tan(θ) = a$，因此得到公式：\n\n$$ tan(arctan(a)) = a $$\n\nCSS 中的 `tan()` 和 `atan2()` 函数可以用来计算正切值和反正切值。\n\n`tan()` 函数的语法如下：\n\n```css\n/* 单个 <angle> 值 */\nwidth: calc(100px * tan(45deg));\nwidth: calc(100px * tan(0.125turn));\nwidth: calc(100px * tan(0.785398163rad));\n\n/* 单个 <number> 值 */\nwidth: calc(100px * tan(0.5773502));\nwidth: calc(100px * tan(1.732 – 1));\n\n/* 其他值 */\nwidth: calc(100px * tan(pi / 3));\nwidth: calc(100px * tan(e));\n```\n\n`atan2()` 函数接受两个参数，对于所给两值 `x` 和 `y`，函数 `atan2(y, x)` 计算并返回正半横轴与从原点到点 `(x, y)` 的射线的夹角。函数的语法如下：\n\n```css\n/* 两个 <number> 值 */\ntransform: rotate(atan2(3, 2));\n\n/* 两个 <dimension> 值 */\ntransform: rotate(atan2(1rem, -0.5rem));\n\n/* 两个 <percentage> 值 */\ntransform: rotate(atan2(20%, -30%));\n\n/* 其他值 */\ntransform: rotate(atan2(pi, 45));\ntransform: rotate(atan2(e, 30));\n```\n\n## 代码示例\n\n以下是完整的 HTML 和 CSS 代码，你也可以在我的 [html-demo](https://lruihao.github.io/html-demo/css-viewport.html) 中查看。\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>CSS Viewport Size</title>\n  <style>\n    /* 自定义属性是为了把 vw 和 vh 转成 px */\n    @property --vw {\n      syntax: '<length>';\n      inherits: true;\n      initial-value: 100vw;\n    }\n    @property --vh {\n      syntax: '<length>';\n      inherits: true;\n      initial-value: 100vh;\n    }\n    /*\n      核心公式：\n      tan(θ) = opposite / adjacent\n      θ = arctan(opposite / adjacent)\n      tan(arctan(a)) = a\n    */\n    :root {\n      --width: tan(atan2(var(--vw), 1px));\n      --height: tan(atan2(var(--vh), 1px));\n    }\n    body::before {\n      content: counter(width) ' X ' counter(height);\n      counter-reset: width var(--width) height var(--height);\n      display: block;\n      font-size: 150px;\n      font-weight: 900;\n      position: fixed;\n      width: fit-content;\n      height: fit-content;\n      inset: 0;\n      margin: auto;\n    }\n  </style>\n</head>\n<body>\n</body>\n</html>\n```\n\n## 兼容性\n\n主要是 `counter` 和 `counter-reset` 属性的兼容性问题，看漫山红遍，层林尽染。\n\n{{< caniuse \"css-at-counter-style\" >}}\n\n{{< caniuse \"mdn-css_properties_counter-reset_reset_does_not_affect_siblings\" >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/css-viewport/  \n\n"
  },
  {
    "path": "posts/d1fc0c7/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>探索 Amazon S3 的无限存储潜力 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。\n\"><meta name=keywords content='AWS'><meta itemprop=name content=\"探索 Amazon S3 的无限存储潜力\"><meta itemprop=description content=\"在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。\"><meta itemprop=datePublished content=\"2024-07-07T13:54:14+08:00\"><meta itemprop=dateModified content=\"2024-07-07T13:54:14+08:00\"><meta itemprop=wordCount content=\"1070\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"AWS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/d1fc0c7/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"探索 Amazon S3 的无限存储潜力\"><meta property=\"og:description\" content=\"在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-07-07T13:54:14+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-07T13:54:14+08:00\"><meta property=\"article:tag\" content=\"AWS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"探索 Amazon S3 的无限存储潜力\"><meta name=twitter:description content=\"在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/d1fc0c7/ title=\"探索 Amazon S3 的无限存储潜力 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/scrollbar-styling/ title=标准滚动条控制规范><link rel=next type=text/html href=https://lruihao.cn/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/d1fc0c7/index.md title=\"探索 Amazon S3 的无限存储潜力 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"探索 Amazon S3 的无限存储潜力\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/d1fc0c7\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"AWS\",\"wordcount\":1070,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/d1fc0c7\\/\",\"datePublished\":\"2024-07-07T13:54:14+08:00\",\"dateModified\":\"2024-07-07T13:54:14+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/d1fc0c7/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href title=个人博客接的一些广子。>$</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Amazon S3</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>探索 Amazon S3 的无限存储潜力</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/aws/ class=post-collection title=\"合集 - AWS\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> AWS</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-07 13:54:14\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-07>2024-07-07</time></span>&nbsp;<span title=\"1070 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"探索 Amazon S3 的无限存储潜力\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#了解-amazon-s3>了解 Amazon S3</a></li><li><a href=#免费试用优势>免费试用优势</a></li><li><a href=#开始使用-amazon-s3>开始使用 Amazon S3</a><ol><li><a href=#register-aws>注册亚马逊云科技账户</a></li><li><a href=#访问-amazon-s3-控制台>访问 Amazon S3 控制台</a></li><li><a href=#创建存储桶>创建存储桶</a></li><li><a href=#上传文件>上传文件</a></li><li><a href=#设置权限和访问控制>设置权限和访问控制</a></li><li><a href=#管理数据>管理数据</a></li></ol></li><li><a href=#结语>结语</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-07，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=（本篇完）><p>在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。</p><h2 class=heading-element id=了解-amazon-s3><span>1 了解 Amazon S3</span>\n<a href=#%e4%ba%86%e8%a7%a3-amazon-s3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务，由亚马逊云科技提供行业领先的可扩展性、数据可用性、安全性和性能。你可以使用 Amazon S3 随时在任何位置存储和取回任何数量的数据。</p><h2 class=heading-element id=免费试用优势><span>2 免费试用优势</span>\n<a href=#%e5%85%8d%e8%b4%b9%e8%af%95%e7%94%a8%e4%bc%98%e5%8a%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>亚马逊云科技为新用户提供了免费试用套餐（12 个月内免费、永久免费等），包括 <strong>Amazon S3</strong> 在内的多种服务，这里 Amazon S3 时 12 个月内免费。用户可以在 <a href=\"https://aws.amazon.com/cn/free/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊云科技海外区域免费试用页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 了解更多详情，并开始免费体验。这不仅降低了用户的入门门槛，也让用户能够无负担地探索和学习亚马逊云科技的云服务。</p><h2 class=heading-element id=开始使用-amazon-s3><span>3 开始使用 Amazon S3</span>\n<a href=#%e5%bc%80%e5%a7%8b%e4%bd%bf%e7%94%a8-amazon-s3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=register-aws><span>3.1 注册亚马逊云科技账户</span>\n<a href=#register-aws class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>要使用 Amazon S3，你需要一个亚马逊云科技账户，如果你没有账户，系统会提示你在注册 Amazon S3 时创建一个。在你使用 Amazon S3 之前，系统不会向你收取费用。</p><p>打开 <a href=\"https://aws.amazon.com/cn/free/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊云科技账号注册地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，点击右上角创建亚马逊云科技账户。</p><p><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693042834.png title=\"创建 Amazon 账户\" data-thumbnail=../aws-ec2/images/23_1693042834.png data-sub-html=\"<h2>创建 Amazon 账户</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693042834.png alt=\"创建 Amazon 账户\"></a></p><ol><li>填写邮件地址和账号名称（支持使用国内的邮箱）<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043425.png title=login data-thumbnail=../aws-ec2/images/23_1693043425.png data-sub-html=\"<h2>login</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043425.png alt=login></a></li><li>验证邮件<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043626.png title=valid data-thumbnail=../aws-ec2/images/23_1693043626.png data-sub-html=\"<h2>valid</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043626.png alt=valid></a></li><li>输入密码<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043910.png title=password data-thumbnail=../aws-ec2/images/23_1693043910.png data-sub-html=\"<h2>password</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043910.png alt=password></a></li><li>联系人信息<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044220.png title=contact data-thumbnail=../aws-ec2/images/23_1693044220.png data-sub-html=\"<h2>contact</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044220.png alt=contact></a></li><li>付款信息<br>接受所有主要信用卡和借记卡（包括 Visa、MasterCard 和 银联信用卡等）<br><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720665206.webp title=payment-ways data-thumbnail=/posts/d1fc0c7/images/24_1720665206.webp data-sub-html=\"<h2>payment-ways</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720665206.webp alt=payment-ways height=110 width=926></a>\n<a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044537.png title=payment data-thumbnail=../aws-ec2/images/23_1693044537.png data-sub-html=\"<h2>payment</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044537.png alt=payment></a></li><li>验证手机号（支持中国地区国内手机号）<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044806.png title=phone data-thumbnail=../aws-ec2/images/23_1693044806.png data-sub-html=\"<h2>phone</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044806.png alt=phone></a></li><li>选择支持计划<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693045029.png title=plan data-thumbnail=../aws-ec2/images/23_1693045029.png data-sub-html=\"<h2>plan</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693045029.png alt=plan></a></li><li>完成注册<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693045100.png title=complete data-thumbnail=../aws-ec2/images/23_1693045100.png data-sub-html=\"<h2>complete</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693045100.png alt=complete></a></li><li>登录亚马逊云科技控制台，<a href=\"https://console.aws.amazon.com/console/home?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">登录地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。</li></ol><h3 class=heading-element id=访问-amazon-s3-控制台><span>3.2 访问 Amazon S3 控制台</span>\n<a href=#%e8%ae%bf%e9%97%ae-amazon-s3-%e6%8e%a7%e5%88%b6%e5%8f%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>登录亚马逊云科技管理控制台，然后打开 <a href=\"https://console.aws.amazon.com/s3/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">Amazon S3 控制台<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=创建存储桶><span>3.3 创建存储桶</span>\n<a href=#%e5%88%9b%e5%bb%ba%e5%ad%98%e5%82%a8%e6%a1%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Amazon S3 中的每个对象都存储在存储桶中。你必须先创建一个 S3 存储桶，然后才能在 Amazon S3 中存储数据。</p><p><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720333244.webp title=创建存储桶 data-thumbnail=/posts/d1fc0c7/images/24_1720333244.webp data-sub-html=\"<h2>创建存储桶</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720333244.webp alt=创建存储桶 height=728 width=2060></a></p><p>在 Amazon S3 控制台中，点击“创建存储桶”按钮。为你的存储桶命名，并选择一个合适的亚马逊云科技区域。完成设置后，点击“创建”。</p><p><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720665738.webp title=创建存储桶 data-thumbnail=/posts/d1fc0c7/images/24_1720665738.webp data-sub-html=\"<h2>创建存储桶</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720665738.webp alt=创建存储桶 height=4582 width=1733></a></p><h3 class=heading-element id=上传文件><span>3.4 上传文件</span>\n<a href=#%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>创建存储桶后，你可以开始上传文件。选择你的存储桶，点击“上传”，然后选择你想要上传的文件。你可以上传文本文件、图片、视频等任何类型的文件。</p><p><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720333844.webp title=上传文件 data-thumbnail=/posts/d1fc0c7/images/24_1720333844.webp data-sub-html=\"<h2>上传文件</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720333844.webp alt=上传文件 height=1116 width=2712></a></p><h3 class=heading-element id=设置权限和访问控制><span>3.5 设置权限和访问控制</span>\n<a href=#%e8%ae%be%e7%bd%ae%e6%9d%83%e9%99%90%e5%92%8c%e8%ae%bf%e9%97%ae%e6%8e%a7%e5%88%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>为了确保数据安全，你可以设置存储桶的权限和访问控制。在存储桶设置中，选择“权限”，然后根据需要配置访问权限。</p><p><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720333915.webp title=设置权限 data-thumbnail=/posts/d1fc0c7/images/24_1720333915.webp data-sub-html=\"<h2>设置权限</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720333915.webp alt=设置权限 height=1364 width=2614></a></p><h3 class=heading-element id=管理数据><span>3.6 管理数据</span>\n<a href=#%e7%ae%a1%e7%90%86%e6%95%b0%e6%8d%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用 Amazon S3 控制台，你可以轻松管理存储的数据。你可以查看文件列表、进行搜索、移动、复制或删除文件。</p><p><a class=lightgallery target=_blank href=/posts/d1fc0c7/images/24_1720666431.webp title=管理数据 data-thumbnail=/posts/d1fc0c7/images/24_1720666431.webp data-sub-html=\"<h2>管理数据</h2>\"><img loading=lazy src=/posts/d1fc0c7/images/24_1720666431.webp alt=管理数据 height=1368 width=2688></a></p><h2 class=heading-element id=结语><span>4 结语</span>\n<a href=#%e7%bb%93%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Amazon S3 的灵活性和可靠性使其成为存储解决方案的理想选择。无论你是开发者、企业还是个人用户，都可以利用 S3 来满足你的存储需求。立即访问<a href=\"https://aws.amazon.com/cn/free/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&amp;sc_channel=sm&amp;campaign=blog1352\" target=_blank rel=\"external nofollow noopener noreferrer\">免费试用页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，开始你的亚马逊云科技云服务之旅吧！</p></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/aws/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・AWS</span></span></a> 5</div><div class=collection-nav><a href=/posts/d8ae205/ class=collection-nav-item rel=prev title=\"Amazon Titan 文本模型\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Amazon Titan 文本模型</span>\n</a><a href=/posts/91db0fa/ class=collection-nav-item rel=next title=\"Amazon Inspector\"><span>Amazon Inspector</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-07 13:54:14\">更新于 2024-07-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整 sections 批量参数&#10&#10Commit: d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 [d2d1d9d]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-07 01:20:02&#10Commit Date: 2024-12-07 01:25:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d2d1d9d</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/d1fc0c7/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/d1fc0c7/ data-title=\"探索 Amazon S3 的无限存储潜力\" data-hashtags=AWS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/d1fc0c7/ data-hashtag=AWS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/d1fc0c7/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/d1fc0c7/ data-title=\"探索 Amazon S3 的无限存储潜力\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/d1fc0c7/ data-title=\"探索 Amazon S3 的无限存储潜力\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/aws/ class=post-tag title=\"标签 - AWS\">AWS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/scrollbar-styling/ class=post-nav-item rel=prev title=标准滚动条控制规范><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>标准滚动条控制规范</a><a href=/posts/fixit-docs-bookmark/ class=post-nav-item rel=next title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#了解-amazon-s3>了解 Amazon S3</a></li><li><a href=#免费试用优势>免费试用优势</a></li><li><a href=#开始使用-amazon-s3>开始使用 Amazon S3</a><ol><li><a href=#register-aws>注册亚马逊云科技账户</a></li><li><a href=#访问-amazon-s3-控制台>访问 Amazon S3 控制台</a></li><li><a href=#创建存储桶>创建存储桶</a></li><li><a href=#上传文件>上传文件</a></li><li><a href=#设置权限和访问控制>设置权限和访问控制</a></li><li><a href=#管理数据>管理数据</a></li></ol></li><li><a href=#结语>结语</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d1fc0c74a0d39522d8a35249c7b53c23.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d1fc0c74a0d39522d8a35249c7b53c23.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/d1fc0c7/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/d1fc0c7/index.md",
    "content": "# 探索 Amazon S3 的无限存储潜力\n\n\n在数字化时代，数据是企业最宝贵的资产之一。如何安全、高效地存储和访问这些数据，成为了许多企业面临的挑战。亚马逊云服务作为全球领先的云服务提供商，提供了一系列的解决方案来满足不同客户的需求。今天，我们将重点介绍亚马逊云科技的 Amazon S3（Simple Storage Service），一种简单、可扩展且持久的对象存储服务。\n\n<!--more-->\n\n## 了解 Amazon S3\n\nAmazon Simple Storage Service (Amazon S3) 是一种对象存储服务，由亚马逊云科技提供行业领先的可扩展性、数据可用性、安全性和性能。你可以使用 Amazon S3 随时在任何位置存储和取回任何数量的数据。\n\n## 免费试用优势\n\n亚马逊云科技为新用户提供了免费试用套餐（12 个月内免费、永久免费等），包括 **Amazon S3** 在内的多种服务，这里 Amazon S3 时 12 个月内免费。用户可以在 [亚马逊云科技海外区域免费试用页面][trial-url] 了解更多详情，并开始免费体验。这不仅降低了用户的入门门槛，也让用户能够无负担地探索和学习亚马逊云科技的云服务。\n\n## 开始使用 Amazon S3\n\n### 注册亚马逊云科技账户 {#register-aws}\n\n要使用 Amazon S3，你需要一个亚马逊云科技账户，如果你没有账户，系统会提示你在注册 Amazon S3 时创建一个。在你使用 Amazon S3 之前，系统不会向你收取费用。\n\n打开 [亚马逊云科技账号注册地址][trial-url]，点击右上角创建亚马逊云科技账户。\n\n![创建 Amazon 账户](../aws-ec2/images/23_1693042834.png)\n\n1. 填写邮件地址和账号名称（支持使用国内的邮箱）\\\n   ![login](../aws-ec2/images/23_1693043425.png)\n2. 验证邮件\\\n   ![valid](../aws-ec2/images/23_1693043626.png)\n3. 输入密码\\\n   ![password](../aws-ec2/images/23_1693043910.png)\n4. 联系人信息\\\n   ![contact](../aws-ec2/images/23_1693044220.png)\n5. 付款信息\\\n   接受所有主要信用卡和借记卡（包括 Visa、MasterCard 和 银联信用卡等）\\\n   ![payment-ways](images/24_1720665206.webp)\n   ![payment](../aws-ec2/images/23_1693044537.png)\n6. 验证手机号（支持中国地区国内手机号）\\\n   ![phone](../aws-ec2/images/23_1693044806.png)\n7. 选择支持计划\\\n   ![plan](../aws-ec2/images/23_1693045029.png)\n8. 完成注册\\\n   ![complete](../aws-ec2/images/23_1693045100.png)\n9. 登录亚马逊云科技控制台，[登录地址](https://console.aws.amazon.com/console/home?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&sc_channel=sm&campaign=blog1352)，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。\n\n### 访问 Amazon S3 控制台\n\n登录亚马逊云科技管理控制台，然后打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&sc_channel=sm&campaign=blog1352)。\n\n### 创建存储桶\n\nAmazon S3 中的每个对象都存储在存储桶中。你必须先创建一个 S3 存储桶，然后才能在 Amazon S3 中存储数据。\n\n![创建存储桶](images/24_1720333244.webp)\n\n在 Amazon S3 控制台中，点击“创建存储桶”按钮。为你的存储桶命名，并选择一个合适的亚马逊云科技区域。完成设置后，点击“创建”。\n\n![创建存储桶](images/24_1720665738.webp)\n\n### 上传文件\n\n创建存储桶后，你可以开始上传文件。选择你的存储桶，点击“上传”，然后选择你想要上传的文件。你可以上传文本文件、图片、视频等任何类型的文件。\n\n![上传文件](images/24_1720333844.webp)\n\n### 设置权限和访问控制\n\n为了确保数据安全，你可以设置存储桶的权限和访问控制。在存储桶设置中，选择“权限”，然后根据需要配置访问权限。\n\n![设置权限](images/24_1720333915.webp)\n\n### 管理数据\n\n使用 Amazon S3 控制台，你可以轻松管理存储的数据。你可以查看文件列表、进行搜索、移动、复制或删除文件。\n\n![管理数据](images/24_1720666431.webp)\n\n## 结语\n\nAmazon S3 的灵活性和可靠性使其成为存储解决方案的理想选择。无论你是开发者、企业还是个人用户，都可以利用 S3 来满足你的存储需求。立即访问[免费试用页面][trial-url]，开始你的亚马逊云科技云服务之旅吧！\n\n<!-- link reference definition -->\n[trial-url]: https://aws.amazon.com/cn/free/?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&sc_channel=sm&campaign=blog1352\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/d1fc0c7/  \n\n"
  },
  {
    "path": "posts/d8ae205/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>尝试在 Python 中使用 Amazon Titan 文本模型 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。\n\"><meta name=keywords content='AWS,Python'><meta itemprop=name content=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><meta itemprop=description content=\"本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。\"><meta itemprop=datePublished content=\"2023-12-22T19:58:47+08:00\"><meta itemprop=dateModified content=\"2023-12-22T19:58:47+08:00\"><meta itemprop=wordCount content=\"1544\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"AWS,Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/d8ae205/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><meta property=\"og:description\" content=\"本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-12-22T19:58:47+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-22T19:58:47+08:00\"><meta property=\"article:tag\" content=\"AWS\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><meta name=twitter:description content=\"本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/d8ae205/ title=\"尝试在 Python 中使用 Amazon Titan 文本模型 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\"><link rel=next type=text/html href=https://lruihao.cn/posts/el-card-collapse/ title=\"给 el-card 添加折叠功能\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/d8ae205/index.md title=\"尝试在 Python 中使用 Amazon Titan 文本模型 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"尝试在 Python 中使用 Amazon Titan 文本模型\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/d8ae205\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"AWS, Python\",\"wordcount\":1544,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/d8ae205\\/\",\"datePublished\":\"2023-12-22T19:58:47+08:00\",\"dateModified\":\"2023-12-22T19:58:47+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/d8ae205/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href title=个人博客接的一些广子。>$</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Amazon Titan 文本模型</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>尝试在 Python 中使用 Amazon Titan 文本模型</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/aws/ class=post-collection title=\"合集 - AWS\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> AWS</a></span></div><div class=post-meta-line><span title=\"发布于 2023-12-22 19:58:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-12-22>2023-12-22</time></span>&nbsp;<span title=\"1544 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#认识-amazon-titan>认识 Amazon Titan</a></li><li><a href=#环境准备>环境准备</a><ol><li><a href=#安装最新的-python>安装最新的 Python</a></li><li><a href=#升级-pip>升级 pip</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#加载库>加载库</a></li></ol></li><li><a href=#express>Titan 文本模型 - Express</a><ol><li><a href=#设置-prompt>设置 Prompt</a></li><li><a href=#配置模型>配置模型</a></li><li><a href=#调用模型>调用模型</a></li><li><a href=#解析配置>解析配置</a></li><li><a href=#运行结果>运行结果</a></li></ol></li><li><a href=#lite>Titan 文本模型 - Lite</a><ol><li><a href=#设置-prompt-1>设置 Prompt</a></li><li><a href=#配置模型-1>配置模型</a></li><li><a href=#调用模型-1>调用模型</a></li><li><a href=#解析配置-1>解析配置</a></li><li><a href=#运行结果-1>运行结果</a></li></ol></li><li><a href=#embeddings>Titan 文本模型 - Embeddings</a><ol><li><a href=#设置-prompt-2>设置 Prompt</a></li><li><a href=#配置模型-2>配置模型</a></li><li><a href=#调用模型-2>调用模型</a></li><li><a href=#解析配置-2>解析配置</a></li><li><a href=#运行结果-2>运行结果</a></li></ol></li><li><a href=#register-aws>注册亚马逊云科技账户</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=（本篇完）><p>本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。</p><h2 class=heading-element id=认识-amazon-titan><span>1 认识 Amazon Titan</span>\n<a href=#%e8%ae%a4%e8%af%86-amazon-titan class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://aws.amazon.com/cn/bedrock/titan/ target=_blank rel=\"external nofollow noopener noreferrer\">Amazon Titan<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是来自亚马逊云科技的高性能基础模型。<a href=https://aws.amazon.com/cn/bedrock/ target=_blank rel=\"external nofollow noopener noreferrer\">Amazon Bedrock<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 独有的 Amazon Titan 系列模型融合了 Amazon 25 年来，在其业务范围内积累的人工智能和机器学习创新的经验。Amazon Titan 基础模型（FM）通过完全托管的 API 为客户提供广泛的高性能图像、多模式和文本模型选择。Amazon Titan 模型由 AWS 创建并在大型数据集上进行预训练，使其成为强大的通用模型，旨在支持各种用例，同时还支持负责任地使用 AI。你可以按原样使用，也可以根据自己的数据私下进行自定义。</p><p>Amazon Titan 文本模型系列包括：</p><ul><li>Titan Text Express</li><li>Titan Text Lite</li><li>Titan Text Embeddings</li><li>Titan 多模态嵌入</li><li>Titan Image Generator（预览版）</li></ul><p>本文主要探索 Express、Lite 和 Embeddings。更多细节和其他模型请访问 <a href=https://aws.amazon.com/cn/bedrock/titan/ target=_blank rel=\"external nofollow noopener noreferrer\">Amazon Titan 文本模型系列<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>如果你还没有注册亚马逊云科技账户，可以参考本文最后一节 <a href=#register-aws>注册亚马逊云科技账户</a>。</p><h2 class=heading-element id=环境准备><span>2 环境准备</span>\n<a href=#%e7%8e%af%e5%a2%83%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我正在使用配置了 AWS Credential 的 vscode 本地环境。</p><h3 class=heading-element id=安装最新的-python><span>2.1 安装最新的 Python</span>\n<a href=#%e5%ae%89%e8%a3%85%e6%9c%80%e6%96%b0%e7%9a%84-python class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>python --version\n</span></span><span class=line><span class=cl><span class=c1># Python 3.11.5</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=升级-pip><span>2.2 升级 pip</span>\n<a href=#%e5%8d%87%e7%ba%a7-pip class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pip install --upgrade pip</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=安装依赖><span>2.3 安装依赖</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pip install --no-build-isolation --force-reinstall <span class=se>\\\n</span></span></span><span class=line><span class=cl>    <span class=s2>&#34;boto3&gt;=1.33.6&#34;</span> <span class=se>\\\n</span></span></span><span class=line><span class=cl>    <span class=s2>&#34;awscli&gt;=1.31.6&#34;</span> <span class=se>\\\n</span></span></span><span class=line><span class=cl>    <span class=s2>&#34;botocore&gt;=1.33.6&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=加载库><span>2.4 加载库</span>\n<a href=#%e5%8a%a0%e8%bd%bd%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>import</span> <span class=nn>json</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>sys</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>boto3</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>botocore</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>bedrock</span> <span class=o>=</span> <span class=n>boto3</span><span class=o>.</span><span class=n>client</span><span class=p>(</span><span class=n>service_name</span><span class=o>=</span><span class=s2>&#34;bedrock&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>bedrock_runtime</span> <span class=o>=</span> <span class=n>boto3</span><span class=o>.</span><span class=n>client</span><span class=p>(</span><span class=n>service_name</span><span class=o>=</span><span class=s2>&#34;bedrock-runtime&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=express><span>3 Titan 文本模型 - Express</span>\n<a href=#express class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=设置-prompt><span>3.1 设置 Prompt</span>\n<a href=#%e8%ae%be%e7%bd%ae-prompt class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=c1># 写一个关于 AWS Lambda 的文章</span>\n</span></span><span class=line><span class=cl><span class=n>express_prompt</span> <span class=o>=</span> <span class=s2>&#34;write article about AWS Lambda&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=配置模型><span>3.2 配置模型</span>\n<a href=#%e9%85%8d%e7%bd%ae%e6%a8%a1%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>dumps</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;inputText&#34;</span><span class=p>:</span> <span class=n>express_prompt</span><span class=p>,</span> \n</span></span><span class=line><span class=cl>    <span class=s2>&#34;textGenerationConfig&#34;</span><span class=p>:</span> <span class=p>{</span>  \n</span></span><span class=line><span class=cl>        <span class=s2>&#34;maxTokenCount&#34;</span><span class=p>:</span> <span class=mi>128</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;stopSequences&#34;</span><span class=p>:</span> <span class=p>[],</span> <span class=c1># 定义指示模型结束文本生成的短语</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;temperature&#34;</span><span class=p>:</span> <span class=mi>0</span><span class=p>,</span> <span class=c1># 温度控制随机性；较高的值会增加多样性，较低的值会提高可预测性</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;topP&#34;</span><span class=p>:</span> <span class=mf>0.9</span> <span class=c1># Top P 是一种文本生成技术，从分布中最可能的标记中采样</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=调用模型><span>3.3 调用模型</span>\n<a href=#%e8%b0%83%e7%94%a8%e6%a8%a1%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response</span> <span class=o>=</span> <span class=n>bedrock_runtime</span><span class=o>.</span><span class=n>invoke_model</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=n>body</span><span class=o>=</span><span class=n>body</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>modelId</span><span class=o>=</span><span class=s2>&#34;amazon.titan-text-express-v1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>accept</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span><span class=p>,</span> \n</span></span><span class=line><span class=cl>    <span class=n>contentType</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=解析配置><span>3.4 解析配置</span>\n<a href=#%e8%a7%a3%e6%9e%90%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response_body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>loads</span><span class=p>(</span><span class=n>response</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;body&#39;</span><span class=p>)</span><span class=o>.</span><span class=n>read</span><span class=p>())</span>\n</span></span><span class=line><span class=cl><span class=n>outputText</span> <span class=o>=</span> <span class=n>response_body</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;results&#39;</span><span class=p>)[</span><span class=mi>0</span><span class=p>]</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;outputText&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 代码 text = outputText[outputText.index(&#39;\\n&#39;)+1:] 提取 outputText 字符串中第一个换行符后面的子字符串。这对于第一个换行符之前的初始内容不相关并且您想要捕获其后面的文本的情况非常有用。index(&#39;\\n&#39;)+1 定位第一个换行符的位置，切片 [index+1:] 取出后续文本，将其赋值给变量 text</span>\n</span></span><span class=line><span class=cl><span class=n>text</span> <span class=o>=</span> <span class=n>outputText</span><span class=p>[</span><span class=n>outputText</span><span class=o>.</span><span class=n>index</span><span class=p>(</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>)</span><span class=o>+</span><span class=mi>1</span><span class=p>:]</span>\n</span></span><span class=line><span class=cl><span class=n>about_lambda</span> <span class=o>=</span> <span class=n>text</span><span class=o>.</span><span class=n>strip</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>about_lambda</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=运行结果><span>3.5 运行结果</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>AWS Lambda is a serverless computing service provided by Amazon Web Services (AWS). It allows developers to run code in response to events without the need to manage any infrastructure. In this article, we will explore the features and benefits of AWS Lambda, as well as how to use it to build serverless applications.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Features and Benefits of AWS Lambda:\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Serverless Computing: AWS Lambda is a serverless computing service, which means that developers do not have to worry about managing servers, operating systems, or infrastructure. Lambda runs the code in an environment that is managed by AWS, and scales automatically based</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=lite><span>4 Titan 文本模型 - Lite</span>\n<a href=#lite class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=设置-prompt-1><span>4.1 设置 Prompt</span>\n<a href=#%e8%ae%be%e7%bd%ae-prompt-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=c1># AWS DynamoDB 和 AWS Redis 两个 AWS 服务的区别</span>\n</span></span><span class=line><span class=cl><span class=n>lite_prompt</span> <span class=o>=</span> <span class=s2>&#34;2 difference between AWS DynamoDB and AWS Redis&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=配置模型-1><span>4.2 配置模型</span>\n<a href=#%e9%85%8d%e7%bd%ae%e6%a8%a1%e5%9e%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>dumps</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;inputText&#34;</span><span class=p>:</span> <span class=n>lite_prompt</span><span class=p>,</span> \n</span></span><span class=line><span class=cl>    <span class=s2>&#34;textGenerationConfig&#34;</span><span class=p>:</span> <span class=p>{</span>  \n</span></span><span class=line><span class=cl>        <span class=s2>&#34;maxTokenCount&#34;</span><span class=p>:</span> <span class=mi>128</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;stopSequences&#34;</span><span class=p>:</span> <span class=p>[],</span> <span class=c1># 定义指示模型结束文本生成的短语</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;temperature&#34;</span><span class=p>:</span> <span class=mi>0</span><span class=p>,</span> <span class=c1># 温度控制随机性；较高的值会增加多样性，较低的值会提高可预测性</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;topP&#34;</span><span class=p>:</span> <span class=mf>0.9</span> <span class=c1># Top P 是一种文本生成技术，从分布中最可能的标记中采样</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=调用模型-1><span>4.3 调用模型</span>\n<a href=#%e8%b0%83%e7%94%a8%e6%a8%a1%e5%9e%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response</span> <span class=o>=</span> <span class=n>bedrock_runtime</span><span class=o>.</span><span class=n>invoke_model</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=n>body</span><span class=o>=</span><span class=n>body</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>modelId</span><span class=o>=</span><span class=s2>&#34;amazon.titan-text-lite-v1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>accept</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span><span class=p>,</span> \n</span></span><span class=line><span class=cl>    <span class=n>contentType</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=解析配置-1><span>4.4 解析配置</span>\n<a href=#%e8%a7%a3%e6%9e%90%e9%85%8d%e7%bd%ae-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response_body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>loads</span><span class=p>(</span><span class=n>response</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;body&#39;</span><span class=p>)</span><span class=o>.</span><span class=n>read</span><span class=p>())</span>\n</span></span><span class=line><span class=cl><span class=n>outputText</span> <span class=o>=</span> <span class=n>response_body</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;results&#39;</span><span class=p>)[</span><span class=mi>0</span><span class=p>]</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s1>&#39;outputText&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>text</span> <span class=o>=</span> <span class=n>outputText</span><span class=p>[</span><span class=n>outputText</span><span class=o>.</span><span class=n>index</span><span class=p>(</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>)</span><span class=o>+</span><span class=mi>1</span><span class=p>:]</span>\n</span></span><span class=line><span class=cl><span class=n>compare_dynamodb_redis</span> <span class=o>=</span> <span class=n>text</span><span class=o>.</span><span class=n>strip</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>compare_dynamodb_redis</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=运行结果-1><span>4.5 运行结果</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>Amazon DynamoDB is a fully managed NoSQL database service in the cloud that offers fast and predictable performance with seamless scalability. It is designed to run high-performance applications at any scale. On the other hand, Amazon Redis is a fully managed in-memory data structure store that provides real-time analytics, caching, and key-value data storage. It is suitable for applications that require fast data retrieval and low latency.</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=embeddings><span>5 Titan 文本模型 - Embeddings</span>\n<a href=#embeddings class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=设置-prompt-2><span>5.1 设置 Prompt</span>\n<a href=#%e8%ae%be%e7%bd%ae-prompt-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=c1># AWS re:Invent 2023 是我们今年最大的云活动，在内华达州拉斯维加斯举行，包括主题演讲、创新讲座、构建者实验室、研讨会、技术和可持续发展演示</span>\n</span></span><span class=line><span class=cl><span class=n>embed_prompt</span> <span class=o>=</span> <span class=s2>&#34;AWS re:Invent 2023, our biggest cloud event of the year, in Las Vegas, Nevada, featured keynotes, innovation talks, builder labs, workshops, tech and sustainability demos&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=配置模型-2><span>5.2 配置模型</span>\n<a href=#%e9%85%8d%e7%bd%ae%e6%a8%a1%e5%9e%8b-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>dumps</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;inputText&#34;</span><span class=p>:</span> <span class=n>embed_prompt</span><span class=p>,</span> \n</span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=调用模型-2><span>5.3 调用模型</span>\n<a href=#%e8%b0%83%e7%94%a8%e6%a8%a1%e5%9e%8b-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response</span> <span class=o>=</span> <span class=n>bedrock_runtime</span><span class=o>.</span><span class=n>invoke_model</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=n>body</span><span class=o>=</span><span class=n>body</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>modelId</span><span class=o>=</span><span class=s2>&#34;amazon.titan-embed-text-v1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>accept</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span><span class=p>,</span> \n</span></span><span class=line><span class=cl>    <span class=n>contentType</span><span class=o>=</span><span class=s2>&#34;application/json&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=解析配置-2><span>5.4 解析配置</span>\n<a href=#%e8%a7%a3%e6%9e%90%e9%85%8d%e7%bd%ae-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=n>response_body</span> <span class=o>=</span> <span class=n>json</span><span class=o>.</span><span class=n>loads</span><span class=p>(</span><span class=n>response</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s2>&#34;body&#34;</span><span class=p>)</span><span class=o>.</span><span class=n>read</span><span class=p>())</span>\n</span></span><span class=line><span class=cl><span class=n>embedding_output</span> <span class=o>=</span> <span class=n>response_body</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=s2>&#34;embedding&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 此代码从响应正文中检索“嵌入”向量，并打印其长度以及前三个和最后三个值的预览，显示嵌入向量的片段</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>&#34;You can find the Embedding Vector </span><span class=si>{</span><span class=nb>len</span><span class=p>(</span><span class=n>embedding_output</span><span class=p>)</span><span class=si>}</span><span class=s2> values</span><span class=se>\\n</span><span class=si>{</span><span class=n>embedding_output</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=mi>3</span><span class=p>]</span><span class=o>+</span><span class=p>[</span><span class=s1>&#39;...&#39;</span><span class=p>]</span><span class=o>+</span><span class=n>embedding_output</span><span class=p>[</span><span class=o>-</span><span class=mi>3</span><span class=p>:]</span><span class=si>}</span><span class=s2>&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=运行结果-2><span>5.5 运行结果</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>You can find the Embedding Vector 1536 values\n</span></span><span class=line><span class=cl>[0.40429688, -0.38085938, 0.19726562, &#39;...&#39;, 0.2109375, 0.012573242, 0.18847656]</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=register-aws><span>6 注册亚马逊云科技账户</span>\n<a href=#register-aws class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开 <a href=\"https://aws.amazon.com/cn/q/?sc_channel=seo&amp;sc_campaign=blog1210\" target=_blank rel=\"external nofollow noopener noreferrer\">亚马逊云科技账号注册地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，点击右上角创建 AWS 账户。</p><p><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693042834.png title=\"创建 AWS 账户\" data-thumbnail=../aws-ec2/images/23_1693042834.png data-sub-html=\"<h2>创建 AWS 账户</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693042834.png alt=\"创建 AWS 账户\"></a></p><ol><li>填写邮件地址和账号名称（支持使用国内的邮箱）<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043425.png title=login data-thumbnail=../aws-ec2/images/23_1693043425.png data-sub-html=\"<h2>login</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043425.png alt=login></a></li><li>验证邮件<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043626.png title=valid data-thumbnail=../aws-ec2/images/23_1693043626.png data-sub-html=\"<h2>valid</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043626.png alt=valid></a></li><li>输入密码<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693043910.png title=password data-thumbnail=../aws-ec2/images/23_1693043910.png data-sub-html=\"<h2>password</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693043910.png alt=password></a></li><li>联系人信息<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044220.png title=contact data-thumbnail=../aws-ec2/images/23_1693044220.png data-sub-html=\"<h2>contact</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044220.png alt=contact></a></li><li>付款信息（Visa）<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044537.png title=payment data-thumbnail=../aws-ec2/images/23_1693044537.png data-sub-html=\"<h2>payment</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044537.png alt=payment></a></li><li>验证手机号（支持中国地区国内手机号）<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693044806.png title=phone data-thumbnail=../aws-ec2/images/23_1693044806.png data-sub-html=\"<h2>phone</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693044806.png alt=phone></a></li><li>选择支持计划<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693045029.png title=plan data-thumbnail=../aws-ec2/images/23_1693045029.png data-sub-html=\"<h2>plan</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693045029.png alt=plan></a></li><li>完成注册<br><a class=lightgallery target=_blank href=../aws-ec2/images/23_1693045100.png title=complete data-thumbnail=../aws-ec2/images/23_1693045100.png data-sub-html=\"<h2>complete</h2>\"><img loading=lazy src=../aws-ec2/images/23_1693045100.png alt=complete></a></li><li>登录亚马逊云科技控制台，<a href=https://console.aws.amazon.com/console/home target=_blank rel=\"external nofollow noopener noreferrer\">登录地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。</li></ol></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/aws/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・AWS</span></span></a> 5</div><div class=collection-nav><a href=/posts/aws-solution/ class=collection-nav-item rel=prev title=\"AWS 云上一站式解决方案\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>AWS 云上一站式解决方案</span>\n</a><a href=/posts/d1fc0c7/ class=collection-nav-item rel=next title=\"Amazon S3\"><span>Amazon S3</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-22 19:58:47\">更新于 2023-12-22&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整 sections 批量参数&#10&#10Commit: d2d1d9d7bf6acf85261fc3ae511666efa97d5ab0 [d2d1d9d]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-07 01:20:02&#10Commit Date: 2024-12-07 01:25:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d2d1d9d</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/d8ae205/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/d8ae205/ data-title=\"尝试在 Python 中使用 Amazon Titan 文本模型\" data-hashtags=AWS,Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/d8ae205/ data-hashtag=AWS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/d8ae205/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/d8ae205/ data-title=\"尝试在 Python 中使用 Amazon Titan 文本模型\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/d8ae205/ data-title=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/aws/ class=post-tag title=\"标签 - AWS\">AWS</a><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/fixit-cli/ class=post-nav-item rel=prev title=\"用 Node.js 开发一个轻量脚手架\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>用 Node.js 开发一个轻量脚手架</a><a href=/posts/el-card-collapse/ class=post-nav-item rel=next title=\"给 El-Card 添加折叠功能\">给 El-Card 添加折叠功能<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#认识-amazon-titan>认识 Amazon Titan</a></li><li><a href=#环境准备>环境准备</a><ol><li><a href=#安装最新的-python>安装最新的 Python</a></li><li><a href=#升级-pip>升级 pip</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#加载库>加载库</a></li></ol></li><li><a href=#express>Titan 文本模型 - Express</a><ol><li><a href=#设置-prompt>设置 Prompt</a></li><li><a href=#配置模型>配置模型</a></li><li><a href=#调用模型>调用模型</a></li><li><a href=#解析配置>解析配置</a></li><li><a href=#运行结果>运行结果</a></li></ol></li><li><a href=#lite>Titan 文本模型 - Lite</a><ol><li><a href=#设置-prompt-1>设置 Prompt</a></li><li><a href=#配置模型-1>配置模型</a></li><li><a href=#调用模型-1>调用模型</a></li><li><a href=#解析配置-1>解析配置</a></li><li><a href=#运行结果-1>运行结果</a></li></ol></li><li><a href=#embeddings>Titan 文本模型 - Embeddings</a><ol><li><a href=#设置-prompt-2>设置 Prompt</a></li><li><a href=#配置模型-2>配置模型</a></li><li><a href=#调用模型-2>调用模型</a></li><li><a href=#解析配置-2>解析配置</a></li><li><a href=#运行结果-2>运行结果</a></li></ol></li><li><a href=#register-aws>注册亚马逊云科技账户</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d8ae2051c1c637ef58cbfff835862815.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d8ae2051c1c637ef58cbfff835862815.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/d8ae205/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/d8ae205/index.md",
    "content": "# 尝试在 Python 中使用 Amazon Titan 文本模型\n\n<!-- markdownlint-disable-file no-duplicate-heading-->\n\n本文将通过 Python 代码探索 Amazon Titan 文本模型系列（包括 Express、Lite 和 Embedding）。\n\n<!--more-->\n\n## 认识 Amazon Titan\n\n[Amazon Titan](https://aws.amazon.com/cn/bedrock/titan/) 是来自亚马逊云科技的高性能基础模型。[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/) 独有的 Amazon Titan 系列模型融合了 Amazon 25 年来，在其业务范围内积累的人工智能和机器学习创新的经验。Amazon Titan 基础模型（FM）通过完全托管的 API 为客户提供广泛的高性能图像、多模式和文本模型选择。Amazon Titan 模型由 AWS 创建并在大型数据集上进行预训练，使其成为强大的通用模型，旨在支持各种用例，同时还支持负责任地使用 AI。你可以按原样使用，也可以根据自己的数据私下进行自定义。\n\nAmazon Titan 文本模型系列包括：\n\n- Titan Text Express\n- Titan Text Lite\n- Titan Text Embeddings\n- Titan 多模态嵌入\n- Titan Image Generator（预览版）\n\n本文主要探索 Express、Lite 和 Embeddings。更多细节和其他模型请访问 [Amazon Titan 文本模型系列](https://aws.amazon.com/cn/bedrock/titan/)。\n\n如果你还没有注册亚马逊云科技账户，可以参考本文最后一节 [注册亚马逊云科技账户](#register-aws)。\n\n## 环境准备\n\n我正在使用配置了 AWS Credential 的 vscode 本地环境。\n\n### 安装最新的 Python\n\n```bash\npython --version\n# Python 3.11.5\n```\n\n### 升级 pip\n\n```bash\npip install --upgrade pip\n```\n\n### 安装依赖\n\n```bash\npip install --no-build-isolation --force-reinstall \\\n    \"boto3>=1.33.6\" \\\n    \"awscli>=1.31.6\" \\\n    \"botocore>=1.33.6\"\n```\n\n### 加载库\n\n```py\nimport json\nimport os\nimport sys\n\nimport boto3\nimport botocore\n\nbedrock = boto3.client(service_name=\"bedrock\")\nbedrock_runtime = boto3.client(service_name=\"bedrock-runtime\")\n```\n\n## Titan 文本模型 - Express {#express}\n\n### 设置 Prompt\n\n```py\n# 写一个关于 AWS Lambda 的文章\nexpress_prompt = \"write article about AWS Lambda\"\n```\n\n### 配置模型\n\n```py\nbody = json.dumps({\n    \"inputText\": express_prompt, \n    \"textGenerationConfig\": {  \n        \"maxTokenCount\": 128,\n        \"stopSequences\": [], # 定义指示模型结束文本生成的短语\n        \"temperature\": 0, # 温度控制随机性；较高的值会增加多样性，较低的值会提高可预测性\n        \"topP\": 0.9 # Top P 是一种文本生成技术，从分布中最可能的标记中采样\n    }\n})\n```\n\n### 调用模型\n\n```py\nresponse = bedrock_runtime.invoke_model(\n    body=body,\n    modelId=\"amazon.titan-text-express-v1\",\n    accept=\"application/json\", \n    contentType=\"application/json\"\n)\n```\n\n### 解析配置\n\n```py\nresponse_body = json.loads(response.get('body').read())\noutputText = response_body.get('results')[0].get('outputText')\n\n# 代码 text = outputText[outputText.index('\\n')+1:] 提取 outputText 字符串中第一个换行符后面的子字符串。这对于第一个换行符之前的初始内容不相关并且您想要捕获其后面的文本的情况非常有用。index('\\n')+1 定位第一个换行符的位置，切片 [index+1:] 取出后续文本，将其赋值给变量 text\ntext = outputText[outputText.index('\\n')+1:]\nabout_lambda = text.strip()\nprint(about_lambda)\n```\n\n### 运行结果\n\n```plain\nAWS Lambda is a serverless computing service provided by Amazon Web Services (AWS). It allows developers to run code in response to events without the need to manage any infrastructure. In this article, we will explore the features and benefits of AWS Lambda, as well as how to use it to build serverless applications.\n\nFeatures and Benefits of AWS Lambda:\n\nServerless Computing: AWS Lambda is a serverless computing service, which means that developers do not have to worry about managing servers, operating systems, or infrastructure. Lambda runs the code in an environment that is managed by AWS, and scales automatically based\n```\n\n## Titan 文本模型 - Lite {#lite}\n\n### 设置 Prompt\n\n```py\n# AWS DynamoDB 和 AWS Redis 两个 AWS 服务的区别\nlite_prompt = \"2 difference between AWS DynamoDB and AWS Redis\"\n```\n\n### 配置模型\n\n```py\nbody = json.dumps({\n    \"inputText\": lite_prompt, \n    \"textGenerationConfig\": {  \n        \"maxTokenCount\": 128,\n        \"stopSequences\": [], # 定义指示模型结束文本生成的短语\n        \"temperature\": 0, # 温度控制随机性；较高的值会增加多样性，较低的值会提高可预测性\n        \"topP\": 0.9 # Top P 是一种文本生成技术，从分布中最可能的标记中采样\n    }\n})\n```\n\n### 调用模型\n\n```py\nresponse = bedrock_runtime.invoke_model(\n    body=body,\n    modelId=\"amazon.titan-text-lite-v1\",\n    accept=\"application/json\", \n    contentType=\"application/json\"\n)\n```\n\n### 解析配置\n\n```py\nresponse_body = json.loads(response.get('body').read())\noutputText = response_body.get('results')[0].get('outputText')\ntext = outputText[outputText.index('\\n')+1:]\ncompare_dynamodb_redis = text.strip()\nprint(compare_dynamodb_redis)\n```\n\n### 运行结果\n\n```plain\nAmazon DynamoDB is a fully managed NoSQL database service in the cloud that offers fast and predictable performance with seamless scalability. It is designed to run high-performance applications at any scale. On the other hand, Amazon Redis is a fully managed in-memory data structure store that provides real-time analytics, caching, and key-value data storage. It is suitable for applications that require fast data retrieval and low latency.\n```\n\n## Titan 文本模型 - Embeddings {#embeddings}\n\n### 设置 Prompt\n\n```py\n# AWS re:Invent 2023 是我们今年最大的云活动，在内华达州拉斯维加斯举行，包括主题演讲、创新讲座、构建者实验室、研讨会、技术和可持续发展演示\nembed_prompt = \"AWS re:Invent 2023, our biggest cloud event of the year, in Las Vegas, Nevada, featured keynotes, innovation talks, builder labs, workshops, tech and sustainability demos\"\n```\n\n### 配置模型\n\n```py\nbody = json.dumps({\n    \"inputText\": embed_prompt, \n})\n```\n\n### 调用模型\n\n```py\nresponse = bedrock_runtime.invoke_model(\n    body=body,\n    modelId=\"amazon.titan-embed-text-v1\",\n    accept=\"application/json\", \n    contentType=\"application/json\"\n)\n```\n\n### 解析配置\n\n```py\nresponse_body = json.loads(response.get(\"body\").read())\nembedding_output = response_body.get(\"embedding\")\n\n# 此代码从响应正文中检索“嵌入”向量，并打印其长度以及前三个和最后三个值的预览，显示嵌入向量的片段\nprint(f\"You can find the Embedding Vector {len(embedding_output)} values\\n{embedding_output[0:3]+['...']+embedding_output[-3:]}\")\n```\n\n### 运行结果\n\n```plain\nYou can find the Embedding Vector 1536 values\n[0.40429688, -0.38085938, 0.19726562, '...', 0.2109375, 0.012573242, 0.18847656]\n```\n\n## 注册亚马逊云科技账户 {#register-aws}\n\n打开 [亚马逊云科技账号注册地址](https://aws.amazon.com/cn/q/?sc_channel=seo&sc_campaign=blog1210)，点击右上角创建 AWS 账户。\n\n![创建 AWS 账户](../aws-ec2/images/23_1693042834.png)\n\n1. 填写邮件地址和账号名称（支持使用国内的邮箱）\\\n   ![login](../aws-ec2/images/23_1693043425.png)\n2. 验证邮件\\\n   ![valid](../aws-ec2/images/23_1693043626.png)\n3. 输入密码\\\n   ![password](../aws-ec2/images/23_1693043910.png)\n4. 联系人信息\\\n   ![contact](../aws-ec2/images/23_1693044220.png)\n5. 付款信息（Visa）\\\n   ![payment](../aws-ec2/images/23_1693044537.png)\n6. 验证手机号（支持中国地区国内手机号）\\\n   ![phone](../aws-ec2/images/23_1693044806.png)\n7. 选择支持计划\\\n   ![plan](../aws-ec2/images/23_1693045029.png)\n8. 完成注册\\\n   ![complete](../aws-ec2/images/23_1693045100.png)\n9. 登录亚马逊云科技控制台，[登录地址](https://console.aws.amazon.com/console/home)，选择根用户输入电子邮件地址，点击下一步会让输入密码，输入密码后就可以完成登录了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/d8ae205/  \n\n"
  },
  {
    "path": "posts/dacheng/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>大数乘法 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 大数乘法 c 版 (基础写法)\n\"><meta name=keywords content='数学,大数运算,ACM,C'><meta itemprop=name content=\"大数乘法\"><meta itemprop=description content=\"大数乘法 c 版 (基础写法)\"><meta itemprop=datePublished content=\"2019-03-28T22:50:43+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"401\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数学,大数运算,acm,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dacheng/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"大数乘法\"><meta property=\"og:description\" content=\"大数乘法 c 版 (基础写法)\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-28T22:50:43+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"大数运算\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"大数乘法\"><meta name=twitter:description content=\"大数乘法 c 版 (基础写法)\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dacheng/ title=\"大数乘法 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/http2https/ title=\"vps 配置 ssl 及 https 重定向\"><link rel=next type=text/html href=https://lruihao.cn/posts/bqbj/ title=百钱百鸡（枚举法）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dacheng/index.md title=\"大数乘法 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"大数乘法\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dacheng\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数学, 大数运算, ACM, C\",\"wordcount\":401,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dacheng\\/\",\"datePublished\":\"2019-03-28T22:50:43+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dacheng/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>大数乘法</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>大数乘法</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-28 22:50:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-28>2019-03-28</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"401 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=大数乘法><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>大数乘法 c 版 (基础写法)</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;string.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#define N 202\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=n>N</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=mi>0</span><span class=p>},</span> <span class=n>b</span><span class=p>[</span><span class=n>N</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=mi>0</span><span class=p>},</span> <span class=n>c</span><span class=p>[</span><span class=mi>404</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=mi>0</span><span class=p>},</span> <span class=n>la</span><span class=p>,</span> <span class=n>lb</span><span class=p>,</span> <span class=n>i</span><span class=p>,</span> <span class=n>j</span><span class=p>,</span><span class=n>k</span><span class=p>,</span> <span class=n>d</span> <span class=o>=</span> <span class=mi>0</span><span class=p>,</span> <span class=n>n1</span><span class=p>,</span> <span class=n>n2</span><span class=p>;</span><span class=c1>//202 位数相乘，最长 404 位数\n</span></span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>get</span><span class=p>(</span><span class=kt>int</span> <span class=o>*</span><span class=n>p</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kt>void</span> <span class=n>change</span><span class=p>(</span><span class=kt>int</span> <span class=o>*</span><span class=n>a</span><span class=p>,</span> <span class=kt>int</span> <span class=o>*</span><span class=n>b</span><span class=p>,</span> <span class=kt>int</span> <span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=n>la</span> <span class=o>=</span> <span class=n>get</span><span class=p>(</span><span class=n>a</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>lb</span> <span class=o>=</span> <span class=n>get</span><span class=p>(</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>n1</span> <span class=o>=</span> <span class=n>la</span> <span class=o>&gt;</span> <span class=n>lb</span> <span class=o>?</span> <span class=nl>la</span> <span class=p>:</span> <span class=n>lb</span><span class=p>;</span><span class=c1>//较长的数长\n</span></span></span><span class=line><span class=cl>  <span class=n>n2</span> <span class=o>=</span> <span class=n>la</span> <span class=o>&lt;</span> <span class=n>lb</span> <span class=o>?</span> <span class=nl>la</span> <span class=p>:</span> <span class=n>lb</span><span class=p>;</span><span class=c1>//较短的数长\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=n>la</span> <span class=o>&lt;</span> <span class=n>lb</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>change</span><span class=p>(</span><span class=n>a</span><span class=p>,</span> <span class=n>b</span><span class=p>,</span> <span class=n>lb</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//模拟乘法运算过程（进位等考虑）\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>n2</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=n>j</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>j</span> <span class=o>&lt;</span> <span class=n>n1</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>c</span><span class=p>[</span><span class=n>j</span> <span class=o>+</span> <span class=n>i</span><span class=p>]</span> <span class=o>+=</span> <span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>*</span> <span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>+</span> <span class=n>d</span><span class=p>)</span><span class=o>%</span><span class=mi>10</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=n>d</span> <span class=o>=</span> <span class=p>(</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>*</span> <span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>+</span> <span class=n>d</span><span class=p>)</span> <span class=o>/</span> <span class=mi>10</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=p>[</span><span class=n>j</span><span class=o>+</span><span class=n>i</span><span class=p>]</span><span class=o>&gt;</span><span class=mi>9</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>d</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>j</span><span class=o>+</span><span class=n>i</span><span class=p>]</span><span class=o>%=</span><span class=mi>10</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=o>+</span><span class=mi>1</span><span class=p>]</span><span class=o>==</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>d</span><span class=o>!=</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>k</span><span class=o>=</span><span class=n>j</span><span class=o>+</span><span class=n>i</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>=</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>d</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=n>k</span><span class=o>=</span><span class=n>k</span><span class=o>&gt;</span><span class=p>(</span><span class=n>j</span><span class=o>+</span><span class=n>i</span><span class=o>-</span><span class=mi>2</span><span class=p>)</span><span class=o>?</span><span class=nl>k</span><span class=p>:</span><span class=n>j</span><span class=o>+</span><span class=n>i</span><span class=o>-</span><span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=n>k</span><span class=p>;</span> <span class=n>i</span> <span class=o>&gt;=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>--</span><span class=p>)</span><span class=c1>//将倒序装入的结果打印\n</span></span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>//输入字符串作为数字，并返回数字去除前导 0 后的长度\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>get</span><span class=p>(</span><span class=kt>int</span> <span class=o>*</span><span class=n>p</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>char</span> <span class=n>x</span><span class=p>[</span><span class=n>N</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>l</span><span class=p>,</span> <span class=n>i</span><span class=p>,</span> <span class=n>ex</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%s&#34;</span><span class=p>,</span> <span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>l</span> <span class=o>=</span> <span class=n>strlen</span><span class=p>(</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=p>(</span><span class=n>x</span><span class=p>[</span><span class=n>ex</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;0&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>ex</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=n>ex</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>l</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span> <span class=c1>//提取字符串数字到 int 数组，倒序排列\n</span></span></span><span class=line><span class=cl>    <span class=o>*</span><span class=p>(</span><span class=n>p</span> <span class=o>+</span> <span class=n>l</span> <span class=o>-</span> <span class=n>i</span> <span class=o>-</span> <span class=mi>1</span><span class=p>)</span> <span class=o>=</span> <span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>-</span> <span class=sc>&#39;0&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=n>l</span> <span class=o>-</span> <span class=n>ex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>change</span><span class=p>(</span><span class=kt>int</span> <span class=o>*</span><span class=n>a</span><span class=p>,</span> <span class=kt>int</span> <span class=o>*</span><span class=n>b</span><span class=p>,</span> <span class=kt>int</span> <span class=n>n</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>i</span><span class=p>,</span> <span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>t</span> <span class=o>=</span> <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>程序运行结果</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>1234567890123456789\n</span></span><span class=line><span class=cl>98765432109876543210\n</span></span><span class=line><span class=cl>121932631124517831023715309991126352690</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dacheng/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/dacheng.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/dacheng.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%A4%A7%E6%95%B0%E4%B9%98%E6%B3%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%A4%A7%E6%95%B0%E4%B9%98%E6%B3%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/dacheng/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/dacheng.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dacheng/ data-title=大数乘法 data-hashtags=数学,大数运算,ACM,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dacheng/ data-hashtag=数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dacheng/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dacheng/ data-title=大数乘法 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dacheng/ data-title=大数乘法><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/ class=post-tag title=\"标签 - 大数运算\">大数运算</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/http2https/ class=post-nav-item rel=prev title=\"Vps 配置 Ssl 及 Https 重定向\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Vps 配置 Ssl 及 Https 重定向</a><a href=/posts/bqbj/ class=post-nav-item rel=next title=百钱百鸡（枚举法）>百钱百鸡（枚举法）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a311b864532fd54bd959242c6376c303.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a311b864532fd54bd959242c6376c303.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dacheng/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dacheng/index.md",
    "content": "# 大数乘法\n\n\n> 大数乘法 c 版 (基础写法)\n\n<!--more-->\n\n```cpp\n#include<stdio.h>\n#include<string.h>\n#define N 202\n\nint main() {\n  int a[N] = {0}, b[N] = {0}, c[404] = {0}, la, lb, i, j,k, d = 0, n1, n2;//202 位数相乘，最长 404 位数\n  int get(int *p);\n  void change(int *a, int *b, int n);\n\n  la = get(a);\n  lb = get(b);\n  n1 = la > lb ? la : lb;//较长的数长\n  n2 = la < lb ? la : lb;//较短的数长\n\n  if (la < lb)\n    change(a, b, lb);\n\n  //模拟乘法运算过程（进位等考虑）\n  for (i = 0; i < n2; i++) {\n    for (j = 0; j < n1; j++) {\n      c[j + i] += (b[i] * a[j] + d)%10;\n      d = (b[i] * a[j] + d) / 10;\n\n      if (c[j+i]>9){\n        d++;\n        c[j+i]%=10;\n      }\n      if (a[j+1]==0&&d!=0){\n        k=j+i+1;\n        c[k]=d;\n      }\n    }\n    d=0;\n  }\n\n  k=k>(j+i-2)?k:j+i-2;\n  for (i = k; i >= 0; i--)//将倒序装入的结果打印\n    printf(\"%d\", c[i]);\n\n  return 0;\n}\n\n//输入字符串作为数字，并返回数字去除前导 0 后的长度\nint get(int *p) {\n  char x[N];\n  int l, i, ex = 0;\n\n  scanf(\"%s\", x);\n  l = strlen(x);\n  while (x[ex] == '0')\n    ex++;\n  for (i = ex; i < l; i++) //提取字符串数字到 int 数组，倒序排列\n    *(p + l - i - 1) = x[i] - '0';\n  return l - ex;\n}\n\n\nvoid change(int *a, int *b, int n) {\n  int i, t;\n  for (i = 0; i < n; i++) {\n    t = a[i];\n    a[i] = b[i];\n    b[i] = t;\n  }\n}\n```\n\n程序运行结果\n\n```\n1234567890123456789\n98765432109876543210\n121932631124517831023715309991126352690\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dacheng/  \n\n"
  },
  {
    "path": "posts/daka/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>新冠疫情未返校未返工第 N 天之“自动打卡” | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 信息 这件事还得从一只蝙蝠说起 &mldr;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &mldr;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &mldr;\n我和潇 X 巴哥确定思路后兵分两路：\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \"><meta name=keywords content='Python,HTTP'><meta itemprop=name content=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><meta itemprop=description content=\"信息 这件事还得从一只蝙蝠说起 …\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 …\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 …\n我和潇 X 巴哥确定思路后兵分两路：\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\"><meta itemprop=datePublished content=\"2020-03-25T08:22:42+08:00\"><meta itemprop=dateModified content=\"2020-03-25T08:22:42+08:00\"><meta itemprop=wordCount content=\"906\"><meta itemprop=image content=\"https://lruihao.cn/posts/daka/images/result.png\"><meta itemprop=keywords content=\"Python,HTTP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/daka/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><meta property=\"og:description\" content=\"信息 这件事还得从一只蝙蝠说起 …\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 …\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 …\n我和潇 X 巴哥确定思路后兵分两路：\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2020-03-25T08:22:42+08:00\"><meta property=\"article:modified_time\" content=\"2020-03-25T08:22:42+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"HTTP\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/daka/images/result.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/daka/images/result.png\"><meta name=twitter:title content=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><meta name=twitter:description content=\"信息 这件事还得从一只蝙蝠说起 …\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 …\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 …\n我和潇 X 巴哥确定思路后兵分两路：\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/daka/ title=\"新冠疫情未返校未返工第 N 天之“自动打卡” | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/years/2019/ title=\"2019 年度总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/cron/ title=\"Cron 表达式的基本语法\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/daka/index.md title=\"新冠疫情未返校未返工第 N 天之“自动打卡” | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/daka\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/daka\\/images\\/result.png\",\"width\":1356,\"height\":660}],\"genre\":\"posts\",\"keywords\":\"Python, HTTP\",\"wordcount\":906,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/daka\\/\",\"datePublished\":\"2020-03-25T08:22:42+08:00\",\"dateModified\":\"2020-03-25T08:22:42+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/daka/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>新冠疫情未返校未返工第 N 天之“自动打卡”</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>新冠疫情未返校未返工第 N 天之“自动打卡”</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2020-03-25 08:22:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-03-25>2020-03-25</time></span>&nbsp;<span title=\"906 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/daka/images/result.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/daka/images/result.png height=660 width=1356></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#windows-运行效果>Windows 运行效果</a></li><li><a href=#核心代码>核心代码</a></li><li><a href=#自动运行>自动运行</a><ol><li><a href=#windows>Windows</a></li><li><a href=#linux云服务器>linux（云服务器）</a></li></ol></li><li><a href=#潇-x-巴哥的-java-web-版本>潇 x 巴哥的 java web 版本</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2020-03-25，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>这件事还得从一只蝙蝠说起 &mldr;<br>算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &mldr;<br>哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &mldr;<br>我和潇 X 巴哥确定思路后兵分两路：</p><ol><li>他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；</li><li>我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；</li></ol></div></div></div><h2 class=heading-element id=windows-运行效果><span>1 Windows 运行效果</span>\n<a href=#windows-%e8%bf%90%e8%a1%8c%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/daka/images/result1.png title=打卡成功 data-thumbnail=/posts/daka/images/result1.png data-sub-html=\"<h2>打卡成功</h2><p>打卡成功</p>\"><img loading=lazy src=/posts/daka/images/result1.png alt=打卡成功 height=739 width=1473></a><figcaption class=image-caption>打卡成功</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/daka/images/result.png title=重复打卡 data-thumbnail=/posts/daka/images/result.png data-sub-html=\"<h2>重复打卡</h2><p>重复打卡</p>\"><img loading=lazy src=/posts/daka/images/result.png alt=重复打卡 height=660 width=1356></a><figcaption class=image-caption>重复打卡</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/daka/images/result2.png title=定时任务日志 data-thumbnail=/posts/daka/images/result2.png data-sub-html=\"<h2>定时任务日志</h2><p>定时任务日志</p>\"><img loading=lazy src=/posts/daka/images/result2.png alt=定时任务日志 height=615 width=876></a><figcaption class=image-caption>定时任务日志</figcaption></figure></p><h2 class=heading-element id=核心代码><span>2 核心代码</span>\n<a href=#%e6%a0%b8%e5%bf%83%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>适用湖南工程学院的打卡系统。<br>请勿滥用代码提交不实健康信息，隐瞒疫情将受到相关法律处理！</p></blockquote><p><a href=https://github.com/Lruihao/python-funny-code/blob/master/%E6%98%93%E7%8F%AD%E6%89%93%E5%8D%A1.py target=_blank rel=\"external nofollow noopener noreferrer\">完整代码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=k>def</span> <span class=nf>lajaDaka</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>  <span class=c1># 登录</span>\n</span></span><span class=line><span class=cl>  <span class=n>r1</span> <span class=o>=</span> <span class=n>requests</span><span class=o>.</span><span class=n>post</span><span class=p>(</span><span class=n>login_url</span><span class=p>,</span> <span class=n>data</span><span class=o>=</span><span class=n>login</span><span class=p>,</span><span class=n>headers</span><span class=o>=</span><span class=n>headers</span><span class=p>,</span><span class=n>verify</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=n>r1</span><span class=o>.</span><span class=n>status_code</span> <span class=o>==</span> <span class=mi>200</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%Y:%m:</span><span class=si>%d</span><span class=s2>:%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()))</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>login</span><span class=p>[</span><span class=s2>&#34;username&#34;</span><span class=p>]</span> <span class=o>+</span> <span class=s2>&#34; 登录成功！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 拿到登录后的 cookie 并添加到 header 中</span>\n</span></span><span class=line><span class=cl>    <span class=n>header1</span> <span class=o>=</span> <span class=n>r1</span><span class=o>.</span><span class=n>headers</span>\n</span></span><span class=line><span class=cl>    <span class=n>headers</span><span class=p>[</span><span class=s2>&#34;Cookie&#34;</span><span class=p>]</span> <span class=o>=</span> <span class=n>header1</span><span class=p>[</span><span class=s2>&#34;Set-Cookie&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1># 打卡</span>\n</span></span><span class=line><span class=cl>  <span class=n>r2</span> <span class=o>=</span> <span class=n>requests</span><span class=o>.</span><span class=n>post</span><span class=p>(</span><span class=n>daka_url</span><span class=p>,</span> <span class=n>data</span><span class=o>=</span><span class=n>daka</span><span class=p>,</span><span class=n>headers</span><span class=o>=</span><span class=n>headers</span><span class=p>,</span><span class=n>verify</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>response2</span><span class=o>=</span><span class=n>r2</span><span class=o>.</span><span class=n>json</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=n>r2</span><span class=o>.</span><span class=n>status_code</span> <span class=o>!=</span> <span class=mi>200</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;打卡失败！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=n>response2</span><span class=p>[</span><span class=s2>&#34;result&#34;</span><span class=p>]</span> <span class=o>==</span> <span class=kc>True</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;打卡成功！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>response2</span><span class=p>[</span><span class=s2>&#34;errorInfoList&#34;</span><span class=p>][</span><span class=mi>0</span><span class=p>][</span><span class=s2>&#34;message&#34;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span><span class=o>==</span><span class=s2>&#34;__main__&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=n>lajaDaka</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=自动运行><span>3 自动运行</span>\n<a href=#%e8%87%aa%e5%8a%a8%e8%bf%90%e8%a1%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=windows><span>3.1 Windows</span>\n<a href=#windows class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>适用 python 代码控制休眠时间</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span><span class=o>==</span><span class=s2>&#34;__main__&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=kc>True</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_hour</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_min</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=c1># 设置每天 8 点发送</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>now_hour</span> <span class=o>&lt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 脚本将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后打卡&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>&gt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span> <span class=o>+</span> <span class=mi>24</span>\n</span></span><span class=line><span class=cl>      <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 脚本将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后打卡&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>==</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;软件明天开始将在每天 8 点发送数据！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>lajaDaka</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>24</span><span class=o>*</span><span class=mi>60</span><span class=o>*</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>)</span><span class=o>*</span><span class=mi>60</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=linux云服务器><span>3.2 linux（云服务器）</span>\n<a href=#linux%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>搭建 python 环境下载依赖后，使用 shell 脚本定时执行。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>python /home/python/yiban_daka/daka.py</span></span></code></pre></td></tr></table></div></div></div><p><a href=/posts/cron/>CRON 表达式的基本语法</a></p><h2 class=heading-element id=潇-x-巴哥的-java-web-版本><span>4 潇 x 巴哥的 java web 版本</span>\n<a href=#%e6%bd%87-x-%e5%b7%b4%e5%93%a5%e7%9a%84-java-web-%e7%89%88%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>符合程序员的应该有的简洁和方便，干净又卫生！\n<code>http://39.105.174.214/index.html</code><br><figure><a class=lightgallery target=_blank href=/posts/daka/images/javaweb.png title=\"java web 版\" data-thumbnail=/posts/daka/images/javaweb.png data-sub-html=\"<h2>java web 版</h2><p>java web 版</p>\"><img loading=lazy src=/posts/daka/images/javaweb.png alt=\"java web 版\" height=767 width=727></a><figcaption class=image-caption>java web 版</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2020-03-25 08:22:42\">更新于 2020-03-25&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/daka/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/daka/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/daka/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%96%B0%E5%86%A0%E7%96%AB%E6%83%85%E6%9C%AA%E8%BF%94%E6%A0%A1%E6%9C%AA%E8%BF%94%E5%B7%A5%E7%AC%AC+N+%E5%A4%A9%E4%B9%8B%E2%80%9C%E8%87%AA%E5%8A%A8%E6%89%93%E5%8D%A1%E2%80%9D&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%96%B0%E5%86%A0%E7%96%AB%E6%83%85%E6%9C%AA%E8%BF%94%E6%A0%A1%E6%9C%AA%E8%BF%94%E5%B7%A5%E7%AC%AC+N+%E5%A4%A9%E4%B9%8B%E2%80%9C%E8%87%AA%E5%8A%A8%E6%89%93%E5%8D%A1%E2%80%9D%7c%0A%7cURL%7chttps://lruihao.cn/posts/daka/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/daka/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/daka/ data-title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\" data-hashtags=Python,HTTP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/daka/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/daka/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/daka/ data-title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/daka/ data-title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/http/ class=post-tag title=\"标签 - HTTP\">HTTP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/years/2019/ class=post-nav-item rel=prev title=\"2019 年度总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>2019 年度总结</a><a href=/posts/cron/ class=post-nav-item rel=next title=\"Cron 表达式的基本语法\">Cron 表达式的基本语法<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#windows-运行效果>Windows 运行效果</a></li><li><a href=#核心代码>核心代码</a></li><li><a href=#自动运行>自动运行</a><ol><li><a href=#windows>Windows</a></li><li><a href=#linux云服务器>linux（云服务器）</a></li></ol></li><li><a href=#潇-x-巴哥的-java-web-版本>潇 x 巴哥的 java web 版本</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/11731361789df6557ab8fa35ccb37982.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/11731361789df6557ab8fa35ccb37982.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/daka/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/daka/index.md",
    "content": "# 新冠疫情未返校未返工第 N 天之“自动打卡”\n\n\n{{< admonition info >}}\n\n这件事还得从一只蝙蝠说起 ...  \n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 ...  \n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 ...  \n我和潇 X 巴哥确定思路后兵分两路：\n\n1. 他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\n2. 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\n\n{{< /admonition >}}\n\n<!--more-->\n\n## Windows 运行效果\n\n![打卡成功](images/result1.png '打卡成功')  \n![重复打卡](images/result.png '重复打卡')  \n![定时任务日志](images/result2.png '定时任务日志')\n\n## 核心代码\n\n> 适用湖南工程学院的打卡系统。  \n> 请勿滥用代码提交不实健康信息，隐瞒疫情将受到相关法律处理！\n\n[完整代码](https://github.com/Lruihao/python-funny-code/blob/master/%E6%98%93%E7%8F%AD%E6%89%93%E5%8D%A1.py)\n\n```py 模拟登录打卡 https://github.com/Lruihao/python-funny-code/blob/master/%E6%98%93%E7%8F%AD%E6%89%93%E5%8D%A1.py 完整代码\ndef lajaDaka():\n  # 登录\n  r1 = requests.post(login_url, data=login,headers=headers,verify=False)\n  if r1.status_code == 200:\n    print(time.strftime(\"%Y:%m:%d:%H:%M\", time.localtime()))\n    print(login[\"username\"] + \" 登录成功！\")\n    # 拿到登录后的 cookie 并添加到 header 中\n    header1 = r1.headers\n    headers[\"Cookie\"] = header1[\"Set-Cookie\"]\n  else:\n    return\n\n  # 打卡\n  r2 = requests.post(daka_url, data=daka,headers=headers,verify=False)\n  response2=r2.json()\n  if r2.status_code != 200:\n    print(\"打卡失败！\")\n    return\n  if response2[\"result\"] == True:\n    print(\"打卡成功！\")\n  else:\n    print(response2[\"errorInfoList\"][0][\"message\"])\n\nif __name__==\"__main__\":\n  lajaDaka()\n```\n\n## 自动运行\n\n### Windows\n\n适用 python 代码控制休眠时间\n\n```py 定时\nif __name__==\"__main__\":\n  while True:\n    now_hour = time.strftime(\"%H\", time.localtime())\n    now_min = time.strftime(\"%M\", time.localtime())\n    # 设置每天 8 点发送\n    if now_hour < \"08\":\n      rest = 8 - int(now_hour)\n      sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n      print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 脚本将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后打卡\")\n      time.sleep(sleeptime)\n    elif now_hour > \"08\":\n      rest = 8 - int(now_hour) + 24\n      sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n      print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 脚本将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后打卡\")\n      time.sleep(sleeptime)\n    elif now_hour == \"08\":\n      print(\"软件明天开始将在每天 8 点发送数据！\")\n      lajaDaka()\n      time.sleep(24*60*60-int(now_min)*60)\n```\n\n### linux（云服务器）\n\n搭建 python 环境下载依赖后，使用 shell 脚本定时执行。\n\n```bash 脚本内容设定\npython /home/python/yiban_daka/daka.py\n```\n\n[CRON 表达式的基本语法](/posts/cron/)\n\n## 潇 x 巴哥的 java web 版本\n\n符合程序员的应该有的简洁和方便，干净又卫生！\n`http://39.105.174.214/index.html`  \n![java web 版](images/javaweb.png 'java web 版')\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/daka/  \n\n"
  },
  {
    "path": "posts/dashboard-analysis/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 功能需求分析 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"><meta name=keywords content='拖拽式仪表盘,dashboard,Vue2,需求分析'><meta itemprop=name content=\"拖拽式仪表盘 - 功能需求分析\"><meta itemprop=description content=\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"><meta itemprop=datePublished content=\"2023-10-12T15:37:30+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1146\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,Vue2,需求分析\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashboard-analysis/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘 - 功能需求分析\"><meta property=\"og:description\" content=\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T15:37:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"需求分析\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘 - 功能需求分析\"><meta name=twitter:description content=\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/markdownlint/ title=\"给你的 Markdown 挑挑刺\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashboard-analysis/index.md title=\"拖拽式仪表盘 - 功能需求分析 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘 - 功能需求分析\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashboard-analysis\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, Vue2, 需求分析\",\"wordcount\":1146,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashboard-analysis\\/\",\"datePublished\":\"2023-10-12T15:37:30+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashboard-analysis/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘 - 功能需求分析</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><span class=active title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</span></li><li class=collection-item><a href=/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</a></li><li class=collection-item><a href=/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</a></li><li class=collection-item><a href=/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</a></li><li class=collection-item><a href=/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</a></li><li class=collection-item><a href=/posts/dashboard-summary/ title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</a></li></ul><div class=collection-nav-simple><i class=\"fa-solid fa-angle-left collection-nav-item text-secondary\" aria-hidden=true></i><span class=text-secondary>1/6</span><a href=/posts/dashborad-template-docs/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 布局模板文档\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘 - 功能需求分析</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 15:37:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1146 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"拖拽式仪表盘 - 功能需求分析\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#仪表盘简介>仪表盘简介</a></li><li><a href=#功能需求>功能需求</a><ol><li><a href=#布局需求>布局需求</a></li><li><a href=#组件需求>组件需求</a></li><li><a href=#布局和组件交互>布局和组件交互</a></li><li><a href=#用户角色和权限管理需求>用户角色和权限管理需求</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=仪表盘简介><span>1 仪表盘简介</span>\n<a href=#%e4%bb%aa%e8%a1%a8%e7%9b%98%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>仪表盘（dashboard）作为一种直观、灵活的数据可视化工具，正在越来越多地应用于各种领域，帮助用户实时监控和分析数据。常见于各类数据分析平台、数据可视化平台、数据大屏等场景。</p><p>传统的仪表盘往往是开发者固定好的，用户只能使用，无法自定义。而拖拽式仪表盘则可以让用户自由地选择、拖拽、调整仪表盘中的各种组件，从而实现自定义的仪表盘。</p><h2 class=heading-element id=功能需求><span>2 功能需求</span>\n<a href=#%e5%8a%9f%e8%83%bd%e9%9c%80%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>由于本系列文章写作在设计和开发之后，所以先一睹为快，看看最终的效果：<a href=https://lruihao.github.io/vue-el-demo/#/dashboard/index target=_blank rel=\"external nofollow noopener noreferrer\">在线 Demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>技术背景是基于 Vue2 实现，功能需求大致如下：</p><h3 class=heading-element id=布局需求><span>2.1 布局需求</span>\n<a href=#%e5%b8%83%e5%b1%80%e9%9c%80%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>仪表盘布局是拖拽式仪表盘的核心功能之一。布局应该是一个可复用的模板，因为对于一个中后台系统，往往会有多个仪表盘，所有基础功能应该提炼出来，以便于快速复用。</p><ul><li>组件拖放到布局容器中时，用户应能够自由拖拽、调整组件的大小和位置，也可以对组件进行排序、刷新、删除等操作</li><li>允许创建、删除、复制布局，每个布局可以有不同的组件排列</li></ul><h3 class=heading-element id=组件需求><span>2.2 组件需求</span>\n<a href=#%e7%bb%84%e4%bb%b6%e9%9c%80%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>统一的配置项（宽高、是否可调整大小、各种事件钩子等）</li><li>组件分类</li><li>自动加载组件列表</li><li>组件独立（每个组件有自己完整的生命周期）</li></ul><p>每个组件应该拥有相同的配置项，以便于按照相同的规范限制进行后续的组件开发。</p><p>组件统一存放在一个文件夹中，仪表盘模板自动加载这个文件夹中的所有组件到组件列表。</p><p>组件列表中的组件可以通过拖拽或者点击添加到布局容器中。</p><p>组件需要有分类，例如：模块 A 的组件、模块 B 的组件等。因为虽然系统中的每个模块的仪表盘只需要显示当前模块相关的图表组件，但是整个系统的仪表盘需要显示各个模块的图表统计数据，所以需要对组件进行分类。</p><p>另外，应该有一个通用分类，用于存放所有模块都可以使用的组件。例如：便签、天气组件、时间组件等。</p><h3 class=heading-element id=布局和组件交互><span>2.3 布局和组件交互</span>\n<a href=#%e5%b8%83%e5%b1%80%e5%92%8c%e7%bb%84%e4%bb%b6%e4%ba%a4%e4%ba%92 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>仪表盘布局内通常有多个组件，布局和组件之间可能需要进行交互，例如：</p><ul><li>点击总的刷新按钮，所有组件都刷新；点击某个组件的刷新按钮，只刷新当前组件</li><li>点击某个组件的设置按钮，弹出设置框，设置当前组件的配置项保存到当前布局数据中</li><li>点击某个组件的删除按钮，从当前布局数据中删除当前组件</li><li>……</li></ul><h3 class=heading-element id=用户角色和权限管理需求><span>2.4 用户角色和权限管理需求</span>\n<a href=#%e7%94%a8%e6%88%b7%e8%a7%92%e8%89%b2%e5%92%8c%e6%9d%83%e9%99%90%e7%ae%a1%e7%90%86%e9%9c%80%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在拖拽式仪表盘中，不同用户角色可能具有不同的访问权限和操作权限。</p><p>管理员拥有完整的权限：</p><ul><li>可以查看所有仪表盘</li><li>可以编辑所有仪表盘</li><li>可以删除除默认仪表盘之外的所有仪表盘</li><li>可以拖拽、调整所有组件在仪表盘中的位置和大小</li></ul><p>普通用户只能永远部分权限：</p><ul><li>可以查看所有仪表盘</li><li>工作台仪表盘可以新增、删除、编辑组织内可见的仪表盘布局</li><li>工作台仪表盘可以拖拽、调整组件在非默认仪表盘布局中的位置和大小</li><li>其他模块的仪表盘只能查看和刷新，不能编辑</li></ul><h2 class=heading-element id=总结><span>3 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通过分析，简单来说，拖拽式仪表盘的功能需求主要包括：</p><ul><li>布局需求</li><li>组件需求</li><li>布局和组件交互</li><li>用户角色和权限管理需求</li></ul><p>了解清楚需求后，下一篇文章将探讨拖拽式仪表盘的布局模板设计。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashborad-template-docs/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 布局模板文档\"><span>拖拽式仪表盘 - 布局模板文档</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashboard-analysis/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashboard-analysis.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashboard-analysis.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E5%8A%9F%E8%83%BD%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E5%8A%9F%E8%83%BD%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashboard-analysis/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashboard-analysis.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashboard-analysis/ data-title=\"拖拽式仪表盘 - 功能需求分析\" data-hashtags=拖拽式仪表盘,dashboard,Vue2,需求分析><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashboard-analysis/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashboard-analysis/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashboard-analysis/ data-title=\"拖拽式仪表盘 - 功能需求分析\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashboard-analysis/ data-title=\"拖拽式仪表盘 - 功能需求分析\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/ class=post-tag title=\"标签 - 需求分析\">需求分析</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/markdownlint/ class=post-nav-item rel=prev title=\"给你的 Markdown 挑挑刺\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>给你的 Markdown 挑挑刺</a><a href=/posts/dashborad-template-docs/ class=post-nav-item rel=next title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#仪表盘简介>仪表盘简介</a></li><li><a href=#功能需求>功能需求</a><ol><li><a href=#布局需求>布局需求</a></li><li><a href=#组件需求>组件需求</a></li><li><a href=#布局和组件交互>布局和组件交互</a></li><li><a href=#用户角色和权限管理需求>用户角色和权限管理需求</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e736ca84f941c8a4de150b5e327fc508.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e736ca84f941c8a4de150b5e327fc508.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashboard-analysis/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashboard-analysis/index.md",
    "content": "# 拖拽式仪表盘 - 功能需求分析\n\n\n## 仪表盘简介\n\n仪表盘（dashboard）作为一种直观、灵活的数据可视化工具，正在越来越多地应用于各种领域，帮助用户实时监控和分析数据。常见于各类数据分析平台、数据可视化平台、数据大屏等场景。\n\n传统的仪表盘往往是开发者固定好的，用户只能使用，无法自定义。而拖拽式仪表盘则可以让用户自由地选择、拖拽、调整仪表盘中的各种组件，从而实现自定义的仪表盘。\n\n## 功能需求\n\n由于本系列文章写作在设计和开发之后，所以先一睹为快，看看最终的效果：[在线 Demo](https://lruihao.github.io/vue-el-demo/#/dashboard/index)\n\n技术背景是基于 Vue2 实现，功能需求大致如下：\n\n### 布局需求\n\n仪表盘布局是拖拽式仪表盘的核心功能之一。布局应该是一个可复用的模板，因为对于一个中后台系统，往往会有多个仪表盘，所有基础功能应该提炼出来，以便于快速复用。\n\n- 组件拖放到布局容器中时，用户应能够自由拖拽、调整组件的大小和位置，也可以对组件进行排序、刷新、删除等操作\n- 允许创建、删除、复制布局，每个布局可以有不同的组件排列\n\n### 组件需求\n\n- 统一的配置项（宽高、是否可调整大小、各种事件钩子等）\n- 组件分类\n- 自动加载组件列表\n- 组件独立（每个组件有自己完整的生命周期）\n\n每个组件应该拥有相同的配置项，以便于按照相同的规范限制进行后续的组件开发。\n\n组件统一存放在一个文件夹中，仪表盘模板自动加载这个文件夹中的所有组件到组件列表。\n\n组件列表中的组件可以通过拖拽或者点击添加到布局容器中。\n\n组件需要有分类，例如：模块 A 的组件、模块 B 的组件等。因为虽然系统中的每个模块的仪表盘只需要显示当前模块相关的图表组件，但是整个系统的仪表盘需要显示各个模块的图表统计数据，所以需要对组件进行分类。\n\n另外，应该有一个通用分类，用于存放所有模块都可以使用的组件。例如：便签、天气组件、时间组件等。\n\n### 布局和组件交互\n\n仪表盘布局内通常有多个组件，布局和组件之间可能需要进行交互，例如：\n\n- 点击总的刷新按钮，所有组件都刷新；点击某个组件的刷新按钮，只刷新当前组件\n- 点击某个组件的设置按钮，弹出设置框，设置当前组件的配置项保存到当前布局数据中\n- 点击某个组件的删除按钮，从当前布局数据中删除当前组件\n- ……\n\n### 用户角色和权限管理需求\n\n在拖拽式仪表盘中，不同用户角色可能具有不同的访问权限和操作权限。\n\n管理员拥有完整的权限：\n\n- 可以查看所有仪表盘\n- 可以编辑所有仪表盘\n- 可以删除除默认仪表盘之外的所有仪表盘\n- 可以拖拽、调整所有组件在仪表盘中的位置和大小\n\n普通用户只能永远部分权限：\n\n- 可以查看所有仪表盘\n- 工作台仪表盘可以新增、删除、编辑组织内可见的仪表盘布局\n- 工作台仪表盘可以拖拽、调整组件在非默认仪表盘布局中的位置和大小\n- 其他模块的仪表盘只能查看和刷新，不能编辑\n\n## 总结\n\n通过分析，简单来说，拖拽式仪表盘的功能需求主要包括：\n\n- 布局需求\n- 组件需求\n- 布局和组件交互\n- 用户角色和权限管理需求\n\n了解清楚需求后，下一篇文章将探讨拖拽式仪表盘的布局模板设计。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashboard-analysis/  \n\n"
  },
  {
    "path": "posts/dashboard-summary/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘系列总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\n\"><meta name=keywords content='拖拽式仪表盘,dashboard,widget,Vue2,总结'><meta itemprop=name content=\"拖拽式仪表盘系列总结\"><meta itemprop=description content=\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\"><meta itemprop=datePublished content=\"2023-10-12T21:25:18+08:00\"><meta itemprop=dateModified content=\"2024-01-17T16:39:29+08:00\"><meta itemprop=wordCount content=\"1531\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,widget,Vue2,总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashboard-summary/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘系列总结\"><meta property=\"og:description\" content=\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T21:25:18+08:00\"><meta property=\"article:modified_time\" content=\"2024-01-17T16:39:29+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"widget\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘系列总结\"><meta name=twitter:description content=\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashboard-summary/ title=\"拖拽式仪表盘系列总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\"><link rel=next type=text/html href=https://lruihao.cn/posts/patch-package/ title=\"如何给 npm 包打补丁？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashboard-summary/index.md title=\"拖拽式仪表盘系列总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘系列总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashboard-summary\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, widget, Vue2, 总结\",\"wordcount\":1531,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashboard-summary\\/\",\"datePublished\":\"2023-10-12T21:25:18+08:00\",\"dateModified\":\"2024-01-17T16:39:29+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashboard-summary/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘系列总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</a></li><li class=collection-item><a href=/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</a></li><li class=collection-item><a href=/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</a></li><li class=collection-item><a href=/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</a></li><li class=collection-item><a href=/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</a></li><li class=collection-item><span class=active title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</span></li></ul><div class=collection-nav-simple><a href=/posts/dashborad-widget-usage/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 组件开发\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>6/6</span><i class=\"fa-solid fa-angle-right collection-nav-item text-secondary\" aria-hidden=true></i></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘系列总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 21:25:18\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2024-01-17 16:39:29\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-01-17>2024-01-17</time></span>&nbsp;<span title=\"1531 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=拖拽式仪表盘系列总结><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#特点和功能>特点和功能</a></li><li><a href=#优势和益处>优势和益处</a></li><li><a href=#应用领域>应用领域</a></li><li><a href=#未来发展>未来发展</a></li><li><a href=#收获与总结>收获与总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-01-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。</p><h2 class=heading-element id=特点和功能><span>1 特点和功能</span>\n<a href=#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：</p><ul><li><p>拖拽元素：用户可以从预定义的元素列表中选择并将其拖拽到仪表盘上。这些元素可以是图表、指标、过滤器、小部件等。</p></li><li><p>放置和调整：拖拽后，用户可以将元素放置到所需的位置，并调整它们的大小和布局，以满足个人需求。</p></li><li><p>数据关联：用户可以将数据源与仪表盘上的元素关联起来，以显示实时或静态数据。这使用户能够轻松地创建可视化报表和图表。</p></li><li><p>交互性：拖拽式仪表盘通常支持用户与元素进行交互，如数据筛选、排序、聚合等操作，以便更深入地分析数据。</p></li></ul><h2 class=heading-element id=优势和益处><span>2 优势和益处</span>\n<a href=#%e4%bc%98%e5%8a%bf%e5%92%8c%e7%9b%8a%e5%a4%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>拖拽式仪表盘具有多个优势，使其成为用户和开发者的首选选择：</p><ul><li><p>用户友好：拖拽式操作使得构建和定制仪表盘变得直观和简单，无需复杂的编码或技术知识。</p></li><li><p>灵活性：用户可以根据自己的需求和偏好自定义仪表盘布局、样式和内容，使其适应不同的工作场景和数据展示要求。</p></li><li><p>实时更新：通过数据关联和实时更新功能，拖拽式仪表盘可以显示最新的数据，帮助用户做出准确的决策。</p></li><li><p>可视化效果：仪表盘上的图表、指标和图形化元素可以提供直观和易于理解的数据展示，帮助用户快速洞察关键信息和趋势。</p></li><li><p>可扩展性：拖拽式仪表盘通常具有可扩展性，可以集成其他功能和插件，以满足特定的业务需求。</p></li></ul><h2 class=heading-element id=应用领域><span>3 应用领域</span>\n<a href=#%e5%ba%94%e7%94%a8%e9%a2%86%e5%9f%9f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>拖拽式仪表盘在许多领域中都得到广泛应用，包括但不限于：</p><ul><li><p>数据分析和报告：拖拽式仪表盘使数据分析师和业务用户能够轻松构建个性化的数据报表和仪表盘，以实时监控和分析关键指标。</p></li><li><p>业务管理和监控：企业管理者可以使用拖拽式仪表盘来跟踪业务绩效、销售数据、供应链指标等，以便做出战略决策。</p></li><li><p>项目管理和协作：拖拽式仪表盘可用于项目管理和团队协作，帮助团队成员追踪任务、进度和资源分配情况。</p></li><li><p>客户关系管理：在销售和客户服务领域，拖拽式仪表盘可以显示客户数据、销售漏斗、客户满意度等信息，以支持客户关系管理和提高客户体验。</p></li><li><p>运营监控和故障排除：拖拽式仪表盘可用于监控系统运行状况、网络流量、服务器负载等，帮助运维团队及时发现和解决问题。</p></li><li><p>市场营销和广告分析：拖拽式仪表盘可以用于跟踪市场营销活动、广告效果和用户行为数据，以优化营销策略和广告投放。</p></li></ul><h2 class=heading-element id=未来发展><span>4 未来发展</span>\n<a href=#%e6%9c%aa%e6%9d%a5%e5%8f%91%e5%b1%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>拖拽式仪表盘是一种强大而灵活的工具，为用户提供了以直观和个性化的方式展示和操作数据的能力。它们在各个领域中都发挥着重要作用，帮助用户快速洞察数据、做出决策并优化业务流程。随着技术的不断发展，拖拽式仪表盘的功能和性能将进一步增强，为用户提供更多可能性和创新的数据可视化体验。</p><h2 class=heading-element id=收获与总结><span>5 收获与总结</span>\n<a href=#%e6%94%b6%e8%8e%b7%e4%b8%8e%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在开发拖拽式仪表盘的过程中，我学到了很多东西，包括但不限于：更加深入 Vue.js 的使用，包括组件、插槽、指令、混入、依赖注入等。</p><p>独立设计和开发一个完整的功能、思考的过程比最终的结果更加有趣。比如以前没尝试过的自定义 HooK、Provide/Inject 等。还有，相比于以前的工作，大多是由后端主导逻辑，这次的工作是从设计到开发完全由前端主导，逻辑可控，之后维护起来也会更加简单。</p><p>并且未来方便之后不同的同事开发不同的仪表盘组件，我写了完整详细的文档，包括方法参数、属性配置、事件钩子等，方便他们快速上手。</p><p>一步步完善每个小功能的过程中，也写下了几篇前驱文章：</p><ul><li><a href=/posts/grid-bg-image/>CSS 实现网格背景效果</a></li><li><a href=/posts/vue-svg-icon/>在 Vue 项目中更优雅地使用 icon</a></li><li><a href=/posts/vue-fullscreen-toggler/>封装 Vue FullScreenToggler 组件</a></li></ul><p>另外，我还收集了一些拖拽式相关的库：</p><ul><li><a href=https://github.com/react-grid-layout/react-grid-layout target=_blank rel=\"external nofollow noopener noreferrer\">react-grid-layout<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，用于 React 的拖拽式布局系统，比 Vue 版的更完善</li><li><a href=https://github.com/mauricius/vue-draggable-resizable target=_blank rel=\"external nofollow noopener noreferrer\">vue-draggable-resizable<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>总的来说，拖拽式仪表盘这个功能还是很有趣的，这也使得我孜孜不倦地去开发完善。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashborad-widget-usage/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 组件开发\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>拖拽式仪表盘 - 组件开发</span></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-01-17 16:39:29\">更新于 2024-01-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/d25450ad9dc55af2a6262dae9246d406d512541f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 增加 frontmatter 相关配置到 GIt&#10&#10Commit: d25450ad9dc55af2a6262dae9246d406d512541f [d25450a]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-01-17 16:39:29\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>d25450a</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashboard-summary/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashboard-summary.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashboard-summary.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashboard-summary/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashboard-summary.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashboard-summary/ data-title=拖拽式仪表盘系列总结 data-hashtags=拖拽式仪表盘,dashboard,widget,Vue2,总结><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashboard-summary/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashboard-summary/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashboard-summary/ data-title=拖拽式仪表盘系列总结 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashboard-summary/ data-title=拖拽式仪表盘系列总结><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/widget/ class=post-tag title=\"标签 - widget\">widget</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashborad-widget-usage/ class=post-nav-item rel=prev title=\"拖拽式仪表盘 - 组件开发\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘 - 组件开发</a><a href=/posts/patch-package/ class=post-nav-item rel=next title=\"如何给 Npm 包打补丁？\">如何给 Npm 包打补丁？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#特点和功能>特点和功能</a></li><li><a href=#优势和益处>优势和益处</a></li><li><a href=#应用领域>应用领域</a></li><li><a href=#未来发展>未来发展</a></li><li><a href=#收获与总结>收获与总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/9e104be23a3904181ce3d8ad4f4ab220.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/9e104be23a3904181ce3d8ad4f4ab220.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashboard-summary/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashboard-summary/index.md",
    "content": "# 拖拽式仪表盘系列总结\n\n\n当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n\n## 特点和功能\n\n拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\n\n- 拖拽元素：用户可以从预定义的元素列表中选择并将其拖拽到仪表盘上。这些元素可以是图表、指标、过滤器、小部件等。\n\n- 放置和调整：拖拽后，用户可以将元素放置到所需的位置，并调整它们的大小和布局，以满足个人需求。\n\n- 数据关联：用户可以将数据源与仪表盘上的元素关联起来，以显示实时或静态数据。这使用户能够轻松地创建可视化报表和图表。\n\n- 交互性：拖拽式仪表盘通常支持用户与元素进行交互，如数据筛选、排序、聚合等操作，以便更深入地分析数据。\n\n## 优势和益处\n\n拖拽式仪表盘具有多个优势，使其成为用户和开发者的首选选择：\n\n- 用户友好：拖拽式操作使得构建和定制仪表盘变得直观和简单，无需复杂的编码或技术知识。\n\n- 灵活性：用户可以根据自己的需求和偏好自定义仪表盘布局、样式和内容，使其适应不同的工作场景和数据展示要求。\n\n- 实时更新：通过数据关联和实时更新功能，拖拽式仪表盘可以显示最新的数据，帮助用户做出准确的决策。\n\n- 可视化效果：仪表盘上的图表、指标和图形化元素可以提供直观和易于理解的数据展示，帮助用户快速洞察关键信息和趋势。\n\n- 可扩展性：拖拽式仪表盘通常具有可扩展性，可以集成其他功能和插件，以满足特定的业务需求。\n\n## 应用领域\n\n拖拽式仪表盘在许多领域中都得到广泛应用，包括但不限于：\n\n- 数据分析和报告：拖拽式仪表盘使数据分析师和业务用户能够轻松构建个性化的数据报表和仪表盘，以实时监控和分析关键指标。\n\n- 业务管理和监控：企业管理者可以使用拖拽式仪表盘来跟踪业务绩效、销售数据、供应链指标等，以便做出战略决策。\n\n- 项目管理和协作：拖拽式仪表盘可用于项目管理和团队协作，帮助团队成员追踪任务、进度和资源分配情况。\n\n- 客户关系管理：在销售和客户服务领域，拖拽式仪表盘可以显示客户数据、销售漏斗、客户满意度等信息，以支持客户关系管理和提高客户体验。\n\n- 运营监控和故障排除：拖拽式仪表盘可用于监控系统运行状况、网络流量、服务器负载等，帮助运维团队及时发现和解决问题。\n\n- 市场营销和广告分析：拖拽式仪表盘可以用于跟踪市场营销活动、广告效果和用户行为数据，以优化营销策略和广告投放。\n\n## 未来发展\n\n拖拽式仪表盘是一种强大而灵活的工具，为用户提供了以直观和个性化的方式展示和操作数据的能力。它们在各个领域中都发挥着重要作用，帮助用户快速洞察数据、做出决策并优化业务流程。随着技术的不断发展，拖拽式仪表盘的功能和性能将进一步增强，为用户提供更多可能性和创新的数据可视化体验。\n\n## 收获与总结\n\n在开发拖拽式仪表盘的过程中，我学到了很多东西，包括但不限于：更加深入 Vue.js 的使用，包括组件、插槽、指令、混入、依赖注入等。\n\n独立设计和开发一个完整的功能、思考的过程比最终的结果更加有趣。比如以前没尝试过的自定义 HooK、Provide/Inject 等。还有，相比于以前的工作，大多是由后端主导逻辑，这次的工作是从设计到开发完全由前端主导，逻辑可控，之后维护起来也会更加简单。\n\n并且未来方便之后不同的同事开发不同的仪表盘组件，我写了完整详细的文档，包括方法参数、属性配置、事件钩子等，方便他们快速上手。\n\n一步步完善每个小功能的过程中，也写下了几篇前驱文章：\n\n- [CSS 实现网格背景效果](/posts/grid-bg-image/)\n- [在 Vue 项目中更优雅地使用 icon](/posts/vue-svg-icon/)\n- [封装 Vue FullScreenToggler 组件](/posts/vue-fullscreen-toggler/)\n\n另外，我还收集了一些拖拽式相关的库：\n\n- [react-grid-layout](https://github.com/react-grid-layout/react-grid-layout)，用于 React 的拖拽式布局系统，比 Vue 版的更完善\n- [vue-draggable-resizable](https://github.com/mauricius/vue-draggable-resizable)\n\n总的来说，拖拽式仪表盘这个功能还是很有趣的，这也使得我孜孜不倦地去开发完善。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashboard-summary/  \n\n"
  },
  {
    "path": "posts/dashborad-template-docs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 布局模板文档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"><meta name=keywords content='拖拽式仪表盘,dashboard,Vue2'><meta itemprop=name content=\"拖拽式仪表盘 - 布局模板文档\"><meta itemprop=description content=\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"><meta itemprop=datePublished content=\"2023-10-12T19:27:49+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1867\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashborad-template-docs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘 - 布局模板文档\"><meta property=\"og:description\" content=\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T19:27:49+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘 - 布局模板文档\"><meta name=twitter:description content=\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashborad-template-docs/index.md title=\"拖拽式仪表盘 - 布局模板文档 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘 - 布局模板文档\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-template-docs\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, Vue2\",\"wordcount\":1867,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-template-docs\\/\",\"datePublished\":\"2023-10-12T19:27:49+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashborad-template-docs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘 - 布局模板文档</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</a></li><li class=collection-item><span class=active title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</span></li><li class=collection-item><a href=/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</a></li><li class=collection-item><a href=/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</a></li><li class=collection-item><a href=/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</a></li><li class=collection-item><a href=/posts/dashboard-summary/ title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</a></li></ul><div class=collection-nav-simple><a href=/posts/dashboard-analysis/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 功能需求分析\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>2/6</span><a href=/posts/dashborad-widget-docs/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 组件配置文档\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘 - 布局模板文档</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">Dashboard Template</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 19:27:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1867 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"拖拽式仪表盘 - 布局模板文档\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#basic-usage>Basic Usage</a></li><li><a href=#export>Export</a></li><li><a href=#provide>Provide</a></li><li><a href=#data-properties>Data Properties</a></li><li><a href=#computed-properties>Computed Properties</a></li><li><a href=#methods>Methods</a><ol><li><a href=#notifymessage-type--success>notify(message, type = &lsquo;success&rsquo;)</a></li><li><a href=#addcomponentscategory-components-isprepend--false>addComponents(category, components, isPrepend = false)</a></li><li><a href=#selectcategorycategory>selectCategory(category)</a></li><li><a href=#switchdashboardid>switchDashboard(id)</a></li><li><a href=#handlecommandtype>handleCommand(type)</a></li><li><a href=#guide>guide()</a></li><li><a href=#refreshallitems>refreshAllItems()</a></li><li><a href=#clearlayout>clearLayout()</a></li><li><a href=#idincrement>idIncrement()</a></li><li><a href=#sortitems>sortItems()</a></li><li><a href=#additemcomponent-widget>addItem(component, widget)</a></li><li><a href=#removeitemi-save--true>removeItem(i, save = true)</a></li><li><a href=#confirmremoveitemi>confirmRemoveItem(i)</a></li><li><a href=#hashookcomponent-hook>hasHook(component, hook)</a></li><li><a href=#triggerhookitem-hook-args---save--false>triggerHook(item, hook, args = [], save = false)</a></li><li><a href=#mouseingridx-y>mouseInGrid(x, y)</a></li><li><a href=#removeunexistitemsfromlayout>removeUnExistItems(fromLayout)</a></li><li><a href=#dragstarte>dragStart(e)</a></li><li><a href=#dragende>dragEnd(e)</a></li><li><a href=#dragcomponent-widget-e>drag(component, widget, e)</a></li><li><a href=#ondragoverdashboarde>onDragoverDashboard(e)</a></li><li><a href=#ondropdashboarde>onDropDashboard(e)</a></li><li><a href=#getdashboard>getDashboard()</a></li><li><a href=#savedashboard>saveDashboard()</a></li><li><a href=#adddashboard>addDashboard()</a></li><li><a href=#updatedashboard>updateDashboard()</a></li><li><a href=#deletedashboard>deleteDashboard()</a></li></ol></li><li><a href=#appendix-a-data-dictionary>Appendix A: Data Dictionary</a></li><li><a href=#appendix-b-api-reference>Appendix B: API Reference</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><code>Dashboard</code> 组件 <sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup> 是一个公共模板组件，用于快速创建 Dashboard 页面。</p><h2 class=heading-element id=basic-usage><span>1 Basic Usage</span>\n<a href=#basic-usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>每个模块的 dashboard 页面可继承 <code>Dashboard</code> 组件，如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Dashboard</span> <span class=nx>from</span> <span class=s1>&#39;@/components/Dashboard&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;Dashboard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Dashboard</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>使用 <code>registerComponents</code> 函数注册组件，通用组件模板中默认已导入，模块组件需要自行导入，如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Dashboard</span><span class=p>,</span> <span class=p>{</span> <span class=nx>registerComponents</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;@/components/Dashboard&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 加载 widgets 目录下所有组件\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireComponents</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;./widgets&#39;</span><span class=p>,</span> <span class=kc>true</span><span class=p>,</span> <span class=sr>/\\.vue$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>components</span> <span class=o>=</span> <span class=nx>registerComponents</span><span class=p>(</span><span class=nx>requireComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;Dashboard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Dashboard</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>created</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 加载组件列表\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>addComponents</span><span class=p>(</span><span class=s1>&#39;组件分类&#39;</span><span class=p>,</span> <span class=nx>components</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></li><li><p>设置默认布局</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Dashboard</span><span class=p>,</span> <span class=p>{</span> <span class=nx>registerComponents</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;@/components/Dashboard&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// ...\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;Dashboard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Dashboard</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 设置默认布局\n</span></span></span><span class=line><span class=cl>      <span class=nx>defaultLayout</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>1</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;ExampleWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;便利贴&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>content</span><span class=o>:</span> <span class=s1>&#39;hello world!&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// ...\n</span></span></span><span class=line><span class=cl>      <span class=p>],</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// ...\n</span></span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></li></ol><blockquote><p>完整例子详见 <a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/views/dashboard/index.vue target=_blank rel=\"external nofollow noopener noreferrer\"><code>@/views/dashboard/index.vue</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 页面。</p></blockquote><h2 class=heading-element id=export><span>2 Export</span>\n<a href=#export class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>registerComponents</code> (Function): 注册组件（widget.disabled 为 true 的组件不注册）<ul><li>param <code>requireComponents</code> (Function): require.context 函数</li><li>return (Array) 已注册的组件列表</li></ul></li></ul><h2 class=heading-element id=provide><span>3 Provide</span>\n<a href=#provide class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>提供当前 dashboard 实例给后代组件注入，用于后代组件访问容器内的属性或方法。</p><ul><li><code>$dashboard</code> (Object): 当前 dashboard 容器实例</li></ul><h2 class=heading-element id=data-properties><span>4 Data Properties</span>\n<a href=#data-properties class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>componentsList</code> (Array): 组件列表 e.g. [{ category: &lsquo;分类名称&rsquo;, components: [组件列表] }]</li><li><code>isCollapse</code> (Boolean): 是否折叠侧边栏</li><li><code>colNum</code> (Number): 栅格列数</li><li><code>rowHeight</code> (Number): 栅格行高</li><li><code>gaps</code> (Array): 栅格间隙 [水平间隙，垂直间隙] e.g. [8, 8]</li><li><code>dashboardGrid</code> (Element): 可接收拖放的栅格容器</li><li><code>dashboardList</code> (Array): 仪表盘列表</li><li><code>dashboard</code> (Object): 仪表盘数据<ul><li><code>id</code> (Number): 仪表盘 ID</li><li><code>route</code> (String): 路由名称</li><li><code>name</code> (String): 仪表盘名称</li><li><code>layout</code> (Array): 组件布局数据</li><li><code>aside</code> (String): 侧边栏位置（left 或 right）</li><li><code>compact</code> (Boolean): 是否垂直压缩布局</li><li><code>isDefault</code> (Boolean): 是否默认布局</li></ul></li><li><code>responsive</code> (Boolean): 是否响应式布局</li><li><code>loading</code> (Boolean): 是否正在加载/保存布局数据</li><li><code>defaultLayout</code> (Array): 默认布局组件数据</li><li><code>hasEditPermission</code> (Boolean): 是否有编辑权限</li><li><code>selectedCategory</code> (String): 已选中的组件分类</li><li><code>menuCollapse</code> (Boolean): 是否折叠组件分类菜单</li></ul><h2 class=heading-element id=computed-properties><span>5 Computed Properties</span>\n<a href=#computed-properties class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>selectedDashboardId</code> (Number): 已选中的仪表盘 ID</li><li><code>components</code> (Array): 所有已注册组件，用于 dashboard 布局中的组件渲染，包含 <code>hidden</code> 为 <code>true</code> 的组件</li><li><code>componentsListAvailable</code> (Array): 过滤后的组件列表，用于组件列表显示，过滤 <code>hidden</code> 为 <code>true</code> 的组件，过滤组件列表为空的分类</li><li><code>componentsByCategory</code> (Array): 根据 selectedCategory 获取对应的组件列表</li></ul><h2 class=heading-element id=methods><span>6 Methods</span>\n<a href=#methods class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=notifymessage-type--success><span>6.1 notify(message, type = &lsquo;success&rsquo;)</span>\n<a href=#notifymessage-type--success class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>dashboard 显示通知</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>message</td><td><code>String</code></td><td>通知内容</td></tr><tr><td>type</td><td><code>String</code></td><td>通知类型，可选值：<code>success</code>、<code>warning</code>、<code>info</code>、<code>error</code></td></tr></tbody></table></div><h3 class=heading-element id=addcomponentscategory-components-isprepend--false><span>6.2 addComponents(category, components, isPrepend = false)</span>\n<a href=#addcomponentscategory-components-isprepend--false class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>添加组件列表及分类</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>category</td><td><code>String</code></td><td>组件分类</td></tr><tr><td>components</td><td><code>Array</code></td><td>组件列表</td></tr><tr><td>isPrepend</td><td><code>Boolean</code></td><td>是否追加到组件列表开头</td></tr></tbody></table></div><h3 class=heading-element id=selectcategorycategory><span>6.3 selectCategory(category)</span>\n<a href=#selectcategorycategory class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>选中组件分类时显示对应的组件列表</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>category</td><td><code>String</code></td><td>组件分类</td></tr></tbody></table></div><h3 class=heading-element id=switchdashboardid><span>6.4 switchDashboard(id)</span>\n<a href=#switchdashboardid class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>切换仪表盘</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>id</td><td><code>Number/String</code></td><td>仪表盘 ID 或者 &rsquo;new’</td></tr></tbody></table></div><h3 class=heading-element id=handlecommandtype><span>6.5 handleCommand(type)</span>\n<a href=#handlecommandtype class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>处理仪表盘操作</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>type</td><td><code>String</code></td><td>操作类型，可选值：<code>copy</code>、<code>edit</code>、<code>delete</code></td></tr></tbody></table></div><h3 class=heading-element id=guide><span>6.6 guide()</span>\n<a href=#guide class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>打开新手引导</p><h3 class=heading-element id=refreshallitems><span>6.7 refreshAllItems()</span>\n<a href=#refreshallitems class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>刷新容器内所有组件的数据</p><h3 class=heading-element id=clearlayout><span>6.8 clearLayout()</span>\n<a href=#clearlayout class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>清空布局</p><h3 class=heading-element id=idincrement><span>6.9 idIncrement()</span>\n<a href=#idincrement class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>生成一个自增的 id，用于组件的唯一标识 i</p><h3 class=heading-element id=sortitems><span>6.10 sortItems()</span>\n<a href=#sortitems class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>对 layout 数据进行排序，按照 y 坐标从小到大，x 坐标从小到大的顺序</p><h3 class=heading-element id=additemcomponent-widget><span>6.11 addItem(component, widget)</span>\n<a href=#additemcomponent-widget class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>添加组件到 layout 中</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>component</td><td><code>String</code></td><td>组件名称，对应组件的 name 属性</td></tr><tr><td>widget</td><td><code>Object</code></td><td>组件配置对象，对应组件的 widget 属性</td></tr></tbody></table></div><h3 class=heading-element id=removeitemi-save--true><span>6.12 removeItem(i, save = true)</span>\n<a href=#removeitemi-save--true class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>从 layout 中移除组件</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>i</td><td><code>String</code></td><td>组件的唯一标识</td></tr><tr><td>save</td><td><code>Boolean</code></td><td>是否立即保存布局数据</td></tr></tbody></table></div><h3 class=heading-element id=confirmremoveitemi><span>6.13 confirmRemoveItem(i)</span>\n<a href=#confirmremoveitemi class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>用户删除组件双重确认</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>i</td><td><code>String</code></td><td>组件的唯一标识</td></tr></tbody></table></div><h3 class=heading-element id=hashookcomponent-hook><span>6.14 hasHook(component, hook)</span>\n<a href=#hashookcomponent-hook class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>判断组件是否有配置对应的 hook</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>component</td><td><code>String</code></td><td>组件名称，对应组件的 name 属性</td></tr><tr><td>hook</td><td><code>String</code></td><td>需要判断的 hook 名称</td></tr></tbody></table></div><h3 class=heading-element id=triggerhookitem-hook-args---save--false><span>6.15 triggerHook(item, hook, args = [], save = false)</span>\n<a href=#triggerhookitem-hook-args---save--false class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>容器内的组件触发对应的 hook</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>item</td><td><code>Object</code></td><td>组件实例数据，<a href=https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem target=_blank rel=\"external nofollow noopener noreferrer\">参考文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td>hook</td><td><code>String</code></td><td>需要触发的 hook 名称</td></tr><tr><td>args</td><td><code>Array</code></td><td>传递给 hook 的其他参数</td></tr><tr><td>save</td><td><code>Boolean</code></td><td>触发 hook 后是否立即保存布局数据</td></tr></tbody></table></div><h3 class=heading-element id=mouseingridx-y><span>6.16 mouseInGrid(x, y)</span>\n<a href=#mouseingridx-y class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>判断鼠标是否在容器内</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>x</td><td><code>Number</code></td><td>鼠标 x 坐标</td></tr><tr><td>y</td><td><code>Number</code></td><td>鼠标 y 坐标</td></tr></tbody></table></div><h3 class=heading-element id=removeunexistitemsfromlayout><span>6.17 removeUnExistItems(fromLayout)</span>\n<a href=#removeunexistitemsfromlayout class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>移除 layout 中不存在于所有已注册组件的组件</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>fromLayout</td><td><code>Object</code></td><td>layout 数据</td></tr></tbody></table></div><h3 class=heading-element id=dragstarte><span>6.18 dragStart(e)</span>\n<a href=#dragstarte class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>开始拖动 组件/侧栏 时，设置拖动来源</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>e</td><td><code>Event</code></td><td>event</td></tr></tbody></table></div><h3 class=heading-element id=dragende><span>6.19 dragEnd(e)</span>\n<a href=#dragende class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>结束拖动 组件/侧栏 时，清空拖动来源</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>e</td><td><code>Event</code></td><td>event</td></tr></tbody></table></div><h3 class=heading-element id=dragcomponent-widget-e><span>6.20 drag(component, widget, e)</span>\n<a href=#dragcomponent-widget-e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>拖动组件时，记录拖动的组件信息和显示拖动轨迹</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>component</td><td><code>String</code></td><td>组件名称，对应组件的 name 属性</td></tr><tr><td>widget</td><td><code>Object</code></td><td>组件配置对象，对应组件的 widget 属性</td></tr><tr><td>e</td><td><code>Event</code></td><td>event</td></tr></tbody></table></div><h3 class=heading-element id=ondragoverdashboarde><span>6.21 onDragoverDashboard(e)</span>\n<a href=#ondragoverdashboarde class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>拖动组件经过容器时，阻止默认事件</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>e</td><td><code>Event</code></td><td>event</td></tr></tbody></table></div><h3 class=heading-element id=ondropdashboarde><span>6.22 onDropDashboard(e)</span>\n<a href=#ondropdashboarde class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>拖动 组件/侧栏 放置到容器内时的拖放事件</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>e</td><td><code>Event</code></td><td>event</td></tr></tbody></table></div><h3 class=heading-element id=getdashboard><span>6.23 getDashboard()</span>\n<a href=#getdashboard class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>通过 route 获取 dashboard 数组（后端自动获取组织 ID）</p><h3 class=heading-element id=savedashboard><span>6.24 saveDashboard()</span>\n<a href=#savedashboard class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>保存 dashboard</p><h3 class=heading-element id=adddashboard><span>6.25 addDashboard()</span>\n<a href=#adddashboard class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>新增 dashboard</p><h3 class=heading-element id=updatedashboard><span>6.26 updateDashboard()</span>\n<a href=#updatedashboard class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更新 dashboard</p><h3 class=heading-element id=deletedashboard><span>6.27 deleteDashboard()</span>\n<a href=#deletedashboard class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>删除 dashboard</p><h2 class=heading-element id=appendix-a-data-dictionary><span>7 Appendix A: Data Dictionary</span>\n<a href=#appendix-a-data-dictionary class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>仅供参考</p><div class=table-wrapper><table><thead><tr><th>字段名</th><th>字段类型</th><th>字段说明</th></tr></thead><tbody><tr><td>id</td><td>int</td><td>仪表盘 ID</td></tr><tr><td>route</td><td>varchar(150)</td><td>仪表盘路由</td></tr><tr><td>layout</td><td>longtext</td><td>仪表盘布局</td></tr><tr><td>organization_id</td><td>bigint</td><td>组织 ID</td></tr><tr><td>create_time</td><td>datetime</td><td>创建时间</td></tr><tr><td>update_time</td><td>datetime</td><td>更新时间</td></tr><tr><td>aside</td><td>varchar(15)</td><td>侧栏位置</td></tr><tr><td>compact</td><td>varchar(5)</td><td>压缩布局</td></tr><tr><td>name</td><td>varchar(250)</td><td>仪表盘名称</td></tr></tbody></table></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=\"dashboard 表结构\"><div class=chroma><div class=\"code-header language-sql\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>dashboard 表结构</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sql data-lang=sql><span class=line><span class=cl><span class=k>CREATE</span><span class=w> </span><span class=k>TABLE</span><span class=w> </span><span class=o>`</span><span class=n>dashboard</span><span class=o>`</span><span class=w> </span><span class=p>(</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>id</span><span class=o>`</span><span class=w> </span><span class=nb>int</span><span class=p>(</span><span class=mi>11</span><span class=p>)</span><span class=w> </span><span class=n>unsigned</span><span class=w> </span><span class=k>NOT</span><span class=w> </span><span class=k>NULL</span><span class=w> </span><span class=n>AUTO_INCREMENT</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>route</span><span class=o>`</span><span class=w> </span><span class=nb>varchar</span><span class=p>(</span><span class=mi>150</span><span class=p>)</span><span class=w> </span><span class=k>NOT</span><span class=w> </span><span class=k>NULL</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=s1>&#39;&#39;</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;dashborad 名称&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>layout</span><span class=o>`</span><span class=w> </span><span class=n>longtext</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;dashborad 布局 JSON&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>organization_id</span><span class=o>`</span><span class=w> </span><span class=nb>bigint</span><span class=p>(</span><span class=mi>11</span><span class=p>)</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=s1>&#39;0&#39;</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;组织 id&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>create_time</span><span class=o>`</span><span class=w> </span><span class=n>datetime</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=k>CURRENT_TIMESTAMP</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;创建时间&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>update_time</span><span class=o>`</span><span class=w> </span><span class=n>datetime</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=k>CURRENT_TIMESTAMP</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;更新时间&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>aside</span><span class=o>`</span><span class=w> </span><span class=nb>varchar</span><span class=p>(</span><span class=mi>15</span><span class=p>)</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=k>NULL</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;侧栏位置&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>compact</span><span class=o>`</span><span class=w> </span><span class=nb>varchar</span><span class=p>(</span><span class=mi>5</span><span class=p>)</span><span class=w> </span><span class=k>NOT</span><span class=w> </span><span class=k>NULL</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=s1>&#39;false&#39;</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;压缩布局&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=o>`</span><span class=n>name</span><span class=o>`</span><span class=w> </span><span class=nb>varchar</span><span class=p>(</span><span class=mi>250</span><span class=p>)</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=k>NULL</span><span class=w> </span><span class=k>COMMENT</span><span class=w> </span><span class=s1>&#39;仪表盘名称&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>PRIMARY</span><span class=w> </span><span class=k>KEY</span><span class=w> </span><span class=p>(</span><span class=o>`</span><span class=n>id</span><span class=o>`</span><span class=p>),</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>KEY</span><span class=w> </span><span class=o>`</span><span class=n>name</span><span class=o>`</span><span class=w> </span><span class=p>(</span><span class=o>`</span><span class=n>route</span><span class=o>`</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>)</span><span class=w> </span><span class=n>ENGINE</span><span class=o>=</span><span class=n>InnoDB</span><span class=w> </span><span class=n>AUTO_INCREMENT</span><span class=o>=</span><span class=mi>40</span><span class=w> </span><span class=k>DEFAULT</span><span class=w> </span><span class=n>CHARSET</span><span class=o>=</span><span class=n>utf8</span><span class=w> </span><span class=k>COMMENT</span><span class=o>=</span><span class=s1>&#39;Dashboard 组件布局数据&#39;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=appendix-b-api-reference><span>8 Appendix B: API Reference</span>\n<a href=#appendix-b-api-reference class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>详见 <a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/api/dashboard.js target=_blank rel=\"external nofollow noopener noreferrer\">dashboard.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>基于 Vue2 和 <a href=https://jbaysolutions.github.io/vue-grid-layout/zh/ target=_blank rel=\"external nofollow noopener noreferrer\">vue-grid-layout<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 开发的拖拽式 Dashboard 模板，<a href=https://github.com/Lruihao/vue-el-demo/tree/main/src/components/Dashboard target=_blank rel=\"external nofollow noopener noreferrer\">查看源码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashboard-analysis/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 功能需求分析\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>拖拽式仪表盘 - 功能需求分析</span>\n</a><a href=/posts/dashborad-widget-docs/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 组件配置文档\"><span>拖拽式仪表盘 - 组件配置文档</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashborad-template-docs/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-template-docs.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashborad-template-docs.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E5%B8%83%E5%B1%80%E6%A8%A1%E6%9D%BF%E6%96%87%E6%A1%A3&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E5%B8%83%E5%B1%80%E6%A8%A1%E6%9D%BF%E6%96%87%E6%A1%A3%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashborad-template-docs/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-template-docs.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashborad-template-docs/ data-title=\"拖拽式仪表盘 - 布局模板文档\" data-hashtags=拖拽式仪表盘,dashboard,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashborad-template-docs/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashborad-template-docs/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashborad-template-docs/ data-title=\"拖拽式仪表盘 - 布局模板文档\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashborad-template-docs/ data-title=\"拖拽式仪表盘 - 布局模板文档\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashboard-analysis/ class=post-nav-item rel=prev title=\"拖拽式仪表盘 - 功能需求分析\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘 - 功能需求分析</a><a href=/posts/dashborad-widget-docs/ class=post-nav-item rel=next title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#basic-usage>Basic Usage</a></li><li><a href=#export>Export</a></li><li><a href=#provide>Provide</a></li><li><a href=#data-properties>Data Properties</a></li><li><a href=#computed-properties>Computed Properties</a></li><li><a href=#methods>Methods</a><ol><li><a href=#notifymessage-type--success>notify(message, type = &lsquo;success&rsquo;)</a></li><li><a href=#addcomponentscategory-components-isprepend--false>addComponents(category, components, isPrepend = false)</a></li><li><a href=#selectcategorycategory>selectCategory(category)</a></li><li><a href=#switchdashboardid>switchDashboard(id)</a></li><li><a href=#handlecommandtype>handleCommand(type)</a></li><li><a href=#guide>guide()</a></li><li><a href=#refreshallitems>refreshAllItems()</a></li><li><a href=#clearlayout>clearLayout()</a></li><li><a href=#idincrement>idIncrement()</a></li><li><a href=#sortitems>sortItems()</a></li><li><a href=#additemcomponent-widget>addItem(component, widget)</a></li><li><a href=#removeitemi-save--true>removeItem(i, save = true)</a></li><li><a href=#confirmremoveitemi>confirmRemoveItem(i)</a></li><li><a href=#hashookcomponent-hook>hasHook(component, hook)</a></li><li><a href=#triggerhookitem-hook-args---save--false>triggerHook(item, hook, args = [], save = false)</a></li><li><a href=#mouseingridx-y>mouseInGrid(x, y)</a></li><li><a href=#removeunexistitemsfromlayout>removeUnExistItems(fromLayout)</a></li><li><a href=#dragstarte>dragStart(e)</a></li><li><a href=#dragende>dragEnd(e)</a></li><li><a href=#dragcomponent-widget-e>drag(component, widget, e)</a></li><li><a href=#ondragoverdashboarde>onDragoverDashboard(e)</a></li><li><a href=#ondropdashboarde>onDropDashboard(e)</a></li><li><a href=#getdashboard>getDashboard()</a></li><li><a href=#savedashboard>saveDashboard()</a></li><li><a href=#adddashboard>addDashboard()</a></li><li><a href=#updatedashboard>updateDashboard()</a></li><li><a href=#deletedashboard>deleteDashboard()</a></li></ol></li><li><a href=#appendix-a-data-dictionary>Appendix A: Data Dictionary</a></li><li><a href=#appendix-b-api-reference>Appendix B: API Reference</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/67cb5d10fdf41c150ceaec0b041ec9e9.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/67cb5d10fdf41c150ceaec0b041ec9e9.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashborad-template-docs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashborad-template-docs/index.md",
    "content": "# 拖拽式仪表盘 - 布局模板文档\n\n\n`Dashboard` 组件 [^1] 是一个公共模板组件，用于快速创建 Dashboard 页面。\n\n## Basic Usage\n\n1. 每个模块的 dashboard 页面可继承 `Dashboard` 组件，如：\n\n    ```html\n    <script>\n    import Dashboard from '@/components/Dashboard'\n\n    export default {\n      name: 'Dashboard',\n      extends: Dashboard,\n    }\n    </script>\n    ```\n\n2. 使用 `registerComponents` 函数注册组件，通用组件模板中默认已导入，模块组件需要自行导入，如：\n\n    ```html\n    <script>\n    import Dashboard, { registerComponents } from '@/components/Dashboard'\n\n    // 加载 widgets 目录下所有组件\n    const requireComponents = require.context('./widgets', true, /\\.vue$/)\n    const components = registerComponents(requireComponents)\n\n    export default {\n      name: 'Dashboard',\n      extends: Dashboard,\n      created() {\n        // 加载组件列表\n        this.addComponents('组件分类', components)\n      },\n    }\n    </script>\n    ```\n\n3. 设置默认布局\n\n    ```html\n    <script>\n    import Dashboard, { registerComponents } from '@/components/Dashboard'\n\n    // ...\n\n    export default {\n      name: 'Dashboard',\n      extends: Dashboard,\n      data() {\n        return {\n          // 设置默认布局\n          defaultLayout: [\n            { i: 1, component: 'ExampleWidget', name: '便利贴', x: 0, y: 0, w: 8, h: 8, params: { content: 'hello world!' }},\n            // ...\n          ],\n        }\n      },\n      // ...\n    }\n    </script>\n    ```\n\n> 完整例子详见 [`@/views/dashboard/index.vue`][dashboard-usage] 页面。\n\n## Export\n\n- `registerComponents` (Function): 注册组件（widget.disabled 为 true 的组件不注册）\n  - param `requireComponents` (Function): require.context 函数\n  - return (Array) 已注册的组件列表\n\n## Provide\n\n提供当前 dashboard 实例给后代组件注入，用于后代组件访问容器内的属性或方法。\n\n- `$dashboard` (Object): 当前 dashboard 容器实例\n\n## Data Properties\n\n- `componentsList` (Array): 组件列表 e.g. [{ category: '分类名称', components: [组件列表] }]\n- `isCollapse` (Boolean): 是否折叠侧边栏\n- `colNum` (Number): 栅格列数\n- `rowHeight` (Number): 栅格行高\n- `gaps` (Array): 栅格间隙 [水平间隙，垂直间隙] e.g. [8, 8]\n- `dashboardGrid` (Element): 可接收拖放的栅格容器\n- `dashboardList` (Array): 仪表盘列表\n- `dashboard` (Object): 仪表盘数据\n  - `id` (Number): 仪表盘 ID\n  - `route` (String): 路由名称\n  - `name` (String): 仪表盘名称\n  - `layout` (Array): 组件布局数据\n  - `aside` (String): 侧边栏位置（left 或 right）\n  - `compact` (Boolean): 是否垂直压缩布局\n  - `isDefault` (Boolean): 是否默认布局\n- `responsive` (Boolean): 是否响应式布局\n- `loading` (Boolean): 是否正在加载/保存布局数据\n- `defaultLayout` (Array): 默认布局组件数据\n- `hasEditPermission` (Boolean): 是否有编辑权限\n- `selectedCategory` (String): 已选中的组件分类\n- `menuCollapse` (Boolean): 是否折叠组件分类菜单\n\n## Computed Properties\n\n- `selectedDashboardId` (Number): 已选中的仪表盘 ID\n- `components` (Array): 所有已注册组件，用于 dashboard 布局中的组件渲染，包含 `hidden` 为 `true` 的组件\n- `componentsListAvailable` (Array): 过滤后的组件列表，用于组件列表显示，过滤 `hidden` 为 `true` 的组件，过滤组件列表为空的分类\n- `componentsByCategory` (Array): 根据 selectedCategory 获取对应的组件列表\n\n## Methods\n\n### notify(message, type = 'success')\n\ndashboard 显示通知\n\n| 参数    | 类型     | 说明                                                    |\n| ------- | -------- | ------------------------------------------------------- |\n| message | `String` | 通知内容                                                |\n| type    | `String` | 通知类型，可选值：`success`、`warning`、`info`、`error` |\n\n### addComponents(category, components, isPrepend = false)\n\n添加组件列表及分类\n\n| 参数       | 类型      | 说明                   |\n| ---------- | --------- | ---------------------- |\n| category   | `String`  | 组件分类               |\n| components | `Array`   | 组件列表               |\n| isPrepend  | `Boolean` | 是否追加到组件列表开头 |\n\n### selectCategory(category)\n\n选中组件分类时显示对应的组件列表\n\n| 参数     | 类型     | 说明     |\n| -------- | -------- | -------- |\n| category | `String` | 组件分类 |\n\n### switchDashboard(id)\n\n切换仪表盘\n\n| 参数 | 类型             | 说明                 |\n| ---- | ---------------- | -------------------- |\n| id   | `Number/String` | 仪表盘 ID 或者 'new’ |\n\n### handleCommand(type)\n\n处理仪表盘操作\n\n| 参数 | 类型     | 说明                                       |\n| ---- | -------- | ------------------------------------------ |\n| type | `String` | 操作类型，可选值：`copy`、`edit`、`delete` |\n\n### guide()\n\n打开新手引导\n\n### refreshAllItems()\n\n刷新容器内所有组件的数据\n\n### clearLayout()\n\n清空布局\n\n### idIncrement()\n\n生成一个自增的 id，用于组件的唯一标识 i\n\n### sortItems()\n\n对 layout 数据进行排序，按照 y 坐标从小到大，x 坐标从小到大的顺序\n\n### addItem(component, widget)\n\n添加组件到 layout 中\n\n| 参数      | 类型     | 说明                                 |\n| --------- | -------- | ------------------------------------ |\n| component | `String` | 组件名称，对应组件的 name 属性       |\n| widget    | `Object` | 组件配置对象，对应组件的 widget 属性 |\n\n### removeItem(i, save = true)\n\n从 layout 中移除组件\n\n| 参数 | 类型      | 说明                 |\n| ---- | --------- | -------------------- |\n| i    | `String`  | 组件的唯一标识       |\n| save | `Boolean` | 是否立即保存布局数据 |\n\n### confirmRemoveItem(i)\n\n用户删除组件双重确认\n\n| 参数 | 类型     | 说明           |\n| ---- | -------- | -------------- |\n| i    | `String` | 组件的唯一标识 |\n\n### hasHook(component, hook)\n\n判断组件是否有配置对应的 hook\n\n| 参数      | 类型     | 说明                           |\n| --------- | -------- | ------------------------------ |\n| component | `String` | 组件名称，对应组件的 name 属性 |\n| hook      | `String` | 需要判断的 hook 名称           |\n\n### triggerHook(item, hook, args = [], save = false)\n\n容器内的组件触发对应的 hook\n\n| 参数 | 类型      | 说明                                           |\n| ---- | --------- | ---------------------------------------------- |\n| item | `Object`  | 组件实例数据，[参考文档][grid-item-properties] |\n| hook | `String`  | 需要触发的 hook 名称                           |\n| args | `Array`   | 传递给 hook 的其他参数                         |\n| save | `Boolean` | 触发 hook 后是否立即保存布局数据               |\n\n### mouseInGrid(x, y)\n\n判断鼠标是否在容器内\n\n| 参数 | 类型     | 说明        |\n| ---- | -------- | ----------- |\n| x    | `Number` | 鼠标 x 坐标 |\n| y    | `Number` | 鼠标 y 坐标 |\n\n### removeUnExistItems(fromLayout)\n\n移除 layout 中不存在于所有已注册组件的组件\n\n| 参数       | 类型     | 说明        |\n| ---------- | -------- | ----------- |\n| fromLayout | `Object` | layout 数据 |\n\n### dragStart(e)\n\n开始拖动 组件/侧栏 时，设置拖动来源\n\n| 参数 | 类型    | 说明  |\n| ---- | ------- | ----- |\n| e    | `Event` | event |\n\n### dragEnd(e)\n\n结束拖动 组件/侧栏 时，清空拖动来源\n\n| 参数 | 类型    | 说明  |\n| ---- | ------- | ----- |\n| e    | `Event` | event |\n\n### drag(component, widget, e)\n\n拖动组件时，记录拖动的组件信息和显示拖动轨迹\n\n| 参数      | 类型     | 说明                                 |\n| --------- | -------- | ------------------------------------ |\n| component | `String` | 组件名称，对应组件的 name 属性       |\n| widget    | `Object` | 组件配置对象，对应组件的 widget 属性 |\n| e         | `Event`  | event                                |\n\n### onDragoverDashboard(e)\n\n拖动组件经过容器时，阻止默认事件\n\n| 参数 | 类型    | 说明  |\n| ---- | ------- | ----- |\n| e    | `Event` | event |\n\n### onDropDashboard(e)\n\n拖动 组件/侧栏 放置到容器内时的拖放事件\n\n| 参数 | 类型    | 说明  |\n| ---- | ------- | ----- |\n| e    | `Event` | event |\n\n### getDashboard()\n\n通过 route 获取 dashboard 数组（后端自动获取组织 ID）\n\n### saveDashboard()\n\n保存 dashboard\n\n### addDashboard()\n\n新增 dashboard\n\n### updateDashboard()\n\n更新 dashboard\n\n### deleteDashboard()\n\n删除 dashboard\n\n## Appendix A: Data Dictionary\n\n仅供参考\n\n| 字段名          | 字段类型     | 字段说明   |\n| --------------- | ------------ | ---------- |\n| id              | int          | 仪表盘 ID  |\n| route           | varchar(150) | 仪表盘路由 |\n| layout          | longtext     | 仪表盘布局 |\n| organization_id | bigint       | 组织 ID    |\n| create_time     | datetime     | 创建时间   |\n| update_time     | datetime     | 更新时间   |\n| aside           | varchar(15)  | 侧栏位置   |\n| compact         | varchar(5)   | 压缩布局   |\n| name            | varchar(250) | 仪表盘名称 |\n\n```sql {title=\"dashboard 表结构\"}\nCREATE TABLE `dashboard` (\n  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  `route` varchar(150) NOT NULL DEFAULT '' COMMENT 'dashborad 名称',\n  `layout` longtext COMMENT 'dashborad 布局 JSON',\n  `organization_id` bigint(11) DEFAULT '0' COMMENT '组织 id',\n  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',\n  `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',\n  `aside` varchar(15) DEFAULT NULL COMMENT '侧栏位置',\n  `compact` varchar(5) NOT NULL DEFAULT 'false' COMMENT '压缩布局',\n  `name` varchar(250) DEFAULT NULL COMMENT '仪表盘名称',\n  PRIMARY KEY (`id`),\n  KEY `name` (`route`)\n) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='Dashboard 组件布局数据';\n```\n\n## Appendix B: API Reference\n\n详见 [dashboard.js](https://github.com/Lruihao/vue-el-demo/blob/main/src/api/dashboard.js)\n\n<!-- link reference definition -->\n[dashboard-template]: <https://github.com/Lruihao/vue-el-demo/tree/main/src/components/Dashboard>\n[dashboard-usage]: <https://github.com/Lruihao/vue-el-demo/blob/main/src/views/dashboard/index.vue>\n[grid-item-properties]: <https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem>\n\n<!-- footnote reference definition -->\n[^1]: 基于 Vue2 和 [vue-grid-layout](https://jbaysolutions.github.io/vue-grid-layout/zh/) 开发的拖拽式 Dashboard 模板，[查看源码][dashboard-template]。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashborad-template-docs/  \n\n"
  },
  {
    "path": "posts/dashborad-template-usage/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 模板使用 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\n\"><meta name=keywords content='拖拽式仪表盘,dashboard,Vue2'><meta itemprop=name content=\"拖拽式仪表盘 - 模板使用\"><meta itemprop=description content=\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\"><meta itemprop=datePublished content=\"2023-10-12T20:07:20+08:00\"><meta itemprop=dateModified content=\"2024-04-25T13:29:53+08:00\"><meta itemprop=wordCount content=\"710\"><meta itemprop=image content=\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashborad-template-usage/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘 - 模板使用\"><meta property=\"og:description\" content=\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T20:07:20+08:00\"><meta property=\"article:modified_time\" content=\"2024-04-25T13:29:53+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\"><meta name=twitter:title content=\"拖拽式仪表盘 - 模板使用\"><meta name=twitter:description content=\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashborad-template-usage/index.md title=\"拖拽式仪表盘 - 模板使用 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘 - 模板使用\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-template-usage\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-template-usage\\/images\\/featured-image.png\",\"width\":2880,\"height\":1800}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, Vue2\",\"wordcount\":710,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-template-usage\\/\",\"datePublished\":\"2023-10-12T20:07:20+08:00\",\"dateModified\":\"2024-04-25T13:29:53+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashborad-template-usage/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘 - 模板使用</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</a></li><li class=collection-item><a href=/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</a></li><li class=collection-item><a href=/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</a></li><li class=collection-item><span class=active title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</span></li><li class=collection-item><a href=/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</a></li><li class=collection-item><a href=/posts/dashboard-summary/ title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</a></li></ul><div class=collection-nav-simple><a href=/posts/dashborad-widget-docs/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 组件配置文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>4/6</span><a href=/posts/dashborad-widget-usage/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 组件开发\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘 - 模板使用</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 20:07:20\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2024-04-25 13:29:53\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-04-25>2024-04-25</time></span>&nbsp;<span title=\"710 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"拖拽式仪表盘 - 模板使用\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/dashborad-template-usage/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/dashborad-template-usage/images/featured-image.png height=1800 width=2880></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#代码>代码</a></li><li><a href=#效果>效果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-04-25，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将通过一个简单的例子，介绍如何使用仪表盘模板。</p><p>Talk is cheap. Show you the code.</p><h2 class=heading-element id=代码><span>1 代码</span>\n<a href=#%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=c>&lt;!--</span> <span class=nx>首页</span> <span class=nx>dashboard</span> <span class=nx>页面布局</span> <span class=o>--&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Dashboard</span><span class=p>,</span> <span class=p>{</span> <span class=nx>registerComponents</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;@/components/Dashboard&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 加载测试跟踪 widgets 目录下所有组件\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireTrackingComponents</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;@/views/tracking/dashboard/widgets&#39;</span><span class=p>,</span> <span class=kc>true</span><span class=p>,</span> <span class=sr>/\\.vue$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>trackingComponents</span> <span class=o>=</span> <span class=nx>registerComponents</span><span class=p>(</span><span class=nx>requireTrackingComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 加载接口测试 widgets 目录下所有组件\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireInterfaceComponents</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;@/views/interface/dashboard/widgets&#39;</span><span class=p>,</span> <span class=kc>true</span><span class=p>,</span> <span class=sr>/\\.vue$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>interfaceComponents</span> <span class=o>=</span> <span class=nx>registerComponents</span><span class=p>(</span><span class=nx>requireInterfaceComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 加载 WebUI 测试 widgets 目录下所有组件\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireWebUIComponents</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;@/views/webui/dashboard/widgets&#39;</span><span class=p>,</span> <span class=kc>true</span><span class=p>,</span> <span class=sr>/\\.vue$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>webuiComponents</span> <span class=o>=</span> <span class=nx>registerComponents</span><span class=p>(</span><span class=nx>requireWebUIComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 加载 App 测试 widgets 目录下所有组件\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireAppComponents</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;@/views/app/dashboard/widgets&#39;</span><span class=p>,</span> <span class=kc>true</span><span class=p>,</span> <span class=sr>/\\.vue$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>appComponents</span> <span class=o>=</span> <span class=nx>registerComponents</span><span class=p>(</span><span class=nx>requireAppComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;HomeDashboard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Dashboard</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 设置默认布局\n</span></span></span><span class=line><span class=cl>      <span class=nx>defaultLayout</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>1</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;TrackingCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;product&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;TrackingCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;case&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>3</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;TrackingCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;testplan&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>4</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;TrackingCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>18</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;report&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>5</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;InterfaceCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;task&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;InterfaceCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;api&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>7</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;InterfaceCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;case&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;InterfaceCountsWidget&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;总数统计&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>18</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>2</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;device&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>9</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;MyTestplan&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;我的测试计划&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>4</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>minW</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span> <span class=nx>minH</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>maxW</span><span class=o>:</span> <span class=mi>24</span><span class=p>,</span> <span class=nx>maxH</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>isResizable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;myAttend&#39;</span> <span class=p>}},</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span> <span class=nx>i</span><span class=o>:</span> <span class=mi>10</span><span class=p>,</span> <span class=nx>component</span><span class=o>:</span> <span class=s1>&#39;MyInterfaceTask&#39;</span><span class=p>,</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;我创建的测试&#39;</span><span class=p>,</span> <span class=nx>x</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>y</span><span class=o>:</span> <span class=mi>4</span><span class=p>,</span> <span class=nx>w</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>h</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>minW</span><span class=o>:</span> <span class=mi>12</span><span class=p>,</span> <span class=nx>minH</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>maxW</span><span class=o>:</span> <span class=mi>24</span><span class=p>,</span> <span class=nx>maxH</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span> <span class=nx>isResizable</span><span class=o>:</span> <span class=kc>true</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>],</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>created</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 加载组件列表\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>addComponents</span><span class=p>(</span><span class=s1>&#39;测试跟踪&#39;</span><span class=p>,</span> <span class=nx>trackingComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>addComponents</span><span class=p>(</span><span class=s1>&#39;接口测试&#39;</span><span class=p>,</span> <span class=nx>interfaceComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>addComponents</span><span class=p>(</span><span class=s1>&#39;WebUI 测试&#39;</span><span class=p>,</span> <span class=nx>webuiComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>addComponents</span><span class=p>(</span><span class=s1>&#39;App 测试&#39;</span><span class=p>,</span> <span class=nx>appComponents</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>// 设置权限\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>hasEditPermission</span> <span class=o>=</span> <span class=k>this</span><span class=p>.</span><span class=nx>checkPermission</span><span class=p>([</span><span class=s1>&#39;admin&#39;</span><span class=p>])</span> <span class=o>||</span> <span class=o>!</span><span class=k>this</span><span class=p>.</span><span class=nx>dashboard</span><span class=p>.</span><span class=nx>isDefault</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=效果><span>2 效果</span>\n<a href=#%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/dashborad-template-usage/images/dashboard-demo.gif title=画质感人，将就看吧～ data-thumbnail=/posts/dashborad-template-usage/images/dashboard-demo.gif data-sub-html=\"<h2>工作台仪表盘动画</h2><p>画质感人，将就看吧～</p>\"><img loading=lazy src=/posts/dashborad-template-usage/images/dashboard-demo.gif alt=工作台仪表盘动画 height=261 width=419></a><figcaption class=image-caption>画质感人，将就看吧～</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashborad-widget-docs/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 组件配置文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>拖拽式仪表盘 - 组件配置文档</span>\n</a><a href=/posts/dashborad-widget-usage/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 组件开发\"><span>拖拽式仪表盘 - 组件开发</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-04-25 13:29:53\">更新于 2024-04-25&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/15cff5fbc6fd22bd99d2fb893dcac554ec5c67c1 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 更新主题 0.3.4&#10&#10Commit: 15cff5fbc6fd22bd99d2fb893dcac554ec5c67c1 [15cff5f]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-04-25 13:29:53&#10Commit Date: 2024-04-25 17:37:19\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>15cff5f</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashborad-template-usage/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-template-usage/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashborad-template-usage/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E6%A8%A1%E6%9D%BF%E4%BD%BF%E7%94%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E6%A8%A1%E6%9D%BF%E4%BD%BF%E7%94%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashborad-template-usage/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-template-usage/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashborad-template-usage/ data-title=\"拖拽式仪表盘 - 模板使用\" data-hashtags=拖拽式仪表盘,dashboard,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashborad-template-usage/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashborad-template-usage/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashborad-template-usage/ data-title=\"拖拽式仪表盘 - 模板使用\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashborad-template-usage/ data-title=\"拖拽式仪表盘 - 模板使用\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashborad-widget-docs/ class=post-nav-item rel=prev title=\"拖拽式仪表盘 - 组件配置文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘 - 组件配置文档</a><a href=/posts/dashborad-widget-usage/ class=post-nav-item rel=next title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#代码>代码</a></li><li><a href=#效果>效果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/be490516b49d9e274eb9c3cc4dcd4a42.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/be490516b49d9e274eb9c3cc4dcd4a42.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashborad-template-usage/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashborad-template-usage/index.md",
    "content": "# 拖拽式仪表盘 - 模板使用\n\n\n本文将通过一个简单的例子，介绍如何使用仪表盘模板。\n\n<!--more-->\n\nTalk is cheap. Show you the code.\n\n## 代码\n\n```vue\n<!-- 首页 dashboard 页面布局 -->\n<script>\nimport Dashboard, { registerComponents } from '@/components/Dashboard'\n\n// 加载测试跟踪 widgets 目录下所有组件\nconst requireTrackingComponents = require.context('@/views/tracking/dashboard/widgets', true, /\\.vue$/)\nconst trackingComponents = registerComponents(requireTrackingComponents)\n\n// 加载接口测试 widgets 目录下所有组件\nconst requireInterfaceComponents = require.context('@/views/interface/dashboard/widgets', true, /\\.vue$/)\nconst interfaceComponents = registerComponents(requireInterfaceComponents)\n\n// 加载 WebUI 测试 widgets 目录下所有组件\nconst requireWebUIComponents = require.context('@/views/webui/dashboard/widgets', true, /\\.vue$/)\nconst webuiComponents = registerComponents(requireWebUIComponents)\n\n// 加载 App 测试 widgets 目录下所有组件\nconst requireAppComponents = require.context('@/views/app/dashboard/widgets', true, /\\.vue$/)\nconst appComponents = registerComponents(requireAppComponents)\n\nexport default {\n  name: 'HomeDashboard',\n  extends: Dashboard,\n  data() {\n    return {\n      // 设置默认布局\n      defaultLayout: [\n        { i: 1, component: 'TrackingCountsWidget', name: '总数统计', x: 0, y: 0, w: 6, h: 2, params: { type: 'product' }},\n        { i: 2, component: 'TrackingCountsWidget', name: '总数统计', x: 6, y: 0, w: 6, h: 2, params: { type: 'case' }},\n        { i: 3, component: 'TrackingCountsWidget', name: '总数统计', x: 12, y: 0, w: 6, h: 2, params: { type: 'testplan' }},\n        { i: 4, component: 'TrackingCountsWidget', name: '总数统计', x: 18, y: 0, w: 6, h: 2, params: { type: 'report' }},\n        { i: 5, component: 'InterfaceCountsWidget', name: '总数统计', x: 0, y: 2, w: 6, h: 2, params: { type: 'task' }},\n        { i: 6, component: 'InterfaceCountsWidget', name: '总数统计', x: 6, y: 2, w: 6, h: 2, params: { type: 'api' }},\n        { i: 7, component: 'InterfaceCountsWidget', name: '总数统计', x: 12, y: 2, w: 6, h: 2, params: { type: 'case' }},\n        { i: 8, component: 'InterfaceCountsWidget', name: '总数统计', x: 18, y: 2, w: 6, h: 2, params: { type: 'device' }},\n        { i: 9, component: 'MyTestplan', name: '我的测试计划', x: 0, y: 4, w: 12, h: 6, minW: 8, minH: 6, maxW: 24, maxH: 6, isResizable: true, params: { type: 'myAttend' }},\n        { i: 10, component: 'MyInterfaceTask', name: '我创建的测试', x: 12, y: 4, w: 12, h: 6, minW: 12, minH: 6, maxW: 24, maxH: 6, isResizable: true },\n      ],\n    }\n  },\n  created() {\n    // 加载组件列表\n    this.addComponents('测试跟踪', trackingComponents)\n    this.addComponents('接口测试', interfaceComponents)\n    this.addComponents('WebUI 测试', webuiComponents)\n    this.addComponents('App 测试', appComponents)\n\n    // 设置权限\n    this.hasEditPermission = this.checkPermission(['admin']) || !this.dashboard.isDefault\n  },\n}\n</script>\n```\n\n## 效果\n\n![工作台仪表盘动画](images/dashboard-demo.gif \"画质感人，将就看吧～\")\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashborad-template-usage/  \n\n"
  },
  {
    "path": "posts/dashborad-widget-docs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 组件配置文档 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将对 Dashboard 组件的使用方法进行介绍。\n\"><meta name=keywords content='拖拽式仪表盘,dashboard,widget,Vue2'><meta itemprop=name content=\"拖拽式仪表盘 - 组件配置文档\"><meta itemprop=description content=\"本文将对 Dashboard 组件的使用方法进行介绍。\"><meta itemprop=datePublished content=\"2023-10-12T19:41:23+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1022\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,widget,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashborad-widget-docs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘 - 组件配置文档\"><meta property=\"og:description\" content=\"本文将对 Dashboard 组件的使用方法进行介绍。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T19:41:23+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"widget\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘 - 组件配置文档\"><meta name=twitter:description content=\"本文将对 Dashboard 组件的使用方法进行介绍。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashborad-widget-docs/index.md title=\"拖拽式仪表盘 - 组件配置文档 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘 - 组件配置文档\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-widget-docs\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, widget, Vue2\",\"wordcount\":1022,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-widget-docs\\/\",\"datePublished\":\"2023-10-12T19:41:23+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashborad-widget-docs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘 - 组件配置文档</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</a></li><li class=collection-item><a href=/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</a></li><li class=collection-item><span class=active title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</span></li><li class=collection-item><a href=/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</a></li><li class=collection-item><a href=/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</a></li><li class=collection-item><a href=/posts/dashboard-summary/ title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</a></li></ul><div class=collection-nav-simple><a href=/posts/dashborad-template-docs/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 布局模板文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>3/6</span><a href=/posts/dashborad-template-usage/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 模板使用\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘 - 组件配置文档</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">Dashboard Widgets</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 19:41:23\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1022 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"拖拽式仪表盘 - 组件配置文档\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#a-note-on-terminology>A note on terminology</a></li><li><a href=#widget-example>Widget Example</a></li><li><a href=#inject>Inject</a></li><li><a href=#props>Props</a></li><li><a href=#widget-properties>Widget Properties</a></li><li><a href=#widget-events>Widget Events</a></li><li><a href=#widget-styles>Widget Styles</a></li><li><a href=#widget-directory>Widget Directory</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将对 Dashboard 组件的使用方法进行介绍。</p><h2 class=heading-element id=a-note-on-terminology><span>1 A note on terminology</span>\n<a href=#a-note-on-terminology class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>“Widget（小部件）”和“Component（组件）”都是计算机科学中常见的术语，用于描述可重复使用的用户界面元素。Widget 通常更简单，具有预定义的样式和功能，而 Component 可以更灵活、可定制，并具有更丰富的行为和交互性。Widget 更倾向于描述独立的、自包含的小型组件，而 Component 则更倾向于描述较大规模的、可组合的用户界面元素。</p><p>Vue 项目通常选用 Component，与之相比仪表盘组件功能更加局限，使用 Widget 来描述显然更符合实际情况。</p><h2 class=heading-element id=widget-example><span>2 Widget Example</span>\n<a href=#widget-example class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>完整例子详见 <a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/components/Dashboard/widgets/example.vue target=_blank rel=\"external nofollow noopener noreferrer\"><code>@/components/Dashboard/widgets/example.vue</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件。</p><h2 class=heading-element id=inject><span>3 Inject</span>\n<a href=#inject class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>dashboard 组件及其后代组件可以通过注入 <code>$dashboard</code> 访问容器中的属性或方法。</p><ul><li><code>$dashboard</code> (Object): 当前 dashboard 容器实例</li></ul><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;ExampleWidget&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>widget</span><span class=o>:</span> <span class=p>{</span> <span class=cm>/* ... */</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>inject</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;$dashboard&#39;</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>  <span class=nx>mounted</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 组件通过 this.$dashboard 访问容器中的属性或方法\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>$dashboard</span><span class=p>.</span><span class=nx>notify</span><span class=p>(</span><span class=s1>&#39;example widget mounted&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/* ... */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=props><span>4 Props</span>\n<a href=#props class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>容器中的组件可以接收一些上层传递的参数，如下：</p><div class=table-wrapper><table><thead><tr><th>参数</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td><code>item</code></td><td><code>Object</code></td><td>组件实例数据</td></tr><tr><td><code>params</code></td><td><code>Object</code></td><td>组件参数，用于接收用户已配置的参数，支持 <code>.sync</code> 修饰符</td></tr></tbody></table></div><h2 class=heading-element id=widget-properties><span>5 Widget Properties</span>\n<a href=#widget-properties class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>属性</th><th>类型</th><th style=text-align:center>必填</th><th>说明</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>String</code></td><td style=text-align:center><code>Y</code></td><td>组件名称，必须且唯一（同 Vue 组件 <code>name</code> 属性）</td></tr><tr><td><code>widget</code></td><td><code>Object</code></td><td style=text-align:center><code>Y</code></td><td>组件配置信息，<a href=https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem target=_blank rel=\"external nofollow noopener noreferrer\">参考文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr></tbody></table></div><p><code>widget</code> 配置如下：</p><div class=table-wrapper><table><thead><tr><th>属性</th><th>类型</th><th style=text-align:center>必填</th><th>说明</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>String</code></td><td style=text-align:center><code>Y</code></td><td>组件名称，用于在组件列表中显示组件名称</td></tr><tr><td><code>icon</code></td><td><code>String</code></td><td style=text-align:center><code>Y</code></td><td>组件图标，用于在组件列表中显示组件图标，支持 <code>el-icon</code>、<code>iconfont</code> 和 <code>svg-icon</code></td></tr><tr><td><code>params</code></td><td><code>Object</code></td><td style=text-align:center><code>N</code></td><td>组件参数，一般搭配 <code>setting</code> 钩子函数使用</td></tr><tr><td><code>disabled</code></td><td><code>Boolean</code></td><td style=text-align:center><code>N</code></td><td>是否禁用组件，设置为 <code>true</code> 则不会被注册（组件弃用时可设置为 <code>true</code>）</td></tr><tr><td><code>hidden</code></td><td><code>Boolean</code></td><td style=text-align:center><code>N</code></td><td>是否隐藏组件，设置为 <code>true</code> 则不会在组件列表中显示（组件即将弃用时可设置为 <code>true</code>）</td></tr><tr><td><code>w</code></td><td><code>Number</code></td><td style=text-align:center><code>Y</code></td><td>组件宽度</td></tr><tr><td><code>h</code></td><td><code>Number</code></td><td style=text-align:center><code>Y</code></td><td>组件高度</td></tr><tr><td><code>minW</code></td><td><code>Number</code></td><td style=text-align:center><code>N</code></td><td>组件最小宽度</td></tr><tr><td><code>minH</code></td><td><code>Number</code></td><td style=text-align:center><code>N</code></td><td>组件最小高度</td></tr><tr><td><code>maxW</code></td><td><code>Number</code></td><td style=text-align:center><code>N</code></td><td>组件最大宽度</td></tr><tr><td><code>maxH</code></td><td><code>Number</code></td><td style=text-align:center><code>N</code></td><td>组件最大高度</td></tr><tr><td><code>isResizable</code></td><td><code>Boolean</code></td><td style=text-align:center><code>N</code></td><td>是否可调整大小</td></tr></tbody></table></div><h2 class=heading-element id=widget-events><span>6 Widget Events</span>\n<a href=#widget-events class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>事件名</th><th>类型</th><th>说明</th><th>回调参数</th></tr></thead><tbody><tr><td><code>refresh</code></td><td><code>Function</code></td><td>hook for refresh widget item</td><td>item</td></tr><tr><td><code>setting</code></td><td><code>Function</code></td><td>hook for setting widget item</td><td>item</td></tr><tr><td><code>move</code></td><td><code>Function</code></td><td>hook for moving widget item</td><td>item, &mldr;args</td></tr><tr><td><code>moved</code></td><td><code>Function</code></td><td>hook for moved widget item</td><td>item, &mldr;args</td></tr><tr><td><code>resize</code></td><td><code>Function</code></td><td>hook for resizing widget item</td><td>item, &mldr;args</td></tr><tr><td><code>resized</code></td><td><code>Function</code></td><td>hook for resized widget item</td><td>item, &mldr;args</td></tr><tr><td><code>containerResized</code></td><td><code>Function</code></td><td>hook for resized grid container</td><td>item, &mldr;args</td></tr></tbody></table></div><blockquote><p>参数说明：</p><ul><li>item：<code>Object</code>，组件实例数据，<a href=https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem target=_blank rel=\"external nofollow noopener noreferrer\">参考文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>args：<code>Array</code>，传递给事件的其他参数，<a href=https://jbaysolutions.github.io/vue-grid-layout/zh/guide/events.html#griditem target=_blank rel=\"external nofollow noopener noreferrer\">参考文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></blockquote><h2 class=heading-element id=widget-styles><span>7 Widget Styles</span>\n<a href=#widget-styles class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>组件默认含有 <code>box-shadow</code>、<code>background-color</code> 等样式，可在组件根节点通过以下样式调整或根据实际情况自行覆盖。</p><div class=table-wrapper><table><thead><tr><th>名称</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td><code>shadow</code></td><td><code>prop</code></td><td>组件阴影，可选值：<code>always</code>、<code>hover</code>、<code>never</code>，默认值：<code>always</code></td></tr><tr><td><code>.bg-transparent</code></td><td><code>class</code></td><td>组件背景透明</td></tr></tbody></table></div><h2 class=heading-element id=widget-directory><span>8 Widget Directory</span>\n<a href=#widget-directory class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>dashboard 组件统一存放目录：</p><ul><li>通用组件：<code>@/components/Dashboard/widgets/</code></li><li>模块组件：<code>@/views/{module_name}/widgets/</code></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashborad-template-docs/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 布局模板文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>拖拽式仪表盘 - 布局模板文档</span>\n</a><a href=/posts/dashborad-template-usage/ class=collection-nav-item rel=next title=\"拖拽式仪表盘 - 模板使用\"><span>拖拽式仪表盘 - 模板使用</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashborad-widget-docs/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-widget-docs.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashborad-widget-docs.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE%E6%96%87%E6%A1%A3&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E7%BB%84%E4%BB%B6%E9%85%8D%E7%BD%AE%E6%96%87%E6%A1%A3%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashborad-widget-docs/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-widget-docs.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashborad-widget-docs/ data-title=\"拖拽式仪表盘 - 组件配置文档\" data-hashtags=拖拽式仪表盘,dashboard,widget,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashborad-widget-docs/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashborad-widget-docs/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashborad-widget-docs/ data-title=\"拖拽式仪表盘 - 组件配置文档\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashborad-widget-docs/ data-title=\"拖拽式仪表盘 - 组件配置文档\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/widget/ class=post-tag title=\"标签 - widget\">widget</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashborad-template-docs/ class=post-nav-item rel=prev title=\"拖拽式仪表盘 - 布局模板文档\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘 - 布局模板文档</a><a href=/posts/dashborad-template-usage/ class=post-nav-item rel=next title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#a-note-on-terminology>A note on terminology</a></li><li><a href=#widget-example>Widget Example</a></li><li><a href=#inject>Inject</a></li><li><a href=#props>Props</a></li><li><a href=#widget-properties>Widget Properties</a></li><li><a href=#widget-events>Widget Events</a></li><li><a href=#widget-styles>Widget Styles</a></li><li><a href=#widget-directory>Widget Directory</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/20b32ac645052332d31625c852330f19.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/20b32ac645052332d31625c852330f19.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashborad-widget-docs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashborad-widget-docs/index.md",
    "content": "# 拖拽式仪表盘 - 组件配置文档\n\n\n本文将对 Dashboard 组件的使用方法进行介绍。\n\n<!--more-->\n\n## A note on terminology\n\n“Widget（小部件）”和“Component（组件）”都是计算机科学中常见的术语，用于描述可重复使用的用户界面元素。Widget 通常更简单，具有预定义的样式和功能，而 Component 可以更灵活、可定制，并具有更丰富的行为和交互性。Widget 更倾向于描述独立的、自包含的小型组件，而 Component 则更倾向于描述较大规模的、可组合的用户界面元素。\n\nVue 项目通常选用 Component，与之相比仪表盘组件功能更加局限，使用 Widget 来描述显然更符合实际情况。\n\n## Widget Example\n\n完整例子详见 [`@/components/Dashboard/widgets/example.vue`][widget-example] 组件。\n\n## Inject\n\ndashboard 组件及其后代组件可以通过注入 `$dashboard` 访问容器中的属性或方法。\n\n- `$dashboard` (Object): 当前 dashboard 容器实例\n\n例如：\n\n```html\n<script>\nexport default {\n  name: 'ExampleWidget',\n  widget: { /* ... */ },\n  inject: ['$dashboard'],\n  mounted() {\n    // 组件通过 this.$dashboard 访问容器中的属性或方法\n    this.$dashboard.notify('example widget mounted')\n  },\n  /* ... */\n}\n</script>\n```\n\n## Props\n\n容器中的组件可以接收一些上层传递的参数，如下：\n\n| 参数         | 类型      | 说明                                                    |\n| ------------ | --------- | ------------------------------------------------------- |\n| `item`       | `Object`  | 组件实例数据                                            |\n| `params`     | `Object`  | 组件参数，用于接收用户已配置的参数，支持 `.sync` 修饰符 |\n\n## Widget Properties\n\n| 属性     | 类型     | 必填 | 说明                                            |\n| -------- | -------- | :--: | ----------------------------------------------- |\n| `name`   | `String` | `Y`  | 组件名称，必须且唯一（同 Vue 组件 `name` 属性） |\n| `widget` | `Object` | `Y`  | 组件配置信息，[参考文档][grid-item-properties]  |\n\n`widget` 配置如下：\n\n| 属性          | 类型      | 必填 | 说明                                                                                |\n| ------------- | --------- | :--: | ----------------------------------------------------------------------------------- |\n| `name`        | `String`  | `Y`  | 组件名称，用于在组件列表中显示组件名称                                              |\n| `icon`        | `String`  | `Y`  | 组件图标，用于在组件列表中显示组件图标，支持 `el-icon`、`iconfont` 和 `svg-icon`    |\n| `params`      | `Object`  | `N`  | 组件参数，一般搭配 `setting` 钩子函数使用                                           |\n| `disabled`    | `Boolean` | `N`  | 是否禁用组件，设置为 `true` 则不会被注册（组件弃用时可设置为 `true`）               |\n| `hidden`      | `Boolean` | `N`  | 是否隐藏组件，设置为 `true` 则不会在组件列表中显示（组件即将弃用时可设置为 `true`） |\n| `w`           | `Number`  | `Y`  | 组件宽度                                                                            |\n| `h`           | `Number`  | `Y`  | 组件高度                                                                            |\n| `minW`        | `Number`  | `N`  | 组件最小宽度                                                                        |\n| `minH`        | `Number`  | `N`  | 组件最小高度                                                                        |\n| `maxW`        | `Number`  | `N`  | 组件最大宽度                                                                        |\n| `maxH`        | `Number`  | `N`  | 组件最大高度                                                                        |\n| `isResizable` | `Boolean` | `N`  | 是否可调整大小                                                                      |\n\n## Widget Events\n\n| 事件名             | 类型       | 说明                            | 回调参数      |\n| ------------------ | ---------- | ------------------------------- | ------------- |\n| `refresh`          | `Function` | hook for refresh widget item    | item          |\n| `setting`          | `Function` | hook for setting widget item    | item          |\n| `move`             | `Function` | hook for moving widget item     | item, ...args |\n| `moved`            | `Function` | hook for moved widget item      | item, ...args |\n| `resize`           | `Function` | hook for resizing widget item   | item, ...args |\n| `resized`          | `Function` | hook for resized widget item    | item, ...args |\n| `containerResized` | `Function` | hook for resized grid container | item, ...args |\n\n> 参数说明：\n>\n> - item：`Object`，组件实例数据，[参考文档][grid-item-properties]\n> - args：`Array`，传递给事件的其他参数，[参考文档][grid-item-events]\n\n## Widget Styles\n\n组件默认含有 `box-shadow`、`background-color` 等样式，可在组件根节点通过以下样式调整或根据实际情况自行覆盖。\n\n| 名称              | 类型    | 说明                                                           |\n| ----------------- | ------- | -------------------------------------------------------------- |\n| `shadow`          | `prop`  | 组件阴影，可选值：`always`、`hover`、`never`，默认值：`always` |\n| `.bg-transparent` | `class` | 组件背景透明                                                   |\n\n## Widget Directory\n\ndashboard 组件统一存放目录：\n\n- 通用组件：`@/components/Dashboard/widgets/`\n- 模块组件：`@/views/{module_name}/widgets/`\n\n<!-- link reference definition -->\n[widget-example]: <https://github.com/Lruihao/vue-el-demo/blob/main/src/components/Dashboard/widgets/example.vue>\n[grid-item-properties]: <https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem>\n[grid-item-events]: <https://jbaysolutions.github.io/vue-grid-layout/zh/guide/events.html#griditem>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashborad-widget-docs/  \n\n"
  },
  {
    "path": "posts/dashborad-widget-usage/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 组件开发 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\n\"><meta name=keywords content='拖拽式仪表盘,dashboard,widget,Vue2'><meta itemprop=name content=\"拖拽式仪表盘 - 组件开发\"><meta itemprop=description content=\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\"><meta itemprop=datePublished content=\"2023-10-12T20:07:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1952\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,widget,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dashborad-widget-usage/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘 - 组件开发\"><meta property=\"og:description\" content=\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T20:07:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"拖拽式仪表盘\"><meta property=\"article:tag\" content=\"dashboard\"><meta property=\"article:tag\" content=\"widget\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘 - 组件开发\"><meta name=twitter:description content=\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dashborad-widget-usage/ title=\"拖拽式仪表盘 - 组件开发 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashboard-summary/ title=拖拽式仪表盘系列总结><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dashborad-widget-usage/index.md title=\"拖拽式仪表盘 - 组件开发 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"拖拽式仪表盘 - 组件开发\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-widget-usage\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"拖拽式仪表盘, dashboard, widget, Vue2\",\"wordcount\":1952,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dashborad-widget-usage\\/\",\"datePublished\":\"2023-10-12T20:07:56+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dashborad-widget-usage/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/draggable-dashboard/ title=关于拖拽式仪表盘的设计与开发系列文章。>拖拽式仪表盘的设计与开发</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘 - 组件开发</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>拖拽式仪表盘系列</span>\n<span class=collection-count>6</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析</a></li><li class=collection-item><a href=/posts/dashborad-template-docs/ title=\"拖拽式仪表盘 - 布局模板文档\">拖拽式仪表盘 - 布局模板文档</a></li><li class=collection-item><a href=/posts/dashborad-widget-docs/ title=\"拖拽式仪表盘 - 组件配置文档\">拖拽式仪表盘 - 组件配置文档</a></li><li class=collection-item><a href=/posts/dashborad-template-usage/ title=\"拖拽式仪表盘 - 模板使用\">拖拽式仪表盘 - 模板使用</a></li><li class=collection-item><span class=active title=\"拖拽式仪表盘 - 组件开发\">拖拽式仪表盘 - 组件开发</span></li><li class=collection-item><a href=/posts/dashboard-summary/ title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结</a></li></ul><div class=collection-nav-simple><a href=/posts/dashborad-template-usage/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 模板使用\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>5/6</span><a href=/posts/dashboard-summary/ class=collection-nav-item rel=next title=拖拽式仪表盘系列总结><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>拖拽式仪表盘 - 组件开发</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ class=post-collection title=\"合集 - 拖拽式仪表盘系列\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 拖拽式仪表盘系列</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 20:07:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1952 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"拖拽式仪表盘 - 组件开发\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#第一个组件>第一个组件</a></li><li><a href=#万物皆组件>万物皆组件</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。</p><h2 class=heading-element id=第一个组件><span>1 第一个组件</span>\n<a href=#%e7%ac%ac%e4%b8%80%e4%b8%aa%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>先通过一个简单的便利贴组件为例，介绍如何开发一个仪表盘组件。</p><p>Talk is cheap. Show you the code.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=\"便利贴组件（dashboard 示例组件）\"><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>便利贴组件（dashboard 示例组件）</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span><span class=lnt>132\n</span><span class=lnt>133\n</span><span class=lnt>134\n</span><span class=lnt>135\n</span><span class=lnt>136\n</span><span class=lnt>137\n</span><span class=lnt>138\n</span><span class=lnt>139\n</span><span class=lnt>140\n</span><span class=lnt>141\n</span><span class=lnt>142\n</span><span class=lnt>143\n</span><span class=lnt>144\n</span><span class=lnt>145\n</span><span class=lnt>146\n</span><span class=lnt>147\n</span><span class=lnt>148\n</span><span class=lnt>149\n</span><span class=lnt>150\n</span><span class=lnt>151\n</span><span class=lnt>152\n</span><span class=lnt>153\n</span><span class=lnt>154\n</span><span class=lnt>155\n</span><span class=lnt>156\n</span><span class=lnt>157\n</span><span class=lnt>158\n</span><span class=lnt>159\n</span><span class=lnt>160\n</span><span class=lnt>161\n</span><span class=lnt>162\n</span><span class=lnt>163\n</span><span class=lnt>164\n</span><span class=lnt>165\n</span><span class=lnt>166\n</span><span class=lnt>167\n</span><span class=lnt>168\n</span><span class=lnt>169\n</span><span class=lnt>170\n</span><span class=lnt>171\n</span><span class=lnt>172\n</span><span class=lnt>173\n</span><span class=lnt>174\n</span><span class=lnt>175\n</span><span class=lnt>176\n</span><span class=lnt>177\n</span><span class=lnt>178\n</span><span class=lnt>179\n</span><span class=lnt>180\n</span><span class=lnt>181\n</span><span class=lnt>182\n</span><span class=lnt>183\n</span><span class=lnt>184\n</span><span class=lnt>185\n</span><span class=lnt>186\n</span><span class=lnt>187\n</span><span class=lnt>188\n</span><span class=lnt>189\n</span><span class=lnt>190\n</span><span class=lnt>191\n</span><span class=lnt>192\n</span><span class=lnt>193\n</span><span class=lnt>194\n</span><span class=lnt>195\n</span><span class=lnt>196\n</span><span class=lnt>197\n</span><span class=lnt>198\n</span><span class=lnt>199\n</span><span class=lnt>200\n</span><span class=lnt>201\n</span><span class=lnt>202\n</span><span class=lnt>203\n</span><span class=lnt>204\n</span><span class=lnt>205\n</span><span class=lnt>206\n</span><span class=lnt>207\n</span><span class=lnt>208\n</span><span class=lnt>209\n</span><span class=lnt>210\n</span><span class=lnt>211\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>el-card</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>span</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;note-content&#34;</span><span class=p>&gt;{{</span> <span class=nx>params</span><span class=p>.</span><span class=nx>content</span> <span class=p>}}&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>el-popover</span>\n</span></span><span class=line><span class=cl>      <span class=nt>v-model</span><span class=o>=</span><span class=s>&#34;formVisible&#34;</span><span class=p>\n</span></span></span><span class=line><span class=cl>      <span class=na>trigger</span><span class=o>=</span><span class=s>&#34;manual&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>popper</span><span class=nt>-class</span><span class=err>=&#34;</span><span class=na>form</span><span class=nt>-popover</span><span class=err>&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>el-form</span>\n</span></span><span class=line><span class=cl>        <span class=na>ref</span><span class=o>=</span><span class=s>&#34;form&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=na>label</span><span class=nt>-width</span><span class=err>=&#34;</span><span class=na>80px</span><span class=err>&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=na>label</span><span class=nt>-position</span><span class=err>=&#34;</span><span class=na>top</span><span class=err>&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=nt>:model</span><span class=o>=</span><span class=s>&#34;form&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=nt>:rules</span><span class=o>=</span><span class=s>&#34;rules&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>el-form-item</span> <span class=na>label</span><span class=o>=</span><span class=s>&#34;便利贴&#34;</span> <span class=na>prop</span><span class=o>=</span><span class=s>&#34;content&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>&lt;</span><span class=nt>el-input</span> <span class=nt>v-model</span><span class=o>=</span><span class=s>&#34;form.content&#34; type=&#34;textarea&#34; :autosize=&#34;{ minRows: 2, maxRows: 4 }&#34;</span><span class=p> /&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;/</span><span class=nt>el-form-item</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>el-form</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;text-right&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>el-button</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text&#34;</span> <span class=na>size</span><span class=o>=</span><span class=s>&#34;mini&#34;</span> <span class=nt>@click</span><span class=s>=&#34;formVisible = false&#34;</span><span class=p>&gt;</span><span class=na>取消</span><span class=err>&lt;/</span><span class=na>el</span><span class=nt>-button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>el-button</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;primary&#34;</span> <span class=na>size</span><span class=o>=</span><span class=s>&#34;mini&#34;</span> <span class=nt>@click</span><span class=s>=&#34;save&#34;</span><span class=p>&gt;</span><span class=na>保存</span><span class=err>&lt;/</span><span class=na>el</span><span class=nt>-button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>el-popover</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>el-card</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * 组件名称，必须且唯一\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;ExampleWidget&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * 组件配置对象\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {String} name 组件名称，用于在组件列表中显示组件名称\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {String} [icon=&#39;el-icon-postcard&#39;] 组件图标，用于在组件列表中显示组件图标，支持 el-icon、iconfont 和 svg-icon\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Object} [params] 组件参数，一般搭配 setting 钩子函数使用\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Boolean} [disabled] 是否禁用组件，设置为 true 则不会被注册（组件弃用时可设置为 true）\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Boolean} [hidden] 是否隐藏组件，设置为 true 则不会在组件列表中显示（组件即将弃用时可设置为 true）\n</span></span></span><span class=line><span class=cl><span class=cm>   * 以下参数参考 https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} w 组件宽度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} h 组件高度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} [minW] 组件最小宽度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} [minH] 组件最小高度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} [maxW] 组件最大宽度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Number} [maxH] 组件最大高度\n</span></span></span><span class=line><span class=cl><span class=cm>   * @property {Boolean} [isResizable=false] 是否可调整大小\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>widget</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;便利贴&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>icon</span><span class=o>:</span> <span class=s1>&#39;el-icon-postcard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>params</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>content</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>disabled</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>hidden</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>w</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>h</span><span class=o>:</span> <span class=mi>3</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>minW</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>minH</span><span class=o>:</span> <span class=mi>3</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>maxW</span><span class=o>:</span> <span class=mi>24</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>maxH</span><span class=o>:</span> <span class=mi>6</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>isResizable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>inject</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;$dashboard&#39;</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>  <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 组件实例数据\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>item</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Object</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>({}),</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 组件参数，用于接收用户已配置的参数，支持 `.sync` 修饰符\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>params</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Object</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>({}),</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>formVisible</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>form</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>content</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>rules</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>content</span><span class=o>:</span> <span class=p>[{</span> <span class=nx>required</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span> <span class=nx>message</span><span class=o>:</span> <span class=s1>&#39;请输入便利贴内容&#39;</span><span class=p>,</span> <span class=nx>trigger</span><span class=o>:</span> <span class=s1>&#39;change&#39;</span> <span class=p>}],</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>watch</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;$dashboard.isCollapse&#39;</span><span class=p>(</span><span class=nx>val</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 当侧栏组件列表折叠时，关闭配置弹窗\n</span></span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=nx>val</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>this</span><span class=p>.</span><span class=nx>formVisible</span> <span class=o>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;params.content&#39;</span><span class=p>(</span><span class=nx>val</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 当用户修改了参数，更新表单中对应的参数\n</span></span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>form</span><span class=p>.</span><span class=nx>content</span> <span class=o>=</span> <span class=nx>val</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>mounted</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>form</span> <span class=o>=</span> <span class=p>{</span> <span class=p>...</span><span class=k>this</span><span class=p>.</span><span class=nx>params</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for refresh widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * 点击刷新组件按钮时触发，一般用于刷新组件数据\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item 组件实例数据\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>refresh</span><span class=p>(</span><span class=nx>item</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to refresh widget data\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for setting widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * 点击配置组件按钮时触发，一般搭配 widget.params 使用\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item 组件实例数据\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>setting</span><span class=p>(</span><span class=nx>item</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>formVisible</span> <span class=o>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for moving widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item item config data\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} i the item id/index\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newX new x position in grid rows\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newY new y position in grid columns\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>move</span><span class=p>(</span><span class=nx>item</span><span class=p>,</span> <span class=nx>i</span><span class=p>,</span> <span class=nx>newX</span><span class=p>,</span> <span class=nx>newY</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to do something when widget item moving\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for moved widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item item config data\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} i the item id/index\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newX new x position in grid rows\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newY new y position in grid columns\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>moved</span><span class=p>(</span><span class=nx>item</span><span class=p>,</span> <span class=nx>i</span><span class=p>,</span> <span class=nx>newX</span><span class=p>,</span> <span class=nx>newY</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to do something when widget item moved\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for resizing widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item item config data\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} i the item id/index\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newH new height in grid rows\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newW new width in grid columns\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newHPx new height in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newWPx new width in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>resize</span><span class=p>(</span><span class=nx>item</span><span class=p>,</span> <span class=nx>i</span><span class=p>,</span> <span class=nx>newH</span><span class=p>,</span> <span class=nx>newW</span><span class=p>,</span> <span class=nx>newHPx</span><span class=p>,</span> <span class=nx>newWPx</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to do something when widget item resizing\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for resized widget item\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item item config data\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} i the item id/index\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newH new height in grid rows\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newW new width in grid columns\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newHPx new height in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newWPx new width in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>resized</span><span class=p>(</span><span class=nx>item</span><span class=p>,</span> <span class=nx>i</span><span class=p>,</span> <span class=nx>newH</span><span class=p>,</span> <span class=nx>newW</span><span class=p>,</span> <span class=nx>newHPx</span><span class=p>,</span> <span class=nx>newWPx</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to do something when widget item resized\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>   * hook for container resized\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Object} item item config data\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} i the item id/index\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newH new height in grid rows\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {Number} newW new width in grid columns\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newHPx new height in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   * @param {String} newWPx new width in pixels\n</span></span></span><span class=line><span class=cl><span class=cm>   */</span>\n</span></span><span class=line><span class=cl>  <span class=nx>containerResized</span><span class=p>(</span><span class=nx>item</span><span class=p>,</span> <span class=nx>i</span><span class=p>,</span> <span class=nx>newH</span><span class=p>,</span> <span class=nx>newW</span><span class=p>,</span> <span class=nx>newHPx</span><span class=p>,</span> <span class=nx>newWPx</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// to do something when container resized\n</span></span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>methods</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 保存配置\n</span></span></span><span class=line><span class=cl><span class=cm>     * 通过 update:params 事件将配置传递给父组件\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>save</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>$refs</span><span class=p>.</span><span class=nx>form</span><span class=p>.</span><span class=nx>validate</span><span class=p>(</span><span class=nx>valid</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>valid</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>this</span><span class=p>.</span><span class=nx>formVisible</span> <span class=o>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>          <span class=k>this</span><span class=p>.</span><span class=nx>$emit</span><span class=p>(</span><span class=s1>&#39;update:params&#39;</span><span class=p>,</span> <span class=p>{</span> <span class=p>...</span><span class=k>this</span><span class=p>.</span><span class=nx>form</span> <span class=p>})</span>\n</span></span><span class=line><span class=cl>          <span class=k>this</span><span class=p>.</span><span class=nx>$dashboard</span><span class=p>.</span><span class=nx>notify</span><span class=p>(</span><span class=s1>&#39;便利贴保存成功！&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>})</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;scss&#34;</span> <span class=na>scoped</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>note</span><span class=o>-</span><span class=nx>content</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>white</span><span class=o>-</span><span class=nx>space</span><span class=o>:</span> <span class=nx>pre</span><span class=o>-</span><span class=nx>wrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>color</span><span class=o>:</span> <span class=err>#</span><span class=mi>606266</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>font</span><span class=o>-</span><span class=nx>size</span><span class=o>:</span> <span class=mi>14</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=o>::</span><span class=nx>v</span><span class=o>-</span><span class=nx>deep</span> <span class=p>.</span><span class=nx>form</span><span class=o>-</span><span class=nx>popover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>width</span><span class=o>:</span> <span class=mi>80</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>top</span><span class=o>:</span> <span class=mi>50</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>left</span><span class=o>:</span> <span class=mi>50</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>transform</span><span class=o>:</span> <span class=nx>translate</span><span class=p>(</span><span class=o>-</span><span class=mi>50</span><span class=o>%</span><span class=p>,</span> <span class=o>-</span><span class=mi>50</span><span class=o>%</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>可以看出仪表盘组件和一个普通的 Vue 组件并没有太大区别，只是多了一个 <code>widget</code> 配置对象和一些钩子函数。</p><p><code>widget</code> 配置对象用于在组件列表中显示组件名称和图标，以及配置组件的默认参数、宽高等信息。代码中备注已经写得很清楚了，这里就不再赘述。</p><p>钩子函数，会在组件移动、调整大小、刷新、配置等操作时触发，这些钩子函数可以用于组件的数据更新、保存等操作。</p><p>组件中注入了 <code>$dashboard</code> 对象，用于在组件中调用仪表盘的方法。</p><p>最后，通过 <code>update:params</code> 事件将用户配置的参数传递给仪表盘，仪表盘会将参数保存到数据库中，下次加载仪表盘时会将参数回传给组件。</p><h2 class=heading-element id=万物皆组件><span>2 万物皆组件</span>\n<a href=#%e4%b8%87%e7%89%a9%e7%9a%86%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>系统中的仪表盘，除了承载业务组件外，还可以承载一些系统级别的组件，发挥想象力，将任何 idea 开发成为仪表盘的组件，比如：</p><ul><li>时钟</li><li>天气</li><li>便利贴</li><li>倒计时</li><li>……</li></ul><p>等等，只要你想得到，就可以开发成为仪表盘的组件，灵感可以来自于手机平板桌面、浏览器网址导航等。</p><p>又例如，我在 <a href=https://itab.link/ target=_blank rel=\"external nofollow noopener noreferrer\">iTab 新标签页<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 网址导航中，看到了一个“一言组件”觉得很有意思。</p><p>于是乎，我也开发了一个“一言组件”，<a href=https://lruihao.github.io/vue-el-demo/#/dashboard/index target=_blank rel=\"external nofollow noopener noreferrer\">在线 demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/views/dashboard/widgets/daily/hitokoto.vue target=_blank rel=\"external nofollow noopener noreferrer\">组件源码 <code>hitokoto.vue</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，功能如下：</p><ul><li>点击左键复制，右键切换</li><li>支持自定义一言类型、长度</li><li>一键百度搜索当前一言内容</li></ul><p>效果如下：</p><p><figure><a class=lightgallery target=_blank href=/posts/dashborad-widget-usage/images/hitokoto.gif title=一言组件局部动画 data-thumbnail=/posts/dashborad-widget-usage/images/hitokoto.gif data-sub-html=\"<h2>hitokoto widget</h2><p>一言组件局部动画</p>\"><img loading=lazy src=/posts/dashborad-widget-usage/images/hitokoto.gif alt=\"hitokoto widget\" height=145 width=600></a><figcaption class=image-caption>一言组件局部动画</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・拖拽式仪表盘系列</span></span></a> 6</div><div class=collection-nav><a href=/posts/dashborad-template-usage/ class=collection-nav-item rel=prev title=\"拖拽式仪表盘 - 模板使用\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>拖拽式仪表盘 - 模板使用</span>\n</a><a href=/posts/dashboard-summary/ class=collection-nav-item rel=next title=拖拽式仪表盘系列总结><span>拖拽式仪表盘系列总结</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dashborad-widget-usage/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-widget-usage/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/draggable-dashboard/dashborad-widget-usage/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E7%BB%84%E4%BB%B6%E5%BC%80%E5%8F%91&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98+-+%E7%BB%84%E4%BB%B6%E5%BC%80%E5%8F%91%7c%0A%7cURL%7chttps://lruihao.cn/posts/dashborad-widget-usage/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/draggable-dashboard/dashborad-widget-usage/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dashborad-widget-usage/ data-title=\"拖拽式仪表盘 - 组件开发\" data-hashtags=拖拽式仪表盘,dashboard,widget,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dashborad-widget-usage/ data-hashtag=拖拽式仪表盘><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dashborad-widget-usage/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dashborad-widget-usage/ data-title=\"拖拽式仪表盘 - 组件开发\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dashborad-widget-usage/ data-title=\"拖拽式仪表盘 - 组件开发\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=post-tag title=\"标签 - 拖拽式仪表盘\">拖拽式仪表盘</a><a href=/tags/dashboard/ class=post-tag title=\"标签 - dashboard\">dashboard</a><a href=/tags/widget/ class=post-tag title=\"标签 - widget\">widget</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashborad-template-usage/ class=post-nav-item rel=prev title=\"拖拽式仪表盘 - 模板使用\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘 - 模板使用</a><a href=/posts/dashboard-summary/ class=post-nav-item rel=next title=拖拽式仪表盘系列总结>拖拽式仪表盘系列总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#第一个组件>第一个组件</a></li><li><a href=#万物皆组件>万物皆组件</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cf951cf6b21d5af8ca797c8d013a78fa.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cf951cf6b21d5af8ca797c8d013a78fa.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dashborad-widget-usage/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dashborad-widget-usage/index.md",
    "content": "# 拖拽式仪表盘 - 组件开发\n\n\n本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\n\n<!--more-->\n\n## 第一个组件\n\n先通过一个简单的便利贴组件为例，介绍如何开发一个仪表盘组件。\n\nTalk is cheap. Show you the code.\n\n```vue {title=\"便利贴组件（dashboard 示例组件）\"}\n<template>\n  <el-card>\n    <span class=\"note-content\">{{ params.content }}</span>\n    <el-popover\n      v-model=\"formVisible\"\n      trigger=\"manual\"\n      popper-class=\"form-popover\"\n    >\n      <el-form\n        ref=\"form\"\n        label-width=\"80px\"\n        label-position=\"top\"\n        :model=\"form\"\n        :rules=\"rules\"\n      >\n        <el-form-item label=\"便利贴\" prop=\"content\">\n          <el-input v-model=\"form.content\" type=\"textarea\" :autosize=\"{ minRows: 2, maxRows: 4 }\" />\n        </el-form-item>\n      </el-form>\n      <div class=\"text-right\">\n        <el-button type=\"text\" size=\"mini\" @click=\"formVisible = false\">取消</el-button>\n        <el-button type=\"primary\" size=\"mini\" @click=\"save\">保存</el-button>\n      </div>\n    </el-popover>\n  </el-card>\n</template>\n\n<script>\nexport default {\n  /**\n   * 组件名称，必须且唯一\n   */\n  name: 'ExampleWidget',\n  /**\n   * 组件配置对象\n   * @property {String} name 组件名称，用于在组件列表中显示组件名称\n   * @property {String} [icon='el-icon-postcard'] 组件图标，用于在组件列表中显示组件图标，支持 el-icon、iconfont 和 svg-icon\n   * @property {Object} [params] 组件参数，一般搭配 setting 钩子函数使用\n   * @property {Boolean} [disabled] 是否禁用组件，设置为 true 则不会被注册（组件弃用时可设置为 true）\n   * @property {Boolean} [hidden] 是否隐藏组件，设置为 true 则不会在组件列表中显示（组件即将弃用时可设置为 true）\n   * 以下参数参考 https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem\n   * @property {Number} w 组件宽度\n   * @property {Number} h 组件高度\n   * @property {Number} [minW] 组件最小宽度\n   * @property {Number} [minH] 组件最小高度\n   * @property {Number} [maxW] 组件最大宽度\n   * @property {Number} [maxH] 组件最大高度\n   * @property {Boolean} [isResizable=false] 是否可调整大小\n   */\n  widget: {\n    name: '便利贴',\n    icon: 'el-icon-postcard',\n    params: {\n      content: '',\n    },\n    disabled: false,\n    hidden: false,\n    w: 8,\n    h: 3,\n    minW: 8,\n    minH: 3,\n    maxW: 24,\n    maxH: 6,\n    isResizable: true,\n  },\n  inject: ['$dashboard'],\n  props: {\n    /**\n     * 组件实例数据\n     */\n    item: {\n      type: Object,\n      default: () => ({}),\n    },\n    /**\n     * 组件参数，用于接收用户已配置的参数，支持 `.sync` 修饰符\n     */\n    params: {\n      type: Object,\n      default: () => ({}),\n    },\n  },\n  data() {\n    return {\n      formVisible: false,\n      form: {\n        content: '',\n      },\n      rules: {\n        content: [{ required: true, message: '请输入便利贴内容', trigger: 'change' }],\n      },\n    }\n  },\n  watch: {\n    '$dashboard.isCollapse'(val) {\n      // 当侧栏组件列表折叠时，关闭配置弹窗\n      if (val) {\n        this.formVisible = false\n      }\n    },\n    'params.content'(val) {\n      // 当用户修改了参数，更新表单中对应的参数\n      this.form.content = val\n    },\n  },\n  mounted() {\n    this.form = { ...this.params }\n  },\n  /**\n   * hook for refresh widget item\n   * 点击刷新组件按钮时触发，一般用于刷新组件数据\n   * @param {Object} item 组件实例数据\n   */\n  refresh(item) {\n    // to refresh widget data\n  },\n  /**\n   * hook for setting widget item\n   * 点击配置组件按钮时触发，一般搭配 widget.params 使用\n   * @param {Object} item 组件实例数据\n   */\n  setting(item) {\n    this.formVisible = true\n  },\n  /**\n   * hook for moving widget item\n   * @param {Object} item item config data\n   * @param {Number} i the item id/index\n   * @param {Number} newX new x position in grid rows\n   * @param {Number} newY new y position in grid columns\n   */\n  move(item, i, newX, newY) {\n    // to do something when widget item moving\n  },\n  /**\n   * hook for moved widget item\n   * @param {Object} item item config data\n   * @param {Number} i the item id/index\n   * @param {Number} newX new x position in grid rows\n   * @param {Number} newY new y position in grid columns\n   */\n  moved(item, i, newX, newY) {\n    // to do something when widget item moved\n  },\n  /**\n   * hook for resizing widget item\n   * @param {Object} item item config data\n   * @param {Number} i the item id/index\n   * @param {Number} newH new height in grid rows\n   * @param {Number} newW new width in grid columns\n   * @param {String} newHPx new height in pixels\n   * @param {String} newWPx new width in pixels\n   */\n  resize(item, i, newH, newW, newHPx, newWPx) {\n    // to do something when widget item resizing\n  },\n  /**\n   * hook for resized widget item\n   * @param {Object} item item config data\n   * @param {Number} i the item id/index\n   * @param {Number} newH new height in grid rows\n   * @param {Number} newW new width in grid columns\n   * @param {String} newHPx new height in pixels\n   * @param {String} newWPx new width in pixels\n   */\n  resized(item, i, newH, newW, newHPx, newWPx) {\n    // to do something when widget item resized\n  },\n  /**\n   * hook for container resized\n   * @param {Object} item item config data\n   * @param {Number} i the item id/index\n   * @param {Number} newH new height in grid rows\n   * @param {Number} newW new width in grid columns\n   * @param {String} newHPx new height in pixels\n   * @param {String} newWPx new width in pixels\n   */\n  containerResized(item, i, newH, newW, newHPx, newWPx) {\n    // to do something when container resized\n  },\n  methods: {\n    /**\n     * 保存配置\n     * 通过 update:params 事件将配置传递给父组件\n     */\n    save() {\n      this.$refs.form.validate(valid => {\n        if (valid) {\n          this.formVisible = false\n          this.$emit('update:params', { ...this.form })\n          this.$dashboard.notify('便利贴保存成功！')\n        }\n      })\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.note-content {\n  white-space: pre-wrap;\n  color: #606266;\n  font-size: 14px;\n}\n::v-deep .form-popover {\n  width: 80%;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n</style>\n```\n\n可以看出仪表盘组件和一个普通的 Vue 组件并没有太大区别，只是多了一个 `widget` 配置对象和一些钩子函数。\n\n`widget` 配置对象用于在组件列表中显示组件名称和图标，以及配置组件的默认参数、宽高等信息。代码中备注已经写得很清楚了，这里就不再赘述。\n\n钩子函数，会在组件移动、调整大小、刷新、配置等操作时触发，这些钩子函数可以用于组件的数据更新、保存等操作。\n\n组件中注入了 `$dashboard` 对象，用于在组件中调用仪表盘的方法。\n\n最后，通过 `update:params` 事件将用户配置的参数传递给仪表盘，仪表盘会将参数保存到数据库中，下次加载仪表盘时会将参数回传给组件。\n\n## 万物皆组件\n\n系统中的仪表盘，除了承载业务组件外，还可以承载一些系统级别的组件，发挥想象力，将任何 idea 开发成为仪表盘的组件，比如：\n\n- 时钟\n- 天气\n- 便利贴\n- 倒计时\n- ……\n\n等等，只要你想得到，就可以开发成为仪表盘的组件，灵感可以来自于手机平板桌面、浏览器网址导航等。\n\n又例如，我在 [iTab 新标签页](https://itab.link/) 网址导航中，看到了一个“一言组件”觉得很有意思。\n\n于是乎，我也开发了一个“一言组件”，[在线 demo](https://lruihao.github.io/vue-el-demo/#/dashboard/index)，[组件源码 `hitokoto.vue`](https://github.com/Lruihao/vue-el-demo/blob/main/src/views/dashboard/widgets/daily/hitokoto.vue)，功能如下：\n\n- 点击左键复制，右键切换\n- 支持自定义一言类型、长度\n- 一键百度搜索当前一言内容\n\n效果如下：\n\n![hitokoto widget](images/hitokoto.gif \"一言组件局部动画\")\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dashborad-widget-usage/  \n\n"
  },
  {
    "path": "posts/data/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>计算机数据 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\n\"><meta name=keywords content='计算机数据,计算机组成与体系结构'><meta itemprop=name content=\"计算机数据\"><meta itemprop=description content=\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\"><meta itemprop=datePublished content=\"2018-10-08T23:01:10+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"270\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"计算机数据,计算机组成与体系结构\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/data/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"计算机数据\"><meta property=\"og:description\" content=\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-08T23:01:10+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"计算机数据\"><meta property=\"article:tag\" content=\"计算机组成与体系结构\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"计算机数据\"><meta name=twitter:description content=\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/data/ title=\"计算机数据 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/night/ title=网页夜间效果><link rel=next type=text/html href=https://lruihao.cn/posts/liushuixian/ title=流水线><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/data/index.md title=\"计算机数据 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"计算机数据\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/data\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"计算机数据, 计算机组成与体系结构\",\"wordcount\":270,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/data\\/\",\"datePublished\":\"2018-10-08T23:01:10+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/data/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>计算机数据</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>计算机数据</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-08 23:01:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-08>2018-10-08</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"270 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=计算机数据><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#数据的表示>数据的表示</a></li><li><a href=#数据表示范围>数据表示范围</a></li><li><a href=#浮点数运算>浮点数运算</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=数据的表示><span>0.1 数据的表示</span>\n<a href=#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>数据的表示可分为：原码，反码和补码。（二进制）</strong></p><ul><li>原码：符号位 0 为正，1 为负。</li><li>反码：符号位 0 为正，1 为负。<ul><li>正数：反码同原码。</li><li>负数：符号位除外其他位按位取反。</li></ul></li><li>补码：<ul><li>正数：同原码。</li><li>负数：符号位除外其他位按位取反再 +1。</li></ul></li><li>移码：补码符号位取反。</li></ul><h3 class=heading-element id=数据表示范围><span>0.2 数据表示范围</span>\n<a href=#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>原码： <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li><li>反码： <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li><li>补码： <code>-z^n-1 ~ 2^n-1 - 1</code> （补码正 0 和负 0 相同，少占一数位，就多一个范围）</li></ul><p>例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。</p><h3 class=heading-element id=浮点数运算><span>0.3 浮点数运算</span>\n<a href=#%e6%b5%ae%e7%82%b9%e6%95%b0%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>对阶（小阶对大阶）+ 尾数计算（科学计数法）+ 结果规格化（科学技术法）</strong></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/data/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/data.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/data.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/data/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/data.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/data/ data-title=计算机数据 data-hashtags=计算机数据,计算机组成与体系结构><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/data/ data-hashtag=计算机数据><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/data/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/data/ data-title=计算机数据 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/data/ data-title=计算机数据><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/ class=post-tag title=\"标签 - 计算机数据\">计算机数据</a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ class=post-tag title=\"标签 - 计算机组成与体系结构\">计算机组成与体系结构</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/night/ class=post-nav-item rel=prev title=网页夜间效果><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>网页夜间效果</a><a href=/posts/liushuixian/ class=post-nav-item rel=next title=流水线>流水线<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#数据的表示>数据的表示</a></li><li><a href=#数据表示范围>数据表示范围</a></li><li><a href=#浮点数运算>浮点数运算</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5b8a1dd7275c2db6ccf1e01d55644ac6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5b8a1dd7275c2db6ccf1e01d55644ac6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/data/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/data/index.md",
    "content": "# 计算机数据\n\n\n### 数据的表示\n\n**数据的表示可分为：原码，反码和补码。（二进制）**\n\n- 原码：符号位 0 为正，1 为负。\n- 反码：符号位 0 为正，1 为负。\n  - 正数：反码同原码。\n  - 负数：符号位除外其他位按位取反。\n- 补码：\n  - 正数：同原码。\n  - 负数：符号位除外其他位按位取反再 +1。\n- 移码：补码符号位取反。\n\n### 数据表示范围\n\n- 原码： `-(z^n-1 - 1) ~ 2^n-1 - 1`\n- 反码： `-(z^n-1 - 1) ~ 2^n-1 - 1`\n- 补码： `-z^n-1 ~ 2^n-1 - 1` （补码正 0 和负 0 相同，少占一数位，就多一个范围）\n\n例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\n\n### 浮点数运算\n\n**对阶（小阶对大阶）+ 尾数计算（科学计数法）+ 结果规格化（科学技术法）**\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/data/  \n\n"
  },
  {
    "path": "posts/design-principles/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>架构之基：从根儿上了解设计原则 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"><meta name=keywords content='Design Patterns,Java'><meta itemprop=name content=\"架构之基：从根儿上了解设计原则\"><meta itemprop=description content=\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"><meta itemprop=datePublished content=\"2024-06-09T02:24:31+08:00\"><meta itemprop=dateModified content=\"2024-06-09T02:57:55+08:00\"><meta itemprop=wordCount content=\"6609\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Design Patterns,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/design-principles/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"架构之基：从根儿上了解设计原则\"><meta property=\"og:description\" content=\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-06-09T02:24:31+08:00\"><meta property=\"article:modified_time\" content=\"2024-06-09T02:57:55+08:00\"><meta property=\"article:tag\" content=\"Design Patterns\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"架构之基：从根儿上了解设计原则\"><meta name=twitter:description content=\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/design-principles/ title=\"架构之基：从根儿上了解设计原则 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/svg-dark-light/ title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><link rel=next type=text/html href=https://lruihao.cn/posts/aside-toggle-drag/ title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/design-principles/index.md title=\"架构之基：从根儿上了解设计原则 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"架构之基：从根儿上了解设计原则\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/design-principles\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Design Patterns, Java\",\"wordcount\":6609,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/design-principles\\/\",\"datePublished\":\"2024-06-09T02:24:31+08:00\",\"dateModified\":\"2024-06-09T02:57:55+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/design-principles/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>架构之基：从根儿上了解设计原则</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>架构之基：从根儿上了解设计原则</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=post-meta-line><span title=\"发布于 2024-06-09 02:24:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-06-09>2024-06-09</time></span>&nbsp;<span title=\"更新于 2024-06-09 02:57:55\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-06-09>2024-06-09</time></span>&nbsp;<span title=\"6609 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 6700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 14 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=架构之基：从根儿上了解设计原则><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#单一职责原则srp>单一职责原则（SRP）</a></li><li><a href=#里氏置换原则lsp>里氏置换原则（LSP）</a></li><li><a href=#依赖倒置原则dip>依赖倒置原则（DIP）</a></li><li><a href=#接口隔离原则isp>接口隔离原则（ISP）</a></li><li><a href=#最少知识原则lkp>最少知识原则（LKP）</a></li><li><a href=#开放闭合原则ocp>开放闭合原则（OCP）</a></li><li><a href=#设计模式>设计模式</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-06-09，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文节选自 <strong>奔波儿灞取经</strong> 的《<a href=https://juejin.cn/book/7196580339181944872 target=_blank rel=\"external nofollow noopener noreferrer\">程序员的必修课<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>》，文中的“我”指原作者奔波儿灞取经。</p><hr><blockquote><p>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</p></blockquote><p>对于大多数开发者来说，代码都是需要维护的，而不是写一遍就放起来不管了。既然需要维护，就要不断地读读改改，那就不是一次性的，那么怎么让他“读读改改”起来方便些呢？嗯，<strong>设计模式</strong>！</p><p>设计模式切记不要死记硬背，不要生搬硬套，否则不如不学。而且不要一上来就说：要用 xxx 模式！需求还没出，你猴急个锤子，难不成是你刚学会这个模式，想拿来练练手，就想把它硬塞到需求里去吗？</p><p>那么，如果需求已经出了呢？也别急，先想想，想好了怎么写，选择哪种设计模式；如果没有合适的，套不进去，那就别套了，只要方便维护，就是好的设计，不一定非要去套现有的设计模式。</p><p>当然，要想正确地使用设计模式，还是先得透彻地了解了它们。因此，接下来我们就先来了解下设计模式的“祖宗”：<strong>六大设计原则</strong>。</p><h2 class=heading-element id=单一职责原则srp><span>1 单一职责原则（SRP）</span>\n<a href=#%e5%8d%95%e4%b8%80%e8%81%8c%e8%b4%a3%e5%8e%9f%e5%88%99srp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>单一职责原则（Single Responsibility Principle，简称 SRP）：一个类只干一件事。</p></blockquote><p>可以看到，单一职责的核心就是：<strong>只做一件事</strong>。不过，关键点就是这个“事”的范围不好定义。</p><p>比如，写一个音乐播放器，一个类负责播放，一个类负责停止，这也满足单一职责。但是，这个职责太小了。那么，如果把播放、停止、甚至下载歌曲，都塞进一个类里面呢，那就太大了。所以，职责的范围很重要，只要确定好了这个范围，那这个原则就已经实现了 90%。</p><p>那么，这个范围怎么确定呢？我们可以这么理解：<strong>一些相关的、关联性比较强的，就把它们当作同一种职责，放到一个单独的类（文件）里</strong>。</p><p>那么，怎么确定是否相关呢？看需求！这个只能看需求，没有别的方法。如果需求没有明确，那么我们就要联系现实来决定，毕竟程序的本质就是模拟现实。</p><p>比如，我在 2015 年实习的时候，IBM 公司有个考勤系统，需要添加一个指纹打卡功能。需求是这样的：<code>部门主管以下的员工可以用指纹来打卡</code>。</p><p>那么，这个“打卡功能”是属于员工的，是属于打卡器的？换句话说，这个打卡的函数，是写在员工类里面呢，还是写在打卡器类里面呢？需求没说啊。</p><p>那么，我们就联系现实来决定。</p><p>在现实生活中，应该是一个打卡器放在门口，员工向打卡器录入指纹，来进行打卡，说白了就是：“员工使用打卡器来打卡”，也就是：“员工使用打卡器”“打卡器打卡”，所以，打卡功能是打卡器的，员工只是使用它的这个功能。所以，这个函数应该定义在打卡器里面，员工调用打卡器的这个函数来进行打卡。</p><p>如果有人不爽，非要定义在员工类里面呢？你可以这么干。不过，后来需求改变成：非员工，比如保洁人员，也需要每天打卡签到。这时候，那位非常有个性有特色的人，估计脑瓜子嗡嗡的了吧。</p><p><strong>单一职责不仅可以用在类（文件）里面，也可以用在函数里面。</strong></p><p>比如，现在需要写一个校验函数，校验用户的性别和年龄，必须是 18 岁及以上的男性才有资格，很简单的我们可以这么写：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>checkSexAndAge</span><span class=p>(</span><span class=kt>boolean</span><span class=w> </span><span class=n>isMan</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>isMan</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>age</span><span class=w> </span><span class=o>&gt;=</span><span class=w> </span><span class=n>18</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>使用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>private</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>login</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>checkSexAndAge</span><span class=p>(</span><span class=kc>false</span><span class=p>,</span><span class=w> </span><span class=n>17</span><span class=p>))</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>tips</span><span class=p>(</span><span class=s>&#34;不是 18 岁以上的男性&#34;</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>return</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>这里有人有意见了，说这样写不太好，因为每个校验的地方都要自己弹出提示，这样就是很多重复的代码，所以提示这个逻辑应该放在<code>checkSexAndAge()</code>这个函数里面去，也就是下面这样：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>checkSexAndAge</span><span class=p>(</span><span class=kt>boolean</span><span class=w> </span><span class=n>isMan</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>isMan</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>age</span><span class=w> </span><span class=o>&gt;=</span><span class=w> </span><span class=n>18</span><span class=p>)</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=kc>true</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>tips</span><span class=p>(</span><span class=s>&#34;不是 18 岁以上的男性&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>这样简直美滋滋，任何时候只要直接调<code>checkSexAndAge()</code>就行，判断了还自带提示。这在目前当然是完美的，虽然方法名不太合适。</p><p>如果有一天，我们的需求变成了：年龄不满足就开启未成年人保护模式，不需要弹出提示。我们直接删除<code>tips()</code>这个调用吗？这样不太好，如果别的地方也调用了这个方法，并且需要提示，就完了。所以我们应该有两个方法：方法 A 只检测，方法 B 使用 A 的检测结果并弹出提示。代码如下所示：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=c1>// 判断加提示</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>checkAndTips</span><span class=p>(</span><span class=kt>boolean</span><span class=w> </span><span class=n>isMan</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>checkSexAndAge</span><span class=p>(</span><span class=n>isMan</span><span class=p>,</span><span class=w> </span><span class=n>age</span><span class=p>))</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>tips</span><span class=p>(</span><span class=s>&#34;不是 18 岁以上的男性&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>return</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=kc>true</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// 新方法，只做逻辑判断</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>checkSexAndAge</span><span class=p>(</span><span class=kt>boolean</span><span class=w> </span><span class=n>isMan</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>isMan</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>age</span><span class=w> </span><span class=o>&gt;=</span><span class=w> </span><span class=n>18</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>这里我们只抽离了一个方法，但是却反映出了单一职责的好处：职责越单一，因为修改而引起的问题就越少。换句话说就是：<strong>需求的粒度跟单一职责的优势成正比，需求越详细，越能看出单一职责的好处</strong>。所以我们要尽量避免大方法、大类、大模块，因为一个类越大，涉及的东西就越多，用到它的地方就越多，那么这个类就不能轻易修改，因为一旦修改，涉及的地方就越多，就越危险，所以我们一定要尽量避免。其实 MVC 就是一个宏观的、大的单一职责思想。</p><blockquote><p>单一职责不仅适用于类和文件，还适用于函数、模块等，这是一种思想，一定要掌握。</p></blockquote><h2 class=heading-element id=里氏置换原则lsp><span>2 里氏置换原则（LSP）</span>\n<a href=#%e9%87%8c%e6%b0%8f%e7%bd%ae%e6%8d%a2%e5%8e%9f%e5%88%99lsp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>里氏置换原则（Liskov Substitution Principle，简称 LSP）：凡是使用基类的地方都必须能透明地使用子类。</p></blockquote><p>用人话说就是：用子类替换父类不会改变原有逻辑。众所周知，面向对象有三大基本原则：封装、继承和多态。子类本来就继承了父类，用到父类的地方替换成子类肯定没问题啊，这个原则不是废话吗，不一定！因为子类有自己的特色，也就是多态，如果这个特色太特色的话，就不适合了。</p><p>比如，“我用电脑工作和游戏”，改成“我用苹果电脑工作，用联想电脑打游戏”，没问题！</p><p>但是如果“我开车上班，坐车下班”，改成“我开玩具车上班，坐遥控车下班”，这个可能吗？</p><p>但是，玩具车和遥控车也是“车”的子类啊，它俩也是车啊。</p><p>那么这个问题出在哪里呢？明明所有的定义都是 OK 的。这是因为<strong>子类太特色了</strong>。</p><p>我们定义的<strong>车</strong>，其出发点是“能跑”，也就是说，只要能跑的都是“车”，都是它的子类，所以，玩具车和遥控车都能跑，也都是车的子类。但是，车都能载人吗？猛一看，都能！仔细一想，玩具车不能！所以，我们上述 Demo 中用到的是车的“载人”功能，而不是车的“能跑”功能，所以，玩具车就不合适了。</p><p>那么，怎么改呢？有如下两种方法：</p><ul><li>提取一个可载人的接口 <code>interface IManned</code>，明确表示哪些车可以载人；</li><li>提取一个二级父类 <code>class MannedCar</code>，表示该类车可以载人。</li></ul><p>公共点就是：<strong>把“可载人”这个点明确出来</strong>。</p><p>所以，里氏置换更简洁的说法就是：<strong>子类可以有自己的特色，但是不能太反常，如果子类的特色跟父类差太多，那么就应该细化父类或者剥离接口</strong>。</p><blockquote><p>可以看到，里氏置换原则就是对继承的校验，不恰当的继承关系就不满足里氏置换原则，所以，如果我们无法确定某两个类之间是否应该用继承关系时，就可以套用里氏置换原则来校验下。</p></blockquote><h2 class=heading-element id=依赖倒置原则dip><span>3 依赖倒置原则（DIP）</span>\n<a href=#%e4%be%9d%e8%b5%96%e5%80%92%e7%bd%ae%e5%8e%9f%e5%88%99dip class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>依赖倒置原则（Dipendence Inversion Principle，简称 DIP）：面向接口编程或面向抽象编程。</p></blockquote><p>依赖倒置的官方定义：高层不应该依赖底层，两者都应该依赖抽象；抽象不应该依赖细节，细节应该依赖抽象。其实狭义的说就是：面向接口编程，广义的说就是：面向抽象编程。也就是说，我们在使用类的时候，优先考虑使用抽象类或接口。具体一点就是：成员变量、函数参数和返回值都尽量定义成接口。</p><p>为什么要这么干呢？这么干有什么好处呢？</p><p>我们知道，接口都是抽象的，抽象的就是不确定的，不确定的就是可变的。而我们的大部分代码都是“非一次性的”，也都是需要改变的，所以，接口正合适。</p><p>换句话说，<strong>接口就是具有某种功能的某种东西</strong>，是什么我不管，只要具有这种功能就行，而我们需要的，也就是具有这种功能的东西。</p><p>比如，我需要给手机充个电，我需要的是一个“能充电的东西”，而你却对外说：“我需要个充电宝！”如果有人没有充电宝，只有电源呢，他就不认你了。在这里，你把我需要的东西<strong>具象化</strong>了，也就是把范围缩小了，范围越小越精确，就越不容易改变，这明显是不对的。</p><p>再比如，现在我要提供一个音乐播放器，我直接使用移动端的 <code>MediaPlayer</code>，很容易就写出了如下代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>MediaPlayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>path</span><span class=p>)</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>stop</span><span class=p>(){}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>pause</span><span class=p>(){}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>resume</span><span class=p>(){}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>三分钟就写完了，使用方直接调用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>User</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>MediaPlayer</span><span class=w> </span><span class=n>mediaPlayer</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  \n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>mediaplayer</span><span class=p>.</span><span class=na>play</span><span class=p>(</span><span class=s>&#34;xxx&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>完事之后某一天，主管又问：“咱们的播放器不好用，能用那个开源的吗？”</p><p>当然可以，于是就去改，但是发现，要改的地方太多了，我不但要改<code>MedidPlayer</code>这个类，甚至调用我播放器的人也需要改他的<code>User</code>类，我在别人眼里的段位又低了！</p><p>这时候就应该反思了，其实<code>User</code>这个类，不在乎你的播放器是怎么写的，它只关心能不能播放、停止、暂停、恢复，说白了，它要的是一个<strong>具有这种功能的某种东西</strong>，而不是具有这种功能的这种东西。</p><p>好，上接口！</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>interface</span> <span class=nc>IPlayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>path</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>stop</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>pause</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>resume</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p><code>User</code>使用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>User</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>IPlayer</span><span class=w> </span><span class=n>player</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  \n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>player</span><span class=p>.</span><span class=na>play</span><span class=p>(</span><span class=s>&#34;xxx&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>此时<code>User</code>只依赖于<code>IPlayer</code>，而不依赖具体的实现。不管你是啥，只要具有播放器的功能就行，后面不管你怎么改变<code>IPlayer</code>的实现，<code>User</code>都不需要改变。</p><p>所以，我们可以看到面向接口的好处：<strong>低耦合，易拓展</strong>。因为接口是抽象的，依赖接口就是依赖抽象，不依赖细节，所以实现的细节怎么改都对我无影响，所以耦合就低；又因为接口是顶层的，就更容易拓展下层的细节实现。</p><h2 class=heading-element id=接口隔离原则isp><span>4 接口隔离原则（ISP）</span>\n<a href=#%e6%8e%a5%e5%8f%a3%e9%9a%94%e7%a6%bb%e5%8e%9f%e5%88%99isp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>接口隔离原则（Interface Segregation Principle，简称 ISP）：接口尽量小，尽量单一，说白了就是接口粒度要细。</p></blockquote><p>接口隔离要求接口的功能要单一，这听起来怎么就是单一职责原则呢，它们有区别吗？</p><p>有！</p><p>单一职责原则针对的是“职责”，说白了就是功能块，一个职责可能有多个功能；接口隔离原则针对的是“功能”，也就是一个接口只负责一个“功能”，比如，老师的职责是讲课和改作业，如果用单一职责原则就是一个接口里面包含了讲课和改作业这两个方法；如果用接口隔离原则就是两个接口，一个讲课的接口和一个改作业的接口。换句话说就是：接口隔离原则是单一职责的单一职责原则。</p><p>举个例子，还是音乐播放器，我们定义了一个接口：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>interface</span> <span class=nc>IPlayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//开始</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>url</span><span class=p>);</span><span class=w> \n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//停止</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>stop</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//暂停</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>pause</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//复原</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>resume</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//获取歌曲时长</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=nf>getSongTime</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>这正是单一职责原则，因为这个接口只定义了音乐播放相关的东西，但是却不满足接口隔离原则，因为一个接口干了多件事，假如我们现在有个歌曲展示器<code>SongDisplayer</code>，只需要展示歌曲的时长，也就是只需要<code>getSongTime()</code>这个函数，我们让它直接实现<code>IPlayer</code>接口吗？肯定不行！因为里面的其他函数是不需要的，也不应该有的。这就要用到接口隔离原则了，我们直接将<code>IPlayer</code>接口再进行拆分，如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=c1>//音乐播放器就仅限于对播放的控制</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>interface</span> <span class=nc>IPlayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//开始</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>path</span><span class=p>);</span><span class=w> \n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//停止</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>stop</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//暂停</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>pause</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//复原</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>resume</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>...</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//歌曲展示器就仅限于对歌曲信息的展示</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>interface</span> <span class=nc>ISongDisplayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//获取歌曲时长</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=nf>getSongTime</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//获取歌曲名字</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=nf>getSongName</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//其他</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>...</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>这样拆分后，我们的播放器就同时实现上面两个接口，而歌曲展示器只需要实现<code>ISongDisplayer</code>即可。</p><p>但是，我们根本不知道将来会出什么样的需求，怎么能提前预测并做好接口隔离呢？</p><p>不需要提前做！因为接口隔离更多时候是个后置操作，说白了，更多时候是在问题发生的时候再去拆接口，所以是个后置操作，就像我们上面的修改，也没费多大劲，顶多就是多写一个接口，复制一部分代码，修改几个实现关系而已，根本没动业务上的代码，所以不必纠结，大多时候我们保证单一职责即可。</p><blockquote><p>总之一句话：接口要尽量小，尽量单一。</p></blockquote><h2 class=heading-element id=最少知识原则lkp><span>5 最少知识原则（LKP）</span>\n<a href=#%e6%9c%80%e5%b0%91%e7%9f%a5%e8%af%86%e5%8e%9f%e5%88%99lkp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>最少知识原则（Least Knowledge Principle，简称 LKP），也叫迪米特法则（LOD）：一个对象应该对其他对象有最少的了解，说白了就是，只关联自己需要的。</p></blockquote><p>就像语文老师，只关心语文成绩即可，非要关心数学，怪不得头发都掉光了。</p><p>废话不说，我们来看个 Demo，又是那个音乐播放器，原本应该是这样的：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>interface</span> <span class=nc>IPlayer</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>path</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>....</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>User</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>....</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>void</span><span class=w> </span><span class=nf>play</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>player</span><span class=p>.</span><span class=na>play</span><span class=p>(</span><span class=n>song</span><span class=p>.</span><span class=na>path</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>....</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Song</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>path</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>....</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>可以看到，播放时，只需要一个<code>path</code>即可。但是有人聪明，我直接把<code>Song</code>给他传过去不行吗？这样后面万一需要<code>Song</code>里面的其他变量，比如<code>name</code>啥的，我也不用改函数了，好有道理啊！</p><p>突然有一天，要求可以播放用户通过聊天发送过来的歌曲，这个歌曲没有名字，点击就下载到本地，只有一个路径了，这个时候你怎么办呢？你当然可以用这个路径去创建一个<code>Song</code>然后丢进去，但是这样绕了一圈不就增加了复杂度吗？再万一将来某天要修改<code>Song</code>这个类呢，你的播放器也跟着修改了。</p><p>其实，播放器需要的只是一个播放的路径，至于其他的，它根本不关心。如果真的需要，你再提供，但也只需要提供它需要的，不要有任何附加内容。否则，一旦那些附加内容变化了，也间接导致播放器自身的变化，这是不应该的。</p><blockquote><p>我们应该只关联自己直接用到的，而不关联那些不需要的，如此一来，那些发生在我们关联范围外的事，就不会引起我们的任何改变，这样就大大提升了代码的健壮性。</p></blockquote><h2 class=heading-element id=开放闭合原则ocp><span>6 开放闭合原则（OCP）</span>\n<a href=#%e5%bc%80%e6%94%be%e9%97%ad%e5%90%88%e5%8e%9f%e5%88%99ocp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>开放闭合原则（Open Close Principle，简称 OCP）：一个类应该对扩展开放，对修改关闭。换句话说就是：应该多扩展代码，少修改代码。</p></blockquote><p>开闭原则是<strong>最理想</strong>的原则，是所有设计模式的最终目标，基本不可能实现。它要求我们的任何改动都不修改老代码，而只添加新代码，这样就不会对老逻辑有任何影响，从而使得代码更加安全。</p><p>有人说，我们的代码不是一次性的，肯定是要修改的，怎么可能不修改呢？没错，肯定是需要修改的，但是合理运用开闭原则可以做到少修改，改得越少风险越小。</p><p>举个例子，比如我在面试百度的时候，要手写一个计算器，只需要支持简单的加减法就行，如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>Calculator</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>calculate</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>left</span><span class=p>,</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>right</span><span class=p>,</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>option</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>//加法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=s>&#34;+&#34;</span><span class=p>.</span><span class=na>equals</span><span class=p>(</span><span class=n>option</span><span class=p>))</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>left</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>right</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>//减法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=s>&#34;-&#34;</span><span class=p>.</span><span class=na>equals</span><span class=p>(</span><span class=n>option</span><span class=p>))</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>left</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>right</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>throw</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>IllegalArgumentException</span><span class=p>(</span><span class=s>&#34;不支持的运算&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>代码简单粗暴，直接使用<code>if</code>判断就完事。但是，如果将来要支持其他运算呢？嗯，继续添加<code>if</code>分支？可以，但是不太好，谁能保证你下次添加别的运算符的时候，不会手残改了别的运算呢？那么，我们能不能将新的运算不放在这个类里面呢？可以！</p><p>我们可以将每个运算定义成一个单独的类型，后面新增其他运算，只需要新加一个类就可以了。我们知道，基本的数学运算都是需要两个操作数和一个运算符的，我们可以定义一个公有的父类，来保存操作数和运算符。</p><p>定义公共父类：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>abstract</span><span class=w> </span><span class=n>Calculator</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 左操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>protected</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>leftOpt</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 右操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>protected</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>rightOpt</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 操作符</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>protected</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>operator</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 设置左操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setLeftOpt</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>leftOpt</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>this</span><span class=p>.</span><span class=na>leftOpt</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>leftOpt</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 设置右操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setRightOpt</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>rightOpt</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>this</span><span class=p>.</span><span class=na>rightOpt</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>rightOpt</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 计算，提供一个模板函数，供子类实现</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>protected</span><span class=w> </span><span class=kd>abstract</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>calculate</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 对外公开的获取结果的 Api</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getResult</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>// 计算结果</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>String</span><span class=w> </span><span class=n>result</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>calculate</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>// 清空操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>clear</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>// 返回结果</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>retrun</span><span class=w> </span><span class=n>result</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//清空操作数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>clear</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>leftOpt</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>rightOpt</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>加法器：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>PlusCalculator</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>Calculator</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>OPERATOR</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;+&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=nf>PlusCalculator</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=kd>super</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>this</span><span class=p>.</span><span class=na>operator</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>OPERATOR</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>// 加法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nd>@Override</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>calculate</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>return</span><span class=w> </span><span class=n>String</span><span class=p>.</span><span class=na>valueOf</span><span class=p>(</span><span class=n>Integer</span><span class=p>.</span><span class=na>parseInt</span><span class=p>(</span><span class=n>leftOpt</span><span class=p>)</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>Integer</span><span class=p>.</span><span class=na>parseInt</span><span class=p>(</span><span class=n>rightOpt</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>减法器：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-typescript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-typescript data-lang=typescript><span class=line><span class=cl><span class=kr>public</span> <span class=kr>class</span> <span class=nx>SubCalculator</span> <span class=kr>extends</span> <span class=nx>Calculator</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kr>public</span> <span class=kr>static</span> <span class=nb>String</span> <span class=nx>OPERATOR</span> <span class=o>=</span> <span class=s2>&#34;-&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kr>public</span> <span class=nx>SubCalculator() {</span>\n</span></span><span class=line><span class=cl>        <span class=kr>super</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>this</span><span class=p>.</span><span class=nx>operator</span> <span class=o>=</span> <span class=nx>OPERATOR</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>// 减法\n</span></span></span><span class=line><span class=cl>    <span class=kd>@Override</span>\n</span></span><span class=line><span class=cl>    <span class=kr>public</span> <span class=nb>String</span> <span class=nx>calculate() {</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=nb>String</span><span class=p>.</span><span class=nx>valueOf</span><span class=p>(</span><span class=nx>Integer</span><span class=p>.</span><span class=nb>parseInt</span><span class=p>(</span><span class=nx>leftOpt</span><span class=p>)</span> <span class=o>-</span> <span class=nx>Integer</span><span class=p>.</span><span class=nb>parseInt</span><span class=p>(</span><span class=nx>rightOpt</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>这里我们为不同的运算符提供了不同的实现类，每个类只负责自己的计算逻辑，如果将来有其他新运算加入，我们直接再添加一个新的类即可，完全不需要修改其他类的代码。</p><p>而且我们可以看到，开闭原则中用到了单一职责（每个类只做自己的运算），还用到了最少知识（每个类只关心自己的操作数和运算符），其实就是一句话：<strong>越单纯，越干净，越好！</strong> 因为这样自己的责任就越少，就越不容易被牵连，也就越稳定，越安全。</p><h2 class=heading-element id=设计模式><span>7 设计模式</span>\n<a href=#%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>该小节非原文内容，仅为个人补充。</p></blockquote><p>在掘金上有一个不错的专栏<a href=https://juejin.cn/column/7069912176978296839 target=_blank rel=\"external nofollow noopener noreferrer\">「手撕设计模式」<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，里面详细介绍了 23 种设计模式中的好几种，可以作为进一步学习的参考。</p><h2 class=heading-element id=总结><span>8 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本节我们从宏观层面讲解了六大设计原则，这是 23 种设计模式的祖宗，或者说：<strong>设计模式就是这六大设计原则的具体实现，六大设计原则就是设计模式的抽象</strong>。</p><p>对于设计模式，我认为正确的学习顺序是：</p><ol><li>学习设计原则，这是对设计思想的宏观认识。</li><li>学习设计模式，这是对设计思想的具体认识。</li><li>再学习设计原则，这是对设计思想的自我抽象。</li></ol><p>这就像我们看书的时候，先看目录，对整本书有个宏观的认识；然后仔细看每一章节，对每个模块进行具体了解；最后，也是最难的一点，就是：用自己的语言对整本书进行整体概括，然后尝试列出目录，这是对整本书的自我升华，或者叫自我抽象，这样，我们才能读到书的精髓。学习设计模式亦是如此，我们切记不要死记硬背，不要生搬硬套，不刻意设计的设计才是最好的设计。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-06-09 02:57:55\">更新于 2024-06-09&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/f51dd85a78e6d7e6559404c93264cd1d143aaa36 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 发布文章“架构之基：从根儿上了解设计原则” (close #89)&#10&#10Commit: f51dd85a78e6d7e6559404c93264cd1d143aaa36 [f51dd85]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-06-09 02:57:55\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>f51dd85</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/design-principles/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/design-principles.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/design-principles.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9E%B6%E6%9E%84%E4%B9%8B%E5%9F%BA%EF%BC%9A%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E4%BA%86%E8%A7%A3%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9E%B6%E6%9E%84%E4%B9%8B%E5%9F%BA%EF%BC%9A%E4%BB%8E%E6%A0%B9%E5%84%BF%E4%B8%8A%E4%BA%86%E8%A7%A3%E8%AE%BE%E8%AE%A1%E5%8E%9F%E5%88%99%7c%0A%7cURL%7chttps://lruihao.cn/posts/design-principles/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/design-principles.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/design-principles/ data-title=架构之基：从根儿上了解设计原则 data-hashtags=\"Design Patterns,Java\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/design-principles/ data-hashtag=\"Design Patterns\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/design-principles/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/design-principles/ data-title=架构之基：从根儿上了解设计原则 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/design-principles/ data-title=架构之基：从根儿上了解设计原则><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/design-patterns/ class=post-tag title=\"标签 - Design Patterns\">Design Patterns</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/svg-dark-light/ class=post-nav-item rel=prev title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>怎么生成暗黑模式和明亮模式的 SVG 图片？</a><a href=/posts/aside-toggle-drag/ class=post-nav-item rel=next title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\">如何实现 VSCode 编辑器窗口边界拖拽类似功能<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#单一职责原则srp>单一职责原则（SRP）</a></li><li><a href=#里氏置换原则lsp>里氏置换原则（LSP）</a></li><li><a href=#依赖倒置原则dip>依赖倒置原则（DIP）</a></li><li><a href=#接口隔离原则isp>接口隔离原则（ISP）</a></li><li><a href=#最少知识原则lkp>最少知识原则（LKP）</a></li><li><a href=#开放闭合原则ocp>开放闭合原则（OCP）</a></li><li><a href=#设计模式>设计模式</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/151a394dfe55d6be346d8fe3637a8fc0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/151a394dfe55d6be346d8fe3637a8fc0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/design-principles/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/design-principles/index.md",
    "content": "# 架构之基：从根儿上了解设计原则\n\n\n本文节选自 **奔波儿灞取经** 的《[程序员的必修课](https://juejin.cn/book/7196580339181944872)》，文中的“我”指原作者奔波儿灞取经。\n\n---\n\n> 设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\n\n对于大多数开发者来说，代码都是需要维护的，而不是写一遍就放起来不管了。既然需要维护，就要不断地读读改改，那就不是一次性的，那么怎么让他“读读改改”起来方便些呢？嗯，**设计模式**！\n\n设计模式切记不要死记硬背，不要生搬硬套，否则不如不学。而且不要一上来就说：要用 xxx 模式！需求还没出，你猴急个锤子，难不成是你刚学会这个模式，想拿来练练手，就想把它硬塞到需求里去吗？\n\n那么，如果需求已经出了呢？也别急，先想想，想好了怎么写，选择哪种设计模式；如果没有合适的，套不进去，那就别套了，只要方便维护，就是好的设计，不一定非要去套现有的设计模式。\n\n当然，要想正确地使用设计模式，还是先得透彻地了解了它们。因此，接下来我们就先来了解下设计模式的“祖宗”：**六大设计原则**。\n\n## 单一职责原则（SRP）\n\n> 单一职责原则（Single Responsibility Principle，简称 SRP）：一个类只干一件事。\n\n可以看到，单一职责的核心就是：**只做一件事**。不过，关键点就是这个“事”的范围不好定义。\n\n比如，写一个音乐播放器，一个类负责播放，一个类负责停止，这也满足单一职责。但是，这个职责太小了。那么，如果把播放、停止、甚至下载歌曲，都塞进一个类里面呢，那就太大了。所以，职责的范围很重要，只要确定好了这个范围，那这个原则就已经实现了 90%。\n\n那么，这个范围怎么确定呢？我们可以这么理解：**一些相关的、关联性比较强的，就把它们当作同一种职责，放到一个单独的类（文件）里**。\n\n那么，怎么确定是否相关呢？看需求！这个只能看需求，没有别的方法。如果需求没有明确，那么我们就要联系现实来决定，毕竟程序的本质就是模拟现实。\n\n比如，我在 2015 年实习的时候，IBM 公司有个考勤系统，需要添加一个指纹打卡功能。需求是这样的：`部门主管以下的员工可以用指纹来打卡`。\n\n那么，这个“打卡功能”是属于员工的，是属于打卡器的？换句话说，这个打卡的函数，是写在员工类里面呢，还是写在打卡器类里面呢？需求没说啊。\n\n那么，我们就联系现实来决定。\n\n在现实生活中，应该是一个打卡器放在门口，员工向打卡器录入指纹，来进行打卡，说白了就是：“员工使用打卡器来打卡”，也就是：“员工使用打卡器”“打卡器打卡”，所以，打卡功能是打卡器的，员工只是使用它的这个功能。所以，这个函数应该定义在打卡器里面，员工调用打卡器的这个函数来进行打卡。\n\n如果有人不爽，非要定义在员工类里面呢？你可以这么干。不过，后来需求改变成：非员工，比如保洁人员，也需要每天打卡签到。这时候，那位非常有个性有特色的人，估计脑瓜子嗡嗡的了吧。\n\n**单一职责不仅可以用在类（文件）里面，也可以用在函数里面。**\n\n比如，现在需要写一个校验函数，校验用户的性别和年龄，必须是 18 岁及以上的男性才有资格，很简单的我们可以这么写：\n\n```java\npublic static boolean checkSexAndAge(boolean isMan, int age){\n    return isMan && age >= 18;\n}\n```\n\n使用：\n\n```java\nprivate void login(){\n    if(checkSexAndAge(false, 17)) {\n        tips(\"不是 18 岁以上的男性\")\n        return;\n    }\n}\n\n```\n\n这里有人有意见了，说这样写不太好，因为每个校验的地方都要自己弹出提示，这样就是很多重复的代码，所以提示这个逻辑应该放在`checkSexAndAge()`这个函数里面去，也就是下面这样：\n\n```java\npublic static boolean checkSexAndAge(boolean isMan, int age){\n    if(isMan && age >= 18) return true;\n    tips(\"不是 18 岁以上的男性\");\n    return false;\n}\n```\n\n这样简直美滋滋，任何时候只要直接调`checkSexAndAge()`就行，判断了还自带提示。这在目前当然是完美的，虽然方法名不太合适。\n\n如果有一天，我们的需求变成了：年龄不满足就开启未成年人保护模式，不需要弹出提示。我们直接删除`tips()`这个调用吗？这样不太好，如果别的地方也调用了这个方法，并且需要提示，就完了。所以我们应该有两个方法：方法 A 只检测，方法 B 使用 A 的检测结果并弹出提示。代码如下所示：\n\n```java\n// 判断加提示\npublic static boolean checkAndTips(boolean isMan, int age) {\n    if(!checkSexAndAge(isMan, age)) {\n        tips(\"不是 18 岁以上的男性\");\n        return false;\n    }\n    return true;\n}\n\n// 新方法，只做逻辑判断\npublic static boolean checkSexAndAge(boolean isMan, int age){\n    return isMan && age >= 18;\n}\n```\n\n这里我们只抽离了一个方法，但是却反映出了单一职责的好处：职责越单一，因为修改而引起的问题就越少。换句话说就是：**需求的粒度跟单一职责的优势成正比，需求越详细，越能看出单一职责的好处**。所以我们要尽量避免大方法、大类、大模块，因为一个类越大，涉及的东西就越多，用到它的地方就越多，那么这个类就不能轻易修改，因为一旦修改，涉及的地方就越多，就越危险，所以我们一定要尽量避免。其实 MVC 就是一个宏观的、大的单一职责思想。\n\n> 单一职责不仅适用于类和文件，还适用于函数、模块等，这是一种思想，一定要掌握。\n\n## 里氏置换原则（LSP）\n\n> 里氏置换原则（Liskov Substitution Principle，简称 LSP）：凡是使用基类的地方都必须能透明地使用子类。\n\n用人话说就是：用子类替换父类不会改变原有逻辑。众所周知，面向对象有三大基本原则：封装、继承和多态。子类本来就继承了父类，用到父类的地方替换成子类肯定没问题啊，这个原则不是废话吗，不一定！因为子类有自己的特色，也就是多态，如果这个特色太特色的话，就不适合了。\n\n比如，“我用电脑工作和游戏”，改成“我用苹果电脑工作，用联想电脑打游戏”，没问题！\n\n但是如果“我开车上班，坐车下班”，改成“我开玩具车上班，坐遥控车下班”，这个可能吗？\n\n但是，玩具车和遥控车也是“车”的子类啊，它俩也是车啊。\n\n那么这个问题出在哪里呢？明明所有的定义都是 OK 的。这是因为**子类太特色了**。\n\n我们定义的**车**，其出发点是“能跑”，也就是说，只要能跑的都是“车”，都是它的子类，所以，玩具车和遥控车都能跑，也都是车的子类。但是，车都能载人吗？猛一看，都能！仔细一想，玩具车不能！所以，我们上述 Demo 中用到的是车的“载人”功能，而不是车的“能跑”功能，所以，玩具车就不合适了。\n\n那么，怎么改呢？有如下两种方法：\n\n- 提取一个可载人的接口 `interface IManned`，明确表示哪些车可以载人；\n- 提取一个二级父类 `class MannedCar`，表示该类车可以载人。\n\n公共点就是：**把“可载人”这个点明确出来**。\n\n所以，里氏置换更简洁的说法就是：**子类可以有自己的特色，但是不能太反常，如果子类的特色跟父类差太多，那么就应该细化父类或者剥离接口**。\n\n> 可以看到，里氏置换原则就是对继承的校验，不恰当的继承关系就不满足里氏置换原则，所以，如果我们无法确定某两个类之间是否应该用继承关系时，就可以套用里氏置换原则来校验下。\n\n## 依赖倒置原则（DIP）\n\n> 依赖倒置原则（Dipendence Inversion Principle，简称 DIP）：面向接口编程或面向抽象编程。\n\n依赖倒置的官方定义：高层不应该依赖底层，两者都应该依赖抽象；抽象不应该依赖细节，细节应该依赖抽象。其实狭义的说就是：面向接口编程，广义的说就是：面向抽象编程。也就是说，我们在使用类的时候，优先考虑使用抽象类或接口。具体一点就是：成员变量、函数参数和返回值都尽量定义成接口。\n\n为什么要这么干呢？这么干有什么好处呢？\n\n我们知道，接口都是抽象的，抽象的就是不确定的，不确定的就是可变的。而我们的大部分代码都是“非一次性的”，也都是需要改变的，所以，接口正合适。\n\n换句话说，**接口就是具有某种功能的某种东西**，是什么我不管，只要具有这种功能就行，而我们需要的，也就是具有这种功能的东西。\n\n比如，我需要给手机充个电，我需要的是一个“能充电的东西”，而你却对外说：“我需要个充电宝！”如果有人没有充电宝，只有电源呢，他就不认你了。在这里，你把我需要的东西**具象化**了，也就是把范围缩小了，范围越小越精确，就越不容易改变，这明显是不对的。\n\n再比如，现在我要提供一个音乐播放器，我直接使用移动端的 `MediaPlayer`，很容易就写出了如下代码：\n\n```java\nclass MediaPlayer {\n    public void play(String path) {}\n    public void stop(){}\n    public void pause(){}\n    public void resume(){}\n}\n```\n\n三分钟就写完了，使用方直接调用：\n\n```java\nclass User {\n    private MediaPlayer mediaPlayer;\n  \n    public void play(){\n        mediaplayer.play(\"xxx\");\n    }\n}\n```\n\n完事之后某一天，主管又问：“咱们的播放器不好用，能用那个开源的吗？”\n\n当然可以，于是就去改，但是发现，要改的地方太多了，我不但要改`MedidPlayer`这个类，甚至调用我播放器的人也需要改他的`User`类，我在别人眼里的段位又低了！\n\n这时候就应该反思了，其实`User`这个类，不在乎你的播放器是怎么写的，它只关心能不能播放、停止、暂停、恢复，说白了，它要的是一个**具有这种功能的某种东西**，而不是具有这种功能的这种东西。\n\n好，上接口！\n\n```java\ninterface IPlayer {\n    void play(String path);\n    void stop();\n    void pause();\n    void resume();\n}\n```\n\n`User`使用：\n\n```java\nclass User {\n    private IPlayer player;\n  \n    public void play(){\n        player.play(\"xxx\");\n    }\n}\n```\n\n此时`User`只依赖于`IPlayer`，而不依赖具体的实现。不管你是啥，只要具有播放器的功能就行，后面不管你怎么改变`IPlayer`的实现，`User`都不需要改变。\n\n所以，我们可以看到面向接口的好处：**低耦合，易拓展**。因为接口是抽象的，依赖接口就是依赖抽象，不依赖细节，所以实现的细节怎么改都对我无影响，所以耦合就低；又因为接口是顶层的，就更容易拓展下层的细节实现。\n\n## 接口隔离原则（ISP）\n\n> 接口隔离原则（Interface Segregation Principle，简称 ISP）：接口尽量小，尽量单一，说白了就是接口粒度要细。\n\n接口隔离要求接口的功能要单一，这听起来怎么就是单一职责原则呢，它们有区别吗？\n\n有！\n\n单一职责原则针对的是“职责”，说白了就是功能块，一个职责可能有多个功能；接口隔离原则针对的是“功能”，也就是一个接口只负责一个“功能”，比如，老师的职责是讲课和改作业，如果用单一职责原则就是一个接口里面包含了讲课和改作业这两个方法；如果用接口隔离原则就是两个接口，一个讲课的接口和一个改作业的接口。换句话说就是：接口隔离原则是单一职责的单一职责原则。\n\n举个例子，还是音乐播放器，我们定义了一个接口：\n\n```java\ninterface IPlayer {\n    //开始\n    void play(String url); \n    //停止\n    void stop();\n    //暂停\n    void pause();\n    //复原\n    void resume();\n    //获取歌曲时长\n    String getSongTime();\n}\n```\n\n这正是单一职责原则，因为这个接口只定义了音乐播放相关的东西，但是却不满足接口隔离原则，因为一个接口干了多件事，假如我们现在有个歌曲展示器`SongDisplayer`，只需要展示歌曲的时长，也就是只需要`getSongTime()`这个函数，我们让它直接实现`IPlayer`接口吗？肯定不行！因为里面的其他函数是不需要的，也不应该有的。这就要用到接口隔离原则了，我们直接将`IPlayer`接口再进行拆分，如下：\n\n```java\n//音乐播放器就仅限于对播放的控制\ninterface IPlayer {\n    //开始\n    void play(String path); \n    //停止\n    void stop();\n    //暂停\n    void pause();\n    //复原\n    void resume();\n    ...\n}\n\n//歌曲展示器就仅限于对歌曲信息的展示\ninterface ISongDisplayer {\n    //获取歌曲时长\n    String getSongTime();\n    //获取歌曲名字\n    String getSongName();\n    //其他\n    ...\n}\n```\n\n这样拆分后，我们的播放器就同时实现上面两个接口，而歌曲展示器只需要实现`ISongDisplayer`即可。\n\n但是，我们根本不知道将来会出什么样的需求，怎么能提前预测并做好接口隔离呢？\n\n不需要提前做！因为接口隔离更多时候是个后置操作，说白了，更多时候是在问题发生的时候再去拆接口，所以是个后置操作，就像我们上面的修改，也没费多大劲，顶多就是多写一个接口，复制一部分代码，修改几个实现关系而已，根本没动业务上的代码，所以不必纠结，大多时候我们保证单一职责即可。\n\n> 总之一句话：接口要尽量小，尽量单一。\n\n## 最少知识原则（LKP）\n\n> 最少知识原则（Least Knowledge Principle，简称 LKP），也叫迪米特法则（LOD）：一个对象应该对其他对象有最少的了解，说白了就是，只关联自己需要的。\n\n就像语文老师，只关心语文成绩即可，非要关心数学，怪不得头发都掉光了。\n\n废话不说，我们来看个 Demo，又是那个音乐播放器，原本应该是这样的：\n\n```java\ninterface IPlayer {\n    void play(String path)\n    ....\n}\n\nclass User {\n    ....\n    void play(){\n        player.play(song.path);\n    }\n    ....\n}\n\nclass Song {\n    public String path;\n    public String name;\n    ....\n}\n```\n\n可以看到，播放时，只需要一个`path`即可。但是有人聪明，我直接把`Song`给他传过去不行吗？这样后面万一需要`Song`里面的其他变量，比如`name`啥的，我也不用改函数了，好有道理啊！\n\n突然有一天，要求可以播放用户通过聊天发送过来的歌曲，这个歌曲没有名字，点击就下载到本地，只有一个路径了，这个时候你怎么办呢？你当然可以用这个路径去创建一个`Song`然后丢进去，但是这样绕了一圈不就增加了复杂度吗？再万一将来某天要修改`Song`这个类呢，你的播放器也跟着修改了。\n\n其实，播放器需要的只是一个播放的路径，至于其他的，它根本不关心。如果真的需要，你再提供，但也只需要提供它需要的，不要有任何附加内容。否则，一旦那些附加内容变化了，也间接导致播放器自身的变化，这是不应该的。\n\n> 我们应该只关联自己直接用到的，而不关联那些不需要的，如此一来，那些发生在我们关联范围外的事，就不会引起我们的任何改变，这样就大大提升了代码的健壮性。\n\n## 开放闭合原则（OCP）\n\n> 开放闭合原则（Open Close Principle，简称 OCP）：一个类应该对扩展开放，对修改关闭。换句话说就是：应该多扩展代码，少修改代码。\n\n开闭原则是**最理想**的原则，是所有设计模式的最终目标，基本不可能实现。它要求我们的任何改动都不修改老代码，而只添加新代码，这样就不会对老逻辑有任何影响，从而使得代码更加安全。\n\n有人说，我们的代码不是一次性的，肯定是要修改的，怎么可能不修改呢？没错，肯定是需要修改的，但是合理运用开闭原则可以做到少修改，改得越少风险越小。\n\n举个例子，比如我在面试百度的时候，要手写一个计算器，只需要支持简单的加减法就行，如下：\n\n```java\npublic class Calculator {\n    public static int calculate(int left, int right, String option) {\n        //加法\n        if(\"+\".equals(option)) return left + right;\n        //减法\n        if(\"-\".equals(option)) return left - right;\n        throw new IllegalArgumentException(\"不支持的运算\");\n    }\n}\n```\n\n代码简单粗暴，直接使用`if`判断就完事。但是，如果将来要支持其他运算呢？嗯，继续添加`if`分支？可以，但是不太好，谁能保证你下次添加别的运算符的时候，不会手残改了别的运算呢？那么，我们能不能将新的运算不放在这个类里面呢？可以！\n\n我们可以将每个运算定义成一个单独的类型，后面新增其他运算，只需要新加一个类就可以了。我们知道，基本的数学运算都是需要两个操作数和一个运算符的，我们可以定义一个公有的父类，来保存操作数和运算符。\n\n定义公共父类：\n\n```java\npublic abstract Calculator {\n    // 左操作数\n    protected String leftOpt;\n    // 右操作数\n    protected String rightOpt;\n    // 操作符\n    protected String operator;\n\n    // 设置左操作数\n    public void setLeftOpt(String leftOpt) {\n        this.leftOpt = leftOpt;\n    }\n\n    // 设置右操作数\n    public void setRightOpt(String rightOpt) {\n        this.rightOpt = rightOpt;\n    }\n\n    // 计算，提供一个模板函数，供子类实现\n    protected abstract int calculate();\n\n    // 对外公开的获取结果的 Api\n    public String getResult(){\n        // 计算结果\n        String result = calculate();\n        // 清空操作数\n        clear();\n        // 返回结果\n        retrun result;\n    }\n\n    //清空操作数\n    public void clear(){\n        leftOpt = null;\n        rightOpt = null;\n    }\n}\n```\n\n加法器：\n\n```java\npublic class PlusCalculator extends Calculator {\n\n    public static String OPERATOR = \"+\";\n\n    public PlusCalculator() {\n        super();\n        this.operator = OPERATOR;\n    }\n\n    // 加法\n    @Override\n    public String calculate() {\n        return String.valueOf(Integer.parseInt(leftOpt) + Integer.parseInt(rightOpt));\n    }\n}\n```\n\n减法器：\n\n```typescript\npublic class SubCalculator extends Calculator {\n    public static String OPERATOR = \"-\";\n\n    public SubCalculator() {\n        super();\n        this.operator = OPERATOR;\n    }\n\n    // 减法\n    @Override\n    public String calculate() {\n        return String.valueOf(Integer.parseInt(leftOpt) - Integer.parseInt(rightOpt));\n    }\n}\n```\n\n这里我们为不同的运算符提供了不同的实现类，每个类只负责自己的计算逻辑，如果将来有其他新运算加入，我们直接再添加一个新的类即可，完全不需要修改其他类的代码。\n\n而且我们可以看到，开闭原则中用到了单一职责（每个类只做自己的运算），还用到了最少知识（每个类只关心自己的操作数和运算符），其实就是一句话：**越单纯，越干净，越好！** 因为这样自己的责任就越少，就越不容易被牵连，也就越稳定，越安全。\n\n## 设计模式\n\n> 该小节非原文内容，仅为个人补充。\n\n在掘金上有一个不错的专栏[「手撕设计模式」](https://juejin.cn/column/7069912176978296839)，里面详细介绍了 23 种设计模式中的好几种，可以作为进一步学习的参考。\n\n## 总结\n\n本节我们从宏观层面讲解了六大设计原则，这是 23 种设计模式的祖宗，或者说：**设计模式就是这六大设计原则的具体实现，六大设计原则就是设计模式的抽象**。\n\n对于设计模式，我认为正确的学习顺序是：\n\n1. 学习设计原则，这是对设计思想的宏观认识。\n2. 学习设计模式，这是对设计思想的具体认识。\n3. 再学习设计原则，这是对设计思想的自我抽象。\n\n这就像我们看书的时候，先看目录，对整本书有个宏观的认识；然后仔细看每一章节，对每个模块进行具体了解；最后，也是最难的一点，就是：用自己的语言对整本书进行整体概括，然后尝试列出目录，这是对整本书的自我升华，或者叫自我抽象，这样，我们才能读到书的精髓。学习设计模式亦是如此，我们切记不要死记硬背，不要生搬硬套，不刻意设计的设计才是最好的设计。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/design-principles/  \n\n"
  },
  {
    "path": "posts/dev-rules/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Web 开发规则，代码规范 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 2 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\n\"><meta name=keywords content='CSS,Git,HTML,Java,JavaScript,PHP,Python,REST,Scss'><meta itemprop=name content=\"Web 开发规则，代码规范\"><meta itemprop=description content=\"1 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 2 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\"><meta itemprop=datePublished content=\"2019-08-15T18:30:31+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"2300\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,Git,HTML,java,javascript,PHP,Python,REST,Scss\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dev-rules/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Web 开发规则，代码规范\"><meta property=\"og:description\" content=\"1 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 2 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-08-15T18:30:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"article:tag\" content=\"java\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Web 开发规则，代码规范\"><meta name=twitter:description content=\"1 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 2 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dev-rules/ title=\"Web 开发规则，代码规范 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/phpform/ title=\"简单评论模块--php 表单练习\"><link rel=next type=text/html href=https://lruihao.cn/posts/netbeans/ title=\"NetBeans IDE 开发设置\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dev-rules/index.md title=\"Web 开发规则，代码规范 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Web 开发规则，代码规范\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dev-rules\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, Git, HTML, Java, JavaScript, PHP, Python, REST, Scss\",\"wordcount\":2300,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dev-rules\\/\",\"datePublished\":\"2019-08-15T18:30:31+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dev-rules/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web 开发规则，代码规范</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Web 开发规则，代码规范</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=post-meta-line><span title=\"发布于 2019-08-15 18:30:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-08-15>2019-08-15</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"2300 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Web 开发规则，代码规范\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#精神>精神</a></li><li><a href=#git>Git</a><ol><li><a href=#分支branch>分支（Branch）</a></li><li><a href=#commit>commit</a></li></ol></li><li><a href=#restful>Restful</a></li><li><a href=#命名>命名</a><ol><li><a href=#语意>语意</a></li><li><a href=#字母与分隔>字母与分隔</a></li></ol></li><li><a href=#通用>通用</a><ol><li><a href=#正确写法>正确写法</a></li></ol></li><li><a href=#错误写法>错误写法</a></li><li><a href=#html>HTML</a><ol><li><a href=#代码编写>代码编写</a></li></ol></li><li><a href=#css>CSS</a></li><li><a href=#javascript>JavaScript</a><ol><li><a href=#注释>注释</a><ol><li><a href=#全局变量-global>全局变量 (Global)</a></li><li><a href=#常量-constant>常量 (Constant)</a></li><li><a href=#函數方法-function-method>函數、方法 (Function, Method)</a></li></ol></li></ol></li><li><a href=#vue>Vue</a></li><li><a href=#java>Java</a></li><li><a href=#php>PHP</a><ol><li><a href=#前端参数取得>前端参数取得</a></li><li><a href=#输出到前台>输出到前台</a></li><li><a href=#注解>注解</a></li><li><a href=#成员变量-member>成员变量 (Member)</a></li><li><a href=#函数方法-function-method>函数、方法 (Function, Method)</a></li></ol></li><li><a href=#python>Python</a></li><li><a href=#database>Database</a><ol><li><a href=#sql-撰写>SQL 撰写</a></li></ol></li><li><a href=#统一用词>统一用词</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=精神><span>1 精神</span>\n<a href=#%e7%b2%be%e7%a5%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>绝不写死代码，硬编码</li><li>不留不要用的、垃圾代码</li></ul><h2 class=heading-element id=git><span>2 Git</span>\n<a href=#git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Master 的 BUG 必须最少且趋近于零，为最稳定的版本</li><li>每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能</li><li>禁止 Commit IDE 的 project data，e.g: .vscode</li><li>禁止上传垃圾代码</li></ul><blockquote><p>更多规则详见文档 <a href=/posts/commit-spec/>Commit 规范</a></p></blockquote><h3 class=heading-element id=分支branch><span>2.1 分支（Branch）</span>\n<a href=#%e5%88%86%e6%94%afbranch class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>命名规则：应以此分支主要目的命名（修复什么 BUG，新增特定功能）</li><li>合并后的分支应该删除</li></ul><h3 class=heading-element id=commit><span>2.2 commit</span>\n<a href=#commit class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>遵循一个功能一个 commit 的原则</li></ul><h2 class=heading-element id=restful><span>3 Restful</span>\n<a href=#restful class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><p>资源名词站在 API 的角度思考</p><ul><li><p>复数名词：可以复数笔数据，回传结果为 Array</p><p>举例：GET/users 取得多笔使用者资料</p><ul><li>刪除，放在复数名词內，让 Router 保持一致性</li><li>增加，放在复数名詞內，让 Router 保持一致性</li></ul></li><li><p>单数名词：仅取得单笔数据，必须指定 PK，两两一组，回传结果为 Object\n举例：GET/user/{accont} 取得单笔使用者资料，必须指定 PK</p></li></ul></li><li><p>URL 中一律不带 id 参数</p></li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>正确范例： calendar_manager/calendar/29\n</span></span><span class=line><span class=cl>错误范例： calendar_manager/calendar/29?id=29</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>更多规则详见文档 <a href=/posts/restful/>RESTful</a></p></blockquote><h2 class=heading-element id=命名><span>4 命名</span>\n<a href=#%e5%91%bd%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>命名应根据内容做有意义的命名，让后续维护人员可以顾名思义！</li><li>即使不会发生错误，代码英文大小写也需明确区分。</li></ul><h3 class=heading-element id=语意><span>4.1 语意</span>\n<a href=#%e8%af%ad%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:left>类型</th><th style=text-align:left>命名规则</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left>属性 (Attribute, Property)</td><td style=text-align:left>名词 user_name、userName</td><td style=text-align:left></td></tr><tr><td style=text-align:left>方法 (Method, Function)</td><td style=text-align:left>动词 + 名词 getUserName、get_user_name</td><td style=text-align:left>常見的动词有：get、set、update、delete、remove</td></tr></tbody></table></div><h3 class=heading-element id=字母与分隔><span>4.2 字母与分隔</span>\n<a href=#%e5%ad%97%e6%af%8d%e4%b8%8e%e5%88%86%e9%9a%94 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>语言</th><th>变量 (Variable, Parameter, Argument)</th><th>常量 (Constant)</th><th>面向对象 - 类名 (Class Name)</th><th>面向对象 - 成员 (mebmer)</th></tr></thead><tbody><tr><td>HTML</td><td>全部小写，不同单词以「-」分隔<br>e.g: user-id</td><td></td><td></td><td></td></tr><tr><td>CSS、SCSS</td><td>全部小写，不同单词以「-」分隔，CSS 变量以「&ndash;」开头，SCSS 变量以「」开头&lt;br />e.g: .user-id、--header-height、header-height</td><td></td><td></td><td></td></tr><tr><td>JavaScript</td><td>驼峰式命名法<br>首字小写，不同单字「首字以大写」分隔<br>e.g: userId</td><td>全部大写，不同单字以「_」分隔 MAX_COUNT</td><td>驼峰式命名法<br>首字大写，不同单字「首字以大写」分隔<br>一个文件放一个 Class, 文件名即为 Class Name<br>e.g: User</td><td>驼峰式命名法<br>公有 (public) : 首字小写，不同单词「首字以大写」分隔<br>e.g: name, getName<br>私有 (private): _公有命名规则<br>e.g: _name,_getName</td></tr><tr><td>Vue</td><td></td><td></td><td></td><td></td></tr><tr><td>Java</td><td></td><td></td><td></td><td></td></tr><tr><td>PHP</td><td>全部小写，不同单词以「_」分隔<br>e.g: user_id</td><td></td><td></td><td></td></tr><tr><td>Python</td><td></td><td></td><td></td><td></td></tr><tr><td>SQL</td><td>由使用者定义的：表名、字段名<br>全部小写，不同单词以「_」分隔</td><td>SQL 语法、函数全部大写<br>e.g: SELECT、INSERT INTO</td><td></td><td></td></tr></tbody></table></div><h2 class=heading-element id=通用><span>5 通用</span>\n<a href=#%e9%80%9a%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>代码编写</li><li><strong>每个函数应该使用块注释，注释应包含函数功能说明、参数说明</strong>。规则见：JSDoc、JavaDoc</li><li>不必要的代码不要写，也应禁止放到注释里面！</li><li>if-else 的 {} 严禁省略</li><li></li><li>代码规范、代码排版等可通过 eslint 等工具做统一处理</li></ul><h3 class=heading-element id=正确写法><span>5.1 正确写法</span>\n<a href=#%e6%ad%a3%e7%a1%ae%e5%86%99%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>public</span> <span class=kd>function</span> <span class=nx>test</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>a</span> <span class=o>===</span> <span class=nx>b</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=错误写法><span>6 错误写法</span>\n<a href=#%e9%94%99%e8%af%af%e5%86%99%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>public</span> <span class=kd>function</span> <span class=nx>test</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>a</span> <span class=o>===</span> <span class=nx>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li>代码排版<ul><li>任何代码应该以 2 个 space 为一个缩进做好排版、不可使用 tab</li></ul></li><li>函数 (Function, Methd)<ul><li>函数声明时需在函数上方加上函数注释，注释应包含函数说明、参数内容（参数类型、参数英文名称、参数说明）、返回值内容（返回值类型、返回值说明）</li></ul></li><li>类 (Class)<ul><li>一个类（Class）的声明只能存在一个文件</li><li>类（Class）的声明文件，文件名必须为类名</li></ul></li><li>其他<ul><li>连接本地任何其他资源（图片、文件、网站）皆使用相对路径，禁止使用绝对路径，非本地资源除外</li></ul></li></ul><h2 class=heading-element id=html><span>7 HTML</span>\n<a href=#html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=代码编写><span>7.1 代码编写</span>\n<a href=#%e4%bb%a3%e7%a0%81%e7%bc%96%e5%86%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>禁止在 HTML 使用 <code>&lt;style></code>、<code>&lt;script></code>，一律使用外部档案引用方式引用 CSS、JavaScript 文件</li><li>HTML 标签需成双成对，有头有尾</li><li>块级标签：<code>&lt;tag>&lt;/tag></code></li><li>单标签：<code>&lt;tag /></code></li><li>禁止使用已被 HTML 舍弃的旧标签、属性，如：</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=c>&lt;!-- html tag --&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>center</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>font</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>basefont</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>s</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>strike</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>u</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>listing</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>plaintext</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>xmp</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=c>&lt;!-- html attribute --&gt;</span>\n</span></span><span class=line><span class=cl>align\n</span></span><span class=line><span class=cl>bgcolor\n</span></span><span class=line><span class=cl>color</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=css><span>8 CSS</span>\n<a href=#css class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>CSS 的定义应该独立一个 CSS 文件，禁止使用 <code>&lt;style></code> 或 <code>style</code> 属性直接在 HTML 中定义样式。</p></blockquote><h2 class=heading-element id=javascript><span>9 JavaScript</span>\n<a href=#javascript class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>禁止使用 HTML 字串，一律使用 Dom 产生 HTML, e.g: <code>document.createDocumentFragment()</code></p></blockquote><h3 class=heading-element id=注释><span>9.1 注释</span>\n<a href=#%e6%b3%a8%e9%87%8a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>JavaScript 注释应该遵循 JSDoc 的标准撰写</p><h4 class=heading-element id=全局变量-global><span>9.1.1 全局变量 (Global)</span>\n<a href=#%e5%85%a8%e5%b1%80%e5%8f%98%e9%87%8f-global class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/* global ZT */</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=常量-constant><span>9.1.2 常量 (Constant)</span>\n<a href=#%e5%b8%b8%e9%87%8f-constant class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 常量說明\n</span></span></span><span class=line><span class=cl><span class=cm> * @type {常量类型}\n</span></span></span><span class=line><span class=cl><span class=cm> */</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>Example</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 请求地址\n</span></span></span><span class=line><span class=cl><span class=cm> * @type {String}\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>REQUEST_URL</span> <span class=o>=</span> <span class=s1>&#39;http://localhost:8080&#39;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=函數方法-function-method><span>9.1.3 函數、方法 (Function, Method)</span>\n<a href=#%e5%87%bd%e6%95%b8%e6%96%b9%e6%b3%95-function-method class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 函数用途说明\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {参数类型} 参数名称参数说明\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {参数类型} [选择性参数名称] 参数说明\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {参数类型} [选择性参数名称=参数预设值] 参数说明\n</span></span></span><span class=line><span class=cl><span class=cm> * @returns {返回值类型} 返回值说明\n</span></span></span><span class=line><span class=cl><span class=cm> */</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>Example</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 取得使用者\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {Int} userId 使用者 ID\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {Object} [options] 其他选项\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {String} [options.query=&#39;a&#39;] 查询关键词 默认为 &#39;a&#39;\n</span></span></span><span class=line><span class=cl><span class=cm> * @returns {Object} 使用者资料\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>getUser</span><span class=p>(</span><span class=nx>userId</span><span class=p>,</span> <span class=nx>options</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nx>user</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=vue><span>10 Vue</span>\n<a href=#vue class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li data-task=\" \" title=未完成><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i>待补充</li></ul><h2 class=heading-element id=java><span>11 Java</span>\n<a href=#java class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Java 注释应该遵循 JavaDoc 的标准撰写</p><ul><li data-task=\" \" title=未完成><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i>待补充</li></ul><h2 class=heading-element id=php><span>12 PHP</span>\n<a href=#php class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=前端参数取得><span>12.1 前端参数取得</span>\n<a href=#%e5%89%8d%e7%ab%af%e5%8f%82%e6%95%b0%e5%8f%96%e5%be%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>参数取得需通过 filter_input 函数取得，不得使用 _GET、_POST</p><h3 class=heading-element id=输出到前台><span>12.2 输出到前台</span>\n<a href=#%e8%be%93%e5%87%ba%e5%88%b0%e5%89%8d%e5%8f%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>参数命名必须为：全部小写，不同单字以「_」分隔</p><h3 class=heading-element id=注解><span>12.3 注解</span>\n<a href=#%e6%b3%a8%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>PHP 注解应该遵循 PHPDoc 的标准撰写</p><h3 class=heading-element id=成员变量-member><span>12.4 成员变量 (Member)</span>\n<a href=#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f-member class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>成员变量只的是 Class 内的成员变数，我们都会要求替成员变量增加注解说明。通常 Function 的变量除非太特别否则都不需要特别注解说明。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd> * 成员变量說明\n</span></span></span><span class=line><span class=cl><span class=sd> * @type {类型}\n</span></span></span><span class=line><span class=cl><span class=sd> */</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>Example</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd> * 使用者 ID\n</span></span></span><span class=line><span class=cl><span class=sd> * @type {String}\n</span></span></span><span class=line><span class=cl><span class=sd> */</span>\n</span></span><span class=line><span class=cl><span class=nv>$userId</span> <span class=o>=</span> <span class=s1>&#39;Hello&#39;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=函数方法-function-method><span>12.5 函数、方法 (Function, Method)</span>\n<a href=#%e5%87%bd%e6%95%b0%e6%96%b9%e6%b3%95-function-method class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd> * 函数用途说明\n</span></span></span><span class=line><span class=cl><span class=sd> * @param 参数型态 参数名称 参数说明\n</span></span></span><span class=line><span class=cl><span class=sd> * @option 参数选项类型 参数选项名称 参数选项说明\n</span></span></span><span class=line><span class=cl><span class=sd> * @uses 全局变量 全域变数说明\n</span></span></span><span class=line><span class=cl><span class=sd> * @returns 返回值类型 返回值说明\n</span></span></span><span class=line><span class=cl><span class=sd> */</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>Example</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=sd>/**\n</span></span></span><span class=line><span class=cl><span class=sd> * 取得使用者\n</span></span></span><span class=line><span class=cl><span class=sd> * @param int userId 使用者 ID\n</span></span></span><span class=line><span class=cl><span class=sd> * @param object options 其他选项\n</span></span></span><span class=line><span class=cl><span class=sd> * @option string options[&#39;query&#39;] 查询关键字\n</span></span></span><span class=line><span class=cl><span class=sd> * @uses $_POST[&#39;role_id&#39;] 从前端以 POST 取得角色 ID\n</span></span></span><span class=line><span class=cl><span class=sd> * @returns object 使用者资料\n</span></span></span><span class=line><span class=cl><span class=sd> */</span>\n</span></span><span class=line><span class=cl><span class=k>function</span> <span class=nf>getUser</span> <span class=p>(</span><span class=nv>$userId</span><span class=p>,</span> <span class=nv>$options</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// do something\n</span></span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nv>$user</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=python><span>13 Python</span>\n<a href=#python class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li data-task=\" \" title=未完成><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i>待补充</li></ul><h2 class=heading-element id=database><span>14 Database</span>\n<a href=#database class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>禁止使用 Table Join。</li><li>禁止使用 Oracle Trigger。</li><li>禁止将查询数据库的 SQL 放在循环中查询</li></ul><h3 class=heading-element id=sql-撰写><span>14.1 SQL 撰写</span>\n<a href=#sql-%e6%92%b0%e5%86%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>属于 SQL 语法使用大写（SELECT，WHERE，INSERT etc..）</li><li>属于使用者自己定义的使用小写（表名 table name，字段名 column name etc..）</li><li>表名、字段名前后需加上 `</li></ul><p><strong>Example</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-sql\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sql data-lang=sql><span class=line><span class=cl><span class=k>INSERT</span><span class=w> </span><span class=k>INTO</span><span class=w> </span><span class=o>`</span><span class=k>user</span><span class=o>`</span><span class=w> </span><span class=k>VALUES</span><span class=p>(</span><span class=s1>&#39;a&#39;</span><span class=p>,</span><span class=w> </span><span class=s1>&#39;b&#39;</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=统一用词><span>15 统一用词</span>\n<a href=#%e7%bb%9f%e4%b8%80%e7%94%a8%e8%af%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>系统中常用词，例如弹出框按钮、搜索框等，仅为举例，不限与此。</p></blockquote><div class=table-wrapper><table><thead><tr><th style=text-align:left>用词</th><th style=text-align:left>统一</th></tr></thead><tbody><tr><td style=text-align:left>最后、最终</td><td style=text-align:left>最后</td></tr><tr><td style=text-align:left>关闭、Cancel、取消</td><td style=text-align:left>取消</td></tr><tr><td style=text-align:left>存储、保存、修改、OK、确定</td><td style=text-align:left>确定</td></tr><tr><td style=text-align:left>搜寻、查询、查找、搜索</td><td style=text-align:left>搜索</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dev-rules/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/dev-rules.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/dev-rules.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Web+%E5%BC%80%E5%8F%91%E8%A7%84%E5%88%99%EF%BC%8C%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cWeb+%E5%BC%80%E5%8F%91%E8%A7%84%E5%88%99%EF%BC%8C%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83%7c%0A%7cURL%7chttps://lruihao.cn/posts/dev-rules/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/dev-rules.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dev-rules/ data-title=\"Web 开发规则，代码规范\" data-hashtags=CSS,Git,HTML,Java,JavaScript,PHP,Python,REST,Scss><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dev-rules/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dev-rules/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dev-rules/ data-title=\"Web 开发规则，代码规范\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dev-rules/ data-title=\"Web 开发规则，代码规范\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/rest/ class=post-tag title=\"标签 - REST\">REST</a><a href=/tags/scss/ class=post-tag title=\"标签 - Scss\">Scss</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/phpform/ class=post-nav-item rel=prev title=\"简单评论模块--Php 表单练习\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>简单评论模块--Php 表单练习</a><a href=/posts/netbeans/ class=post-nav-item rel=next title=\"NetBeans IDE 开发设置\">NetBeans IDE 开发设置<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#精神>精神</a></li><li><a href=#git>Git</a><ol><li><a href=#分支branch>分支（Branch）</a></li><li><a href=#commit>commit</a></li></ol></li><li><a href=#restful>Restful</a></li><li><a href=#命名>命名</a><ol><li><a href=#语意>语意</a></li><li><a href=#字母与分隔>字母与分隔</a></li></ol></li><li><a href=#通用>通用</a><ol><li><a href=#正确写法>正确写法</a></li></ol></li><li><a href=#错误写法>错误写法</a></li><li><a href=#html>HTML</a><ol><li><a href=#代码编写>代码编写</a></li></ol></li><li><a href=#css>CSS</a></li><li><a href=#javascript>JavaScript</a><ol><li><a href=#注释>注释</a><ol><li><a href=#全局变量-global>全局变量 (Global)</a></li><li><a href=#常量-constant>常量 (Constant)</a></li><li><a href=#函數方法-function-method>函數、方法 (Function, Method)</a></li></ol></li></ol></li><li><a href=#vue>Vue</a></li><li><a href=#java>Java</a></li><li><a href=#php>PHP</a><ol><li><a href=#前端参数取得>前端参数取得</a></li><li><a href=#输出到前台>输出到前台</a></li><li><a href=#注解>注解</a></li><li><a href=#成员变量-member>成员变量 (Member)</a></li><li><a href=#函数方法-function-method>函数、方法 (Function, Method)</a></li></ol></li><li><a href=#python>Python</a></li><li><a href=#database>Database</a><ol><li><a href=#sql-撰写>SQL 撰写</a></li></ol></li><li><a href=#统一用词>统一用词</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e2bba2b979fee7fd23a44657253057af.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e2bba2b979fee7fd23a44657253057af.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dev-rules/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dev-rules/index.md",
    "content": "# Web 开发规则，代码规范\n\n\n## 精神\n\n- 绝不写死代码，硬编码\n- 不留不要用的、垃圾代码\n\n## Git\n\n- Master 的 BUG 必须最少且趋近于零，为最稳定的版本\n- 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\n- 禁止 Commit IDE 的 project data，e.g: .vscode\n- 禁止上传垃圾代码\n\n> 更多规则详见文档 [Commit 规范](/posts/commit-spec/)\n\n### 分支（Branch）\n\n- 命名规则：应以此分支主要目的命名（修复什么 BUG，新增特定功能）\n- 合并后的分支应该删除\n\n### commit\n\n- 遵循一个功能一个 commit 的原则\n\n## Restful\n\n- 资源名词站在 API 的角度思考\n\n  - 复数名词：可以复数笔数据，回传结果为 Array\n\n    举例：GET/users 取得多笔使用者资料\n\n    - 刪除，放在复数名词內，让 Router 保持一致性\n    - 增加，放在复数名詞內，让 Router 保持一致性\n\n  - 单数名词：仅取得单笔数据，必须指定 PK，两两一组，回传结果为 Object\n    举例：GET/user/{accont} 取得单笔使用者资料，必须指定 PK\n\n- URL 中一律不带 id 参数\n\n```\n正确范例： calendar_manager/calendar/29\n错误范例： calendar_manager/calendar/29?id=29\n```\n\n> 更多规则详见文档 [RESTful](/posts/restful/)\n\n## 命名\n\n- 命名应根据内容做有意义的命名，让后续维护人员可以顾名思义！\n- 即使不会发生错误，代码英文大小写也需明确区分。\n\n### 语意\n\n| 类型                       | 命名规则                               | 说明                                           |\n| :------------------------- | :------------------------------------- | :--------------------------------------------- |\n| 属性 (Attribute, Property) | 名词 user_name、userName               |                                                |\n| 方法 (Method, Function)    | 动词 + 名词 getUserName、get_user_name | 常見的动词有：get、set、update、delete、remove |\n\n### 字母与分隔\n\n| 语言       | 变量 (Variable, Parameter, Argument)                                                                                          | 常量 (Constant)                                      | 面向对象 - 类名 (Class Name)                                                                                            | 面向对象 - 成员 (mebmer)                                                                                                                                      |\n| ---------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| HTML       | 全部小写，不同单词以「-」分隔<br />e.g: user-id                                                                               |                                                      |                                                                                                                         |                                                                                                                                                               |\n| CSS、SCSS  | 全部小写，不同单词以「-」分隔，CSS 变量以「--」开头，SCSS 变量以「$」开头<br />e.g: .user-id、--header-height、$header-height |                                                      |                                                                                                                         |                                                                                                                                                               |\n| JavaScript | 驼峰式命名法<br />首字小写，不同单字「首字以大写」分隔<br /> e.g: userId                                                      | 全部大写，不同单字以「\\_」分隔 MAX_COUNT             | 驼峰式命名法<br />首字大写，不同单字「首字以大写」分隔<br />一个文件放一个 Class, 文件名即为 Class Name <br />e.g: User | 驼峰式命名法<br />公有 (public) : 首字小写，不同单词「首字以大写」分隔<br />e.g: name, getName<br />私有 (private): \\_公有命名规则<br />e.g: \\_name,\\_getName |\n| Vue        |                                                                                                                               |                                                      |                                                                                                                         |                                                                                                                                                               |\n| Java       |                                                                                                                               |                                                      |                                                                                                                         |                                                                                                                                                               |\n| PHP        | 全部小写，不同单词以「\\_」分隔<br />e.g: user_id                                                                              |                                                      |                                                                                                                         |                                                                                                                                                               |\n| Python     |                                                                                                                               |                                                      |                                                                                                                         |                                                                                                                                                               |\n| SQL        | 由使用者定义的：表名、字段名<br />全部小写，不同单词以「\\_」分隔                                                              | SQL 语法、函数全部大写<br />e.g: SELECT、INSERT INTO |                                                                                                                         |                                                                                                                                                               |\n\n## 通用\n\n- 代码编写\n- **每个函数应该使用块注释，注释应包含函数功能说明、参数说明**。规则见：JSDoc、JavaDoc\n- 不必要的代码不要写，也应禁止放到注释里面！\n- if-else 的 {} 严禁省略\n- {} 起始一律跟在 前一个功能的尾巴，禁止分行\n- 代码规范、代码排版等可通过 eslint 等工具做统一处理\n\n### 正确写法\n\n```js\npublic function test () {\n  // do something\n  if (a === b) {\n    // do something\n  }\n}\n```\n\n## 错误写法\n\n```js\npublic function test ()\n{\n  // do something\n  if (a === b)\n  {\n    // do something\n  }\n}\n```\n\n- 代码排版\n  - 任何代码应该以 2 个 space 为一个缩进做好排版、不可使用 tab\n- 函数 (Function, Methd)\n  - 函数声明时需在函数上方加上函数注释，注释应包含函数说明、参数内容（参数类型、参数英文名称、参数说明）、返回值内容（返回值类型、返回值说明）\n- 类 (Class)\n  - 一个类（Class）的声明只能存在一个文件\n  - 类（Class）的声明文件，文件名必须为类名\n- 其他\n  - 连接本地任何其他资源（图片、文件、网站）皆使用相对路径，禁止使用绝对路径，非本地资源除外\n\n## HTML\n\n### 代码编写\n\n- 禁止在 HTML 使用 `<style>`、`<script>`，一律使用外部档案引用方式引用 CSS、JavaScript 文件\n- HTML 标签需成双成对，有头有尾\n- 块级标签：`<tag></tag>`\n- 单标签：`<tag />`\n- 禁止使用已被 HTML 舍弃的旧标签、属性，如：\n\n```html\n<!-- html tag -->\n<center>\n<font>\n<basefont>\n<s>\n<strike>\n<u>\n<listing>\n<plaintext>\n<xmp>\n<!-- html attribute -->\nalign\nbgcolor\ncolor\n```\n\n## CSS\n\n> CSS 的定义应该独立一个 CSS 文件，禁止使用 `<style>` 或 `style` 属性直接在 HTML 中定义样式。\n\n## JavaScript\n\n> 禁止使用 HTML 字串，一律使用 Dom 产生 HTML, e.g: `document.createDocumentFragment()`\n\n### 注释\n\nJavaScript 注释应该遵循 JSDoc 的标准撰写\n\n#### 全局变量 (Global)\n\n```js\n/* global ZT */\n```\n\n#### 常量 (Constant)\n\n```js\n/**\n * 常量說明\n * @type {常量类型}\n */\n```\n\n**Example**\n\n```js\n/**\n * 请求地址\n * @type {String}\n */\nconst REQUEST_URL = 'http://localhost:8080';\n```\n\n#### 函數、方法 (Function, Method)\n\n```js\n/**\n * 函数用途说明\n * @param {参数类型} 参数名称参数说明\n * @param {参数类型} [选择性参数名称] 参数说明\n * @param {参数类型} [选择性参数名称=参数预设值] 参数说明\n * @returns {返回值类型} 返回值说明\n */\n```\n\n**Example**\n\n```js\n/**\n * 取得使用者\n * @param {Int} userId 使用者 ID\n * @param {Object} [options] 其他选项\n * @param {String} [options.query='a'] 查询关键词 默认为 'a'\n * @returns {Object} 使用者资料\n */\nfunction getUser(userId, options) {\n  // do something\n  return user;\n}\n```\n\n## Vue\n\n- [ ] 待补充\n\n## Java\n\nJava 注释应该遵循 JavaDoc 的标准撰写\n\n- [ ] 待补充\n\n## PHP\n\n### 前端参数取得\n\n参数取得需通过 filter_input 函数取得，不得使用 \\_GET、\\_POST\n\n### 输出到前台\n\n参数命名必须为：全部小写，不同单字以「\\_」分隔\n\n### 注解\n\nPHP 注解应该遵循 PHPDoc 的标准撰写\n\n### 成员变量 (Member)\n\n成员变量只的是 Class 内的成员变数，我们都会要求替成员变量增加注解说明。通常 Function 的变量除非太特别否则都不需要特别注解说明。\n\n```php\n/**\n * 成员变量說明\n * @type {类型}\n */\n```\n\n**Example**\n\n```php\n/**\n * 使用者 ID\n * @type {String}\n */\n$userId = 'Hello';\n```\n\n### 函数、方法 (Function, Method)\n\n```php\n/**\n * 函数用途说明\n * @param 参数型态 参数名称 参数说明\n * @option 参数选项类型 参数选项名称 参数选项说明\n * @uses 全局变量 全域变数说明\n * @returns 返回值类型 返回值说明\n */\n```\n\n**Example**\n\n```php\n/**\n * 取得使用者\n * @param int userId 使用者 ID\n * @param object options 其他选项\n * @option string options['query'] 查询关键字\n * @uses $_POST['role_id'] 从前端以 POST 取得角色 ID\n * @returns object 使用者资料\n */\nfunction getUser ($userId, $options) {\n  // do something\n  return $user;\n};\n```\n\n## Python\n\n- [ ] 待补充\n\n## Database\n\n- 禁止使用 Table Join。\n- 禁止使用 Oracle Trigger。\n- 禁止将查询数据库的 SQL 放在循环中查询\n\n### SQL 撰写\n\n- 属于 SQL 语法使用大写（SELECT，WHERE，INSERT etc..）\n- 属于使用者自己定义的使用小写（表名 table name，字段名 column name etc..）\n- 表名、字段名前后需加上 `\n\n**Example**\n\n```sql\nINSERT INTO `user` VALUES('a', 'b');\n```\n\n## 统一用词\n\n> 系统中常用词，例如弹出框按钮、搜索框等，仅为举例，不限与此。\n\n| 用词                       | 统一 |\n| :------------------------- | :--- |\n| 最后、最终                 | 最后 |\n| 关闭、Cancel、取消         | 取消 |\n| 存储、保存、修改、OK、确定 | 确定 |\n| 搜寻、查询、查找、搜索     | 搜索 |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dev-rules/  \n\n"
  },
  {
    "path": "posts/dfs_bfs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>深搜广搜 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\n0.2 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\n\"><meta name=keywords content='ACM,BFS,DFS,搜索,C,C++'><meta itemprop=name content=\"深搜广搜\"><meta itemprop=description content=\"0.1 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\n0.2 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\"><meta itemprop=datePublished content=\"2018-07-22T11:25:14+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"417\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,BFS,DFS,搜索,C,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dfs_bfs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"深搜广搜\"><meta property=\"og:description\" content=\"0.1 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\n0.2 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:25:14+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"BFS\"><meta property=\"article:tag\" content=\"DFS\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"C\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"深搜广搜\"><meta name=twitter:description content=\"0.1 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\n0.2 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dfs_bfs/ title=\"深搜广搜 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ title=\"TaoTao 要吃鸡\"><link rel=next type=text/html href=https://lruihao.cn/posts/cf-1009/ title=\"Educational Codeforces Round 47 (Rated for Div. 2)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dfs_bfs/index.md title=\"深搜广搜 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"深搜广搜\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dfs_bfs\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, BFS, DFS, 搜索, C, C\\u002b\\u002b\",\"wordcount\":417,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dfs_bfs\\/\",\"datePublished\":\"2018-07-22T11:25:14+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dfs_bfs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>深搜广搜</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>深搜广搜</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:25:14\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"417 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=深搜广搜><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#广度优先搜索bfs>广度优先搜索（BFS）</a></li><li><a href=#深度优先搜索dfs>深度优先搜索（DFS）</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=广度优先搜索bfs><span>0.1 广度优先搜索（BFS）</span>\n<a href=#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。</p><h3 class=heading-element id=深度优先搜索dfs><span>0.2 深度优先搜索（DFS）</span>\n<a href=#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#define N 5\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>maze</span><span class=p>[</span><span class=n>N</span><span class=p>][</span><span class=n>N</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span><span class=c1>//无权有向图邻接矩阵\n</span></span></span><span class=line><span class=cl>     <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>1</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl> <span class=p>};</span>\n</span></span><span class=line><span class=cl> <span class=kt>int</span> <span class=n>visited</span><span class=p>[</span><span class=n>N</span><span class=p>];</span>\n</span></span><span class=line><span class=cl> <span class=kt>void</span> <span class=nf>DFS</span><span class=p>(</span><span class=kt>int</span> <span class=n>start</span><span class=p>)</span>\n</span></span><span class=line><span class=cl> <span class=p>{</span>\n</span></span><span class=line><span class=cl>     <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>start</span><span class=o>&lt;&lt;</span> <span class=s>&#34; &#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>visited</span><span class=p>[</span><span class=n>start</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>N</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span>\n</span></span><span class=line><span class=cl>         <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>visited</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=n>maze</span><span class=p>[</span><span class=n>start</span><span class=p>][</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span><span class=c1>//没访问过且为邻居节点\n</span></span></span><span class=line><span class=cl>             <span class=n>DFS</span><span class=p>(</span><span class=n>i</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>     <span class=p>}</span>\n</span></span><span class=line><span class=cl> <span class=p>}</span>\n</span></span><span class=line><span class=cl> <span class=kt>void</span> <span class=nf>BFS</span><span class=p>(</span><span class=kt>int</span> <span class=n>start</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>     <span class=n>queue</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span> <span class=n>Q</span><span class=p>;</span><span class=c1>//队列\n</span></span></span><span class=line><span class=cl>     <span class=n>Q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>start</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>     <span class=n>visited</span><span class=p>[</span><span class=n>start</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=k>while</span> <span class=p>(</span><span class=o>!</span><span class=n>Q</span><span class=p>.</span><span class=n>empty</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>     <span class=p>{</span>\n</span></span><span class=line><span class=cl>         <span class=kt>int</span> <span class=n>front</span> <span class=o>=</span> <span class=n>Q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span><span class=c1>//头\n</span></span></span><span class=line><span class=cl>         <span class=n>cout</span> <span class=o>&lt;&lt;</span> <span class=n>front</span> <span class=o>&lt;&lt;</span> <span class=s>&#34; &#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>         <span class=n>Q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>         <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span><span class=n>N</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>         <span class=p>{</span>\n</span></span><span class=line><span class=cl>             <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>visited</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=n>maze</span><span class=p>[</span><span class=n>front</span><span class=p>][</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>             <span class=p>{</span>\n</span></span><span class=line><span class=cl>                 <span class=n>visited</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                 <span class=n>Q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>i</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>             <span class=p>}</span>\n</span></span><span class=line><span class=cl>         <span class=p>}</span>\n</span></span><span class=line><span class=cl>     <span class=p>}</span>\n</span></span><span class=line><span class=cl> <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl> <span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl> <span class=p>{</span>\n</span></span><span class=line><span class=cl>     <span class=n>memset</span><span class=p>(</span><span class=n>visited</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>visited</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>     <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>N</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=c1>//不连通的情况\n</span></span></span><span class=line><span class=cl>     <span class=p>{</span>\n</span></span><span class=line><span class=cl>         <span class=k>if</span> <span class=p>(</span><span class=n>visited</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span><span class=c1>//访问过\n</span></span></span><span class=line><span class=cl>             <span class=k>continue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>         <span class=n>DFS</span><span class=p>(</span><span class=n>i</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>     <span class=p>}</span>\n</span></span><span class=line><span class=cl>     <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>memset</span><span class=p>(</span><span class=n>visited</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>visited</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>     <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>N</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=c1>//不连通的情况\n</span></span></span><span class=line><span class=cl>     <span class=p>{</span>\n</span></span><span class=line><span class=cl>         <span class=k>if</span> <span class=p>(</span><span class=n>visited</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span><span class=c1>//访问过\n</span></span></span><span class=line><span class=cl>             <span class=k>continue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>         <span class=n>BFS</span><span class=p>(</span><span class=n>i</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>     <span class=p>}</span>\n</span></span><span class=line><span class=cl>     <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl> <span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://blog.csdn.net/wumingkeqi/article/details/70940978 target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dfs_bfs/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/dfs_bfs.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/dfs_bfs.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B7%B1%E6%90%9C%E5%B9%BF%E6%90%9C&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B7%B1%E6%90%9C%E5%B9%BF%E6%90%9C%7c%0A%7cURL%7chttps://lruihao.cn/posts/dfs_bfs/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/dfs_bfs.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dfs_bfs/ data-title=深搜广搜 data-hashtags=ACM,BFS,DFS,搜索,C,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dfs_bfs/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dfs_bfs/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dfs_bfs/ data-title=深搜广搜 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dfs_bfs/ data-title=深搜广搜><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/bfs/ class=post-tag title=\"标签 - BFS\">BFS</a><a href=/tags/dfs/ class=post-tag title=\"标签 - DFS\">DFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=post-nav-item rel=prev title=\"TaoTao 要吃鸡\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>TaoTao 要吃鸡</a><a href=/posts/cf-1009/ class=post-nav-item rel=next title=\"Educational Codeforces Round 47 (Rated for Div. 2)\">Educational Codeforces Round 47 (Rated for Div. 2)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#广度优先搜索bfs>广度优先搜索（BFS）</a></li><li><a href=#深度优先搜索dfs>深度优先搜索（DFS）</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6044e0fddda1c4891d5575b4e65c5d23.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6044e0fddda1c4891d5575b4e65c5d23.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dfs_bfs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dfs_bfs/index.md",
    "content": "# 深搜广搜\n\n\n### 广度优先搜索（BFS）\n\n广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\n\n### 深度优先搜索（DFS）\n\n深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\n\n```cpp\n#include <bits/stdc++.h>\n#define N 5\nusing namespace std;\nint maze[N][N] = {//无权有向图邻接矩阵\n     { 0, 1, 0, 1, 0 },\n     { 0, 0, 1, 0, 0 },\n     { 0, 0, 0, 0, 1 },\n     { 0, 0, 1, 0, 0 },\n     { 0, 0, 0, 0, 0 }\n };\n int visited[N];\n void DFS(int start)\n {\n     cout << start<< \" \";\n     visited[start] = 1;\n     for (int i = 0; i < N; i++)\n     {\n         if (!visited[i] && maze[start][i] == 1)//没访问过且为邻居节点\n             DFS(i);\n     }\n }\n void BFS(int start){\n     queue<int> Q;//队列\n     Q.push(start);\n     visited[start] = 1;\n     while (!Q.empty())\n     {\n         int front = Q.front();//头\n         cout << front << \" \";\n         Q.pop();\n         for (int i = 0; i <N; i++)\n         {\n             if (!visited[i] && maze[front][i] == 1)\n             {\n                 visited[i] = 1;\n                 Q.push(i);\n             }\n         }\n     }\n }\n\n int main()\n {\n     memset(visited,0,sizeof(visited));\n     for (int i = 0; i < N; i++)//不连通的情况\n     {\n         if (visited[i] == 1)//访问过\n             continue;\n         DFS(i);\n     }\n     cout<<endl;\n     memset(visited,0,sizeof(visited));\n     for (int i = 0; i < N; i++)//不连通的情况\n     {\n         if (visited[i] == 1)//访问过\n             continue;\n         BFS(i);\n     }\n     return 0;\n }\n```\n\n[传送门](https://blog.csdn.net/wumingkeqi/article/details/70940978)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dfs_bfs/  \n\n"
  },
  {
    "path": "posts/document-style-guide/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>中文技术文档的写作规范 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以下参考来源：阮一峰的 中文技术文档的写作规范\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"中文技术文档的写作规范\"><meta itemprop=description content=\"以下参考来源：阮一峰的 中文技术文档的写作规范\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\"><meta itemprop=datePublished content=\"2023-02-04T16:04:42+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"5942\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"程序猿的自我修养\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/document-style-guide/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"中文技术文档的写作规范\"><meta property=\"og:description\" content=\"以下参考来源：阮一峰的 中文技术文档的写作规范\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-02-04T16:04:42+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"中文技术文档的写作规范\"><meta name=twitter:description content=\"以下参考来源：阮一峰的 中文技术文档的写作规范\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/document-style-guide/ title=\"中文技术文档的写作规范 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/event-loop/ title=\"浏览器原理 - 事件循环\"><link rel=next type=text/html href=https://lruihao.cn/posts/browser-rendering/ title=浏览器渲染原理><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/document-style-guide/index.md title=\"中文技术文档的写作规范 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"中文技术文档的写作规范\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/document-style-guide\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":5942,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/document-style-guide\\/\",\"datePublished\":\"2023-02-04T16:04:42+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/document-style-guide/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>中文技术文档的写作规范</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>中文技术文档的写作规范</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=post-meta-line><span title=\"发布于 2023-02-04 16:04:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-02-04>2023-02-04</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"5942 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 6000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 12 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=中文技术文档的写作规范><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#标题>标题</a><ol><li><a href=#层级>层级</a></li><li><a href=#原则>原则</a></li></ol></li><li><a href=#文本>文本</a><ol><li><a href=#字间距>字间距</a></li><li><a href=#句子>句子</a></li><li><a href=#写作风格>写作风格</a></li><li><a href=#英文处理>英文处理</a></li></ol></li><li><a href=#段落>段落</a><ol><li><a href=#原则-1>原则</a></li><li><a href=#引用>引用</a></li></ol></li><li><a href=#数值>数值</a><ol><li><a href=#半角数字>半角数字</a></li><li><a href=#千分号>千分号</a></li><li><a href=#货币>货币</a></li><li><a href=#数值范围>数值范围</a></li><li><a href=#变化程度的表示法>变化程度的表示法</a></li></ol></li><li><a href=#标点符号>标点符号</a><ol><li><a href=#原则-2>原则</a></li><li><a href=#句号>句号</a></li><li><a href=#逗号>逗号</a></li><li><a href=#顿号>顿号</a></li><li><a href=#分号>分号</a></li><li><a href=#引号>引号</a></li><li><a href=#括号>括号</a></li><li><a href=#冒号>冒号</a></li><li><a href=#省略号>省略号</a></li><li><a href=#感叹号>感叹号</a></li><li><a href=#破折号>破折号</a></li><li><a href=#连接号>连接号</a></li></ol></li><li><a href=#文档体系>文档体系</a><ol><li><a href=#结构>结构</a></li><li><a href=#文件名>文件名</a></li></ol></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>以下参考来源：阮一峰的 <a href=https://github.com/ruanyf/document-style-guide target=_blank rel=\"external nofollow noopener noreferrer\">中文技术文档的写作规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如<a href=https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715 target=_blank rel=\"external nofollow noopener noreferrer\">微软<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=http://styleguide.mailchimp.com/ target=_blank rel=\"external nofollow noopener noreferrer\">MailChimp<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://help.apple.com/asg/mac/2013/ASG_2013.pdf target=_blank rel=\"external nofollow noopener noreferrer\">Apple<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&amp;btkr=1\" target=_blank rel=\"external nofollow noopener noreferrer\">Yahoo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://docs.docker.com/opensource/doc-style/ target=_blank rel=\"external nofollow noopener noreferrer\">docker<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://struts.apache.org/docs/documentation-style-guide.html target=_blank rel=\"external nofollow noopener noreferrer\">Struts<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 等等（维基百科有一份完整的<a href=https://en.wikipedia.org/wiki/List_of_style_guides target=_blank rel=\"external nofollow noopener noreferrer\">清单<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）。<a href=https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md target=_blank rel=\"external nofollow noopener noreferrer\">中文的<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>也有不少，但都不令人满意，要么太简单，要么不太适用。</p><p>对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。</p><p>对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。</p><p>参考上面的规范，于是有了下面一份中文技术文档的写作规范。</p><h2 class=heading-element id=标题><span>1 标题</span>\n<a href=#%e6%a0%87%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=层级><span>1.1 层级</span>\n<a href=#%e5%b1%82%e7%ba%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>标题分为四级。</p><ul><li>一级标题：文章的标题</li><li>二级标题：文章主要部分的大标题</li><li>三级标题：二级标题下面一级的小标题</li><li>四级标题：三级标题下面某一方面的小标题</li></ul><p>下面是示例。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh># 一级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>## 二级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>### 三级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>#### 四级标题</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>注：最多支持六级，但是同论文写作一样，层级太深，会使得整体显得杂乱无章，当确实需要更深层级时，应另起新篇单独论述。</p></blockquote><h3 class=heading-element id=原则><span>1.2 原则</span>\n<a href=#%e5%8e%9f%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）一级标题下，不能直接出现三级标题。</p><p>示例：下面的文章结构，缺少二级标题。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh># 一级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>### 三级标题</span></span></code></pre></td></tr></table></div></div></div><p>（2）标题要避免孤立编号（即同级标题只有一个）。</p><p>示例：下面的文章结构，<code>二级标题 A</code>只包含一个三级标题，完全可以省略<code>三级标题 A</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gu>## 二级标题 A\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>### 三级标题 A\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>## 二级标题 B</span></span></code></pre></td></tr></table></div></div></div><p>（3）下级标题不重复上一级标题的名字。</p><p>示例：下面的文章结构，二级标题与下属的三级标题同名，建议避免。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gu>## 概述\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>### 概述</span></span></code></pre></td></tr></table></div></div></div><p>（4）谨慎使用四级标题，尽量避免出现，保持层级的简单，防止出现过于复杂的章节。</p><p>如果三级标题下有并列性的内容，建议只使用项目列表（Item list）。</p><p>示例：下面的结构二要好于结构一。结构一适用的场景，主要是较长篇幅的内容。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>结构一\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>### 三级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>#### 四级标题 A\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>#### 四级标题 B\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>#### 四级标题 C\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>结构二\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gu>### 三级标题\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=ge>**</span>（1）A**\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=ge>**</span>（2）B**\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=ge>**</span>（3）C**</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=文本><span>2 文本</span>\n<a href=#%e6%96%87%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=字间距><span>2.1 字间距</span>\n<a href=#%e5%ad%97%e9%97%b4%e8%b7%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）全角中文字符与半角英文字符之间，应有一个半角空格。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：本文介绍如何快速启动Windows系统。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：本文介绍如何快速启动 Windows 系统。</span></span></code></pre></td></tr></table></div></div></div><p>（2）全角中文字符与半角阿拉伯数字之间，有没有半角空格都可，但必须保证风格统一，不能两种风格混杂。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>正确：2011年5月15日，我订购了5台笔记本电脑与10台平板电脑。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：2011 年 5 月 15 日，我订购了 5 台笔记本电脑与 10 台平板电脑。</span></span></code></pre></td></tr></table></div></div></div><p>半角的百分号，视同阿拉伯数字。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>正确：今年我国经济增长率是6.5%。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：今年我国经济增长率是 6.5%。</span></span></code></pre></td></tr></table></div></div></div><p>（3）英文单位若不翻译，单位前的阿拉伯数字与单位符号之间，应留出适当的空隙。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例1：一部容量为 16 GB 的智能手机\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>例2：1 h = 60 min = 3,600 s</span></span></code></pre></td></tr></table></div></div></div><p>（4）半角英文字符和半角阿拉伯数字，与全角标点符号之间不留空格。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：他的电脑是 MacBook Air 。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：他的电脑是 MacBook Air。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=句子><span>2.2 句子</span>\n<a href=#%e5%8f%a5%e5%ad%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）避免使用长句。</p><p>不包含任何标点符号的单个句子，或者以逗号分隔的句子构件，长度尽量保持在 20 个字以内；20 ～ 29 个字的句子，可以接受；30 ～ 39 个字的句子，语义必须明确，才能接受；多于 40 个字的句子，任何情况下都不能接受。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：本产品适用于从由一台服务器进行动作控制的单一节点结构到由多台服务器进行动作控制的并行处理程序结构等多种体系结构。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：本产品适用于多种体系结构。无论是由一台服务器（单一节点结构），还是由多台服务器（并行处理结构）进行动作控制，均可以使用本产品。</span></span></code></pre></td></tr></table></div></div></div><p>逗号分割的长句，总长度不应该超过 100 字或者正文的 3 行。</p><p>（2）尽量使用简单句和并列句，避免使用复合句。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>并列句：他昨天生病了，没有参加会议。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>复合句：那个昨天生病的人没有参加会议。</span></span></code></pre></td></tr></table></div></div></div><p>（3）同样一个意思，尽量使用肯定句表达，不使用否定句表达。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：请确认没有接通装置的电源。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：请确认装置的电源已关闭。</span></span></code></pre></td></tr></table></div></div></div><p>（4）避免使用双重否定句。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：没有删除权限的用户，不能删除此文件。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：用户必须拥有删除权限，才能删除此文件。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=写作风格><span>2.3 写作风格</span>\n<a href=#%e5%86%99%e4%bd%9c%e9%a3%8e%e6%a0%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）尽量不使用被动语态，改为使用主动语态。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：假如此软件尚未被安装，\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：假如尚未安装这个软件，</span></span></code></pre></td></tr></table></div></div></div><p>（2）不使用非正式的语言风格。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：Lady Gaga 的演唱会真是酷毙了，从没看过这么给力的表演！！！\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：无法参加本次活动，我深感遗憾。</span></span></code></pre></td></tr></table></div></div></div><p>（3）不使用冷僻、生造或者文言文的词语，而要使用现代汉语的常用表达方式。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：这是唯二的快速启动的方法。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：这是仅有的两种快速启动的方法。</span></span></code></pre></td></tr></table></div></div></div><p>（4）用对“的”、“地”、“得”。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>她露出了开心的笑容。\n</span></span><span class=line><span class=cl>（形容词＋的＋名词）\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>她开心地笑了。\n</span></span><span class=line><span class=cl>（副词＋地＋动词）\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>她笑得很开心。\n</span></span><span class=line><span class=cl>（动词＋得＋副词）</span></span></code></pre></td></tr></table></div></div></div><p>（5）使用代词时（比如“其”、“该”、“此”、“这”等词），必须明确指代的内容，保证只有一个含义。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：从管理系统可以监视中继系统和受其直接控制的分配系统。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：从管理系统可以监视两个系统：中继系统和受中继系统直接控制的分配系统。</span></span></code></pre></td></tr></table></div></div></div><p>（6）名词前不要使用过多的形容词。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：此设备的使用必须在接受过本公司举办的正式的设备培训的技师的指导下进行。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：此设备必须在技师的指导下使用，且指导技师必须接受过由本公司举办的正式设备培训。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=英文处理><span>2.4 英文处理</span>\n<a href=#%e8%8b%b1%e6%96%87%e5%a4%84%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）英文原文如果使用了复数形式，翻译成中文时，应该将其还原为单数形式。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>英文：...information stored in random access memory (RAMs)...\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>中文：⋯⋯存储在随机存取存储器（RAM）里的信息⋯⋯</span></span></code></pre></td></tr></table></div></div></div><p>（2）外文缩写可以使用半角圆点 (<code>.</code>) 表示缩写。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>U.S.A.\n</span></span><span class=line><span class=cl>Apple, Inc.</span></span></code></pre></td></tr></table></div></div></div><p>（3）表示中文时，英文省略号（<code>...</code>）应改为中文省略号（<code>⋯⋯</code>）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>英文：5 minutes later...\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>中文：5 分钟过去了⋯⋯</span></span></code></pre></td></tr></table></div></div></div><p>（4）英文书名或电影名改用中文表达时，双引号应改为书名号。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>英文：He published an article entitled &#34;The Future of the Aviation&#34;.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>中文：他发表了一篇名为《航空业的未来》的文章。</span></span></code></pre></td></tr></table></div></div></div><p>（5）第一次出现英文词汇时，在括号中给出中文标注。此后再次出现时，直接使用英文缩写即可。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>IOC（International Olympic Committee，国际奥林匹克委员会）。这样定义后，便可以直接使用“IOC”了。</span></span></code></pre></td></tr></table></div></div></div><p>（6）专有名词中每个词第一个字母均应大写，非专有名词则不需要大写。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>“American Association of Physicists in Medicine”（美国医学物理学家协会）是专有名词，需要大写。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>“online transaction processing”（在线事务处理）不是专有名词，不应大写。</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=段落><span>3 段落</span>\n<a href=#%e6%ae%b5%e8%90%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=原则-1><span>3.1 原则</span>\n<a href=#%e5%8e%9f%e5%88%99-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>一个段落只能有一个主题，或一个中心句子。</li><li>段落的中心句子放在段首，对全段内容进行概述。后面陈述的句子为中心句子服务。</li><li>一个段落的长度不能超过七行，最佳段落长度小于等于四行。</li><li>段落的句子语气要使用陈述和肯定语气，避免使用感叹语气。</li><li>段落之间使用一个空行隔开。</li><li>段落开头不要留出空白字符。</li></ul><h3 class=heading-element id=引用><span>3.2 引用</span>\n<a href=#%e5%bc%95%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>引用第三方内容时，应注明出处。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=n>One</span> <span class=n>man</span><span class=err>’</span><span class=n>s</span> <span class=n>constant</span> <span class=n>is</span> <span class=n>another</span> <span class=n>man</span><span class=err>’</span><span class=n>s</span> <span class=n>variable</span><span class=o>.</span> <span class=err>—</span> <span class=n>Alan</span> <span class=n>Perlis</span></span></span></code></pre></td></tr></table></div></div></div><p>如果是全篇转载，请在全文开头显著位置注明作者和出处，并链接至原文。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>本文转载自 WikiQuote</span></span></code></pre></td></tr></table></div></div></div><p>使用外部图片时，必须在图片下方或文末标明来源。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>本文部分图片来自 Wikipedia</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=数值><span>4 数值</span>\n<a href=#%e6%95%b0%e5%80%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=半角数字><span>4.1 半角数字</span>\n<a href=#%e5%8d%8a%e8%a7%92%e6%95%b0%e5%ad%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>阿拉伯数字一律使用半角形式，不得使用全角形式。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：这件商品的价格是１０００元。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：这件商品的价格是 1000 元。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=千分号><span>4.2 千分号</span>\n<a href=#%e5%8d%83%e5%88%86%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>数值为千位以上，应添加千分号（半角逗号）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>XXX 公司的实收资本为 ￥1,258,000 人民币。</span></span></code></pre></td></tr></table></div></div></div><p>对于 4 位的数值，千分号是选用的，比如<code>1000</code>和<code>1,000</code>都可以接受。对于 4 位以上的数值，应添加千分号。</p><h3 class=heading-element id=货币><span>4.3 货币</span>\n<a href=#%e8%b4%a7%e5%b8%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>货币应为阿拉伯数字，并在数字前写出货币符号，或在数字后写出货币中文名称。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>$1,000\n</span></span><span class=line><span class=cl>1,000 美元</span></span></code></pre></td></tr></table></div></div></div><p>英文的货币名称，建议参考国际标准 <a href=https://en.wikipedia.org/wiki/ISO_4217 target=_blank rel=\"external nofollow noopener noreferrer\">ISO 4217<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=数值范围><span>4.4 数值范围</span>\n<a href=#%e6%95%b0%e5%80%bc%e8%8c%83%e5%9b%b4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>表示数值范围时，用波浪线（<code>～</code>）或一字线（<code>—</code>）连接。参见《标点符号》一节的“连接号”部分。</p><p>带有单位或百分号时，两个数字建议都要加上单位或百分号。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>132 kg～234 kg\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>67%～89%</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=变化程度的表示法><span>4.5 变化程度的表示法</span>\n<a href=#%e5%8f%98%e5%8c%96%e7%a8%8b%e5%ba%a6%e7%9a%84%e8%a1%a8%e7%a4%ba%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>数字的增加要使用“增加了”、“增加到”。“了”表示增量，“到”表示定量。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>增加到过去的两倍\n</span></span><span class=line><span class=cl>（过去为一，现在为二）\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>增加了两倍\n</span></span><span class=line><span class=cl>（过去为一，现在为三）</span></span></code></pre></td></tr></table></div></div></div><p>数字的减少要使用“降低了”、“降低到”。“了”表示增量，“到”表示定量。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>降低到百分之八十\n</span></span><span class=line><span class=cl>（定额是一百，现在是八十）\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>降低了百分之八十\n</span></span><span class=line><span class=cl>（原来是一百，现在是二十）</span></span></code></pre></td></tr></table></div></div></div><p>不能用“降低 N 倍”或“减少 N 倍”的表示法，要用“降低百分之几”或“减少百分之几”。因为减少（或降低）一倍表示数值原来为一百，现在等于零。</p><h2 class=heading-element id=标点符号><span>5 标点符号</span>\n<a href=#%e6%a0%87%e7%82%b9%e7%ac%a6%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=原则-2><span>5.1 原则</span>\n<a href=#%e5%8e%9f%e5%88%99-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）中文语句的标点符号，均应该采取全角符号，这样可以与全角文字保持视觉的一致。</p><p>（2）如果整句为英文，则该句使用英文/半角标点。</p><p>（3）句号、问号、叹号、逗号、顿号、分号和冒号不得出现在一行之首。</p><p>（4）点号（句号、逗号、顿号、分号、冒号）不得出现在标题的末尾，而标号（引号、括号、破折号、省略号、书名号、着重号、间隔号、叹号、问号）可以。</p><h3 class=heading-element id=句号><span>5.2 句号</span>\n<a href=#%e5%8f%a5%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）中文语句的结尾处应该用全角句号（<code>。</code>）。</p><p>（2）句子末尾用括号加注时，句号应在括号之外。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：关于文件的输出，请参照第 1.3 节（见第 26 页。）\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：关于文件的输出，请参照第 1.3 节（见第 26 页）。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=逗号><span>5.3 逗号</span>\n<a href=#%e9%80%97%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）逗号（<code>，</code>）表示句子内部的一般性停顿。</p><p>（2）注意避免“一逗到底”，即整个段落除了结尾，全部停顿都使用逗号。</p><h3 class=heading-element id=顿号><span>5.4 顿号</span>\n<a href=#%e9%a1%bf%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）句子内部的并列词，应该用全角顿号 (<code>、</code>) 分隔，而不用逗号，即使并列词是英语也是如此。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：我最欣赏的科技公司有 Google, Facebook, 腾讯, 阿里和百度等。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。</span></span></code></pre></td></tr></table></div></div></div><p>（2）英文句子中，并列词语之间使用半角逗号（<code>,</code>）分隔。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：Microsoft Office includes Word, Excel, PowerPoint, Outlook and other components.</span></span></code></pre></td></tr></table></div></div></div><p>（3）中文句子内部的并列词，最后一个尽量使用（<code>和</code>）来连接，使句子读起来更加连贯，下面两个句子都可以，第二个更优。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里，以及百度等。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=分号><span>5.5 分号</span>\n<a href=#%e5%88%86%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）分号（<code>；</code>）表示复句内部并列分句之间的停顿。</p><h3 class=heading-element id=引号><span>5.6 引号</span>\n<a href=#%e5%bc%95%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）引用时，应该使用全角双引号（<code>“ ”</code>），注意前后双引号不同。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：许多人都认为客户服务的核心是“友好”和“专业”。</span></span></code></pre></td></tr></table></div></div></div><p>（2）引号里面还要用引号时，外面一层用双引号，里面一层用单引号（<code>‘ ’</code>），注意前后单引号不同。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：鲍勃解释道：“我要放音乐，可萨利说，‘不行！’。”</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=括号><span>5.7 括号</span>\n<a href=#%e6%8b%ac%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）补充说明时，使用全角圆括号（<code>（）</code>），括号前后不加空格。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：请确认所有的连接（电缆和接插件）均安装牢固。</span></span></code></pre></td></tr></table></div></div></div><p>（2）几种括号的中英文名称。</p><div class=table-wrapper><table><thead><tr><th></th><th style=text-align:center>英文</th><th style=text-align:center>中文</th></tr></thead><tbody><tr><td><code>{ }</code></td><td style=text-align:center>braces 或 curly brackets</td><td style=text-align:center>大括号</td></tr><tr><td><code>[ ]</code></td><td style=text-align:center>square brackets 或 brackets</td><td style=text-align:center>方括号</td></tr><tr><td><code>&lt; ></code></td><td style=text-align:center>angled brackets</td><td style=text-align:center>尖括号</td></tr><tr><td><code>( )</code></td><td style=text-align:center>parentheses</td><td style=text-align:center>圆括号</td></tr></tbody></table></div><h3 class=heading-element id=冒号><span>5.8 冒号</span>\n<a href=#%e5%86%92%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）全角冒号（<code>：</code>）常用在需要解释的词语后边，引出解释和说明。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：请确认以下几项内容：时间、地点、活动名称和来宾数量。</span></span></code></pre></td></tr></table></div></div></div><p>（2）表示时间时，应使用半角冒号（<code>:</code>）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：早上 8:00</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=省略号><span>5.9 省略号</span>\n<a href=#%e7%9c%81%e7%95%a5%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）省略号（<code>⋯⋯</code>）表示语句未完、或者语气的不连续。</p><p>（2）省略号占两个汉字空间、包含六个省略点，不要使用<code>。。。</code>或<code>...</code>等非标准形式。</p><p>（3）省略号不应与“等”这个词一起使用。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：我们为会餐准备了香蕉、苹果、梨…等各色水果。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：我们为会餐准备了各色水果，有香蕉、苹果、梨⋯⋯\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：我们为会餐准备了香蕉、苹果、梨等各色水果。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=感叹号><span>5.10 感叹号</span>\n<a href=#%e6%84%9f%e5%8f%b9%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）应该使用平静的语气叙述，尽量避免使用感叹号（<code>！</code>）。</p><p>（2）不得多个感叹号连用，比如<code>！！</code>和<code>!!!</code>。</p><h3 class=heading-element id=破折号><span>5.11 破折号</span>\n<a href=#%e7%a0%b4%e6%8a%98%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）破折号<code>————</code>一般用于进一步解释。</p><p>（2）破折号应占两个汉字的位置。如果破折号本身只占一个汉字的位置，那么前后应该留出一个半角空格。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：直觉————尽管它并不总是可靠的————告诉我，这事可能出了些问题。\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>例句：直觉 —— 尽管它并不总是可靠的 —— 告诉我，这事可能出了些问题。</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=连接号><span>5.12 连接号</span>\n<a href=#%e8%bf%9e%e6%8e%a5%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（1）连接号用于连接两个类似的词。</p><p>（2）以下场合应该使用直线连接号（<code>-</code>），占一个半角字符的位置。</p><ul><li>两个名词的复合</li><li>图表编号</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：氧化-还原反应\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>例句：图 1-1</span></span></code></pre></td></tr></table></div></div></div><p>（3）数值范围（例如日期、时间或数字）应该使用波浪连接号（<code>～</code>）或一字号（<code>—</code>），占一个全角字符的位置。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：2009 年～2011 年</span></span></code></pre></td></tr></table></div></div></div><p>注意，波浪连接号前后两个值都建议加上单位。</p><p>（4）波浪连接号也可以用汉字“至”代替。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>例句：周围温度：-20 °C 至 -10 °C</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=文档体系><span>6 文档体系</span>\n<a href=#%e6%96%87%e6%a1%a3%e4%bd%93%e7%b3%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=结构><span>6.1 结构</span>\n<a href=#%e7%bb%93%e6%9e%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>软件手册是一部完整的书，建议采用下面的结构。</p><ul><li><strong>简介</strong>（Introduction）：[必备] [文件] 提供对产品和文档本身的总体的、扼要的说明</li><li><strong>快速上手</strong>（Getting Started）：[可选] [文件] 如何最快速地使用产品</li><li><strong>入门篇</strong>（Basics）：[必备] [目录] 又称“使用篇”，提供初级的使用教程<ul><li><strong>环境准备</strong>（Prerequisite）：[必备] [文件] 软件使用需要满足的前置条件</li><li><strong>安装</strong>（Installation）：[可选] [文件] 软件的安装方法</li><li><strong>设置</strong>（Configuration）：[必备] [文件] 软件的设置</li></ul></li><li><strong>进阶篇</strong>（Advanced)：[可选] [目录] 又称“开发篇”，提供中高级的开发教程</li><li><strong>API</strong>（Reference）：[可选] [目录 | 文件] 软件 API 的逐一介绍</li><li><strong>FAQ</strong>：[可选] [文件] 常见问题解答</li><li><strong>附录</strong>（Appendix）：[可选] [目录] 不属于教程本身、但对阅读教程有帮助的内容<ul><li><strong>Glossary</strong>：[可选] [文件] 名词解释</li><li><strong>Recipes</strong>：[可选] [文件] 最佳实践</li><li><strong>Troubleshooting</strong>：[可选] [文件] 故障处理</li><li><strong>ChangeLog</strong>：[可选] [文件] 版本说明</li><li><strong>Feedback</strong>：[可选] [文件] 反馈方式</li></ul></li></ul><p>下面是两个真实范例，可参考。</p><ul><li><a href=https://redux.js.org/introduction/getting-started target=_blank rel=\"external nofollow noopener noreferrer\">Redux 手册<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=http://flight-manual.atom.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Atom 手册<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h3 class=heading-element id=文件名><span>6.2 文件名</span>\n<a href=#%e6%96%87%e4%bb%b6%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>文档的文件名不得含有空格。</p><p>文件名必须使用半角字符，不得使用全角字符。这也意味着，中文不能用于文件名。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：名词解释.md\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：glossary.md</span></span></code></pre></td></tr></table></div></div></div><p>文件名建议只使用小写字母，不使用大写字母。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>错误：TroubleShooting.md\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：troubleshooting.md</span></span></code></pre></td></tr></table></div></div></div><p>为了醒目，某些说明文件的文件名，可以使用大写字母，比如<code>README</code>、<code>LICENSE</code>。</p><p>文件名包含多个单词时，单词之间建议使用半角的连词线（<code>-</code>）分隔。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>不佳：advanced_usage.md\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>正确：advanced-usage.md</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=参考链接><span>7 参考链接</span>\n<a href=#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://www.taodocs.com/p-51273.html target=_blank rel=\"external nofollow noopener noreferrer\">产品手册中文写作规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by 华为</li><li><a href=http://guide.daocloud.io/dcs/%e5%86%99%e4%bd%9c%e8%a7%84%e8%8c%83%e5%92%8c%e6%a0%bc%e5%bc%8f%e8%a7%84%e8%8c%83-9153803.html target=_blank rel=\"external nofollow noopener noreferrer\">写作规范和格式规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by DaoCloud</li><li><a href=http://www.hitachi-tc.co.jp/company/thesis/thesis.pdf target=_blank rel=\"external nofollow noopener noreferrer\">技术写作技巧在日汉翻译中的应用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by 刘方</li><li><a href=https://www.lengoo.de/documents/styleguides/lengoo_styleguide_ZH.pdf target=_blank rel=\"external nofollow noopener noreferrer\">简体中文规范指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by lengoo</li><li><a href=https://open.leancloud.cn/copywriting-style-guide.html target=_blank rel=\"external nofollow noopener noreferrer\">文档风格指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by LeanCloud</li><li><a href=https://docs.google.com/document/d/1R8lMCPf6zCD5KEA8ekZ5knK77iw9J-vJ6vEopPemqZM/edit target=_blank rel=\"external nofollow noopener noreferrer\">豌豆荚文案风格指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by 豌豆荚</li><li><a href=https://github.com/sparanoid/chinese-copywriting-guidelines target=_blank rel=\"external nofollow noopener noreferrer\">中文文案排版指北<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by sparanoid</li><li><a href=http://w3c.github.io/clreq/ target=_blank rel=\"external nofollow noopener noreferrer\">中文排版需求<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by W3C</li><li><a href=http://www.ruanyifeng.com/blog/2017/02/filename-should-be-lowercase.html target=_blank rel=\"external nofollow noopener noreferrer\">为什么文件名要小写？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by 阮一峰</li><li><a href=https://developers.google.com/style/ target=_blank rel=\"external nofollow noopener noreferrer\">Google Developer Documentation Style Guide<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, by Google</li><li><a href=http://www.moe.gov.cn/ewebeditor/uploadfile/2015/01/13/20150113091154536.pdf target=_blank rel=\"external nofollow noopener noreferrer\">出版物上数字用法的规定（国家标准 GBT15835－2011）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://zh.wikisource.org/zh-hans/GB_3100-1993_%e5%9b%bd%e9%99%85%e5%8d%95%e4%bd%8d%e5%88%b6%e5%8f%8a%e5%85%b6%e5%ba%94%e7%94%a8 target=_blank rel=\"external nofollow noopener noreferrer\">GB 3100-1993 国际单位制及其应用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/DavidAnson/vscode-markdownlint target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, VSCode 插件</li><li><a href=https://github.com/vinta/pangu.js target=_blank rel=\"external nofollow noopener noreferrer\">pangu.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, 盘古之白系列插件</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/document-style-guide/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/document-style-guide.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/document-style-guide.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%AD%E6%96%87%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E7%9A%84%E5%86%99%E4%BD%9C%E8%A7%84%E8%8C%83&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%AD%E6%96%87%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E7%9A%84%E5%86%99%E4%BD%9C%E8%A7%84%E8%8C%83%7c%0A%7cURL%7chttps://lruihao.cn/posts/document-style-guide/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/document-style-guide.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/document-style-guide/ data-title=中文技术文档的写作规范><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/document-style-guide/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/document-style-guide/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/document-style-guide/ data-title=中文技术文档的写作规范 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/document-style-guide/ data-title=中文技术文档的写作规范><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/event-loop/ class=post-nav-item rel=prev title=\"浏览器原理 - 事件循环\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>浏览器原理 - 事件循环</a><a href=/posts/browser-rendering/ class=post-nav-item rel=next title=浏览器渲染原理>浏览器渲染原理<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#标题>标题</a><ol><li><a href=#层级>层级</a></li><li><a href=#原则>原则</a></li></ol></li><li><a href=#文本>文本</a><ol><li><a href=#字间距>字间距</a></li><li><a href=#句子>句子</a></li><li><a href=#写作风格>写作风格</a></li><li><a href=#英文处理>英文处理</a></li></ol></li><li><a href=#段落>段落</a><ol><li><a href=#原则-1>原则</a></li><li><a href=#引用>引用</a></li></ol></li><li><a href=#数值>数值</a><ol><li><a href=#半角数字>半角数字</a></li><li><a href=#千分号>千分号</a></li><li><a href=#货币>货币</a></li><li><a href=#数值范围>数值范围</a></li><li><a href=#变化程度的表示法>变化程度的表示法</a></li></ol></li><li><a href=#标点符号>标点符号</a><ol><li><a href=#原则-2>原则</a></li><li><a href=#句号>句号</a></li><li><a href=#逗号>逗号</a></li><li><a href=#顿号>顿号</a></li><li><a href=#分号>分号</a></li><li><a href=#引号>引号</a></li><li><a href=#括号>括号</a></li><li><a href=#冒号>冒号</a></li><li><a href=#省略号>省略号</a></li><li><a href=#感叹号>感叹号</a></li><li><a href=#破折号>破折号</a></li><li><a href=#连接号>连接号</a></li></ol></li><li><a href=#文档体系>文档体系</a><ol><li><a href=#结构>结构</a></li><li><a href=#文件名>文件名</a></li></ol></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/47cdd5023e575a59907d132466ed2a9b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/47cdd5023e575a59907d132466ed2a9b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/document-style-guide/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/document-style-guide/index.md",
    "content": "# 中文技术文档的写作规范\n\n\n> 以下参考来源：阮一峰的 [中文技术文档的写作规范](https://github.com/ruanyf/document-style-guide)\n\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如[微软](https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715)、[MailChimp](http://styleguide.mailchimp.com/)、[Apple](https://help.apple.com/asg/mac/2013/ASG_2013.pdf)、[Yahoo](https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)、[docker](https://docs.docker.com/opensource/doc-style/)、[Struts](https://struts.apache.org/docs/documentation-style-guide.html) 等等（维基百科有一份完整的[清单](https://en.wikipedia.org/wiki/List_of_style_guides)）。[中文的](https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md)也有不少，但都不令人满意，要么太简单，要么不太适用。\n\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\n\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\n\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\n\n<!--more-->\n\n## 标题\n\n### 层级\n\n标题分为四级。\n\n- 一级标题：文章的标题\n- 二级标题：文章主要部分的大标题\n- 三级标题：二级标题下面一级的小标题\n- 四级标题：三级标题下面某一方面的小标题\n\n下面是示例。\n\n```markdown\n# 一级标题\n\n## 二级标题\n\n### 三级标题\n\n#### 四级标题\n```\n\n> 注：最多支持六级，但是同论文写作一样，层级太深，会使得整体显得杂乱无章，当确实需要更深层级时，应另起新篇单独论述。\n\n### 原则\n\n（1）一级标题下，不能直接出现三级标题。\n\n示例：下面的文章结构，缺少二级标题。\n\n```markdown\n# 一级标题\n\n### 三级标题\n```\n\n（2）标题要避免孤立编号（即同级标题只有一个）。\n\n示例：下面的文章结构，`二级标题 A`只包含一个三级标题，完全可以省略`三级标题 A`。\n\n```markdown\n## 二级标题 A\n\n### 三级标题 A\n\n## 二级标题 B\n```\n\n（3）下级标题不重复上一级标题的名字。\n\n示例：下面的文章结构，二级标题与下属的三级标题同名，建议避免。\n\n```markdown\n## 概述\n\n### 概述\n```\n\n（4）谨慎使用四级标题，尽量避免出现，保持层级的简单，防止出现过于复杂的章节。\n\n如果三级标题下有并列性的内容，建议只使用项目列表（Item list）。\n\n示例：下面的结构二要好于结构一。结构一适用的场景，主要是较长篇幅的内容。\n\n```markdown\n结构一\n\n### 三级标题\n\n#### 四级标题 A\n\n#### 四级标题 B\n\n#### 四级标题 C\n\n结构二\n\n### 三级标题\n\n**（1）A**\n\n**（2）B**\n\n**（3）C**\n```\n\n## 文本\n\n### 字间距\n\n（1）全角中文字符与半角英文字符之间，应有一个半角空格。\n\n```\n错误：本文介绍如何快速启动Windows系统。\n\n正确：本文介绍如何快速启动 Windows 系统。\n```\n\n（2）全角中文字符与半角阿拉伯数字之间，有没有半角空格都可，但必须保证风格统一，不能两种风格混杂。\n\n```\n正确：2011年5月15日，我订购了5台笔记本电脑与10台平板电脑。\n\n正确：2011 年 5 月 15 日，我订购了 5 台笔记本电脑与 10 台平板电脑。\n```\n\n半角的百分号，视同阿拉伯数字。\n\n```\n正确：今年我国经济增长率是6.5%。\n\n正确：今年我国经济增长率是 6.5%。\n```\n\n（3）英文单位若不翻译，单位前的阿拉伯数字与单位符号之间，应留出适当的空隙。\n\n```\n例1：一部容量为 16 GB 的智能手机\n\n例2：1 h = 60 min = 3,600 s\n```\n\n（4）半角英文字符和半角阿拉伯数字，与全角标点符号之间不留空格。\n\n```\n错误：他的电脑是 MacBook Air 。\n\n正确：他的电脑是 MacBook Air。\n```\n\n### 句子\n\n（1）避免使用长句。\n\n不包含任何标点符号的单个句子，或者以逗号分隔的句子构件，长度尽量保持在 20 个字以内；20 ～ 29 个字的句子，可以接受；30 ～ 39 个字的句子，语义必须明确，才能接受；多于 40 个字的句子，任何情况下都不能接受。\n\n```\n错误：本产品适用于从由一台服务器进行动作控制的单一节点结构到由多台服务器进行动作控制的并行处理程序结构等多种体系结构。\n\n正确：本产品适用于多种体系结构。无论是由一台服务器（单一节点结构），还是由多台服务器（并行处理结构）进行动作控制，均可以使用本产品。\n```\n\n逗号分割的长句，总长度不应该超过 100 字或者正文的 3 行。\n\n（2）尽量使用简单句和并列句，避免使用复合句。\n\n```\n并列句：他昨天生病了，没有参加会议。\n\n复合句：那个昨天生病的人没有参加会议。\n```\n\n（3）同样一个意思，尽量使用肯定句表达，不使用否定句表达。\n\n```\n错误：请确认没有接通装置的电源。\n\n正确：请确认装置的电源已关闭。\n```\n\n（4）避免使用双重否定句。\n\n```\n错误：没有删除权限的用户，不能删除此文件。\n\n正确：用户必须拥有删除权限，才能删除此文件。\n```\n\n### 写作风格\n\n（1）尽量不使用被动语态，改为使用主动语态。\n\n```\n错误：假如此软件尚未被安装，\n\n正确：假如尚未安装这个软件，\n```\n\n（2）不使用非正式的语言风格。\n\n```\n错误：Lady Gaga 的演唱会真是酷毙了，从没看过这么给力的表演！！！\n\n正确：无法参加本次活动，我深感遗憾。\n```\n\n（3）不使用冷僻、生造或者文言文的词语，而要使用现代汉语的常用表达方式。\n\n```\n错误：这是唯二的快速启动的方法。\n\n正确：这是仅有的两种快速启动的方法。\n```\n\n（4）用对“的”、“地”、“得”。\n\n```\n她露出了开心的笑容。\n（形容词＋的＋名词）\n\n她开心地笑了。\n（副词＋地＋动词）\n\n她笑得很开心。\n（动词＋得＋副词）\n```\n\n（5）使用代词时（比如“其”、“该”、“此”、“这”等词），必须明确指代的内容，保证只有一个含义。\n\n```\n错误：从管理系统可以监视中继系统和受其直接控制的分配系统。\n\n正确：从管理系统可以监视两个系统：中继系统和受中继系统直接控制的分配系统。\n```\n\n（6）名词前不要使用过多的形容词。\n\n```\n错误：此设备的使用必须在接受过本公司举办的正式的设备培训的技师的指导下进行。\n\n正确：此设备必须在技师的指导下使用，且指导技师必须接受过由本公司举办的正式设备培训。\n```\n\n### 英文处理\n\n（1）英文原文如果使用了复数形式，翻译成中文时，应该将其还原为单数形式。\n\n```\n英文：...information stored in random access memory (RAMs)...\n\n中文：⋯⋯存储在随机存取存储器（RAM）里的信息⋯⋯\n```\n\n（2）外文缩写可以使用半角圆点 (`.`) 表示缩写。\n\n```\nU.S.A.\nApple, Inc.\n```\n\n（3）表示中文时，英文省略号（`...`）应改为中文省略号（`⋯⋯`）。\n\n```\n英文：5 minutes later...\n\n中文：5 分钟过去了⋯⋯\n```\n\n（4）英文书名或电影名改用中文表达时，双引号应改为书名号。\n\n```\n英文：He published an article entitled \"The Future of the Aviation\".\n\n中文：他发表了一篇名为《航空业的未来》的文章。\n```\n\n（5）第一次出现英文词汇时，在括号中给出中文标注。此后再次出现时，直接使用英文缩写即可。\n\n```\nIOC（International Olympic Committee，国际奥林匹克委员会）。这样定义后，便可以直接使用“IOC”了。\n```\n\n（6）专有名词中每个词第一个字母均应大写，非专有名词则不需要大写。\n\n```\n“American Association of Physicists in Medicine”（美国医学物理学家协会）是专有名词，需要大写。\n\n“online transaction processing”（在线事务处理）不是专有名词，不应大写。\n```\n\n## 段落\n\n### 原则\n\n- 一个段落只能有一个主题，或一个中心句子。\n- 段落的中心句子放在段首，对全段内容进行概述。后面陈述的句子为中心句子服务。\n- 一个段落的长度不能超过七行，最佳段落长度小于等于四行。\n- 段落的句子语气要使用陈述和肯定语气，避免使用感叹语气。\n- 段落之间使用一个空行隔开。\n- 段落开头不要留出空白字符。\n\n### 引用\n\n引用第三方内容时，应注明出处。\n\n```\nOne man’s constant is another man’s variable. — Alan Perlis\n```\n\n如果是全篇转载，请在全文开头显著位置注明作者和出处，并链接至原文。\n\n```\n本文转载自 WikiQuote\n```\n\n使用外部图片时，必须在图片下方或文末标明来源。\n\n```\n本文部分图片来自 Wikipedia\n```\n\n## 数值\n\n### 半角数字\n\n阿拉伯数字一律使用半角形式，不得使用全角形式。\n\n```\n错误：这件商品的价格是１０００元。\n\n正确：这件商品的价格是 1000 元。\n```\n\n### 千分号\n\n数值为千位以上，应添加千分号（半角逗号）。\n\n```\nXXX 公司的实收资本为 ￥1,258,000 人民币。\n```\n\n对于 4 位的数值，千分号是选用的，比如`1000`和`1,000`都可以接受。对于 4 位以上的数值，应添加千分号。\n\n### 货币\n\n货币应为阿拉伯数字，并在数字前写出货币符号，或在数字后写出货币中文名称。\n\n```\n$1,000\n1,000 美元\n```\n\n英文的货币名称，建议参考国际标准 [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)。\n\n### 数值范围\n\n表示数值范围时，用波浪线（`～`）或一字线（`—`）连接。参见《标点符号》一节的“连接号”部分。\n\n带有单位或百分号时，两个数字建议都要加上单位或百分号。\n\n```\n132 kg～234 kg\n\n67%～89%\n```\n\n### 变化程度的表示法\n\n数字的增加要使用“增加了”、“增加到”。“了”表示增量，“到”表示定量。\n\n```\n增加到过去的两倍\n（过去为一，现在为二）\n\n增加了两倍\n（过去为一，现在为三）\n```\n\n数字的减少要使用“降低了”、“降低到”。“了”表示增量，“到”表示定量。\n\n```\n降低到百分之八十\n（定额是一百，现在是八十）\n\n降低了百分之八十\n（原来是一百，现在是二十）\n```\n\n不能用“降低 N 倍”或“减少 N 倍”的表示法，要用“降低百分之几”或“减少百分之几”。因为减少（或降低）一倍表示数值原来为一百，现在等于零。\n\n## 标点符号\n\n### 原则\n\n（1）中文语句的标点符号，均应该采取全角符号，这样可以与全角文字保持视觉的一致。\n\n（2）如果整句为英文，则该句使用英文/半角标点。\n\n（3）句号、问号、叹号、逗号、顿号、分号和冒号不得出现在一行之首。\n\n（4）点号（句号、逗号、顿号、分号、冒号）不得出现在标题的末尾，而标号（引号、括号、破折号、省略号、书名号、着重号、间隔号、叹号、问号）可以。\n\n### 句号\n\n（1）中文语句的结尾处应该用全角句号（`。`）。\n\n（2）句子末尾用括号加注时，句号应在括号之外。\n\n```\n错误：关于文件的输出，请参照第 1.3 节（见第 26 页。）\n\n正确：关于文件的输出，请参照第 1.3 节（见第 26 页）。\n```\n\n### 逗号\n\n（1）逗号（`，`）表示句子内部的一般性停顿。\n\n（2）注意避免“一逗到底”，即整个段落除了结尾，全部停顿都使用逗号。\n\n### 顿号\n\n（1）句子内部的并列词，应该用全角顿号 (`、`) 分隔，而不用逗号，即使并列词是英语也是如此。\n\n```\n错误：我最欣赏的科技公司有 Google, Facebook, 腾讯, 阿里和百度等。\n\n正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。\n```\n\n（2）英文句子中，并列词语之间使用半角逗号（`,`）分隔。\n\n```\n例句：Microsoft Office includes Word, Excel, PowerPoint, Outlook and other components.\n```\n\n（3）中文句子内部的并列词，最后一个尽量使用（`和`）来连接，使句子读起来更加连贯，下面两个句子都可以，第二个更优。\n\n```\n正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里，以及百度等。\n\n正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。\n```\n\n### 分号\n\n（1）分号（`；`）表示复句内部并列分句之间的停顿。\n\n### 引号\n\n（1）引用时，应该使用全角双引号（`“ ”`），注意前后双引号不同。\n\n```\n例句：许多人都认为客户服务的核心是“友好”和“专业”。\n```\n\n（2）引号里面还要用引号时，外面一层用双引号，里面一层用单引号（`‘ ’`），注意前后单引号不同。\n\n```\n例句：鲍勃解释道：“我要放音乐，可萨利说，‘不行！’。”\n```\n\n### 括号\n\n（1）补充说明时，使用全角圆括号（`（）`），括号前后不加空格。\n\n```\n例句：请确认所有的连接（电缆和接插件）均安装牢固。\n```\n\n（2）几种括号的中英文名称。\n\n|       |            英文             | 中文  |\n| ----- | :-------------------------: | :----: |\n| `{ }` | braces 或 curly brackets   | 大括号 |\n| `[ ]` | square brackets 或 brackets | 方括号 |\n| `< >` |       angled brackets       | 尖括号 |\n| `( )` |         parentheses         | 圆括号 |\n\n### 冒号\n\n（1）全角冒号（`：`）常用在需要解释的词语后边，引出解释和说明。\n\n```\n例句：请确认以下几项内容：时间、地点、活动名称和来宾数量。\n```\n\n（2）表示时间时，应使用半角冒号（`:`）。\n\n```\n例句：早上 8:00\n```\n\n### 省略号\n\n（1）省略号（`⋯⋯`）表示语句未完、或者语气的不连续。\n\n（2）省略号占两个汉字空间、包含六个省略点，不要使用`。。。`或`...`等非标准形式。\n\n（3）省略号不应与“等”这个词一起使用。\n\n```\n错误：我们为会餐准备了香蕉、苹果、梨…等各色水果。\n\n正确：我们为会餐准备了各色水果，有香蕉、苹果、梨⋯⋯\n\n正确：我们为会餐准备了香蕉、苹果、梨等各色水果。\n```\n\n### 感叹号\n\n（1）应该使用平静的语气叙述，尽量避免使用感叹号（`！`）。\n\n（2）不得多个感叹号连用，比如`！！`和`!!!`。\n\n### 破折号\n\n（1）破折号`————`一般用于进一步解释。\n\n（2）破折号应占两个汉字的位置。如果破折号本身只占一个汉字的位置，那么前后应该留出一个半角空格。\n\n```\n例句：直觉————尽管它并不总是可靠的————告诉我，这事可能出了些问题。\n\n例句：直觉 —— 尽管它并不总是可靠的 —— 告诉我，这事可能出了些问题。\n```\n\n### 连接号\n\n（1）连接号用于连接两个类似的词。\n\n（2）以下场合应该使用直线连接号（`-`），占一个半角字符的位置。\n\n- 两个名词的复合\n- 图表编号\n\n```\n例句：氧化-还原反应\n\n例句：图 1-1\n```\n\n（3）数值范围（例如日期、时间或数字）应该使用波浪连接号（`～`）或一字号（`—`），占一个全角字符的位置。\n\n```\n例句：2009 年～2011 年\n```\n\n注意，波浪连接号前后两个值都建议加上单位。\n\n（4）波浪连接号也可以用汉字“至”代替。\n\n```\n例句：周围温度：-20 °C 至 -10 °C\n```\n\n## 文档体系\n\n### 结构\n\n软件手册是一部完整的书，建议采用下面的结构。\n\n- **简介**（Introduction）：[必备] [文件] 提供对产品和文档本身的总体的、扼要的说明\n- **快速上手**（Getting Started）：[可选] [文件] 如何最快速地使用产品\n- **入门篇**（Basics）：[必备] [目录] 又称“使用篇”，提供初级的使用教程\n  - **环境准备**（Prerequisite）：[必备] [文件] 软件使用需要满足的前置条件\n  - **安装**（Installation）：[可选] [文件] 软件的安装方法\n  - **设置**（Configuration）：[必备] [文件] 软件的设置\n- **进阶篇**（Advanced)：[可选] [目录] 又称“开发篇”，提供中高级的开发教程\n- **API**（Reference）：[可选] [目录 | 文件] 软件 API 的逐一介绍\n- **FAQ**：[可选] [文件] 常见问题解答\n- **附录**（Appendix）：[可选] [目录] 不属于教程本身、但对阅读教程有帮助的内容\n  - **Glossary**：[可选] [文件] 名词解释\n  - **Recipes**：[可选] [文件] 最佳实践\n  - **Troubleshooting**：[可选] [文件] 故障处理\n  - **ChangeLog**：[可选] [文件] 版本说明\n  - **Feedback**：[可选] [文件] 反馈方式\n\n下面是两个真实范例，可参考。\n\n- [Redux 手册](https://redux.js.org/introduction/getting-started)\n- [Atom 手册](http://flight-manual.atom.io/)\n\n### 文件名\n\n文档的文件名不得含有空格。\n\n文件名必须使用半角字符，不得使用全角字符。这也意味着，中文不能用于文件名。\n\n```\n错误：名词解释.md\n\n正确：glossary.md\n```\n\n文件名建议只使用小写字母，不使用大写字母。\n\n```\n错误：TroubleShooting.md\n\n正确：troubleshooting.md\n```\n\n为了醒目，某些说明文件的文件名，可以使用大写字母，比如`README`、`LICENSE`。\n\n文件名包含多个单词时，单词之间建议使用半角的连词线（`-`）分隔。\n\n```\n不佳：advanced_usage.md\n\n正确：advanced-usage.md\n```\n\n## 参考链接\n\n- [产品手册中文写作规范](https://www.taodocs.com/p-51273.html), by 华为\n- [写作规范和格式规范](http://guide.daocloud.io/dcs/写作规范和格式规范-9153803.html), by DaoCloud\n- [技术写作技巧在日汉翻译中的应用](http://www.hitachi-tc.co.jp/company/thesis/thesis.pdf), by 刘方\n- [简体中文规范指南](https://www.lengoo.de/documents/styleguides/lengoo_styleguide_ZH.pdf), by lengoo\n- [文档风格指南](https://open.leancloud.cn/copywriting-style-guide.html), by LeanCloud\n- [豌豆荚文案风格指南](https://docs.google.com/document/d/1R8lMCPf6zCD5KEA8ekZ5knK77iw9J-vJ6vEopPemqZM/edit), by 豌豆荚\n- [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines), by sparanoid\n- [中文排版需求](http://w3c.github.io/clreq/), by W3C\n- [为什么文件名要小写？](http://www.ruanyifeng.com/blog/2017/02/filename-should-be-lowercase.html), by 阮一峰\n- [Google Developer Documentation Style Guide](https://developers.google.com/style/), by Google\n- [出版物上数字用法的规定（国家标准 GBT15835－2011）](http://www.moe.gov.cn/ewebeditor/uploadfile/2015/01/13/20150113091154536.pdf)\n- [GB 3100-1993 国际单位制及其应用](https://zh.wikisource.org/zh-hans/GB_3100-1993_国际单位制及其应用)\n- [markdownlint](https://github.com/DavidAnson/vscode-markdownlint), VSCode 插件\n- [pangu.js](https://github.com/vinta/pangu.js), 盘古之白系列插件\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/document-style-guide/  \n\n"
  },
  {
    "path": "posts/dongtaisub/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo 个性化 - Next 主题动态显示 Subtitle | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\n\"><meta name=keywords content='Hexo,JavaScript'><meta itemprop=name content=\"hexo 个性化 - next 主题动态显示 subtitle\"><meta itemprop=description content=\"本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\"><meta itemprop=datePublished content=\"2018-08-20T16:16:40+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"749\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/dongtaisub/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo 个性化 - next 主题动态显示 subtitle\"><meta property=\"og:description\" content=\"本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-20T16:16:40+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo 个性化 - next 主题动态显示 subtitle\"><meta name=twitter:description content=\"本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/dongtaisub/ title=\"hexo 个性化 - next 主题动态显示 subtitle | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/heart/ title=\"“高逼格”C 语言画心\"><link rel=next type=text/html href=https://lruihao.cn/posts/hexo-d-error/ title=\"hexo d 出错\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/dongtaisub/index.md title=\"hexo 个性化 - next 主题动态显示 subtitle | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/dongtaisub\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, JavaScript\",\"wordcount\":749,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/dongtaisub\\/\",\"datePublished\":\"2018-08-20T16:16:40+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/dongtaisub/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo 个性化 - Next 主题动态显示 Subtitle</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo 个性化 - Next 主题动态显示 Subtitle</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-20 16:16:40\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-20>2018-08-20</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"749 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#修改站点配置文件主要修改-subtitle>修改站点配置文件，主要修改 subtitle</a></li><li><a href=#修改-headerindexswig>修改 header\\index.swig</a></li><li><a href=#修改-brandswig>修改 brand.swig</a></li><li><a href=#今日诗词>今日诗词</a></li><li><a href=#api-调用>api 调用</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。<a href=https://www.jianshu.com/p/df2c844eeabf target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（关键词：js, 后加载）<br>但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：</p></blockquote><h2 class=heading-element id=修改站点配置文件主要修改-subtitle><span>1 修改站点配置文件，主要修改 subtitle</span>\n<a href=#%e4%bf%ae%e6%94%b9%e7%ab%99%e7%82%b9%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e4%b8%bb%e8%a6%81%e4%bf%ae%e6%94%b9-subtitle class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>subtitle: 不怕万人阻挡，只怕自己投降。W 你如何回忆，决定你是一个怎样的人！W 这是一个句子。W 这是另一个句子。W 这些句子你们不要搞一样的不然怎么叫个性签名-_-！。</span></span></code></pre></td></tr></table></div></div></div><p>句子与句子之间以 W 分割，后续需要根据该标志位去拆分句子组。<br><strong>小伙伴们博主这里只是提供一个思路，不要和我用一模一样的啊，不然撞了多尴尬呀</strong></p><h2 class=heading-element id=修改-headerindexswig><span>2 修改 header\\index.swig</span>\n<a href=#%e4%bf%ae%e6%94%b9-headerindexswig class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>修改 <code>themes\\next\\layout_partials\\header</code> 下面的 <code>index.swig</code> 文件<br>在最开头添加如下代码：<br>（这里用的原博的 js)</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=o>&lt;</span><span class=n>script</span><span class=o>&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=n>function</span><span class=w> </span><span class=nf>GetRandomNum</span><span class=p>(</span><span class=n>Min</span><span class=p>,</span><span class=n>Max</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>var</span><span class=w> </span><span class=n>Range</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Max</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>Min</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>var</span><span class=w> </span><span class=n>Rand</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=p>(</span><span class=n>Min</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>round</span><span class=p>(</span><span class=n>Rand</span><span class=w> </span><span class=o>*</span><span class=w> </span><span class=n>Range</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>function</span><span class=w> </span><span class=nf>setSidebarMarginTop</span><span class=w> </span><span class=p>(</span><span class=n>headerOffset</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>$</span><span class=p>(</span><span class=err>&#39;#</span><span class=n>sidebar</span><span class=err>&#39;</span><span class=p>).</span><span class=na>css</span><span class=p>({</span><span class=w> </span><span class=err>&#39;</span><span class=n>margin</span><span class=o>-</span><span class=n>top</span><span class=err>&#39;</span><span class=p>:</span><span class=w> </span><span class=n>headerOffset</span><span class=w> </span><span class=p>});</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=n>function</span><span class=w> </span><span class=nf>getHeaderOffset</span><span class=w> </span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>$</span><span class=p>(</span><span class=err>&#39;</span><span class=p>.</span><span class=na>header</span><span class=o>-</span><span class=n>inner</span><span class=err>&#39;</span><span class=p>).</span><span class=na>height</span><span class=p>()</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>CONFIG</span><span class=p>.</span><span class=na>sidebar</span><span class=p>.</span><span class=na>offset</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>window</span><span class=p>.</span><span class=na>onload</span><span class=o>=</span><span class=n>function</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>var</span><span class=w> </span><span class=n>subtitle</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;{{config.subtitle}}&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=kd>var</span><span class=w> </span><span class=n>mytitle</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>subtitle</span><span class=p>.</span><span class=na>split</span><span class=p>(</span><span class=s>&#34;W&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=kd>var</span><span class=w> </span><span class=n>max</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>mytitle</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=kd>var</span><span class=w> </span><span class=n>index</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>GetRandomNum</span><span class=p>(</span><span class=n>0</span><span class=p>,</span><span class=n>max</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=kd>var</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>mytitle</span><span class=o>[</span><span class=n>index</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=n>$</span><span class=p>(</span><span class=s>&#34;#helloTitle&#34;</span><span class=p>).</span><span class=na>html</span><span class=p>(</span><span class=n>text</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=kd>var</span><span class=w> </span><span class=n>headOffset</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>getHeaderOffset</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=n>setSidebarMarginTop</span><span class=p>(</span><span class=n>headOffset</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=c1>//动态 subtitle 设置</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=修改-brandswig><span>3 修改 brand.swig</span>\n<a href=#%e4%bf%ae%e6%94%b9-brandswig class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>找到</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% if subtitle %}\n</span></span><span class=line><span class=cl>  {% if theme.seo %}\n</span></span><span class=line><span class=cl>    ...\n</span></span><span class=line><span class=cl>  {% else %}\n</span></span><span class=line><span class=cl>    ...\n</span></span><span class=line><span class=cl>  {% endif %}\n</span></span><span class=line><span class=cl>{% endif %}</span></span></code></pre></td></tr></table></div></div></div><p>把这一段，把原来的修改成以下代码即可<br>ps: <code>title</code>和<code>subtitle</code>的<code>字体</code>还有<code>颜色</code>也可以在这个文件修改，即使用<code>style</code>标签，按个人爱好修改也可不要。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% if subtitle %}\n</span></span><span class=line><span class=cl>  {% if theme.seo %}\n</span></span><span class=line><span class=cl>    &lt;p class=&#34;site-subtitle&#34; id=&#34;helloTitle&#34; itemprop=&#34;description&#34;&gt;&lt;/p&gt;\n</span></span><span class=line><span class=cl>  {% else %}\n</span></span><span class=line><span class=cl>    &lt;p id=&#34;helloTitle&#34; class=&#34;site-subtitle&#34;&gt;&lt;/p&gt;\n</span></span><span class=line><span class=cl>  {% endif %}\n</span></span><span class=line><span class=cl>{% endif %}</span></span></code></pre></td></tr></table></div></div></div><p>之后部署后每次刷新就可以看到不同的 subtitle 了，开心 😀</p><h2 class=heading-element id=今日诗词><span>4 今日诗词</span>\n<a href=#%e4%bb%8a%e6%97%a5%e8%af%97%e8%af%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://www.jinrishici.com/ target=_blank rel=\"external nofollow noopener noreferrer\">今日诗词<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-XML data-lang=XML><span class=line><span class=cl><span class=nt>&lt;span</span> <span class=na>id=</span><span class=s>&#34;jinrishici-sentence&#34;</span><span class=nt>&gt;</span>正在加载今日诗词 ....<span class=nt>&lt;/span&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://sdk.jinrishici.com/v2/browser/jinrishici.js&#34;</span> <span class=na>charset=</span><span class=s>&#34;utf-8&#34;</span><span class=nt>&gt;&lt;/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><hr><div id=jinrishici-sentence style=text-align:center>正在加载今日诗词 ....</div><script src=https://sdk.jinrishici.com/v2/browser/jinrishici.js></script><hr><h2 class=heading-element id=api-调用><span>5 api 调用</span>\n<a href=#api-%e8%b0%83%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>直接 js 调用 api 简单快速</p><blockquote><p>2021/9/30 更新<br><a href=https://api.imjad.cn/hitokoto.md target=_blank rel=\"external nofollow noopener noreferrer\">一言 api-参数详见<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 已经挂了</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://api.imjad.cn/hitokoto/?cat=&amp;charset=utf-8&amp;length=&amp;encode=js&amp;fun=sync&amp;source=&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;hitokoto&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>hitokoto</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/dongtaisub/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/dongtaisub.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/dongtaisub.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+%E4%B8%AA%E6%80%A7%E5%8C%96+-+next+%E4%B8%BB%E9%A2%98%E5%8A%A8%E6%80%81%E6%98%BE%E7%A4%BA+subtitle&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+%E4%B8%AA%E6%80%A7%E5%8C%96+-+next+%E4%B8%BB%E9%A2%98%E5%8A%A8%E6%80%81%E6%98%BE%E7%A4%BA+subtitle%7c%0A%7cURL%7chttps://lruihao.cn/posts/dongtaisub/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/dongtaisub.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/dongtaisub/ data-title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\" data-hashtags=Hexo,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/dongtaisub/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/dongtaisub/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/dongtaisub/ data-title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/dongtaisub/ data-title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/heart/ class=post-nav-item rel=prev title=\"“高逼格”C 语言画心\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>“高逼格”C 语言画心</a><a href=/posts/hexo-d-error/ class=post-nav-item rel=next title=\"Hexo D 出错\">Hexo D 出错<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#修改站点配置文件主要修改-subtitle>修改站点配置文件，主要修改 subtitle</a></li><li><a href=#修改-headerindexswig>修改 header\\index.swig</a></li><li><a href=#修改-brandswig>修改 brand.swig</a></li><li><a href=#今日诗词>今日诗词</a></li><li><a href=#api-调用>api 调用</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e05e69f3640d00f6512576fbd1fbc71d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e05e69f3640d00f6512576fbd1fbc71d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/dongtaisub/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/dongtaisub/index.md",
    "content": "# Hexo 个性化 - Next 主题动态显示 Subtitle\n\n\n> 本文适合我这种纯小白。\n> 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。[传送门](https://www.jianshu.com/p/df2c844eeabf)（关键词：js, 后加载）  \n> 但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\n\n<!--more-->\n\n## 修改站点配置文件，主要修改 subtitle\n\n```\nsubtitle: 不怕万人阻挡，只怕自己投降。W 你如何回忆，决定你是一个怎样的人！W 这是一个句子。W 这是另一个句子。W 这些句子你们不要搞一样的不然怎么叫个性签名-_-！。\n```\n\n句子与句子之间以 W 分割，后续需要根据该标志位去拆分句子组。  \n**小伙伴们博主这里只是提供一个思路，不要和我用一模一样的啊，不然撞了多尴尬呀**\n\n## 修改 header\\index.swig\n\n修改 `themes\\next\\layout_partials\\header` 下面的 `index.swig` 文件  \n在最开头添加如下代码：  \n（这里用的原博的 js)\n\n```java\n<script>\n function GetRandomNum(Min,Max)\n  {\n    var Range = Max - Min;\n    var Rand = Math.random();\n    return(Min + Math.round(Rand * Range));\n  }\nfunction setSidebarMarginTop (headerOffset) {\n    return $('#sidebar').css({ 'margin-top': headerOffset });\n  }\n function getHeaderOffset () {\n    return $('.header-inner').height() + CONFIG.sidebar.offset;\n  }\n  window.onload=function(){\n    var subtitle = \"{{config.subtitle}}\";\n     var mytitle = subtitle.split(\"W\");\n     var max = mytitle.length-1;\n     var index = GetRandomNum(0,max);\n     var text = mytitle[index];\n     $(\"#helloTitle\").html(text);\n     var headOffset = getHeaderOffset();\n     setSidebarMarginTop(headOffset);\n     //动态 subtitle 设置\n  }\n</script>\n```\n\n## 修改 brand.swig\n\n找到\n\n```swag\n{% if subtitle %}\n  {% if theme.seo %}\n    ...\n  {% else %}\n    ...\n  {% endif %}\n{% endif %}\n```\n\n把这一段，把原来的修改成以下代码即可  \nps: `title`和`subtitle`的`字体`还有`颜色`也可以在这个文件修改，即使用`style`标签，按个人爱好修改也可不要。\n\n```swag\n{% if subtitle %}\n  {% if theme.seo %}\n    <p class=\"site-subtitle\" id=\"helloTitle\" itemprop=\"description\"></p>\n  {% else %}\n    <p id=\"helloTitle\" class=\"site-subtitle\"></p>\n  {% endif %}\n{% endif %}\n```\n\n之后部署后每次刷新就可以看到不同的 subtitle 了，开心 😀\n\n## 今日诗词\n\n[今日诗词](https://www.jinrishici.com/)\n\n```XML 今日诗词\n<span id=\"jinrishici-sentence\">正在加载今日诗词 ....</span>\n<script src=\"https://sdk.jinrishici.com/v2/browser/jinrishici.js\" charset=\"utf-8\"></script>\n```\n\n---\n\n<div id=\"jinrishici-sentence\" style=\"text-align:center;\">正在加载今日诗词 ....</div>\n<script src=\"https://sdk.jinrishici.com/v2/browser/jinrishici.js\" charset=\"utf-8\"></script>\n\n---\n\n## api 调用\n\n直接 js 调用 api 简单快速\n\n> 2021/9/30 更新  \n> [一言 api-参数详见](https://api.imjad.cn/hitokoto.md) 已经挂了\n\n```html 一言 api\n<div>\n  <script type=\"text/javascript\" src=\"https://api.imjad.cn/hitokoto/?cat=&charset=utf-8&length=&encode=js&fun=sync&source=\"></script>\n  <div id=\"hitokoto\">\n    <script>\n      hitokoto();\n    </script>\n  </div>\n</div>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/dongtaisub/  \n\n"
  },
  {
    "path": "posts/draggable-dashboard/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"拖拽式仪表盘的设计与开发 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"}]}"
  },
  {
    "path": "posts/draggable-dashboard/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘的设计与开发 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"关于拖拽式仪表盘的设计与开发系列文章。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"拖拽式仪表盘的设计与开发\"><meta itemprop=description content=\"关于拖拽式仪表盘的设计与开发系列文章。\"><meta itemprop=datePublished content=\"2023-10-12T15:16:48+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"拖拽式仪表盘,dashboard,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/draggable-dashboard/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘的设计与开发\"><meta property=\"og:description\" content=\"关于拖拽式仪表盘的设计与开发系列文章。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘的设计与开发\"><meta name=twitter:description content=\"关于拖拽式仪表盘的设计与开发系列文章。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/draggable-dashboard/ title=\"拖拽式仪表盘的设计与开发 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/draggable-dashboard/index.xml title=\"拖拽式仪表盘的设计与开发 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/draggable-dashboard/feed.json title=\"拖拽式仪表盘的设计与开发 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/draggable-dashboard/feed.json title=\"拖拽式仪表盘的设计与开发 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/draggable-dashboard/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘的设计与开发</li></ol></nav><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>拖拽式仪表盘的设计与开发 <sup>6</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 8228 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 8.23K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/85605c5ede51aa5fde314908a0e1dd18.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/85605c5ede51aa5fde314908a0e1dd18.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/draggable-dashboard/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/draggable-dashboard/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>拖拽式仪表盘的设计与开发 | 菠菜眾長</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 25 Apr 2024 13:29:53 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/posts/draggable-dashboard/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item></channel></rss>"
  },
  {
    "path": "posts/draggable-dashboard/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/posts/draggable-dashboard/</title><link rel=canonical href=https://lruihao.cn/posts/draggable-dashboard/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/posts/draggable-dashboard/\"></head></html>"
  },
  {
    "path": "posts/drop-shadow/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>现代 CSS 解决方案之异形元素怎么设置阴影？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\n\"><meta name=keywords content='CSS,drop-shadow,box-shadow'><meta itemprop=name content=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><meta itemprop=description content=\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\"><meta itemprop=datePublished content=\"2024-07-15T10:40:12+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=wordCount content=\"402\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,drop-shadow,box-shadow\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/drop-shadow/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><meta property=\"og:description\" content=\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-07-15T10:40:12+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-28T17:12:48+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"drop-shadow\"><meta property=\"article:tag\" content=\"box-shadow\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><meta name=twitter:description content=\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/drop-shadow/ title=\"现代 CSS 解决方案之异形元素怎么设置阴影？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ title=\"🔖 Embed bookmark of FixIt Docs.\"><link rel=next type=text/html href=https://lruihao.cn/posts/git-summary/ title=\"Git 统计代码量\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/drop-shadow/index.md title=\"现代 CSS 解决方案之异形元素怎么设置阴影？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/drop-shadow\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, drop-shadow, box-shadow\",\"wordcount\":402,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/drop-shadow\\/\",\"datePublished\":\"2024-07-15T10:40:12+08:00\",\"dateModified\":\"2024-07-28T17:12:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/drop-shadow/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>异形元素怎么设置阴影？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>现代 CSS 解决方案</span>\n<span class=collection-count>5</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？</a></li><li class=collection-item><a href=/posts/scrollbar-styling/ title=标准滚动条控制规范>标准滚动条控制规范</a></li><li class=collection-item><a href=/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</a></li><li class=collection-item><span class=active title=异形元素怎么设置阴影？>异形元素怎么设置阴影？</span></li><li class=collection-item><a href=/posts/css-round/ title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位</a></li></ul><div class=collection-nav-simple><a href=/posts/fixit-docs-bookmark/ class=collection-nav-item rel=prev title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>4/5</span><a href=/posts/css-round/ class=collection-nav-item rel=next title=\"CSS 四舍五入数值单位\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>现代 CSS 解决方案之异形元素怎么设置阴影？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-15 10:40:12\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-15>2024-07-15</time></span>&nbsp;<span title=\"更新于 2024-07-28 17:12:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-28>2024-07-28</time></span>&nbsp;<span title=\"402 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#遇到的问题>遇到的问题</a></li><li><a href=#解决方法>解决方法</a></li><li><a href=#浏览器支持>浏览器支持</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-28，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>今天记录一个 CSS 小知识点，如何给异形元素设置阴影。</p><h2 class=heading-element id=遇到的问题><span>1 遇到的问题</span>\n<a href=#%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>之前给博客头部设置了一个 <a href=/images/drop.responsive.svg>异形元素</a>，当时给它父元素设置了如下 <code>box-shadow</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>header</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>box-shadow</span><span class=p>:</span> <span class=mi>0</span> <span class=mi>0</span> <span class=mf>1.5</span><span class=kt>rem</span> <span class=mi>0</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mf>0.1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>发现只有矩形部分有阴影，异形部分没有阴影。是因为 <code>box-shadow</code> 只能给盒子模型设置阴影，异形元素无法设置阴影的。</p><p>那怎么给异形元素设置阴影呢？</p><h2 class=heading-element id=解决方法><span>2 解决方法</span>\n<a href=#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以使用 <code>filter</code> 属性的 <code>drop-shadow</code> 函数来给异形元素设置阴影。</p><p><code>drop-shadow</code> 绘制的投影实际上是输入图像的 alpha 蒙版的一个模糊的、偏移的版本，用特定的颜色绘制并合成在图像下面。</p><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>备注<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>这个函数有点类似于 <code>box-shadow</code> 属性。<code>box-shadow</code> 属性在元素的整个框后面创建一个矩形阴影，而 <code>drop-shadow()</code> 过滤器则是创建一个符合图像本身形状 (alpha 通道) 的阴影。</div></div></div><p>语法如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>drop-shadow</span><span class=o>(</span><span class=nt>offset-x</span> <span class=nt>offset-y</span> <span class=nt>standard-deviation</span> <span class=nt>color</span><span class=o>)</span></span></span></code></pre></td></tr></table></div></div></div><p>可以看出，<code>drop-shadow</code> 比 <code>box-shadow</code> 少了一个阴影的扩展半径 <code>spread-radius</code> 参数（或者说尚未实现）。</p><p>回到我的问题，给异形元素设置阴影的代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>header</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>filter</span><span class=p>:</span> <span class=nb>drop-shadow</span><span class=p>(</span><span class=mi>0</span> <span class=mi>0</span> <span class=mf>0.75</span><span class=kt>rem</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mf>0.1</span><span class=p>));</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=浏览器支持><span>3 浏览器支持</span>\n<a href=#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%94%af%e6%8c%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><caniuse-embed feature=mdn-css_types_filter-function_drop-shadow past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed><h2 class=heading-element id=参考链接><span>4 参考链接</span>\n<a href=#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow target=_blank rel=\"external nofollow noopener noreferrer\">drop-shadow() - CSS: Cascading Style Sheets | MDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・现代 CSS 解决方案</span></span></a> 5</div><div class=collection-nav><a href=/posts/fixit-docs-bookmark/ class=collection-nav-item rel=prev title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>CSS 实现时间轴、背景图 Loading 和渐变边框</span>\n</a><a href=/posts/css-round/ class=collection-nav-item rel=next title=\"CSS 四舍五入数值单位\"><span>CSS 四舍五入数值单位</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-28 17:12:48\">更新于 2024-07-28&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8930517d6b79fb9502594cf9384e0a83577448eb rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整合集&#10&#10Commit: 8930517d6b79fb9502594cf9384e0a83577448eb [8930517]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-28 17:12:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8930517</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/drop-shadow/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/drop-shadow.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/drop-shadow.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%8E%B0%E4%BB%A3+CSS+%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E4%B9%8B%E5%BC%82%E5%BD%A2%E5%85%83%E7%B4%A0%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE%E9%98%B4%E5%BD%B1%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%8E%B0%E4%BB%A3+CSS+%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E4%B9%8B%E5%BC%82%E5%BD%A2%E5%85%83%E7%B4%A0%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE%E9%98%B4%E5%BD%B1%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/drop-shadow/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/drop-shadow.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/drop-shadow/ data-title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\" data-hashtags=CSS,drop-shadow,box-shadow><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/drop-shadow/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/drop-shadow/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/drop-shadow/ data-title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/drop-shadow/ data-title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/drop-shadow/ class=post-tag title=\"标签 - drop-shadow\">drop-shadow</a><a href=/tags/box-shadow/ class=post-tag title=\"标签 - box-shadow\">box-shadow</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=post-nav-item rel=prev title=hugo-fixit/shortcode-docs-bookmark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/shortcode-docs-bookmark</a><a href=/posts/git-summary/ class=post-nav-item rel=next title=\"Git 统计代码量\">Git 统计代码量<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#遇到的问题>遇到的问题</a></li><li><a href=#解决方法>解决方法</a></li><li><a href=#浏览器支持>浏览器支持</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6530c9177543fbff69c3660d3e33a81e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6530c9177543fbff69c3660d3e33a81e.js defer></script><script src=/js/theme.min.js defer></script><script src=/lib/shortcode-caniuse/caniuse-embed-element.iife.js async defer></script><script src=/js/shortcode-caniuse.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/drop-shadow/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/drop-shadow/index.md",
    "content": "# 现代 CSS 解决方案之异形元素怎么设置阴影？\n\n\n今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\n\n<!--more-->\n\n## 遇到的问题\n\n之前给博客头部设置了一个 [异形元素](/images/drop.responsive.svg)，当时给它父元素设置了如下 `box-shadow`：\n\n```css\nheader {\n  box-shadow: 0 0 1.5rem 0 rgba(0, 0, 0, 0.1);\n}\n```\n\n发现只有矩形部分有阴影，异形部分没有阴影。是因为 `box-shadow` 只能给盒子模型设置阴影，异形元素无法设置阴影的。\n\n那怎么给异形元素设置阴影呢？\n\n## 解决方法\n\n可以使用 `filter` 属性的 `drop-shadow` 函数来给异形元素设置阴影。\n\n`drop-shadow` 绘制的投影实际上是输入图像的 alpha 蒙版的一个模糊的、偏移的版本，用特定的颜色绘制并合成在图像下面。\n\n{{< admonition note \"备注\" >}}\n这个函数有点类似于 `box-shadow` 属性。`box-shadow` 属性在元素的整个框后面创建一个矩形阴影，而 `drop-shadow()` 过滤器则是创建一个符合图像本身形状 (alpha 通道) 的阴影。\n{{< /admonition >}}\n\n语法如下：\n\n```css\ndrop-shadow(offset-x offset-y standard-deviation color)\n```\n\n可以看出，`drop-shadow` 比 `box-shadow` 少了一个阴影的扩展半径 `spread-radius` 参数（或者说尚未实现）。\n\n回到我的问题，给异形元素设置阴影的代码如下：\n\n```css\nheader {\n  filter: drop-shadow(0 0 0.75rem rgba(0, 0, 0, 0.1));\n}\n```\n\n## 浏览器支持\n\n{{< caniuse \"mdn-css_types_filter-function_drop-shadow\" >}}\n\n## 参考链接\n\n- [drop-shadow() - CSS: Cascading Style Sheets | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/drop-shadow/  \n\n"
  },
  {
    "path": "posts/duixiang/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>面向对象基础知识总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='1 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例：\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 2 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\n学生 类\n张三 对象 3 类的组成（掌握） 成员变量\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\n其实就是方法，只不过不需要 static 了 案例：\n学生类 1 2 3 4 5 6 class Student { String name; int age; public void study() {} } 4 类的使用（掌握） 创建对象\n格式：类名 对象名 = new 类名 (); 使用成员\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (&mldr;); 5 成员变量和局部变量的区别（理解） 在类中的位置不同\nA: 成员变量 类中，方法外\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 6 形式参数问题（理解） 基本类型\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 7 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法，仅仅只调用一次\nB: 作为实际参数传递 8 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\nA: 隐藏实现细节，提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 9 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } 10 this 关键字（掌握） this：代表本类的对象 应用场景：\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是：\"+s.getName()); System.out.println(\"年龄是：\"+s.getAge()); } } 11 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\nA: 无参+setXxx()\nB: 带参 一个标准的代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } } 12 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕，把地址赋值给 s 变量 13 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例：饮水机（可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量，静态成员方法\n简记：静态只能访问静态\n注意：\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();&amp;ensp; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//&amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);&amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } } 14 静态成员变量和普通成员变量的区别（理解） 所属不同\n静态属于类的，称为类变量\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载，随着类的消失而消失\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 15 main 方法是静态的（理解） 1 public static void main(String[] args) public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\nvoid: 被 jvm 调用，不需要给 jvm 返回值\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。\n'><meta name=keywords content='面向对象,Java'><meta itemprop=name content=\"面向对象基础知识总结\"><meta itemprop=description content='1 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例：\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 2 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\n学生 类\n张三 对象 3 类的组成（掌握） 成员变量\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\n其实就是方法，只不过不需要 static 了 案例：\n学生类 1 2 3 4 5 6 class Student { String name; int age; public void study() {} } 4 类的使用（掌握） 创建对象\n格式：类名 对象名 = new 类名 (); 使用成员\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (…); 5 成员变量和局部变量的区别（理解） 在类中的位置不同\nA: 成员变量 类中，方法外\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 6 形式参数问题（理解） 基本类型\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 7 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法，仅仅只调用一次\nB: 作为实际参数传递 8 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\nA: 隐藏实现细节，提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 9 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } 10 this 关键字（掌握） this：代表本类的对象 应用场景：\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是：\"+s.getName()); System.out.println(\"年龄是：\"+s.getAge()); } } 11 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\nA: 无参+setXxx()\nB: 带参 一个标准的代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } } 12 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕，把地址赋值给 s 变量 13 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例：饮水机（可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量，静态成员方法\n简记：静态只能访问静态\n注意：\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();&amp;ensp; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//&amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);&amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } } 14 静态成员变量和普通成员变量的区别（理解） 所属不同\n静态属于类的，称为类变量\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载，随着类的消失而消失\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 15 main 方法是静态的（理解） 1 public static void main(String[] args) public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\nvoid: 被 jvm 调用，不需要给 jvm 返回值\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。'><meta itemprop=datePublished content=\"2019-01-15T16:07:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"4348\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"面向对象,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/duixiang/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"面向对象基础知识总结\"><meta property=\"og:description\" content='1 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例：\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 2 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\n学生 类\n张三 对象 3 类的组成（掌握） 成员变量\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\n其实就是方法，只不过不需要 static 了 案例：\n学生类 1 2 3 4 5 6 class Student { String name; int age; public void study() {} } 4 类的使用（掌握） 创建对象\n格式：类名 对象名 = new 类名 (); 使用成员\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (…); 5 成员变量和局部变量的区别（理解） 在类中的位置不同\nA: 成员变量 类中，方法外\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 6 形式参数问题（理解） 基本类型\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 7 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法，仅仅只调用一次\nB: 作为实际参数传递 8 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\nA: 隐藏实现细节，提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 9 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } 10 this 关键字（掌握） this：代表本类的对象 应用场景：\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是：\"+s.getName()); System.out.println(\"年龄是：\"+s.getAge()); } } 11 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\nA: 无参+setXxx()\nB: 带参 一个标准的代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } } 12 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕，把地址赋值给 s 变量 13 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例：饮水机（可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量，静态成员方法\n简记：静态只能访问静态\n注意：\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();&amp;ensp; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//&amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);&amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } } 14 静态成员变量和普通成员变量的区别（理解） 所属不同\n静态属于类的，称为类变量\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载，随着类的消失而消失\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 15 main 方法是静态的（理解） 1 public static void main(String[] args) public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\nvoid: 被 jvm 调用，不需要给 jvm 返回值\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-15T16:07:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"面向对象\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"面向对象基础知识总结\"><meta name=twitter:description content='1 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例：\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 2 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\n学生 类\n张三 对象 3 类的组成（掌握） 成员变量\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\n其实就是方法，只不过不需要 static 了 案例：\n学生类 1 2 3 4 5 6 class Student { String name; int age; public void study() {} } 4 类的使用（掌握） 创建对象\n格式：类名 对象名 = new 类名 (); 使用成员\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (…); 5 成员变量和局部变量的区别（理解） 在类中的位置不同\nA: 成员变量 类中，方法外\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 6 形式参数问题（理解） 基本类型\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 7 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法，仅仅只调用一次\nB: 作为实际参数传递 8 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\nA: 隐藏实现细节，提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 9 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } 10 this 关键字（掌握） this：代表本类的对象 应用场景：\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是：\"+s.getName()); System.out.println(\"年龄是：\"+s.getAge()); } } 11 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\nA: 无参+setXxx()\nB: 带参 一个标准的代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } } 12 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕，把地址赋值给 s 变量 13 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例：饮水机（可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量，静态成员方法\n简记：静态只能访问静态\n注意：\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();&amp;ensp; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 /* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//&amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);&amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } } 14 静态成员变量和普通成员变量的区别（理解） 所属不同\n静态属于类的，称为类变量\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载，随着类的消失而消失\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 15 main 方法是静态的（理解） 1 public static void main(String[] args) public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\nvoid: 被 jvm 调用，不需要给 jvm 返回值\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/duixiang/ title=\"面向对象基础知识总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/java-range/ title=\"java 水仙花数（循环）\"><link rel=next type=text/html href=https://lruihao.cn/posts/mathclass/ title=\"java 猜数字小游戏（Math 类）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/duixiang/index.md title=\"面向对象基础知识总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"面向对象基础知识总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/duixiang\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"面向对象, Java\",\"wordcount\":4348,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/duixiang\\/\",\"datePublished\":\"2019-01-15T16:07:31+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/duixiang/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>面向对象基础知识总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>面向对象基础知识总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-15 16:07:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-15>2019-01-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"4348 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 4400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 9 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=面向对象基础知识总结><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#面向对象思想理解>面向对象思想（理解）</a></li><li><a href=#类与对象掌握>类与对象（掌握）</a></li><li><a href=#类的组成掌握>类的组成（掌握）</a></li><li><a href=#类的使用掌握>类的使用（掌握）</a></li><li><a href=#成员变量和局部变量的区别理解>成员变量和局部变量的区别（理解）</a></li><li><a href=#形式参数问题理解>形式参数问题（理解）</a></li><li><a href=#匿名对象理解>匿名对象（理解）</a></li><li><a href=#封装掌握>封装（掌握）</a></li><li><a href=#private-关键字掌握>private 关键字（掌握）</a></li><li><a href=#this-关键字掌握>this 关键字（掌握）</a></li><li><a href=#构造方法掌握>构造方法（掌握）</a></li><li><a href=#对象的初始化过程理解>对象的初始化过程（理解）</a></li><li><a href=#static-关键字掌握>static 关键字（掌握）</a></li><li><a href=#静态成员变量和普通成员变量的区别理解>静态成员变量和普通成员变量的区别（理解）</a></li><li><a href=#main-方法是静态的理解>main 方法是静态的（理解）</a></li><li><a href=#实例>实例</a></li><li><a href=#java-类中的成员变量和方法访问权限>java 类中的成员变量和方法访问权限</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=面向对象思想理解><span>1 面向对象思想（理解）</span>\n<a href=#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>面向对象是基于面向过程的一种编程思想</li><li>思想特点：<br>A: 是一种更符合我们思考习惯的思想<br>B: 把复杂的问题简单化<br>C: 让我们从执行者变成了指挥者</li><li>举例：<br>A: 洗衣服<br>B: 吃饭<br>C: 买电脑</li><li>举例并代码体现\n把大象装进冰箱</li></ol><h2 class=heading-element id=类与对象掌握><span>2 类与对象（掌握）</span>\n<a href=#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。</li><li>现实世界事物是如何表达的呢？\n属性：外在特征<br>行为：内在行为</li><li>我们学习的是 java 语言，它最基本的单位是类。<br>所以我们要学会用类来体现一个事物。</li><li>类：是一组相关的属性和行为的集合</li><li>对象：是该类事物的具体个体。</li><li>举例：<br>学生 类<br>张三 对象</li></ol><h2 class=heading-element id=类的组成掌握><span>3 类的组成（掌握）</span>\n<a href=#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>成员变量<br>其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。</li><li>成员方法<br>其实就是方法，只不过不需要 static 了</li><li>案例：<br>学生类</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=类的使用掌握><span>4 类的使用（掌握）</span>\n<a href=#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>创建对象<br>格式：类名 对象名 = new 类名 ();</li><li>使用成员<br>成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&mldr;);</li></ol><h2 class=heading-element id=成员变量和局部变量的区别理解><span>5 成员变量和局部变量的区别（理解）</span>\n<a href=#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>在类中的位置不同<br>A: 成员变量 类中，方法外<br>B: 局部变量 方法的形式参数，或者方法体中</li><li>在内存中的位置不同<br>A: 成员变量 在堆中<br>B: 局部变量 在栈中</li><li>生命周期不同<br>A: 成员变量 随着对象的存在而存在，随着对象的消失而消失<br>B: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失</li><li>初始化值不同<br>A: 成员变量 有默认初始化值<br>B: 局部变量 没有默认值，必须先声明，赋值，最后才能使用</li></ol><h2 class=heading-element id=形式参数问题理解><span>6 形式参数问题（理解）</span>\n<a href=#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>基本类型<br>基本类型作为形式参数，需要的是该基本类型的值。</li><li>引用类型<br>引用类型作为形式参数，需要的是该引用类型的地址值。（对象）</li></ol><h2 class=heading-element id=匿名对象理解><span>7 匿名对象（理解）</span>\n<a href=#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>匿名对象：没有名字的对象。是对象的简化书写方式。</li><li>使用场景<br>A: 调用方法，仅仅只调用一次<br>B: 作为实际参数传递</li></ol><h2 class=heading-element id=封装掌握><span>8 封装（掌握）</span>\n<a href=#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>隐藏实现细节，提供公共的访问方式</li><li>好处：<br>A: 隐藏实现细节，提供公共的访问方式<br>B: 提高了代码的复用性<br>C: 提高了代码的安全性</li><li>使用原则<br>A: 把成员变量隐藏<br>B: 给出该成员变量对应的公共访问方式</li></ol><h2 class=heading-element id=private-关键字掌握><span>9 private 关键字（掌握）</span>\n<a href=#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>是一个权限修饰符</li><li>可以修饰类的成员（成员变量和成员方法）</li><li>仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法</li><li>标准代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>n</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>n</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>a</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=this-关键字掌握><span>10 this 关键字（掌握）</span>\n<a href=#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>this：代表本类的对象</li><li>应用场景：<br>解决了局部变量隐藏成员变量的问题。<br>其他用法和 super 一起讲。</li><li>标准代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//局部变量</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;, 年龄是：&#34;</span><span class=o>+</span><span class=n>age</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>study</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生爱学习&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>eat</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生要吃饭&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>sleep</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;学生想睡觉&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>StudentTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setName</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setAge</span><span class=p>(</span><span class=n>28</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>study</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>eat</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>sleep</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>s</span><span class=p>.</span><span class=na>getName</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;年龄是：&#34;</span><span class=o>+</span><span class=n>s</span><span class=p>.</span><span class=na>getAge</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=构造方法掌握><span>11 构造方法（掌握）</span>\n<a href=#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>作用：对对象的数据进行初始化。</li><li>特点：<br>A: 方法名和类名相同<br>B: 没有返回值类型<br>C: 没有返回值</li><li>注意事项<br>A: 如果我们没写构造方法，系统将默认给出无参构造方法<br>B: 如果我们写了构造方法，系统将不再给出默认无参构造方法<br>建议：我们自己手动给出无参构造方法</li><li>给成员变量赋值：<br>A: 无参+setXxx()<br>B: 带参</li><li>一个标准的代码：</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//构造方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setAge</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getAge</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;姓名是：&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;, 年龄是：&#34;</span><span class=o>+</span><span class=n>age</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>class</span> <span class=nc>StudentTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//无参+setXxx()</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setName</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>setAge</span><span class=p>(</span><span class=n>28</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//带参</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>Student</span><span class=w> </span><span class=n>ss</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;张曼玉&#34;</span><span class=p>,</span><span class=n>20</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>ss</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=对象的初始化过程理解><span>12 对象的初始化过程（理解）</span>\n<a href=#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Student s = new Student(); 做了哪些事情<br>A: 加载 Student.class 文件进内存<br>B: 在栈中为 s 开辟空间<br>C: 在堆中为学生对象开辟空间<br>D: 为学生对象的成员变量赋默认值<br>E: 为学生对象的成员变量赋显示值<br>F: 通过构造方法给成员变量赋值<br>G: 对象构造完毕，把地址赋值给 s 变量</li></ul><h2 class=heading-element id=static-关键字掌握><span>13 static 关键字（掌握）</span>\n<a href=#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>是一个状态修饰符。静态的意思</li><li>它可以修饰成员变量和成员方法</li><li>特点：<br><strong>A: 随着类的加载而加载<br>B: 优先于对象存在<br>C: 被所有对象共享</strong><br>这也是判断我们是不是该使用静态的条件<br>举例：饮水机（可共享 static) 和水杯例子。<br>D: 可以通过类名调用<br>静态修饰的内容，可以通过类名调用，也可以通过对象名调用</li><li>方法访问特点<br>A: 普通成员方法<br>可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法<br>B: 静态成员方法<br><strong>只能访问静态成员变量，静态成员方法<br>简记：静态只能访问静态</strong><br>注意：<br><strong>静态中是不能有 this 的。<br>先进内存的不能访问后进内存的。反之可以。</strong></li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n</span></span></span><span class=line><span class=cl><span class=cm> * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n</span></span></span><span class=line><span class=cl><span class=cm> *\n</span></span></span><span class=line><span class=cl><span class=cm> * 在 java 中，用什么来表示成员变量是被共享的呢？static\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//姓名</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//年龄</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//班级编号</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//String classNumber;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>classNumber</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Student</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>age</span><span class=p>,</span><span class=n>String</span><span class=w> </span><span class=n>classNumber</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>age</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>age</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>classNumber</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>classNumber</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;---&#34;</span><span class=o>+</span><span class=n>age</span><span class=o>+</span><span class=s>&#34;---&#34;</span><span class=o>+</span><span class=n>classNumber</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//创建学生对象</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;林青霞&#34;</span><span class=p>,</span><span class=n>28</span><span class=p>,</span><span class=s>&#34;20150306&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s1</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>    Student s2 = new Student(&#34;马云&#34;,35,&#34;20150306&#34;);\n</span></span></span><span class=line><span class=cl><span class=cm>    s2.show();\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>    Student s3 = new Student(&#34;马化腾&#34;,33,&#34;20150306&#34;);\n</span></span></span><span class=line><span class=cl><span class=cm>    s3.show();\n</span></span></span><span class=line><span class=cl><span class=cm>    */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;马云&#34;</span><span class=p>,</span><span class=n>35</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s2</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s3</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>(</span><span class=s>&#34;马化腾&#34;</span><span class=p>,</span><span class=n>33</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s3</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  static: 静态关键字。\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  作用：\n</span></span></span><span class=line><span class=cl><span class=cm>    可以修饰成员变量和成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  特点：\n</span></span></span><span class=line><span class=cl><span class=cm>    A: 随着类的加载而加载\n</span></span></span><span class=line><span class=cl><span class=cm>    B: 优先于对象存在\n</span></span></span><span class=line><span class=cl><span class=cm>    C: 被类的所有对象共享\n</span></span></span><span class=line><span class=cl><span class=cm>      这也是我们判断是否使用静态关键字的条件\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>      饮水机：可以被静态修饰\n</span></span></span><span class=line><span class=cl><span class=cm>      水杯：不可以被静态修饰\n</span></span></span><span class=line><span class=cl><span class=cm>    D: 可以通过类名调用\n</span></span></span><span class=line><span class=cl><span class=cm>      我们的调用既可以是对象，还可以是类名\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Student</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;show&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show2</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;show2&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo2</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=w> </span><span class=n>s</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Student</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>s</span><span class=p>.</span><span class=na>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Student</span><span class=p>.</span><span class=na>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//Student.show();&amp;ensp;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  static 的注意事项：\n</span></span></span><span class=line><span class=cl><span class=cm>    A: 在静态方法中是没有 this 关键字的\n</span></span></span><span class=line><span class=cl><span class=cm>      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n</span></span></span><span class=line><span class=cl><span class=cm>      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n</span></span></span><span class=line><span class=cl><span class=cm>    B: 静态只能访问静态。\n</span></span></span><span class=line><span class=cl><span class=cm>      非静态的成员方法：\n</span></span></span><span class=line><span class=cl><span class=cm>        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>      静态的成员方法：\n</span></span></span><span class=line><span class=cl><span class=cm>        只能访问静态的成员变量，静态的成员方法\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>class Student {\n</span></span></span><span class=line><span class=cl><span class=cm>  private String name;\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  public static void setName(String name) {//&amp;ensp; 静态方法不能用 this\n</span></span></span><span class=line><span class=cl><span class=cm>    this.name = name;\n</span></span></span><span class=line><span class=cl><span class=cm>  }\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  public void show() {\n</span></span></span><span class=line><span class=cl><span class=cm>    System.out.println(name);\n</span></span></span><span class=line><span class=cl><span class=cm>  }\n</span></span></span><span class=line><span class=cl><span class=cm>}*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Demo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>10</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>20</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>x</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>y</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show2</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//System.out.println(x);&amp;ensp;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>y</span><span class=p>);</span><span class=c1>//√</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show3</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show4</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//show(); 只能访问静态的成员方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show2</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>StudentDemo3</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//Student.setName(&#34;林青霞&#34;);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=静态成员变量和普通成员变量的区别理解><span>14 静态成员变量和普通成员变量的区别（理解）</span>\n<a href=#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>所属不同<br>静态属于类的，称为类变量<br>非静态属于对象的，称为对象变量，实例变量</li><li>内存空间不同<br>静态在方法区的静态区<br>非静态在堆内存</li><li>生命周期不同<br>静态随着类的加载而加载，随着类的消失而消失<br>非静态随着对象的创建而存在，随着对象的消失而消失</li><li>调用不同<br>静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用<br>非静态只能通过对象名调用</li></ol><h2 class=heading-element id=main-方法是静态的理解><span>15 main 方法是静态的（理解）</span>\n<a href=#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。<br>static: 被 jvm 调用，不用创建对象，直接类名访问<br>void: 被 jvm 调用，不需要给 jvm 返回值<br>main: 一个通用的名称，虽然不是关键字，但是被 jvm 识别<br>String[] args:<br>早期出现是为了接收键盘录入数据的。</p><h2 class=heading-element id=实例><span>16 实例</span>\n<a href=#%e5%ae%9e%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*求和*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Demo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Demo</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Demo</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>x</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>x</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>y</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setX</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>x</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>x</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getX</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>x</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setY</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>y</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getY</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//成员变量已经有 x,y 了。这里就没有必要在定义了</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  public int sum(int x,int y) {\n</span></span></span><span class=line><span class=cl><span class=cm>    return x + y;\n</span></span></span><span class=line><span class=cl><span class=cm>  }\n</span></span></span><span class=line><span class=cl><span class=cm>  */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>sum</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>x</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Test</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Demo</span><span class=w> </span><span class=n>d</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Demo</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>d</span><span class=p>.</span><span class=na>setX</span><span class=p>(</span><span class=n>10</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>d</span><span class=p>.</span><span class=na>setY</span><span class=p>(</span><span class=n>20</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>result</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>d</span><span class=p>.</span><span class=na>sum</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>result</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*求和*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Demo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>sum</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>x</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Test2</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Demo</span><span class=w> </span><span class=n>d</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Demo</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>result</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>d</span><span class=p>.</span><span class=na>sum</span><span class=p>(</span><span class=n>10</span><span class=p>,</span><span class=n>20</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>result</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>  定义一个员工类，自己分析出几个成员，\n</span></span></span><span class=line><span class=cl><span class=cm>  然后给出成员变量，构造方法，getXxx()/setXxx() 方法，\n</span></span></span><span class=line><span class=cl><span class=cm>  以及一个显示所有成员信息的方法。并测试。\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>  Employee：\n</span></span></span><span class=line><span class=cl><span class=cm>    成员变量：员工编号，姓名，职位\n</span></span></span><span class=line><span class=cl><span class=cm>    构造方法：无参，带参\n</span></span></span><span class=line><span class=cl><span class=cm>    成员方法：getXxx()/setXxx() 方法，show()\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Employee</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>eid</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>job</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Employee</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Employee</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>eid</span><span class=p>,</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>,</span><span class=n>String</span><span class=w> </span><span class=n>job</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>eid</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>eid</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>job</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>job</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setEid</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>eid</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>eid</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>eid</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getEid</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>eid</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setJob</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>job</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>job</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>job</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getJob</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>job</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;员工编号是：&#34;</span><span class=o>+</span><span class=n>eid</span><span class=o>+</span><span class=s>&#34;, 姓名是：&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;, 职位是：&#34;</span><span class=o>+</span><span class=n>job</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>EmployeeDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//无参</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Employee</span><span class=w> </span><span class=n>e</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Employee</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>e</span><span class=p>.</span><span class=na>setEid</span><span class=p>(</span><span class=s>&#34;itcast007&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>e</span><span class=p>.</span><span class=na>setName</span><span class=p>(</span><span class=s>&#34;周星驰&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>e</span><span class=p>.</span><span class=na>setJob</span><span class=p>(</span><span class=s>&#34;高级工程师&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>e</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//带参</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Employee</span><span class=w> </span><span class=n>e2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Employee</span><span class=p>(</span><span class=s>&#34;itcast003&#34;</span><span class=p>,</span><span class=s>&#34;刘德华&#34;</span><span class=p>,</span><span class=s>&#34;挖掘机工程师&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>e2</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=java-类中的成员变量和方法访问权限><span>17 java 类中的成员变量和方法访问权限</span>\n<a href=#java-%e7%b1%bb%e4%b8%ad%e7%9a%84%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%96%b9%e6%b3%95%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:center>关键词</th><th style=text-align:center>同一个类</th><th style=text-align:center>同一个包</th><th style=text-align:center>不同包中的子类</th><th style=text-align:center>不同包中的非子类</th></tr></thead><tbody><tr><td style=text-align:center>private</td><td style=text-align:center>√</td><td style=text-align:center> </td><td style=text-align:center> </td><td style=text-align:center> </td></tr><tr><td style=text-align:center>default</td><td style=text-align:center>√</td><td style=text-align:center>√</td><td style=text-align:center> </td><td style=text-align:center> </td></tr><tr><td style=text-align:center>protected</td><td style=text-align:center>√</td><td style=text-align:center>√</td><td style=text-align:center>√</td><td style=text-align:center> </td></tr><tr><td style=text-align:center>public</td><td style=text-align:center>√</td><td style=text-align:center>√</td><td style=text-align:center>√</td><td style=text-align:center>√</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/duixiang/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/duixiang.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/duixiang.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/duixiang/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/duixiang.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/duixiang/ data-title=面向对象基础知识总结 data-hashtags=面向对象,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/duixiang/ data-hashtag=面向对象><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/duixiang/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/duixiang/ data-title=面向对象基础知识总结 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/duixiang/ data-title=面向对象基础知识总结><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/ class=post-tag title=\"标签 - 面向对象\">面向对象</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/java-range/ class=post-nav-item rel=prev title=\"Java 水仙花数（循环）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 水仙花数（循环）</a><a href=/posts/mathclass/ class=post-nav-item rel=next title=\"Java 猜数字小游戏（Math 类）\">Java 猜数字小游戏（Math 类）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#面向对象思想理解>面向对象思想（理解）</a></li><li><a href=#类与对象掌握>类与对象（掌握）</a></li><li><a href=#类的组成掌握>类的组成（掌握）</a></li><li><a href=#类的使用掌握>类的使用（掌握）</a></li><li><a href=#成员变量和局部变量的区别理解>成员变量和局部变量的区别（理解）</a></li><li><a href=#形式参数问题理解>形式参数问题（理解）</a></li><li><a href=#匿名对象理解>匿名对象（理解）</a></li><li><a href=#封装掌握>封装（掌握）</a></li><li><a href=#private-关键字掌握>private 关键字（掌握）</a></li><li><a href=#this-关键字掌握>this 关键字（掌握）</a></li><li><a href=#构造方法掌握>构造方法（掌握）</a></li><li><a href=#对象的初始化过程理解>对象的初始化过程（理解）</a></li><li><a href=#static-关键字掌握>static 关键字（掌握）</a></li><li><a href=#静态成员变量和普通成员变量的区别理解>静态成员变量和普通成员变量的区别（理解）</a></li><li><a href=#main-方法是静态的理解>main 方法是静态的（理解）</a></li><li><a href=#实例>实例</a></li><li><a href=#java-类中的成员变量和方法访问权限>java 类中的成员变量和方法访问权限</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/36ebddeb1ce8adfbd97498a9ff2c2d7b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/36ebddeb1ce8adfbd97498a9ff2c2d7b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/duixiang/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/duixiang/index.md",
    "content": "# 面向对象基础知识总结\n\n\n## 面向对象思想（理解）\n\n1. 面向对象是基于面向过程的一种编程思想\n2. 思想特点：  \n   A: 是一种更符合我们思考习惯的思想  \n   B: 把复杂的问题简单化  \n   C: 让我们从执行者变成了指挥者\n3. 举例：  \n   A: 洗衣服  \n   B: 吃饭  \n   C: 买电脑\n4. 举例并代码体现\n   把大象装进冰箱\n\n## 类与对象（掌握）\n\n1. 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\n2. 现实世界事物是如何表达的呢？\n   属性：外在特征  \n   行为：内在行为\n3. 我们学习的是 java 语言，它最基本的单位是类。  \n   所以我们要学会用类来体现一个事物。\n4. 类：是一组相关的属性和行为的集合\n5. 对象：是该类事物的具体个体。\n6. 举例：  \n   学生 类  \n   张三 对象\n\n## 类的组成（掌握）\n\n1. 成员变量  \n   其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\n2. 成员方法  \n   其实就是方法，只不过不需要 static 了\n3. 案例：  \n   学生类\n\n```java\nclass Student {\n  String name;\n  int age;\n\n  public void study() {}\n}\n```\n\n## 类的使用（掌握）\n\n1. 创建对象  \n   格式：类名 对象名 = new 类名 ();\n2. 使用成员  \n   成员变量：对象名。变量名；\n   成员方法：对象名。方法名 (...);\n\n## 成员变量和局部变量的区别（理解）\n\n1. 在类中的位置不同  \n   A: 成员变量 类中，方法外  \n   B: 局部变量 方法的形式参数，或者方法体中\n2. 在内存中的位置不同  \n   A: 成员变量 在堆中  \n   B: 局部变量 在栈中\n3. 生命周期不同  \n   A: 成员变量 随着对象的存在而存在，随着对象的消失而消失  \n   B: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\n4. 初始化值不同  \n   A: 成员变量 有默认初始化值  \n   B: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\n\n## 形式参数问题（理解）\n\n1. 基本类型  \n   基本类型作为形式参数，需要的是该基本类型的值。\n2. 引用类型  \n   引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\n\n## 匿名对象（理解）\n\n1. 匿名对象：没有名字的对象。是对象的简化书写方式。\n2. 使用场景  \n   A: 调用方法，仅仅只调用一次  \n   B: 作为实际参数传递\n\n## 封装（掌握）\n\n1. 隐藏实现细节，提供公共的访问方式\n2. 好处：  \n   A: 隐藏实现细节，提供公共的访问方式  \n   B: 提高了代码的复用性  \n   C: 提高了代码的安全性\n3. 使用原则  \n   A: 把成员变量隐藏  \n   B: 给出该成员变量对应的公共访问方式\n\n## private 关键字（掌握）\n\n1. 是一个权限修饰符\n2. 可以修饰类的成员（成员变量和成员方法）\n3. 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\n4. 标准代码：\n\n```java\nclass Student {\n  private String name;\n  private int age;\n\n  public void setName(String n) {\n   name = n;\n  }\n\n  public String getName() {\n   return name;\n  }\n\n  public void setAge(int a) {\n   age = a;\n  }\n\n  public int getAge() {\n   return age;\n  }\n\n  public void study() {}\n}\n```\n\n## this 关键字（掌握）\n\n1. this：代表本类的对象\n2. 应用场景：  \n   解决了局部变量隐藏成员变量的问题。  \n   其他用法和 super 一起讲。\n3. 标准代码：\n\n```java\n  class Student {\n    private String name;\n    private int age;\n\n    public void setName(String name) {//局部变量\n      this.name = name;\n    }\n\n    public String getName() {\n      return name;\n    }\n\n    public void setAge(int age) {\n      this.age = age;\n    }\n\n    public int getAge() {\n      return age;\n    }\n\n    public void show() {\n      System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age);\n    }\n\n    public void study() {\n      System.out.println(\"学生爱学习\");\n    }\n\n    public void eat() {\n      System.out.println(\"学生要吃饭\");\n    }\n\n    public void sleep() {\n      System.out.println(\"学生想睡觉\");\n    }\n  }\n\n  class StudentTest {\n    public static void main(String[] args) {\n      Student s = new Student();\n\n      s.setName(\"林青霞\");\n      s.setAge(28);\n\n      s.show();\n      s.study();\n      s.eat();\n      s.sleep();\n\n      System.out.println(\"姓名是：\"+s.getName());\n      System.out.println(\"年龄是：\"+s.getAge());\n    }\n  }\n```\n\n## 构造方法（掌握）\n\n1. 作用：对对象的数据进行初始化。\n2. 特点：  \n   A: 方法名和类名相同  \n   B: 没有返回值类型  \n   C: 没有返回值\n3. 注意事项  \n   A: 如果我们没写构造方法，系统将默认给出无参构造方法  \n   B: 如果我们写了构造方法，系统将不再给出默认无参构造方法  \n    建议：我们自己手动给出无参构造方法\n4. 给成员变量赋值：  \n   A: 无参+setXxx()  \n   B: 带参\n5. 一个标准的代码：\n\n```java\n  class Student {\n    private String name;\n    private int age;\n\n    public Student() {}\n\n    public Student(String name,int age) {//构造方法\n      this.name = name;\n      this.age = age;\n    }\n\n    public void setName(String name) {\n      this.name = name;\n    }\n\n    public String getName() {\n      return name;\n    }\n\n    public void setAge(int age) {\n      this.age = age;\n    }\n\n    public int getAge() {\n      return age;\n    }\n\n    public void show() {\n      System.out.println(\"姓名是：\"+name+\", 年龄是：\"+age);\n    }\n  }\n\n  class StudentTest {\n    public static void main(String[] args) {\n      //无参+setXxx()\n      Student s = new Student();\n      s.setName(\"林青霞\");\n      s.setAge(28);\n      s.show();\n\n      //带参\n      Student ss = new Student(\"张曼玉\",20);\n      ss.show();\n    }\n  }\n```\n\n## 对象的初始化过程（理解）\n\n- Student s = new Student(); 做了哪些事情  \n  A: 加载 Student.class 文件进内存  \n  B: 在栈中为 s 开辟空间  \n  C: 在堆中为学生对象开辟空间  \n  D: 为学生对象的成员变量赋默认值  \n  E: 为学生对象的成员变量赋显示值  \n  F: 通过构造方法给成员变量赋值  \n  G: 对象构造完毕，把地址赋值给 s 变量\n\n## static 关键字（掌握）\n\n1. 是一个状态修饰符。静态的意思\n2. 它可以修饰成员变量和成员方法\n3. 特点：  \n   **A: 随着类的加载而加载  \n   B: 优先于对象存在  \n   C: 被所有对象共享**  \n   这也是判断我们是不是该使用静态的条件  \n   举例：饮水机（可共享 static) 和水杯例子。  \n   D: 可以通过类名调用  \n   静态修饰的内容，可以通过类名调用，也可以通过对象名调用\n4. 方法访问特点  \n   A: 普通成员方法  \n   可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法  \n   B: 静态成员方法  \n   **只能访问静态成员变量，静态成员方法  \n   简记：静态只能访问静态**  \n   注意：  \n   **静态中是不能有 this 的。  \n   先进内存的不能访问后进内存的。反之可以。**\n\n```java\n/**\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n *\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\n */\nclass Student {\n  //姓名\n  String name;\n  //年龄\n  int age;\n  //班级编号\n  //String classNumber;\n  static String classNumber;\n\n  public Student(String name,int age) {\n    this.name = name;\n    this.age = age;\n  }\n\n  public Student(String name,int age,String classNumber) {\n    this.name = name;\n    this.age = age;\n    this.classNumber = classNumber;\n  }\n\n  public void show() {\n    System.out.println(name+\"---\"+age+\"---\"+classNumber);\n  }\n}\n\nclass StudentDemo {\n  public static void main(String[] args) {\n    //创建学生对象\n    Student s1 = new Student(\"林青霞\",28,\"20150306\");\n    s1.show();\n\n    /*\n    Student s2 = new Student(\"马云\",35,\"20150306\");\n    s2.show();\n\n    Student s3 = new Student(\"马化腾\",33,\"20150306\");\n    s3.show();\n    */\n    Student s2 = new Student(\"马云\",35);\n    s2.show();\n\n    Student s3 = new Student(\"马化腾\",33);\n    s3.show();\n  }\n}\n```\n\n```java\n/*\n  static: 静态关键字。\n\n  作用：\n    可以修饰成员变量和成员方法\n\n  特点：\n    A: 随着类的加载而加载\n    B: 优先于对象存在\n    C: 被类的所有对象共享\n      这也是我们判断是否使用静态关键字的条件\n\n      饮水机：可以被静态修饰\n      水杯：不可以被静态修饰\n    D: 可以通过类名调用\n      我们的调用既可以是对象，还可以是类名\n*/\nclass Student {\n  public void show() {\n    System.out.println(\"show\");\n  }\n\n  public static void show2() {\n    System.out.println(\"show2\");\n  }\n}\n\nclass StudentDemo2 {\n  public static void main(String[] args) {\n    Student s = new Student();\n    s.show();\n    s.show2();\n\n    Student.show2();\n    //Student.show();&ensp;\n  }\n}\n\n```\n\n```java\n/*\n  static 的注意事项：\n    A: 在静态方法中是没有 this 关键字的\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n    B: 静态只能访问静态。\n      非静态的成员方法：\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n      静态的成员方法：\n        只能访问静态的成员变量，静态的成员方法\n*/\n/*\nclass Student {\n  private String name;\n\n  public static void setName(String name) {//&ensp; 静态方法不能用 this\n    this.name = name;\n  }\n\n  public void show() {\n    System.out.println(name);\n  }\n}*/\n\nclass Demo {\n  int x = 10;\n  static int y = 20;\n\n  public void show() {\n    System.out.println(x);\n    System.out.println(y);\n  }\n\n  public static void show2() {\n    //System.out.println(x);&ensp;\n    System.out.println(y);//√\n  }\n\n  public void show3() {\n    show();\n    show2();\n  }\n\n  public static void show4() {\n    //show(); 只能访问静态的成员方法\n    show2();\n  }\n}\n\nclass StudentDemo3 {\n  public static void main(String[] args) {\n    //Student.setName(\"林青霞\");\n  }\n}\n```\n\n## 静态成员变量和普通成员变量的区别（理解）\n\n1. 所属不同  \n   静态属于类的，称为类变量  \n   非静态属于对象的，称为对象变量，实例变量\n2. 内存空间不同  \n   静态在方法区的静态区  \n   非静态在堆内存\n3. 生命周期不同  \n   静态随着类的加载而加载，随着类的消失而消失  \n   非静态随着对象的创建而存在，随着对象的消失而消失\n4. 调用不同  \n   静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用  \n   非静态只能通过对象名调用\n\n## main 方法是静态的（理解）\n\n```java\npublic static void main(String[] args)\n```\n\npublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。  \nstatic: 被 jvm 调用，不用创建对象，直接类名访问  \nvoid: 被 jvm 调用，不需要给 jvm 返回值  \nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别  \nString[] args:  \n 早期出现是为了接收键盘录入数据的。  \n\n## 实例\n\n```java\n/*求和*/\nclass Demo {\n  private int x;\n  private int y;\n\n  public Demo() {}\n\n  public Demo(int x,int y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  public void setX(int x) {\n    this.x = x;\n  }\n\n  public int getX() {\n    return x;\n  }\n\n  public void setY(int y) {\n    this.y = y;\n  }\n\n  public int getY() {\n    return y;\n  }\n\n  //成员变量已经有 x,y 了。这里就没有必要在定义了\n  /*\n  public int sum(int x,int y) {\n    return x + y;\n  }\n  */\n\n  public int sum() {\n    return x + y;\n  }\n}\n\nclass Test {\n  public static void main(String[] args) {\n    Demo d = new Demo();\n    d.setX(10);\n    d.setY(20);\n    int result = d.sum();\n    System.out.println(result);\n  }\n}\n```\n\n```java\n/*求和*/\nclass Demo {\n  public int sum(int x,int y) {\n    return x + y;\n  }\n}\n\nclass Test2 {\n  public static void main(String[] args) {\n    Demo d = new Demo();\n    int result = d.sum(10,20);\n    System.out.println(result);\n  }\n}\n```\n\n```java\n/*\n  定义一个员工类，自己分析出几个成员，\n  然后给出成员变量，构造方法，getXxx()/setXxx() 方法，\n  以及一个显示所有成员信息的方法。并测试。\n\n  Employee：\n    成员变量：员工编号，姓名，职位\n    构造方法：无参，带参\n    成员方法：getXxx()/setXxx() 方法，show()\n*/\nclass Employee {\n  private String eid;\n  private String name;\n  private String job;\n\n  public Employee() {}\n\n  public Employee(String eid,String name,String job) {\n    this.eid = eid;\n    this.name = name;\n    this.job = job;\n  }\n\n  public void setEid(String eid) {\n    this.eid = eid;\n  }\n\n  public String getEid() {\n    return eid;\n  }\n\n  public void setName(String name) {\n    this.name = name;\n  }\n\n  public String getName() {\n    return name;\n  }\n\n  public void setJob(String job) {\n    this.job = job;\n  }\n\n  public String getJob() {\n    return job;\n  }\n\n  public void show() {\n    System.out.println(\"员工编号是：\"+eid+\", 姓名是：\"+name+\", 职位是：\"+job);\n  }\n}\n\nclass EmployeeDemo {\n  public static void main(String[] args) {\n    //无参\n    Employee e = new Employee();\n    e.setEid(\"itcast007\");\n    e.setName(\"周星驰\");\n    e.setJob(\"高级工程师\");\n    e.show();\n\n    //带参\n    Employee e2 = new Employee(\"itcast003\",\"刘德华\",\"挖掘机工程师\");\n    e2.show();\n  }\n}\n```\n\n## java 类中的成员变量和方法访问权限\n\n| 关键词   | 同一个类 | 同一个包 | 不同包中的子类 | 不同包中的非子类 |\n| :-------: | :------: | :------: | :------------: | :--------------: |\n| private  |    √     | &ensp;  |     &ensp;     |      &ensp;      |\n| default  |    √     |    √     |     &ensp;     |      &ensp;      |\n| protected |    √     |    √     |       √        |      &ensp;      |\n| public   |    √     |    √     |       √        |        √         |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/duixiang/  \n\n"
  },
  {
    "path": "posts/eclipseuse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Eclipse 的基本使用 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 基本使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容 2 Eclipse 的基本设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console 3 快捷键的使用 1 2 3 4 5 6 7 8 9 10 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击） 4 Eclipse 中如何提高开发效率 1 2 3 4 5 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters... \"><meta name=keywords content='eclipse,Java'><meta itemprop=name content=\"eclipse 的基本使用\"><meta itemprop=description content=\"1 基本使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容 2 Eclipse 的基本设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console 3 快捷键的使用 1 2 3 4 5 6 7 8 9 10 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击） 4 Eclipse 中如何提高开发效率 1 2 3 4 5 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\"><meta itemprop=datePublished content=\"2019-03-15T23:47:24+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"702\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"eclipse,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/eclipseuse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"eclipse 的基本使用\"><meta property=\"og:description\" content=\"1 基本使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容 2 Eclipse 的基本设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console 3 快捷键的使用 1 2 3 4 5 6 7 8 9 10 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击） 4 Eclipse 中如何提高开发效率 1 2 3 4 5 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-15T23:47:24+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"eclipse\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"eclipse 的基本使用\"><meta name=twitter:description content=\"1 基本使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容 2 Eclipse 的基本设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console 3 快捷键的使用 1 2 3 4 5 6 7 8 9 10 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击） 4 Eclipse 中如何提高开发效率 1 2 3 4 5 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/eclipseuse/ title=\"eclipse 的基本使用 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/qframe/ title=匿名类在可视化界面中的应用><link rel=next type=text/html href=https://lruihao.cn/posts/fanxing/ title=\"java 泛型 test\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/eclipseuse/index.md title=\"eclipse 的基本使用 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"eclipse 的基本使用\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/eclipseuse\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"eclipse, Java\",\"wordcount\":702,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/eclipseuse\\/\",\"datePublished\":\"2019-03-15T23:47:24+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/eclipseuse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Eclipse 的基本使用</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Eclipse 的基本使用</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-15 23:47:24\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-15>2019-03-15</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"702 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Eclipse 的基本使用\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#基本使用>基本使用</a></li><li><a href=#eclipse-的基本设置>Eclipse 的基本设置</a></li><li><a href=#快捷键的使用>快捷键的使用</a></li><li><a href=#eclipse-中如何提高开发效率>Eclipse 中如何提高开发效率</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=基本使用><span>1 基本使用</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>A: 选择一个工作空间\n</span></span><span class=line><span class=cl>  D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\n</span></span><span class=line><span class=cl>B: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n</span></span><span class=line><span class=cl>  a: 创建项目（工程）\n</span></span><span class=line><span class=cl>    *File -- New -- Java Project\n</span></span><span class=line><span class=cl>    *在左边空白处，直接右键 -- New -- Java Project\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    键入项目名称后直接 Finish。\n</span></span><span class=line><span class=cl>  b: 所有的 java 文件必须写到 src 下面才有效\n</span></span><span class=line><span class=cl>  c: 创建一个包\n</span></span><span class=line><span class=cl>    cn.lruihao\n</span></span><span class=line><span class=cl>  d: 在包下创建一个类\n</span></span><span class=line><span class=cl>    HelloWorld\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    同时让它帮我们写好了 main 方法。\n</span></span><span class=line><span class=cl>  e: 在 main 方法中写内容即可\n</span></span><span class=line><span class=cl>  f: 编译程序\n</span></span><span class=line><span class=cl>    自动编译，在保存的那一刻帮你做好了\n</span></span><span class=line><span class=cl>  g: 运行程序\n</span></span><span class=line><span class=cl>    选择要运行的文件或者在要运行的文件内容中\n</span></span><span class=line><span class=cl>    右键 -- Run as - Java Application 即可\n</span></span><span class=line><span class=cl>  h: 内容显示\n</span></span><span class=line><span class=cl>    在 Console 控制台显示内容\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=eclipse-的基本设置><span>2 Eclipse 的基本设置</span>\n<a href=#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>程序的编译和运行的环境配置</span><span class=err>（</span><span class=n>如果你的</span><span class=w> </span><span class=n>Eclipse</span><span class=w> </span><span class=n>启动没有问题</span><span class=err>，</span><span class=n>就不要配置了</span><span class=err>）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>去掉默认注释</span><span class=err>（</span><span class=n>可以不用改</span><span class=err>）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>C</span><span class=p>:</span><span class=w> </span><span class=n>行号的显示和隐藏</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>显示</span><span class=err>：</span><span class=n>在代码区域的最左边的空白区域</span><span class=err>，</span><span class=n>右键</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Show</span><span class=w> </span><span class=n>Line</span><span class=w> </span><span class=n>Numbers</span><span class=w> </span><span class=n>即可</span><span class=err>。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>隐藏</span><span class=err>：</span><span class=n>把上面的动作再做一次</span><span class=err>。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>D</span><span class=p>:</span><span class=w> </span><span class=n>字体大小及颜色</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>a</span><span class=p>:</span><span class=n>Java</span><span class=w> </span><span class=n>代码区域的字体大小和颜色</span><span class=err>：</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Java</span><span class=w> </span><span class=n>修改</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Java</span><span class=w> </span><span class=n>Edit</span><span class=w> </span><span class=n>Text</span><span class=w> </span><span class=n>Font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=p>:</span><span class=w> </span><span class=n>控制台</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Debug</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Console</span><span class=w> </span><span class=n>font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>c</span><span class=p>:</span><span class=w> </span><span class=n>其他文件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Preferences</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>General</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Appearance</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Colors</span><span class=w> </span><span class=n>And</span><span class=w> </span><span class=n>Fonts</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Basic</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Text</span><span class=w> </span><span class=n>Font</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>E</span><span class=p>:</span><span class=w> </span><span class=n>窗体给弄乱了</span><span class=err>，</span><span class=n>怎么办</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>window</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>Reset</span><span class=w> </span><span class=n>Perspective</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>F</span><span class=p>:</span><span class=w> </span><span class=n>控制台找不到了</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Window</span><span class=o>--</span><span class=n>Show</span><span class=w> </span><span class=n>View</span><span class=err>—</span><span class=n>Console</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=快捷键的使用><span>3 快捷键的使用</span>\n<a href=#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>内容辅助键</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Alt</span><span class=o>+/</span><span class=w> </span><span class=n>起提示作用</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>main</span><span class=o>+</span><span class=n>alt</span><span class=o>+/</span><span class=p>,</span><span class=n>syso</span><span class=o>+</span><span class=n>alt</span><span class=o>+/</span><span class=p>,</span><span class=w> </span><span class=n>给出其他提示</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>快捷键</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>格式化</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=n>f</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>导入包</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=n>o</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>注释</span><span class=w>  </span><span class=n>ctrl</span><span class=o>+/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+/</span><span class=p>,</span><span class=n>ctrl</span><span class=o>+</span><span class=n>shift</span><span class=o>+</span><span class=err>\\</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>代码上下移动</span><span class=w> </span><span class=n>选中代码</span><span class=w> </span><span class=n>alt</span><span class=o>+</span><span class=n>上</span><span class=o>/</span><span class=n>下箭头</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>查看源码</span><span class=w>  </span><span class=nf>选中类名</span><span class=w> </span><span class=p>(</span><span class=n>F3</span><span class=w> </span><span class=n>或者</span><span class=w> </span><span class=n>Ctrl</span><span class=o>+</span><span class=n>鼠标点击</span><span class=err>）</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=eclipse-中如何提高开发效率><span>4 Eclipse 中如何提高开发效率</span>\n<a href=#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>A</span><span class=p>:</span><span class=w> </span><span class=n>自动生成构造方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>a</span><span class=p>:</span><span class=w> </span><span class=n>无参构造方法</span><span class=w> </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Constructors</span><span class=w> </span><span class=n>from</span><span class=w> </span><span class=n>Superclass</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=p>:</span><span class=w> </span><span class=n>带参构造方法</span><span class=w> </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Constructors</span><span class=w> </span><span class=n>using</span><span class=w> </span><span class=n>fields</span><span class=p>..</span><span class=w> </span><span class=o>--</span><span class=w> </span><span class=n>finish</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>B</span><span class=p>:</span><span class=w> </span><span class=n>自动生成</span><span class=w> </span><span class=n>get</span><span class=o>/</span><span class=n>set</span><span class=w> </span><span class=n>方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>在代码区域右键</span><span class=o>--</span><span class=n>source</span><span class=o>--</span><span class=n>Generate</span><span class=w> </span><span class=n>Getters</span><span class=w> </span><span class=n>and</span><span class=w> </span><span class=n>Setters</span><span class=p>...</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/eclipseuse/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/eclipseuse.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/eclipseuse.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20eclipse+%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7ceclipse+%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/eclipseuse/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/eclipseuse.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/eclipseuse/ data-title=\"Eclipse 的基本使用\" data-hashtags=eclipse,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/eclipseuse/ data-hashtag=eclipse><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/eclipseuse/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/eclipseuse/ data-title=\"Eclipse 的基本使用\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/eclipseuse/ data-title=\"Eclipse 的基本使用\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/eclipse/ class=post-tag title=\"标签 - eclipse\">eclipse</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/qframe/ class=post-nav-item rel=prev title=匿名类在可视化界面中的应用><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>匿名类在可视化界面中的应用</a><a href=/posts/fanxing/ class=post-nav-item rel=next title=\"Java 泛型 Test\">Java 泛型 Test<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#基本使用>基本使用</a></li><li><a href=#eclipse-的基本设置>Eclipse 的基本设置</a></li><li><a href=#快捷键的使用>快捷键的使用</a></li><li><a href=#eclipse-中如何提高开发效率>Eclipse 中如何提高开发效率</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/9e1fc8104320f894b5cb7cbd620e4d93.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/9e1fc8104320f894b5cb7cbd620e4d93.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/eclipseuse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/eclipseuse/index.md",
    "content": "# Eclipse 的基本使用\n\n\n## 基本使用\n\n```diff 基本使用\nA: 选择一个工作空间\n  D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n  a: 创建项目（工程）\n    *File -- New -- Java Project\n    *在左边空白处，直接右键 -- New -- Java Project\n\n    键入项目名称后直接 Finish。\n  b: 所有的 java 文件必须写到 src 下面才有效\n  c: 创建一个包\n    cn.lruihao\n  d: 在包下创建一个类\n    HelloWorld\n\n    同时让它帮我们写好了 main 方法。\n  e: 在 main 方法中写内容即可\n  f: 编译程序\n    自动编译，在保存的那一刻帮你做好了\n  g: 运行程序\n    选择要运行的文件或者在要运行的文件内容中\n    右键 -- Run as - Java Application 即可\n  h: 内容显示\n    在 Console 控制台显示内容\n```\n\n## Eclipse 的基本设置\n\n```java 基本设置\nA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\nB: 去掉默认注释（可以不用改）\nC: 行号的显示和隐藏\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\n  隐藏：把上面的动作再做一次。\nD: 字体大小及颜色\n  a:Java 代码区域的字体大小和颜色：\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n  b: 控制台\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n  c: 其他文件\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了，怎么办\n  window -- Reset Perspective\nF: 控制台找不到了\n  Window--Show View—Console\n```\n\n## 快捷键的使用\n\n```java 快捷键\nA: 内容辅助键\n  Alt+/ 起提示作用\n  main+alt+/,syso+alt+/, 给出其他提示\nB: 快捷键\n  格式化  ctrl+shift+f\n  导入包  ctrl+shift+o\n  注释  ctrl+/\n    ctrl+shift+/,ctrl+shift+\\\n  代码上下移动 选中代码 alt+上/下箭头\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\n```\n\n## Eclipse 中如何提高开发效率\n\n```java 提高开发效率\nA: 自动生成构造方法\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n  在代码区域右键--source--Generate Getters and Setters...\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/eclipseuse/  \n\n"
  },
  {
    "path": "posts/el-backtop-fix/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>用魔法打败魔法 - ElBacktop Fix | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\n\"><meta name=keywords content='Vue2'><meta itemprop=name content=\"用魔法打败魔法 - ElBacktop Fix\"><meta itemprop=description content=\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\"><meta itemprop=datePublished content=\"2023-07-20T11:08:18+08:00\"><meta itemprop=dateModified content=\"2024-01-10T17:39:54+08:00\"><meta itemprop=wordCount content=\"905\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/el-backtop-fix/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"用魔法打败魔法 - ElBacktop Fix\"><meta property=\"og:description\" content=\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-07-20T11:08:18+08:00\"><meta property=\"article:modified_time\" content=\"2024-01-10T17:39:54+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"用魔法打败魔法 - ElBacktop Fix\"><meta name=twitter:description content=\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/el-backtop-fix/ title=\"用魔法打败魔法 - ElBacktop Fix | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/el-table-sticky/ title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/vue-el-demo/ title=\"Vue2 and element-ui related demos\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/el-backtop-fix/index.md title=\"用魔法打败魔法 - ElBacktop Fix | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"用魔法打败魔法 - ElBacktop Fix\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/el-backtop-fix\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2\",\"wordcount\":905,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/el-backtop-fix\\/\",\"datePublished\":\"2023-07-20T11:08:18+08:00\",\"dateModified\":\"2024-01-10T17:39:54+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/el-backtop-fix/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>用魔法打败魔法 - ElBacktop Fix</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>用魔法打败魔法 - ElBacktop Fix</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2023-07-20 11:08:18\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-07-20>2023-07-20</time></span>&nbsp;<span title=\"更新于 2024-01-10 17:39:54\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-01-10>2024-01-10</time></span>&nbsp;<span title=\"905 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"用魔法打败魔法 - ElBacktop Fix\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#问题>问题</a></li><li><a href=#解决>解决</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-01-10，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>这篇文章主要是记录一下继承 <a href=https://element.eleme.cn/#/zh-CN/component/backtop target=_blank rel=\"external nofollow noopener noreferrer\">ElBacktop<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件并修复了一些 bug 的过程。</p><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>由于某些原因，我希望在路由切换时给每个页面的总容器都加上一个共同的 class <code>page-container</code>，然后我就在布局中里面加了这么一段代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=nt>:class</span><span class=o>=</span><span class=s>&#34;classObj&#34;</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;app-wrapper&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;app-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>topbar</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;header-container&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>el-container</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;main-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>sidebar</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;aside-container&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>el-container</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;is-vertical minor-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>&lt;</span><span class=nt>breadcrumb</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;breadcrumb-container&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=c>&lt;!--</span> <span class=nx>这一行</span> <span class=o>--&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>&lt;</span><span class=nt>page-container</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;page-container&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;/</span><span class=nt>el-container</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>el-container</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>el-backtop</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;app-b2t&#34;</span> <span class=na>target</span><span class=o>=</span><span class=s>&#34;.page-container&#34;</span> <span class=nt>:visibility-height</span><span class=o>=</span><span class=s>&#34;50&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=c>&lt;!--</span> <span class=p>&lt;</span><span class=nt>back-to-top</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;app-b2t&#34;</span> <span class=na>target</span><span class=o>=</span><span class=s>&#34;.page-container&#34;</span> <span class=nt>:visibility-height</span><span class=o>=</span><span class=s>&#34;50&#34;</span> <span class=p>/&gt;</span> <span class=o>--&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=PageContainer.vue><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>PageContainer.vue</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>transition</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;fade-transform&#34;</span> <span class=na>mode</span><span class=o>=</span><span class=s>&#34;out-in&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>keep-alive</span> <span class=nt>:include</span><span class=o>=</span><span class=s>&#34;cachedViews&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>router-view</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>keep-alive</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>transition</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>没错，相当于在 router-view 上直接加了一个 class <code>page-container</code>。</p><h2 class=heading-element id=问题><span>2 问题</span>\n<a href=#%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>那么问题就来了，此时 el-backtop 的 target 设置为 <code>.page-container</code>，但是当我切换路由时，<code>.page-container</code> 会被移除再添加为新的页面，此时 el-backtop 就会失效。</p><p>原意是想让 el-backtop 指向每一个包含 <code>.page-container</code> 的页面。</p><h2 class=heading-element id=解决><span>3 解决</span>\n<a href=#%e8%a7%a3%e5%86%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>RTFSC，发现 el-backtop 的 target 属性只会在 mounted 时初始化一次，所以想办法在每次路由切换时重新初始化一下 el-backtop 的 target 属性就行了。</p><ol><li>创建 MutationObserver 实例来观察 target 的父元素的子元素变化已解决上述 bug</li><li>增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器</li></ol><p>最后代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=BackToTop.vue><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>BackToTop.vue</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * BackToTop 继承 el-backtop\n</span></span></span><span class=line><span class=cl><span class=cm> * 1. 修复 el-backtop 在 target 被移除后，无法重新初始化的问题\n</span></span></span><span class=line><span class=cl><span class=cm> * 2. 增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器。例如：&lt;div data-target=&#34;.list-pane&#34;&gt;&lt;/div&gt;\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>Backtop</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;element-ui&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>throttle</span> <span class=nx>from</span> <span class=s1>&#39;throttle-debounce/throttle&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;BackToTop&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Backtop</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>el</span><span class=o>:</span> <span class=kc>null</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>container</span><span class=o>:</span> <span class=kc>null</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>visible</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>observer</span><span class=o>:</span> <span class=kc>null</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>mounted</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>init</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>observeTarget</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>beforeDestroy</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 清除事件监听\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>container</span><span class=p>.</span><span class=nx>removeEventListener</span><span class=p>(</span><span class=s1>&#39;scroll&#39;</span><span class=p>,</span> <span class=k>this</span><span class=p>.</span><span class=nx>throttledScrollHandler</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 停止观察\n</span></span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>observer</span><span class=p>.</span><span class=nx>disconnect</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>methods</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>init</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>container</span> <span class=o>=</span> <span class=nb>document</span>\n</span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>el</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>this</span><span class=p>.</span><span class=nx>el</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=k>this</span><span class=p>.</span><span class=nx>el</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>throw</span> <span class=k>new</span> <span class=nb>Error</span><span class=p>(</span><span class=sb>`target is not existed: </span><span class=si>${</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=si>}</span><span class=sb>`</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 如果 this.el 有 data-target 属性，就使用 data-target 属性的值作为 target\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>el</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>target</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=kr>const</span> <span class=nx>subEl</span> <span class=o>=</span> <span class=k>this</span><span class=p>.</span><span class=nx>el</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>el</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>target</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=nx>subEl</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>el</span> <span class=o>=</span> <span class=nx>subEl</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>this</span><span class=p>.</span><span class=nx>container</span> <span class=o>=</span> <span class=k>this</span><span class=p>.</span><span class=nx>el</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>throttledScrollHandler</span> <span class=o>=</span> <span class=nx>throttle</span><span class=p>(</span><span class=mi>300</span><span class=p>,</span> <span class=k>this</span><span class=p>.</span><span class=nx>onScroll</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>container</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;scroll&#39;</span><span class=p>,</span> <span class=k>this</span><span class=p>.</span><span class=nx>throttledScrollHandler</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 观察 this.container 是否被移除或者新增\n</span></span></span><span class=line><span class=cl><span class=cm>     * 注意 router-view 切换页面步骤：1. 新增 router-view -&gt; 2. 删除旧 router-view\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>observeTarget</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 创建 MutationObserver 实例并传入回调函数\n</span></span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>observer</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>MutationObserver</span><span class=p>((</span><span class=nx>mutationsList</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=kr>const</span> <span class=nx>mutation</span> <span class=k>of</span> <span class=nx>mutationsList</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>if</span> <span class=p>(</span><span class=nx>mutation</span><span class=p>.</span><span class=nx>type</span> <span class=o>===</span> <span class=s1>&#39;childList&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 检测到删除节点\n</span></span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=nx>mutation</span><span class=p>.</span><span class=nx>removedNodes</span><span class=p>.</span><span class=nx>length</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>              <span class=k>for</span> <span class=p>(</span><span class=kr>const</span> <span class=nx>node</span> <span class=k>of</span> <span class=nx>mutation</span><span class=p>.</span><span class=nx>removedNodes</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span> <span class=p>(</span><span class=nx>node</span> <span class=o>===</span> <span class=k>this</span><span class=p>.</span><span class=nx>container</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                  <span class=c1>// 观察如果 this.container 从页面中被移除了，就清除事件监听\n</span></span></span><span class=line><span class=cl>                  <span class=k>this</span><span class=p>.</span><span class=nx>container</span><span class=p>.</span><span class=nx>removeEventListener</span><span class=p>(</span><span class=s1>&#39;scroll&#39;</span><span class=p>,</span> <span class=k>this</span><span class=p>.</span><span class=nx>throttledScrollHandler</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                  <span class=k>this</span><span class=p>.</span><span class=nx>visible</span> <span class=o>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>                  <span class=k>break</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>              <span class=p>}</span>\n</span></span><span class=line><span class=cl>              <span class=c1>// 检测删除前是否有新增节点\n</span></span></span><span class=line><span class=cl>              <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>)</span> <span class=o>===</span> <span class=nx>mutation</span><span class=p>.</span><span class=nx>nextSibling</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=c1>// 观察如果 this.container 被删除前的下一个兄弟节点是 this.target，就重新初始化\n</span></span></span><span class=line><span class=cl>                <span class=k>this</span><span class=p>.</span><span class=nx>init</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>              <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>          <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>})</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 观察 this.container 父元素的子元素变化\n</span></span></span><span class=line><span class=cl>      <span class=k>this</span><span class=p>.</span><span class=nx>observer</span><span class=p>.</span><span class=nx>observe</span><span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>).</span><span class=nx>parentNode</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>childList</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>})</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-01-10 17:39:54\">更新于 2024-01-10&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/fc836f16646eaae93248eae3e2a801a62045f85b rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 发布文章“给 el-card 添加折叠功能”&#10&#10Commit: fc836f16646eaae93248eae3e2a801a62045f85b [fc836f1]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-01-10 17:39:54\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>fc836f1</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/el-backtop-fix/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/el-backtop-fix.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/el-backtop-fix.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%94%A8%E9%AD%94%E6%B3%95%E6%89%93%E8%B4%A5%E9%AD%94%E6%B3%95+-+ElBacktop+Fix&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%94%A8%E9%AD%94%E6%B3%95%E6%89%93%E8%B4%A5%E9%AD%94%E6%B3%95+-+ElBacktop+Fix%7c%0A%7cURL%7chttps://lruihao.cn/posts/el-backtop-fix/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/el-backtop-fix.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/el-backtop-fix/ data-title=\"用魔法打败魔法 - ElBacktop Fix\" data-hashtags=Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/el-backtop-fix/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/el-backtop-fix/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/el-backtop-fix/ data-title=\"用魔法打败魔法 - ElBacktop Fix\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/el-backtop-fix/ data-title=\"用魔法打败魔法 - ElBacktop Fix\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/el-table-sticky/ class=post-nav-item rel=prev title=Lruihao/el-table-sticky><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/el-table-sticky</a><a href=/projects/lruihao/vue-el-demo/ class=post-nav-item rel=next title=Lruihao/vue-el-demo>Lruihao/vue-el-demo<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#问题>问题</a></li><li><a href=#解决>解决</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/76d3ee0b5aa07dd4d045f569bebb748b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/76d3ee0b5aa07dd4d045f569bebb748b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/el-backtop-fix/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/el-backtop-fix/index.md",
    "content": "# 用魔法打败魔法 - ElBacktop Fix\n\n\n这篇文章主要是记录一下继承 [ElBacktop](https://element.eleme.cn/#/zh-CN/component/backtop) 组件并修复了一些 bug 的过程。\n\n<!--more-->\n\n## 前言\n\n由于某些原因，我希望在路由切换时给每个页面的总容器都加上一个共同的 class `page-container`，然后我就在布局中里面加了这么一段代码：\n\n```vue\n<template>\n  <div :class=\"classObj\" class=\"app-wrapper\">\n    <div class=\"app-container\">\n      <topbar class=\"header-container\" />\n      <el-container class=\"main-container\">\n        <sidebar class=\"aside-container\" />\n        <el-container class=\"is-vertical minor-container\">\n          <breadcrumb class=\"breadcrumb-container\" />\n          <!-- 这一行 -->\n          <page-container class=\"page-container\" />\n        </el-container>\n      </el-container>\n    </div>\n\n    <el-backtop class=\"app-b2t\" target=\".page-container\" :visibility-height=\"50\" />\n    <!-- <back-to-top class=\"app-b2t\" target=\".page-container\" :visibility-height=\"50\" /> -->\n  </div>\n</template>\n```\n\n```Vue {title=\"PageContainer.vue\"}\n<template>\n  <transition name=\"fade-transform\" mode=\"out-in\">\n    <keep-alive :include=\"cachedViews\">\n      <router-view />\n    </keep-alive>\n  </transition>\n</template>\n```\n\n没错，相当于在 router-view 上直接加了一个 class `page-container`。\n\n## 问题\n\n那么问题就来了，此时 el-backtop 的 target 设置为 `.page-container`，但是当我切换路由时，`.page-container` 会被移除再添加为新的页面，此时 el-backtop 就会失效。\n\n原意是想让 el-backtop 指向每一个包含 `.page-container` 的页面。\n\n## 解决\n\nRTFSC，发现 el-backtop 的 target 属性只会在 mounted 时初始化一次，所以想办法在每次路由切换时重新初始化一下 el-backtop 的 target 属性就行了。\n\n1. 创建 MutationObserver 实例来观察 target 的父元素的子元素变化已解决上述 bug\n2. 增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器\n\n最后代码如下：\n\n```Vue {title=\"BackToTop.vue\"}\n<script>\n/**\n * BackToTop 继承 el-backtop\n * 1. 修复 el-backtop 在 target 被移除后，无法重新初始化的问题\n * 2. 增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器。例如：<div data-target=\".list-pane\"></div>\n */\nimport { Backtop } from 'element-ui'\nimport throttle from 'throttle-debounce/throttle'\n\nexport default {\n  name: 'BackToTop',\n  extends: Backtop,\n  data() {\n    return {\n      el: null,\n      container: null,\n      visible: false,\n      observer: null,\n    }\n  },\n  mounted() {\n    this.init()\n    this.observeTarget()\n  },\n  beforeDestroy() {\n    // 清除事件监听\n    this.container.removeEventListener('scroll', this.throttledScrollHandler)\n    // 停止观察\n    this.observer.disconnect()\n  },\n  methods: {\n    init() {\n      this.container = document\n      this.el = document.documentElement\n      if (this.target) {\n        this.el = document.querySelector(this.target)\n        if (!this.el) {\n          throw new Error(`target is not existed: ${this.target}`)\n        }\n        // 如果 this.el 有 data-target 属性，就使用 data-target 属性的值作为 target\n        if (this.el.dataset.target) {\n          const subEl = this.el.querySelector(this.el.dataset.target)\n          subEl && (this.el = subEl)\n        }\n        this.container = this.el\n      }\n      this.throttledScrollHandler = throttle(300, this.onScroll)\n      this.container.addEventListener('scroll', this.throttledScrollHandler)\n    },\n    /**\n     * 观察 this.container 是否被移除或者新增\n     * 注意 router-view 切换页面步骤：1. 新增 router-view -> 2. 删除旧 router-view\n     */\n    observeTarget() {\n      // 创建 MutationObserver 实例并传入回调函数\n      this.observer = new MutationObserver((mutationsList) => {\n        for (const mutation of mutationsList) {\n          if (mutation.type === 'childList') {\n            // 检测到删除节点\n            if (mutation.removedNodes.length > 0) {\n              for (const node of mutation.removedNodes) {\n                if (node === this.container) {\n                  // 观察如果 this.container 从页面中被移除了，就清除事件监听\n                  this.container.removeEventListener('scroll', this.throttledScrollHandler)\n                  this.visible = false\n                  break\n                }\n              }\n              // 检测删除前是否有新增节点\n              if (document.querySelector(this.target) === mutation.nextSibling) {\n                // 观察如果 this.container 被删除前的下一个兄弟节点是 this.target，就重新初始化\n                this.init()\n              }\n            }\n          }\n        }\n      })\n      // 观察 this.container 父元素的子元素变化\n      this.observer.observe(document.querySelector(this.target).parentNode, {\n        childList: true,\n      })\n    },\n  },\n}\n</script>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/el-backtop-fix/  \n\n"
  },
  {
    "path": "posts/el-card-collapse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>给 El-Card 添加折叠功能 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \"><meta name=keywords content='Vue2'><meta itemprop=name content=\"给 el-card 添加折叠功能\"><meta itemprop=description content=\"出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\"><meta itemprop=datePublished content=\"2024-01-10T17:06:54+08:00\"><meta itemprop=dateModified content=\"2024-01-10T17:39:54+08:00\"><meta itemprop=wordCount content=\"902\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/el-card-collapse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"给 el-card 添加折叠功能\"><meta property=\"og:description\" content=\"出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-01-10T17:06:54+08:00\"><meta property=\"article:modified_time\" content=\"2024-01-10T17:39:54+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"给 el-card 添加折叠功能\"><meta name=twitter:description content=\"出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/el-card-collapse/ title=\"给 el-card 添加折叠功能 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/d8ae205/ title=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><link rel=next type=text/html href=https://lruihao.cn/posts/6550187/ title=\"git submodule: already exists in the index\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/el-card-collapse/index.md title=\"给 el-card 添加折叠功能 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"给 el-card 添加折叠功能\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/el-card-collapse\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2\",\"wordcount\":902,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/el-card-collapse\\/\",\"datePublished\":\"2024-01-10T17:06:54+08:00\",\"dateModified\":\"2024-01-10T17:39:54+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/el-card-collapse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>给 El-Card 添加折叠功能</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>给 El-Card 添加折叠功能</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2024-01-10 17:06:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-01-10>2024-01-10</time></span>&nbsp;<span title=\"更新于 2024-01-10 17:39:54\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-01-10>2024-01-10</time></span>&nbsp;<span title=\"902 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"给 El-Card 添加折叠功能\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#效果>效果</a></li><li><a href=#实现过程>实现过程</a></li><li><a href=#实现方式>实现方式</a></li><li><a href=#使用方法>使用方法</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-01-10，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>出发点<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>虽然 Element 也有 <a href=https://element.eleme.cn/#/zh-CN/component/collapse target=_blank rel=\"external nofollow noopener noreferrer\">el-collapse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，<a href=https://element.eleme.cn/#/zh-CN/component/card target=_blank rel=\"external nofollow noopener noreferrer\">el-card<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。</div></div></div><h2 class=heading-element id=效果><span>1 效果</span>\n<a href=#%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在线演示：<a href=https://lruihao.github.io/vue-el-demo/#/card-collapse target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/vue-el-demo/#/card-collapse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=实现过程><span>2 实现过程</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e8%bf%87%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一开始想着使用 Vue 的自定义指令功能来实现，但是动手之前还是习惯性地先看 el-card 的源码，如下所示：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card&#34;</span> <span class=o>:</span><span class=na>class</span><span class=o>=</span><span class=s>&#34;shadow ? &#39;is-&#39; + shadow + &#39;-shadow&#39; : &#39;is-always-shadow&#39;&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card__header&#34;</span> <span class=nt>v-if</span><span class=o>=</span><span class=s>&#34;$slots.header || header&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>slot</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;header&#34;</span><span class=p>&gt;{{</span> <span class=nx>header</span> <span class=p>}}&lt;/</span><span class=nt>slot</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card__body&#34;</span> <span class=nt>:style</span><span class=o>=</span><span class=s>&#34;bodyStyle&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>slot</span><span class=p>&gt;&lt;/</span><span class=nt>slot</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;ElCard&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>header</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>bodyStyle</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>shadow</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>type</span><span class=o>:</span> <span class=nb>String</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>这一看源码这么简单，直接改得了，还用啥自定义指令，开干！</p><h2 class=heading-element id=实现方式><span>3 实现方式</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>通过继承 el-card 组件来实现，这样就不用改 el-card 的源码了，也不用担心升级 Element 时会被覆盖掉。</li><li>然后在继承的组件中添加一个 <code>isCollapse</code> 属性来控制折叠状态。</li></ol><p>继承也很简单，这样简单几行就完整继承了原来 el-card 的所有功能了：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>Card</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;element-ui&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;ElCardCollapse&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Card</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>然后，把 el-card template 中的代码先原封不动地复制过来，再在需要的地方添加折叠按钮和相关逻辑就行了：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=ElCardCollapse.vue><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>ElCardCollapse.vue</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card&#34;</span> <span class=o>:</span><span class=na>class</span><span class=o>=</span><span class=s>&#34;shadow ? &#39;is-&#39; + shadow + &#39;-shadow&#39; : &#39;is-always-shadow&#39;&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span>\n</span></span><span class=line><span class=cl>      <span class=nt>v-if</span><span class=o>=</span><span class=s>&#34;$slots.header || header&#34;</span><span class=p>\n</span></span></span><span class=line><span class=cl>      <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card__header&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=o>:</span><span class=na>class</span><span class=o>=</span><span class=s>&#34;isCollapseSelf ? &#39;collapse-icon-right&#39; : &#39;collapse-icon-down&#39;&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>@click</span><span class=s>=&#34;isCollapseSelf = !isCollapseSelf&#34;</span><span class=p>\n</span></span></span><span class=line><span class=cl>    <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>slot</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;header&#34;</span><span class=p>&gt;{{</span> <span class=nx>header</span> <span class=p>}}&lt;/</span><span class=nt>slot</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span>\n</span></span><span class=line><span class=cl>      <span class=na>class</span><span class=o>=</span><span class=s>&#34;el-card__body&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>:style</span><span class=o>=</span><span class=s>&#34;bodyStyle&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=o>:</span><span class=na>class</span><span class=o>=</span><span class=s>&#34;{&#39;is-collapse&#39;: isCollapseSelf}&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>slot</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>Card</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;element-ui&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;ElCardCollapse&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=kr>extends</span><span class=o>:</span> <span class=nx>Card</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>isCollapse</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Boolean</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>isCollapseSelf</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>isCollapse</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;scss&#34;</span> <span class=na>scoped</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>el</span><span class=o>-</span><span class=nx>card__header</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>cursor</span><span class=o>:</span> <span class=nx>pointer</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>position</span><span class=o>:</span> <span class=nx>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=o>&amp;::</span><span class=nx>after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>font</span><span class=o>-</span><span class=nx>family</span><span class=o>:</span> <span class=nx>element</span><span class=o>-</span><span class=nx>icons</span> <span class=o>!</span><span class=nx>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>speak</span><span class=o>:</span> <span class=nx>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>font</span><span class=o>-</span><span class=nx>style</span><span class=o>:</span> <span class=nx>normal</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>font</span><span class=o>-</span><span class=nx>weight</span><span class=o>:</span> <span class=mi>400</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>font</span><span class=o>-</span><span class=nx>variant</span><span class=o>:</span> <span class=nx>normal</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>text</span><span class=o>-</span><span class=nx>transform</span><span class=o>:</span> <span class=nx>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>line</span><span class=o>-</span><span class=nx>height</span><span class=o>:</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vertical</span><span class=o>-</span><span class=nx>align</span><span class=o>:</span> <span class=nx>baseline</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>display</span><span class=o>:</span> <span class=nx>inline</span><span class=o>-</span><span class=nx>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=o>-</span><span class=nx>webkit</span><span class=o>-</span><span class=nx>font</span><span class=o>-</span><span class=nx>smoothing</span><span class=o>:</span> <span class=nx>antialiased</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=o>-</span><span class=nx>moz</span><span class=o>-</span><span class=nx>osx</span><span class=o>-</span><span class=nx>font</span><span class=o>-</span><span class=nx>smoothing</span><span class=o>:</span> <span class=nx>grayscale</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>position</span><span class=o>:</span> <span class=nx>absolute</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>right</span><span class=o>:</span> <span class=mi>10</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>top</span><span class=o>:</span> <span class=mi>50</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>transform</span><span class=o>:</span> <span class=nx>translateY</span><span class=p>(</span><span class=o>-</span><span class=mi>50</span><span class=o>%</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=o>&amp;</span><span class=p>.</span><span class=nx>collapse</span><span class=o>-</span><span class=nx>icon</span><span class=o>-</span><span class=nx>right</span><span class=o>::</span><span class=nx>after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>content</span><span class=o>:</span> <span class=s1>&#39;\\e6e0&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=o>&amp;</span><span class=p>.</span><span class=nx>collapse</span><span class=o>-</span><span class=nx>icon</span><span class=o>-</span><span class=nx>down</span><span class=o>::</span><span class=nx>after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>content</span><span class=o>:</span> <span class=s1>&#39;\\e6df&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>is</span><span class=o>-</span><span class=nx>collapse</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>display</span><span class=o>:</span> <span class=nx>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用方法><span>4 使用方法</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <code>main.js</code> 中引入：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>ElCardCollapse</span> <span class=nx>from</span> <span class=s1>&#39;@/components/ElCardCollapse.vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>component</span><span class=p>(</span><span class=s1>&#39;ElCardCollapse&#39;</span><span class=p>,</span> <span class=nx>ElCardCollapse</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>写法和 el-card 一样，只是多了一个 <code>is-collapse</code> 属性，使用 <code>el-card-collapse</code> 代替 <code>el-card</code> 即可：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Vue data-lang=Vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>el-card-collapse</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;box-card&#34;</span> <span class=nt>:is-collapse</span><span class=o>=</span><span class=s>&#34;isCollapse&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>div</span> <span class=na>slot</span><span class=o>=</span><span class=s>&#34;header&#34;</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;flex-between&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>span</span><span class=p>&gt;</span><span class=nx>卡片名称</span><span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>el-button</span> <span class=na>style</span><span class=o>=</span><span class=s>&#34;padding: 3px 0; margin-right: 10px;&#34;</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text&#34;</span><span class=p>&gt;</span><span class=nx>操作按钮</span><span class=p>&lt;/</span><span class=nt>el-button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>div</span> <span class=nt>v-for</span><span class=o>=</span><span class=s>&#34;o in 4&#34; :key=&#34;o&#34; class=&#34;text item&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>{{</span> <span class=err>&#39;</span><span class=na>列表内容</span> <span class=err>&#39;</span> <span class=err>+</span> <span class=na>o</span> <span class=p>}}</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=err>&lt;/</span><span class=na>el</span><span class=nt>-card-collapse</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;CardCollapse&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>isCollapse</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;scss&#34;</span> <span class=na>scoped</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>text</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>font</span><span class=o>-</span><span class=nx>size</span><span class=o>:</span> <span class=mi>14</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>margin</span><span class=o>-</span><span class=nx>bottom</span><span class=o>:</span> <span class=mi>18</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>flex</span><span class=o>-</span><span class=nx>between</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>display</span><span class=o>:</span> <span class=nx>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>justify</span><span class=o>-</span><span class=nx>content</span><span class=o>:</span> <span class=nx>space</span><span class=o>-</span><span class=nx>between</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>align</span><span class=o>-</span><span class=nx>items</span><span class=o>:</span> <span class=nx>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>box</span><span class=o>-</span><span class=nx>card</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>width</span><span class=o>:</span> <span class=mi>480</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-01-10 17:39:54\">更新于 2024-01-10&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/fc836f16646eaae93248eae3e2a801a62045f85b rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 发布文章“给 el-card 添加折叠功能”&#10&#10Commit: fc836f16646eaae93248eae3e2a801a62045f85b [fc836f1]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-01-10 17:39:54\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>fc836f1</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/el-card-collapse/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/el-card-collapse.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/el-card-collapse.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%BB%99+el-card+%E6%B7%BB%E5%8A%A0%E6%8A%98%E5%8F%A0%E5%8A%9F%E8%83%BD&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%BB%99+el-card+%E6%B7%BB%E5%8A%A0%E6%8A%98%E5%8F%A0%E5%8A%9F%E8%83%BD%7c%0A%7cURL%7chttps://lruihao.cn/posts/el-card-collapse/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/el-card-collapse.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/el-card-collapse/ data-title=\"给 El-Card 添加折叠功能\" data-hashtags=Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/el-card-collapse/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/el-card-collapse/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/el-card-collapse/ data-title=\"给 El-Card 添加折叠功能\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/el-card-collapse/ data-title=\"给 El-Card 添加折叠功能\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/d8ae205/ class=post-nav-item rel=prev title=\"Amazon Titan 文本模型\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Amazon Titan 文本模型</a><a href=/posts/6550187/ class=post-nav-item rel=next title=\"Git Submodule: Already Exists in the Index\">Git Submodule: Already Exists in the Index<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#效果>效果</a></li><li><a href=#实现过程>实现过程</a></li><li><a href=#实现方式>实现方式</a></li><li><a href=#使用方法>使用方法</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c7abcdc6ecfd72bb00803225755a0d6b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c7abcdc6ecfd72bb00803225755a0d6b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/el-card-collapse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/el-card-collapse/index.md",
    "content": "# 给 El-Card 添加折叠功能\n\n\n{{< admonition question \"出发点\" >}}\n虽然 Element 也有 [el-collapse](https://element.eleme.cn/#/zh-CN/component/collapse) 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，[el-card](https://element.eleme.cn/#/zh-CN/component/card) 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\n{{< /admonition >}}\n\n<!--more-->\n\n## 效果\n\n在线演示：<https://lruihao.github.io/vue-el-demo/#/card-collapse>\n\n## 实现过程\n\n一开始想着使用 Vue 的自定义指令功能来实现，但是动手之前还是习惯性地先看 el-card 的源码，如下所示：\n\n```Vue\n<template>\n  <div class=\"el-card\" :class=\"shadow ? 'is-' + shadow + '-shadow' : 'is-always-shadow'\">\n    <div class=\"el-card__header\" v-if=\"$slots.header || header\">\n      <slot name=\"header\">{{ header }}</slot>\n    </div>\n    <div class=\"el-card__body\" :style=\"bodyStyle\">\n      <slot></slot>\n    </div>\n  </div>\n</template>\n\n<script>\n  export default {\n    name: 'ElCard',\n    props: {\n      header: {},\n      bodyStyle: {},\n      shadow: {\n        type: String\n      }\n    }\n  };\n</script>\n```\n\n这一看源码这么简单，直接改得了，还用啥自定义指令，开干！\n\n## 实现方式\n\n1. 通过继承 el-card 组件来实现，这样就不用改 el-card 的源码了，也不用担心升级 Element 时会被覆盖掉。\n2. 然后在继承的组件中添加一个 `isCollapse` 属性来控制折叠状态。\n\n继承也很简单，这样简单几行就完整继承了原来 el-card 的所有功能了：\n\n```Vue\n<script>\nimport { Card } from 'element-ui'\nexport default {\n  name: 'ElCardCollapse',\n  extends: Card,\n}\n</script>\n```\n\n然后，把 el-card template 中的代码先原封不动地复制过来，再在需要的地方添加折叠按钮和相关逻辑就行了：\n\n```Vue {title=\"ElCardCollapse.vue\"}\n<template>\n  <div class=\"el-card\" :class=\"shadow ? 'is-' + shadow + '-shadow' : 'is-always-shadow'\">\n    <div\n      v-if=\"$slots.header || header\"\n      class=\"el-card__header\"\n      :class=\"isCollapseSelf ? 'collapse-icon-right' : 'collapse-icon-down'\"\n      @click=\"isCollapseSelf = !isCollapseSelf\"\n    >\n      <slot name=\"header\">{{ header }}</slot>\n    </div>\n    <div\n      class=\"el-card__body\"\n      :style=\"bodyStyle\"\n      :class=\"{'is-collapse': isCollapseSelf}\"\n    >\n      <slot />\n    </div>\n  </div>\n</template>\n\n<script>\nimport { Card } from 'element-ui'\nexport default {\n  name: 'ElCardCollapse',\n  extends: Card,\n  props: {\n    isCollapse: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isCollapseSelf: this.isCollapse,\n    }\n  },\n}\n</script>\n<style lang=\"scss\" scoped>\n.el-card__header {\n  cursor: pointer;\n  position: relative;\n\n  &::after {\n    font-family: element-icons !important;\n    speak: none;\n    font-style: normal;\n    font-weight: 400;\n    font-variant: normal;\n    text-transform: none;\n    line-height: 1;\n    vertical-align: baseline;\n    display: inline-block;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    position: absolute;\n    right: 10px;\n    top: 50%;\n    transform: translateY(-50%);\n  }\n\n  &.collapse-icon-right::after {\n    content: '\\e6e0';\n  }\n  &.collapse-icon-down::after {\n    content: '\\e6df';\n  }\n}\n.is-collapse {\n  display: none;\n}\n</style>\n```\n\n## 使用方法\n\n在 `main.js` 中引入：\n\n```js\nimport ElCardCollapse from '@/components/ElCardCollapse.vue'\nVue.component('ElCardCollapse', ElCardCollapse)\n```\n\n写法和 el-card 一样，只是多了一个 `is-collapse` 属性，使用 `el-card-collapse` 代替 `el-card` 即可：\n\n```Vue\n<template>\n  <div>\n    <el-card-collapse class=\"box-card\" :is-collapse=\"isCollapse\">\n      <div slot=\"header\" class=\"flex-between\">\n        <span>卡片名称</span>\n        <el-button style=\"padding: 3px 0; margin-right: 10px;\" type=\"text\">操作按钮</el-button>\n      </div>\n      <div v-for=\"o in 4\" :key=\"o\" class=\"text item\">\n        {{ '列表内容 ' + o }}\n      </div>\n    </el-card-collapse>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'CardCollapse',\n  data() {\n    return {\n      isCollapse: true,\n    }\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.text {\n  font-size: 14px;\n}\n\n.item {\n  margin-bottom: 18px;\n}\n\n.flex-between {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.box-card {\n  width: 480px;\n}\n</style>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/el-card-collapse/  \n\n"
  },
  {
    "path": "posts/electron-summary/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Electron 踩坑总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\n\"><meta name=keywords content='electron'><meta itemprop=name content=\"electron 踩坑总结\"><meta itemprop=description content=\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\"><meta itemprop=datePublished content=\"2022-08-12T11:22:01+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1991\"><meta itemprop=image content=\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\"><meta itemprop=keywords content=\"electron\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/electron-summary/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"electron 踩坑总结\"><meta property=\"og:description\" content=\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-12T11:22:01+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"electron\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\"><meta name=twitter:title content=\"electron 踩坑总结\"><meta name=twitter:description content=\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/electron-summary/ title=\"electron 踩坑总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/encryption-fe/ title=前端页面内容加密总结><link rel=next type=text/html href=https://lruihao.cn/posts/commit-spec/ title=\"Commit Message Spec\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/electron-summary/index.md title=\"electron 踩坑总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"electron 踩坑总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/electron-summary\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/electron-summary\\/images\\/featured-image.png\",\"width\":935,\"height\":458}],\"genre\":\"posts\",\"keywords\":\"electron\",\"wordcount\":1991,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/electron-summary\\/\",\"datePublished\":\"2022-08-12T11:22:01+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/electron-summary/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Electron 踩坑总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Electron 踩坑总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-12 11:22:01\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-12>2022-08-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1991 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Electron 踩坑总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/electron-summary/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/electron-summary/images/featured-image.png height=458 width=935></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#简介>简介</a></li><li><a href=#知识点>知识点</a><ol><li><a href=#进程>进程</a></li><li><a href=#技术栈>技术栈</a></li><li><a href=#安装>安装</a></li><li><a href=#remote>remote</a></li></ol></li><li><a href=#问题点>问题点</a><ol><li><a href=#打开外部浏览器>打开外部浏览器</a></li><li><a href=#防抖与节流>防抖与节流</a></li><li><a href=#devtools>devTools</a></li><li><a href=#启动白屏>启动白屏</a><ol><li><a href=#启动前-loading>启动前 loading</a></li><li><a href=#启动后-loading>启动后 loading</a></li></ol></li><li><a href=#阻止窗口关闭>阻止窗口关闭</a></li><li><a href=#手动关闭窗口>手动关闭窗口</a></li><li><a href=#全局快捷键>全局快捷键</a></li><li><a href=#electron-builder>electron-builder</a><ol><li><a href=#windows-打包>windows 打包</a></li><li><a href=#macos-打包>macOS 打包</a></li></ol></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>总结一下最近 electron 开发遇到的问题和一些重要知识点。</p><h2 class=heading-element id=简介><span>1 简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果你可以建一个网站，你就可以建一个桌面应用程序。 <a href=https://www.electronjs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Electron<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的开源框架，它负责比较难搞的部分，你只需把精力放在你的应用的核心上即可。</p><h2 class=heading-element id=知识点><span>2 知识点</span>\n<a href=#%e7%9f%a5%e8%af%86%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=进程><span>2.1 进程</span>\n<a href=#%e8%bf%9b%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>electron 由两种进程组成，包括<code>主进程</code>和 0 个或 n 个<code>渲染进程</code>。</p><ol><li><code>主进程</code>：承担应用的生命周期（包括启动，退出，准备，正在切换到后台，正在切换到前台等，还负责与原生操作系统 API 通信）</li><li><code>渲染进程</code>：做 web 页面的 ui，渲染进程之间独立在各自的单线程，渲染进程之间相互隔离，不能直接访问操作系统，需要通信到主线程，在通过主线程操作访问操作形态，一个 BrowserWindow 实例即为一个渲染进程</li></ol><h3 class=heading-element id=技术栈><span>2.2 技术栈</span>\n<a href=#%e6%8a%80%e6%9c%af%e6%a0%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>electron 整合了 Node 和浏览器的所有能力，可以随意发挥这些技术栈的特点。由于固定浏览器内核，可以无需考虑兼容性地使用 html/js/css 新特性。</p><h3 class=heading-element id=安装><span>2.3 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>安装 electron 时，可能因为网络问题导致下载失败，需要使用镜像仓库来下载。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 设置 electron 镜像仓库</span>\n</span></span><span class=line><span class=cl><span class=c1># https://registry.npmmirror.com/-/binary/electron</span>\n</span></span><span class=line><span class=cl><span class=c1># 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> <span class=nv>electron_mirror</span><span class=o>=</span>https://npmmirror.com/mirrors/electron/</span></span></code></pre></td></tr></table></div></div></div><p>M1 Mac 安装较低版本 electron 时可能会报错，<code>Failed to find Electron v xxx for darwin-arm64</code>，因为这些版本的 electron 不支持 darwin-arm64 架构。Apple 针对未适配的 X64 应用提供了 Rosetta2 转换器，安装 darwin-x64 版本的 electron 在 Intel 模式下运行即可，<a href=https://www.jianshu.com/p/b1b3577fd373 target=_blank rel=\"external nofollow noopener noreferrer\">参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=remote><span>2.4 remote</span>\n<a href=#remote class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>不要频繁使用 remote, 更多应该手动进行和主进程之间的通信。</p></blockquote><p>使用时需在窗口创建时设置 <code>webPreferences.enableRemoteModule</code> 为 <code>true</code>。</p><p>旧版本的 <code>electron.remote</code> 已经弃用，应该使用依赖 <code>electron/remote</code> 代替。</p><p>使用了旧版本的 remote 时会有控制台警告信息：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>(electron) The remote module is deprecated. Use https://github.com/electron/remote instead.</span></span></code></pre></td></tr></table></div></div></div><ul><li>获取当前窗口：<code>remote.getCurrentWindow()</code></li></ul><h2 class=heading-element id=问题点><span>3 问题点</span>\n<a href=#%e9%97%ae%e9%a2%98%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=打开外部浏览器><span>3.1 打开外部浏览器</span>\n<a href=#%e6%89%93%e5%bc%80%e5%a4%96%e9%83%a8%e6%b5%8f%e8%a7%88%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>electron 的 <code>shell</code> 模块，可以使用 <code>shell.openExternal(url)</code> 在默认浏览器打开链接。</p><h3 class=heading-element id=防抖与节流><span>3.2 防抖与节流</span>\n<a href=#%e9%98%b2%e6%8a%96%e4%b8%8e%e8%8a%82%e6%b5%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>防抖：短期内大量触发事件时，只执行最后一次。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>function</span> <span class=nx>debounce</span><span class=p>(</span><span class=nx>fn</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>timer</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>clearTimeOut</span><span class=p>(</span><span class=nx>timer</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nx>timer</span> <span class=o>=</span> <span class=nx>setTimeOut</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>fn</span><span class=p>.</span><span class=nx>applay</span><span class=p>(</span><span class=k>this</span><span class=p>,</span> <span class=nx>arguments</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span> <span class=mi>300</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>节流：短期内大量触发事件时，只执行第一次。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>function</span> <span class=nx>throttle</span><span class=p>(</span><span class=nx>fn</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>timer</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>timer</span><span class=p>)</span> <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>timer</span> <span class=o>=</span> <span class=nx>setTimeOut</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>fn</span><span class=p>.</span><span class=nx>applay</span><span class=p>(</span><span class=k>this</span><span class=p>,</span> <span class=nx>arguments</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>timer</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span> <span class=mi>300</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=devtools><span>3.3 devTools</span>\n<a href=#devtools class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>初始化窗口时设置 <code>webPreferences.devTools</code> 为 <code>true</code>，然后通过 <code>mainWindow.webContents.openDevTools()</code> 打开开发者工具。</p><p>如果只在开发环境启用开发者工具，则需要设置 <code>webPreferences.devTools</code> 为 <code>process.env.NODE_ENV === 'development'</code></p><h3 class=heading-element id=启动白屏><span>3.4 启动白屏</span>\n<a href=#%e5%90%af%e5%8a%a8%e7%99%bd%e5%b1%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在创建窗口时设置 <code>show: false</code>，在 <code>ready-to-show</code> 事件之后执行 <code>mainWindow.show()</code>，</p><p>可见官方文档 <a href=https://www.electronjs.org/zh/docs/latest/api/browser-window#%e4%bc%98%e9%9b%85%e5%9c%b0%e6%98%be%e7%a4%ba%e7%aa%97%e5%8f%a3 target=_blank rel=\"external nofollow noopener noreferrer\">优雅地显示窗口<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h4 class=heading-element id=启动前-loading><span>3.4.1 启动前 loading</span>\n<a href=#%e5%90%af%e5%8a%a8%e5%89%8d-loading class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>额外创建一个 loading 窗口，该窗口可设置为透明只包含 loading 图标和文字，在 <code>mainWindow.show()</code> 后关闭。</p><h4 class=heading-element id=启动后-loading><span>3.4.2 启动后 loading</span>\n<a href=#%e5%90%af%e5%8a%a8%e5%90%8e-loading class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>如果使用了 Vue 框架，在 Vue 初始化之前窗口虽然出现了，但是内容时空白的，可以在 Vue 实例 #app 里写一个 loading, Vue 加载完后会覆盖掉。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>div</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;app&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=c>&lt;!-- Display the loading icon and text until Vue initialization is complete --&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>style</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/css&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=nt>html</span><span class=o>,</span>\n</span></span><span class=line><span class=cl>    <span class=nt>body</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>height</span><span class=p>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>margin</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nt>body</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>#</span><span class=nn>app</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>margin</span><span class=p>:</span> <span class=kc>auto</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>align-items</span><span class=p>:</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>@</span><span class=k>media</span> <span class=o>(</span><span class=nt>prefers-color-scheme</span><span class=o>:</span> <span class=nt>dark</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nt>body</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>color</span><span class=p>:</span> <span class=mh>#fff</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>background-color</span><span class=p>:</span> <span class=mh>#202124</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>svg</span>\n</span></span><span class=line><span class=cl>    <span class=na>xmlns</span><span class=o>=</span><span class=s>&#34;http://www.w3.org/2000/svg&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>style</span><span class=o>=</span><span class=s>&#34;margin:auto;background:0 0&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>width</span><span class=o>=</span><span class=s>&#34;60&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>height</span><span class=o>=</span><span class=s>&#34;60&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>viewBox</span><span class=o>=</span><span class=s>&#34;0 0 100 100&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>preserveAspectRatio</span><span class=o>=</span><span class=s>&#34;xMidYMid&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>display</span><span class=o>=</span><span class=s>&#34;block&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>circle</span>\n</span></span><span class=line><span class=cl>      <span class=na>cx</span><span class=o>=</span><span class=s>&#34;50&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>cy</span><span class=o>=</span><span class=s>&#34;50&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>r</span><span class=o>=</span><span class=s>&#34;20&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>stroke-width</span><span class=o>=</span><span class=s>&#34;4&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>stroke</span><span class=o>=</span><span class=s>&#34;#a5a5a5&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>stroke-dasharray</span><span class=o>=</span><span class=s>&#34;31.416 31.416&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>fill</span><span class=o>=</span><span class=s>&#34;none&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>stroke-linecap</span><span class=o>=</span><span class=s>&#34;round&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>transform</span><span class=o>=</span><span class=s>&#34;rotate(67.21 50 50)&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>animateTransform</span> <span class=na>attributeName</span><span class=o>=</span><span class=s>&#34;transform&#34;</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;rotate&#34;</span> <span class=na>repeatCount</span><span class=o>=</span><span class=s>&#34;indefinite&#34;</span> <span class=na>dur</span><span class=o>=</span><span class=s>&#34;1s&#34;</span> <span class=na>keyTimes</span><span class=o>=</span><span class=s>&#34;0;1&#34;</span> <span class=na>values</span><span class=o>=</span><span class=s>&#34;0 50 50;360 50 50&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>circle</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>svg</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>span</span><span class=p>&gt;</span>加载中 ...<span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=阻止窗口关闭><span>3.5 阻止窗口关闭</span>\n<a href=#%e9%98%bb%e6%ad%a2%e7%aa%97%e5%8f%a3%e5%85%b3%e9%97%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>可以在关闭前一些事件里做拦截，比如：<code>onbeforeunload</code> 等，详见 <a href=https://www.electronjs.org/zh/docs/latest/api/browser-window#%e5%ae%9e%e4%be%8b%e4%ba%8b%e4%bb%b6 target=_blank rel=\"external nofollow noopener noreferrer\">实例事件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=手动关闭窗口><span>3.6 手动关闭窗口</span>\n<a href=#%e6%89%8b%e5%8a%a8%e5%85%b3%e9%97%ad%e7%aa%97%e5%8f%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当自定义关闭时，使用 <code>mainWindow.destroy()</code> 来关闭窗口，因为使用 <code>mainWindow.close()</code> 时，windows 系统打开开发者工具时会出现无法关闭窗口的情况。</p><h3 class=heading-element id=全局快捷键><span>3.7 全局快捷键</span>\n<a href=#%e5%85%a8%e5%b1%80%e5%bf%ab%e6%8d%b7%e9%94%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当 electron 版本较低时，比如 <code>13.1.7</code>，会出现在 mac 系统上复制粘贴等常用快捷键失效的问题。可通过设置菜单并绑定快捷键的方式解决。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>main</span> <span class=o>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>submenu</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;关于&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;about&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;关闭&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;close&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;退出&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;quit&#39;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;编辑&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>submenu</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;撤销&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;undo&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;恢复&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;redo&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;separator&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;剪切&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;cut&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;复制&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;copy&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;粘贴&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;paste&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;separator&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;全选&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;selectAll&#39;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>dev</span> <span class=o>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;开发者&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>submenu</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;刷新&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;reload&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;强制刷新&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;forcereload&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>type</span><span class=o>:</span> <span class=s1>&#39;separator&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span> <span class=nx>label</span><span class=o>:</span> <span class=s1>&#39;开发者工具&#39;</span><span class=p>,</span> <span class=nx>role</span><span class=o>:</span> <span class=s1>&#39;toggledevtools&#39;</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>process</span><span class=p>.</span><span class=nx>env</span><span class=p>.</span><span class=nx>NODE_ENV</span> <span class=o>===</span> <span class=s1>&#39;development&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>main</span><span class=p>.</span><span class=nx>push</span><span class=p>(...</span><span class=nx>dev</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=nx>main</span><span class=p>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>memuConfig</span> <span class=nx>from</span> <span class=s1>&#39;./menu&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>Menu</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;electron&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>process</span><span class=p>.</span><span class=nx>platform</span> <span class=o>===</span> <span class=s1>&#39;darwin&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>menu</span> <span class=o>=</span> <span class=nx>Menu</span><span class=p>.</span><span class=nx>buildFromTemplate</span><span class=p>(</span><span class=nx>memuConfig</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>Menu</span><span class=p>.</span><span class=nx>setApplicationMenu</span><span class=p>(</span><span class=nx>menu</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=electron-builder><span>3.8 electron-builder</span>\n<a href=#electron-builder class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>下载时，可能因为网络问题导致下载失败，可设置 GitHub 下载镜像。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># GitHub 仓库下载地址前缀镜像</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> <span class=nv>disturl</span><span class=o>=</span>https://registry.npmmirror.com/-/binary/</span></span></code></pre></td></tr></table></div></div></div><p>或者去 GitHub 手动下载，然后解压到缓存目录：</p><ul><li>macOS: <code>~/Library/Caches/electron-builder/</code></li><li>linux: <code>~/.cache/electron-builder/</code></li><li>windows: <code>%LOCALAPPDATA%\\electron-builder\\cache\\</code></li></ul><p>mac 上缓存目录如下，其他可 <a href=https://www.cnblogs.com/xueyoucd/p/8006610.html target=_blank rel=\"external nofollow noopener noreferrer\">参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>▸ nsis/\n</span></span><span class=line><span class=cl>  ▸ nsis-resources-3.4.1/\n</span></span><span class=line><span class=cl>  ▸ nsis-3.0.4.1/\n</span></span><span class=line><span class=cl>▸ winCodeSign/\n</span></span><span class=line><span class=cl>  ▸ winCodeSign-2.6.0/\n</span></span><span class=line><span class=cl>▸ wine/\n</span></span><span class=line><span class=cl>  ▸ wine-4.0.1-mac/</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=windows-打包><span>3.8.1 windows 打包</span>\n<a href=#windows-%e6%89%93%e5%8c%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>windows 系统打包配置，当没有配置签名时，<code>sign</code> 字段应删除或者配置为 <code>null</code>，否则可能导致打包时报错。</p><json-viewer value='\"{\\n  \\\"win\\\": {\\n    \\\"icon\\\": \\\"static/icons/icon.ico\\\",\\n    \\\"verifyUpdateCodeSignature\\\": false,\\n    \\\"target\\\": \\\"nsis\\\",\\n    \\\"sign\\\": null\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>注：win11 打包在 win10 上可能运行不了，最好使用 win10 打包或者 mac 打包指定系统和位数。</p><h4 class=heading-element id=macos-打包><span>3.8.2 macOS 打包</span>\n<a href=#macos-%e6%89%93%e5%8c%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>问题：mac 升级之后 electron 打包报错 <code>Exit code: ENOENT. spawn /usr/bin/python ENOENT</code></p><p>解决：网上搜到的下载 python 2.7 是治标不治本，正确做法是升级 <code>electron-builder</code> 到 <code>23.0.2</code> 或更高版本，参考 <a href=https://github.com/electron-userland/electron-builder/issues/6726 target=_blank rel=\"external nofollow noopener noreferrer\">electron-builder#6726<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>参考链接</p><ul><li><a href=https://www.jianshu.com/p/2e6811ad9f68 target=_blank rel=\"external nofollow noopener noreferrer\">Electron-Mac 应用的签名步骤说明<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/electron-summary/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/electron-summary/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/electron-summary/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20electron+%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7celectron+%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/electron-summary/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/electron-summary/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/electron-summary/ data-title=\"Electron 踩坑总结\" data-hashtags=electron><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/electron-summary/ data-hashtag=electron><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/electron-summary/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/electron-summary/ data-title=\"Electron 踩坑总结\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/electron-summary/ data-title=\"Electron 踩坑总结\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/electron/ class=post-tag title=\"标签 - electron\">electron</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/encryption-fe/ class=post-nav-item rel=prev title=前端页面内容加密总结><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>前端页面内容加密总结</a><a href=/posts/commit-spec/ class=post-nav-item rel=next title=\"Commit Message Spec\">Commit Message Spec<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#简介>简介</a></li><li><a href=#知识点>知识点</a><ol><li><a href=#进程>进程</a></li><li><a href=#技术栈>技术栈</a></li><li><a href=#安装>安装</a></li><li><a href=#remote>remote</a></li></ol></li><li><a href=#问题点>问题点</a><ol><li><a href=#打开外部浏览器>打开外部浏览器</a></li><li><a href=#防抖与节流>防抖与节流</a></li><li><a href=#devtools>devTools</a></li><li><a href=#启动白屏>启动白屏</a><ol><li><a href=#启动前-loading>启动前 loading</a></li><li><a href=#启动后-loading>启动后 loading</a></li></ol></li><li><a href=#阻止窗口关闭>阻止窗口关闭</a></li><li><a href=#手动关闭窗口>手动关闭窗口</a></li><li><a href=#全局快捷键>全局快捷键</a></li><li><a href=#electron-builder>electron-builder</a><ol><li><a href=#windows-打包>windows 打包</a></li><li><a href=#macos-打包>macOS 打包</a></li></ol></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3c48228073c0f5dfd0edaf8297e1dba2.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3c48228073c0f5dfd0edaf8297e1dba2.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/electron-summary/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/electron-summary/index.md",
    "content": "# Electron 踩坑总结\n\n\n总结一下最近 electron 开发遇到的问题和一些重要知识点。\n\n<!--more-->\n\n## 简介\n\n如果你可以建一个网站，你就可以建一个桌面应用程序。 [Electron](https://www.electronjs.org/) 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的开源框架，它负责比较难搞的部分，你只需把精力放在你的应用的核心上即可。\n\n## 知识点\n\n### 进程\n\nelectron 由两种进程组成，包括`主进程`和 0 个或 n 个`渲染进程`。\n\n1. `主进程`：承担应用的生命周期（包括启动，退出，准备，正在切换到后台，正在切换到前台等，还负责与原生操作系统 API 通信）\n2. `渲染进程`：做 web 页面的 ui，渲染进程之间独立在各自的单线程，渲染进程之间相互隔离，不能直接访问操作系统，需要通信到主线程，在通过主线程操作访问操作形态，一个 BrowserWindow 实例即为一个渲染进程\n\n### 技术栈\n\nelectron 整合了 Node 和浏览器的所有能力，可以随意发挥这些技术栈的特点。由于固定浏览器内核，可以无需考虑兼容性地使用 html/js/css 新特性。\n\n### 安装\n\n安装 electron 时，可能因为网络问题导致下载失败，需要使用镜像仓库来下载。\n\n```bash\n# 设置 electron 镜像仓库\n# https://registry.npmmirror.com/-/binary/electron\n# 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v\nnpm config set electron_mirror=https://npmmirror.com/mirrors/electron/\n```\n\nM1 Mac 安装较低版本 electron 时可能会报错，`Failed to find Electron v xxx for darwin-arm64`，因为这些版本的 electron 不支持 darwin-arm64 架构。Apple 针对未适配的 X64 应用提供了 Rosetta2 转换器，安装 darwin-x64 版本的 electron 在 Intel 模式下运行即可，[参考](https://www.jianshu.com/p/b1b3577fd373)。\n\n### remote\n\n> 不要频繁使用 remote, 更多应该手动进行和主进程之间的通信。\n\n使用时需在窗口创建时设置 `webPreferences.enableRemoteModule` 为 `true`。\n\n旧版本的 `electron.remote` 已经弃用，应该使用依赖 `electron/remote` 代替。\n\n使用了旧版本的 remote 时会有控制台警告信息：\n\n```plain\n(electron) The remote module is deprecated. Use https://github.com/electron/remote instead.\n```\n\n- 获取当前窗口：`remote.getCurrentWindow()`\n\n## 问题点\n\n### 打开外部浏览器\n\nelectron 的 `shell` 模块，可以使用 `shell.openExternal(url)` 在默认浏览器打开链接。\n\n### 防抖与节流\n\n防抖：短期内大量触发事件时，只执行最后一次。\n\n```js\nfunction debounce(fn) {\n  let timer = null;\n  return function () {\n    clearTimeOut(timer);\n    timer = setTimeOut(() => {\n      fn.applay(this, arguments);\n    }, 300);\n  };\n}\n```\n\n节流：短期内大量触发事件时，只执行第一次。\n\n```js\nfunction throttle(fn) {\n  let timer = null;\n  return function () {\n    if (timer) return;\n    timer = setTimeOut(() => {\n      fn.applay(this, arguments);\n      timer = null;\n    }, 300);\n  };\n}\n```\n\n### devTools\n\n初始化窗口时设置 `webPreferences.devTools` 为 `true`，然后通过 `mainWindow.webContents.openDevTools()` 打开开发者工具。\n\n如果只在开发环境启用开发者工具，则需要设置 `webPreferences.devTools` 为 `process.env.NODE_ENV === 'development'`\n\n### 启动白屏\n\n在创建窗口时设置 `show: false`，在 `ready-to-show` 事件之后执行 `mainWindow.show()`，\n\n可见官方文档 [优雅地显示窗口](https://www.electronjs.org/zh/docs/latest/api/browser-window#优雅地显示窗口)。\n\n#### 启动前 loading\n\n额外创建一个 loading 窗口，该窗口可设置为透明只包含 loading 图标和文字，在 `mainWindow.show()` 后关闭。\n\n#### 启动后 loading\n\n如果使用了 Vue 框架，在 Vue 初始化之前窗口虽然出现了，但是内容时空白的，可以在 Vue 实例 #app 里写一个 loading, Vue 加载完后会覆盖掉。\n\n```html\n<div id=\"app\">\n  <!-- Display the loading icon and text until Vue initialization is complete -->\n  <style type=\"text/css\">\n    html,\n    body {\n      height: 100%;\n      margin: 0;\n    }\n    body {\n      display: flex;\n    }\n    #app {\n      margin: auto;\n      display: flex;\n      align-items: center;\n    }\n    @media (prefers-color-scheme: dark) {\n      body {\n        color: #fff;\n        background-color: #202124;\n      }\n    }\n  </style>\n  <svg\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"margin:auto;background:0 0\"\n    width=\"60\"\n    height=\"60\"\n    viewBox=\"0 0 100 100\"\n    preserveAspectRatio=\"xMidYMid\"\n    display=\"block\"\n  >\n    <circle\n      cx=\"50\"\n      cy=\"50\"\n      r=\"20\"\n      stroke-width=\"4\"\n      stroke=\"#a5a5a5\"\n      stroke-dasharray=\"31.416 31.416\"\n      fill=\"none\"\n      stroke-linecap=\"round\"\n      transform=\"rotate(67.21 50 50)\"\n    >\n      <animateTransform attributeName=\"transform\" type=\"rotate\" repeatCount=\"indefinite\" dur=\"1s\" keyTimes=\"0;1\" values=\"0 50 50;360 50 50\" />\n    </circle>\n  </svg>\n  <span>加载中 ...</span>\n</div>\n```\n\n### 阻止窗口关闭\n\n可以在关闭前一些事件里做拦截，比如：`onbeforeunload` 等，详见 [实例事件](https://www.electronjs.org/zh/docs/latest/api/browser-window#实例事件)。\n\n### 手动关闭窗口\n\n当自定义关闭时，使用 `mainWindow.destroy()` 来关闭窗口，因为使用 `mainWindow.close()` 时，windows 系统打开开发者工具时会出现无法关闭窗口的情况。\n\n### 全局快捷键\n\n当 electron 版本较低时，比如 `13.1.7`，会出现在 mac 系统上复制粘贴等常用快捷键失效的问题。可通过设置菜单并绑定快捷键的方式解决。\n\n```js\nconst main = [\n  {\n    label: '',\n    submenu: [\n      { label: '关于', role: 'about' },\n      { label: '关闭', role: 'close' },\n      { label: '退出', role: 'quit' }\n    ]\n  },\n  {\n    label: '编辑',\n    submenu: [\n      { label: '撤销', role: 'undo' },\n      { label: '恢复', role: 'redo' },\n      { type: 'separator' },\n      { label: '剪切', role: 'cut' },\n      { label: '复制', role: 'copy' },\n      { label: '粘贴', role: 'paste' },\n      { type: 'separator' },\n      { label: '全选', role: 'selectAll' }\n    ]\n  }\n];\nconst dev = [\n  {\n    label: '开发者',\n    submenu: [\n      { label: '刷新', role: 'reload' },\n      { label: '强制刷新', role: 'forcereload' },\n      { type: 'separator' },\n      { label: '开发者工具', role: 'toggledevtools' }\n    ]\n  }\n];\n\nif (process.env.NODE_ENV === 'development') {\n  main.push(...dev);\n}\n\nexport default main;\n```\n\n```js\nimport memuConfig from './menu';\nimport { Menu } from 'electron';\n\nif (process.platform === 'darwin') {\n  const menu = Menu.buildFromTemplate(memuConfig);\n  Menu.setApplicationMenu(menu);\n}\n```\n\n### electron-builder\n\n下载时，可能因为网络问题导致下载失败，可设置 GitHub 下载镜像。\n\n```bash\n# GitHub 仓库下载地址前缀镜像\nnpm config set disturl=https://registry.npmmirror.com/-/binary/\n```\n\n或者去 GitHub 手动下载，然后解压到缓存目录：\n\n- macOS: `~/Library/Caches/electron-builder/`\n- linux: `~/.cache/electron-builder/`\n- windows: `%LOCALAPPDATA%\\electron-builder\\cache\\`\n\nmac 上缓存目录如下，其他可 [参考](https://www.cnblogs.com/xueyoucd/p/8006610.html)\n\n```plain\n▸ nsis/\n  ▸ nsis-resources-3.4.1/\n  ▸ nsis-3.0.4.1/\n▸ winCodeSign/\n  ▸ winCodeSign-2.6.0/\n▸ wine/\n  ▸ wine-4.0.1-mac/\n```\n\n#### windows 打包\n\nwindows 系统打包配置，当没有配置签名时，`sign` 字段应删除或者配置为 `null`，否则可能导致打包时报错。\n\n```json\n{\n  \"win\": {\n    \"icon\": \"static/icons/icon.ico\",\n    \"verifyUpdateCodeSignature\": false,\n    \"target\": \"nsis\",\n    \"sign\": null\n  }\n}\n```\n\n注：win11 打包在 win10 上可能运行不了，最好使用 win10 打包或者 mac 打包指定系统和位数。\n\n#### macOS 打包\n\n问题：mac 升级之后 electron 打包报错 `Exit code: ENOENT. spawn /usr/bin/python ENOENT`\n\n解决：网上搜到的下载 python 2.7 是治标不治本，正确做法是升级 `electron-builder` 到 `23.0.2` 或更高版本，参考 [electron-builder#6726](https://github.com/electron-userland/electron-builder/issues/6726)\n\n参考链接\n\n- [Electron-Mac 应用的签名步骤说明](https://www.jianshu.com/p/2e6811ad9f68)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/electron-summary/  \n\n"
  },
  {
    "path": "posts/encryption-fe/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>前端页面内容加密总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"记录一下前端实现页面加密的思路。\n\"><meta name=keywords content='JavaScript,加密'><meta itemprop=name content=\"前端页面内容加密总结\"><meta itemprop=description content=\"记录一下前端实现页面加密的思路。\"><meta itemprop=datePublished content=\"2022-08-08T13:49:22+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"418\"><meta itemprop=image content=\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\"><meta itemprop=keywords content=\"javascript,加密\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/encryption-fe/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"前端页面内容加密总结\"><meta property=\"og:description\" content=\"记录一下前端实现页面加密的思路。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-08T13:49:22+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"加密\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\"><meta name=twitter:title content=\"前端页面内容加密总结\"><meta name=twitter:description content=\"记录一下前端实现页面加密的思路。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/encryption-fe/ title=\"前端页面内容加密总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/qcloudcdn/ title=\"Node.js + GitHub Actions 自动刷新 CDN\"><link rel=next type=text/html href=https://lruihao.cn/posts/electron-summary/ title=\"electron 踩坑总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/encryption-fe/index.md title=\"前端页面内容加密总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"前端页面内容加密总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/encryption-fe\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/encryption-fe\\/images\\/featured-image.png\",\"width\":714,\"height\":336}],\"genre\":\"posts\",\"keywords\":\"JavaScript, 加密\",\"wordcount\":418,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/encryption-fe\\/\",\"datePublished\":\"2022-08-08T13:49:22+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/encryption-fe/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>前端页面内容加密总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>前端页面内容加密总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-08 13:49:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-08>2022-08-08</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"418 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=前端页面内容加密总结><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/encryption-fe/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/encryption-fe/images/featured-image.png height=336 width=714></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#加密基础知识>加密基础知识</a><ol><li><a href=#双向加密>双向加密</a></li><li><a href=#单向加密>单向加密</a></li></ol></li><li><a href=#页面内容加密>页面内容加密</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>记录一下前端实现页面加密的思路。</p><h2 class=heading-element id=加密基础知识><span>1 加密基础知识</span>\n<a href=#%e5%8a%a0%e5%af%86%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=双向加密><span>1.1 双向加密</span>\n<a href=#%e5%8f%8c%e5%90%91%e5%8a%a0%e5%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>可还原的加密算法，可以逆向解密。</p><ol><li><p>对称加密（单密钥加密）</p><p>采用单钥密码系统的加密方法，同一个密钥同时用作信息的加密和解密。</p><p>密钥生成算法有 DES、3DES、AES。</p></li><li><p>非对称加密（公开密钥系统）</p><p>两个密钥：公开密钥（publickey）和私有密钥（privatekey）。</p><p>公钥/私钥加密/签名，用私钥/公钥解密/验证签名。</p><p>密钥生成算法有 RSA（公钥、私钥）、DSA（公钥、私钥、数字签名）。</p></li></ol><h3 class=heading-element id=单向加密><span>1.2 单向加密</span>\n<a href=#%e5%8d%95%e5%90%91%e5%8a%a0%e5%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>不可还原的加密算法（暴力撞库除外），常见的算法有：MD5、SHA1、SHA256、SHA512。</p><h2 class=heading-element id=页面内容加密><span>2 页面内容加密</span>\n<a href=#%e9%a1%b5%e9%9d%a2%e5%86%85%e5%ae%b9%e5%8a%a0%e5%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/encryption-fe/images/algorithm.jpg title=内容加密算法 data-thumbnail=/posts/encryption-fe/images/algorithm.jpg data-sub-html=\"<h2>内容加密算法</h2><p>内容加密算法</p>\"><img loading=lazy src=/posts/encryption-fe/images/algorithm.jpg alt=内容加密算法 height=768 width=1024></a><figcaption class=image-caption>内容加密算法</figcaption></figure></p><ol><li>通过比对密码和输入的 md5 值来判断密码是否输入正确</li><li>密码验证通过后，开始解密内容<ol><li>拿到正确的输入值的 sha256 值的部分内容</li><li>然后按照加密规则解秘内容</li></ol></li></ol><p>这里利用 <code>Set</code> 进行事件管理，简单模拟了 <code>addEventListener</code> 和 <code>removeEventListener</code> 的操作。并提供了两个事件：<code>decrypted</code> 和 <code>reset</code>，详见 <a href=https://github.com/hugo-fixit/FixIt/blob/master/assets/js/fixit-decryptor.js target=_blank rel=\"external nofollow noopener noreferrer\">fixit-decryptor.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/encryption-fe/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/encryption-fe/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/encryption-fe/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%89%8D%E7%AB%AF%E9%A1%B5%E9%9D%A2%E5%86%85%E5%AE%B9%E5%8A%A0%E5%AF%86%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%89%8D%E7%AB%AF%E9%A1%B5%E9%9D%A2%E5%86%85%E5%AE%B9%E5%8A%A0%E5%AF%86%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/encryption-fe/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/encryption-fe/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/encryption-fe/ data-title=前端页面内容加密总结 data-hashtags=JavaScript,加密><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/encryption-fe/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/encryption-fe/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/encryption-fe/ data-title=前端页面内容加密总结 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/encryption-fe/ data-title=前端页面内容加密总结><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/%E5%8A%A0%E5%AF%86/ class=post-tag title=\"标签 - 加密\">加密</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/qcloudcdn/ class=post-nav-item rel=prev title=\"Node.js + GitHub Actions 自动刷新 CDN\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Node.js + GitHub Actions 自动刷新 CDN</a><a href=/posts/electron-summary/ class=post-nav-item rel=next title=\"Electron 踩坑总结\">Electron 踩坑总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#加密基础知识>加密基础知识</a><ol><li><a href=#双向加密>双向加密</a></li><li><a href=#单向加密>单向加密</a></li></ol></li><li><a href=#页面内容加密>页面内容加密</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ed54a17dda6215c4ebd914aa00d070e4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ed54a17dda6215c4ebd914aa00d070e4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/encryption-fe/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/encryption-fe/index.md",
    "content": "# 前端页面内容加密总结\n\n\n记录一下前端实现页面加密的思路。\n\n<!--more-->\n\n## 加密基础知识\n\n### 双向加密\n\n可还原的加密算法，可以逆向解密。\n\n1. 对称加密（单密钥加密）\n\n   采用单钥密码系统的加密方法，同一个密钥同时用作信息的加密和解密。\n\n   密钥生成算法有 DES、3DES、AES。\n\n2. 非对称加密（公开密钥系统）\n\n   两个密钥：公开密钥（publickey）和私有密钥（privatekey）。\n\n   公钥/私钥加密/签名，用私钥/公钥解密/验证签名。\n\n   密钥生成算法有 RSA（公钥、私钥）、DSA（公钥、私钥、数字签名）。\n\n### 单向加密\n\n不可还原的加密算法（暴力撞库除外），常见的算法有：MD5、SHA1、SHA256、SHA512。\n\n## 页面内容加密\n\n![内容加密算法](images/algorithm.jpg '内容加密算法')\n\n1. 通过比对密码和输入的 md5 值来判断密码是否输入正确\n2. 密码验证通过后，开始解密内容\n   1. 拿到正确的输入值的 sha256 值的部分内容\n   2. 然后按照加密规则解秘内容\n\n这里利用 `Set` 进行事件管理，简单模拟了 `addEventListener` 和 `removeEventListener` 的操作。并提供了两个事件：`decrypted` 和 `reset`，详见 [fixit-decryptor.js](https://github.com/hugo-fixit/FixIt/blob/master/assets/js/fixit-decryptor.js)。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/encryption-fe/  \n\n"
  },
  {
    "path": "posts/euclid/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>The Equation-SGU106（扩展欧几里得） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\n\"><meta name=keywords content='数学,数论,ACM,欧几里得,他山之石,C++,C'><meta itemprop=name content=\"The equation-SGU106（扩展欧几里得）\"><meta itemprop=description content=\"1 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\"><meta itemprop=datePublished content=\"2018-08-10T10:32:39+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"2086\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数学,数论,acm,欧几里得,他山之石,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/euclid/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"The equation-SGU106（扩展欧几里得）\"><meta property=\"og:description\" content=\"1 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-10T10:32:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"数论\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"欧几里得\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"The equation-SGU106（扩展欧几里得）\"><meta name=twitter:description content=\"1 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/euclid/ title=\"The equation-SGU106（扩展欧几里得） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/lightoj1282/ title=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\"><link rel=next type=text/html href=https://lruihao.cn/posts/codeforces476b/ title=\"Dreamoon and WiFi（组合数学）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/euclid/index.md title=\"The equation-SGU106（扩展欧几里得） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"The equation-SGU106（扩展欧几里得）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/euclid\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数学, 数论, ACM, 欧几里得, 他山之石, C\\u002b\\u002b, C\",\"wordcount\":2086,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/euclid\\/\",\"datePublished\":\"2018-08-10T10:32:39+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/euclid/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>The Equation-SGU106（扩展欧几里得）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://www.cnblogs.com/Rinyo/archive/2012/11/25/2787419.html title=\"转载 -> https://www.cnblogs.com/Rinyo/archive/2012/11/25/2787419.html\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>The Equation-SGU106（扩展欧几里得）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-10 10:32:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-10>2018-08-10</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"2086 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"The Equation-SGU106（扩展欧几里得）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题意>题意</a></li><li><a href=#分析>分析</a><ol><li><a href=#欧几里得>欧几里得</a></li><li><a href=#扩展欧几里得>扩展欧几里得</a></li><li><a href=#关于求解二元一次不定方程-axbyc>关于求解二元一次不定方程 ax+by=c</a></li></ol></li><li><a href=#具体实现>具体实现</a><ol><li><a href=#先处理一下无解的情况>先处理一下无解的情况</a></li><li><a href=#处理完了一些繁琐的细节后下面是具体的求解过程>处理完了一些繁琐的细节后，下面是具体的求解过程</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题意><span>1 题意</span>\n<a href=#%e9%a2%98%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。</p><h2 class=heading-element id=分析><span>2 分析</span>\n<a href=#%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于解二元一次不定方程，容易想到利用扩展欧几里得求出一组可行解后找到通解，下面来介绍一下欧几里得以及扩展欧几里得。</p><h3 class=heading-element id=欧几里得><span>2.1 欧几里得</span>\n<a href=#%e6%ac%a7%e5%87%a0%e9%87%8c%e5%be%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>又名辗转相除法，是用来计算两个数的最大公约数，其中就是利用 gcd(a,b)=gcd(b,a mod b) 来求解。下证 gcd(a,b)=gcd(b,a mod b) 的正确性：</p><p>设 a,b 的一个公约数为 d</p><p>设 a mod b=r，则 a=kb+r(k 为整数），r=a-kb</p><p>因为 d|a,d|b</p><p>所以 d|a-kb, 即 d|r，而 r=a mod b</p><p>所以 d 为 b,a mod b 的公约数</p><p>又因为 d 也为 a,b 的公约数，所以（a,b) 和 (b,a mod b) 的公约数一样，所以最大公约数必然一样，得证。</p><p>代码描述：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=nf>gcd</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=k>return</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=nf>gcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span><span class=o>%</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=扩展欧几里得><span>2.2 扩展欧几里得</span>\n<a href=#%e6%89%a9%e5%b1%95%e6%ac%a7%e5%87%a0%e9%87%8c%e5%be%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>顾名思义，为上述欧几里得算法的扩展。欧几里得是用来求 a,b 的最大公约数，那么扩展欧几里得不仅能求出 a,b 的最大公约数，还能求出满足 ax+by=gcd(a,b) 的一组可行解。<br>求解过程中，扩展欧几里得比欧几里得多了一个赋值过程，具体证明如下：</p><p>设 ax1+by1=gcd(a,b),bx2+(a mod b)y2=gcd(b,a mod b)</p><p>因为由欧几里得算法可知，gcd(a,b)=gcd(b,a mod b)</p><p>所以 ax1+by1=bx2+(a mod b)y2</p><p>因为<code>a mod b=a-(a div b)*b（div 为整除</code></p><p>所以有<code>ax1+by1=bx2+(a-(a div b)*b)y2</code></p><p>将右边移项，展开得：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>ax1+by1=ay2+bx2-(a div b)*b*y2\n</span></span><span class=line><span class=cl>       =ay2+b[x2-(a div b)]y2</span></span></code></pre></td></tr></table></div></div></div><p>所以可得：\n<code>x1=y2</code>\n<code>y1=x2-(a div b)*y2</code></p><p>将得到的的 x1,y1 递归操作求解 x2,y2，如此循环往复，将会像欧几里得一样得到 b=0 的情况，此时递归结束，返回 x=1,y=0，回溯得解。</p><p>代码描述：</p><p>此函数返回的是 a,b 的最大公约数，同时也求解出满足 ax+by=gcd(a,b) 的一组可行的 (x,y)</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=nf>exgcd</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>,</span><span class=kt>int</span> <span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=o>&amp;</span><span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=p>{</span><span class=n>x</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>y</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=k>return</span> <span class=n>a</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>t</span><span class=o>=</span><span class=nf>exgcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span><span class=o>%</span><span class=n>b</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x0</span><span class=o>=</span><span class=n>x</span><span class=p>,</span><span class=n>y0</span><span class=o>=</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span><span class=o>=</span><span class=n>y0</span><span class=p>;</span><span class=n>y</span><span class=o>=</span><span class=n>x0</span><span class=o>-</span><span class=p>(</span><span class=n>a</span><span class=o>/</span><span class=n>b</span><span class=p>)</span><span class=o>*</span><span class=n>y0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=关于求解二元一次不定方程-axbyc><span>2.3 关于求解二元一次不定方程 ax+by=c</span>\n<a href=#%e5%85%b3%e4%ba%8e%e6%b1%82%e8%a7%a3%e4%ba%8c%e5%85%83%e4%b8%80%e6%ac%a1%e4%b8%8d%e5%ae%9a%e6%96%b9%e7%a8%8b-axbyc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先，如果 c 不是 gcd(a,b) 的倍数，方程显然无解。</p><p>扩展欧几里得求解的是 ax+by=gcd(a,b)=1 的可行解，但是题目中并没有说 c 与 a,b 互质之类的条件，所以需要在开始时两边同时除以 gcd(a,b)。</p><p>设 d=gcd(a,b)</p><p>设 a&rsquo;=a/d,b&rsquo;=b/d,c&rsquo;=c/d,</p><p>则下面需要求解 a&rsquo;x+b&rsquo;y=c&rsquo;的整数解，而 gcd(a&rsquo;,b&rsquo;)=1，</p><p>则我们只需求 a&rsquo;x+b&rsquo;y=1 的可行解</p><p>直接使用扩展欧几里得，得到 (x&rsquo;,y&rsquo;), 则最终解为<code>x'*c',y'*c'</code>设为 (x0,y0)。</p><p>现在得到了一组可行解，但是如何得到通解呢？</p><p>将 (x0,y0) 代入 ax+by=c，则有</p><p><code>a*(x0)+b*(y0)=c</code></p><p>通过拆添项，可有：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>a*(x0+1*b)+b*(y0-1*a)=c\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>a*(x0+2*b)+b*(y0-2*a)=c\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>a*(x0+3*b)+b*(y0-3*a)=c\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>……</span></span></code></pre></td></tr></table></div></div></div><p><code>a*(x0+k*b)+b*(y0-k*a)=c (k∈Z)</code></p><p>至此，我们得到了通解的方程</p><p><code>x=x0+k*b</code>\n<code>y=y0-k*a (k∈Z)</code></p><p>这样，所有满足 ax+by=c 的可行解都可求出。</p><h2 class=heading-element id=具体实现><span>3 具体实现</span>\n<a href=#%e5%85%b7%e4%bd%93%e5%ae%9e%e7%8e%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>有了主体算法，下面要谈到具体实现了。</p><h3 class=heading-element id=先处理一下无解的情况><span>3.1 先处理一下无解的情况</span>\n<a href=#%e5%85%88%e5%a4%84%e7%90%86%e4%b8%80%e4%b8%8b%e6%97%a0%e8%a7%a3%e7%9a%84%e6%83%85%e5%86%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>当 a=0 并且 b=0，而 c≠0 时，显然无解；<br>当 a=0,b=0，而 c=0 时，[x1,x2],[y1,y2] 都为可行解，根据乘法原理，可行解的个数为<code>(x2-x1+1)*(y2-y1+1)</code>;</p></li><li><p>当 a=0 b≠0 时：<br>此时即为求解 by=c，则 y=c/b，<br>如果 c/b 不是整数或 c/b 不在 [y1,y2] 的范围内，无解<br>否则 [x1,x2] 内全部整数都为可行解。</p></li><li><p>当 b=0,a≠0 时，同上。</p></li><li><p>若 c 不是 gcd(a,b) 的个数，方程显然无解。</p></li></ol><h3 class=heading-element id=处理完了一些繁琐的细节后下面是具体的求解过程><span>3.2 处理完了一些繁琐的细节后，下面是具体的求解过程</span>\n<a href=#%e5%a4%84%e7%90%86%e5%ae%8c%e4%ba%86%e4%b8%80%e4%ba%9b%e7%b9%81%e7%90%90%e7%9a%84%e7%bb%86%e8%8a%82%e5%90%8e%e4%b8%8b%e9%9d%a2%e6%98%af%e5%85%b7%e4%bd%93%e7%9a%84%e6%b1%82%e8%a7%a3%e8%bf%87%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>扩展欧几里得求解的是 ax+by=c，而本题是 ax+by+c=0，需将 c 移项。</p></li><li><p>对于本道题，首先要注意的是，对于负数的模运算在此算法中无法得到正确解，所以要处理一下 a,b,c 的正负情况。\n如果 a 为负数，只需将 a 取相反数后，再处理一下 x∈[x1,x2] 的范围。当 a 取了相反数，相当于把 x 也取反，则需要把 x 的范围由 [x1,x2] 转变成 [-x2,-x1], 类似于把数轴反了过来。b 同理。</p></li><li><p>利用扩展欧几里得解二元一次不定方程，得到一组可行解 (x0,y0)。</p></li><li><p>因为题目中对 x,y 有条件约束，而有 x=x0+kb,y=y0-kb，我们可以求出满足 x∈[x1,x2],y∈[y1,y2] 的 k 的取值范围，\n即为求解 x1&lt;=x0+kb&lt;=x2,y1&lt;=y0-kb&lt;=y2 的整数 k 的个数\n但是在求解这两个一次函数的过程中，会有除不尽的现象，该如何取整呢？</p></li></ol><p>举个例子</p><p>当出现 2.5&lt;=k&lt;=5.5 时，我们需要的可行的 k 为 3,4,5，所以需要将 2.5 向上取整得到 3，5.5 向下取整得到 5，即为 3&lt;=k&lt;=5；</p><p>当出现 -5.5&lt;=&lt;=-2.5 时，我们需要的可行的 k 为 -5,-4,-3, 所以需要将 -5.5 向上取整得到 -5,-2.5 向下取整得到 -3，即为 -5&lt;=k&lt;=-3；</p><p>正负数的情况都已经考虑完全了，可以得到取整的结论：上界下取整，下界上取整。</p><p>最后，将得到的两个范围取交集，得到 [l,r]，则最终答案为 r-l+1。</p><p>这样，本题就可以完美解决了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=c1>// BY Rinyo\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cmath&gt;\n</span></span></span><span class=line><span class=cl><span class=kt>long</span> <span class=kt>long</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>,</span><span class=n>x1</span><span class=p>,</span><span class=n>x2</span><span class=p>,</span><span class=n>yy1</span><span class=p>,</span><span class=n>y2</span><span class=p>,</span><span class=n>x0</span><span class=p>,</span><span class=n>yy0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>inline</span> <span class=kt>long</span> <span class=kt>long</span> <span class=nf>cmin</span><span class=p>(</span><span class=k>const</span> <span class=kt>long</span> <span class=kt>long</span> <span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=k>const</span> <span class=kt>long</span> <span class=kt>long</span> <span class=o>&amp;</span><span class=n>y</span><span class=p>)</span> <span class=p>{</span><span class=k>return</span> <span class=n>x</span><span class=o>&lt;</span><span class=n>y</span><span class=o>?</span><span class=nl>x</span><span class=p>:</span><span class=n>y</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl><span class=kr>inline</span> <span class=kt>long</span> <span class=kt>long</span> <span class=nf>cmax</span><span class=p>(</span><span class=k>const</span> <span class=kt>long</span> <span class=kt>long</span> <span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=k>const</span> <span class=kt>long</span> <span class=kt>long</span> <span class=o>&amp;</span><span class=n>y</span><span class=p>)</span> <span class=p>{</span><span class=k>return</span> <span class=n>x</span><span class=o>&gt;</span><span class=n>y</span><span class=o>?</span><span class=nl>x</span><span class=p>:</span><span class=n>y</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>long</span> <span class=kt>long</span> <span class=nf>gcd</span><span class=p>(</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>a</span><span class=p>,</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=k>return</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>gcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span> <span class=o>%</span> <span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>exgcd</span><span class=p>(</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>a</span><span class=p>,</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span><span class=n>x0</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>yy0</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=k>return</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>    <span class=n>exgcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span><span class=o>%</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>t</span><span class=o>=</span><span class=n>x0</span><span class=p>;</span><span class=n>x0</span><span class=o>=</span><span class=n>yy0</span><span class=p>;</span><span class=n>yy0</span><span class=o>=</span><span class=n>t</span><span class=o>-</span><span class=n>a</span><span class=o>/</span><span class=n>b</span><span class=o>*</span><span class=n>yy0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%I64d%I64d%I64d%I64d%I64d%I64d%I64d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>c</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x1</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x2</span><span class=p>,</span><span class=o>&amp;</span><span class=n>yy1</span><span class=p>,</span><span class=o>&amp;</span><span class=n>y2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>c</span><span class=o>=-</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span> <span class=p>{</span><span class=n>a</span><span class=o>=-</span><span class=n>a</span><span class=p>;</span><span class=n>b</span><span class=o>=-</span><span class=n>b</span><span class=p>;</span><span class=n>c</span><span class=o>=-</span><span class=n>c</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>a</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span> <span class=p>{</span><span class=n>a</span><span class=o>=-</span><span class=n>a</span><span class=p>;</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>t</span><span class=o>=</span><span class=n>x1</span><span class=p>;</span><span class=n>x1</span><span class=o>=-</span><span class=n>x2</span><span class=p>;</span><span class=n>x2</span><span class=o>=-</span><span class=n>t</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span> <span class=p>{</span><span class=n>b</span><span class=o>=-</span><span class=n>b</span><span class=p>;</span><span class=kt>long</span> <span class=kt>long</span> <span class=n>t</span><span class=o>=</span><span class=n>yy1</span><span class=p>;</span><span class=n>yy1</span><span class=o>=-</span><span class=n>y2</span><span class=p>;</span><span class=n>y2</span><span class=o>=-</span><span class=n>t</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>a</span><span class=o>==</span><span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%I64d&#34;</span><span class=p>,(</span><span class=n>x2</span><span class=o>-</span><span class=n>x1</span><span class=o>+</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=p>(</span><span class=n>y2</span><span class=o>-</span><span class=n>yy1</span><span class=o>+</span><span class=mi>1</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;0&#34;</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=n>a</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>c</span> <span class=o>%</span><span class=n>b</span> <span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>/</span><span class=n>b</span><span class=o>&lt;=</span><span class=n>y2</span> <span class=o>&amp;&amp;</span> <span class=n>c</span><span class=o>/</span><span class=n>b</span><span class=o>&gt;=</span><span class=n>yy1</span><span class=p>)</span> <span class=p>{</span><span class=n>printf</span><span class=p>(</span><span class=s>&#34;%I64d&#34;</span><span class=p>,</span><span class=n>x2</span><span class=o>-</span><span class=n>x1</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;0&#34;</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>%</span><span class=n>a</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>/</span><span class=n>a</span><span class=o>&lt;=</span><span class=n>x2</span> <span class=o>&amp;&amp;</span> <span class=n>c</span><span class=o>/</span><span class=n>a</span><span class=o>&gt;=</span><span class=n>x1</span><span class=p>)</span> <span class=p>{</span><span class=n>printf</span><span class=p>(</span><span class=s>&#34;%I64d&#34;</span><span class=p>,</span><span class=n>y2</span><span class=o>-</span><span class=n>yy1</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;0&#34;</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>d</span><span class=o>=</span><span class=n>gcd</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>c</span><span class=o>%</span><span class=n>d</span><span class=o>!=</span><span class=mi>0</span><span class=p>){</span><span class=n>printf</span><span class=p>(</span><span class=s>&#34;0&#34;</span><span class=p>);</span><span class=k>return</span> <span class=mi>0</span><span class=p>;}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=o>=</span><span class=n>a</span><span class=o>/</span><span class=n>d</span><span class=p>;</span><span class=n>b</span><span class=o>=</span><span class=n>b</span><span class=o>/</span><span class=n>d</span><span class=p>;</span><span class=n>c</span><span class=o>=</span><span class=n>c</span><span class=o>/</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>exgcd</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>x0</span><span class=o>=</span><span class=n>x0</span><span class=o>*</span><span class=n>c</span><span class=p>;</span><span class=n>yy0</span><span class=o>=</span><span class=n>yy0</span><span class=o>*</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>double</span> <span class=n>tx2</span><span class=o>=</span><span class=n>x2</span><span class=p>,</span><span class=n>tx1</span><span class=o>=</span><span class=n>x1</span><span class=p>,</span><span class=n>tx0</span><span class=o>=</span><span class=n>x0</span><span class=p>,</span><span class=n>ta</span><span class=o>=</span><span class=n>a</span><span class=p>,</span><span class=n>tb</span><span class=o>=</span><span class=n>b</span><span class=p>,</span><span class=n>tc</span><span class=o>=</span><span class=n>c</span><span class=p>,</span><span class=n>ty1</span><span class=o>=</span><span class=n>yy1</span><span class=p>,</span><span class=n>ty2</span><span class=o>=</span><span class=n>y2</span><span class=p>,</span><span class=n>ty0</span><span class=o>=</span><span class=n>yy0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>down1</span><span class=o>=</span><span class=n>floor</span><span class=p>(((</span><span class=n>tx2</span><span class=o>-</span><span class=n>tx0</span><span class=p>)</span><span class=o>/</span><span class=n>tb</span><span class=p>)),</span><span class=n>down2</span><span class=o>=</span><span class=n>floor</span><span class=p>(((</span><span class=n>ty0</span><span class=o>-</span><span class=n>ty1</span><span class=p>)</span><span class=o>/</span><span class=n>ta</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>r</span><span class=o>=</span><span class=n>cmin</span><span class=p>(</span><span class=n>down1</span><span class=p>,</span><span class=n>down2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>up1</span><span class=o>=</span><span class=n>ceil</span><span class=p>(((</span><span class=n>tx1</span><span class=o>-</span><span class=n>tx0</span><span class=p>)</span><span class=o>/</span><span class=n>tb</span><span class=p>)),</span><span class=n>up2</span><span class=o>=</span><span class=n>ceil</span><span class=p>(((</span><span class=n>ty0</span><span class=o>-</span><span class=n>ty2</span><span class=p>)</span><span class=o>/</span><span class=n>ta</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>l</span><span class=o>=</span><span class=n>cmax</span><span class=p>(</span><span class=n>up1</span><span class=p>,</span><span class=n>up2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>r</span><span class=o>&lt;</span><span class=n>l</span><span class=p>)</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;0&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%I64d&#34;</span><span class=p>,</span><span class=n>r</span><span class=o>-</span><span class=n>l</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>扩展欧几里得模板</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;iostream&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>exgcd</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>,</span><span class=kt>int</span> <span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=o>&amp;</span><span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>     <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>y</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>gcd</span><span class=o>=</span><span class=nf>exgcd</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>a</span><span class=o>%</span><span class=n>b</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x2</span><span class=o>=</span><span class=n>x</span><span class=p>,</span><span class=n>y2</span><span class=o>=</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span><span class=o>=</span><span class=n>y2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>y</span><span class=o>=</span><span class=n>x2</span><span class=o>-</span><span class=p>(</span><span class=n>a</span><span class=o>/</span><span class=n>b</span><span class=p>)</span><span class=o>*</span><span class=n>y2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>gcd</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;请输入 a 和 b:&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;a 和 b 的最大公约数：&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=nf>exgcd</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>)</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;ax+by=gcd(a,b) 的一组解是：&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>x</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=o>&lt;&lt;</span><span class=n>y</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/euclid/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/euclid.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/euclid.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20The+equation-SGU106%EF%BC%88%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cThe+equation-SGU106%EF%BC%88%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/euclid/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/euclid.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/euclid/ data-title=\"The Equation-SGU106（扩展欧几里得）\" data-hashtags=数学,数论,ACM,欧几里得,他山之石,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/euclid/ data-hashtag=数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/euclid/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/euclid/ data-title=\"The Equation-SGU106（扩展欧几里得）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/euclid/ data-title=\"The Equation-SGU106（扩展欧几里得）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag title=\"标签 - 数论\">数论</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ class=post-tag title=\"标签 - 欧几里得\">欧几里得</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/lightoj1282/ class=post-nav-item rel=prev title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a><a href=/posts/codeforces476b/ class=post-nav-item rel=next title=\"Dreamoon and WiFi（组合数学）\">Dreamoon and WiFi（组合数学）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题意>题意</a></li><li><a href=#分析>分析</a><ol><li><a href=#欧几里得>欧几里得</a></li><li><a href=#扩展欧几里得>扩展欧几里得</a></li><li><a href=#关于求解二元一次不定方程-axbyc>关于求解二元一次不定方程 ax+by=c</a></li></ol></li><li><a href=#具体实现>具体实现</a><ol><li><a href=#先处理一下无解的情况>先处理一下无解的情况</a></li><li><a href=#处理完了一些繁琐的细节后下面是具体的求解过程>处理完了一些繁琐的细节后，下面是具体的求解过程</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f841fe31d977148c591ab6b18c0edb8f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f841fe31d977148c591ab6b18c0edb8f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/euclid/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/euclid/index.md",
    "content": "# The Equation-SGU106（扩展欧几里得）\n\n\n## 题意\n\n给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\n\n## 分析\n\n对于解二元一次不定方程，容易想到利用扩展欧几里得求出一组可行解后找到通解，下面来介绍一下欧几里得以及扩展欧几里得。\n\n### 欧几里得\n\n又名辗转相除法，是用来计算两个数的最大公约数，其中就是利用 gcd(a,b)=gcd(b,a mod b) 来求解。下证 gcd(a,b)=gcd(b,a mod b) 的正确性：\n\n设 a,b 的一个公约数为 d\n\n设 a mod b=r，则 a=kb+r(k 为整数），r=a-kb\n\n因为 d|a,d|b\n\n所以 d|a-kb, 即 d|r，而 r=a mod b\n\n所以 d 为 b,a mod b 的公约数\n\n又因为 d 也为 a,b 的公约数，所以（a,b) 和 (b,a mod b) 的公约数一样，所以最大公约数必然一样，得证。\n\n代码描述：\n\n```c\nint gcd(int a,int b)\n{\n    if (b==0) return a;\n    return gcd(b,a%b);\n}\n```\n\n### 扩展欧几里得\n\n顾名思义，为上述欧几里得算法的扩展。欧几里得是用来求 a,b 的最大公约数，那么扩展欧几里得不仅能求出 a,b 的最大公约数，还能求出满足 ax+by=gcd(a,b) 的一组可行解。  \n求解过程中，扩展欧几里得比欧几里得多了一个赋值过程，具体证明如下：\n\n设 ax1+by1=gcd(a,b),bx2+(a mod b)y2=gcd(b,a mod b)\n\n因为由欧几里得算法可知，gcd(a,b)=gcd(b,a mod b)\n\n所以 ax1+by1=bx2+(a mod b)y2\n\n因为`a mod b=a-(a div b)*b（div 为整除`\n\n所以有`ax1+by1=bx2+(a-(a div b)*b)y2`\n\n将右边移项，展开得：\n\n```plain\nax1+by1=ay2+bx2-(a div b)*b*y2\n       =ay2+b[x2-(a div b)]y2\n```\n\n所以可得：\n`x1=y2`\n`y1=x2-(a div b)*y2`\n\n将得到的的 x1,y1 递归操作求解 x2,y2，如此循环往复，将会像欧几里得一样得到 b=0 的情况，此时递归结束，返回 x=1,y=0，回溯得解。\n\n代码描述：\n\n此函数返回的是 a,b 的最大公约数，同时也求解出满足 ax+by=gcd(a,b) 的一组可行的 (x,y)\n\n```c\nint exgcd(int a,int b,int &x,int &y)\n{\n    if (b==0) {x=1;y=0;return a;}\n    int t=exgcd(b,a%b,x,y);\n    int x0=x,y0=y;\n    x=y0;y=x0-(a/b)*y0;\n    return t;\n}\n```\n\n### 关于求解二元一次不定方程 ax+by=c\n\n首先，如果 c 不是 gcd(a,b) 的倍数，方程显然无解。\n\n扩展欧几里得求解的是 ax+by=gcd(a,b)=1 的可行解，但是题目中并没有说 c 与 a,b 互质之类的条件，所以需要在开始时两边同时除以 gcd(a,b)。\n\n设 d=gcd(a,b)\n\n设 a'=a/d,b'=b/d,c'=c/d,\n\n则下面需要求解 a'x+b'y=c'的整数解，而 gcd(a',b')=1，\n\n则我们只需求 a'x+b'y=1 的可行解\n\n直接使用扩展欧几里得，得到 (x',y'), 则最终解为`x'*c',y'*c'`设为 (x0,y0)。\n\n现在得到了一组可行解，但是如何得到通解呢？\n\n将 (x0,y0) 代入 ax+by=c，则有\n\n`a*(x0)+b*(y0)=c`\n\n通过拆添项，可有：\n\n```plain\na*(x0+1*b)+b*(y0-1*a)=c\n\na*(x0+2*b)+b*(y0-2*a)=c\n\na*(x0+3*b)+b*(y0-3*a)=c\n\n……\n```\n\n`a*(x0+k*b)+b*(y0-k*a)=c (k∈Z)`\n\n至此，我们得到了通解的方程\n\n`x=x0+k*b`\n`y=y0-k*a (k∈Z)`\n\n这样，所有满足 ax+by=c 的可行解都可求出。\n\n## 具体实现\n\n有了主体算法，下面要谈到具体实现了。\n\n### 先处理一下无解的情况\n\n1. 当 a=0 并且 b=0，而 c≠0 时，显然无解；  \n   当 a=0,b=0，而 c=0 时，[x1,x2],[y1,y2] 都为可行解，根据乘法原理，可行解的个数为`(x2-x1+1)*(y2-y1+1)`;\n\n2. 当 a=0 b≠0 时：  \n   此时即为求解 by=c，则 y=c/b，  \n   如果 c/b 不是整数或 c/b 不在 [y1,y2] 的范围内，无解  \n   否则 [x1,x2] 内全部整数都为可行解。\n3. 当 b=0,a≠0 时，同上。\n\n4. 若 c 不是 gcd(a,b) 的个数，方程显然无解。\n\n### 处理完了一些繁琐的细节后，下面是具体的求解过程\n\n1. 扩展欧几里得求解的是 ax+by=c，而本题是 ax+by+c=0，需将 c 移项。\n\n2. 对于本道题，首先要注意的是，对于负数的模运算在此算法中无法得到正确解，所以要处理一下 a,b,c 的正负情况。\n   如果 a 为负数，只需将 a 取相反数后，再处理一下 x∈[x1,x2] 的范围。当 a 取了相反数，相当于把 x 也取反，则需要把 x 的范围由 [x1,x2] 转变成 [-x2,-x1], 类似于把数轴反了过来。b 同理。\n\n3. 利用扩展欧几里得解二元一次不定方程，得到一组可行解 (x0,y0)。\n\n4. 因为题目中对 x,y 有条件约束，而有 x=x0+kb,y=y0-kb，我们可以求出满足 x∈[x1,x2],y∈[y1,y2] 的 k 的取值范围，\n   即为求解 x1<=x0+kb<=x2,y1<=y0-kb<=y2 的整数 k 的个数\n   但是在求解这两个一次函数的过程中，会有除不尽的现象，该如何取整呢？\n\n举个例子\n\n当出现 2.5<=k<=5.5 时，我们需要的可行的 k 为 3,4,5，所以需要将 2.5 向上取整得到 3，5.5 向下取整得到 5，即为 3<=k<=5；\n\n当出现 -5.5<=<=-2.5 时，我们需要的可行的 k 为 -5,-4,-3, 所以需要将 -5.5 向上取整得到 -5,-2.5 向下取整得到 -3，即为 -5<=k<=-3；\n\n正负数的情况都已经考虑完全了，可以得到取整的结论：上界下取整，下界上取整。\n\n最后，将得到的两个范围取交集，得到 [l,r]，则最终答案为 r-l+1。\n\n这样，本题就可以完美解决了。\n\n```cpp\n// BY Rinyo\n\n#include<cstdio>\n#include<cmath>\nlong long a,b,c,x1,x2,yy1,y2,x0,yy0;\ninline long long cmin(const long long &x,const long long &y) {return x<y?x:y;}\ninline long long cmax(const long long &x,const long long &y) {return x>y?x:y;}\n\nlong long gcd(long long a,long long b)\n{\n    if (b==0) return a;\n    return gcd(b,a % b);\n}\nvoid exgcd(long long a,long long b)\n{\n    if (b==0){x0=1;yy0=0;return;}\n    exgcd(b,a%b);\n    long long t=x0;x0=yy0;yy0=t-a/b*yy0;\n    return;\n}\n\nint main()\n{\n    scanf(\"%I64d%I64d%I64d%I64d%I64d%I64d%I64d\",&a,&b,&c,&x1,&x2,&yy1,&y2);\n    c=-c;\n    if (c<0) {a=-a;b=-b;c=-c;}\n    if (a<0) {a=-a;long long t=x1;x1=-x2;x2=-t;}\n    if (b<0) {b=-b;long long t=yy1;yy1=-y2;y2=-t;}\n    if (a==0 && b==0)\n    {\n        if (c==0)\n        {\n            printf(\"%I64d\",(x2-x1+1)*(y2-yy1+1));\n            return 0;\n        }\n        printf(\"0\");return 0;\n    }\n    else if (a==0)\n    {\n        if (c %b ==0)\n            if (c/b<=y2 && c/b>=yy1) {printf(\"%I64d\",x2-x1+1);return 0;}\n        printf(\"0\");return 0;\n    }\n    else if (b==0)\n    {\n        if (c%a==0)\n            if (c/a<=x2 && c/a>=x1) {printf(\"%I64d\",y2-yy1+1);return 0;}\n        printf(\"0\");return 0;\n    }\n\n    long long d=gcd(a,b);\n    if (c%d!=0){printf(\"0\");return 0;}\n\n    a=a/d;b=b/d;c=c/d;\n    exgcd(a,b);\n    x0=x0*c;yy0=yy0*c;\n\n    double tx2=x2,tx1=x1,tx0=x0,ta=a,tb=b,tc=c,ty1=yy1,ty2=y2,ty0=yy0;\n    long long down1=floor(((tx2-tx0)/tb)),down2=floor(((ty0-ty1)/ta));\n    long long r=cmin(down1,down2);\n    long long up1=ceil(((tx1-tx0)/tb)),up2=ceil(((ty0-ty2)/ta));\n    long long l=cmax(up1,up2);\n    if (r<l) printf(\"0\");\n    else printf(\"%I64d\",r-l+1);\n    return 0;\n\n}\n```\n\n扩展欧几里得模板\n\n```c\n#include<iostream>\nusing namespace std;\n\nint exgcd(int a,int b,int &x,int &y)\n{\n     if(b==0)\n    {\n        x=1;\n        y=0;\n        return a;\n    }\n    int gcd=exgcd(b,a%b,x,y);\n    int x2=x,y2=y;\n    x=y2;\n    y=x2-(a/b)*y2;\n    return gcd;\n}\n\nint main()\n{\nint x,y,a,b;\ncout<<\"请输入 a 和 b:\"<<endl;\ncin>>a>>b;\ncout<<\"a 和 b 的最大公约数：\"<<endl;\ncout<<exgcd(a,b,x,y)<<endl;\ncout<<\"ax+by=gcd(a,b) 的一组解是：\"<<endl;\ncout<<x<<\" \"<<y<<endl;\nreturn 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/euclid/  \n> 转载 URL: https://www.cnblogs.com/Rinyo/archive/2012/11/25/2787419.html\n"
  },
  {
    "path": "posts/euler/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>欧拉函数 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\n2 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 3 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \"><meta name=keywords content='数学,数论,euler,C'><meta itemprop=name content=\"欧拉函数\"><meta itemprop=description content=\"1 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\n2 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 3 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a\"><meta itemprop=datePublished content=\"2018-08-08T17:10:07+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"1257\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数学,数论,euler,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/euler/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"欧拉函数\"><meta property=\"og:description\" content=\"1 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\n2 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 3 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-08T17:10:07+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"数论\"><meta property=\"article:tag\" content=\"euler\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"欧拉函数\"><meta name=twitter:description content=\"1 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\n2 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 3 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/euler/ title=\"欧拉函数 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj1797/ title=\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\"><link rel=next type=text/html href=https://lruihao.cn/posts/cfcontest1017/ title=\"Codeforces Round 502(Div.1 + Div.2)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/euler/index.md title=\"欧拉函数 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"欧拉函数\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/euler\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数学, 数论, euler, C\",\"wordcount\":1257,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/euler\\/\",\"datePublished\":\"2018-08-08T17:10:07+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/euler/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>欧拉函数</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>欧拉函数</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-08 17:10:07\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-08>2018-08-08</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1257 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=欧拉函数><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#欧拉函数是求小于-x-并且和-x><strong><em>欧拉函数是求小于 x 并且和 x互质 的数的个数</em></strong></a></li><li><a href=#定理>定理</a></li><li><a href=#特殊性质>特殊性质</a></li><li><a href=#模板>模板</a></li><li><a href=#例题>例题</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=欧拉函数是求小于-x-并且和-x><span>1 <strong><em>欧拉函数是求小于 x 并且和 x<a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=_blank rel=\"external nofollow noopener noreferrer\">互质<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的数的个数</em></strong></span>\n<a href=#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)<br><strong>其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数</strong><br>φ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2<em>2</em>3】</p><h2 class=heading-element id=定理><span>2 定理</span>\n<a href=#%e5%ae%9a%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>若 n 是素数 p 的 k 次幂，φ(n)=p<sup>k-p</sup>(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 <a class=lightgallery target=_blank href=/images/remote/5b6ab31239225_7187742310856122931.jpg title=IMG_20180808_170807.jpg data-thumbnail=/images/remote/5b6ab31239225_7187742310856122931.jpg data-sub-html=\"<h2>IMG_20180808_170807.jpg</h2>\"><img loading=lazy src=/images/remote/5b6ab31239225_7187742310856122931.jpg alt=IMG_20180808_170807.jpg height=1797 width=4160></a></li><li>欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)</li></ol><h2 class=heading-element id=特殊性质><span>3 特殊性质</span>\n<a href=#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>当 n 为奇数时，φ(2n)=φ(n)</li><li>p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值</li><li>若 a 为素数，b mod a=0,<code>φ(a*b)=φ(b)*a</code></li></ol><h2 class=heading-element id=模板><span>4 模板</span>\n<a href=#%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>//直接法</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kt>int</span> <span class=nf>Euler</span><span class=p>(</span><span class=kt>int</span> <span class=n>n</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>res</span> <span class=o>=</span> <span class=n>n</span><span class=p>,</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>   <span class=c1>//由于任何一个合数都至少有一个不大于根号 n 的素因子，所以只要遍历到根号 n 即可\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>2</span><span class=p>;</span><span class=n>i</span> <span class=o>*</span> <span class=n>i</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=n>i</span> <span class=o>==</span> <span class=mi>0</span><span class=p>){</span>  <span class=c1>//第一次找到的必为素因子\n</span></span></span><span class=line><span class=cl>    <span class=n>n</span> <span class=o>/=</span><span class=n>i</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>res</span> <span class=o>=</span> <span class=n>res</span> <span class=o>-</span> <span class=n>res</span><span class=o>/</span><span class=n>i</span><span class=p>;</span>  <span class=c1>//x(1-1/p1)\n</span></span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>n</span> <span class=o>%</span> <span class=n>i</span> <span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>n</span><span class=o>/=</span><span class=n>i</span><span class=p>;</span>  <span class=c1>//将该素因子的倍数也全部筛掉\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=n>n</span> <span class=o>&gt;</span> <span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>res</span> <span class=o>=</span> <span class=n>res</span> <span class=o>-</span> <span class=n>res</span><span class=o>/</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=n>res</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://blog.csdn.net/wangjian8006/article/details/7833319 target=_blank rel=\"external nofollow noopener noreferrer\">以上转载注明<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>//素数筛选法，先素数筛选，再求欧拉</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>特性 :\n</span></span></span><span class=line><span class=cl><span class=cm>1. 若 a 为质数，phi[a]=a-1;\n</span></span></span><span class=line><span class=cl><span class=cm>2. 若 a 为质数，b mod a=0,phi[a*b]=phi[b]*a\n</span></span></span><span class=line><span class=cl><span class=cm>3. 若 a,b 互质，phi[a*b]=phi[a]*phi[b](当 a 为质数时，if b mod a!=0 ,phi[a*b]=phi[a]*phi[b])\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>m</span><span class=p>[</span><span class=n>n</span><span class=p>],</span><span class=n>phi</span><span class=p>[</span><span class=n>n</span><span class=p>],</span><span class=n>p</span><span class=p>[</span><span class=n>n</span><span class=p>],</span><span class=n>nump</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>//m[i] 标记 i 是否为素数，0 为素数，1 不为素数；p 是存放素数的数组；nump 是当前素数个数；phi[i] 为欧拉函数\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>make</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>phi</span><span class=p>[</span><span class=mi>1</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>2</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>m</span><span class=p>[</span><span class=n>i</span><span class=p>])</span><span class=c1>//i 为素数，m[] 初始化为 0\n</span></span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>p</span><span class=p>[</span><span class=o>++</span><span class=n>nump</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span><span class=c1>//将 i 加入素数数组 p 中\n</span></span></span><span class=line><span class=cl>            <span class=n>phi</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span><span class=c1>//因为 i 是素数，由特性得知\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>nump</span><span class=o>&amp;&amp;</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>*</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>  <span class=c1>//用当前已的到的素数数组 p 筛，筛去 p[j]*i\n</span></span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>m</span><span class=p>[</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>*</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=c1>//可以确定 i*p[j] 不是素数\n</span></span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=n>i</span><span class=o>%</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=c1>//看 p[j] 是否是 i 的约数，因为素数 p[j], 等于判断 i 和 p[j] 是否互质\n</span></span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>phi</span><span class=p>[</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>*</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>phi</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>*</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>];</span> <span class=c1>//特性 2\n</span></span></span><span class=line><span class=cl>                <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span> <span class=n>phi</span><span class=p>[</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>*</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>phi</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>*</span><span class=p>(</span><span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>-</span><span class=mi>1</span><span class=p>);</span> <span class=c1>//互质，特性 3,p[j]-1 就是 phi[p[j]]\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>附素数打表</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span>  <span class=n>p</span><span class=p>[</span><span class=n>N</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>prime</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>2</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>N</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>p</span><span class=p>[</span><span class=n>i</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>      <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>2</span><span class=o>*</span><span class=n>i</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>N</span><span class=p>;</span><span class=n>j</span><span class=o>+=</span><span class=n>i</span><span class=p>)</span><span class=c1>//筛掉 i 的倍数\n</span></span></span><span class=line><span class=cl>        <span class=n>p</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=例题><span>5 例题</span>\n<a href=#%e4%be%8b%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://vjudge.net/contest/238979#problem/A target=_blank rel=\"external nofollow noopener noreferrer\">Bi-shoe and Phi-shoe<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> LightOJ - 1370</p><blockquote><p>题意：<br>给一些数 Ai（第 i 个数），Ai 这些数代表的是某个数欧拉函数的值，我们要求出数 Ni 的欧拉函数值不小于 Ai。而我们要求的就是这些 Ni 这些数字的和 sum，而且我们想要 sum 最小，求出 sum 最小多少。</p><p>解题思路：<br>要求和最小，我们可以让每个数都尽量小，那么我们最后得到的肯定就是一个最小值。<br>给定一个数的欧拉函数值 ψ(N)，我们怎么样才能求得最小的 N?<br>我们知道，一个素数 P 的欧拉函数值 ψ(P)=P-1。所以如果我们知道 ψ(N)，那么最小的 N 就是最接近 ψ(N)，并且大于 ψ(N) 的素数。我们把所有素数打表之后再判断就可以了。</p></blockquote><p>这个 lightoj 有毒，什么头文件都不支持，卡了我好久。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#define N 1000005\n</span></span></span><span class=line><span class=cl><span class=cp>#define ll long long\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>m</span><span class=p>[</span><span class=n>N</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>p</span><span class=p>[</span><span class=mi>100000</span><span class=p>],</span><span class=n>cnt</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>max</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>x</span><span class=o>&gt;</span><span class=n>y</span><span class=o>?</span><span class=nl>x</span><span class=p>:</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>prime</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>2</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>N</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>m</span><span class=p>[</span><span class=n>i</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>2</span><span class=o>*</span><span class=n>i</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>N</span><span class=p>;</span><span class=n>j</span><span class=o>+=</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>m</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>p</span><span class=p>[</span><span class=n>cnt</span><span class=o>++</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>binary_search</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>){</span><span class=c1>//二分查找\n</span></span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>l</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>r</span><span class=o>=</span><span class=n>cnt</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>l</span><span class=o>&lt;=</span><span class=n>r</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>mid</span><span class=o>=</span><span class=p>(</span><span class=n>l</span><span class=o>+</span><span class=n>r</span><span class=p>)</span><span class=o>/</span><span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=p>[</span><span class=n>mid</span><span class=p>]</span><span class=o>&gt;</span><span class=n>x</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>r</span><span class=o>=</span><span class=n>mid</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>l</span><span class=o>=</span><span class=n>mid</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=nf>max</span><span class=p>(</span><span class=n>r</span><span class=p>,</span><span class=mi>0</span><span class=p>);;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>p</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&gt;</span><span class=n>x</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>p</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>prime</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>T</span><span class=p>,</span><span class=n>n</span><span class=p>,</span><span class=n>cas</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span><span class=n>temp</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>T</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>T</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>ll</span> <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>temp</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>sum</span><span class=o>+=</span><span class=nf>binary_search</span><span class=p>(</span><span class=n>temp</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;Case %d: %lld Xukha</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>cas</span><span class=o>++</span><span class=p>,</span><span class=n>sum</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/euler/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/euler.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/euler.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0%7c%0A%7cURL%7chttps://lruihao.cn/posts/euler/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/euler.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/euler/ data-title=欧拉函数 data-hashtags=数学,数论,euler,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/euler/ data-hashtag=数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/euler/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/euler/ data-title=欧拉函数 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/euler/ data-title=欧拉函数><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag title=\"标签 - 数论\">数论</a><a href=/tags/euler/ class=post-tag title=\"标签 - euler\">euler</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj1797/ class=post-nav-item rel=prev title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a><a href=/posts/cfcontest1017/ class=post-nav-item rel=next title=\"Codeforces Round 502(Div.1 + Div.2)\">Codeforces Round 502(Div.1 + Div.2)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#欧拉函数是求小于-x-并且和-x><strong><em>欧拉函数是求小于 x 并且和 x互质 的数的个数</em></strong></a></li><li><a href=#定理>定理</a></li><li><a href=#特殊性质>特殊性质</a></li><li><a href=#模板>模板</a></li><li><a href=#例题>例题</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1ce2b38079d9b4fc8647b4847733631a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1ce2b38079d9b4fc8647b4847733631a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/euler/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/euler/index.md",
    "content": "# 欧拉函数\n\n\n## **_欧拉函数是求小于 x 并且和 x[互质](https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin) 的数的个数_**\n\n通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)  \n**其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数**  \nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2*2*3】\n\n## 定理\n\n1. 若 n 是素数 p 的 k 次幂，φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 ![IMG_20180808_170807.jpg](https://i.loli.net/2018/08/08/5b6ab31239225.jpg)\n2. 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\n\n## 特殊性质\n\n1. 当 n 为奇数时，φ(2n)=φ(n)\n2. p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\n3. 若 a 为素数，b mod a=0,`φ(a*b)=φ(b)*a`\n\n<!--more-->\n\n## 模板\n\n//直接法\n\n```cpp\nint Euler(int n){\n  int res = n,i;\n\n   //由于任何一个合数都至少有一个不大于根号 n 的素因子，所以只要遍历到根号 n 即可\n  for(i=2;i * i <= n;i++)\n  if(n%i == 0){  //第一次找到的必为素因子\n    n /=i ;\n    res = res - res/i;  //x(1-1/p1)\n    while(n % i ==0)\n      n/=i;  //将该素因子的倍数也全部筛掉\n  }\n\n  if (n > 1)\n    res = res - res/n;\n  return res;\n}\n```\n\n[以上转载注明](https://blog.csdn.net/wangjian8006/article/details/7833319)\n\n//素数筛选法，先素数筛选，再求欧拉\n\n```c\n/*\n特性 :\n1. 若 a 为质数，phi[a]=a-1;\n2. 若 a 为质数，b mod a=0,phi[a*b]=phi[b]*a\n3. 若 a,b 互质，phi[a*b]=phi[a]*phi[b](当 a 为质数时，if b mod a!=0 ,phi[a*b]=phi[a]*phi[b])\n*/\nint m[n],phi[n],p[n],nump;\n//m[i] 标记 i 是否为素数，0 为素数，1 不为素数；p 是存放素数的数组；nump 是当前素数个数；phi[i] 为欧拉函数\nint make()\n{\n        phi[1]=1;\n    for (int i=2;i<=n;i++)\n    {\n        if (!m[i])//i 为素数，m[] 初始化为 0\n        {\n            p[++nump]=i;//将 i 加入素数数组 p 中\n            phi[i]=i-1;//因为 i 是素数，由特性得知\n        }\n        for (int j=1;j<=nump&&p[j]*i<n;j++)  //用当前已的到的素数数组 p 筛，筛去 p[j]*i\n        {\n            m[p[j]*i]=1;//可以确定 i*p[j] 不是素数\n            if (i%p[j]==0) //看 p[j] 是否是 i 的约数，因为素数 p[j], 等于判断 i 和 p[j] 是否互质\n            {\n                phi[p[j]*i]=phi[i]*p[j]; //特性 2\n                break;\n            }\n            else phi[p[j]*i]=phi[i]*(p[j]-1); //互质，特性 3,p[j]-1 就是 phi[p[j]]\n        }\n    }\n}\n```\n\n附素数打表\n\n```c\nint  p[N]={1,1,0};\n\nvoid prime(){\n  for(int i=2;i<N;i++)\n    if(!p[i]){\n      for(int j=2*i;j<=N;j+=i)//筛掉 i 的倍数\n        p[j]=1;\n    }\n}\n```\n\n## 例题\n\n[Bi-shoe and Phi-shoe](https://vjudge.net/contest/238979#problem/A) LightOJ - 1370\n\n> 题意：  \n> 给一些数 Ai（第 i 个数），Ai 这些数代表的是某个数欧拉函数的值，我们要求出数 Ni 的欧拉函数值不小于 Ai。而我们要求的就是这些 Ni 这些数字的和 sum，而且我们想要 sum 最小，求出 sum 最小多少。\n>\n> 解题思路：  \n> 要求和最小，我们可以让每个数都尽量小，那么我们最后得到的肯定就是一个最小值。  \n> 给定一个数的欧拉函数值 ψ(N)，我们怎么样才能求得最小的 N?  \n> 我们知道，一个素数 P 的欧拉函数值 ψ(P)=P-1。所以如果我们知道 ψ(N)，那么最小的 N 就是最接近 ψ(N)，并且大于 ψ(N) 的素数。我们把所有素数打表之后再判断就可以了。\n\n这个 lightoj 有毒，什么头文件都不支持，卡了我好久。\n\n```c\n#include<stdio.h>\n#define N 1000005\n#define ll long long\n\nint m[N]={1,1,0};\nint p[100000],cnt=0;\n\nint max(int x,int y){\n    return x>y?x:y;\n}\n\nvoid prime(){\n    for(int i=2;i<N;i++)\n    if(!m[i]){\n        for(int j=2*i;j<=N;j+=i)\n            m[j]=1;\n        p[cnt++]=i;\n    }\n}\n\nint binary_search(int x){//二分查找\n    int l=0,r=cnt;\n    while(l<=r){\n        int mid=(l+r)/2;\n        if(p[mid]>x)\n            r=mid-1;\n        else l=mid+1;\n    }\n    for(int i=max(r,0);;i++)\n        if(p[i]>x)\n    return p[i];\n}\n\nint main(){\n    prime();\n    int T,n,cas=1,temp;\n    scanf(\"%d\",&T);\n    while(T--){\n        scanf(\"%d\",&n);\n        ll sum=0;\n        for(int i=0;i<n;i++){\n            scanf(\"%d\",&temp);\n            sum+=binary_search(temp);\n        }\n        printf(\"Case %d: %lld Xukha\\n\",cas++,sum);\n    }\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/euler/  \n\n"
  },
  {
    "path": "posts/event-loop/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>浏览器原理 - 事件循环 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\n\"><meta name=keywords content='Browser,JavaScript'><meta itemprop=name content=\"浏览器原理 - 事件循环\"><meta itemprop=description content=\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\"><meta itemprop=datePublished content=\"2023-01-11T11:16:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"2813\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Browser,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/event-loop/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"浏览器原理 - 事件循环\"><meta property=\"og:description\" content=\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-01-11T11:16:02+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Browser\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"浏览器原理 - 事件循环\"><meta name=twitter:description content=\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/event-loop/ title=\"浏览器原理 - 事件循环 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/years/2022/ title=\"2022 年度总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/document-style-guide/ title=中文技术文档的写作规范><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/event-loop/index.md title=\"浏览器原理 - 事件循环 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"浏览器原理 - 事件循环\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/event-loop\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Browser, JavaScript\",\"wordcount\":2813,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/event-loop\\/\",\"datePublished\":\"2023-01-11T11:16:02+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/event-loop/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>浏览器原理 - 事件循环</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>浏览器原理 - 事件循环</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/browser/ class=post-category title=\"分类 - Browser\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Browser</a></span></div><div class=post-meta-line><span title=\"发布于 2023-01-11 11:16:02\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-01-11>2023-01-11</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"2813 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 6 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"浏览器原理 - 事件循环\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/event-loop/images/202208092131410.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/event-loop/images/202208092131410.png height=1022 width=1518></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#浏览器的进程模型>浏览器的进程模型</a><ol><li><a href=#何为进程>何为进程？</a></li><li><a href=#何为线程>何为线程？</a></li><li><a href=#浏览器有哪些进程和线程>浏览器有哪些进程和线程？</a></li></ol></li><li><a href=#渲染主线程是如何工作的>渲染主线程是如何工作的？</a></li><li><a href=#若干解释>若干解释</a><ol><li><a href=#何为异步>何为异步？</a></li><li><a href=#js-为何会阻碍渲染>JS 为何会阻碍渲染？</a></li><li><a href=#任务有优先级吗>任务有优先级吗？</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>最近在抖音上刷到很多次 <a href=http://yuanjin.tech/ target=_blank rel=\"external nofollow noopener noreferrer\">袁进老师<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。</p><h2 class=heading-element id=浏览器的进程模型><span>1 浏览器的进程模型</span>\n<a href=#%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9a%84%e8%bf%9b%e7%a8%8b%e6%a8%a1%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=何为进程><span>1.1 何为进程？</span>\n<a href=#%e4%bd%95%e4%b8%ba%e8%bf%9b%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>程序运行需要有它自己专属的内存空间，可以把这块内存空间简单的理解为进程</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208092057573.png title=进程可以简单理解为单独的内存空间 data-thumbnail=/posts/event-loop/images/202208092057573.png data-sub-html=\"<h2>进程</h2><p>进程可以简单理解为单独的内存空间</p>\"><img loading=lazy src=/posts/event-loop/images/202208092057573.png alt=进程 height=970 width=1364></a><figcaption class=image-caption>进程可以简单理解为单独的内存空间</figcaption></figure></p><p>每个应用至少有一个进程，进程之间相互独立，即使要通信，也需要双方同意。</p><h3 class=heading-element id=何为线程><span>1.2 何为线程？</span>\n<a href=#%e4%bd%95%e4%b8%ba%e7%ba%bf%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>有了进程后，就可以运行程序的代码了。</p><p>运行代码的「人」称之为「线程」。</p><p>一个进程至少有一个线程，所以在进程开启后会自动创建一个线程来运行代码，该线程称之为主线程。</p><p>如果程序需要同时执行多块代码，主线程就会启动更多的线程来执行代码，所以一个进程中可以包含多个线程。</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208092108499.png title=\"一个进程可以有 N 个线程\" data-thumbnail=/posts/event-loop/images/202208092108499.png data-sub-html=\"<h2>线程</h2><p>一个进程可以有 N 个线程</p>\"><img loading=lazy src=/posts/event-loop/images/202208092108499.png alt=线程 height=992 width=1704></a><figcaption class=image-caption>一个进程可以有 N 个线程</figcaption></figure></p><h3 class=heading-element id=浏览器有哪些进程和线程><span>1.3 浏览器有哪些进程和线程？</span>\n<a href=#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%9c%89%e5%93%aa%e4%ba%9b%e8%bf%9b%e7%a8%8b%e5%92%8c%e7%ba%bf%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>浏览器是一个多进程多线程的应用程序</strong>，浏览器内部工作极其复杂。</p><p>为了避免相互影响，为了减少连环崩溃的几率，当启动浏览器后，它会自动启动多个进程。</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208092131410.png title=浏览器进程 data-thumbnail=/posts/event-loop/images/202208092131410.png data-sub-html=\"<h2>浏览器进程</h2><p>浏览器进程</p>\"><img loading=lazy src=/posts/event-loop/images/202208092131410.png alt=浏览器进程 height=1022 width=1518></a><figcaption class=image-caption>浏览器进程</figcaption></figure></p><blockquote><p>可以在浏览器的任务管理器中查看当前的所有进程</p></blockquote><p>其中，最主要的进程有：</p><ol><li><p>浏览器进程</p><p>主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。</p></li><li><p>网络进程</p><p>负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。</p></li><li><p><strong>渲染进程</strong>（本篇重点讲解的进程）</p><p>渲染进程启动后，会开启一个<strong>渲染主线程</strong>，主线程负责执行 HTML、CSS、JS 代码。</p><p>默认情况下，浏览器会为每个标签页开启一个新的渲染进程，以保证不同的标签页之间不相互影响。</p><blockquote><p>将来该默认模式可能会有所改变，有兴趣的同学可参见 <a href=https://chromium.googlesource.com/chromium/src/+/main/docs/process_model_and_site_isolation.md#Modes-and-Availability target=_blank rel=\"external nofollow noopener noreferrer\">chrome 官方说明文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></li></ol><h2 class=heading-element id=渲染主线程是如何工作的><span>2 渲染主线程是如何工作的？</span>\n<a href=#%e6%b8%b2%e6%9f%93%e4%b8%bb%e7%ba%bf%e7%a8%8b%e6%98%af%e5%a6%82%e4%bd%95%e5%b7%a5%e4%bd%9c%e7%9a%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>渲染主线程是浏览器中最繁忙的线程，需要它处理的任务包括但不限于：</p><ul><li>解析 HTML</li><li>解析 CSS</li><li>计算样式</li><li>布局</li><li>处理图层</li><li>每秒把页面画 60 次</li><li>执行全局 JS 代码</li><li>执行事件处理函数</li><li>执行计时器的回调函数</li><li>&mldr;&mldr;</li></ul><blockquote><p>思考题：为什么渲染进程不适用多个线程来处理这些事情？</p></blockquote><p>要处理这么多的任务，主线程遇到了一个前所未有的难题：如何调度任务？</p><p>比如：</p><ul><li>我正在执行一个 JS 函数，执行到一半的时候用户点击了按钮，我该立即去执行点击事件的处理函数吗？</li><li>我正在执行一个 JS 函数，执行到一半的时候某个计时器到达了时间，我该立即去执行它的回调吗？</li><li>浏览器进程通知我“用户点击了按钮”，与此同时，某个计时器也到达了时间，我应该处理哪一个呢？</li><li>&mldr;&mldr;</li></ul><p>渲染主线程想出了一个绝妙的主意来处理这个问题：排队</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208092230847.png title=所有要执行的任务都要排队，FIFO data-thumbnail=/posts/event-loop/images/202208092230847.png data-sub-html=\"<h2>消息队列</h2><p>所有要执行的任务都要排队，FIFO</p>\"><img loading=lazy src=/posts/event-loop/images/202208092230847.png alt=消息队列 height=886 width=1570></a><figcaption class=image-caption>所有要执行的任务都要排队，FIFO</figcaption></figure></p><ol><li>在最开始的时候，渲染主线程会进入一个无限循环</li><li>每一次循环会检查消息队列中是否有任务存在。如果有，就取出第一个任务执行，执行完一个后进入下一次循环；如果没有，则进入休眠状态。</li><li>其他所有线程（包括其他进程的线程）可以随时向消息队列添加任务。新任务会加到消息队列的末尾。在添加新任务时，如果主线程是休眠状态，则会将其唤醒以继续循环拿取任务</li></ol><p>这样一来，就可以让每个任务有条不紊的、持续的进行下去了。<strong>整个过程，被称之为事件循环（消息循环）</strong>。</p><h2 class=heading-element id=若干解释><span>3 若干解释</span>\n<a href=#%e8%8b%a5%e5%b9%b2%e8%a7%a3%e9%87%8a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=何为异步><span>3.1 何为异步？</span>\n<a href=#%e4%bd%95%e4%b8%ba%e5%bc%82%e6%ad%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>代码在执行过程中，会遇到一些无法立即处理的任务，比如：</p><ul><li>计时完成后需要执行的任务 —— <code>setTimeout</code>、<code>setInterval</code></li><li>网络通信完成后需要执行的任务 — <code>XHR</code>、<code>Fetch</code></li><li>用户操作后需要执行的任务 — <code>addEventListener</code></li></ul><p>如果让渲染主线程等待这些任务的时机达到，就会导致主线程长期处于「阻塞」的状态，从而导致浏览器「卡死」</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208101043348.png title=同步策略会导致卡死 data-thumbnail=/posts/event-loop/images/202208101043348.png data-sub-html=\"<h2>同步策略</h2><p>同步策略会导致卡死</p>\"><img loading=lazy src=/posts/event-loop/images/202208101043348.png alt=同步策略 height=790 width=1712></a><figcaption class=image-caption>同步策略会导致卡死</figcaption></figure></p><p><strong>渲染主线程承担着极其重要的工作，无论如何都不能阻塞！</strong></p><p>因此，浏览器选择<strong>异步</strong>来解决这个问题</p><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/202208101048899.png title=异步策略，渲染主线程永不阻塞 data-thumbnail=/posts/event-loop/images/202208101048899.png data-sub-html=\"<h2>异步策略</h2><p>异步策略，渲染主线程永不阻塞</p>\"><img loading=lazy src=/posts/event-loop/images/202208101048899.png alt=异步策略 height=848 width=1740></a><figcaption class=image-caption>异步策略，渲染主线程永不阻塞</figcaption></figure></p><p>使用异步的方式，<strong>渲染主线程永不阻塞</strong></p><div class=\"details admonition question\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>面试题：如何理解 JS 的异步？<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>参考答案：</p><p>JS 是一门单线程的语言，这是因为它运行在浏览器的渲染主线程中，而渲染主线程只有一个。</p><p>而渲染主线程承担着诸多的工作，渲染页面、执行 JS 都在其中运行。</p><p>如果使用同步的方式，就极有可能导致主线程产生阻塞，从而导致消息队列中的很多其他任务无法得到执行。这样一来，一方面会导致繁忙的主线程白白的消耗时间，另一方面导致页面无法及时更新，给用户造成卡死现象。</p><p>所以浏览器采用异步的方式来避免。具体做法是当某些任务发生时，比如计时器、网络、事件监听，主线程将任务交给其他线程去处理，自身立即结束任务的执行，转而执行后续代码。当其他线程完成时，将事先传递的回调函数包装成任务，加入到消息队列的末尾排队，等待主线程调度执行。</p><p>在这种异步模式下，浏览器永不阻塞，从而最大限度的保证了单线程的流畅运行。</p></div></div></div><h3 class=heading-element id=js-为何会阻碍渲染><span>3.2 JS 为何会阻碍渲染？</span>\n<a href=#js-%e4%b8%ba%e4%bd%95%e4%bc%9a%e9%98%bb%e7%a2%8d%e6%b8%b2%e6%9f%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>先看代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>h1</span><span class=p>&gt;</span>Mr.Yuan is awesome!<span class=p>&lt;/</span><span class=nt>h1</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>button</span><span class=p>&gt;</span>change<span class=p>&lt;/</span><span class=nt>button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>h1</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;h1&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>btn</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;button&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>// 死循环指定的时间\n</span></span></span><span class=line><span class=cl>  <span class=kd>function</span> <span class=nx>delay</span><span class=p>(</span><span class=nx>duration</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kd>var</span> <span class=nx>start</span> <span class=o>=</span> <span class=nb>Date</span><span class=p>.</span><span class=nx>now</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=p>(</span><span class=nb>Date</span><span class=p>.</span><span class=nx>now</span><span class=p>()</span> <span class=o>-</span> <span class=nx>start</span> <span class=o>&lt;</span> <span class=nx>duration</span><span class=p>)</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>btn</span><span class=p>.</span><span class=nx>onclick</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>h1</span><span class=p>.</span><span class=nx>textContent</span> <span class=o>=</span> <span class=s1>&#39;袁老师很帅！&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>delay</span><span class=p>(</span><span class=mi>3000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>点击按钮后，会发生什么呢？</p><p>&lt;复制代码自行演示></p><h3 class=heading-element id=任务有优先级吗><span>3.3 任务有优先级吗？</span>\n<a href=#%e4%bb%bb%e5%8a%a1%e6%9c%89%e4%bc%98%e5%85%88%e7%ba%a7%e5%90%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>任务没有优先级，在消息队列中先进先出</p><p>但<strong>消息队列是有优先级的</strong></p><p>根据 W3C 的最新解释：</p><ul><li>每个任务都有一个任务类型，同一个类型的任务必须在一个队列，不同类型的任务可以分属于不同的队列。\n在一次事件循环中，浏览器可以根据实际情况从不同的队列中取出任务执行。</li><li>浏览器必须准备好一个微队列，微队列中的任务优先所有其他任务执行\n<a href=https://html.spec.whatwg.org/multipage/webappapis.html#perform-a-microtask-checkpoint target=_blank rel=\"external nofollow noopener noreferrer\">https://html.spec.whatwg.org/multipage/webappapis.html#perform-a-microtask-checkpoint<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><blockquote><p>随着浏览器的复杂度急剧提升，W3C 不再使用宏队列的说法</p></blockquote><p>在目前 chrome 的实现中，至少包含了下面的队列：</p><ul><li>微队列：用户存放需要最快执行的任务，优先级「最高」</li><li>延时队列：用于存放计时器到达后的回调任务，优先级「中」</li><li>交互队列：用于存放用户操作后产生的事件处理任务，优先级「高」</li></ul><p><figure><a class=lightgallery target=_blank href=/posts/event-loop/images/multiple-queues.png title=微队列、延时队列、交互队列 data-thumbnail=/posts/event-loop/images/multiple-queues.png data-sub-html=\"<h2>多队列演示图</h2><p>微队列、延时队列、交互队列</p>\"><img loading=lazy src=/posts/event-loop/images/multiple-queues.png alt=多队列演示图 height=676 width=1232></a><figcaption class=image-caption>微队列、延时队列、交互队列</figcaption></figure></p><p>添加任务到微队列的主要方式主要是使用 Promise、MutationObserver，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>// 立即把一个函数添加到微队列\n</span></span></span><span class=line><span class=cl><span class=nb>Promise</span><span class=p>.</span><span class=nx>resolve</span><span class=p>().</span><span class=nx>then</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{});</span></span></span></code></pre></td></tr></table></div></div></div><p>浏览器还有很多其他的队列，由于和我们开发关系不大，不作考虑。</p><div class=\"details admonition question\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>面试题：阐述一下 JS 的事件循环<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>参考答案：</p><p>事件循环又叫做消息循环，是浏览器渲染主线程的工作方式。</p><p>在 Chrome 的源码中，它开启一个不会结束的 for 循环，每次循环从消息队列中取出第一个任务执行，而其他线程只需要在合适的时候将任务加入到队列末尾即可。</p><p>过去把消息队列简单分为宏队列和微队列，这种说法目前已无法满足复杂的浏览器环境，取而代之的是一种更加灵活多变的处理方式。</p><p>根据 W3C 官方的解释，每个任务有不同的类型，同类型的任务必须在同一个队列，不同的任务可以属于不同的队列。不同任务队列有不同的优先级，在一次事件循环中，由浏览器自行决定取哪一个队列的任务。但浏览器必须有一个微队列，微队列的任务一定具有最高的优先级，必须优先调度执行。</p></div></div></div><div class=\"details admonition question\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>面试题：JS 中的计时器能做到精确计时吗？为什么？<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>参考答案：</p><p>不行，因为：</p><ol><li>计算机硬件没有原子钟，无法做到精确计时</li><li>操作系统的计时函数本身就有少量偏差，由于 JS 的计时器最终调用的是操作系统的函数，也就携带了这些偏差</li><li>按照 W3C 的标准，浏览器实现计时器时，如果嵌套层级超过 5 层，则会带有 4 毫秒的最少时间，这样在计时时间少于 4 毫秒时又带来了偏差</li><li>受事件循环的影响，计时器的回调函数只能在主线程空闲时运行，因此又带来了偏差</li></ol></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/event-loop/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/event-loop/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/event-loop/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B5%8F%E8%A7%88%E5%99%A8%E5%8E%9F%E7%90%86+-+%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B5%8F%E8%A7%88%E5%99%A8%E5%8E%9F%E7%90%86+-+%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF%7c%0A%7cURL%7chttps://lruihao.cn/posts/event-loop/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/event-loop/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/event-loop/ data-title=\"浏览器原理 - 事件循环\" data-hashtags=Browser,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/event-loop/ data-hashtag=Browser><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/event-loop/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/event-loop/ data-title=\"浏览器原理 - 事件循环\" data-image=images/202208092131410.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/event-loop/ data-title=\"浏览器原理 - 事件循环\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/browser/ class=post-tag title=\"标签 - Browser\">Browser</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/years/2022/ class=post-nav-item rel=prev title=\"2022 年度总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>2022 年度总结</a><a href=/posts/document-style-guide/ class=post-nav-item rel=next title=中文技术文档的写作规范>中文技术文档的写作规范<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#浏览器的进程模型>浏览器的进程模型</a><ol><li><a href=#何为进程>何为进程？</a></li><li><a href=#何为线程>何为线程？</a></li><li><a href=#浏览器有哪些进程和线程>浏览器有哪些进程和线程？</a></li></ol></li><li><a href=#渲染主线程是如何工作的>渲染主线程是如何工作的？</a></li><li><a href=#若干解释>若干解释</a><ol><li><a href=#何为异步>何为异步？</a></li><li><a href=#js-为何会阻碍渲染>JS 为何会阻碍渲染？</a></li><li><a href=#任务有优先级吗>任务有优先级吗？</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1b078ccc55871dd0d40d77f1056078d0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1b078ccc55871dd0d40d77f1056078d0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/event-loop/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/event-loop/index.md",
    "content": "# 浏览器原理 - 事件循环\n\n\n最近在抖音上刷到很多次 [袁进老师](http://yuanjin.tech/) 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\n\n<!--more-->\n\n## 浏览器的进程模型\n\n### 何为进程？\n\n程序运行需要有它自己专属的内存空间，可以把这块内存空间简单的理解为进程\n\n![进程](images/202208092057573.png '进程可以简单理解为单独的内存空间')\n\n每个应用至少有一个进程，进程之间相互独立，即使要通信，也需要双方同意。\n\n### 何为线程？\n\n有了进程后，就可以运行程序的代码了。\n\n运行代码的「人」称之为「线程」。\n\n一个进程至少有一个线程，所以在进程开启后会自动创建一个线程来运行代码，该线程称之为主线程。\n\n如果程序需要同时执行多块代码，主线程就会启动更多的线程来执行代码，所以一个进程中可以包含多个线程。\n\n![线程](images/202208092108499.png '一个进程可以有 N 个线程')\n\n### 浏览器有哪些进程和线程？\n\n**浏览器是一个多进程多线程的应用程序**，浏览器内部工作极其复杂。\n\n为了避免相互影响，为了减少连环崩溃的几率，当启动浏览器后，它会自动启动多个进程。\n\n![浏览器进程](images/202208092131410.png '浏览器进程')\n\n> 可以在浏览器的任务管理器中查看当前的所有进程\n\n其中，最主要的进程有：\n\n1. 浏览器进程\n\n   主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。\n\n2. 网络进程\n\n   负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。\n\n3. **渲染进程**（本篇重点讲解的进程）\n\n   渲染进程启动后，会开启一个**渲染主线程**，主线程负责执行 HTML、CSS、JS 代码。\n\n   默认情况下，浏览器会为每个标签页开启一个新的渲染进程，以保证不同的标签页之间不相互影响。\n\n   > 将来该默认模式可能会有所改变，有兴趣的同学可参见 [chrome 官方说明文档](https://chromium.googlesource.com/chromium/src/+/main/docs/process_model_and_site_isolation.md#Modes-and-Availability)\n\n## 渲染主线程是如何工作的？\n\n渲染主线程是浏览器中最繁忙的线程，需要它处理的任务包括但不限于：\n\n- 解析 HTML\n- 解析 CSS\n- 计算样式\n- 布局\n- 处理图层\n- 每秒把页面画 60 次\n- 执行全局 JS 代码\n- 执行事件处理函数\n- 执行计时器的回调函数\n- ......\n\n> 思考题：为什么渲染进程不适用多个线程来处理这些事情？\n\n要处理这么多的任务，主线程遇到了一个前所未有的难题：如何调度任务？\n\n比如：\n\n- 我正在执行一个 JS 函数，执行到一半的时候用户点击了按钮，我该立即去执行点击事件的处理函数吗？\n- 我正在执行一个 JS 函数，执行到一半的时候某个计时器到达了时间，我该立即去执行它的回调吗？\n- 浏览器进程通知我“用户点击了按钮”，与此同时，某个计时器也到达了时间，我应该处理哪一个呢？\n- ......\n\n渲染主线程想出了一个绝妙的主意来处理这个问题：排队\n\n![消息队列](images/202208092230847.png '所有要执行的任务都要排队，FIFO')\n\n1. 在最开始的时候，渲染主线程会进入一个无限循环\n2. 每一次循环会检查消息队列中是否有任务存在。如果有，就取出第一个任务执行，执行完一个后进入下一次循环；如果没有，则进入休眠状态。\n3. 其他所有线程（包括其他进程的线程）可以随时向消息队列添加任务。新任务会加到消息队列的末尾。在添加新任务时，如果主线程是休眠状态，则会将其唤醒以继续循环拿取任务\n\n这样一来，就可以让每个任务有条不紊的、持续的进行下去了。**整个过程，被称之为事件循环（消息循环）**。\n\n## 若干解释\n\n### 何为异步？\n\n代码在执行过程中，会遇到一些无法立即处理的任务，比如：\n\n- 计时完成后需要执行的任务 —— `setTimeout`、`setInterval`\n- 网络通信完成后需要执行的任务 — `XHR`、`Fetch`\n- 用户操作后需要执行的任务 — `addEventListener`\n\n如果让渲染主线程等待这些任务的时机达到，就会导致主线程长期处于「阻塞」的状态，从而导致浏览器「卡死」\n\n![同步策略](images/202208101043348.png '同步策略会导致卡死')\n\n**渲染主线程承担着极其重要的工作，无论如何都不能阻塞！**\n\n因此，浏览器选择**异步**来解决这个问题\n\n![异步策略](images/202208101048899.png '异步策略，渲染主线程永不阻塞')\n\n使用异步的方式，**渲染主线程永不阻塞**\n\n{{< admonition question \"面试题：如何理解 JS 的异步？\" false >}}\n参考答案：\n\nJS 是一门单线程的语言，这是因为它运行在浏览器的渲染主线程中，而渲染主线程只有一个。\n\n而渲染主线程承担着诸多的工作，渲染页面、执行 JS 都在其中运行。\n\n如果使用同步的方式，就极有可能导致主线程产生阻塞，从而导致消息队列中的很多其他任务无法得到执行。这样一来，一方面会导致繁忙的主线程白白的消耗时间，另一方面导致页面无法及时更新，给用户造成卡死现象。\n\n所以浏览器采用异步的方式来避免。具体做法是当某些任务发生时，比如计时器、网络、事件监听，主线程将任务交给其他线程去处理，自身立即结束任务的执行，转而执行后续代码。当其他线程完成时，将事先传递的回调函数包装成任务，加入到消息队列的末尾排队，等待主线程调度执行。\n\n在这种异步模式下，浏览器永不阻塞，从而最大限度的保证了单线程的流畅运行。\n{{< /admonition >}}\n\n### JS 为何会阻碍渲染？\n\n先看代码\n\n```html\n<h1>Mr.Yuan is awesome!</h1>\n<button>change</button>\n<script>\n  var h1 = document.querySelector('h1');\n  var btn = document.querySelector('button');\n\n  // 死循环指定的时间\n  function delay(duration) {\n    var start = Date.now();\n    while (Date.now() - start < duration) {}\n  }\n\n  btn.onclick = function () {\n    h1.textContent = '袁老师很帅！';\n    delay(3000);\n  };\n</script>\n```\n\n点击按钮后，会发生什么呢？\n\n<复制代码自行演示>\n\n### 任务有优先级吗？\n\n任务没有优先级，在消息队列中先进先出\n\n但**消息队列是有优先级的**\n\n根据 W3C 的最新解释：\n\n- 每个任务都有一个任务类型，同一个类型的任务必须在一个队列，不同类型的任务可以分属于不同的队列。\n  在一次事件循环中，浏览器可以根据实际情况从不同的队列中取出任务执行。\n- 浏览器必须准备好一个微队列，微队列中的任务优先所有其他任务执行\n  <https://html.spec.whatwg.org/multipage/webappapis.html#perform-a-microtask-checkpoint>\n\n> 随着浏览器的复杂度急剧提升，W3C 不再使用宏队列的说法\n\n在目前 chrome 的实现中，至少包含了下面的队列：\n\n- 微队列：用户存放需要最快执行的任务，优先级「最高」\n- 延时队列：用于存放计时器到达后的回调任务，优先级「中」\n- 交互队列：用于存放用户操作后产生的事件处理任务，优先级「高」\n\n![多队列演示图](images/multiple-queues.png '微队列、延时队列、交互队列')\n\n添加任务到微队列的主要方式主要是使用 Promise、MutationObserver，例如：\n\n```js\n// 立即把一个函数添加到微队列\nPromise.resolve().then(() => {});\n```\n\n浏览器还有很多其他的队列，由于和我们开发关系不大，不作考虑。\n\n{{< admonition question \"面试题：阐述一下 JS 的事件循环\" false >}}\n参考答案：\n\n事件循环又叫做消息循环，是浏览器渲染主线程的工作方式。\n\n在 Chrome 的源码中，它开启一个不会结束的 for 循环，每次循环从消息队列中取出第一个任务执行，而其他线程只需要在合适的时候将任务加入到队列末尾即可。\n\n过去把消息队列简单分为宏队列和微队列，这种说法目前已无法满足复杂的浏览器环境，取而代之的是一种更加灵活多变的处理方式。\n\n根据 W3C 官方的解释，每个任务有不同的类型，同类型的任务必须在同一个队列，不同的任务可以属于不同的队列。不同任务队列有不同的优先级，在一次事件循环中，由浏览器自行决定取哪一个队列的任务。但浏览器必须有一个微队列，微队列的任务一定具有最高的优先级，必须优先调度执行。\n{{< /admonition >}}\n\n{{< admonition question \"面试题：JS 中的计时器能做到精确计时吗？为什么？\" false >}}\n\n参考答案：\n\n不行，因为：\n\n1. 计算机硬件没有原子钟，无法做到精确计时\n2. 操作系统的计时函数本身就有少量偏差，由于 JS 的计时器最终调用的是操作系统的函数，也就携带了这些偏差\n3. 按照 W3C 的标准，浏览器实现计时器时，如果嵌套层级超过 5 层，则会带有 4 毫秒的最少时间，这样在计时时间少于 4 毫秒时又带来了偏差\n4. 受事件循环的影响，计时器的回调函数只能在主线程空闲时运行，因此又带来了偏差\n\n{{< /admonition >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/event-loop/  \n\n"
  },
  {
    "path": "posts/f-sorting/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>F.sorting | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"\n\"><meta name=keywords content='2018 湘潭邀请赛,ACM'><meta itemprop=name content=\"F.sorting\"><meta itemprop=description content><meta itemprop=datePublished content=\"2018-06-14T22:49:27+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"328\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"2018 湘潭邀请赛,acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/f-sorting/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"F.sorting\"><meta property=\"og:description\" content><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T22:49:27+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"F.sorting\"><meta name=twitter:description content><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/f-sorting/ title=\"F.sorting | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/k-2018/ title=K.2018><link rel=next type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ title=\"18 湘潭邀请赛总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/f-sorting/index.md title=\"F.sorting | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"F.sorting\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/f-sorting\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"2018 湘潭邀请赛, ACM\",\"wordcount\":328,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/f-sorting\\/\",\"datePublished\":\"2018-06-14T22:49:27+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/f-sorting/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>F.sorting</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>F.sorting</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 22:49:27\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"328 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=F.sorting><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a class=lightgallery target=_blank href=/images/remote/5b2286fcec6fc_5173814137014719346.png title=sorting.png data-thumbnail=/images/remote/5b2286fcec6fc_5173814137014719346.png data-sub-html=\"<h2>sorting.png</h2>\"><img loading=lazy src=/images/remote/5b2286fcec6fc_5173814137014719346.png alt=sorting.png height=697 width=1049></a></p><h2 class=heading-element id=sample-input><span>1 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>2\n1 1 1\n1 1 2\n2\n1 1 2\n1 1 1\n3\n1 3 1\n2 2 1\n3 1 1\n</code></pre><h2 class=heading-element id=sample-output><span>2 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>2 1\n1 2\n1 2 3\n</code></pre><p>题意：给定 n 个元组 (a1,b1,c1),(a2,b2,c2),&mldr;,(an,bn,cn)，将其按 (ai+bi)/(ai+bi+ci) 的值从小到大排序，输出排序后的 n 个元组的原序号；<br>思路：编写 sort 里的 cmp 函数（形参为元组结构体元素，设为 Tuple x,Tuple y)，若直接算出 (x.a+x.b)<em>(y.a+y.b+y.c) 和 (y.a+y.b)</em>(x.a+x.b+x.c) 再比较大小，这两个结果会爆 unsigned long long；<br>可以把因式乘积展开成多项式的和，约去两式中相同的项，得到 x.a<em>y.c+x.b</em>y.c 和 y.a<em>x.c+y.b</em>x.c，因此只需计算它俩再比较即可，结果不会爆 unsigned long long</p><p>后 AC 代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&#34;bits/stdc++.h&#34;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=n>node</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>double</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>numb</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=n>ss</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>cmp</span><span class=p>(</span><span class=k>const</span> <span class=n>node</span> <span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=k>const</span> <span class=n>node</span> <span class=o>&amp;</span><span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>double</span> <span class=n>suma</span><span class=p>,</span><span class=n>sumb</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//suma=a.a*b.c+a.b*b.c;\n</span></span></span><span class=line><span class=cl>    <span class=c1>//sumb=b.a*a.c+b.b*a.c;\n</span></span></span><span class=line><span class=cl>    <span class=n>suma</span><span class=o>=</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=n>a</span><span class=o>+</span><span class=n>a</span><span class=p>.</span><span class=n>b</span><span class=p>)</span><span class=o>/</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=n>a</span><span class=o>+</span><span class=n>a</span><span class=p>.</span><span class=n>b</span><span class=o>+</span><span class=n>a</span><span class=p>.</span><span class=n>c</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>sumb</span><span class=o>=</span><span class=p>(</span><span class=n>b</span><span class=p>.</span><span class=n>a</span><span class=o>+</span><span class=n>b</span><span class=p>.</span><span class=n>b</span><span class=p>)</span><span class=o>/</span><span class=p>(</span><span class=n>b</span><span class=p>.</span><span class=n>a</span><span class=o>+</span><span class=n>b</span><span class=p>.</span><span class=n>b</span><span class=o>+</span><span class=n>b</span><span class=p>.</span><span class=n>c</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>suma</span><span class=o>!=</span><span class=n>sumb</span><span class=p>)</span><span class=k>return</span> <span class=n>suma</span><span class=o>&lt;</span><span class=n>sumb</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>a</span><span class=p>.</span><span class=n>numb</span><span class=o>&lt;</span><span class=n>b</span><span class=p>.</span><span class=n>numb</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>b</span><span class=o>&gt;&gt;</span><span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>numb</span><span class=o>=</span><span class=n>i</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=nf>stable_sort</span><span class=p>(</span><span class=n>ss</span><span class=p>,</span><span class=n>ss</span><span class=o>+</span><span class=n>n</span><span class=p>,</span><span class=n>cmp</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>numb</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>ss</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>numb</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/f-sorting/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/f-sorting.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/f-sorting.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20F.sorting&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cF.sorting%7c%0A%7cURL%7chttps://lruihao.cn/posts/f-sorting/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/f-sorting.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/f-sorting/ data-title=F.sorting data-hashtags=\"2018 湘潭邀请赛,ACM\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/f-sorting/ data-hashtag=\"2018 湘潭邀请赛\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/f-sorting/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/f-sorting/ data-title=F.sorting data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/f-sorting/ data-title=F.sorting><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/k-2018/ class=post-nav-item rel=prev title=K.2018><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>K.2018</a><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=post-nav-item rel=next title=\"18 湘潭邀请赛总结\">18 湘潭邀请赛总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7ad9cd5126d73a535492159809361cd1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7ad9cd5126d73a535492159809361cd1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/f-sorting/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/f-sorting/index.md",
    "content": "# F.sorting\n\n\n![sorting.png](https://i.loli.net/2018/06/14/5b2286fcec6fc.png)\n\n<!--more-->\n\n## Sample Input\n\n    2\n    1 1 1\n    1 1 2\n    2\n    1 1 2\n    1 1 1\n    3\n    1 3 1\n    2 2 1\n    3 1 1\n\n## Sample Output\n\n    2 1\n    1 2\n    1 2 3\n\n题意：给定 n 个元组 (a1,b1,c1),(a2,b2,c2),...,(an,bn,cn)，将其按 (ai+bi)/(ai+bi+ci) 的值从小到大排序，输出排序后的 n 个元组的原序号；  \n思路：编写 sort 里的 cmp 函数（形参为元组结构体元素，设为 Tuple x,Tuple y)，若直接算出 (x.a+x.b)_(y.a+y.b+y.c) 和 (y.a+y.b)_(x.a+x.b+x.c) 再比较大小，这两个结果会爆 unsigned long long；  \n可以把因式乘积展开成多项式的和，约去两式中相同的项，得到 x.a*y.c+x.b*y.c 和 y.a*x.c+y.b*x.c，因此只需计算它俩再比较即可，结果不会爆 unsigned long long\n\n后 AC 代码\n\n```c\n#include \"bits/stdc++.h\"\nusing namespace std;\nstruct node{\n    long double a,b,c;\n    int numb;\n}ss[1005];\n\nbool cmp(const node &a,const node &b){\n    long double suma,sumb;\n    //suma=a.a*b.c+a.b*b.c;\n    //sumb=b.a*a.c+b.b*a.c;\n    suma=(a.a+a.b)/(a.a+a.b+a.c);\n    sumb=(b.a+b.b)/(b.a+b.b+b.c);\n    if(suma!=sumb)return suma<sumb;\n    return a.numb<b.numb;\n}\n\nint main(){\n    int n;\n    while(cin>>n){\n        for(int i=0;i<n;i++){\n            cin>>ss[i].a>>ss[i].b>>ss[i].c;\n            ss[i].numb=i+1;\n        }\n        stable_sort(ss,ss+n,cmp);\n        int i;\n        for(i=0;i<n-1;i++)\n            cout<<ss[i].numb<<\" \";\n        cout<<ss[i].numb<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/f-sorting/  \n\n"
  },
  {
    "path": "posts/fanxing/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 泛型 Test | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (<>) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \"><meta name=keywords content='泛型,Java'><meta itemprop=name content=\"java 泛型 test\"><meta itemprop=description content=\"泛型方法，它在修饰符后，返回值类型前增加了类型参数 (<>) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。\"><meta itemprop=datePublished content=\"2019-03-16T13:56:01+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"245\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"泛型,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/fanxing/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 泛型 test\"><meta property=\"og:description\" content=\"泛型方法，它在修饰符后，返回值类型前增加了类型参数 (<>) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-16T13:56:01+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"泛型\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 泛型 test\"><meta name=twitter:description content=\"泛型方法，它在修饰符后，返回值类型前增加了类型参数 (<>) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/fanxing/ title=\"java 泛型 test | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/eclipseuse/ title=\"eclipse 的基本使用\"><link rel=next type=text/html href=https://lruihao.cn/posts/webbiji/ title=\"web 汇总\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/fanxing/index.md title=\"java 泛型 test | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 泛型 test\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/fanxing\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"泛型, Java\",\"wordcount\":245,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/fanxing\\/\",\"datePublished\":\"2019-03-16T13:56:01+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/fanxing/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 泛型 Test</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 泛型 Test</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-16 13:56:01\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-16>2019-03-16</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"245 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 泛型 Test\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#代码>代码</a></li><li><a href=#运行结果>运行结果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><ul><li>泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&lt;>)</li><li>类型通配符一般使用问号<code>?</code>代替具体的类型<code>实</code>参，注意不是类型形参。</li></ul></blockquote><h2 class=heading-element id=代码><span>1 代码</span>\n<a href=#%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>code0507</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>WildCardTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>String</span><span class=o>&gt;</span><span class=n>name</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>String</span><span class=o>&gt;</span><span class=p>(</span><span class=s>&#34;hello&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Integer</span><span class=o>&gt;</span><span class=n>age</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Integer</span><span class=o>&gt;</span><span class=p>(</span><span class=n>12</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Double</span><span class=o>&gt;</span><span class=n>number</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Double</span><span class=o>&gt;</span><span class=p>(</span><span class=n>210</span><span class=p>.</span><span class=na>50</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Integer</span><span class=o>&gt;</span><span class=n>point</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Box</span><span class=o>&lt;</span><span class=n>Integer</span><span class=o>&gt;</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>getData</span><span class=p>(</span><span class=n>name</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>getData</span><span class=p>(</span><span class=n>age</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>getData</span><span class=p>(</span><span class=n>number</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>point</span><span class=p>.</span><span class=na>printpoint</span><span class=p>(</span><span class=n>520</span><span class=p>,</span><span class=w> </span><span class=n>1314</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>point</span><span class=p>.</span><span class=na>printpoint</span><span class=p>(</span><span class=s>&#34;me&#34;</span><span class=p>,</span><span class=w> </span><span class=s>&#34;too&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>getData</span><span class=p>(</span><span class=n>Box</span><span class=o>&lt;?&gt;</span><span class=n>data</span><span class=p>){</span><span class=c1>//类型通配符</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;data:&#34;</span><span class=o>+</span><span class=n>data</span><span class=p>.</span><span class=na>getData</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Box</span><span class=o>&lt;</span><span class=n>T</span><span class=o>&gt;</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=n>T</span><span class=w> </span><span class=n>data</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Box</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=c1>//构造方法重载</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Box</span><span class=p>(</span><span class=n>T</span><span class=w> </span><span class=n>data</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setData</span><span class=p>(</span><span class=n>data</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=n>T</span><span class=w> </span><span class=nf>getData</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>data</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setData</span><span class=p>(</span><span class=n>T</span><span class=w> </span><span class=n>data</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>this</span><span class=p>.</span><span class=na>data</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>data</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//定义泛型方法</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=o>&lt;</span><span class=n>T1</span><span class=p>,</span><span class=n>T2</span><span class=o>&gt;</span><span class=kt>void</span><span class=w> </span><span class=nf>printpoint</span><span class=p>(</span><span class=n>T1</span><span class=w> </span><span class=n>x</span><span class=p>,</span><span class=n>T2</span><span class=w> </span><span class=n>y</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>T1</span><span class=w> </span><span class=n>m</span><span class=o>=</span><span class=n>x</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>T2</span><span class=w> </span><span class=n>n</span><span class=o>=</span><span class=n>y</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;This point is:&#34;</span><span class=o>+</span><span class=n>m</span><span class=o>+</span><span class=s>&#34;,&#34;</span><span class=o>+</span><span class=n>n</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=运行结果><span>2 运行结果</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>data</span><span class=p>:</span><span class=n>hello</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>data</span><span class=p>:</span><span class=n>12</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nl>data</span><span class=p>:</span><span class=n>210</span><span class=p>.</span><span class=na>5</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>This</span><span class=w> </span><span class=n>point</span><span class=w> </span><span class=n>is</span><span class=p>:</span><span class=n>520</span><span class=p>,</span><span class=n>1314</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>This</span><span class=w> </span><span class=n>point</span><span class=w> </span><span class=n>is</span><span class=p>:</span><span class=n>me</span><span class=p>,</span><span class=n>too</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/fanxing/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/fanxing.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/fanxing.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E6%B3%9B%E5%9E%8B+test&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E6%B3%9B%E5%9E%8B+test%7c%0A%7cURL%7chttps://lruihao.cn/posts/fanxing/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/fanxing.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/fanxing/ data-title=\"Java 泛型 Test\" data-hashtags=泛型,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/fanxing/ data-hashtag=泛型><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/fanxing/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/fanxing/ data-title=\"Java 泛型 Test\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/fanxing/ data-title=\"Java 泛型 Test\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B3%9B%E5%9E%8B/ class=post-tag title=\"标签 - 泛型\">泛型</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/eclipseuse/ class=post-nav-item rel=prev title=\"Eclipse 的基本使用\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Eclipse 的基本使用</a><a href=/posts/webbiji/ class=post-nav-item rel=next title=\"Web 汇总\">Web 汇总<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#代码>代码</a></li><li><a href=#运行结果>运行结果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/54639e69f9bb0f26b6e0c20251d837c8.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/54639e69f9bb0f26b6e0c20251d837c8.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/fanxing/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/fanxing/index.md",
    "content": "# Java 泛型 Test\n\n\n> - 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (<>)\n> - 类型通配符一般使用问号`?`代替具体的类型`实`参，注意不是类型形参。\n\n<!--more-->\n\n## 代码\n\n```java\npackage code0507;\n\npublic class WildCardTest {\n\n  public static void main(String[] args) {\n    Box<String>name=new Box<String>(\"hello\");\n    Box<Integer>age=new Box<Integer>(12);\n    Box<Double>number=new Box<Double>(210.50);\n    Box<Integer>point=new Box<Integer>();\n    getData(name);\n    getData(age);\n    getData(number);\n    point.printpoint(520, 1314);\n    point.printpoint(\"me\", \"too\");\n  }\n\n  public static void getData(Box<?>data){//类型通配符\n    System.out.println(\"data:\"+data.getData());\n  }\n}\nclass Box<T>{\n  private T data;\n  public Box() {}//构造方法重载\n  public Box(T data) {\n    setData(data);\n  }\n  public T getData() {\n    return data;\n  }\n  public void setData(T data) {\n    this.data = data;\n  }\n  //定义泛型方法\n  public<T1,T2>void printpoint(T1 x,T2 y){\n    T1 m=x;\n    T2 n=y;\n    System.out.println(\"This point is:\"+m+\",\"+n);\n  }\n}\n```\n\n## 运行结果\n\n```java\ndata:hello\ndata:12\ndata:210.5\nThis point is:520,1314\nThis point is:me,too\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/fanxing/  \n\n"
  },
  {
    "path": "posts/fas-app/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>博採眾長 App | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 介绍 使用 fusion app 对网页进行的封装。\n功能：\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \"><meta name=keywords content='lua,fusion'><meta itemprop=name content=\"博採眾長 app\"><meta itemprop=description content=\"0.1 介绍 使用 fusion app 对网页进行的封装。\n功能：\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览\"><meta itemprop=datePublished content=\"2018-11-12T16:04:04+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"3652\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"lua,fusion\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/fas-app/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"博採眾長 app\"><meta property=\"og:description\" content=\"0.1 介绍 使用 fusion app 对网页进行的封装。\n功能：\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-12T16:04:04+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"lua\"><meta property=\"article:tag\" content=\"fusion\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"博採眾長 app\"><meta name=twitter:description content=\"0.1 介绍 使用 fusion app 对网页进行的封装。\n功能：\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/fas-app/ title=\"博採眾長 app | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/caddy-file/ title=caddy-两步搭建超简单云盘><link rel=next type=text/html href=https://lruihao.cn/posts/commit-bat/ title=\"通过 bat 批处理文件自动提交博客代码\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/fas-app/index.md title=\"博採眾長 app | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"博採眾長 app\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/fas-app\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"lua, fusion\",\"wordcount\":3652,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/fas-app\\/\",\"datePublished\":\"2018-11-12T16:04:04+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/fas-app/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>博採眾長 App</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>博採眾長 App</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-12 16:04:04\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-12>2018-11-12</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"3652 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 3700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 8 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"博採眾長 App\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#介绍>介绍</a></li><li><a href=#下载>下载</a></li><li><a href=#部分源码>部分源码</a><ol><li><a href=#检测更新>检测更新</a></li><li><a href=#方向锁定>方向锁定</a></li><li><a href=#程序启动事件>程序启动事件</a></li></ol></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=介绍><span>0.1 介绍</span>\n<a href=#%e4%bb%8b%e7%bb%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用 fusion app 对网页进行的封装。<br>功能：</p><ul><li>浏览本博客，主页</li><li>私人网盘</li><li>2048 等小游戏</li><li>在线客服，QQ 等</li><li>pc 与移动浏览器标识切换</li><li>留言，打赏，博主日志等</li><li>分享功能，分享到 QQ，微信，浏览器打开等</li><li>app 内添加书签，自动记录历史记录，刷新等</li><li><strong>配合博客的<code>PWA + quicklink</code>功能可实现离线浏览</strong></li></ul><h3 class=heading-element id=下载><span>0.2 下载</span>\n<a href=#%e4%b8%8b%e8%bd%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><del>app 内也可以更新，不过就我自己用，懒得更新。</del></p></blockquote><ul><li><a href=https://pan.baidu.com/s/19jOvnNhssF302Mi1GRa2Sw target=_blank rel=\"external nofollow noopener noreferrer\">百度云，密码：479l<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/Blog_fas_apk target=_blank rel=\"external nofollow noopener noreferrer\">github 下载<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p><strong>PWA 应用</strong></p><ol><li>地址栏输入：Chrome://flags</li><li>搜索并启用以下项目：Desktop PWAs（桌面 PWAs)、App Banners（应用横幅）、Experimental App Banners（实验性应用横幅）</li><li>重启浏览器使修改的设置生效</li><li>点击地址栏最右边按钮</li><li>安装“博採眾長”</li></ol><h3 class=heading-element id=部分源码><span>0.3 部分源码</span>\n<a href=#%e9%83%a8%e5%88%86%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>看到这些中文的函数总觉得怪怪的哈哈哈 😂\n语言：<code>lua</code></p></blockquote><h4 class=heading-element id=检测更新><span>0.3.1 检测更新</span>\n<a href=#%e6%a3%80%e6%b5%8b%e6%9b%b4%e6%96%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-lua\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=cl><span class=c1>--检查测当前是否最新版本</span>\n</span></span><span class=line><span class=cl><span class=kd>local</span> <span class=n>dl</span><span class=o>=</span><span class=n>ProgressDialog.show</span><span class=p>(</span><span class=n>activity</span><span class=p>,</span><span class=kc>nil</span><span class=p>,</span><span class=s1>&#39;更新检测中…&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>dl.show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=kd>local</span> <span class=n>tt</span><span class=o>=</span><span class=n>Ticker</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=n>tt.start</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=n>packinfo</span><span class=o>=</span><span class=n>this.getPackageManager</span><span class=p>().</span><span class=n>getPackageInfo</span><span class=p>(</span><span class=n>this.getPackageName</span><span class=p>(),((</span><span class=mi>32552732</span><span class=o>/</span><span class=mi>2</span><span class=o>/</span><span class=mi>2</span><span class=o>-</span><span class=mi>8183</span><span class=p>)</span><span class=o>/</span><span class=mi>10000</span><span class=o>-</span><span class=mi>6</span><span class=o>-</span><span class=mi>231</span><span class=p>)</span><span class=o>/</span><span class=mi>9</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>version</span><span class=o>=</span><span class=n>tostring</span><span class=p>(</span><span class=n>packinfo.versionName</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>versioncode</span><span class=o>=</span><span class=n>tostring</span><span class=p>(</span><span class=n>packinfo.versionCode</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>url</span><span class=o>=</span><span class=s2>&#34;https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>过滤</span> <span class=p>(</span><span class=n>content</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=err>版本名</span><span class=o>=</span><span class=n>content</span><span class=p>:</span><span class=n>match</span><span class=p>(</span><span class=s2>&#34;【版本名】(.-)【版本名】&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=err>版本</span><span class=o>=</span><span class=n>content</span><span class=p>:</span><span class=n>match</span><span class=p>(</span><span class=s2>&#34;【版本】(.-)【版本】&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=err>内容</span><span class=o>=</span><span class=n>content</span><span class=p>:</span><span class=n>match</span><span class=p>(</span><span class=s2>&#34;【内容】(.-)【内容】&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=err>链接</span><span class=o>=</span><span class=n>content</span><span class=p>:</span><span class=n>match</span><span class=p>(</span><span class=s2>&#34;【链接】(.-)【链接】&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>if</span><span class=err>（版本名</span><span class=o>==</span><span class=kc>nil</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=err>版本名</span><span class=o>=</span><span class=s2>&#34;获取失败&#34;</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>if</span><span class=err>（版本</span><span class=o>==</span><span class=kc>nil</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=err>版本</span><span class=o>=</span><span class=s2>&#34;0&#34;</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>if</span><span class=err>（内容</span><span class=o>==</span><span class=kc>nil</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=err>内容</span><span class=o>=</span><span class=s2>&#34;获取失败&#34;</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>if</span><span class=err>（链接</span><span class=o>==</span><span class=kc>nil</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;服务器参数配置错误，请过段时间再次尝试&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>if</span><span class=err>（版本</span> <span class=o>&gt;</span> <span class=n>versioncode</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>tt.stop</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>.</span> <span class=err>设置标题</span> <span class=p>(</span><span class=s2>&#34;检测到更新&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>.</span> <span class=err>设置消息</span> <span class=p>(</span><span class=s2>&#34;版本：&#34;</span><span class=o>..</span><span class=n>version</span><span class=o>..</span><span class=s2>&#34;→&#34;</span><span class=o>..</span> <span class=err>版本名。</span><span class=p>.</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 更新内容：&#34;</span><span class=o>..</span> <span class=err>内容）</span>\n</span></span><span class=line><span class=cl><span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;下载更新&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=err>下载文件（链接）</span>\n</span></span><span class=line><span class=cl>  <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;下载更新中…&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消更新&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>.</span> <span class=err>显示</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=kr>else</span>\n</span></span><span class=line><span class=cl><span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>tt.stop</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;当前已是最新版本！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=n>Http.get</span><span class=p>(</span><span class=n>url</span><span class=p>,</span><span class=kc>nil</span><span class=p>,</span><span class=s2>&#34;UTF-8&#34;</span><span class=p>,</span><span class=kc>nil</span><span class=p>,</span><span class=kr>function</span><span class=p>(</span><span class=n>code</span><span class=p>,</span><span class=n>content</span><span class=p>,</span><span class=n>cookie</span><span class=p>,</span><span class=n>header</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span><span class=p>(</span><span class=n>code</span><span class=o>==</span><span class=mi>200</span> <span class=ow>and</span> <span class=n>content</span><span class=p>)</span><span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>content</span><span class=o>=</span><span class=n>content</span><span class=p>:</span><span class=n>match</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\&#34;</span><span class=s2>html_content</span><span class=se>\\&#34;</span><span class=s2>:(.-),&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\\\</span><span class=s2>u003C/?.-%&gt;&#34;</span><span class=p>,</span><span class=s2>&#34;&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\\\\\\\</span><span class=s2>&#34;</span><span class=p>,</span><span class=s2>&#34;&amp;revs;&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\\\</span><span class=s2>n&#34;</span><span class=p>,</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2>&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;nbsp;&#34;</span><span class=p>,</span><span class=s2>&#34; &#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;lt;&#34;</span><span class=p>,</span><span class=s2>&#34;&lt;&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;gt;&#34;</span><span class=p>,</span><span class=s2>&#34;&gt;&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;quot;&#34;</span><span class=p>,</span><span class=s2>&#34;</span><span class=se>\\&#34;</span><span class=s2>&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;apos;&#34;</span><span class=p>,</span><span class=s2>&#34;&#39;&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;revs;&#34;</span><span class=p>,</span><span class=s2>&#34;</span><span class=se>\\\\</span><span class=s2>&#34;</span><span class=p>):</span><span class=n>gsub</span><span class=p>(</span><span class=s2>&#34;&amp;amp;&#34;</span><span class=p>,</span><span class=s2>&#34;&amp;&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=err>过滤</span> <span class=p>(</span><span class=n>content</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>else</span>\n</span></span><span class=line><span class=cl>  <span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>tt.stop</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>     <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;本地网络或服务器异常 &#34;</span><span class=o>..</span><span class=n>code</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h4 class=heading-element id=方向锁定><span>0.3.2 方向锁定</span>\n<a href=#%e6%96%b9%e5%90%91%e9%94%81%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-lua\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=cl><span class=c1>--flag 在程序启动事件声明的全局变量</span>\n</span></span><span class=line><span class=cl><span class=kr>if</span> <span class=n>flag</span><span class=o>==</span><span class=mi>1</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=n>activity.setRequestedOrientation</span><span class=p>(</span><span class=n>ActivityInfo.SCREEN_ORIENTATION_SENSOR</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>SetHSP</span><span class=o>=</span><span class=s2>&#34;H&#34;</span>\n</span></span><span class=line><span class=cl><span class=kr>else</span>\n</span></span><span class=line><span class=cl>  <span class=n>SetHSP</span><span class=o>=</span><span class=kc>nil</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>if</span> <span class=n>SetHSP</span><span class=o>==</span><span class=kc>nil</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--竖屏锁定</span>\n</span></span><span class=line><span class=cl>  <span class=n>activity.setRequestedOrientation</span><span class=p>(</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>flag</span><span class=o>=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=kr>else</span>\n</span></span><span class=line><span class=cl>  <span class=n>flag</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h4 class=heading-element id=程序启动事件><span>0.3.3 程序启动事件</span>\n<a href=#%e7%a8%8b%e5%ba%8f%e5%90%af%e5%8a%a8%e4%ba%8b%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-lua\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span><span class=lnt>132\n</span><span class=lnt>133\n</span><span class=lnt>134\n</span><span class=lnt>135\n</span><span class=lnt>136\n</span><span class=lnt>137\n</span><span class=lnt>138\n</span><span class=lnt>139\n</span><span class=lnt>140\n</span><span class=lnt>141\n</span><span class=lnt>142\n</span><span class=lnt>143\n</span><span class=lnt>144\n</span><span class=lnt>145\n</span><span class=lnt>146\n</span><span class=lnt>147\n</span><span class=lnt>148\n</span><span class=lnt>149\n</span><span class=lnt>150\n</span><span class=lnt>151\n</span><span class=lnt>152\n</span><span class=lnt>153\n</span><span class=lnt>154\n</span><span class=lnt>155\n</span><span class=lnt>156\n</span><span class=lnt>157\n</span><span class=lnt>158\n</span><span class=lnt>159\n</span><span class=lnt>160\n</span><span class=lnt>161\n</span><span class=lnt>162\n</span><span class=lnt>163\n</span><span class=lnt>164\n</span><span class=lnt>165\n</span><span class=lnt>166\n</span><span class=lnt>167\n</span><span class=lnt>168\n</span><span class=lnt>169\n</span><span class=lnt>170\n</span><span class=lnt>171\n</span><span class=lnt>172\n</span><span class=lnt>173\n</span><span class=lnt>174\n</span><span class=lnt>175\n</span><span class=lnt>176\n</span><span class=lnt>177\n</span><span class=lnt>178\n</span><span class=lnt>179\n</span><span class=lnt>180\n</span><span class=lnt>181\n</span><span class=lnt>182\n</span><span class=lnt>183\n</span><span class=lnt>184\n</span><span class=lnt>185\n</span><span class=lnt>186\n</span><span class=lnt>187\n</span><span class=lnt>188\n</span><span class=lnt>189\n</span><span class=lnt>190\n</span><span class=lnt>191\n</span><span class=lnt>192\n</span><span class=lnt>193\n</span><span class=lnt>194\n</span><span class=lnt>195\n</span><span class=lnt>196\n</span><span class=lnt>197\n</span><span class=lnt>198\n</span><span class=lnt>199\n</span><span class=lnt>200\n</span><span class=lnt>201\n</span><span class=lnt>202\n</span><span class=lnt>203\n</span><span class=lnt>204\n</span><span class=lnt>205\n</span><span class=lnt>206\n</span><span class=lnt>207\n</span><span class=lnt>208\n</span><span class=lnt>209\n</span><span class=lnt>210\n</span><span class=lnt>211\n</span><span class=lnt>212\n</span><span class=lnt>213\n</span><span class=lnt>214\n</span><span class=lnt>215\n</span><span class=lnt>216\n</span><span class=lnt>217\n</span><span class=lnt>218\n</span><span class=lnt>219\n</span><span class=lnt>220\n</span><span class=lnt>221\n</span><span class=lnt>222\n</span><span class=lnt>223\n</span><span class=lnt>224\n</span><span class=lnt>225\n</span><span class=lnt>226\n</span><span class=lnt>227\n</span><span class=lnt>228\n</span><span class=lnt>229\n</span><span class=lnt>230\n</span><span class=lnt>231\n</span><span class=lnt>232\n</span><span class=lnt>233\n</span><span class=lnt>234\n</span><span class=lnt>235\n</span><span class=lnt>236\n</span><span class=lnt>237\n</span><span class=lnt>238\n</span><span class=lnt>239\n</span><span class=lnt>240\n</span><span class=lnt>241\n</span><span class=lnt>242\n</span><span class=lnt>243\n</span><span class=lnt>244\n</span><span class=lnt>245\n</span><span class=lnt>246\n</span><span class=lnt>247\n</span><span class=lnt>248\n</span><span class=lnt>249\n</span><span class=lnt>250\n</span><span class=lnt>251\n</span><span class=lnt>252\n</span><span class=lnt>253\n</span><span class=lnt>254\n</span><span class=lnt>255\n</span><span class=lnt>256\n</span><span class=lnt>257\n</span><span class=lnt>258\n</span><span class=lnt>259\n</span><span class=lnt>260\n</span><span class=lnt>261\n</span><span class=lnt>262\n</span><span class=lnt>263\n</span><span class=lnt>264\n</span><span class=lnt>265\n</span><span class=lnt>266\n</span><span class=lnt>267\n</span><span class=lnt>268\n</span><span class=lnt>269\n</span><span class=lnt>270\n</span><span class=lnt>271\n</span><span class=lnt>272\n</span><span class=lnt>273\n</span><span class=lnt>274\n</span><span class=lnt>275\n</span><span class=lnt>276\n</span><span class=lnt>277\n</span><span class=lnt>278\n</span><span class=lnt>279\n</span><span class=lnt>280\n</span><span class=lnt>281\n</span><span class=lnt>282\n</span><span class=lnt>283\n</span><span class=lnt>284\n</span><span class=lnt>285\n</span><span class=lnt>286\n</span><span class=lnt>287\n</span><span class=lnt>288\n</span><span class=lnt>289\n</span><span class=lnt>290\n</span><span class=lnt>291\n</span><span class=lnt>292\n</span><span class=lnt>293\n</span><span class=lnt>294\n</span><span class=lnt>295\n</span><span class=lnt>296\n</span><span class=lnt>297\n</span><span class=lnt>298\n</span><span class=lnt>299\n</span><span class=lnt>300\n</span><span class=lnt>301\n</span><span class=lnt>302\n</span><span class=lnt>303\n</span><span class=lnt>304\n</span><span class=lnt>305\n</span><span class=lnt>306\n</span><span class=lnt>307\n</span><span class=lnt>308\n</span><span class=lnt>309\n</span><span class=lnt>310\n</span><span class=lnt>311\n</span><span class=lnt>312\n</span><span class=lnt>313\n</span><span class=lnt>314\n</span><span class=lnt>315\n</span><span class=lnt>316\n</span><span class=lnt>317\n</span><span class=lnt>318\n</span><span class=lnt>319\n</span><span class=lnt>320\n</span><span class=lnt>321\n</span><span class=lnt>322\n</span><span class=lnt>323\n</span><span class=lnt>324\n</span><span class=lnt>325\n</span><span class=lnt>326\n</span><span class=lnt>327\n</span><span class=lnt>328\n</span><span class=lnt>329\n</span><span class=lnt>330\n</span><span class=lnt>331\n</span><span class=lnt>332\n</span><span class=lnt>333\n</span><span class=lnt>334\n</span><span class=lnt>335\n</span><span class=lnt>336\n</span><span class=lnt>337\n</span><span class=lnt>338\n</span><span class=lnt>339\n</span><span class=lnt>340\n</span><span class=lnt>341\n</span><span class=lnt>342\n</span><span class=lnt>343\n</span><span class=lnt>344\n</span><span class=lnt>345\n</span><span class=lnt>346\n</span><span class=lnt>347\n</span><span class=lnt>348\n</span><span class=lnt>349\n</span><span class=lnt>350\n</span><span class=lnt>351\n</span><span class=lnt>352\n</span><span class=lnt>353\n</span><span class=lnt>354\n</span><span class=lnt>355\n</span><span class=lnt>356\n</span><span class=lnt>357\n</span><span class=lnt>358\n</span><span class=lnt>359\n</span><span class=lnt>360\n</span><span class=lnt>361\n</span><span class=lnt>362\n</span><span class=lnt>363\n</span><span class=lnt>364\n</span><span class=lnt>365\n</span><span class=lnt>366\n</span><span class=lnt>367\n</span><span class=lnt>368\n</span><span class=lnt>369\n</span><span class=lnt>370\n</span><span class=lnt>371\n</span><span class=lnt>372\n</span><span class=lnt>373\n</span><span class=lnt>374\n</span><span class=lnt>375\n</span><span class=lnt>376\n</span><span class=lnt>377\n</span><span class=lnt>378\n</span><span class=lnt>379\n</span><span class=lnt>380\n</span><span class=lnt>381\n</span><span class=lnt>382\n</span><span class=lnt>383\n</span><span class=lnt>384\n</span><span class=lnt>385\n</span><span class=lnt>386\n</span><span class=lnt>387\n</span><span class=lnt>388\n</span><span class=lnt>389\n</span><span class=lnt>390\n</span><span class=lnt>391\n</span><span class=lnt>392\n</span><span class=lnt>393\n</span><span class=lnt>394\n</span><span class=lnt>395\n</span><span class=lnt>396\n</span><span class=lnt>397\n</span><span class=lnt>398\n</span><span class=lnt>399\n</span><span class=lnt>400\n</span><span class=lnt>401\n</span><span class=lnt>402\n</span><span class=lnt>403\n</span><span class=lnt>404\n</span><span class=lnt>405\n</span><span class=lnt>406\n</span><span class=lnt>407\n</span><span class=lnt>408\n</span><span class=lnt>409\n</span><span class=lnt>410\n</span><span class=lnt>411\n</span><span class=lnt>412\n</span><span class=lnt>413\n</span><span class=lnt>414\n</span><span class=lnt>415\n</span><span class=lnt>416\n</span><span class=lnt>417\n</span><span class=lnt>418\n</span><span class=lnt>419\n</span><span class=lnt>420\n</span><span class=lnt>421\n</span><span class=lnt>422\n</span><span class=lnt>423\n</span><span class=lnt>424\n</span><span class=lnt>425\n</span><span class=lnt>426\n</span><span class=lnt>427\n</span><span class=lnt>428\n</span><span class=lnt>429\n</span><span class=lnt>430\n</span><span class=lnt>431\n</span><span class=lnt>432\n</span><span class=lnt>433\n</span><span class=lnt>434\n</span><span class=lnt>435\n</span><span class=lnt>436\n</span><span class=lnt>437\n</span><span class=lnt>438\n</span><span class=lnt>439\n</span><span class=lnt>440\n</span><span class=lnt>441\n</span><span class=lnt>442\n</span><span class=lnt>443\n</span><span class=lnt>444\n</span><span class=lnt>445\n</span><span class=lnt>446\n</span><span class=lnt>447\n</span><span class=lnt>448\n</span><span class=lnt>449\n</span><span class=lnt>450\n</span><span class=lnt>451\n</span><span class=lnt>452\n</span><span class=lnt>453\n</span><span class=lnt>454\n</span><span class=lnt>455\n</span><span class=lnt>456\n</span><span class=lnt>457\n</span><span class=lnt>458\n</span><span class=lnt>459\n</span><span class=lnt>460\n</span><span class=lnt>461\n</span><span class=lnt>462\n</span><span class=lnt>463\n</span><span class=lnt>464\n</span><span class=lnt>465\n</span><span class=lnt>466\n</span><span class=lnt>467\n</span><span class=lnt>468\n</span><span class=lnt>469\n</span><span class=lnt>470\n</span><span class=lnt>471\n</span><span class=lnt>472\n</span><span class=lnt>473\n</span><span class=lnt>474\n</span><span class=lnt>475\n</span><span class=lnt>476\n</span><span class=lnt>477\n</span><span class=lnt>478\n</span><span class=lnt>479\n</span><span class=lnt>480\n</span><span class=lnt>481\n</span><span class=lnt>482\n</span><span class=lnt>483\n</span><span class=lnt>484\n</span><span class=lnt>485\n</span><span class=lnt>486\n</span><span class=lnt>487\n</span><span class=lnt>488\n</span><span class=lnt>489\n</span><span class=lnt>490\n</span><span class=lnt>491\n</span><span class=lnt>492\n</span><span class=lnt>493\n</span><span class=lnt>494\n</span><span class=lnt>495\n</span><span class=lnt>496\n</span><span class=lnt>497\n</span><span class=lnt>498\n</span><span class=lnt>499\n</span><span class=lnt>500\n</span><span class=lnt>501\n</span><span class=lnt>502\n</span><span class=lnt>503\n</span><span class=lnt>504\n</span><span class=lnt>505\n</span><span class=lnt>506\n</span><span class=lnt>507\n</span><span class=lnt>508\n</span><span class=lnt>509\n</span><span class=lnt>510\n</span><span class=lnt>511\n</span><span class=lnt>512\n</span><span class=lnt>513\n</span><span class=lnt>514\n</span><span class=lnt>515\n</span><span class=lnt>516\n</span><span class=lnt>517\n</span><span class=lnt>518\n</span><span class=lnt>519\n</span><span class=lnt>520\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=cl><span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;©2018 李瑞豪&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--自动，由物理感应器决定</span>\n</span></span><span class=line><span class=cl><span class=n>import</span> <span class=s2>&#34;android.content.pm.ActivityInfo&#34;</span>\n</span></span><span class=line><span class=cl><span class=n>flag</span><span class=o>=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--程序退出时执行对话框</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>onKeyDown</span><span class=p>(</span><span class=n>key</span><span class=p>,</span><span class=n>event</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span><span class=p>(</span><span class=n>key</span><span class=o>==</span><span class=mi>4</span><span class=p>)</span><span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=kr>if</span><span class=p>(</span><span class=n>webView.canGoBack</span><span class=p>())</span><span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>webView.goBack</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>else</span>\n</span></span><span class=line><span class=cl>      <span class=n>appinfo</span><span class=o>=</span><span class=n>this.getPackageManager</span><span class=p>().</span><span class=n>getApplicationInfo</span><span class=p>(</span><span class=n>this.getPackageName</span><span class=p>(),</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>applabel</span><span class=o>=</span><span class=n>this.getPackageManager</span><span class=p>().</span><span class=n>getApplicationLabel</span><span class=p>(</span><span class=n>appinfo</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=err>退出确认</span><span class=o>=</span><span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>设置消息</span> <span class=p>(</span><span class=s2>&#34;您确定要退出 &#34;</span><span class=o>..</span><span class=n>applabel</span><span class=o>..</span><span class=s2>&#34; 吗？&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=err>退出按钮</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=p>[</span><span class=mi>1</span><span class=p>]</span><span class=o>=</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>          <span class=err>退出确认</span>\n</span></span><span class=line><span class=cl>          <span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;确认&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>            <span class=err>退出程序</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>            <span class=kr>end</span>\n</span></span><span class=line><span class=cl>             <span class=p>)</span>\n</span></span><span class=line><span class=cl>             <span class=p>.</span> <span class=err>设置中立按钮</span> <span class=p>(</span><span class=s2>&#34;清除缓存&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>               <span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>               <span class=p>.</span> <span class=err>设置消息</span> <span class=p>(</span><span class=s2>&#34;清除缓存后再次运行程序将变得缓慢、n 您确定要清除 &#34;</span><span class=o>..</span><span class=n>applabel</span><span class=o>..</span><span class=s2>&#34; 的缓存吗？&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>               <span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;确定&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=n>os.execute</span><span class=p>(</span><span class=s2>&#34;pm clear &#34;</span><span class=o>..</span><span class=n>this.packageName</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=err>退出程序</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>               <span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>              <span class=p>.</span> <span class=err>显示</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>             <span class=kr>end</span>\n</span></span><span class=line><span class=cl>           <span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=kr>end</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=n>math.randomseed</span><span class=p>(</span><span class=n>tonumber</span><span class=p>(</span><span class=n>tostring</span><span class=p>(</span><span class=n>os.time</span><span class=p>()):</span><span class=n>reverse</span><span class=p>():</span><span class=n>sub</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span> <span class=mi>6</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl>      <span class=err>退出按钮</span> <span class=p>[</span><span class=n>math.random</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>)]()</span>\n</span></span><span class=line><span class=cl>      <span class=err>退出确认。</span><span class=n>show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kr>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--历史记录</span>\n</span></span><span class=line><span class=cl><span class=n>lstads</span><span class=o>=</span><span class=s2>&#34;/data/data/&#34;</span><span class=o>..</span><span class=n>activity.getPackageName</span><span class=p>()</span><span class=o>..</span><span class=s2>&#34;/lst.lua&#34;</span>\n</span></span><span class=line><span class=cl><span class=n>lstwebads</span><span class=o>=</span><span class=s2>&#34;/data/data/&#34;</span><span class=o>..</span><span class=n>activity.getPackageName</span><span class=p>()</span><span class=o>..</span><span class=s2>&#34;/lstweb.lua&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1>--2. 序列化</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>slz</span><span class=p>(</span><span class=n>obj</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>lua</span> <span class=o>=</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>t</span> <span class=o>=</span> <span class=n>type</span><span class=p>(</span><span class=n>obj</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;number&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=n>obj</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;boolean&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=n>tostring</span><span class=p>(</span><span class=n>obj</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;string&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=n>string.format</span><span class=p>(</span><span class=s2>&#34;%q&#34;</span><span class=p>,</span> <span class=n>obj</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;table&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=s2>&#34;{</span><span class=se>\\n</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=kr>for</span> <span class=n>k</span><span class=p>,</span> <span class=n>v</span> <span class=kr>in</span> <span class=n>pairs</span><span class=p>(</span><span class=n>obj</span><span class=p>)</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>      <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=s2>&#34;[&#34;</span> <span class=o>..</span> <span class=n>slz</span><span class=p>(</span><span class=n>k</span><span class=p>)</span> <span class=o>..</span> <span class=s2>&#34;]=&#34;</span> <span class=o>..</span> <span class=n>slz</span><span class=p>(</span><span class=n>v</span><span class=p>)</span> <span class=o>..</span> <span class=s2>&#34;,</span><span class=se>\\n</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kd>local</span> <span class=n>metatable</span> <span class=o>=</span> <span class=n>getmetatable</span><span class=p>(</span><span class=n>obj</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>if</span> <span class=n>metatable</span> <span class=o>~=</span> <span class=kc>nil</span> <span class=ow>and</span> <span class=n>type</span><span class=p>(</span><span class=n>metatable.__index</span><span class=p>)</span> <span class=o>==</span> <span class=s2>&#34;table&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=kr>for</span> <span class=n>k</span><span class=p>,</span> <span class=n>v</span> <span class=kr>in</span> <span class=n>pairs</span><span class=p>(</span><span class=n>metatable.__index</span><span class=p>)</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>        <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=s2>&#34;[&#34;</span> <span class=o>..</span> <span class=n>slz</span><span class=p>(</span><span class=n>k</span><span class=p>)</span> <span class=o>..</span> <span class=s2>&#34;]=&#34;</span> <span class=o>..</span> <span class=n>slz</span><span class=p>(</span><span class=n>v</span><span class=p>)</span> <span class=o>..</span> <span class=s2>&#34;,</span><span class=se>\\n</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>lua</span> <span class=o>..</span> <span class=s2>&#34;}&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;nil&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=kr>return</span> <span class=kc>nil</span>\n</span></span><span class=line><span class=cl>  <span class=kr>else</span>\n</span></span><span class=line><span class=cl>    <span class=n>error</span><span class=p>(</span><span class=s2>&#34;can not serialize a &#34;</span> <span class=o>..</span> <span class=n>t</span> <span class=o>..</span> <span class=s2>&#34; type.&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>lua</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>rslz</span><span class=p>(</span><span class=n>lua</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>t</span> <span class=o>=</span> <span class=n>type</span><span class=p>(</span><span class=n>lua</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;nil&#34;</span> <span class=ow>or</span> <span class=n>lua</span> <span class=o>==</span> <span class=s2>&#34;&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=kr>return</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;number&#34;</span> <span class=ow>or</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;string&#34;</span> <span class=ow>or</span> <span class=n>t</span> <span class=o>==</span> <span class=s2>&#34;boolean&#34;</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>lua</span> <span class=o>=</span> <span class=n>tostring</span><span class=p>(</span><span class=n>lua</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>else</span>\n</span></span><span class=line><span class=cl>    <span class=n>error</span><span class=p>(</span><span class=s2>&#34;can not unserialize a &#34;</span> <span class=o>..</span> <span class=n>t</span> <span class=o>..</span> <span class=s2>&#34; type.&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>lua</span> <span class=o>=</span> <span class=s2>&#34;return &#34;</span> <span class=o>..</span> <span class=n>lua</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>func</span> <span class=o>=</span> <span class=n>loadstring</span><span class=p>(</span><span class=n>lua</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>func</span> <span class=o>==</span> <span class=kc>nil</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=kr>return</span> <span class=kc>nil</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>func</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--3. 历史记录框布局</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>hstshow</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>hstlayout</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>TextView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>text</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>textSize</span><span class=o>=</span><span class=s2>&#34;0sp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>background</span><span class=o>=</span><span class=s2>&#34;#000000&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;15dp&#34;</span><span class=p>,},</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>TextView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>text</span><span class=o>=</span><span class=s2>&#34;历史记录&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>textSize</span><span class=o>=</span><span class=s2>&#34;30sp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>textStyle</span><span class=o>=</span><span class=s2>&#34;bold&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;50dp&#34;</span><span class=p>,},</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>ListView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>id</span><span class=o>=</span><span class=s2>&#34;hlst&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>items</span><span class=o>=</span><span class=n>lst</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--##功能函数##</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--1. 读取历史文件</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>read_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>import</span> <span class=s2>&#34;java.io.File&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=n>File</span><span class=p>(</span><span class=n>lstads</span><span class=p>).</span><span class=n>createNewFile</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>slst</span><span class=o>=</span><span class=n>io.open</span><span class=p>(</span><span class=n>lstads</span><span class=p>):</span><span class=n>read</span><span class=p>(</span><span class=s2>&#34;*a&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>File</span><span class=p>(</span><span class=n>lstwebads</span><span class=p>).</span><span class=n>createNewFile</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>slstweb</span><span class=o>=</span><span class=n>io.open</span><span class=p>(</span><span class=n>lstwebads</span><span class=p>):</span><span class=n>read</span><span class=p>(</span><span class=s2>&#34;*a&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--转换成 table</span>\n</span></span><span class=line><span class=cl>  <span class=n>lst</span><span class=o>=</span><span class=n>rslz</span><span class=p>(</span><span class=n>slst</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>lstweb</span><span class=o>=</span><span class=n>rslz</span><span class=p>(</span><span class=n>slstweb</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--2. 新网页加入历史记录</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>add_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>string.len</span><span class=p>(</span><span class=n>webView.getTitle</span><span class=p>())</span><span class=o>&lt;=</span><span class=mi>300</span> <span class=kr>then</span><span class=c1>--粗略过掉无效标题</span>\n</span></span><span class=line><span class=cl>    <span class=n>newtitle</span><span class=o>=</span><span class=n>webView.getTitle</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>newurl</span><span class=o>=</span><span class=n>webView.getUrl</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.insert</span><span class=p>(</span><span class=n>lst</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=n>newtitle</span><span class=p>)</span> <span class=c1>--标题表添加新标题</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.insert</span><span class=p>(</span><span class=n>lstweb</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=n>newurl</span><span class=p>)</span> <span class=c1>--网址表添加新网址</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--3. 存储历史文件</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>save_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--转换成 string</span>\n</span></span><span class=line><span class=cl>  <span class=n>slst</span><span class=o>=</span><span class=n>slz</span><span class=p>(</span><span class=n>lst</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>slstweb</span><span class=o>=</span><span class=n>slz</span><span class=p>(</span><span class=n>lstweb</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--保存</span>\n</span></span><span class=line><span class=cl>  <span class=n>file</span><span class=o>=</span><span class=n>io.open</span><span class=p>(</span><span class=n>lstads</span><span class=p>,</span><span class=s2>&#34;w+&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.output</span><span class=p>(</span><span class=n>file</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.write</span><span class=p>(</span><span class=n>slst</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.flush</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.close</span><span class=p>(</span><span class=n>file</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>file</span><span class=o>=</span><span class=n>io.open</span><span class=p>(</span><span class=n>lstwebads</span><span class=p>,</span><span class=s2>&#34;w+&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.output</span><span class=p>(</span><span class=n>file</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.write</span><span class=p>(</span><span class=n>slstweb</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.flush</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>io.close</span><span class=p>(</span><span class=n>file</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--4. 显示历史记录框</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>show_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>hstshow</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>hl</span><span class=o>=</span><span class=n>AlertDialog.Builder</span><span class=p>(</span><span class=n>activity</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setView</span><span class=p>(</span><span class=n>loadlayout</span><span class=p>(</span><span class=n>hstlayout</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setNegativeButton</span><span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>,</span><span class=n>DialogInterface.OnClickListener</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>onClick</span><span class=o>=</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=p>})</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>create</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>hl.show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>hlst.onItemClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>l</span><span class=p>,</span><span class=n>v</span><span class=p>,</span><span class=n>c</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=err>加载网页</span> <span class=p>(</span><span class=n>lstweb</span><span class=p>[</span><span class=n>b</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>hl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>hlst.onItemLongClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>l</span><span class=p>,</span><span class=n>v</span><span class=p>,</span><span class=n>c</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>hl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span> <span class=err>设置消息</span> <span class=p>(</span><span class=s2>&#34;是否删除记录？&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>show_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;确定&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>table.remove</span><span class=p>(</span><span class=n>lst</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>table.remove</span><span class=p>(</span><span class=n>lstweb</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>save_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>show_hst</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span> <span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span> <span class=err>显示</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=c1>--5. 清除缓存</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>clr</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--导入 File 类</span>\n</span></span><span class=line><span class=cl>  <span class=n>import</span> <span class=s2>&#34;java.io.File&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--显示多选框</span>\n</span></span><span class=line><span class=cl>  <span class=n>items</span><span class=o>=</span><span class=p>{</span><span class=s2>&#34;浏览记录&#34;</span><span class=p>,</span><span class=s2>&#34;缓存文件&#34;</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=err>多选对话框</span><span class=o>=</span><span class=n>AlertDialog.Builder</span><span class=p>(</span><span class=n>this</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setTitle</span><span class=p>(</span><span class=s2>&#34;清除记录&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--勾选后执行</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setPositiveButton</span><span class=p>(</span><span class=s2>&#34;确定&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>if</span> <span class=n>clearhistory</span><span class=o>==</span><span class=mi>1</span> <span class=ow>and</span> <span class=n>clearall</span><span class=o>==</span><span class=mi>1</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>File</span><span class=p>(</span><span class=n>lstads</span><span class=p>).</span><span class=n>delete</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>File</span><span class=p>(</span><span class=n>lstwebads</span><span class=p>).</span><span class=n>delete</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>lst</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>      <span class=n>lstweb</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>      <span class=n>os.execute</span><span class=p>(</span><span class=s2>&#34;pm clear &#34;</span><span class=o>..</span><span class=n>activity.getPackageName</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=kr>elseif</span> <span class=n>clearhistory</span><span class=o>==</span><span class=mi>0</span> <span class=ow>and</span> <span class=n>clearall</span><span class=o>==</span><span class=mi>1</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>os.execute</span><span class=p>(</span><span class=s2>&#34;pm clear &#34;</span><span class=o>..</span><span class=n>activity.getPackageName</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=kr>elseif</span> <span class=n>clearhistory</span><span class=o>==</span><span class=mi>1</span> <span class=ow>and</span> <span class=n>clearall</span><span class=o>==</span><span class=mi>0</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>File</span><span class=p>(</span><span class=n>lstads</span><span class=p>).</span><span class=n>delete</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>File</span><span class=p>(</span><span class=n>lstwebads</span><span class=p>).</span><span class=n>delete</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>lst</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>      <span class=n>lstweb</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>    <span class=kr>else</span> <span class=kr>return</span> <span class=kc>nil</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=c1>--选择事件</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setMultiChoiceItems</span><span class=p>(</span><span class=n>items</span><span class=p>,</span> <span class=kc>nil</span><span class=p>,{</span> <span class=n>onClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>v</span><span class=p>,</span><span class=n>p</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=c1>--清除历史</span>\n</span></span><span class=line><span class=cl>      <span class=kr>if</span> <span class=n>p</span><span class=o>==</span><span class=mi>0</span> <span class=kr>then</span> <span class=n>clearhistory</span><span class=o>=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span>\n</span></span><span class=line><span class=cl>      <span class=c1>--清除缓存</span>\n</span></span><span class=line><span class=cl>      <span class=kr>if</span> <span class=n>p</span><span class=o>==</span><span class=mi>1</span> <span class=kr>then</span> <span class=n>clearall</span><span class=o>=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span><span class=p>})</span>\n</span></span><span class=line><span class=cl>  <span class=err>多选对话框。</span><span class=n>show</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=n>clearhistory</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl>  <span class=n>clearall</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>activity.getWindow</span><span class=p>().</span><span class=n>setSoftInputMode</span><span class=p>(</span><span class=n>WindowManager.LayoutParams</span><span class=p>.</span><span class=n>SOFT_INPUT_ADJUST_RESIZE</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>--11. 长按弹窗</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>popwin</span><span class=p>(</span><span class=n>od</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>win1</span><span class=o>=</span><span class=s2>&#34;向上移动&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>win2</span><span class=o>=</span><span class=s2>&#34;编辑&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>win3</span><span class=o>=</span><span class=s2>&#34;向下移动&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>wina</span><span class=o>=</span><span class=p>{</span><span class=n>win1</span><span class=p>,</span><span class=n>win2</span><span class=p>,</span><span class=n>win3</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>winb</span><span class=o>=</span><span class=p>{</span><span class=n>win2</span><span class=p>,</span><span class=n>win3</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>winc</span><span class=o>=</span><span class=p>{</span><span class=n>win1</span><span class=p>,</span><span class=n>win2</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>od</span><span class=o>==</span><span class=mi>1</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>win</span><span class=o>=</span><span class=n>winb</span>\n</span></span><span class=line><span class=cl>  <span class=kr>elseif</span> <span class=n>od</span><span class=o>==#</span><span class=n>fav</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>win</span><span class=o>=</span><span class=n>winc</span>\n</span></span><span class=line><span class=cl>  <span class=kr>else</span>\n</span></span><span class=line><span class=cl>    <span class=n>win</span><span class=o>=</span><span class=n>wina</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>winlayout</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;vertical&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=n>ListView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>id</span><span class=o>=</span><span class=s2>&#34;winlv&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>items</span><span class=o>=</span><span class=n>win</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill_parent&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,},</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=n>winl</span><span class=o>=</span><span class=n>AlertDialog.Builder</span><span class=p>(</span><span class=n>activity</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setView</span><span class=p>(</span><span class=n>loadlayout</span><span class=p>(</span><span class=n>winlayout</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>create</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>winl.show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>winlv.onItemClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>l</span><span class=p>,</span><span class=n>v</span><span class=p>,</span><span class=n>c</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>if</span> <span class=n>win</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>==</span><span class=n>win1</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>fl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>upfav</span><span class=p>(</span><span class=n>od</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>elseif</span> <span class=n>win</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>==</span><span class=n>win2</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>fl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>show_efav</span><span class=p>(</span><span class=n>od</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>elseif</span> <span class=n>win</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>==</span><span class=n>win3</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=n>fl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>downfav</span><span class=p>(</span><span class=n>od</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=n>winl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>downfav</span><span class=p>(</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=n>b</span><span class=o>~=#</span><span class=n>fav</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>dfav</span><span class=o>=</span><span class=n>fav</span><span class=p>[</span><span class=n>b</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=n>dfavweb</span><span class=o>=</span><span class=n>favweb</span><span class=p>[</span><span class=n>b</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.remove</span><span class=p>(</span><span class=n>fav</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.remove</span><span class=p>(</span><span class=n>favweb</span><span class=p>,</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.insert</span><span class=p>(</span><span class=n>fav</span><span class=p>,</span><span class=n>b</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dfav</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.insert</span><span class=p>(</span><span class=n>favweb</span><span class=p>,</span><span class=n>b</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dfavweb</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>save_fav</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>show_fav</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>--加入收藏</span>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>getAllData</span><span class=p>(</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>data</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>for</span> <span class=n>d</span> <span class=kr>in</span> <span class=n>each</span><span class=p>(</span><span class=n>this.getApplicationContext</span><span class=p>().</span><span class=n>getSharedPreferences</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=mi>0</span><span class=p>).</span><span class=n>getAll</span><span class=p>().</span><span class=n>entrySet</span><span class=p>())</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>    <span class=n>data</span><span class=p>[</span><span class=n>d.getKey</span><span class=p>()]</span><span class=o>=</span><span class=n>d.getValue</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>data</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>getData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>key</span><span class=p>,</span><span class=n>MzI1NTI3MzI</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>data</span><span class=o>=</span><span class=n>this.getApplicationContext</span><span class=p>().</span><span class=n>getSharedPreferences</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=mi>0</span><span class=p>).</span><span class=n>getString</span><span class=p>(</span><span class=n>key</span><span class=p>,</span><span class=kc>nil</span><span class=p>)</span><span class=c1>--325-5273-2</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>data</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>putData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>key</span><span class=p>,</span><span class=n>value</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>this.getApplicationContext</span><span class=p>().</span><span class=n>getSharedPreferences</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=mi>0</span><span class=p>).</span><span class=n>edit</span><span class=p>().</span><span class=n>putString</span><span class=p>(</span><span class=n>key</span><span class=p>,</span><span class=n>value</span><span class=p>).</span><span class=n>apply</span><span class=p>()</span><span class=c1>--3255-2732</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>removeData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>key</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>this.getApplicationContext</span><span class=p>().</span><span class=n>getSharedPreferences</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=mi>32552732</span><span class=o>*</span><span class=mi>0</span><span class=p>).</span><span class=n>edit</span><span class=p>().</span><span class=n>remove</span><span class=p>(</span><span class=n>key</span><span class=p>).</span><span class=n>apply</span><span class=p>()</span><span class=cm>--[[3(2)6?5{2}2[7]32]]</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>listKeys</span><span class=p>(</span><span class=n>data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>keys</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=n>emmm</span><span class=o>=</span><span class=mi>24411107</span><span class=o>+</span><span class=mi>8236000</span><span class=o>+</span><span class=mi>236</span><span class=o>-</span><span class=mi>95463</span><span class=o>+</span><span class=mi>852</span>\n</span></span><span class=line><span class=cl>  <span class=kr>for</span> <span class=n>k</span><span class=p>,</span><span class=n>v</span> <span class=kr>in</span> <span class=n>pairs</span><span class=p>(</span><span class=n>data</span><span class=p>)</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>    <span class=n>keys</span><span class=p>[</span><span class=o>#</span><span class=n>keys</span><span class=o>+</span><span class=mi>1</span><span class=p>]</span><span class=o>=</span><span class=n>k</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>keys</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>listValues</span><span class=p>(</span><span class=n>data</span><span class=p>,</span><span class=n>MzI1NTI3MzI</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>values</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>for</span> <span class=n>k</span><span class=p>,</span><span class=n>v</span> <span class=kr>in</span> <span class=n>pairs</span><span class=p>(</span><span class=n>data</span><span class=p>)</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>    <span class=n>values</span><span class=p>[</span><span class=o>#</span><span class=n>values</span><span class=o>+</span><span class=mi>1</span><span class=p>]</span><span class=o>=</span><span class=n>v</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>q</span><span class=o>=</span><span class=s2>&#34;325 52732&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>values</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>adapterData</span><span class=p>(</span><span class=n>data</span><span class=p>,</span><span class=n>jdpuk</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>adpd</span><span class=o>=</span><span class=p>{}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>for</span> <span class=n>d</span> <span class=kr>in</span> <span class=n>pairs</span><span class=p>(</span><span class=n>data</span><span class=p>)</span> <span class=kr>do</span>\n</span></span><span class=line><span class=cl>    <span class=n>table.insert</span><span class=p>(</span><span class=n>adpd</span><span class=p>,{</span>\n</span></span><span class=line><span class=cl>      <span class=n>text</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>Text</span><span class=o>=</span><span class=n>tostring</span><span class=p>(</span><span class=n>data</span><span class=p>[</span><span class=n>d</span><span class=p>]),</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>})</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>return</span> <span class=n>adpd</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>local</span> <span class=n>listlayout</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>ListView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>id</span><span class=o>=</span><span class=s2>&#34;list&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_marginTop</span><span class=o>=</span><span class=s2>&#34;10dp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--items={&#34;3&#34;,&#34;2&#34;,&#34;5&#34;,&#34;5&#34;,&#34;2&#34;,&#34;7&#34;,&#34;3&#34;,&#34;2&#34;},</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_height</span><span class=o>=</span><span class=s2>&#34;wrap_content&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>local</span> <span class=n>inputlayout</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;vertical&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>Focusable</span><span class=o>=</span><span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>FocusableInTouchMode</span><span class=o>=</span><span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>EditText</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>id</span><span class=o>=</span><span class=s2>&#34;edit&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>hint</span><span class=o>=</span><span class=s2>&#34;Input here&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_marginTop</span><span class=o>=</span><span class=s2>&#34;5dp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;80%w&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--uh=&#34;32552732&#34;,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>local</span> <span class=n>input2layout</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;vertical&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>Focusable</span><span class=o>=</span><span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=n>FocusableInTouchMode</span><span class=o>=</span><span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>EditText</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>id</span><span class=o>=</span><span class=s2>&#34;edit1&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>hint</span><span class=o>=</span><span class=s2>&#34;Input here&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--numa=&#34;32552&#34;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--aaa=&#34;bbb&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_marginTop</span><span class=o>=</span><span class=s2>&#34;5dp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;80%w&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>EditText</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>id</span><span class=o>=</span><span class=s2>&#34;edit2&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--ccc=&#34;ddd&#34;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--numb=&#34;732&#34;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>--eee=&#34;fff&#34;,</span>\n</span></span><span class=line><span class=cl>    <span class=n>hint</span><span class=o>=</span><span class=s2>&#34;Input here&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_margiTop</span><span class=o>=</span><span class=s2>&#34;5dp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;80%w&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>showDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>,</span><span class=n>jdpuk</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>data</span><span class=o>=</span><span class=n>getAllData</span><span class=p>(</span><span class=n>name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>keys</span><span class=o>=</span><span class=n>listKeys</span><span class=p>(</span><span class=n>data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>values</span><span class=o>=</span><span class=n>listValues</span><span class=p>(</span><span class=n>data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=n>item</span><span class=o>=</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>LinearLayout</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>orientation</span><span class=o>=</span><span class=s2>&#34;vertical&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>TextView</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>id</span><span class=o>=</span><span class=s2>&#34;text&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>textSize</span><span class=o>=</span><span class=s2>&#34;16sp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_margin</span><span class=o>=</span><span class=s2>&#34;10dp&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;fill&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_width</span><span class=o>=</span><span class=s2>&#34;70%w&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=n>layout_gravity</span><span class=o>=</span><span class=s2>&#34;center&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>adpd</span><span class=o>=</span><span class=n>adapterData</span><span class=p>(</span><span class=n>values</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>items</span><span class=o>=</span><span class=n>LuaAdapter</span><span class=p>(</span><span class=n>this</span><span class=p>,</span><span class=n>adpd</span><span class=p>,</span><span class=n>item</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>dlb</span><span class=o>=</span><span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>dlb</span><span class=p>.</span> <span class=err>设置标题</span> <span class=p>(</span><span class=n>title</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kd>local</span> <span class=n>dl</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span> <span class=o>#</span><span class=n>keys</span><span class=o>&gt;</span><span class=mi>0</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>dlb.setView</span><span class=p>(</span><span class=n>loadlayout</span><span class=p>(</span><span class=n>listlayout</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=n>list.setDividerHeight</span><span class=p>(</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>list.Adapter</span><span class=o>=</span><span class=n>items</span>\n</span></span><span class=line><span class=cl>    <span class=n>list.onItemClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>adp</span><span class=p>,</span><span class=n>view</span><span class=p>,</span><span class=n>position</span><span class=p>,</span><span class=n>id</span><span class=p>)</span><span class=c1>--3255273 2</span>\n</span></span><span class=line><span class=cl>      <span class=n>webView.loadUrl</span><span class=p>(</span><span class=n>keys</span><span class=p>[</span><span class=n>id</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>      <span class=kr>if</span> <span class=n>dl</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>        <span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=n>list.onItemLongClick</span><span class=o>=</span><span class=kr>function</span><span class=p>(</span><span class=n>adp</span><span class=p>,</span><span class=n>view</span><span class=p>,</span><span class=n>pos</span><span class=p>,</span><span class=n>id</span><span class=p>)</span><span class=c1>--325 52732</span>\n</span></span><span class=line><span class=cl>      <span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>设置标题</span> <span class=p>(</span><span class=n>title</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=n>setView</span><span class=p>(</span><span class=n>loadlayout</span><span class=p>(</span><span class=n>input2layout</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;保存&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span><span class=c1>--32552732</span>\n</span></span><span class=line><span class=cl>        <span class=kr>if</span> <span class=ow>not</span><span class=p>(</span><span class=n>edit1.text</span><span class=o>==</span><span class=s2>&#34;&#34;</span><span class=p>)</span> <span class=ow>and</span> <span class=ow>not</span><span class=p>(</span><span class=n>edit2.text</span><span class=o>==</span><span class=s2>&#34;&#34;</span><span class=p>)</span> <span class=ow>or</span> <span class=mi>3255</span><span class=o>==</span><span class=mi>2732</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>          <span class=n>removeData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>keys</span><span class=p>[</span><span class=n>id</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>          <span class=n>putData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>edit2.text</span><span class=p>,</span><span class=n>edit1.text</span><span class=p>)</span><span class=c1>--32552732</span>\n</span></span><span class=line><span class=cl>          <span class=kr>if</span> <span class=n>dl</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>            <span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>            <span class=n>showDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=kr>end</span>\n</span></span><span class=line><span class=cl>        <span class=kr>else</span>\n</span></span><span class=line><span class=cl>          <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;请填写所有字段&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=kr>end</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>设置中立按钮</span> <span class=p>(</span><span class=s2>&#34;删除&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=n>removeData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>keys</span><span class=p>[</span><span class=n>id</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>items.remove</span><span class=p>(</span><span class=n>pos</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>table.remove</span><span class=p>(</span><span class=n>keys</span><span class=p>,</span><span class=n>id</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>table.remove</span><span class=p>(</span><span class=n>values</span><span class=p>,</span><span class=n>id</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=kr>if</span> <span class=o>#</span><span class=n>adpd</span><span class=o>&lt;=</span><span class=mi>0</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>          <span class=kr>if</span> <span class=n>dl</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>            <span class=n>dl.dismiss</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>            <span class=n>showDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=kr>end</span>\n</span></span><span class=line><span class=cl>        <span class=kr>end</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span> <span class=err>显示</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=n>edit1.setHint</span><span class=p>(</span><span class=s2>&#34;标题&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>edit2.setHint</span><span class=p>(</span><span class=s2>&#34;链接&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>edit1.setText</span><span class=p>(</span><span class=n>values</span><span class=p>[</span><span class=n>id</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>      <span class=n>edit2.setText</span><span class=p>(</span><span class=n>keys</span><span class=p>[</span><span class=n>id</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>      <span class=kr>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>else</span>\n</span></span><span class=line><span class=cl>    <span class=n>dlb</span><span class=p>.</span> <span class=err>设置消息</span> <span class=p>(</span><span class=s2>&#34;没有收藏&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=n>dlb</span><span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;新建收藏&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span><span class=n>addDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=s2>&#34;新建收藏&#34;</span><span class=p>)</span><span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>dl</span><span class=o>=</span><span class=n>dlb.show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>function</span> <span class=nf>addDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>,</span><span class=n>value</span><span class=p>,</span><span class=n>key</span><span class=p>)</span><span class=c1>--32552732</span>\n</span></span><span class=line><span class=cl>  <span class=err>对话框</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span> <span class=err>设置标题</span> <span class=p>(</span><span class=n>title</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=n>setView</span><span class=p>(</span><span class=n>loadlayout</span><span class=p>(</span><span class=n>input2layout</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span> <span class=err>设置积极按钮</span> <span class=p>(</span><span class=s2>&#34;保存&#34;</span><span class=p>,</span><span class=kr>function</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=kr>if</span> <span class=ow>not</span><span class=p>(</span><span class=n>edit1.text</span><span class=o>==</span><span class=s2>&#34;&#34;</span><span class=p>)</span> <span class=ow>and</span> <span class=ow>not</span><span class=p>(</span><span class=n>edit2.text</span><span class=o>==</span><span class=s2>&#34;&#34;</span><span class=p>)</span> <span class=ow>or</span> <span class=mi>325</span><span class=o>==</span><span class=mi>52732</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>      <span class=kr>if</span> <span class=ow>not</span> <span class=n>getData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>edit2.text</span><span class=p>)</span> <span class=kr>then</span>\n</span></span><span class=line><span class=cl>        <span class=n>putData</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>edit2.text</span><span class=p>,</span><span class=n>edit1.text</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=kr>else</span>\n</span></span><span class=line><span class=cl>        <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;该链接已存在&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>addDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>,</span><span class=n>edit1.text</span><span class=p>,</span><span class=n>edit2.text</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=kr>end</span>\n</span></span><span class=line><span class=cl>    <span class=kr>else</span>\n</span></span><span class=line><span class=cl>      <span class=err>弹出消息</span> <span class=p>(</span><span class=s2>&#34;请填写所有字段&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>addDataDialog</span><span class=p>(</span><span class=n>name</span><span class=p>,</span><span class=n>title</span><span class=p>,</span><span class=n>edit1.text</span><span class=p>,</span><span class=n>edit2.text</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span> <span class=err>设置消极按钮</span> <span class=p>(</span><span class=s2>&#34;取消&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span> <span class=err>显示</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=n>edit1.setHint</span><span class=p>(</span><span class=s2>&#34;标题&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>edit2.setHint</span><span class=p>(</span><span class=s2>&#34;链接&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span><span class=p>(</span><span class=n>value</span><span class=p>)</span><span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>edit1.setText</span><span class=p>(</span><span class=n>value</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl>  <span class=kr>if</span><span class=p>(</span><span class=n>key</span><span class=p>)</span><span class=kr>then</span>\n</span></span><span class=line><span class=cl>    <span class=n>edit2.setText</span><span class=p>(</span><span class=n>key</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>end</span>\n</span></span><span class=line><span class=cl><span class=kr>end</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/fas-app/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/fas-app.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/fas-app.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%8D%9A%E6%8E%A1%E7%9C%BE%E9%95%B7+app&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%8D%9A%E6%8E%A1%E7%9C%BE%E9%95%B7+app%7c%0A%7cURL%7chttps://lruihao.cn/posts/fas-app/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/fas-app.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/fas-app/ data-title=\"博採眾長 App\" data-hashtags=lua,fusion><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/fas-app/ data-hashtag=lua><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/fas-app/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/fas-app/ data-title=\"博採眾長 App\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/fas-app/ data-title=\"博採眾長 App\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/lua/ class=post-tag title=\"标签 - lua\">lua</a><a href=/tags/fusion/ class=post-tag title=\"标签 - fusion\">fusion</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/caddy-file/ class=post-nav-item rel=prev title=Caddy-两步搭建超简单云盘><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Caddy-两步搭建超简单云盘</a><a href=/posts/commit-bat/ class=post-nav-item rel=next title=\"通过 Bat 批处理文件自动提交博客代码\">通过 Bat 批处理文件自动提交博客代码<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#介绍>介绍</a></li><li><a href=#下载>下载</a></li><li><a href=#部分源码>部分源码</a><ol><li><a href=#检测更新>检测更新</a></li><li><a href=#方向锁定>方向锁定</a></li><li><a href=#程序启动事件>程序启动事件</a></li></ol></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3ab7b3c0725dcbca5991bf242eb9b0d6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3ab7b3c0725dcbca5991bf242eb9b0d6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/fas-app/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/fas-app/index.md",
    "content": "# 博採眾長 App\n\n\n### 介绍\n\n使用 fusion app 对网页进行的封装。  \n功能：\n\n- 浏览本博客，主页\n- 私人网盘\n- 2048 等小游戏\n- 在线客服，QQ 等\n- pc 与移动浏览器标识切换\n- 留言，打赏，博主日志等\n- 分享功能，分享到 QQ，微信，浏览器打开等\n- app 内添加书签，自动记录历史记录，刷新等\n- **配合博客的`PWA + quicklink`功能可实现离线浏览**\n<!--more-->\n\n### 下载\n\n> ~~app 内也可以更新，不过就我自己用，懒得更新。~~\n\n- [百度云，密码：479l](https://pan.baidu.com/s/19jOvnNhssF302Mi1GRa2Sw)\n- [github 下载](https://github.com/Lruihao/Blog_fas_apk)\n\n**PWA 应用**\n\n1. 地址栏输入：Chrome://flags\n2. 搜索并启用以下项目：Desktop PWAs（桌面 PWAs)、App Banners（应用横幅）、Experimental App Banners（实验性应用横幅）\n3. 重启浏览器使修改的设置生效\n4. 点击地址栏最右边按钮\n5. 安装“博採眾長”\n\n### 部分源码\n\n> 看到这些中文的函数总觉得怪怪的哈哈哈 😂\n> 语言：`lua`\n\n#### 检测更新\n\n```lua\n--检查测当前是否最新版本\nlocal dl=ProgressDialog.show(activity,nil,'更新检测中…')\ndl.show()\nlocal tt=Ticker()\ntt.start()\npackinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)\nversion=tostring(packinfo.versionName)\nversioncode=tostring(packinfo.versionCode)\n\nurl=\"https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2\";\nfunction 过滤 (content)\n  版本名=content:match(\"【版本名】(.-)【版本名】\")\n  版本=content:match(\"【版本】(.-)【版本】\")\n  内容=content:match(\"【内容】(.-)【内容】\")\n  链接=content:match(\"【链接】(.-)【链接】\")\nif（版本名==nil) then\n  版本名=\"获取失败\"\nend\nif（版本==nil) then\n  版本=\"0\"\nend\nif（内容==nil) then\n  内容=\"获取失败\"\nend\nif（链接==nil) then\n  弹出消息 (\"服务器参数配置错误，请过段时间再次尝试\")\nend\n\nif（版本 > versioncode) then\n  dl.dismiss()\n    tt.stop()\n对话框 ()\n. 设置标题 (\"检测到更新\")\n. 设置消息 (\"版本：\"..version..\"→\".. 版本名。.\"\\n 更新内容：\".. 内容）\n. 设置积极按钮 (\"下载更新\",function()\n  下载文件（链接）\n  弹出消息 (\"下载更新中…\")\nend)\n. 设置消极按钮 (\"取消更新\")\n. 显示 ()\nelse\ndl.dismiss()\n    tt.stop()\n弹出消息 (\"当前已是最新版本！\")\nend\nHttp.get(url,nil,\"UTF-8\",nil,function(code,content,cookie,header)\n  if(code==200 and content)then\n    content=content:match(\"\\\"html_content\\\":(.-),\"):gsub(\"\\\\u003C/?.-%>\",\"\"):gsub(\"\\\\\\\\\",\"&revs;\"):gsub(\"\\\\n\",\"\\n\"):gsub(\"&nbsp;\",\" \"):gsub(\"&lt;\",\"<\"):gsub(\"&gt;\",\">\"):gsub(\"&quot;\",\"\\\"\"):gsub(\"&apos;\",\"'\"):gsub(\"&revs;\",\"\\\\\"):gsub(\"&amp;\",\"&\");\n    过滤 (content)\n  else\n  dl.dismiss()\n    tt.stop()\n     弹出消息 (\"本地网络或服务器异常 \"..code)\n  end\nend)\n```\n\n#### 方向锁定\n\n```lua\n--flag 在程序启动事件声明的全局变量\nif flag==1 then\n  activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);\n  SetHSP=\"H\"\nelse\n  SetHSP=nil\nend\n\nif SetHSP==nil then\n  --竖屏锁定\n  activity.setRequestedOrientation(1);\n  flag=1\nelse\n  flag=0\nend\n```\n\n#### 程序启动事件\n\n```lua\n弹出消息 (\"©2018 李瑞豪\")\n\n--自动，由物理感应器决定\nimport \"android.content.pm.ActivityInfo\"\nflag=1\n\n--程序退出时执行对话框\nfunction onKeyDown(key,event)\n  if(key==4)then\n    if(webView.canGoBack())then\n      webView.goBack()\n    else\n      appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0)\n      applabel=this.getPackageManager().getApplicationLabel(appinfo)\n      退出确认=对话框 ()\n      . 设置消息 (\"您确定要退出 \"..applabel..\" 吗？\")\n      退出按钮={\n        [1]=function()\n          退出确认\n          . 设置积极按钮 (\"确认\",function()\n            退出程序 ()\n            end\n             )\n             . 设置中立按钮 (\"清除缓存\",function()\n               对话框 ()\n               . 设置消息 (\"清除缓存后再次运行程序将变得缓慢、n 您确定要清除 \"..applabel..\" 的缓存吗？\")\n               . 设置积极按钮 (\"确定\",function()\n                os.execute(\"pm clear \"..this.packageName)\n                退出程序 ()\n                end)\n               . 设置消极按钮 (\"取消\",function()\n                end)\n              . 显示 ()\n             end\n           )\n          . 设置消极按钮 (\"取消\")\n          end\n        }\n      math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 6)))\n      退出按钮 [math.random(1,1)]()\n      退出确认。show()\n    end\n    return true\n  end\nend\n\n--历史记录\nlstads=\"/data/data/\"..activity.getPackageName()..\"/lst.lua\"\nlstwebads=\"/data/data/\"..activity.getPackageName()..\"/lstweb.lua\"\n--2. 序列化\nfunction slz(obj)\n  local lua = \"\"\n  local t = type(obj)\n  if t == \"number\" then\n    lua = lua .. obj\n  elseif t == \"boolean\" then\n    lua = lua .. tostring(obj)\n  elseif t == \"string\" then\n    lua = lua .. string.format(\"%q\", obj)\n  elseif t == \"table\" then\n    lua = lua .. \"{\\n\"\n    for k, v in pairs(obj) do\n      lua = lua .. \"[\" .. slz(k) .. \"]=\" .. slz(v) .. \",\\n\"\n    end\n    local metatable = getmetatable(obj)\n    if metatable ~= nil and type(metatable.__index) == \"table\" then\n      for k, v in pairs(metatable.__index) do\n        lua = lua .. \"[\" .. slz(k) .. \"]=\" .. slz(v) .. \",\\n\"\n      end\n    end\n    lua = lua .. \"}\"\n  elseif t == \"nil\" then\n    return nil\n  else\n    error(\"can not serialize a \" .. t .. \" type.\")\n  end\n  return lua\nend\nfunction rslz(lua)\n  local t = type(lua)\n  if t == \"nil\" or lua == \"\" then\n    return {}\n  elseif t == \"number\" or t == \"string\" or t == \"boolean\" then\n    lua = tostring(lua)\n  else\n    error(\"can not unserialize a \" .. t .. \" type.\")\n  end\n  lua = \"return \" .. lua\n  local func = loadstring(lua)\n  if func == nil then\n    return nil\n  end\n  return func()\nend\n\n--3. 历史记录框布局\nfunction hstshow()\n  hstlayout={\n    LinearLayout,\n    orientation=\"1\",\n    gravity=\"center\",\n    layout_width=\"wrap_content\",\n    layout_height=\"wrap_content\",\n    {\n      TextView,\n      text=\"\",\n      gravity=\"center\",\n      layout_width=\"wrap_content\",\n      textSize=\"0sp\",\n      background=\"#000000\",\n      layout_height=\"15dp\",},\n    {\n      TextView,\n      text=\"历史记录\",\n      gravity=\"center\",\n      layout_width=\"wrap_content\",\n      textSize=\"30sp\",\n      textStyle=\"bold\",\n      layout_height=\"50dp\",},\n    {\n      ListView,\n      id=\"hlst\",\n      items=lst,\n      layout_width=\"fill\",\n      layout_height=\"wrap_content\",\n    },\n  }\nend\n\n--##功能函数##\n\n--1. 读取历史文件\nfunction read_hst()\n  import \"java.io.File\"\n  File(lstads).createNewFile()\n  slst=io.open(lstads):read(\"*a\")\n  File(lstwebads).createNewFile()\n  slstweb=io.open(lstwebads):read(\"*a\")\n  --转换成 table\n  lst=rslz(slst)\n  lstweb=rslz(slstweb)\nend\n\n--2. 新网页加入历史记录\nfunction add_hst()\n  if string.len(webView.getTitle())<=300 then--粗略过掉无效标题\n    newtitle=webView.getTitle()\n    newurl=webView.getUrl()\n    table.insert(lst,1,newtitle) --标题表添加新标题\n    table.insert(lstweb,1,newurl) --网址表添加新网址\n  end\nend\n\n--3. 存储历史文件\nfunction save_hst()\n  --转换成 string\n  slst=slz(lst)\n  slstweb=slz(lstweb)\n  --保存\n  file=io.open(lstads,\"w+\")\n  io.output(file)\n  io.write(slst)\n  io.flush()\n  io.close(file)\n  file=io.open(lstwebads,\"w+\")\n  io.output(file)\n  io.write(slstweb)\n  io.flush()\n  io.close(file)\nend\n\n--4. 显示历史记录框\nfunction show_hst()\n  hstshow()\n  local hl=AlertDialog.Builder(activity)\n  .setView(loadlayout(hstlayout))\n  .setNegativeButton(\"取消\",DialogInterface.OnClickListener{\n    onClick=function()\n    end\n  })\n  .create()\n  hl.show()\n  hlst.onItemClick=function(l,v,c,b)\n    加载网页 (lstweb[b])\n    hl.dismiss()\n  end\n  hlst.onItemLongClick=function(l,v,c,b)\n    hl.dismiss()\n    对话框 ()\n    . 设置消息 (\"是否删除记录？\")\n    . 设置消极按钮 (\"取消\",function()\n      show_hst()\n    end)\n    . 设置积极按钮 (\"确定\",function()\n      table.remove(lst,b)\n      table.remove(lstweb,b)\n      save_hst()\n      show_hst()\n    end )\n    . 显示 ()\n    return true\n  end\nend\n--5. 清除缓存\nfunction clr()\n  --导入 File 类\n  import \"java.io.File\"\n  --显示多选框\n  items={\"浏览记录\",\"缓存文件\"}\n  多选对话框=AlertDialog.Builder(this)\n  .setTitle(\"清除记录\")\n  --勾选后执行\n  .setPositiveButton(\"确定\",function()\n    if clearhistory==1 and clearall==1 then\n      File(lstads).delete()\n      File(lstwebads).delete()\n      lst={}\n      lstweb={}\n      os.execute(\"pm clear \"..activity.getPackageName())\n    elseif clearhistory==0 and clearall==1 then\n      os.execute(\"pm clear \"..activity.getPackageName())\n    elseif clearhistory==1 and clearall==0 then\n      File(lstads).delete()\n      File(lstwebads).delete()\n      lst={}\n      lstweb={}\n    else return nil\n    end\n  end)\n  --选择事件\n  .setMultiChoiceItems(items, nil,{ onClick=function(v,p)\n      --清除历史\n      if p==0 then clearhistory=1\n      end\n      --清除缓存\n      if p==1 then clearall=1\n      end\n    end})\n  多选对话框。show();\n  clearhistory=0\n  clearall=0\nend\n\nactivity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);\n--11. 长按弹窗\nfunction popwin(od)\n  local win1=\"向上移动\"\n  local win2=\"编辑\"\n  local win3=\"向下移动\"\n  local wina={win1,win2,win3}\n  local winb={win2,win3}\n  local winc={win1,win2}\n  if od==1 then\n    win=winb\n  elseif od==#fav then\n    win=winc\n  else\n    win=wina\n  end\n  winlayout={\n    LinearLayout,\n    orientation=\"vertical\",\n    {ListView,\n      id=\"winlv\",\n      items=win,\n      layout_width=\"fill_parent\",\n      layout_height=\"wrap_content\",},\n  }\n  winl=AlertDialog.Builder(activity)\n  .setView(loadlayout(winlayout))\n  .create()\n  winl.show()\n  winlv.onItemClick=function(l,v,c,b)\n    if win[b]==win1 then\n      fl.dismiss()\n      upfav(od)\n    elseif win[b]==win2 then\n      fl.dismiss()\n      show_efav(od)\n    elseif win[b]==win3 then\n      fl.dismiss()\n      downfav(od)\n    end\n    winl.dismiss()\n  end\nend\nfunction downfav(b)\n  if b~=#fav then\n    dfav=fav[b]\n    dfavweb=favweb[b]\n    table.remove(fav,b)\n    table.remove(favweb,b)\n    table.insert(fav,b+1,dfav)\n    table.insert(favweb,b+1,dfavweb)\n  end\n  save_fav()\n  show_fav()\nend\n\n--加入收藏\nfunction getAllData(name)\n  local data={}\n  for d in each(this.getApplicationContext().getSharedPreferences(name,0).getAll().entrySet()) do\n    data[d.getKey()]=d.getValue()\n  end\n  return data\nend\n\nfunction getData(name,key,MzI1NTI3MzI)\n  local data=this.getApplicationContext().getSharedPreferences(name,0).getString(key,nil)--325-5273-2\n  return data\nend\n\nfunction putData(name,key,value)\n  this.getApplicationContext().getSharedPreferences(name,0).edit().putString(key,value).apply()--3255-2732\n  return true\nend\n\nfunction removeData(name,key)\n  this.getApplicationContext().getSharedPreferences(name,32552732*0).edit().remove(key).apply()--[[3(2)6?5{2}2[7]32]]\n  return true\nend\n\nfunction listKeys(data)\n  keys={}\n  emmm=24411107+8236000+236-95463+852\n  for k,v in pairs(data) do\n    keys[#keys+1]=k\n  end\n  return keys\nend\n\nfunction listValues(data,MzI1NTI3MzI)\n  values={}\n  for k,v in pairs(data) do\n    values[#values+1]=v\n  end\n  q=\"325 52732\"\n  return values\nend\n\nfunction adapterData(data,jdpuk)\n  adpd={}\n  for d in pairs(data) do\n    table.insert(adpd,{\n      text={\n        Text=tostring(data[d]),\n      },\n    })\n  end\n  return adpd\nend\n\nlocal listlayout={\n  LinearLayout,\n  orientation=\"1\",\n  layout_width=\"fill\",\n  layout_height=\"wrap_content\",\n  {\n    ListView,\n    id=\"list\",\n    layout_marginTop=\"10dp\",\n    --items={\"3\",\"2\",\"5\",\"5\",\"2\",\"7\",\"3\",\"2\"},\n    layout_width=\"fill\",\n    layout_height=\"wrap_content\",\n  }\n}\n\nlocal inputlayout={\n  LinearLayout,\n  orientation=\"vertical\",\n  Focusable=true,\n  FocusableInTouchMode=true,\n  {\n    EditText,\n    id=\"edit\",\n    hint=\"Input here\",\n    layout_marginTop=\"5dp\",\n    layout_width=\"80%w\",\n    --uh=\"32552732\",\n    layout_gravity=\"center\",\n  },\n}\n\nlocal input2layout={\n  LinearLayout,\n  orientation=\"vertical\",\n  Focusable=true,\n  FocusableInTouchMode=true,\n  {\n    EditText,\n    id=\"edit1\",\n    hint=\"Input here\",\n    --numa=\"32552\",\n    --aaa=\"bbb\"\n    layout_marginTop=\"5dp\",\n    layout_width=\"80%w\",\n    layout_gravity=\"center\",\n  },\n  {\n    EditText,\n    id=\"edit2\",\n    --ccc=\"ddd\",\n    --numb=\"732\",\n    --eee=\"fff\",\n    hint=\"Input here\",\n    layout_margiTop=\"5dp\",\n    layout_width=\"80%w\",\n    layout_gravity=\"center\",\n  },\n}\n\nfunction showDataDialog(name,title,jdpuk)\n\n  local data=getAllData(name)\n  local keys=listKeys(data)\n  local values=listValues(data)\n\n  item={\n    LinearLayout,\n    orientation=\"vertical\",\n    layout_width=\"fill\",\n    {\n      TextView,\n      id=\"text\",\n      textSize=\"16sp\",\n      layout_margin=\"10dp\",\n      layout_width=\"fill\",\n      layout_width=\"70%w\",\n      layout_gravity=\"center\",\n    },\n  }\n\n  local adpd=adapterData(values)\n  local items=LuaAdapter(this,adpd,item)\n\n  local dlb=对话框 ()\n  dlb. 设置标题 (title)\n  local dl\n  if #keys>0 then\n    dlb.setView(loadlayout(listlayout))\n    list.setDividerHeight(0)\n    list.Adapter=items\n    list.onItemClick=function(adp,view,position,id)--3255273 2\n      webView.loadUrl(keys[id])\n      if dl then\n        dl.dismiss()\n      end\n    end\n    list.onItemLongClick=function(adp,view,pos,id)--325 52732\n      对话框 ()\n      . 设置标题 (title)\n      .setView(loadlayout(input2layout))\n      . 设置积极按钮 (\"保存\",function()--32552732\n        if not(edit1.text==\"\") and not(edit2.text==\"\") or 3255==2732 then\n          removeData(name,keys[id])\n          putData(name,edit2.text,edit1.text)--32552732\n          if dl then\n            dl.dismiss()\n            showDataDialog(name,title)\n          end\n        else\n          弹出消息 (\"请填写所有字段\")\n        end\n      end)\n      . 设置消极按钮 (\"取消\")\n      . 设置中立按钮 (\"删除\",function()\n        removeData(name,keys[id])\n        items.remove(pos)\n        table.remove(keys,id)\n        table.remove(values,id)\n        if #adpd<=0 then\n          if dl then\n            dl.dismiss()\n            showDataDialog(name,title);\n          end\n        end\n      end)\n      . 显示 ()\n      edit1.setHint(\"标题\")\n      edit2.setHint(\"链接\")\n      edit1.setText(values[id])\n      edit2.setText(keys[id])\n      return true\n    end\n  else\n    dlb. 设置消息 (\"没有收藏\")\n  end\n  dlb. 设置积极按钮 (\"新建收藏\",function()addDataDialog(name,\"新建收藏\")end)\n  dl=dlb.show()\nend\n\nfunction addDataDialog(name,title,value,key)--32552732\n  对话框 ()\n  . 设置标题 (title)\n  .setView(loadlayout(input2layout))\n  . 设置积极按钮 (\"保存\",function()\n    if not(edit1.text==\"\") and not(edit2.text==\"\") or 325==52732 then\n      if not getData(name,edit2.text) then\n        putData(name,edit2.text,edit1.text)\n      else\n        弹出消息 (\"该链接已存在\")\n        addDataDialog(name,title,edit1.text,edit2.text)\n      end\n    else\n      弹出消息 (\"请填写所有字段\")\n      addDataDialog(name,title,edit1.text,edit2.text)\n    end\n  end)\n  . 设置消极按钮 (\"取消\")\n  . 显示 ()\n  edit1.setHint(\"标题\")\n  edit2.setHint(\"链接\")\n  if(value)then\n    edit1.setText(value)\n  end\n  if(key)then\n    edit2.setText(key)\n  end\nend\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/fas-app/  \n\n"
  },
  {
    "path": "posts/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"所有文章 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"},{\"title\":\"Code Playground\",\"date_published\":\"2025-08-04T11:37:24&#43;08:00\",\"date_modified\":\"2025-08-27T12:30:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/code-playground/\",\"url\":\"https://lruihao.cn/posts/code-playground/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"npm\"],\"summary\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\n\",\"content_html\":\"\\u003cp\\u003e以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\u003c/p\\u003e\"},{\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"date_published\":\"2025-06-18T10:35:47&#43;08:00\",\"date_modified\":\"2025-06-18T12:41:26&#43;08:00\",\"id\":\"https://lruihao.cn/posts/at-layer/\",\"url\":\"https://lruihao.cn/posts/at-layer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"@layer\"],\"summary\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\\n\",\"content_html\":\"\\u003cp\\u003e在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 \\u003ccode\\u003e@layer\\u003c/code\\u003e 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 \\u003ccode\\u003e@layer\\u003c/code\\u003e 的背景、作用以及语法，带你一探究竟。\\u003c/p\\u003e\"},{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"},{\"title\":\"CSS Flexbox 布局指南\",\"date_published\":\"2025-01-20T15:56:38&#43;08:00\",\"date_modified\":\"2025-01-20T17:49:35&#43;08:00\",\"id\":\"https://lruihao.cn/posts/flexbox/\",\"url\":\"https://lruihao.cn/posts/flexbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Flexbox\"],\"image\":\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\",\"summary\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\n\",\"content_html\":\"\\u003cp\\u003e本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\u003c/p\\u003e\"},{\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"date_published\":\"2024-12-06T10:32:22&#43;08:00\",\"date_modified\":\"2024-12-06T11:51:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-viewport/\",\"url\":\"https://lruihao.cn/posts/css-viewport/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\n\",\"content_html\":\"\\u003cp\\u003e在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\u003c/p\\u003e\"},{\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"date_published\":\"2024-10-06T11:10:22&#43;08:00\",\"date_modified\":\"2024-10-06T12:21:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/content-adapters/\",\"url\":\"https://lruihao.cn/posts/content-adapters/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"GitHub API\"],\"image\":\"https://lruihao.cn/posts/content-adapters/featured-image.webp\",\"summary\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\n\",\"content_html\":\"\\u003cp\\u003e在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"},{\"title\":\"Git 统计代码量\",\"date_published\":\"2024-07-17T16:06:08&#43;08:00\",\"date_modified\":\"2024-07-17T18:34:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-summary/\",\"url\":\"https://lruihao.cn/posts/git-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"使用 Git 命令统计在某段时间内项目中的代码量。\\n\",\"content_html\":\"\\u003cp\\u003e使用 Git 命令统计在某段时间内项目中的代码量。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"},{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"},{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"架构之基：从根儿上了解设计原则\",\"date_published\":\"2024-06-09T02:24:31&#43;08:00\",\"date_modified\":\"2024-06-09T02:57:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/design-principles/\",\"url\":\"https://lruihao.cn/posts/design-principles/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Design Patterns\",\"Java\"],\"summary\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\",\"content_html\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"},{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"写文档时英文标题什么时候要大写？\",\"date_published\":\"2024-03-26T12:23:44&#43;08:00\",\"date_modified\":\"2024-04-02T21:13:59&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c6bc2d5/\",\"url\":\"https://lruihao.cn/posts/c6bc2d5/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\\n\",\"content_html\":\"\\u003cp\\u003e对于本文的标题的思考来自于 \\u003ca href=\\\"https://gohugo.io/getting-started/configuration/#titlecasestyle\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e中的一个配置 \\u003ccode\\u003etitleCaseStyle\\u003c/code\\u003e，默认情况下，Hugo 在创建自动章节标题以及使用 \\u003ccode\\u003estrings.Title\\u003c/code\\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\\u003c/p\\u003e\\n\\u003cp\\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\u003c/p\\u003e\\n\\u003cp\\u003e经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，\\u003ca href=\\\"https://pub.bnu.edu.cn/jzyg1/72203.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“出版物中，英文什么时候要大写？ ”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"date_published\":\"2024-02-29T16:46:00&#43;08:00\",\"date_modified\":\"2024-06-12T18:57:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"url\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\n\",\"content_html\":\"\\u003cp\\u003e在 Element UI 的表格组件中，当表格列的内容过长时，设置 \\u003ccode\\u003eshow-overflow-tooltip\\u003c/code\\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\u003c/p\\u003e\"},{\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"date_published\":\"2024-02-21T10:00:13&#43;08:00\",\"date_modified\":\"2024-02-21T11:06:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/auto-sizes/\",\"url\":\"https://lruihao.cn/posts/auto-sizes/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\"],\"summary\":\"聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\n\",\"content_html\":\"\\u003cp\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\u003c/p\\u003e\"},{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"为什么很多教程中都有 foo bar？\",\"date_published\":\"2024-01-17T09:58:58&#43;08:00\",\"date_modified\":\"2024-07-17T17:37:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/20b75e9/\",\"url\":\"https://lruihao.cn/posts/20b75e9/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\n\",\"content_html\":\"\\u003cp\\u003efoo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。\\u003c/p\\u003e\"},{\"title\":\"git submodule: already exists in the index\",\"date_published\":\"2024-01-11T10:30:04&#43;08:00\",\"date_modified\":\"2024-01-11T10:39:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/6550187/\",\"url\":\"https://lruihao.cn/posts/6550187/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"Git 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\n\",\"content_html\":\"\\u003cp\\u003eGit 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\u003c/p\\u003e\"},{\"title\":\"给 el-card 添加折叠功能\",\"date_published\":\"2024-01-10T17:06:54&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-card-collapse/\",\"url\":\"https://lruihao.cn/posts/el-card-collapse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e出发点\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e虽然 Element 也有 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/collapse\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-collapse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，\\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/card\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-card\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"SSH 提交签名验证\",\"date_published\":\"2023-10-22T18:59:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ssh-sign/\",\"url\":\"https://lruihao.cn/posts/ssh-sign/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"SSH\"],\"summary\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\n\",\"content_html\":\"\\u003cp\\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"},{\"title\":\"拖拽式仪表盘的设计与开发\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"url\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"content_html\":\"关于拖拽式仪表盘的设计与开发系列文章。\"},{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"},{\"title\":\"认知复杂度（Cognitive Complexity）\",\"date_published\":\"2023-10-08T09:52:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"url\":\"https://lruihao.cn/posts/cognitive-complexity/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"image\":\"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png\",\"summary\":\"27 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\n27.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"摘要\\\"\\u003e\\u003cspan\\u003e27 摘要\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%91%98%e8%a6%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"术语说明\\\"\\u003e\\u003cspan\\u003e27.1 术语说明\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"date_published\":\"2023-09-26T15:17:52&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/article-structure/\",\"url\":\"https://lruihao.cn/posts/article-structure/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。\\u003c/p\\u003e\"},{\"title\":\"封装 Vue FullScreenToggler 组件\",\"date_published\":\"2023-09-17T19:44:07&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"url\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"JavaScript\"],\"summary\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\\n\",\"content_html\":\"\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/mirari/vue-fullscreen\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evue-fullscreen\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\\u003c/p\\u003e\"},{\"title\":\"JS 实现全屏和退出全屏\",\"date_published\":\"2023-09-15T17:29:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-fullscreen/\",\"url\":\"https://lruihao.cn/posts/js-fullscreen/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\"19 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e19 背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\u003c/p\\u003e\"},{\"title\":\"中文翻译的常见问题\",\"date_published\":\"2023-09-15T11:07:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:45:09&#43;08:00\",\"id\":\"https://lruihao.cn/posts/translation-guide/\",\"url\":\"https://lruihao.cn/posts/translation-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"他山之石\"],\"summary\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下内容截取自 \\u003ca href=\\\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e针对 MDN 文档的本地化指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的中文翻译的常见问题小节。\\u003c/p\\u003e\\n\\u003cp\\u003e其中翻译的规范也是中文写作的规范，更多详见之前写的 \\u003ca href=\\\"/posts/document-style-guide/\\\"\\u003e中文技术文档的写作规范\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\u003c/p\\u003e\"},{\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"date_published\":\"2023-09-14T11:24:48&#43;08:00\",\"date_modified\":\"2024-06-06T23:01:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"url\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SVG\",\"Vue2\"],\"summary\":\"19 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e19 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、\\u003ca href=\\\"https://fontawesome.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFont Awesome\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.iconfont.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIconfont\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等。\\u003c/p\\u003e\\n\\u003cp\\u003e随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\u003c/p\\u003e\"},{\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"date_published\":\"2023-09-14T11:21:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vscode-snippets/\",\"url\":\"https://lruihao.cn/posts/vscode-snippets/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Shortcodes\"],\"summary\":\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\n\",\"content_html\":\"\\u003cp\\u003e在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\u003c/p\\u003e\"},{\"title\":\"CSS 如何实现网格背景效果？\",\"date_published\":\"2023-09-02T10:05:44&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/grid-bg-image/\",\"url\":\"https://lruihao.cn/posts/grid-bg-image/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\\n15 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何使用 \\u003ccode\\u003elinear-gradient\\u003c/code\\u003e 、\\u003ccode\\u003ebackground-size\\u003c/code\\u003e 等属性来实现网格背景效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e15 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\u003c/p\\u003e\"},{\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"date_published\":\"2023-07-20T11:08:18&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"url\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\\n\",\"content_html\":\"\\u003cp\\u003e这篇文章主要是记录一下继承 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/backtop\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElBacktop\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件并修复了一些 bug 的过程。\\u003c/p\\u003e\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"date_published\":\"2023-03-14T08:37:59&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue2-guid/\",\"url\":\"https://lruihao.cn/posts/vue2-guid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"他山之石\"],\"summary\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\\n此指南仅供参考，请根据自身实际情况灵活调整。\\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e注：2.0 已经有\\u003ca href=\\\"https://v2.cn.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 。如果对自己英文有信心，也可以直接阅读\\u003ca href=\\\"https://v2.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003cbr\\u003e\\n此指南仅供参考，请根据自身实际情况灵活调整。\\u003cbr\\u003e\\n转载自： \\u003ca href=\\\"https://www.zhihu.com/people/evanyou\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尤雨溪\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://zhuanlan.zhihu.com/p/23134551\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，2017-08-04 14:51\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"},{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"中文技术文档的写作规范\",\"date_published\":\"2023-02-04T16:04:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/document-style-guide/\",\"url\":\"https://lruihao.cn/posts/document-style-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\" 以下参考来源：阮一峰的 中文技术文档的写作规范\\n英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。\\n对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\n对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\n参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下参考来源：阮一峰的 \\u003ca href=\\\"https://github.com/ruanyf/document-style-guide\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如\\u003ca href=\\\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e微软\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"http://styleguide.mailchimp.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMailChimp\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eApple\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8\\u0026amp;btkr=1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eYahoo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://docs.docker.com/opensource/doc-style/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edocker\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://struts.apache.org/docs/documentation-style-guide.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eStruts\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等（维基百科有一份完整的\\u003ca href=\\\"https://en.wikipedia.org/wiki/List_of_style_guides\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e清单\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e）。\\u003ca href=\\\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e也有不少，但都不令人满意，要么太简单，要么不太适用。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。\\u003c/p\\u003e\\n\\u003cp\\u003e对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。\\u003c/p\\u003e\\n\\u003cp\\u003e参考上面的规范，于是有了下面一份中文技术文档的写作规范。\\u003c/p\\u003e\"},{\"title\":\"浏览器原理 - 事件循环\",\"date_published\":\"2023-01-11T11:16:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/event-loop/\",\"url\":\"https://lruihao.cn/posts/event-loop/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/event-loop/images/202208092131410.png\",\"summary\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\n\",\"content_html\":\"\\u003cp\\u003e最近在抖音上刷到很多次 \\u003ca href=\\\"http://yuanjin.tech/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e袁进老师\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\u003c/p\\u003e\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Beego 安装及配置\",\"date_published\":\"2022-08-31T09:32:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beego-install/\",\"url\":\"https://lruihao.cn/posts/beego-install/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Beego\",\"Go\"],\"image\":\"https://lruihao.cn/posts/beego-install/images/featured-image.png\",\"summary\":\"记录 GO 及 Beego 框架安装及基础配置。\\n\",\"content_html\":\"\\u003cp\\u003e记录 GO 及 Beego 框架安装及基础配置。\\u003c/p\\u003e\"},{\"title\":\"语义版本控制（SemVer）\",\"date_published\":\"2022-08-13T13:32:03&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/semver/\",\"url\":\"https://lruihao.cn/posts/semver/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SemVer\"],\"image\":\"https://lruihao.cn/posts/semver/images/featured-image.png\",\"summary\":\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e版本格式：\\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e，版本号递增规则如下：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMAJOR\\u003c/code\\u003e: \\u003cstrong\\u003e主版本号\\u003c/strong\\u003e，当你做了不兼容的 API 修改\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMINOR\\u003c/code\\u003e: \\u003cstrong\\u003e次版本号\\u003c/strong\\u003e，当你做了向下兼容的功能性新增\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003ePATCH\\u003c/code\\u003e: \\u003cstrong\\u003e修订号\\u003c/strong\\u003e，当你做了向下兼容的问题修正\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e先行版本号及版本编译信息可以加到 \\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e 的后面，作为延伸。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Commit Message Spec\",\"date_published\":\"2022-08-12T15:37:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-spec/\",\"url\":\"https://lruihao.cn/posts/commit-spec/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cp\\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \\u003ca href=\\\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eConventional Commits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e specification based on the \\u003ca href=\\\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAngular convention\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\u003c/p\\u003e\"},{\"title\":\"electron 踩坑总结\",\"date_published\":\"2022-08-12T11:22:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/electron-summary/\",\"url\":\"https://lruihao.cn/posts/electron-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"electron\"],\"image\":\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\",\"summary\":\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\\n\",\"content_html\":\"\\u003cp\\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\\u003c/p\\u003e\"},{\"title\":\"前端页面内容加密总结\",\"date_published\":\"2022-08-08T13:49:22&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/encryption-fe/\",\"url\":\"https://lruihao.cn/posts/encryption-fe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"加密\"],\"image\":\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\",\"summary\":\"记录一下前端实现页面加密的思路。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下前端实现页面加密的思路。\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"不同系统的换行符的差异\",\"date_published\":\"2022-08-07T00:10:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/newline/\",\"url\":\"https://lruihao.cn/posts/newline/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"newline\"],\"summary\":\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\n\",\"content_html\":\"\\u003cp\\u003e换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\u003c/p\\u003e\"},{\"title\":\"自定义 ohmyzsh 主题\",\"date_published\":\"2022-07-31T13:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"url\":\"https://lruihao.cn/posts/ohmyzsh-custom/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\n\",\"content_html\":\"\\u003cp\\u003eohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\\u003c/p\\u003e\"},{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"},{\"title\":\"Mac 配置 ADB\",\"date_published\":\"2022-07-05T15:39:34&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adb-for-mac/\",\"url\":\"https://lruihao.cn/posts/adb-for-mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Android\",\"ADB\"],\"summary\":\"作为非安卓专业开发，无需下载 Android SDK，\\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\\n\",\"content_html\":\"\\u003cp\\u003e作为非安卓专业开发，无需下载 Android SDK，\\u003cbr\\u003e\\n仅下载 Android SDK 中的 \\u003ca href=\\\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eplatform-tools\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 命令行工具即可，并配置好环境变量。\\u003c/p\\u003e\"},{\"title\":\"重新认识 JavaScript\",\"date_published\":\"2022-05-01T10:59:36&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-rediscover/\",\"url\":\"https://lruihao.cn/posts/js-rediscover/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"ES6\"],\"summary\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e前言\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\u003c/p\\u003e\\n\\u003cp\\u003e每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"date_published\":\"2022-04-30T22:04:29&#43;08:00\",\"date_modified\":\"2024-07-14T17:09:39&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-scss-var/\",\"url\":\"https://lruihao.cn/posts/css-scss-var/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"summary\":\"7 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\\n造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题分析\\\"\\u003e\\u003cspan\\u003e7 问题分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e昨天在开发 FixIt 的时候，在 Scss 中写 \\u003ccode\\u003emax(foo, bar)\\u003c/code\\u003e 函数比较不同的单位变量时报错了，但是在 CSS 中使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数函数比较不同的单位变量是没有问题的。\\u003c/p\\u003e\\n\\u003cp\\u003e造成这一问题的原因是，在 Scss 中，也实现了 \\u003ccode\\u003emax\\u003c/code\\u003e 和 \\u003ccode\\u003emin\\u003c/code\\u003e 函数，但是在 Scss 中，\\u003cstrong\\u003e不同单位的变量是不能进行运算的\\u003c/strong\\u003e，所以使得在 Scss 中直接使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\u003c/p\\u003e\\n\\u003cp\\u003e知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\u003c/p\\u003e\"},{\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"date_published\":\"2021-12-22T20:17:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gtd/\",\"url\":\"https://lruihao.cn/posts/gtd/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GTD\"],\"image\":\"/posts/gtd/images/reminders_min.png\",\"summary\":\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\nReference #20 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003equote\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003eGetting Things Done (GTD)\\u003c/strong\\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://en.wikipedia.org/wiki/Getting_Things_Done\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eReference\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/issues/20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e#20\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"date_published\":\"2021-10-05T21:54:06&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"url\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"Sublime\"],\"summary\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/robinchenyu/imagepaste\\\" title=\\\"插件地址\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e插件地址\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/robinchenyu/imagepaste\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"date_published\":\"2021-10-05T19:33:13&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"url\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"Shortcodes\"],\"summary\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e卡片式链接已整合到 FixIt 主题\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\\n\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e回顧\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e之前在使用 hexo 的時候也有用到，\\u003ca href=\\\"/posts/linkcard/\\\"\\u003e模仿知乎卡片式链接\\u003c/a\\u003e\\u003cbr\\u003e\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\u003cbr\\u003e\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Hugo 友情連結模板\",\"date_published\":\"2021-10-05T14:14:10&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-friends/\",\"url\":\"https://lruihao.cn/posts/hugo-friends/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\"],\"summary\":\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e過程\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e友情鏈接模板已整合到 FixIt 主題\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 本地管理 Shell 腳本\",\"date_published\":\"2021-10-04T23:49:00&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-admin/\",\"url\":\"https://lruihao.cn/posts/hugo-admin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"shell\"],\"image\":\"/posts/hugo-admin/images/hugo-admin1.png\",\"summary\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition abstract open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-clipboard-list\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\u003cbr\\u003e\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Lightbox\",\"date_published\":\"2021-06-21T16:18:04&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightbox/\",\"url\":\"https://lruihao.cn/posts/lightbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Lightbox\",\"JavaScript\"],\"summary\":\"7 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"簡介\\\"\\u003e\\u003cspan\\u003e7 簡介\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b0%a1%e4%bb%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\u003c/p\\u003e\"},{\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"date_published\":\"2021-03-04T21:04:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codereview/\",\"url\":\"https://lruihao.cn/posts/codereview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"codereview\"],\"summary\":\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"程式碼的持續優化\\\"\\u003e\\u003cspan\\u003e1 程式碼的持續優化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\u003c/p\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"使用 Python 刷 csdn 访问量\",\"date_published\":\"2020-03-26T11:08:38&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/csdnvisiter/\",\"url\":\"https://lruihao.cn/posts/csdnvisiter/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"SQL 总结\",\"date_published\":\"2020-01-16T19:28:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sql/\",\"url\":\"https://lruihao.cn/posts/sql/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"MySQL\"],\"summary\":\" SQL 增删改查 (CRUD) 语句与常用函数总结。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"date_published\":\"2019-09-28T18:32:42&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phppushurl/\",\"url\":\"https://lruihao.cn/posts/phppushurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" php 主动推送站点链接到百度站长，神马站长进行 SEO。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ephp 主动推送站点链接到百度站长，神马站长进行 SEO。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 按行读取文件信息\",\"date_published\":\"2019-09-28T17:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfile/\",\"url\":\"https://lruihao.cn/posts/phpfile/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\"7 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"普通方法\\\"\\u003e\\u003cspan\\u003e7 普通方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先采用\\u003ccode\\u003efopen()\\u003c/code\\u003e函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。\\u003ccode\\u003efeof()\\u003c/code\\u003e判断是否到最后一行，\\u003ccode\\u003efgets()\\u003c/code\\u003e读取一行文本。\\u003c/p\\u003e\"},{\"title\":\"设置网站运行时间\",\"date_published\":\"2019-09-19T22:03:29&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/site-time/\",\"url\":\"https://lruihao.cn/posts/site-time/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 使用javascript计算博客等网站的运行时间。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用\\u003ccode\\u003ejavascript\\u003c/code\\u003e计算博客等网站的运行时间。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Sublime Text3 快捷键大全\",\"date_published\":\"2019-08-15T20:59:10&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sublime-text3/\",\"url\":\"https://lruihao.cn/posts/sublime-text3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Sublime\",\"他山之石\"],\"summary\":\"Sublime Text3 快捷键一览表\\n\",\"content_html\":\"\\u003cp\\u003eSublime Text3 快捷键一览表\\u003c/p\\u003e\"},{\"title\":\"NetBeans IDE 开发设置\",\"date_published\":\"2019-08-15T18:36:15&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/netbeans/\",\"url\":\"https://lruihao.cn/posts/netbeans/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"NetBeans\",\"PHP\"],\"summary\":\"7 安裝 官方下載點\\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安裝\\\"\\u003e\\u003cspan\\u003e7 安裝\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://netbeans.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方下載點\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"擴充功能\\\"\\u003e\\u003cspan\\u003e8 擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安裝擴充功能\\\"\\u003e\\u003cspan\\u003e8.1 安裝擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e下載擴充套件包\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://plugins.netbeans.org/PluginPortal/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方套件庫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e或者在 NetBeans IDE 裏面下載插件（方便）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要安裝的擴充套件包\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"啟用已安裝的擴充功能\\\"\\u003e\\u003cspan\\u003e8.2 啟用已安裝的擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Installed\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要啟用的套件 (*.npm)\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Activate\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"匯入設定\\\"\\u003e\\u003cspan\\u003e8.3 匯入設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Options\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Import 匯入設定\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要匯入的套件包 (*.zip)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常用設定\\\"\\u003e\\u003cspan\\u003e9 常用設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"程式碼排版\\\"\\u003e\\u003cspan\\u003e9.1 程式碼排版\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\u003c/p\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"简单评论模块--php 表单练习\",\"date_published\":\"2019-07-19T11:38:59&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpform/\",\"url\":\"https://lruihao.cn/posts/phpform/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\nPHP 表单安全性的重要提示\\n$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]变量能够被黑客利用！\\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\u003cbr\\u003e\\n\\u003cstrong\\u003ePHP 表单安全性的重要提示\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003e$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]\\u003c/code\\u003e变量能够被黑客利用！\\u003cbr\\u003e\\n如果页面中使用了\\u003ccode\\u003ePHP_SELF\\u003c/code\\u003e，用户能够输入下划线然后执行跨站点脚本（XSS）。\\u003cbr\\u003e\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e跨站点脚本（Cross-site scripting，XSS）\\u003c/code\\u003e是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 函数学习\",\"date_published\":\"2019-07-15T11:37:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfunc/\",\"url\":\"https://lruihao.cn/posts/phpfunc/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 练习 php 函数的基本使用。\\n注：\\n必选参数在可选参数的前面。\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e练习 php 函数的基本使用。\\u003cbr\\u003e\\n注：\\u003cbr\\u003e\\n必选参数在可选参数的前面。\\u003cbr\\u003e\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅱ\",\"date_published\":\"2019-06-21T18:46:41&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx2/\",\"url\":\"https://lruihao.cn/posts/pysx2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 后面几天讲的有点杂，简单记录一下知识点。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e后面几天讲的有点杂，简单记录一下知识点。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅰ\",\"date_published\":\"2019-06-18T18:41:00&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx1/\",\"url\":\"https://lruihao.cn/posts/pysx1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"turtle\"],\"summary\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\\n这次正好又课程安排了为期两周的综合实训，主要是“\\u003cstrong\\u003e用 python 做量化交易\\u003c/strong\\u003e”\\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"判断三角形的黑盒测试\",\"date_published\":\"2019-05-26T18:50:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/judgetriangle/\",\"url\":\"https://lruihao.cn/posts/judgetriangle/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"黑盒测试\",\"C\"],\"summary\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\u003cbr\\u003e\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装 ImgURL 图床\",\"date_published\":\"2019-05-16T20:31:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/imgurl/\",\"url\":\"https://lruihao.cn/posts/imgurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ImgURL\",\"宝塔面板\"],\"image\":\"/posts/imgurl/images/1.png\",\"summary\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\\n\\u003ca href=\\\"https://www.xiaoz.me/archives/12081\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e阅读原文\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"date_published\":\"2019-05-10T13:08:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ifzhushi/\",\"url\":\"https://lruihao.cn/posts/ifzhushi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"他山之石\"],\"summary\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cspan\\u003e\\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 设置程序每天 8 点定时执行任务\",\"date_published\":\"2019-05-09T23:26:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysettime/\",\"url\":\"https://lruihao.cn/posts/pysettime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"Cron\"],\"summary\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\n（该程序需要一直挂着，保持网络不断）\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\u003cbr\\u003e\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\u003cbr\\u003e\\n（该程序需要一直挂着，保持网络不断）\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"date_published\":\"2019-05-09T19:05:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pyinstallererror/\",\"url\":\"https://lruihao.cn/posts/pyinstallererror/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"pyinstaller\"],\"image\":\"/posts/pyinstallererror/images/1.png\",\"summary\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用过命令\\u003ccode\\u003epip install pyinstaller\\u003c/code\\u003e安装失败，此包依赖于 pywin32，安装前需要先\\u003ccode\\u003epip install pywin32\\u003c/code\\u003e, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\\n这里通过手动下载安装解决的，记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 发送 post 请求进行简单的接口测试\",\"date_published\":\"2019-05-07T18:17:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/posttest/\",\"url\":\"https://lruihao.cn/posts/posttest/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"summary\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\nrequests.get() requests.post()\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003erequests.get()\\u003c/li\\u003e\\n\\u003cli\\u003erequests.post()\\u003cbr\\u003e\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"date_published\":\"2019-05-06T17:41:35&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-urlreader/\",\"url\":\"https://lruihao.cn/posts/java-urlreader/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"URLConnection\",\"Java\"],\"summary\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"文件加密解密（字节流）\",\"date_published\":\"2019-05-02T23:04:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/byteio/\",\"url\":\"https://lruihao.cn/posts/byteio/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\u003c/p\\u003e\\n\\u003cp\\u003e这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模拟借书系统（java 异常练习）\",\"date_published\":\"2019-05-01T16:52:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/javaexception/\",\"url\":\"https://lruihao.cn/posts/javaexception/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"image\":\"/posts/javaexception/images/1.png\",\"content_html\":\"模拟借书系统（java 异常练习）\"},{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"第一次面试经历\",\"date_published\":\"2019-04-24T21:23:22&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/1thintervivew/\",\"url\":\"https://lruihao.cn/posts/1thintervivew/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面试\"],\"summary\":\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 爬取网站图片（图片链接相似）\",\"date_published\":\"2019-04-22T12:46:34&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mmtimgpy/\",\"url\":\"https://lruihao.cn/posts/mmtimgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下程序对 \\u003ca href=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026amp;a=fontshowPics\\u0026amp;u=qbfRl8gPF2s-\\u0026amp;z=Kqz%2FRroVGYc-\\u0026amp;share=1\\u0026amp;from=singlemessage\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e该网址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。\\u003ca href=\\\"/projects/font-mmt/\\\"\\u003e字体效果查看\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"用记事本编写第一个 java 程序\",\"date_published\":\"2019-04-19T19:49:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hellojava/\",\"url\":\"https://lruihao.cn/posts/hellojava/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\njavac java \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以\\u003ccode\\u003e.java\\u003c/code\\u003e为后缀的文件；然后将这些源程序用\\u003ccode\\u003ejavac\\u003c/code\\u003e编译成\\u003ccode\\u003e.class\\u003c/code\\u003e后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\u003cbr\\u003e\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003ejavac\\u003c/li\\u003e\\n\\u003cli\\u003ejava\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 正则表达式练习\",\"date_published\":\"2019-04-18T22:04:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-regex/\",\"url\":\"https://lruihao.cn/posts/java-regex/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"regex\",\"Java\"],\"summary\":\"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\"); String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\\"匹配结果：\\\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的 p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\"); // 验证没有区号的 if (str.length() \\u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" + \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" + \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"邮箱\\\"\\u003e\\u003cspan\\u003e7 邮箱\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%82%ae%e7%ae%b1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexDemo {\\n    public static void main(String[] args) {\\n//       Pattern 类 正则表达式的编译表示。\\n        Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\");\\n        String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"};\\n        for (String email :\\n                emails) {\\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\\n            Matcher matcher = pattern.matcher(email);\\n            System.out.println(email + \\\"匹配结果：\\\" + matcher.matches());\\n        }\\n    }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003eadmin@lruihao.cn 匹配结果：true\\nlruihao.cn 匹配结果：false\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"电话\\\"\\u003e\\u003cspan\\u003e8 电话\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b5%e8%af%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epackage base;\\n\\nimport java.util.Scanner;\\nimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexTest {\\n  public static void main(String[] args) {\\n    Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\");\\n    Scanner sc=new Scanner(System.in);\\n    String telnum=sc.nextLine();\\n    sc.close();\\n    Matcher matcher=patter.matcher(telnum);\\n    System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches());\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 获取当前的 httpSession\\n * @return\\n */\\npublic static HttpSession getSession() {\\n return getRequest().getSession();\\n}\\n/**\\n * 手机号验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isMobile(final String str) {\\n  Pattern p = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号\\n  m = p.matcher(str);\\n  b = m.matches();\\n  return b;\\n}\\n/**\\n * 电话号码验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isPhone(final String str) {\\n  Pattern p1 = null, p2 = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的\\n  p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\");     // 验证没有区号的\\n  if (str.length() \\u003e 9) {\\n    m = p1.matcher(str);\\n    b = m.matches();\\n  } else {\\n    m = p2.matcher(str);\\n    b = m.matches();\\n  }\\n  return b;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"身份证\\\"\\u003e\\u003cspan\\u003e9 身份证\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ba%ab%e4%bb%bd%e8%af%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/* 身份证正则表达式 16 或 18 */\\n   public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" +\\n           \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" +\\n           \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"},{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"前端面试题 - HTML+CSS\",\"date_published\":\"2019-03-30T22:58:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ms-html-css/\",\"url\":\"https://lruihao.cn/posts/ms-html-css/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"CSS\"],\"summary\":\" 原文链接\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/ltadpoles/web-document/tree/master/Other\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原文链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\u003c/p\\u003e\"},{\"title\":\"百钱百鸡（枚举法）\",\"date_published\":\"2019-03-30T10:13:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bqbj/\",\"url\":\"https://lruihao.cn/posts/bqbj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Java 父类子类的对象初始化过程\",\"date_published\":\"2019-03-21T13:36:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/substatus/\",\"url\":\"https://lruihao.cn/posts/substatus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"web 汇总\",\"date_published\":\"2019-03-18T20:40:55&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/webbiji/\",\"url\":\"https://lruihao.cn/posts/webbiji/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 泛型 test\",\"date_published\":\"2019-03-16T13:56:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fanxing/\",\"url\":\"https://lruihao.cn/posts/fanxing/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"泛型\",\"Java\"],\"summary\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;)\\u003c/li\\u003e\\n\\u003cli\\u003e类型通配符一般使用问号\\u003ccode\\u003e?\\u003c/code\\u003e代替具体的类型\\u003ccode\\u003e实\\u003c/code\\u003e参，注意不是类型形参。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"eclipse 的基本使用\",\"date_published\":\"2019-03-15T23:47:24&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/eclipseuse/\",\"url\":\"https://lruihao.cn/posts/eclipseuse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"eclipse\",\"Java\"],\"summary\":\"9 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击）12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本使用\\\"\\u003e\\u003cspan\\u003e9 基本使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 选择一个工作空间\\n  D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\\n  a: 创建项目（工程）\\n    *File -- New -- Java Project\\n    *在左边空白处，直接右键 -- New -- Java Project\\n\\n    键入项目名称后直接 Finish。\\n  b: 所有的 java 文件必须写到 src 下面才有效\\n  c: 创建一个包\\n    cn.lruihao\\n  d: 在包下创建一个类\\n    HelloWorld\\n\\n    同时让它帮我们写好了 main 方法。\\n  e: 在 main 方法中写内容即可\\n  f: 编译程序\\n    自动编译，在保存的那一刻帮你做好了\\n  g: 运行程序\\n    选择要运行的文件或者在要运行的文件内容中\\n    右键 -- Run as - Java Application 即可\\n  h: 内容显示\\n    在 Console 控制台显示内容\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-的基本设置\\\"\\u003e\\u003cspan\\u003e10 Eclipse 的基本设置\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\\nB: 去掉默认注释（可以不用改）\\nC: 行号的显示和隐藏\\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\\n  隐藏：把上面的动作再做一次。\\nD: 字体大小及颜色\\n  a:Java 代码区域的字体大小和颜色：\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\\n  b: 控制台\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\\n  c: 其他文件\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\\nE: 窗体给弄乱了，怎么办\\n  window -- Reset Perspective\\nF: 控制台找不到了\\n  Window--Show View—Console\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快捷键的使用\\\"\\u003e\\u003cspan\\u003e11 快捷键的使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 内容辅助键\\n  Alt+/ 起提示作用\\n  main+alt+/,syso+alt+/, 给出其他提示\\nB: 快捷键\\n  格式化  ctrl+shift+f\\n  导入包  ctrl+shift+o\\n  注释  ctrl+/\\n    ctrl+shift+/,ctrl+shift+\\\\\\n  代码上下移动 选中代码 alt+上/下箭头\\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-中如何提高开发效率\\\"\\u003e\\u003cspan\\u003e12 Eclipse 中如何提高开发效率\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 自动生成构造方法\\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\\nB: 自动生成 get/set 方法\\n  在代码区域右键--source--Generate Getters and Setters...\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"匿名类在可视化界面中的应用\",\"date_published\":\"2019-03-15T22:31:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qframe/\",\"url\":\"https://lruihao.cn/posts/qframe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"Java\"],\"summary\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ejava 中匿名类用的最多的地方就是可视化界面设计中，特别是将\\u003ccode\\u003e事件监听器\\u003c/code\\u003e注册到某个组件上的时候。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模仿知乎卡片式链接\",\"date_published\":\"2019-03-15T15:21:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linkcard/\",\"url\":\"https://lruihao.cn/posts/linkcard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"QQ 强制生成卡片式链接\",\"date_published\":\"2019-03-08T16:52:13&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qqxml/\",\"url\":\"https://lruihao.cn/posts/qqxml/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\u003cbr\\u003e\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \\u003ccode\\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\\u003c/code\\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"磁盘存储器的管理\",\"date_published\":\"2019-03-04T23:08:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cipanadmin/\",\"url\":\"https://lruihao.cn/posts/cipanadmin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"OS\",\"磁盘\"],\"summary\":\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"外存的组织方式\\\"\\u003e\\u003cspan\\u003e1 外存的组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"连续组织方式\\\"\\u003e\\u003cspan\\u003e1.1 连续组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e连续组织方式的优点\\u003c/p\\u003e\"},{\"title\":\"JS 验证码\",\"date_published\":\"2019-03-04T20:53:09&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-vcode/\",\"url\":\"https://lruihao.cn/posts/js-vcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 请点击验证码处：↑ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cstyle type=\\\"text/css\\\"\\u003e\\n\\n# code{  \\n\\n  font-family:Arial;  \\n  font-style:italic;  \\n  font-weight:bold;  \\n  border:2px solid #ddd;\\n  letter-spacing:9px;  \\n  color:blue;\\n  font-size: 15px;\\n}\\n\\u003c/style\\u003e\\n\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n    //设置一个全局的变量，便于保存验证码\\n    var code;\\n    function createCode(){\\n        //首先默认 code 为空字符串\\n        code = '';\\n        //设置长度，这里看需求，我这里设置了 4\\n        var codeLength = 4;\\n        var codeV = document.getElementById('code');\\n        //设置随机字符\\n        var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\\n        //循环 codeLength 我设置的 4 就是循环 4 次\\n        for(var i = 0; i \\u003c codeLength; i++){\\n            //设置随机数范围，这设置为 0 ~ 36\\n             var index = Math.floor(Math.random()*35);\\n             //字符串拼接 将每次随机的字符 进行拼接\\n             code += random[index];\\n        }\\n        //将拼接好的字符串赋值给展示的 Value\\n        codeV.value = code;\\n    }\\n\\n    //下面就是判断是否== 的代码，无需解释\\n    function validate(){\\n        var Input = document.getElementById('input');\\n        var oValue = Input.value.toUpperCase();\\n        if(oValue ==0){\\n            alert('请输入验证码');\\n        }else if(oValue != code){\\n            Input.value = '';\\n            alert('验证码不正确，请重新输入');\\n            createCode();\\n        }else{\\n            Input.value = '';\\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\\n        }\\n    }\\n\\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\\n    window.onload = function (){\\n\\n        createCode();\\n    }\\n\\u003c/script\\u003e\\n\\u003cdiv align=\\\"center\\\"\\u003e  \\n    \\u003cinput type = \\\"text\\\" id = \\\"input\\\" value=\\\"\\\" /\\u003e \\u003cinput type = \\\"button\\\" id=\\\"code\\\" onclick=\\\"createCode()\\\"/\\u003e \\u003cinput class=\\\"btn\\\" type = \\\"button\\\" value = \\\"验证\\\" onclick = \\\"validate()\\\"/\\u003e\\n    \\u003cbr/\\u003e请点击验证码处：↑\\n\\u003c/div\\u003e\"},{\"title\":\"还乡\",\"date_published\":\"2019-02-01T20:44:40&#43;08:00\",\"date_modified\":\"2019-02-01T20:44:40&#43;08:00\",\"id\":\"https://lruihao.cn/posts/renative/\",\"url\":\"https://lruihao.cn/posts/renative/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\",\"他山之石\"],\"summary\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 继承 test\",\"date_published\":\"2019-01-24T15:07:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jicheng/\",\"url\":\"https://lruihao.cn/posts/jicheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 引用 继承的好处：\\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\\n设计原则：低耦合，高内聚。\\n耦合：类与类的关系。 内聚：自己完成事情的能力。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e引用\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e继承的好处：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e提高了代码的复用性\\u003c/li\\u003e\\n\\u003cli\\u003e提高了代码的维护性\\u003c/li\\u003e\\n\\u003cli\\u003e让类与类之间产生了关系，是多态的前提\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e继承的弊端：类的耦合性很强\\u003c/p\\u003e\\n\\u003cp\\u003e设计原则：低耦合，高内聚。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e耦合：类与类的关系。\\u003c/li\\u003e\\n\\u003cli\\u003e内聚：自己完成事情的能力。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"date_published\":\"2019-01-16T17:50:52&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/recent-posts/\",\"url\":\"https://lruihao.cn/posts/recent-posts/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 首先在主题配置文件添加以下关键字\\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e首先在主题配置文件添加以下关键字\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003erecent_posts:\\n  enable: true\\n  search: true\\n  post: false\\n  sidebar: false\\n  icon: history\\n  title: 近期文章\\n  layout: block\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"侧栏\\\"\\u003e\\u003cspan\\u003e9 侧栏\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%a7%e6%a0%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 \\u003ccode\\u003enext/layout/_macro/sidebar.swig\\u003c/code\\u003e 中的 \\u003ccode\\u003eif theme.links\\u003c/code\\u003e 对应的 \\u003ccode\\u003eendif\\u003c/code\\u003e 后面。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\\n  \\u003cdiv class=\\\"links-of-blogroll motion-element {{ \\\"links-of-blogroll-\\\" + theme.recent_posts.layout  }}\\\"\\u003e\\n   \\u003cdiv class=\\\"links-of-blogroll-title\\\"\\u003e\\n     \\u003ci class=\\\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\n     {{ theme.recent_posts.title }}\\n   \\u003c/div\\u003e\\n   \\u003cul class=\\\"links-of-blogroll-list\\\"\\u003e\\n     {% set posts = site.posts.sort('-date') %}\\n     {% for post in posts.slice('0', '3') %}\\n       \\u003cli\\u003e\\n         \\u003ca href=\\\"{{ url_for(post.path) }}\\\" title=\\\"{{ post.title }}\\\" target=\\\"_blank\\\"\\u003e{{ post.title }}\\u003c/a\\u003e\\n       \\u003c/li\\u003e\\n     {% endfor %}\\n   \\u003c/ul\\u003e\\n \\u003c/div\\u003e\\n{% endif %}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"搜索结果处添加\\\"\\u003e\\u003cspan\\u003e10 搜索结果处添加\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e找到路径\\u003ccode\\u003eH:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials\\\\search\\u003c/code\\u003e下\\u003ccode\\u003elocalsearch.swig\\u003c/code\\u003e文件\\u003cbr\\u003e\\n把\\u003ccode\\u003e\\u0026lt;div id=\\u0026quot;local-search-result\\u0026quot;\\u0026gt;\\u0026lt;/div\\u0026gt;\\u003c/code\\u003e修改成以下内容（这里显示 15 篇）\\u003c/p\\u003e\"},{\"title\":\"java 猜数字小游戏（Math 类）\",\"date_published\":\"2019-01-15T17:33:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mathclass/\",\"url\":\"https://lruihao.cn/posts/mathclass/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 大一刚学 c 的时候以前写过 c 语言版 的。\\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大一刚学 c 的时候以前写过 \\u003ca href=\\\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ec 语言版\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMath: 针对数学进行运算的类\\u003c/li\\u003e\\n\\u003cli\\u003e特点：没有构造方法，因为它的成员都是静态的\\u003c/li\\u003e\\n\\u003cli\\u003e产生随机数：\\npublic static double random(): 产生随机数，范围 [0.0,1.0)\\u003c/li\\u003e\\n\\u003cli\\u003e产生 1-100 之间的随机数\\nint number = (int)(Math.random()*100)+1;\\u003c/li\\u003e\\n\\u003cli\\u003e猜数字小游戏案例\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"面向对象基础知识总结\",\"date_published\":\"2019-01-15T16:07:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/duixiang/\",\"url\":\"https://lruihao.cn/posts/duixiang/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面向对象\",\"Java\"],\"summary\":\"35 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\\nA: 是一种更符合我们思考习惯的思想\\nB: 把复杂的问题简单化\\nC: 让我们从执行者变成了指挥者 举例：\\nA: 洗衣服\\nB: 吃饭\\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\\n学生 类\\n张三 对象 37 类的组成（掌握） 成员变量\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\\n其实就是方法，只不过不需要 static 了 案例：\\n学生类 class Student { String name; int age; public void study() {} }38 类的使用（掌握） 创建对象\\n格式：类名 对象名 = new 类名 (); 使用成员\\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); 39 成员变量和局部变量的区别（理解） 在类中的位置不同\\nA: 成员变量 类中，方法外\\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\\nA: 成员变量 在堆中\\nB: 局部变量 在栈中 生命周期不同\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\\nA: 成员变量 有默认初始化值\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 40 形式参数问题（理解） 基本类型\\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 41 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\\nA: 调用方法，仅仅只调用一次\\nB: 作为实际参数传递 42 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\\nA: 隐藏实现细节，提供公共的访问方式\\nB: 提高了代码的复用性\\nC: 提高了代码的安全性 使用原则\\nA: 把成员变量隐藏\\nB: 给出该成员变量对应的公共访问方式 43 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字（掌握） this：代表本类的对象 应用场景：\\n解决了局部变量隐藏成员变量的问题。\\n其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } public void study() { System.out.println(\\\"学生爱学习\\\"); } public void eat() { System.out.println(\\\"学生要吃饭\\\"); } public void sleep() { System.out.println(\\\"学生想睡觉\\\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\\"姓名是：\\\"+s.getName()); System.out.println(\\\"年龄是：\\\"+s.getAge()); } }45 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\\nA: 方法名和类名相同\\nB: 没有返回值类型\\nC: 没有返回值 注意事项\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\\nA: 无参+setXxx()\\nB: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\\\"张曼玉\\\",20); ss.show(); } }46 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\\nA: 加载 Student.class 文件进内存\\nB: 在栈中为 s 开辟空间\\nC: 在堆中为学生对象开辟空间\\nD: 为学生对象的成员变量赋默认值\\nE: 为学生对象的成员变量赋显示值\\nF: 通过构造方法给成员变量赋值\\nG: 对象构造完毕，把地址赋值给 s 变量 47 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\\nA: 随着类的加载而加载\\nB: 优先于对象存在\\nC: 被所有对象共享\\n这也是判断我们是不是该使用静态的条件\\n举例：饮水机（可共享 static) 和水杯例子。\\nD: 可以通过类名调用\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\\nA: 普通成员方法\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\nB: 静态成员方法\\n只能访问静态成员变量，静态成员方法\\n简记：静态只能访问静态\\n注意：\\n静态中是不能有 this 的。\\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\"); s1.show(); /* Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\"); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\"); s3.show(); */ Student s2 = new Student(\\\"马云\\\",35); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33); s3.show(); } }/* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\\"show\\\"); } public static void show2() { System.out.println(\\\"show2\\\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026ensp; } }/* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\\"林青霞\\\"); } }48 静态成员变量和普通成员变量的区别（理解） 所属不同\\n静态属于类的，称为类变量\\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\\n静态在方法区的静态区\\n非静态在堆内存 生命周期不同\\n静态随着类的加载而加载，随着类的消失而消失\\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\n非静态只能通过对象名调用 49 main 方法是静态的（理解） public static void main(String[] args)public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\nString[] args:\\n早期出现是为了接收键盘录入数据的。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"面向对象思想理解\\\"\\u003e\\u003cspan\\u003e35 面向对象思想（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e面向对象是基于面向过程的一种编程思想\\u003c/li\\u003e\\n\\u003cli\\u003e思想特点：\\u003cbr\\u003e\\nA: 是一种更符合我们思考习惯的思想\\u003cbr\\u003e\\nB: 把复杂的问题简单化\\u003cbr\\u003e\\nC: 让我们从执行者变成了指挥者\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\nA: 洗衣服\\u003cbr\\u003e\\nB: 吃饭\\u003cbr\\u003e\\nC: 买电脑\\u003c/li\\u003e\\n\\u003cli\\u003e举例并代码体现\\n把大象装进冰箱\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类与对象掌握\\\"\\u003e\\u003cspan\\u003e36 类与对象（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\\u003c/li\\u003e\\n\\u003cli\\u003e现实世界事物是如何表达的呢？\\n属性：外在特征\\u003cbr\\u003e\\n行为：内在行为\\u003c/li\\u003e\\n\\u003cli\\u003e我们学习的是 java 语言，它最基本的单位是类。\\u003cbr\\u003e\\n所以我们要学会用类来体现一个事物。\\u003c/li\\u003e\\n\\u003cli\\u003e类：是一组相关的属性和行为的集合\\u003c/li\\u003e\\n\\u003cli\\u003e对象：是该类事物的具体个体。\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\n学生 类\\u003cbr\\u003e\\n张三 对象\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的组成掌握\\\"\\u003e\\u003cspan\\u003e37 类的组成（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e成员变量\\u003cbr\\u003e\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e成员方法\\u003cbr\\u003e\\n其实就是方法，只不过不需要 static 了\\u003c/li\\u003e\\n\\u003cli\\u003e案例：\\u003cbr\\u003e\\n学生类\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  String name;\\n  int age;\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的使用掌握\\\"\\u003e\\u003cspan\\u003e38 类的使用（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e创建对象\\u003cbr\\u003e\\n格式：类名 对象名 = new 类名 ();\\u003c/li\\u003e\\n\\u003cli\\u003e使用成员\\u003cbr\\u003e\\n成员变量：对象名。变量名；\\n成员方法：对象名。方法名 (\\u0026hellip;);\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"成员变量和局部变量的区别理解\\\"\\u003e\\u003cspan\\u003e39 成员变量和局部变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e在类中的位置不同\\u003cbr\\u003e\\nA: 成员变量 类中，方法外\\u003cbr\\u003e\\nB: 局部变量 方法的形式参数，或者方法体中\\u003c/li\\u003e\\n\\u003cli\\u003e在内存中的位置不同\\u003cbr\\u003e\\nA: 成员变量 在堆中\\u003cbr\\u003e\\nB: 局部变量 在栈中\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\u003cbr\\u003e\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\\u003c/li\\u003e\\n\\u003cli\\u003e初始化值不同\\u003cbr\\u003e\\nA: 成员变量 有默认初始化值\\u003cbr\\u003e\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"形式参数问题理解\\\"\\u003e\\u003cspan\\u003e40 形式参数问题（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e基本类型\\u003cbr\\u003e\\n基本类型作为形式参数，需要的是该基本类型的值。\\u003c/li\\u003e\\n\\u003cli\\u003e引用类型\\u003cbr\\u003e\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"匿名对象理解\\\"\\u003e\\u003cspan\\u003e41 匿名对象（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e匿名对象：没有名字的对象。是对象的简化书写方式。\\u003c/li\\u003e\\n\\u003cli\\u003e使用场景\\u003cbr\\u003e\\nA: 调用方法，仅仅只调用一次\\u003cbr\\u003e\\nB: 作为实际参数传递\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"封装掌握\\\"\\u003e\\u003cspan\\u003e42 封装（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e隐藏实现细节，提供公共的访问方式\\u003c/li\\u003e\\n\\u003cli\\u003e好处：\\u003cbr\\u003e\\nA: 隐藏实现细节，提供公共的访问方式\\u003cbr\\u003e\\nB: 提高了代码的复用性\\u003cbr\\u003e\\nC: 提高了代码的安全性\\u003c/li\\u003e\\n\\u003cli\\u003e使用原则\\u003cbr\\u003e\\nA: 把成员变量隐藏\\u003cbr\\u003e\\nB: 给出该成员变量对应的公共访问方式\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"private-关键字掌握\\\"\\u003e\\u003cspan\\u003e43 private 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个权限修饰符\\u003c/li\\u003e\\n\\u003cli\\u003e可以修饰类的成员（成员变量和成员方法）\\u003c/li\\u003e\\n\\u003cli\\u003e仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  private String name;\\n  private int age;\\n\\n  public void setName(String n) {\\n   name = n;\\n  }\\n\\n  public String getName() {\\n   return name;\\n  }\\n\\n  public void setAge(int a) {\\n   age = a;\\n  }\\n\\n  public int getAge() {\\n   return age;\\n  }\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"this-关键字掌握\\\"\\u003e\\u003cspan\\u003e44 this 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003ethis：代表本类的对象\\u003c/li\\u003e\\n\\u003cli\\u003e应用场景：\\u003cbr\\u003e\\n解决了局部变量隐藏成员变量的问题。\\u003cbr\\u003e\\n其他用法和 super 一起讲。\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public void setName(String name) {//局部变量\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n\\n    public void study() {\\n      System.out.println(\\\"学生爱学习\\\");\\n    }\\n\\n    public void eat() {\\n      System.out.println(\\\"学生要吃饭\\\");\\n    }\\n\\n    public void sleep() {\\n      System.out.println(\\\"学生想睡觉\\\");\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      Student s = new Student();\\n\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n\\n      s.show();\\n      s.study();\\n      s.eat();\\n      s.sleep();\\n\\n      System.out.println(\\\"姓名是：\\\"+s.getName());\\n      System.out.println(\\\"年龄是：\\\"+s.getAge());\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"构造方法掌握\\\"\\u003e\\u003cspan\\u003e45 构造方法（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e作用：对对象的数据进行初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\nA: 方法名和类名相同\\u003cbr\\u003e\\nB: 没有返回值类型\\u003cbr\\u003e\\nC: 没有返回值\\u003c/li\\u003e\\n\\u003cli\\u003e注意事项\\u003cbr\\u003e\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\u003cbr\\u003e\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\u003cbr\\u003e\\n建议：我们自己手动给出无参构造方法\\u003c/li\\u003e\\n\\u003cli\\u003e给成员变量赋值：\\u003cbr\\u003e\\nA: 无参+setXxx()\\u003cbr\\u003e\\nB: 带参\\u003c/li\\u003e\\n\\u003cli\\u003e一个标准的代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public Student() {}\\n\\n    public Student(String name,int age) {//构造方法\\n      this.name = name;\\n      this.age = age;\\n    }\\n\\n    public void setName(String name) {\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      //无参+setXxx()\\n      Student s = new Student();\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n      s.show();\\n\\n      //带参\\n      Student ss = new Student(\\\"张曼玉\\\",20);\\n      ss.show();\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"对象的初始化过程理解\\\"\\u003e\\u003cspan\\u003e46 对象的初始化过程（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eStudent s = new Student(); 做了哪些事情\\u003cbr\\u003e\\nA: 加载 Student.class 文件进内存\\u003cbr\\u003e\\nB: 在栈中为 s 开辟空间\\u003cbr\\u003e\\nC: 在堆中为学生对象开辟空间\\u003cbr\\u003e\\nD: 为学生对象的成员变量赋默认值\\u003cbr\\u003e\\nE: 为学生对象的成员变量赋显示值\\u003cbr\\u003e\\nF: 通过构造方法给成员变量赋值\\u003cbr\\u003e\\nG: 对象构造完毕，把地址赋值给 s 变量\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"static-关键字掌握\\\"\\u003e\\u003cspan\\u003e47 static 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个状态修饰符。静态的意思\\u003c/li\\u003e\\n\\u003cli\\u003e它可以修饰成员变量和成员方法\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\n\\u003cstrong\\u003eA: 随着类的加载而加载\\u003cbr\\u003e\\nB: 优先于对象存在\\u003cbr\\u003e\\nC: 被所有对象共享\\u003c/strong\\u003e\\u003cbr\\u003e\\n这也是判断我们是不是该使用静态的条件\\u003cbr\\u003e\\n举例：饮水机（可共享 static) 和水杯例子。\\u003cbr\\u003e\\nD: 可以通过类名调用\\u003cbr\\u003e\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用\\u003c/li\\u003e\\n\\u003cli\\u003e方法访问特点\\u003cbr\\u003e\\nA: 普通成员方法\\u003cbr\\u003e\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\u003cbr\\u003e\\nB: 静态成员方法\\u003cbr\\u003e\\n\\u003cstrong\\u003e只能访问静态成员变量，静态成员方法\\u003cbr\\u003e\\n简记：静态只能访问静态\\u003c/strong\\u003e\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n\\u003cstrong\\u003e静态中是不能有 this 的。\\u003cbr\\u003e\\n先进内存的不能访问后进内存的。反之可以。\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\\n *\\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\\n */\\nclass Student {\\n  //姓名\\n  String name;\\n  //年龄\\n  int age;\\n  //班级编号\\n  //String classNumber;\\n  static String classNumber;\\n\\n  public Student(String name,int age) {\\n    this.name = name;\\n    this.age = age;\\n  }\\n\\n  public Student(String name,int age,String classNumber) {\\n    this.name = name;\\n    this.age = age;\\n    this.classNumber = classNumber;\\n  }\\n\\n  public void show() {\\n    System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber);\\n  }\\n}\\n\\nclass StudentDemo {\\n  public static void main(String[] args) {\\n    //创建学生对象\\n    Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\");\\n    s1.show();\\n\\n    /*\\n    Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\");\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\");\\n    s3.show();\\n    */\\n    Student s2 = new Student(\\\"马云\\\",35);\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33);\\n    s3.show();\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static: 静态关键字。\\n\\n  作用：\\n    可以修饰成员变量和成员方法\\n\\n  特点：\\n    A: 随着类的加载而加载\\n    B: 优先于对象存在\\n    C: 被类的所有对象共享\\n      这也是我们判断是否使用静态关键字的条件\\n\\n      饮水机：可以被静态修饰\\n      水杯：不可以被静态修饰\\n    D: 可以通过类名调用\\n      我们的调用既可以是对象，还可以是类名\\n*/\\nclass Student {\\n  public void show() {\\n    System.out.println(\\\"show\\\");\\n  }\\n\\n  public static void show2() {\\n    System.out.println(\\\"show2\\\");\\n  }\\n}\\n\\nclass StudentDemo2 {\\n  public static void main(String[] args) {\\n    Student s = new Student();\\n    s.show();\\n    s.show2();\\n\\n    Student.show2();\\n    //Student.show();\\u0026ensp;\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static 的注意事项：\\n    A: 在静态方法中是没有 this 关键字的\\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\\n    B: 静态只能访问静态。\\n      非静态的成员方法：\\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\n      静态的成员方法：\\n        只能访问静态的成员变量，静态的成员方法\\n*/\\n/*\\nclass Student {\\n  private String name;\\n\\n  public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this\\n    this.name = name;\\n  }\\n\\n  public void show() {\\n    System.out.println(name);\\n  }\\n}*/\\n\\nclass Demo {\\n  int x = 10;\\n  static int y = 20;\\n\\n  public void show() {\\n    System.out.println(x);\\n    System.out.println(y);\\n  }\\n\\n  public static void show2() {\\n    //System.out.println(x);\\u0026ensp;\\n    System.out.println(y);//√\\n  }\\n\\n  public void show3() {\\n    show();\\n    show2();\\n  }\\n\\n  public static void show4() {\\n    //show(); 只能访问静态的成员方法\\n    show2();\\n  }\\n}\\n\\nclass StudentDemo3 {\\n  public static void main(String[] args) {\\n    //Student.setName(\\\"林青霞\\\");\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"静态成员变量和普通成员变量的区别理解\\\"\\u003e\\u003cspan\\u003e48 静态成员变量和普通成员变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e所属不同\\u003cbr\\u003e\\n静态属于类的，称为类变量\\u003cbr\\u003e\\n非静态属于对象的，称为对象变量，实例变量\\u003c/li\\u003e\\n\\u003cli\\u003e内存空间不同\\u003cbr\\u003e\\n静态在方法区的静态区\\u003cbr\\u003e\\n非静态在堆内存\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\n静态随着类的加载而加载，随着类的消失而消失\\u003cbr\\u003e\\n非静态随着对象的创建而存在，随着对象的消失而消失\\u003c/li\\u003e\\n\\u003cli\\u003e调用不同\\u003cbr\\u003e\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\u003cbr\\u003e\\n非静态只能通过对象名调用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"main-方法是静态的理解\\\"\\u003e\\u003cspan\\u003e49 main 方法是静态的（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epublic static void main(String[] args)\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003epublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\u003cbr\\u003e\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\u003cbr\\u003e\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\u003cbr\\u003e\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\u003cbr\\u003e\\nString[] args:\\u003cbr\\u003e\\n早期出现是为了接收键盘录入数据的。\\u003c/p\\u003e\"},{\"title\":\"java 水仙花数（循环）\",\"date_published\":\"2019-01-14T17:30:24&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-range/\",\"url\":\"https://lruihao.cn/posts/java-range/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"水仙花数\",\"Java\"],\"summary\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1\\u003csup\\u003e3 + 5\\u003c/sup\\u003e3+ 3^3 = 153）。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 录入数据\",\"date_published\":\"2019-01-14T15:33:46&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-input/\",\"url\":\"https://lruihao.cn/posts/java-input/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"5 记忆格式 (1) 导包：\\nimport java.util.Scanner;\\n注意：位置在 class 的上面。\\n(2) 创建键盘录入对象：\\nScanner sc = new Scanner(System.in);\\n(3) 获取数据\\nint i = sc.nextInt();\\n(4) 练习：\\nA: 求两个数据的和\\nB: 获取两个数据中较大的值\\nC: 获取三个数据中较大的值\\nD: 比较两个数是否相等\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"记忆格式\\\"\\u003e\\u003cspan\\u003e5 记忆格式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e(1) 导包：\\u003cbr\\u003e\\nimport java.util.Scanner;\\u003cbr\\u003e\\n注意：位置在 class 的上面。\\u003cbr\\u003e\\n(2) 创建键盘录入对象：\\u003cbr\\u003e\\nScanner sc = new Scanner(System.in);\\u003cbr\\u003e\\n(3) 获取数据\\u003cbr\\u003e\\nint i = sc.nextInt();\\u003cbr\\u003e\\n(4) 练习：\\u003cbr\\u003e\\nA: 求两个数据的和\\u003cbr\\u003e\\nB: 获取两个数据中较大的值\\u003cbr\\u003e\\nC: 获取三个数据中较大的值\\u003cbr\\u003e\\nD: 比较两个数是否相等\\u003c/p\\u003e\"},{\"title\":\"java 标识符\",\"date_published\":\"2019-01-14T15:07:57&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/biaoshi/\",\"url\":\"https://lruihao.cn/posts/biaoshi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"1 标识符 给类，接口，方法或者变量起名字的符号\\n2 组成规则 A: 英文字母大小写\\nB: 数字\\nC:_和$\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"标识符\\\"\\u003e\\u003cspan\\u003e1 标识符\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%87%e8%af%86%e7%ac%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给类，接口，方法或者变量起名字的符号\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"组成规则\\\"\\u003e\\u003cspan\\u003e2 组成规则\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA: 英文字母大小写\\u003cbr\\u003e\\nB: 数字\\u003cbr\\u003e\\nC:_和$\\u003c/p\\u003e\"},{\"title\":\"英语语法--主谓一致\",\"date_published\":\"2019-01-12T13:02:49&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subject-verb/\",\"url\":\"https://lruihao.cn/posts/subject-verb/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常见情况\\\"\\u003e\\u003cspan\\u003e1 常见情况\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\\\"\\u003e\\u003cspan\\u003e1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003eEnglish \\u003cu\\u003eand\\u003c/u\\u003e chinese are two quite different languages.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eBoth\\u003c/u\\u003e brother \\u003cu\\u003eand\\u003c/u\\u003e sister tire of city life.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eNo\\u003c/u\\u003e desk \\u003cu\\u003eand\\u003c/u\\u003e (no) chair is seen in the hall.\\u003c/li\\u003e\\n\\u003cli\\u003eAll work \\u003cu\\u003eand\\u003c/u\\u003e \\u003cu\\u003eno\\u003c/u\\u003e play makes Jack a dull boy.\\u003c/li\\u003e\\n\\u003cli\\u003eThey each have been to the Forbidden city.\\neach 位于主语后，所以谓语动词用复数\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\u003c/p\\u003e\"},{\"title\":\"英语语法--形式倒装\",\"date_published\":\"2018-12-10T21:52:30&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-3/\",\"url\":\"https://lruihao.cn/posts/inversion-3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 形式倒装，句子本不是本来的语序。\\n0.1 may 位于句首，标祝愿 例句\\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e形式倒装，句子本不是本来的语序。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"may-位于句首标祝愿\\\"\\u003e\\u003cspan\\u003e0.1 may 位于句首，标祝愿\\u003c/span\\u003e\\n  \\u003ca href=\\\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMay you succeed.\\u003c/li\\u003e\\n\\u003cli\\u003eMay you have a happy holiday.\\u003c/li\\u003e\\n\\u003cli\\u003eLong live chairman Mao.（毛主席万古长青）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\\\"\\u003e\\u003cspan\\u003e0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前\\u003c/span\\u003e\\n  \\u003ca href=\\\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\"},{\"title\":\"英语语法--完全倒装\",\"date_published\":\"2018-12-10T21:14:51&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-2/\",\"url\":\"https://lruihao.cn/posts/inversion-2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 完全倒装：把整个谓语动词放到主语前。\\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e完全倒装：把整个谓语动词放到主语前。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"表方位或时间的副词-adv表地点的介词短语位于句首时\\\"\\u003e\\u003cspan\\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eHere comes the bus.\\u003c/li\\u003e\\n\\u003cli\\u003eIn the lecture hall of a university sits a professor.\\u003c/li\\u003e\\n\\u003cli\\u003eOut rushed the children.\\u003c/li\\u003e\\n\\u003cli\\u003eNow comes your turn.\\u003c/li\\u003e\\n\\u003cli\\u003eUp jumped the cat and caught the mouse.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eDown\\u003c/u\\u003e came the rain and \\u003cu\\u003eup\\u003c/u\\u003e went the umbrellas.\\u003c/li\\u003e\\n\\u003cli\\u003eAmong the people stood his friend,Jim.\\u003c/li\\u003e\\n\\u003cli\\u003e(To be) South of the river lies a small factory.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e但主语为表示人称的代词时无需倒装\\u003c/p\\u003e\"},{\"title\":\"英语语法--部分倒装\",\"date_published\":\"2018-12-08T17:52:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-1/\",\"url\":\"https://lruihao.cn/posts/inversion-1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。\\u003cstrong\\u003e以下内容纯手打！！\\u003c/strong\\u003e\\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 插件及 next 内置样式集\",\"date_published\":\"2018-11-24T16:54:09&#43;08:00\",\"date_modified\":\"2021-10-02T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nextplugin/\",\"url\":\"https://lruihao.cn/posts/nextplugin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 2021/10/2 更新\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/2 更新\\u003cbr\\u003e\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\u003cbr\\u003e\\n让文章写的好看又简洁又好用的插件！\\u003ca href=\\\"https://hexo.io/zh-cn/docs/tag-plugins.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 完整的标签列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://theme-next.org/docs/tag-plugins/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 插件列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"date_published\":\"2018-11-17T14:25:49&#43;08:00\",\"date_modified\":\"2018-11-17T14:25:49&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-bat/\",\"url\":\"https://lruihao.cn/posts/commit-bat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"bat\"],\"summary\":\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\ngit add * （添加需要提交的文件，这里全选） git commit -m \\u0026ldquo;提交信息\\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003egit add * （添加需要提交的文件，这里全选）\\u003c/li\\u003e\\n\\u003cli\\u003egit commit -m \\u0026ldquo;提交信息\\u0026rdquo;\\u003c/li\\u003e\\n\\u003cli\\u003egit push\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博採眾長 app\",\"date_published\":\"2018-11-12T16:04:04&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fas-app/\",\"url\":\"https://lruihao.cn/posts/fas-app/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"lua\",\"fusion\"],\"summary\":\"0.7 介绍 使用 fusion app 对网页进行的封装。\\n功能：\\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"介绍\\\"\\u003e\\u003cspan\\u003e0.7 介绍\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bb%8b%e7%bb%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e使用 fusion app 对网页进行的封装。\\u003cbr\\u003e\\n功能：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e浏览本博客，主页\\u003c/li\\u003e\\n\\u003cli\\u003e私人网盘\\u003c/li\\u003e\\n\\u003cli\\u003e2048 等小游戏\\u003c/li\\u003e\\n\\u003cli\\u003e在线客服，QQ 等\\u003c/li\\u003e\\n\\u003cli\\u003epc 与移动浏览器标识切换\\u003c/li\\u003e\\n\\u003cli\\u003e留言，打赏，博主日志等\\u003c/li\\u003e\\n\\u003cli\\u003e分享功能，分享到 QQ，微信，浏览器打开等\\u003c/li\\u003e\\n\\u003cli\\u003eapp 内添加书签，自动记录历史记录，刷新等\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e配合博客的\\u003ccode\\u003ePWA + quicklink\\u003c/code\\u003e功能可实现离线浏览\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"},{\"title\":\"next 添加支持 pdf\",\"date_published\":\"2018-11-09T12:51:48&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/next-pdf/\",\"url\":\"https://lruihao.cn/posts/next-pdf/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\n7 iframe(推荐) 8 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e最新的 next 主题已经更新了支持 PDF 功能，\\u003cdel\\u003e写法也和链接写法一样\\u003c/del\\u003e，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"iframe推荐\\\"\\u003e\\u003cspan\\u003e7 iframe(推荐)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#iframe%e6%8e%a8%e8%8d%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003ciframe src=\\\"/posts/next-pdf/1.pdf\\\" style=\\\"width: 100%;height: 800px;\\\"\\u003e\\u003c/iframe\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"模板自带\\\"\\u003e\\u003cspan\\u003e8 模板自带\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\u003c/p\\u003e\"},{\"title\":\"js 判断用户设备类型及平台\",\"date_published\":\"2018-11-03T23:35:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-device/\",\"url\":\"https://lruihao.cn/posts/js-device/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"他山之石\"],\"summary\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\n\",\"content_html\":\"\\u003cp\\u003e前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\u003c/p\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"Git 常用指令汇总\",\"date_published\":\"2018-10-30T08:59:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git/\",\"url\":\"https://lruihao.cn/posts/git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"image\":\"/posts/git/images/relation-1.png\",\"summary\":\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \",\"content_html\":\"\\u003cul\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e工作区\\u003c/strong\\u003e：就是你在电脑里能看到的目录。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e暂存区\\u003c/strong\\u003e：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e版本库\\u003c/strong\\u003e：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"网站备案之旅\",\"date_published\":\"2018-10-29T23:16:26&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beian/\",\"url\":\"https://lruihao.cn/posts/beian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\",\"网站备案\"],\"summary\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e备案\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\u003cbr\\u003e\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"shell 脚本初体验\",\"date_published\":\"2018-10-29T11:57:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/shell/\",\"url\":\"https://lruihao.cn/posts/shell/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"shell\",\"linux\"],\"summary\":\"今天上机学了几个小命令\\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\\n\",\"content_html\":\"\\u003cp\\u003e今天上机学了几个小命令\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eread\\u003c/li\\u003e\\n\\u003cli\\u003eecho\\u003c/li\\u003e\\n\\u003cli\\u003eif\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e然后自己写了一个小脚本觉得还挺有趣的\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"},{\"title\":\"windows 上搭建 web 服务器\",\"date_published\":\"2018-10-26T21:56:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-win/\",\"url\":\"https://lruihao.cn/posts/web-server-win/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"windows\"],\"summary\":\" 我用的 win10\\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我用的 win10\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开控制面板\\\"\\u003e\\u003cspan\\u003e0.1 打开控制面板\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\u003cbr\\u003e\\n\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/web-server-win/images/1.png\\\" title=\\\"打开控制面板\\\" data-thumbnail=\\\"/posts/web-server-win/images/1.png\\\" data-sub-html=\\\"\\u003ch2\\u003e打开控制面板\\u003c/h2\\u003e\\u003cp\\u003e打开控制面板\\u003c/p\\u003e\"},{\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"date_published\":\"2018-10-26T21:11:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gituse/\",\"url\":\"https://lruihao.cn/posts/gituse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"0.9 config git config --global user.name \\\"Your Name\\\" git config --global user.email \\\"email@example.com\\\" 第一次使用 git 的时候需要设置提交者信息。\\n注意：\\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"config\\\"\\u003e\\u003cspan\\u003e0.9 config\\u003c/span\\u003e\\n  \\u003ca href=\\\"#config\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003egit config --global user.name \\\"Your Name\\\"\\ngit config --global user.email \\\"email@example.com\\\"\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次使用 git 的时候需要设置提交者信息。\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n如果用了 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\u003cbr\\u003e\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项重新配置即可，新的设定保存在当前项目的 \\u003ccode\\u003e.git/config\\u003c/code\\u003e 文件里。\\u003c/p\\u003e\"},{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"ttf 字体压缩\",\"date_published\":\"2018-10-17T21:38:06&#43;08:00\",\"date_modified\":\"2024-08-16T16:43:36&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-font/\",\"url\":\"https://lruihao.cn/posts/web-font/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"字体压缩\"],\"summary\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\n\",\"content_html\":\"\\u003cp\\u003eHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\u003c/p\\u003e\"},{\"title\":\"linux 编程初体验\",\"date_published\":\"2018-10-15T21:19:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-hello-c/\",\"url\":\"https://lruihao.cn/posts/linux-hello-c/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"C\"],\"summary\":\" 在 Linux 上编译 c 语言文件。\\n0.7 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e在 Linux 上编译 c 语言文件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开-vim-编辑器\\\"\\u003e\\u003cspan\\u003e0.7 打开 vim 编辑器\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e（没有就用 vi, 或者先安装 vim\\u003ccode\\u003esudo apt-get install vim\\u003c/code\\u003e)\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evim\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"编辑文件\\\"\\u003e\\u003cspan\\u003e0.8 编辑文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e打开文件编辑器之后编辑文件\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" title=\\\"edit\\\" data-thumbnail=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" data-sub-html=\\\"\\u003ch2\\u003eedit\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\\\"edit\\\" height=\\\"725\\\" width=\\\"1191\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"流水线\",\"date_published\":\"2018-10-09T16:21:04&#43;08:00\",\"date_modified\":\"2018-10-09T16:21:04&#43;08:00\",\"id\":\"https://lruihao.cn/posts/liushuixian/\",\"url\":\"https://lruihao.cn/posts/liushuixian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"summary\":\"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"概念\\\"\\u003e\\u003cspan\\u003e15 概念\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a6%82%e5%bf%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\u003c/p\\u003e\"},{\"title\":\"计算机数据\",\"date_published\":\"2018-10-08T23:01:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/data/\",\"url\":\"https://lruihao.cn/posts/data/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"summary\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据的表示\\\"\\u003e\\u003cspan\\u003e0.1 数据的表示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e数据的表示可分为：原码，反码和补码。（二进制）\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e原码：符号位 0 为正，1 为负。\\u003c/li\\u003e\\n\\u003cli\\u003e反码：符号位 0 为正，1 为负。\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：反码同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e补码：\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反再 +1。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e移码：补码符号位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据表示范围\\\"\\u003e\\u003cspan\\u003e0.2 数据表示范围\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e原码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e反码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e补码： \\u003ccode\\u003e-z^n-1 ~ 2^n-1 - 1\\u003c/code\\u003e （补码正 0 和负 0 相同，少占一数位，就多一个范围）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e例：\\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\u003c/p\\u003e\"},{\"title\":\"网页夜间效果\",\"date_published\":\"2018-09-27T13:13:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/night/\",\"url\":\"https://lruihao.cn/posts/night/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。\\u003ccode\\u003ecss+js\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"date_published\":\"2018-09-26T16:36:08&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/crash-cheat/\",\"url\":\"https://lruihao.cn/posts/crash-cheat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"linux/centos 下的安装 git\",\"date_published\":\"2018-09-22T22:28:45&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-git/\",\"url\":\"https://lruihao.cn/posts/linux-git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"linux\"],\"summary\":\"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注： unzip 命令用不了，具体步骤如下：\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"下载-git\\\"\\u003e\\u003cspan\\u003e0.11 下载 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%8b%e8%bd%bd-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003ewget https://github.com/git/git/archive/v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装依赖\\\"\\u003e\\u003cspan\\u003e0.12 安装依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"解压-git\\\"\\u003e\\u003cspan\\u003e0.13 解压 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a7%a3%e5%8e%8b-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003eunzip v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注：\\nunzip 命令用不了，具体步骤如下：\\u003c/p\\u003e\"},{\"title\":\"每一个优秀的人，都有一段沉默的时光\",\"date_published\":\"2018-09-21T21:11:25&#43;08:00\",\"date_modified\":\"2018-09-21T21:11:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mood/\",\"url\":\"https://lruihao.cn/posts/mood/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"summary\":\" 手机便签里保存的一段话，也记不得在哪看到的了。\\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e手机便签里保存的一段话，也记不得在哪看到的了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\u003cbr\\u003e\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\u003c/p\\u003e\\n\\u003cp\\u003e人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\u003cbr\\u003e\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\u003c/p\\u003e\"},{\"title\":\"Vim 速查表\",\"date_published\":\"2018-08-31T11:46:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vim/\",\"url\":\"https://lruihao.cn/posts/vim/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vim\",\"他山之石\"],\"summary\":\"Vim 速查表 - 帮你提高 N 倍效率\\n\",\"content_html\":\"\\u003cp\\u003eVim 速查表 - 帮你提高 N 倍效率\\u003c/p\\u003e\"},{\"title\":\"hexo next 主题添加字数统计（2018）\",\"date_published\":\"2018-08-30T13:15:50&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"url\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"字数统计\"],\"summary\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition warning open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-exclamation-triangle\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e警告\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003e2018/11/1 说明\\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"hexo d 出错\",\"date_published\":\"2018-08-21T22:15:01&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-d-error/\",\"url\":\"https://lruihao.cn/posts/hexo-d-error/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\n现在做一下记录，防止以后出错用。\\n错误如下\\n\",\"content_html\":\"\\u003cp\\u003e搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\u003cbr\\u003e\\n现在做一下记录，防止以后出错用。\\u003cbr\\u003e\\n错误如下\\u003c/p\\u003e\"},{\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"date_published\":\"2018-08-20T16:16:40&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dongtaisub/\",\"url\":\"https://lruihao.cn/posts/dongtaisub/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本文适合我这种纯小白。\\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\\u003ca href=\\\"https://www.jianshu.com/p/df2c844eeabf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（关键词：js, 后加载）\\u003cbr\\u003e\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"“高逼格”C 语言画心\",\"date_published\":\"2018-08-15T16:33:12&#43;08:00\",\"date_modified\":\"2018-08-15T16:33:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/heart/\",\"url\":\"https://lruihao.cn/posts/heart/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C\"],\"summary\":\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\n大一在机房拍的图 \",\"content_html\":\"\\u003cp\\u003e七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" title=\\\"大一在机房拍的图\\\" data-thumbnail=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" data-sub-html=\\\"\\u003ch2\\u003e截图\\u003c/h2\\u003e\\u003cp\\u003e大一在机房拍的图\\u003c/p\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\\\"截图\\\" height=\\\"210\\\" width=\\\"210\\\"\\u003e\\u003c/a\\u003e\\u003cfigcaption class=\\\"image-caption\\\"\\u003e大一在机房拍的图\\u003c/figcaption\\u003e\\n  \\u003c/figure\\u003e\\u003c/p\\u003e\"},{\"title\":\"git index.lock\",\"date_published\":\"2018-08-14T19:21:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-index-lock/\",\"url\":\"https://lruihao.cn/posts/git-index-lock/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\n有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\\n\",\"content_html\":\"\\u003cp\\u003e在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\\n\\nIf no other git process is currently running, this probably means a\\ngit process crashed in this repository earlier. Make sure no other git\\nprocess is running and remove the file manually to continue.\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\u003c/p\\u003e\\n\\u003cp\\u003e有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 \\u003ccode\\u003erm -f ./.git/index.lock\\u003c/code\\u003e 。之后就可以正常使用。\\u003c/p\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"hexo 博客自定义 console log\",\"date_published\":\"2018-08-04T16:19:06&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/console-log/\",\"url\":\"https://lruihao.cn/posts/console-log/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\n我主要用到的工具：\\nconsole.log() Notepad++ 在线图片转文字工具 \",\"content_html\":\"\\u003cp\\u003e看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\u003cbr\\u003e\\n我主要用到的工具：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003econsole.log()\\u003c/li\\u003e\\n\\u003cli\\u003eNotepad++\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://picascii.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线图片转文字工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"最短路入门\",\"date_published\":\"2018-08-03T16:27:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/zuiduanlu/\",\"url\":\"https://lruihao.cn/posts/zuiduanlu/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"最短路\",\"ACM\"],\"summary\":\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"dijkstra-算法\\\"\\u003e\\u003cspan\\u003e1 Dijkstra 算法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#dijkstra-%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"1-定义概览\\\"\\u003e\\u003cspan\\u003e1.1 1. 定义概览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\u003c/p\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"在线离线算法\",\"date_published\":\"2018-07-26T09:57:32&#43;08:00\",\"date_modified\":\"2018-07-26T09:57:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"url\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"在线离线算法\"],\"summary\":\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"在线算法\\\"\\u003e\\u003cspan\\u003e1 \\u003ca href=\\\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\u003c/p\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"杨辉三角\",\"date_published\":\"2018-07-22T11:41:15&#43;08:00\",\"date_modified\":\"2021-09-26T12:04:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"url\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"杨辉三角\"],\"summary\":\"百度知道 1\\n1 1\\n1 2 1\\n1 3 3 1\\n1 4 6 4 1\\n1 5 10 10 5 1\\n1 6 15 20 15 6 1\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://zhidao.baidu.com/question/367384574464313844.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百度知道\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n1\\u003c/p\\u003e\\n\\u003cp\\u003e1 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 2 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 3 3 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 4 6 4 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 5 10 10 5 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 6 15 20 15 6 1\\u003c/p\\u003e\\n\\u003chr\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"简单背包\",\"date_published\":\"2018-06-16T13:18:43&#43;08:00\",\"date_modified\":\"2018-06-16T13:18:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"url\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"C\"],\"summary\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！\\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ccode\\u003e弱鸡还是弱鸡啊最简单的背包问题——。——！\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e5 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"date_published\":\"2018-06-15T07:51:21&#43;08:00\",\"date_modified\":\"2018-06-15T07:51:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"summary\":\" 来自一位大佬的演讲\\n尊敬的领导、教练，亲爱的参赛选手们：\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e来自一位大佬的演讲\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e尊敬的领导、教练，亲爱的参赛选手们：\\u003cbr\\u003e\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\u003cbr\\u003e\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\u003cbr\\u003e\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\u003cbr\\u003e\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\u003cbr\\u003e\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\u003cbr\\u003e\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"},{\"title\":\"F.sorting\",\"date_published\":\"2018-06-14T22:49:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/f-sorting/\",\"url\":\"https://lruihao.cn/posts/f-sorting/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"summary\":\"\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" title=\\\"sorting.png\\\" data-thumbnail=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" data-sub-html=\\\"\\u003ch2\\u003esorting.png\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\\\"sorting.png\\\" height=\\\"697\\\" width=\\\"1049\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"位运算\",\"date_published\":\"2018-06-14T20:22:21&#43;08:00\",\"date_modified\":\"2018-06-14T20:22:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"url\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"位运算\"],\"summary\":\"1 1. \\u0026amp;运算 \\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1-运算\\\"\\u003e\\u003cspan\\u003e1 1. \\u0026amp;运算\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e8%bf%90%e7%ae%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"},{\"title\":\"各种 Links 汇总与分享\",\"date_published\":\"2018-06-07T00:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/links/\",\"url\":\"https://lruihao.cn/posts/links/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 2021/10/1 更新\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/1 更新\\u003cbr\\u003e\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\u003c/p\\u003e\\n\\u003cp\\u003e我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"戏子春秋\",\"date_published\":\"2018-06-03T19:41:32&#43;08:00\",\"date_modified\":\"2018-06-03T19:41:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"url\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\"],\"summary\":\" 从此故乡只有冬夏，再无春秋。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从此故乡只有冬夏，再无春秋。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo+github 搭建个人博客及美化\",\"date_published\":\"2018-06-01T14:34:23&#43;08:00\",\"date_modified\":\"2021-10-03T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexobuild/\",\"url\":\"https://lruihao.cn/posts/hexobuild/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\"],\"summary\":\"更多关于 hexo\\n17 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"/categories/hexo/\\\"\\u003e更多关于 hexo\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"首先\\\"\\u003e\\u003cspan\\u003e17 首先\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a6%96%e5%85%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://hexo.io/zh-cn/docs/index.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我们的第一手资料，也是最好的。\\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\u003c/p\\u003e\"},{\"title\":\"hexo 添加图片，音乐，链接，视频\",\"date_published\":\"2018-05-31T23:19:22&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexowrite/\",\"url\":\"https://lruihao.cn/posts/hexowrite/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如果实在搞得头晕直接去 \\u003ca href=\\\"https://www.jianshu.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简书\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 \\u003ca href=\\\"https://maxiang.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e马克飞象，专为印象笔记打造的 Markdown 编辑器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://www.typora.io/#\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etypora 也是不错的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，突然发现 \\u003ca href=\\\"https://www.csdn.net/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecsdn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 也支持 Markdown 编译器了\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"猴子与哪吒\",\"date_published\":\"2018-05-31T10:09:15&#43;08:00\",\"date_modified\":\"2018-05-31T10:09:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"url\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/猴子与哪吒/images/hznz.jpg\",\"summary\":\"一直觉得中国古代神话\\n能称得上传奇的只有两个人物：\\n一是猴子\\n一是哪吒\\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\\n三年怀胎生了个哪吒 东海屠龙翻江倒海\\n可以说 除了这两人 没人再能当得起离经放纵四个字的\\n但称得上悲剧的 约摸也只有这两个\\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\n\",\"content_html\":\"\\u003cp\\u003e一直觉得中国古代神话\\u003c/p\\u003e\\n\\u003cp\\u003e能称得上传奇的只有两个人物：\\u003c/p\\u003e\\n\\u003cp\\u003e一是猴子\\u003c/p\\u003e\\n\\u003cp\\u003e一是哪吒\\u003c/p\\u003e\\n\\u003cp\\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\\u003c/p\\u003e\\n\\u003cp\\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\\u003c/p\\u003e\\n\\u003cp\\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\\u003c/p\\u003e\\n\\u003cp\\u003e但称得上悲剧的 约摸也只有这两个\\u003c/p\\u003e\\n\\u003cp\\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\u003c/p\\u003e\\n\\u003cp\\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\u003c/p\\u003e\"},{\"title\":\"Hello World\",\"date_published\":\"2018-05-28T20:01:01&#43;08:00\",\"date_modified\":\"2024-07-28T22:39:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hello-world/\",\"url\":\"https://lruihao.cn/posts/hello-world/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/hello-world/images/lunyu.jpg\",\"summary\":\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\n其實也不重要了，還望披荊斬棘，不改初心。\\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\u003cbr\\u003e\\n其實也不重要了，還望披荊斬棘，不改初心。\\u003c/p\\u003e\\n\\u003cp\\u003e不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\u003c/p\\u003e\\n\\u003cp\\u003e從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "posts/fixit-docs-bookmark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS 实现时间轴、背景图 Loading 和渐变边框 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\"><meta name=keywords content='CSS,Scss'><meta itemprop=name content=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><meta itemprop=description content=\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\"><meta itemprop=datePublished content=\"2024-07-14T13:03:31+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=wordCount content=\"1431\"><meta itemprop=image content=\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\"><meta itemprop=keywords content=\"CSS,Scss\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/fixit-docs-bookmark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><meta property=\"og:description\" content=\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-07-14T13:03:31+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-28T17:12:48+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"Scss\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\"><meta name=twitter:title content=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><meta name=twitter:description content=\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 loading 和渐变边框 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/d1fc0c7/ title=\"探索 Amazon S3 的无限存储潜力\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ title=\"🔖 Embed bookmark of FixIt Docs.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/fixit-docs-bookmark/index.md title=\"CSS 实现时间轴、背景图 loading 和渐变边框 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/fixit-docs-bookmark\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/fixit-docs-bookmark\\/images\\/featured-image.webp\",\"width\":1600,\"height\":668}],\"genre\":\"posts\",\"keywords\":\"CSS, Scss\",\"wordcount\":1431,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/fixit-docs-bookmark\\/\",\"datePublished\":\"2024-07-14T13:03:31+08:00\",\"dateModified\":\"2024-07-28T17:12:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/fixit-docs-bookmark.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/fixit-docs-bookmark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS 实现时间轴、背景图 Loading 和渐变边框</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>CSS 奇技淫巧</span>\n<span class=collection-count>1</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><span class=active title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</span></li></ul><div class=collection-nav-simple><i class=\"fa-solid fa-angle-left collection-nav-item text-secondary\" aria-hidden=true></i><span class=text-secondary>1/1</span><i class=\"fa-solid fa-angle-right collection-nav-item text-secondary\" aria-hidden=true></i></div></nav></div></div><div class=\"details collection-details\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>现代 CSS 解决方案</span>\n<span class=collection-count>5</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？</a></li><li class=collection-item><a href=/posts/scrollbar-styling/ title=标准滚动条控制规范>标准滚动条控制规范</a></li><li class=collection-item><span class=active title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</span></li><li class=collection-item><a href=/posts/drop-shadow/ title=异形元素怎么设置阴影？>异形元素怎么设置阴影？</a></li><li class=collection-item><a href=/posts/css-round/ title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位</a></li></ul><div class=collection-nav-simple><a href=/posts/scrollbar-styling/ class=collection-nav-item rel=prev title=标准滚动条控制规范><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>3/5</span><a href=/posts/drop-shadow/ class=collection-nav-item rel=next title=异形元素怎么设置阴影？><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>CSS 实现时间轴、背景图 Loading 和渐变边框</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/ class=post-collection title=\"合集 - CSS 奇技淫巧\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> CSS 奇技淫巧</a>&ensp;<a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-14 13:03:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-14>2024-07-14</time></span>&nbsp;<span title=\"更新于 2024-07-28 17:12:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-28>2024-07-28</time></span>&nbsp;<span title=\"1431 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/fixit-docs-bookmark/images/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/fixit-docs-bookmark/images/featured-image.webp height=668 width=1600></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#背景>背景</a></li><li><a href=#时间轴>时间轴</a></li><li><a href=#背景图-loading-效果>背景图 loading 效果</a></li><li><a href=#全尺寸带圆角渐变边框>全尺寸带圆角渐变边框</a></li><li><a href=#最后的效果>最后的效果</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-28，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。</p><h2 class=heading-element id=背景><span>1 背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最近在调整 FixIt 主题的官方文档，调整过程中总觉得首页空荡荡的少了些内容，然后就在脑海里构思了如本文封面图所示的效果，希望引导用户阅读文档。</p><p>需求分析：</p><ol><li>整体布局：左右两栏，左侧为主题文档大纲，右侧为网站预览图</li><li>左侧需要显示时间轴，时间轴带有跑马灯动画效果（暗指文档阅读顺序）</li><li>右侧加载网站预览图时，需要有 loading 效果</li><li>整体边框需要渐变效果</li></ol><p>第一点很简单，一个 <code>flex</code> 布局就能搞定了，这里不再展开。</p><p>接下来我们重点看看如何实现时间轴、背景图 loading 效果和渐变边框。</p><h2 class=heading-element id=时间轴><span>2 时间轴</span>\n<a href=#%e6%97%b6%e9%97%b4%e8%bd%b4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>先睹为快，效果如下：</p><p><figure><a class=lightgallery target=_blank href=/posts/fixit-docs-bookmark/images/demo-outline.gif title=从上到下依次点亮时间轴 data-thumbnail=/posts/fixit-docs-bookmark/images/demo-outline.gif data-sub-html=\"<h2>时间轴动画</h2><p>从上到下依次点亮时间轴</p>\"><img loading=lazy src=/posts/fixit-docs-bookmark/images/demo-outline.gif alt=时间轴动画 height=192 width=264></a><figcaption class=image-caption>从上到下依次点亮时间轴</figcaption></figure></p><p>我不希望时间轴的实现和其他 UI 框架一样拥有复杂的 DOM 结构，所以使用最简单的 <code>ul</code> 和 <code>li</code> 即可，关键代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>ul</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;docs-outline&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>li</span><span class=p>&gt;&lt;</span><span class=nt>a</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;{{ $page1.Permalink }}&#34;</span><span class=p>&gt;</span>{{ $page1.LinkTitle }}<span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;&lt;/</span><span class=nt>li</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>li</span><span class=p>&gt;&lt;</span><span class=nt>a</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;{{ $page2.Permalink }}&#34;</span><span class=p>&gt;</span>{{ $page2.LinkTitle }}<span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;&lt;/</span><span class=nt>li</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>li</span><span class=p>&gt;&lt;</span><span class=nt>a</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;{{ $page3.Permalink }}&#34;</span><span class=p>&gt;</span>{{ $page3.LinkTitle }}<span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;&lt;/</span><span class=nt>li</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>li</span><span class=p>&gt;&lt;</span><span class=nt>a</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;{{ $page4.Permalink }}&#34;</span><span class=p>&gt;</span>{{ $page4.LinkTitle }}<span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;&lt;/</span><span class=nt>li</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>ul</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>DOM 结构就这么简单，重点在于 CSS 的实现，实现思路如下：</p><ul><li>先把 <code>ul</code> 设置 <code>list-style: none</code>，去掉默认的 <code>li</code> 样式</li><li>利用 <code>::before</code> 和 <code>::after</code> 伪元素实现时间轴的小圆点和连接线</li><li>动画效果：四个小圆点默认和连接线一样灰色，然后依次点亮，可以使用 <code>animation-delay</code> 属性实现</li></ul><p>动画效果关键帧代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nt>li</span><span class=nd>::before</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>border</span><span class=o>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-width</span><span class=p>)</span> <span class=ni>solid</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=na>animation-name</span><span class=o>:</span> <span class=n>border-color-fade</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>animation-duration</span><span class=o>:</span> <span class=mi>2</span><span class=kt>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>animation-iteration-count</span><span class=o>:</span> <span class=ni>infinite</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>animation-delay</span><span class=o>:</span> <span class=nf>calc</span><span class=p>(</span><span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-index</span><span class=p>)</span> <span class=o>*</span> <span class=mi>0</span><span class=mf>.3</span><span class=kt>s</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>@keyframes</span> <span class=nt>border-color-fade</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nt>0</span><span class=err>%</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>border-color</span><span class=o>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nt>50</span><span class=err>%</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>border-color</span><span class=o>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-circle-color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nt>100</span><span class=err>%</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>border-color</span><span class=o>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>timeline-color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>通过 <code>nth-child</code> 选择器来设置 <code>--timeline-index</code> 来线性增加每个小圆点的动画延迟时间，从而在视觉上出现依次点亮的效果。</p><p>如果使用 SCSS 可以简化代码，如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=k>@for</span> <span class=nv>$i</span> <span class=ow>from</span> <span class=mi>1</span> <span class=ow>through</span> <span class=mi>4</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nt>li</span><span class=nd>:nth-child</span><span class=o>(</span><span class=si>#{</span><span class=nv>$i</span><span class=si>}</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>--timeline-index</span><span class=o>:</span> <span class=si>#{</span><span class=nv>$i</span><span class=si>}</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>&amp;</span><span class=nd>::before</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>content</span><span class=o>:</span> <span class=s1>&#39;</span><span class=si>#{</span><span class=nv>$i</span><span class=si>}</span><span class=s1>&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>如果需要在小圆点的内部显示序号，可以像设置 <code>--timeline-index</code> 一样依次设置 <code>content</code>。</p><p>然后在小圆点点亮动画过程中同时转变 <code>color: transparent</code> 到具体的颜色即可。</p><h2 class=heading-element id=背景图-loading-效果><span>3 背景图 loading 效果</span>\n<a href=#%e8%83%8c%e6%99%af%e5%9b%be-loading-%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/fixit-docs-bookmark/images/demo-loading.gif title=\"先加载 loading 图再加重预览图\" data-thumbnail=/posts/fixit-docs-bookmark/images/demo-loading.gif data-sub-html=\"<h2>背景图 loading 效果</h2><p>先加载 loading 图再加重预览图</p>\"><img loading=lazy src=/posts/fixit-docs-bookmark/images/demo-loading.gif alt=\"背景图 loading 效果\" height=300 width=815></a><figcaption class=image-caption>先加载 loading 图再加重预览图</figcaption></figure></p><p>如果只是想实现图片的 loading 效果其实很简单，之前在「<a href=/posts/native-img-loading-lazy/>浏览器 IMG 图片原生懒加载 Loading=&ldquo;lazy&rdquo;</a>」中有介绍过，但是这次我是把图片当作背景图片使用的，那问题来了，不通过 JS 背景图片的 loading 效果怎么实现呢？</p><p>还是可以利用 <code>::before</code> 和 <code>::after</code> 伪元素，一个伪元素用来显示 loading 图，另一个伪元素用来显示背景图片。</p><p>原理：利用两张图片加载的时间差，由于 loading 图片很小，所以加载很快，而背景图片加载较慢，然后默认不设置 <code>z-index</code> 的情况下，后面的元素会在上层，所以在背景图片加载完成前，loading 图片会一直显示。</p><p>关键代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.docs-preview</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>&amp;</span><span class=o>::</span><span class=n>before</span><span class=o>,</span>\n</span></span><span class=line><span class=cl>  <span class=o>&amp;::</span><span class=n>after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>content</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>position</span><span class=o>:</span> <span class=ni>absolute</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>top</span><span class=o>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>left</span><span class=o>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>height</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-position</span><span class=o>:</span> <span class=ni>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-repeat</span><span class=o>:</span> <span class=ni>no-repeat</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=nd>::before</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-color</span><span class=o>:</span> <span class=nf>rgba</span><span class=p>(</span><span class=mi>204</span><span class=o>,</span> <span class=mi>204</span><span class=o>,</span> <span class=mi>204</span><span class=o>,</span> <span class=mi>0</span><span class=mf>.1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/loading.min.svg)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-size</span><span class=o>:</span> <span class=mi>60</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=o>[</span><span class=nt>data-theme</span><span class=o>=</span><span class=s1>&#39;dark&#39;</span><span class=o>]</span> <span class=k>&amp;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=na>background-color</span><span class=o>:</span> <span class=nf>rgba</span><span class=p>(</span><span class=mi>0</span><span class=o>,</span> <span class=mi>0</span><span class=o>,</span> <span class=mi>0</span><span class=o>,</span> <span class=mi>0</span><span class=mf>.1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=nd>::after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/apple-devices-preview.webp)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-size</span><span class=o>:</span> <span class=mi>130</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=全尺寸带圆角渐变边框><span>4 全尺寸带圆角渐变边框</span>\n<a href=#%e5%85%a8%e5%b0%ba%e5%af%b8%e5%b8%a6%e5%9c%86%e8%a7%92%e6%b8%90%e5%8f%98%e8%be%b9%e6%a1%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最后实现一个全尺寸带圆角渐变边框效果，一句话概括为利用线性渐变 <code>linear-gradient</code> 分别设置 <code>padding-box</code> 和 <code>border-box</code> 的背景，然后 <code>border</code> 颜色设置为透明即可实现。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.docs-navigation</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>border-radius</span><span class=o>:</span> <span class=mi>2</span><span class=mf>.5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>background</span><span class=o>:</span> <span class=nf>linear-gradient</span><span class=p>(</span><span class=mh>#fff</span><span class=o>,</span> <span class=mh>#fff</span><span class=p>)</span> <span class=ni>padding-box</span><span class=o>,</span> <span class=nf>linear-gradient</span><span class=p>(</span><span class=mi>45</span><span class=kt>deg</span><span class=o>,</span> <span class=mh>#42d392</span><span class=o>,</span> <span class=mh>#FF7359</span><span class=p>)</span> <span class=ni>border-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>border</span><span class=o>:</span> <span class=mi>0</span><span class=mf>.25</span><span class=kt>rem</span> <span class=ni>solid</span> <span class=ni>transparent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>值得一提的是，这里面利用到的一个核心概念是 <code>background-clip</code> 属性，详见 <a href=https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip target=_blank rel=\"external nofollow noopener noreferrer\">background-clip - CSS: Cascading Style Sheets | MDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>：</p><ul><li><code>padding-box</code> 表示背景延伸到内边距边界</li><li><code>border-box</code> 表示背景延伸到边框边界。</li></ul><p>另外，如果想实现渐变边框的动画效果，用 SCSS 可以这样做（虽然我不认为这是一个好的做法）：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true data-open=false><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.docs-navigation</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>border-radius</span><span class=o>:</span> <span class=mi>2</span><span class=mf>.5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>background</span><span class=o>:</span> <span class=nf>linear-gradient</span><span class=p>(</span><span class=mh>#fff</span><span class=o>,</span> <span class=mh>#fff</span><span class=p>)</span> <span class=ni>padding-box</span><span class=o>,</span> <span class=nf>linear-gradient</span><span class=p>(</span><span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>gradient-angle</span><span class=p>)</span><span class=o>,</span> <span class=mh>#42d392</span><span class=o>,</span> <span class=mh>#FF7359</span><span class=p>)</span> <span class=ni>border-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>border</span><span class=o>:</span> <span class=mi>0</span><span class=mf>.25</span><span class=kt>rem</span> <span class=ni>solid</span> <span class=ni>transparent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>transition</span><span class=o>:</span> <span class=n>background-color</span> <span class=mi>0</span><span class=mf>.5</span><span class=kt>s</span><span class=o>,</span> <span class=n>border-color</span> <span class=mi>0</span><span class=mf>.5</span><span class=kt>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>--gradient-angle</span><span class=o>:</span> <span class=mi>45</span><span class=kt>deg</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>animation</span><span class=o>:</span> <span class=n>gradient-angle-change</span> <span class=mi>10</span><span class=kt>s</span> <span class=ni>infinite</span> <span class=ni>linear</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>// 分的越细，动画效果越平滑\n</span></span></span><span class=line><span class=cl>  <span class=k>@keyframes</span> <span class=nt>gradient-angle-change</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>@for</span> <span class=nv>$i</span> <span class=ow>from</span> <span class=mi>0</span> <span class=ow>through</span> <span class=mi>100</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=si>#{</span><span class=nv>$i</span> <span class=o>*</span> <span class=mi>1</span><span class=kt>%</span><span class=si>}</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=na>--gradient-angle</span><span class=o>:</span> <span class=si>#{</span><span class=mi>45</span> <span class=o>+</span> <span class=nv>$i</span> <span class=o>*</span> <span class=mi>4</span><span class=si>}</span><span class=n>deg</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=最后的效果><span>5 最后的效果</span>\n<a href=#%e6%9c%80%e5%90%8e%e7%9a%84%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了方便使用 FixIt 主题的用户在自己的笔记内插入 FixIt 官方文档的书签，我把这个效果封装成了一个独立的组件，你可以在 <a href=https://github.com/hugo-fixit/shortcode-docs-bookmark target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-docs-bookmark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中找到完整代码及食用方法。</p><div class=fixit-docs-navigation><ul class=fixit-docs-outline><li><a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ title=\"只需几个步骤即可为你的 Hugo 站点安装 FixIt 主题。\">安装篇</a></li><li><a href=https://fixit.lruihao.cn/zh-cn/documentation/getting-started/ title=\"安装和使用 FixIt 主题的快速入门和指南。\">入门篇</a></li><li><a href=https://fixit.lruihao.cn/zh-cn/documentation/content-management/ title=\"了解如何在 FixIt 主题中快速，直观地创建和组织内容。\">内容管理</a></li><li><a href=https://fixit.lruihao.cn/zh-cn/documentation/advanced/ title=\"探索 Hugo - FixIt 主题的的进阶使用。\">进阶篇</a></li></ul><div class=fixit-docs-preview></div></div><h2 class=heading-element id=总结><span>6 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>很多时候都感觉写 CSS 就像在写诗，相同的效果 CSS 实现往往会比 JS 更加优雅。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・CSS 奇技淫巧</span></span></a> 1</div><div class=collection-nav></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・现代 CSS 解决方案</span></span></a> 5</div><div class=collection-nav><a href=/posts/scrollbar-styling/ class=collection-nav-item rel=prev title=标准滚动条控制规范><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>标准滚动条控制规范</span>\n</a><a href=/posts/drop-shadow/ class=collection-nav-item rel=next title=异形元素怎么设置阴影？><span>异形元素怎么设置阴影？</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-28 17:12:48\">更新于 2024-07-28&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8930517d6b79fb9502594cf9384e0a83577448eb rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整合集&#10&#10Commit: 8930517d6b79fb9502594cf9384e0a83577448eb [8930517]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-28 17:12:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8930517</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/fixit-docs-bookmark/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/fixit-docs-bookmark/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/fixit-docs-bookmark/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20CSS+%E5%AE%9E%E7%8E%B0%E6%97%B6%E9%97%B4%E8%BD%B4%E3%80%81%E8%83%8C%E6%99%AF%E5%9B%BE+loading+%E5%92%8C%E6%B8%90%E5%8F%98%E8%BE%B9%E6%A1%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCSS+%E5%AE%9E%E7%8E%B0%E6%97%B6%E9%97%B4%E8%BD%B4%E3%80%81%E8%83%8C%E6%99%AF%E5%9B%BE+loading+%E5%92%8C%E6%B8%90%E5%8F%98%E8%BE%B9%E6%A1%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/fixit-docs-bookmark/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/fixit-docs-bookmark/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/fixit-docs-bookmark/ data-title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\" data-hashtags=CSS,Scss><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/fixit-docs-bookmark/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/fixit-docs-bookmark/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/fixit-docs-bookmark/ data-title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/fixit-docs-bookmark/ data-title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/scss/ class=post-tag title=\"标签 - Scss\">Scss</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/d1fc0c7/ class=post-nav-item rel=prev title=\"Amazon S3\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Amazon S3</a><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=post-nav-item rel=next title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#背景>背景</a></li><li><a href=#时间轴>时间轴</a></li><li><a href=#背景图-loading-效果>背景图 loading 效果</a></li><li><a href=#全尺寸带圆角渐变边框>全尺寸带圆角渐变边框</a></li><li><a href=#最后的效果>最后的效果</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5c54b4cdaacef7f7ab4db1bb72ce361a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5c54b4cdaacef7f7ab4db1bb72ce361a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/fixit-docs-bookmark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/fixit-docs-bookmark/index.md",
    "content": "# CSS 实现时间轴、背景图 Loading 和渐变边框\n\n\n本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\n\n<!--more-->\n\n## 背景\n\n最近在调整 FixIt 主题的官方文档，调整过程中总觉得首页空荡荡的少了些内容，然后就在脑海里构思了如本文封面图所示的效果，希望引导用户阅读文档。\n\n需求分析：\n\n1. 整体布局：左右两栏，左侧为主题文档大纲，右侧为网站预览图\n2. 左侧需要显示时间轴，时间轴带有跑马灯动画效果（暗指文档阅读顺序）\n3. 右侧加载网站预览图时，需要有 loading 效果\n4. 整体边框需要渐变效果\n\n第一点很简单，一个 `flex` 布局就能搞定了，这里不再展开。\n\n接下来我们重点看看如何实现时间轴、背景图 loading 效果和渐变边框。\n\n## 时间轴\n\n先睹为快，效果如下：\n\n![时间轴动画](images/demo-outline.gif \"从上到下依次点亮时间轴\")\n\n我不希望时间轴的实现和其他 UI 框架一样拥有复杂的 DOM 结构，所以使用最简单的 `ul` 和 `li` 即可，关键代码如下：\n\n```html\n<ul class=\"docs-outline\">\n  <li><a href=\"{{ $page1.Permalink }}\">{{ $page1.LinkTitle }}</a></li>\n  <li><a href=\"{{ $page2.Permalink }}\">{{ $page2.LinkTitle }}</a></li>\n  <li><a href=\"{{ $page3.Permalink }}\">{{ $page3.LinkTitle }}</a></li>\n  <li><a href=\"{{ $page4.Permalink }}\">{{ $page4.LinkTitle }}</a></li>\n</ul>\n```\n\nDOM 结构就这么简单，重点在于 CSS 的实现，实现思路如下：\n\n- 先把 `ul` 设置 `list-style: none`，去掉默认的 `li` 样式\n- 利用 `::before` 和 `::after` 伪元素实现时间轴的小圆点和连接线\n- 动画效果：四个小圆点默认和连接线一样灰色，然后依次点亮，可以使用 `animation-delay` 属性实现\n\n动画效果关键帧代码如下：\n\n```scss\nli::before {\n  border: var(--timeline-width) solid var(--timeline-color);\n  animation-name: border-color-fade;\n  animation-duration: 2s;\n  animation-iteration-count: infinite;\n  animation-delay: calc(var(--timeline-index) * 0.3s);\n\n  @keyframes border-color-fade {\n    0% {\n      border-color: var(--timeline-color);\n    }\n    50% {\n      border-color: var(--timeline-circle-color);\n    }\n    100% {\n      border-color: var(--timeline-color);\n    }\n  }\n}\n```\n\n通过 `nth-child` 选择器来设置 `--timeline-index` 来线性增加每个小圆点的动画延迟时间，从而在视觉上出现依次点亮的效果。\n\n如果使用 SCSS 可以简化代码，如下：\n\n```scss\n@for $i from 1 through 4 {\n  li:nth-child(#{$i}) {\n    --timeline-index: #{$i};\n\n    &::before {\n      content: '#{$i}';\n    }\n  }\n}\n```\n\n如果需要在小圆点的内部显示序号，可以像设置 `--timeline-index` 一样依次设置 `content`。\n\n然后在小圆点点亮动画过程中同时转变 `color: transparent` 到具体的颜色即可。\n\n## 背景图 loading 效果\n\n![背景图 loading 效果](images/demo-loading.gif \"先加载 loading 图再加重预览图\")\n\n如果只是想实现图片的 loading 效果其实很简单，之前在「[浏览器 IMG 图片原生懒加载 Loading=\"lazy\"](/posts/native-img-loading-lazy/)」中有介绍过，但是这次我是把图片当作背景图片使用的，那问题来了，不通过 JS 背景图片的 loading 效果怎么实现呢？\n\n还是可以利用 `::before` 和 `::after` 伪元素，一个伪元素用来显示 loading 图，另一个伪元素用来显示背景图片。\n\n原理：利用两张图片加载的时间差，由于 loading 图片很小，所以加载很快，而背景图片加载较慢，然后默认不设置 `z-index` 的情况下，后面的元素会在上层，所以在背景图片加载完成前，loading 图片会一直显示。\n\n关键代码如下：\n\n```scss\n.docs-preview {\n  &::before,\n  &::after {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background-position: center;\n    background-repeat: no-repeat;\n  }\n\n  &::before {\n    background-color: rgba(204, 204, 204, 0.1);\n    background-image: url(/images/loading.min.svg);\n    background-size: 60px;\n\n    [data-theme='dark'] & {\n      background-color: rgba(0, 0, 0, 0.1);\n    }\n  }\n\n  &::after {\n    background-image: url(/images/apple-devices-preview.webp);\n    background-size: 130%;\n  }\n}\n```\n\n## 全尺寸带圆角渐变边框\n\n最后实现一个全尺寸带圆角渐变边框效果，一句话概括为利用线性渐变 `linear-gradient` 分别设置 `padding-box` 和 `border-box` 的背景，然后 `border` 颜色设置为透明即可实现。\n\n```scss\n.docs-navigation {\n  border-radius: 2.5px;\n  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(45deg, #42d392, #FF7359) border-box;\n  border: 0.25rem solid transparent;\n}\n```\n\n值得一提的是，这里面利用到的一个核心概念是 `background-clip` 属性，详见 [background-clip - CSS: Cascading Style Sheets | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip)：\n\n- `padding-box` 表示背景延伸到内边距边界\n- `border-box` 表示背景延伸到边框边界。\n\n另外，如果想实现渐变边框的动画效果，用 SCSS 可以这样做（虽然我不认为这是一个好的做法）：\n\n```scss {data-open=false}\n.docs-navigation {\n  border-radius: 2.5px;\n  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(var(--gradient-angle), #42d392, #FF7359) border-box;\n  border: 0.25rem solid transparent;\n  transition: background-color 0.5s, border-color 0.5s;\n  --gradient-angle: 45deg;\n  animation: gradient-angle-change 10s infinite linear;\n\n  // 分的越细，动画效果越平滑\n  @keyframes gradient-angle-change {\n    @for $i from 0 through 100 {\n      #{$i * 1%} {\n        --gradient-angle: #{45 + $i * 4}deg;\n      }\n    }\n  }\n}\n```\n\n## 最后的效果\n\n为了方便使用 FixIt 主题的用户在自己的笔记内插入 FixIt 官方文档的书签，我把这个效果封装成了一个独立的组件，你可以在 [hugo-fixit/shortcode-docs-bookmark](https://github.com/hugo-fixit/shortcode-docs-bookmark) 中找到完整代码及食用方法。\n\n{{< fixit-docs-bookmark >}}\n\n## 总结\n\n很多时候都感觉写 CSS 就像在写诗，相同的效果 CSS 实现往往会比 JS 更加优雅。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/fixit-docs-bookmark/  \n\n"
  },
  {
    "path": "posts/flexbox/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS Flexbox 布局指南 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\n\"><meta name=keywords content='CSS,Flexbox'><meta itemprop=name content=\"CSS Flexbox 布局指南\"><meta itemprop=description content=\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\"><meta itemprop=datePublished content=\"2025-01-20T15:56:38+08:00\"><meta itemprop=dateModified content=\"2025-01-20T17:49:35+08:00\"><meta itemprop=wordCount content=\"4245\"><meta itemprop=image content=\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\"><meta itemprop=keywords content=\"CSS,Flexbox\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/flexbox/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS Flexbox 布局指南\"><meta property=\"og:description\" content=\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-01-20T15:56:38+08:00\"><meta property=\"article:modified_time\" content=\"2025-01-20T17:49:35+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"Flexbox\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\"><meta name=twitter:title content=\"CSS Flexbox 布局指南\"><meta name=twitter:description content=\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/flexbox/ title=\"CSS Flexbox 布局指南 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/action-component-list/ title=\"Generate a list of all hugo-fixit theme components.\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/vercel-proxy/ title=\"API proxies powered by Vercel.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/flexbox/index.md title=\"CSS Flexbox 布局指南 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"CSS Flexbox 布局指南\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/flexbox\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/flexbox\\/images\\/featured-image.webp\",\"width\":1024,\"height\":1024}],\"genre\":\"posts\",\"keywords\":\"CSS, Flexbox\",\"wordcount\":4245,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/flexbox\\/\",\"datePublished\":\"2025-01-20T15:56:38+08:00\",\"dateModified\":\"2025-01-20T17:49:35+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/flexbox/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS Flexbox 布局指南</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>CSS Flexbox 布局指南</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2025-01-20 15:56:38\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-01-20>2025-01-20</time></span>&nbsp;<span title=\"更新于 2025-01-20 17:49:35\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-01-20>2025-01-20</time></span>&nbsp;<span title=\"4245 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 4300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 9 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"CSS Flexbox 布局指南\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#背景>背景</a></li><li><a href=#基础知识和术语>基础知识和术语</a></li><li><a href=#弹性布局属性>弹性布局属性</a><ul><li><a href=#父元素弹性容器的属性>父元素（弹性容器）的属性</a><ul><li><a href=#display>display</a></li><li><a href=#flex-direction>flex-direction</a></li><li><a href=#flex-wrap>flex-wrap</a></li><li><a href=#flex-flow>flex-flow</a></li><li><a href=#justify-content>justify-content</a></li><li><a href=#align-items>align-items</a></li><li><a href=#align-content>align-content</a></li><li><a href=#gap-row-gap-column-gap>gap, row-gap, column-gap</a></li></ul></li><li><a href=#子元素弹性项目的属性>子元素（弹性项目）的属性</a><ul><li><a href=#order>order</a></li><li><a href=#flex-grow>flex-grow</a></li><li><a href=#flex-shrink>flex-shrink</a></li><li><a href=#flex-basis>flex-basis</a></li><li><a href=#flex>flex</a></li><li><a href=#align-self>align-self</a></li></ul></li></ul></li><li><a href=#为-flexbox-添加前缀>为 Flexbox 添加前缀</a></li><li><a href=#参考>参考</a></li><li><a href=#题外话>题外话</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-01-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。</p><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>快速参考手册经常参考本指南？这里有一张你可以打印的高分辨率图像！<mark class=mark-default><a href=images/css-flexbox-poster.webp>免费下载</a></mark>。</p></div><h2 class=heading-element id=背景><span>背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Flex 布局（弹性盒子）模块（截至 2017 年 10 月为 <a href=https://www.w3.org/TR/css-flexbox/ target=_blank rel=\"external nofollow noopener noreferrer\">W3C 候选推荐<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）旨在提供一种更有效的方法来布局、对齐和分配容器中项目之间的空间，即使它们的大小未知和/或动态（因此有“弹性（flex）”一词）。</p><p>Flex 布局的主要思想是赋予容器调整其项目宽度/高度（和顺序）的能力，以最佳填充可用空间（主要是适应各种显示设备和屏幕尺寸）。一个弹性容器会扩展项目以填充可用的空闲空间，或缩小它们以防止溢出。</p><p>最重要的是，Flex 布局是方向无关的，与常规布局（块布局是基于垂直的，而行内布局是基于水平的）相比。虽然这些布局在页面上工作良好，但它们缺乏灵活性（不带双关意味）来支持大型或复杂的应用程序（特别是在方向变化、调整大小、拉伸、收缩等方面）。</p><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>Flex 布局最适合应用程序的组件和小规模布局，而 <a href=https://developer.mozilla.org/en-US/docs/Web/CSS/grid target=_blank rel=\"external nofollow noopener noreferrer\">网格布局（Grid）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 则用于更大规模的布局。</p></div><h2 class=heading-element id=基础知识和术语><span>基础知识和术语</span>\n<a href=#%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%e5%92%8c%e6%9c%af%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>由于 flexbox 是一个整体模块，而不是单个属性，因此它涉及很多内容，包括其整个属性集。其中一些属性应设置在容器（父元素，称为“弹性容器”）上，而其他属性应设置在子元素（称为“弹性项目”）上。</p><p>如果“常规”布局基于块和内联流方向，则弹性布局基于“弹性流方向”。请看规范中的这张图，它解释了弹性布局背后的主要思想。</p><p><figure><a class=lightgallery target=_blank href=/posts/flexbox/images/basic-terminology.svg title=弹性盒主轴上的尺寸称为主尺寸，另一个方向的尺寸称为横向尺寸。这些尺寸有主起点、主终点、横向起点和横向终点 data-thumbnail=/posts/flexbox/images/basic-terminology.svg data-sub-html=\"<h2>解释弹性盒术语的图表</h2><p>弹性盒主轴上的尺寸称为主尺寸，另一个方向的尺寸称为横向尺寸。这些尺寸有主起点、主终点、横向起点和横向终点</p>\"><img loading=lazy src=/posts/flexbox/images/basic-terminology.svg alt=解释弹性盒术语的图表></a><figcaption class=image-caption>弹性盒主轴上的尺寸称为主尺寸，另一个方向的尺寸称为横向尺寸。这些尺寸有主起点、主终点、横向起点和横向终点</figcaption></figure></p><p>项目将按照主轴（main axis）或横轴（cross axis）进行布局。</p><ul><li><strong>弹性容器（flex container）</strong><br>包含弹性项目的父元素。</li><li><strong>弹性项目（flex item）</strong><br>弹性容器的子元素。</li><li><strong>主轴（main axis）</strong><br>弹性容器的主轴是弹性项目排列的主要轴。请注意，主轴不一定是水平的；这取决于属性 <code>flex-direction</code>（见下文）。</li><li><strong>主轴起点（main-start） | 主轴终点（main-end）</strong><br>弹性项目从主轴起点开始排列，直到主轴终点。</li><li><strong>主轴尺寸（main size）</strong><br>弹性项目的宽度或高度，取决于主轴的方向，是项目的主尺寸。弹性项目的主尺寸属性是主维度上的 <code>width</code> 或 <code>height</code> 属性。</li><li><strong>横轴（cross axis）</strong><br>与主轴垂直的轴称为横轴。其方向取决于主轴的方向。</li><li><strong>横轴起点（cross-start） | 横轴终点（cross-end）</strong><br>弹性行（flex line）填充项目并放置在容器中，从横轴起点开始，向横轴终点方向排列。</li><li><strong>横轴尺寸（cross size）</strong><br>弹性项目的宽度或高度，取决于横轴的方向，是项目的横尺寸。横尺寸属性是横向维度上的 <code>width</code> 或 <code>height</code> 属性。</li></ul><h2 class=heading-element id=弹性布局属性><span>弹性布局属性</span>\n<a href=#%e5%bc%b9%e6%80%a7%e5%b8%83%e5%b1%80%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=父元素弹性容器的属性><span>父元素（弹性容器）的属性</span>\n<a href=#%e7%88%b6%e5%85%83%e7%b4%a0%e5%bc%b9%e6%80%a7%e5%ae%b9%e5%99%a8%e7%9a%84%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/flexbox/images/01-container.svg title=弹性容器 data-thumbnail=/posts/flexbox/images/01-container.svg data-sub-html=\"<h2>弹性容器</h2>\"><img loading=lazy src=/posts/flexbox/images/01-container.svg alt=弹性容器></a></p><h4 class=heading-element id=display><span>display</span>\n<a href=#display class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span> <span class=o>|</span> <span class=kc>inline-flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>请注意，CSS 列对弹性容器没有影响。</p><h4 class=heading-element id=flex-direction><span>flex-direction</span>\n<a href=#flex-direction class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/flex-direction.svg title=flex-direction data-thumbnail=/posts/flexbox/images/flex-direction.svg data-sub-html=\"<h2>flex-direction</h2>\"><img loading=lazy src=/posts/flexbox/images/flex-direction.svg alt=flex-direction></a></p><p>这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-direction</span><span class=p>:</span> <span class=kc>row</span> <span class=o>|</span> <span class=kc>row-reverse</span> <span class=o>|</span> <span class=kc>column</span> <span class=o>|</span> <span class=kc>column-reverse</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><code>row</code>（默认）：在 <code>ltr</code> 中从左到右；在 <code>rtl</code> 中从右到左</li><li><code>row-reverse</code>：在 <code>ltr</code> 中从右到左；在 <code>rtl</code> 中从左到右</li><li><code>column</code>：与 <code>row</code> 相同，但从上到下</li><li><code>column-reverse</code>：与 <code>row-reverse</code> 相同，但从下到上</li></ul><h4 class=heading-element id=flex-wrap><span>flex-wrap</span>\n<a href=#flex-wrap class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/flex-wrap.svg title=flex-wrap data-thumbnail=/posts/flexbox/images/flex-wrap.svg data-sub-html=\"<h2>flex-wrap</h2>\"><img loading=lazy src=/posts/flexbox/images/flex-wrap.svg alt=flex-wrap></a></p><p>默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-wrap</span><span class=p>:</span> <span class=kc>nowrap</span> <span class=o>|</span> <span class=kc>wrap</span> <span class=o>|</span> <span class=kc>wrap-reverse</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><code>nowrap</code>（默认）：所有弹性项目都在一行上。</li><li><code>wrap</code>：弹性项目将换行到多行，从上到下。</li><li><code>wrap-reverse</code>：弹性项目将从下到上换行到多行。</li></ul><h4 class=heading-element id=flex-flow><span>flex-flow</span>\n<a href=#flex-flow class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这是 <code>flex-direction</code> 和 <code>flex-wrap</code> 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 <code>row nowrap</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-flow</span><span class=p>:</span> <span class=kc>column</span> <span class=kc>wrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=justify-content><span>justify-content</span>\n<a href=#justify-content class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/justify-content.svg title=justify-content data-thumbnail=/posts/flexbox/images/justify-content.svg data-sub-html=\"<h2>justify-content</h2>\"><img loading=lazy src=/posts/flexbox/images/justify-content.svg alt=justify-content></a></p><p>这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>justify-content</span><span class=p>:</span> <span class=kc>flex-start</span> <span class=o>|</span> <span class=kc>flex-end</span> <span class=o>|</span> <span class=kc>center</span> <span class=o>|</span> <span class=kc>space-between</span> <span class=o>|</span> <span class=kc>space-around</span> <span class=o>|</span> <span class=kc>space</span><span class=o>-</span><span class=n>evenly</span> <span class=o>|</span> <span class=kc>start</span> <span class=o>|</span> <span class=kc>end</span> <span class=o>|</span> <span class=kc>left</span> <span class=o>|</span> <span class=kc>right</span> <span class=o>...</span> <span class=o>+</span> <span class=n>safe</span> <span class=o>|</span> <span class=n>unsafe</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><code>flex-start</code>（默认）：项目向弹性方向的起点对齐。</li><li><code>flex-end</code>：项目向弹性方向的终点对齐。</li><li><code>start</code>：项目向 <code>writing-mode</code> 方向的起点对齐。</li><li><code>end</code>：项目向 <code>writing-mode</code> 方向的终点对齐。</li><li><code>left</code>：项目向容器的左边缘对齐，除非这与 <code>flex-direction</code> 不符，则表现为 <code>start</code>。</li><li><code>right</code>：项目向容器的右边缘对齐，除非这与 <code>flex-direction</code> 不符，则表现为 <code>end</code>。</li><li><code>center</code>：项目在行中居中对齐</li><li><code>space-between</code>：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线</li><li><code>space-around</code>：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。</li><li><code>space-evenly</code>：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。</li></ul><p>请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 <code>space-between</code>，而 start/end/left/right 尚未在 Chrome 中实现。MDN <a href=https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content target=_blank rel=\"external nofollow noopener noreferrer\">有详细的图表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。最安全的值是 <code>flex-start</code>、<code>flex-end</code> 和 <code>center</code>。</p><p>还有两个附加关键字可以与这些值配对：<code>safe</code> 和 <code>unsafe</code>。使用 <code>safe</code> 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。</p><h4 class=heading-element id=align-items><span>align-items</span>\n<a href=#align-items class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/align-items.svg title=align-items data-thumbnail=/posts/flexbox/images/align-items.svg data-sub-html=\"<h2>align-items</h2>\"><img loading=lazy src=/posts/flexbox/images/align-items.svg alt=align-items></a></p><p>这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 <code>justify-content</code> 版本。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>align-items</span><span class=p>:</span> <span class=kc>stretch</span> <span class=o>|</span> <span class=kc>flex-start</span> <span class=o>|</span> <span class=kc>flex-end</span> <span class=o>|</span> <span class=kc>center</span> <span class=o>|</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>first</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>last</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>start</span> <span class=o>|</span> <span class=kc>end</span> <span class=o>|</span> <span class=n>self-start</span> <span class=o>|</span> <span class=n>self-end</span> <span class=o>+</span> <span class=o>...</span> <span class=n>safe</span> <span class=o>|</span> <span class=n>unsafe</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><code>stretch</code>（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度）</li><li><code>flex-start</code> / <code>start</code> / <code>self-start</code>：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 <code>flex-direction</code> 规则或 <code>writing-mode</code> 规则。</li><li><code>flex-end</code> / <code>end</code> / <code>self-end</code>：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 <code>flex-direction</code> 规则与 <code>writing-mode</code> 规则。</li><li><code>center</code>：项目在横轴上居中对齐</li><li><code>baseline</code>：项目对齐，使它们的基线对齐</li></ul><p><code>safe</code> 和 <code>unsafe</code> 修饰符关键字可以与所有这些关键字结合使用（尽管请注意<a href=https://developer.mozilla.org/en-US/docs/Web/CSS/align-items target=_blank rel=\"external nofollow noopener noreferrer\">浏览器支持<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>），并帮助你防止对齐元素使内容变得不可访问。</p><h4 class=heading-element id=align-content><span>align-content</span>\n<a href=#align-content class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/align-content.svg title=align-content data-thumbnail=/posts/flexbox/images/align-content.svg data-sub-html=\"<h2>align-content</h2>\"><img loading=lazy src=/posts/flexbox/images/align-content.svg alt=align-content></a></p><p>这在横轴上有额外空间时对齐弹性容器的行，类似于 <code>justify-content</code> 在主轴上对齐单个项目。</p><div class=\"alert alert-warning\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z\"/></svg>警告</p><p>此属性仅在多行弹性容器上生效，其中 <code>flex-wrap</code> 设置为 <code>wrap</code> 或 <code>wrap-reverse</code>。单行弹性容器（即 <code>flex-wrap</code> 设置为其默认值 <code>no-wrap</code>）将不反映 <code>align-content</code>。</p></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>align-content</span><span class=p>:</span> <span class=kc>flex-start</span> <span class=o>|</span> <span class=kc>flex-end</span> <span class=o>|</span> <span class=kc>center</span> <span class=o>|</span> <span class=kc>space-between</span> <span class=o>|</span> <span class=kc>space-around</span> <span class=o>|</span> <span class=kc>space</span><span class=o>-</span><span class=n>evenly</span> <span class=o>|</span> <span class=kc>stretch</span> <span class=o>|</span> <span class=kc>start</span> <span class=o>|</span> <span class=kc>end</span> <span class=o>|</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>first</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>last</span> <span class=kc>baseline</span> <span class=o>+</span> <span class=o>...</span> <span class=n>safe</span> <span class=o>|</span> <span class=n>unsafe</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><code>normal</code>（默认）：项目按默认位置打包，仿佛未设置任何值。</li><li><code>flex-start</code> / <code>start</code>：项目打包到容器的起点。（更多支持的）<code>flex-start</code> 遵守 <code>flex-direction</code>，而 <code>start</code> 遵守 <code>writing-mode</code> 方向。</li><li><code>flex-end</code> / <code>end</code>：项目打包到容器的终点。（更多支持的）<code>flex-end</code> 遵守 <code>flex-direction</code>，而 <code>end</code> 遵守 <code>writing-mode</code> 方向。</li><li><code>center</code>：项目在容器中居中对齐</li><li><code>space-between</code>：项目均匀分布；第一行在容器的起点，最后一行在终点</li><li><code>space-around</code>：项目均匀分布，每行周围有相等的空间</li><li><code>space-evenly</code>：项目均匀分布，周围有相等的空间</li><li><code>stretch</code>：行拉伸以占据剩余空间</li></ul><p><code>safe</code> 和 <code>unsafe</code> 修饰符关键字可以与所有这些关键字结合使用（尽管请注意<a href=https://developer.mozilla.org/en-US/docs/Web/CSS/align-items target=_blank rel=\"external nofollow noopener noreferrer\">浏览器支持<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>），并帮助你防止对齐元素使内容变得不可访问。</p><h4 class=heading-element id=gap-row-gap-column-gap><span>gap, row-gap, column-gap</span>\n<a href=#gap-row-gap-column-gap class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/gap-1.svg title=gap data-thumbnail=/posts/flexbox/images/gap-1.svg data-sub-html=\"<h2>gap</h2>\"><img loading=lazy src=/posts/flexbox/images/gap-1.svg alt=gap></a></p><p><a href=https://css-tricks.com/almanac/properties/g/gap/ target=_blank rel=\"external nofollow noopener noreferrer\"><code>gap</code> 属性<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=err>...</span>\n</span></span><span class=line><span class=cl>  <span class=k>gap</span><span class=p>:</span> <span class=mi>10</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>gap</span><span class=p>:</span> <span class=mi>10</span><span class=kt>px</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span> <span class=c>/* 行间距 列间距 */</span>\n</span></span><span class=line><span class=cl>  <span class=k>row-gap</span><span class=p>:</span> <span class=mi>10</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>column-gap</span><span class=p>:</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 <code>justify-content: space-between;</code> 的原因），则间隙仅在该空间变小的情况下生效。</p><p>它不仅适用于 flexbox，<code>gap</code> 也适用于网格和多列布局。</p><h3 class=heading-element id=子元素弹性项目的属性><span>子元素（弹性项目）的属性</span>\n<a href=#%e5%ad%90%e5%85%83%e7%b4%a0%e5%bc%b9%e6%80%a7%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/flexbox/images/02-items.svg title=弹性项目 data-thumbnail=/posts/flexbox/images/02-items.svg data-sub-html=\"<h2>弹性项目</h2>\"><img loading=lazy src=/posts/flexbox/images/02-items.svg alt=弹性项目></a></p><h4 class=heading-element id=order><span>order</span>\n<a href=#order class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/order.svg title=order data-thumbnail=/posts/flexbox/images/order.svg data-sub-html=\"<h2>order</h2>\"><img loading=lazy src=/posts/flexbox/images/order.svg alt=order></a></p><p>默认情况下，弹性项目按源顺序布局。但是，<code>order</code> 属性控制它们在弹性容器中出现的顺序。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>order</span><span class=p>:</span> <span class=mi>5</span><span class=p>;</span> <span class=c>/* 默认值是 0 */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>具有相同顺序的项目恢复为源顺序。</p><h4 class=heading-element id=flex-grow><span>flex-grow</span>\n<a href=#flex-grow class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/flex-grow.svg title=flex-grow data-thumbnail=/posts/flexbox/images/flex-grow.svg data-sub-html=\"<h2>flex-grow</h2>\"><img loading=lazy src=/posts/flexbox/images/flex-grow.svg alt=flex-grow></a></p><p>这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。</p><p>如果所有项目的 <code>flex-grow</code> 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-grow</span><span class=p>:</span> <span class=mi>4</span><span class=p>;</span> <span class=c>/* 默认值是 0 */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>负数无效。</p><h4 class=heading-element id=flex-shrink><span>flex-shrink</span>\n<a href=#flex-shrink class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这定义了弹性项目在必要时收缩的能力。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-shrink</span><span class=p>:</span> <span class=mi>3</span><span class=p>;</span> <span class=c>/* 默认值是 1 */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>负数无效。</p><h4 class=heading-element id=flex-basis><span>flex-basis</span>\n<a href=#flex-basis class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。<code>auto</code> 关键字表示“查看我的宽度或高度属性”（这曾经由 <code>main-size</code> 关键字暂时完成，直到被弃用）。<code>content</code> 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 <code>max-content</code>、<code>min-content</code> 和 <code>fit-content</code> 的作用。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-basis</span><span class=p>:</span>  <span class=o>|</span> <span class=kc>auto</span><span class=p>;</span> <span class=c>/* 默认值是 auto */</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>如果设置为 <code>0</code>，则不考虑内容周围的额外空间。如果设置为 <code>auto</code>，则根据其 <code>flex-grow</code> 值分配额外空间。<a href=images/rel-vs-abs-flex.svg>请参见此图</a>。</p><h4 class=heading-element id=flex><span>flex</span>\n<a href=#flex class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这是 <code>flex-grow</code>、<code>flex-shrink</code> 和 <code>flex-basis</code> 的简写。第二个和第三个参数（<code>flex-shrink</code> 和 <code>flex-basis</code>）是可选的。默认值是 <code>0 1 auto</code>，但如果你使用单个数字值设置它，例如 <code>flex: 5;</code>，则会将 <code>flex-basis</code> 更改为 0%，因此它类似于设置 <code>flex-grow: 5; flex-shrink: 1; flex-basis: 0%;</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex</span><span class=p>:</span> <span class=kc>none</span> <span class=o>|</span> <span class=p>[</span> <span class=o>&lt;</span><span class=s1>&#39;flex-grow&#39;</span><span class=o>&gt;</span> <span class=o>&lt;</span><span class=s1>&#39;flex-shrink&#39;</span><span class=o>&gt;?</span> <span class=o>||</span> <span class=o>&lt;</span><span class=s1>&#39;flex-basis&#39;</span><span class=o>&gt;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>建议你使用此简写属性</strong>，而不是单独设置各个属性。简写智能地设置其他值。</p><h4 class=heading-element id=align-self><span>align-self</span>\n<a href=#align-self class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a class=lightgallery target=_blank href=/posts/flexbox/images/align-self.svg title=align-self data-thumbnail=/posts/flexbox/images/align-self.svg data-sub-html=\"<h2>align-self</h2>\"><img loading=lazy src=/posts/flexbox/images/align-self.svg alt=align-self></a></p><p>这允许覆盖单个弹性项目的默认对齐方式（或由 <code>align-items</code> 指定的对齐方式）。</p><p>请参阅 <code>align-items</code> 解释以了解可用值。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>align-self</span><span class=p>:</span> <span class=kc>auto</span> <span class=o>|</span> <span class=kc>flex-start</span> <span class=o>|</span> <span class=kc>flex-end</span> <span class=o>|</span> <span class=kc>center</span> <span class=o>|</span> <span class=kc>baseline</span> <span class=o>|</span> <span class=kc>stretch</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>请注意，<code>floa</code>t、<code>clear</code> 和 <code>vertical-align</code> 对弹性项目没有影响。</p><h2 class=heading-element id=为-flexbox-添加前缀><span>为 Flexbox 添加前缀</span>\n<a href=#%e4%b8%ba-flexbox-%e6%b7%bb%e5%8a%a0%e5%89%8d%e7%bc%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我们可以使用 <code>Sass@mixin</code> 来帮助处理一些浏览器前缀问题。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=k>@mixin</span><span class=nf> flexbox</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=o>-</span><span class=n>webkit-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=o>-</span><span class=n>moz-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=o>-</span><span class=n>ms-flexbox</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=o>-</span><span class=n>webkit-flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>display</span><span class=o>:</span> <span class=ni>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>@mixin</span><span class=nf> flex</span><span class=p>(</span><span class=nv>$values</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>-webkit-box-flex</span><span class=o>:</span> <span class=nv>$values</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>-moz-box-flex</span><span class=o>:</span>  <span class=nv>$values</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>-webkit-flex</span><span class=o>:</span>  <span class=nv>$values</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>-ms-flex</span><span class=o>:</span>  <span class=nv>$values</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>flex</span><span class=o>:</span>  <span class=nv>$values</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>@mixin</span><span class=nf> order</span><span class=p>(</span><span class=nv>$val</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>-webkit-box-ordinal-group</span><span class=o>:</span> <span class=nv>$val</span><span class=p>;</span>  \n</span></span><span class=line><span class=cl>  <span class=na>-moz-box-ordinal-group</span><span class=o>:</span> <span class=nv>$val</span><span class=p>;</span>     \n</span></span><span class=line><span class=cl>  <span class=na>-ms-flex-order</span><span class=o>:</span> <span class=nv>$val</span><span class=p>;</span>     \n</span></span><span class=line><span class=cl>  <span class=na>-webkit-order</span><span class=o>:</span> <span class=nv>$val</span><span class=p>;</span>  \n</span></span><span class=line><span class=cl>  <span class=na>order</span><span class=o>:</span> <span class=nv>$val</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nc>.wrapper</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>@include</span><span class=nd> flexbox</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nc>.item</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>@include</span><span class=nd> flex</span><span class=p>(</span><span class=mi>1</span> <span class=mi>200</span><span class=kt>px</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>@include</span><span class=nd> order</span><span class=p>(</span><span class=mi>2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=参考><span>参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本文内容翻译自 <a href=https://css-tricks.com/author/chriscoyier/ target=_blank rel=\"external nofollow noopener noreferrer\">Chris Coyier<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的 <a href=https://css-tricks.com/snippets/css/a-guide-to-flexbox/ target=_blank rel=\"external nofollow noopener noreferrer\">A Complete Guide to Flexbox<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，感谢原作者的辛勤付出。</p><p>除此之外，你还可以通过一些小游戏来学习 Flexbox：</p><ul><li><a href=https://flexboxfroggy.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Flexbox Froggy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> - 一个有趣的游戏，可以帮助你学习 Flexbox。</li><li><a href=http://www.flexboxdefense.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Flexbox Defense<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> - 一个塔防游戏，可以帮助你学习 Flexbox。</li></ul><h2 class=heading-element id=题外话><span>题外话</span>\n<a href=#%e9%a2%98%e5%a4%96%e8%af%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这篇文章的翻译早就想做了，但是一直没有时间，拖了一年，今天终于抽出时间来完成了。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-01-20 17:49:35\">更新于 2025-01-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/cf753faed8f1760b18e39d8811fb777cafc8187b rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: A Complete Guide to Flexbox (closes #107)&#10&#10Commit: cf753faed8f1760b18e39d8811fb777cafc8187b [cf753fa]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-01-20 17:49:35\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>cf753fa</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/flexbox/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/flexbox/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/flexbox/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20CSS+Flexbox+%E5%B8%83%E5%B1%80%E6%8C%87%E5%8D%97&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCSS+Flexbox+%E5%B8%83%E5%B1%80%E6%8C%87%E5%8D%97%7c%0A%7cURL%7chttps://lruihao.cn/posts/flexbox/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/flexbox/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/flexbox/ data-title=\"CSS Flexbox 布局指南\" data-hashtags=CSS,Flexbox><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/flexbox/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/flexbox/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/flexbox/ data-title=\"CSS Flexbox 布局指南\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/flexbox/ data-title=\"CSS Flexbox 布局指南\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/flexbox/ class=post-tag title=\"标签 - Flexbox\">Flexbox</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/action-component-list/ class=post-nav-item rel=prev title=hugo-fixit/action-component-list><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/action-component-list</a><a href=/projects/lruihao/vercel-proxy/ class=post-nav-item rel=next title=Lruihao/vercel-proxy>Lruihao/vercel-proxy<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#背景>背景</a></li><li><a href=#基础知识和术语>基础知识和术语</a></li><li><a href=#弹性布局属性>弹性布局属性</a><ul><li><a href=#父元素弹性容器的属性>父元素（弹性容器）的属性</a><ul><li><a href=#display>display</a></li><li><a href=#flex-direction>flex-direction</a></li><li><a href=#flex-wrap>flex-wrap</a></li><li><a href=#flex-flow>flex-flow</a></li><li><a href=#justify-content>justify-content</a></li><li><a href=#align-items>align-items</a></li><li><a href=#align-content>align-content</a></li><li><a href=#gap-row-gap-column-gap>gap, row-gap, column-gap</a></li></ul></li><li><a href=#子元素弹性项目的属性>子元素（弹性项目）的属性</a><ul><li><a href=#order>order</a></li><li><a href=#flex-grow>flex-grow</a></li><li><a href=#flex-shrink>flex-shrink</a></li><li><a href=#flex-basis>flex-basis</a></li><li><a href=#flex>flex</a></li><li><a href=#align-self>align-self</a></li></ul></li></ul></li><li><a href=#为-flexbox-添加前缀>为 Flexbox 添加前缀</a></li><li><a href=#参考>参考</a></li><li><a href=#题外话>题外话</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7417807edf3228ede7205ab88ce58ecf.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7417807edf3228ede7205ab88ce58ecf.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/flexbox/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/flexbox/index.md",
    "content": "# CSS Flexbox 布局指南\n\n\n本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\n\n<!--more-->\n\n> [!TIP]\n> 快速参考手册经常参考本指南？这里有一张你可以打印的高分辨率图像！==[免费下载](images/css-flexbox-poster.webp)==。\n\n## 背景\n\nFlex 布局（弹性盒子）模块（截至 2017 年 10 月为 [W3C 候选推荐](https://www.w3.org/TR/css-flexbox/)）旨在提供一种更有效的方法来布局、对齐和分配容器中项目之间的空间，即使它们的大小未知和/或动态（因此有“弹性（flex）”一词）。\n\nFlex 布局的主要思想是赋予容器调整其项目宽度/高度（和顺序）的能力，以最佳填充可用空间（主要是适应各种显示设备和屏幕尺寸）。一个弹性容器会扩展项目以填充可用的空闲空间，或缩小它们以防止溢出。\n\n最重要的是，Flex 布局是方向无关的，与常规布局（块布局是基于垂直的，而行内布局是基于水平的）相比。虽然这些布局在页面上工作良好，但它们缺乏灵活性（不带双关意味）来支持大型或复杂的应用程序（特别是在方向变化、调整大小、拉伸、收缩等方面）。\n\n> [!NOTE]\n> Flex 布局最适合应用程序的组件和小规模布局，而 [网格布局（Grid）](https://developer.mozilla.org/en-US/docs/Web/CSS/grid) 则用于更大规模的布局。\n\n## 基础知识和术语\n\n由于 flexbox 是一个整体模块，而不是单个属性，因此它涉及很多内容，包括其整个属性集。其中一些属性应设置在容器（父元素，称为“弹性容器”）上，而其他属性应设置在子元素（称为“弹性项目”）上。\n\n如果“常规”布局基于块和内联流方向，则弹性布局基于“弹性流方向”。请看规范中的这张图，它解释了弹性布局背后的主要思想。\n\n![解释弹性盒术语的图表](images/basic-terminology.svg \"弹性盒主轴上的尺寸称为主尺寸，另一个方向的尺寸称为横向尺寸。这些尺寸有主起点、主终点、横向起点和横向终点\")\n\n项目将按照主轴（main axis）或横轴（cross axis）进行布局。\n\n- **弹性容器（flex container）**\\\n  包含弹性项目的父元素。\n- **弹性项目（flex item）**\\\n  弹性容器的子元素。\n- **主轴（main axis）**\\\n  弹性容器的主轴是弹性项目排列的主要轴。请注意，主轴不一定是水平的；这取决于属性 `flex-direction`（见下文）。\n- **主轴起点（main-start） | 主轴终点（main-end）**\\\n  弹性项目从主轴起点开始排列，直到主轴终点。\n- **主轴尺寸（main size）**\\\n  弹性项目的宽度或高度，取决于主轴的方向，是项目的主尺寸。弹性项目的主尺寸属性是主维度上的 `width` 或 `height` 属性。\n- **横轴（cross axis）**\\\n  与主轴垂直的轴称为横轴。其方向取决于主轴的方向。\n- **横轴起点（cross-start） | 横轴终点（cross-end）**\\\n  弹性行（flex line）填充项目并放置在容器中，从横轴起点开始，向横轴终点方向排列。\n- **横轴尺寸（cross size）**\\\n  弹性项目的宽度或高度，取决于横轴的方向，是项目的横尺寸。横尺寸属性是横向维度上的 `width` 或 `height` 属性。\n\n## 弹性布局属性\n\n### 父元素（弹性容器）的属性\n\n![弹性容器](images/01-container.svg)\n\n#### display\n\n这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。\n\n```css\n.container {\n  display: flex | inline-flex;\n}\n```\n\n请注意，CSS 列对弹性容器没有影响。\n\n#### flex-direction\n\n![flex-direction](images/flex-direction.svg)\n\n这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。\n\n```css\n.container {\n  flex-direction: row | row-reverse | column | column-reverse;\n}\n```\n\n- `row`（默认）：在 `ltr` 中从左到右；在 `rtl` 中从右到左\n- `row-reverse`：在 `ltr` 中从右到左；在 `rtl` 中从左到右\n- `column`：与 `row` 相同，但从上到下\n- `column-reverse`：与 `row-reverse` 相同，但从下到上\n\n#### flex-wrap\n\n![flex-wrap](images/flex-wrap.svg)\n\n默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。\n\n```css\n.container {\n  flex-wrap: nowrap | wrap | wrap-reverse;\n}\n```\n\n- `nowrap`（默认）：所有弹性项目都在一行上。\n- `wrap`：弹性项目将换行到多行，从上到下。\n- `wrap-reverse`：弹性项目将从下到上换行到多行。\n\n#### flex-flow\n\n这是 `flex-direction` 和 `flex-wrap` 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 `row nowrap`。\n\n```css\n.container {\n  flex-flow: column wrap;\n}\n```\n\n#### justify-content\n\n![justify-content](images/justify-content.svg)\n\n这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。\n\n```css\n.container {\n  justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe;\n}\n```\n\n- `flex-start`（默认）：项目向弹性方向的起点对齐。\n- `flex-end`：项目向弹性方向的终点对齐。\n- `start`：项目向 `writing-mode` 方向的起点对齐。\n- `end`：项目向 `writing-mode` 方向的终点对齐。\n- `left`：项目向容器的左边缘对齐，除非这与 `flex-direction` 不符，则表现为 `start`。\n- `right`：项目向容器的右边缘对齐，除非这与 `flex-direction` 不符，则表现为 `end`。\n- `center`：项目在行中居中对齐\n- `space-between`：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线\n- `space-around`：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。\n- `space-evenly`：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。\n\n请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 `space-between`，而 start/end/left/right 尚未在 Chrome 中实现。MDN [有详细的图表](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)。最安全的值是 `flex-start`、`flex-end` 和 `center`。\n\n还有两个附加关键字可以与这些值配对：`safe` 和 `unsafe`。使用 `safe` 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。\n\n#### align-items\n\n![align-items](images/align-items.svg)\n\n这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 `justify-content` 版本。\n\n```css\n.container {\n  align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe;\n}\n```\n\n- `stretch`（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度）\n- `flex-start` / `start` / `self-start`：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 `flex-direction` 规则或 `writing-mode` 规则。\n- `flex-end` / `end` / `self-end`：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 `flex-direction` 规则与 `writing-mode` 规则。\n- `center`：项目在横轴上居中对齐\n- `baseline`：项目对齐，使它们的基线对齐\n\n`safe` 和 `unsafe` 修饰符关键字可以与所有这些关键字结合使用（尽管请注意[浏览器支持](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items)），并帮助你防止对齐元素使内容变得不可访问。\n\n#### align-content\n\n![align-content](images/align-content.svg)\n\n这在横轴上有额外空间时对齐弹性容器的行，类似于 `justify-content` 在主轴上对齐单个项目。\n\n> [!WARNING]\n> 此属性仅在多行弹性容器上生效，其中 `flex-wrap` 设置为 `wrap` 或 `wrap-reverse`。单行弹性容器（即 `flex-wrap` 设置为其默认值 `no-wrap`）将不反映 `align-content`。\n\n```css\n.container {\n  align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe;\n}\n```\n\n- `normal`（默认）：项目按默认位置打包，仿佛未设置任何值。\n- `flex-start` / `start`：项目打包到容器的起点。（更多支持的）`flex-start` 遵守 `flex-direction`，而 `start` 遵守 `writing-mode` 方向。\n- `flex-end` / `end`：项目打包到容器的终点。（更多支持的）`flex-end` 遵守 `flex-direction`，而 `end` 遵守 `writing-mode` 方向。\n- `center`：项目在容器中居中对齐\n- `space-between`：项目均匀分布；第一行在容器的起点，最后一行在终点\n- `space-around`：项目均匀分布，每行周围有相等的空间\n- `space-evenly`：项目均匀分布，周围有相等的空间\n- `stretch`：行拉伸以占据剩余空间\n\n`safe` 和 `unsafe` 修饰符关键字可以与所有这些关键字结合使用（尽管请注意[浏览器支持](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items)），并帮助你防止对齐元素使内容变得不可访问。\n\n#### gap, row-gap, column-gap\n\n![gap](images/gap-1.svg)\n\n[`gap` 属性](https://css-tricks.com/almanac/properties/g/gap/)明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。\n\n```css\n.container {\n  display: flex;\n  ...\n  gap: 10px;\n  gap: 10px 20px; /* 行间距 列间距 */\n  row-gap: 10px;\n  column-gap: 20px;\n}\n```\n\n这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 `justify-content: space-between;` 的原因），则间隙仅在该空间变小的情况下生效。\n\n它不仅适用于 flexbox，`gap` 也适用于网格和多列布局。\n\n### 子元素（弹性项目）的属性\n\n![弹性项目](images/02-items.svg)\n\n#### order\n\n![order](images/order.svg)\n\n默认情况下，弹性项目按源顺序布局。但是，`order` 属性控制它们在弹性容器中出现的顺序。\n\n```css\n.item {\n  order: 5; /* 默认值是 0 */\n}\n```\n\n具有相同顺序的项目恢复为源顺序。\n\n#### flex-grow\n\n![flex-grow](images/flex-grow.svg)\n\n这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。\n\n如果所有项目的 `flex-grow` 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。\n\n```css\n.item {\n  flex-grow: 4; /* 默认值是 0 */\n}\n```\n\n负数无效。\n\n#### flex-shrink\n\n这定义了弹性项目在必要时收缩的能力。\n\n```css\n.item {\n  flex-shrink: 3; /* 默认值是 1 */\n}\n```\n\n负数无效。\n\n#### flex-basis\n\n这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。`auto` 关键字表示“查看我的宽度或高度属性”（这曾经由 `main-size` 关键字暂时完成，直到被弃用）。`content` 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 `max-content`、`min-content` 和 `fit-content` 的作用。\n\n```css\n.item {\n  flex-basis:  | auto; /* 默认值是 auto */\n}\n```\n\n如果设置为 `0`，则不考虑内容周围的额外空间。如果设置为 `auto`，则根据其 `flex-grow` 值分配额外空间。[请参见此图](images/rel-vs-abs-flex.svg)。\n\n#### flex\n\n这是 `flex-grow`、`flex-shrink` 和 `flex-basis` 的简写。第二个和第三个参数（`flex-shrink` 和 `flex-basis`）是可选的。默认值是 `0 1 auto`，但如果你使用单个数字值设置它，例如 `flex: 5;`，则会将 `flex-basis` 更改为 0%，因此它类似于设置 `flex-grow: 5; flex-shrink: 1; flex-basis: 0%;`。\n\n```css\n.item {\n  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\n}\n```\n\n**建议你使用此简写属性**，而不是单独设置各个属性。简写智能地设置其他值。\n\n#### align-self\n\n![align-self](images/align-self.svg)\n\n这允许覆盖单个弹性项目的默认对齐方式（或由 `align-items` 指定的对齐方式）。\n\n请参阅 `align-items` 解释以了解可用值。\n\n```css\n.item {\n  align-self: auto | flex-start | flex-end | center | baseline | stretch;\n}\n```\n\n请注意，`floa`t、`clear` 和 `vertical-align` 对弹性项目没有影响。\n\n## 为 Flexbox 添加前缀\n\n我们可以使用 `Sass@mixin` 来帮助处理一些浏览器前缀问题。\n\n```scss\n@mixin flexbox() {\n  display: -webkit-box;\n  display: -moz-box;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n}\n\n@mixin flex($values) {\n  -webkit-box-flex: $values;\n  -moz-box-flex:  $values;\n  -webkit-flex:  $values;\n  -ms-flex:  $values;\n  flex:  $values;\n}\n\n@mixin order($val) {\n  -webkit-box-ordinal-group: $val;  \n  -moz-box-ordinal-group: $val;     \n  -ms-flex-order: $val;     \n  -webkit-order: $val;  \n  order: $val;\n}\n\n.wrapper {\n  @include flexbox();\n}\n\n.item {\n  @include flex(1 200px);\n  @include order(2);\n}\n```\n\n## 参考\n\n本文内容翻译自 [Chris Coyier](https://css-tricks.com/author/chriscoyier/) 的 [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)，感谢原作者的辛勤付出。\n\n除此之外，你还可以通过一些小游戏来学习 Flexbox：\n\n- [Flexbox Froggy](https://flexboxfroggy.com/) - 一个有趣的游戏，可以帮助你学习 Flexbox。\n- [Flexbox Defense](http://www.flexboxdefense.com/) - 一个塔防游戏，可以帮助你学习 Flexbox。\n\n## 题外话\n\n这篇文章的翻译早就想做了，但是一直没有时间，拖了一年，今天终于抽出时间来完成了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/flexbox/  \n\n"
  },
  {
    "path": "posts/gcd-bit/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>最大公约数（二进制算法） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\n\"><meta name=keywords content='欧几里得,数学,数论,C'><meta itemprop=name content=\"最大公约数（二进制算法）\"><meta itemprop=description content=\"二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"300\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"欧几里得,数学,数论,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/gcd-bit/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"最大公约数（二进制算法）\"><meta property=\"og:description\" content=\"二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-17T09:14:16+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"欧几里得\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"数论\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"最大公约数（二进制算法）\"><meta name=twitter:description content=\"二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/gcd-bit/ title=\"最大公约数（二进制算法） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/imgurl/ title=\"宝塔面板安装 ImgURL 图床\"><link rel=next type=text/html href=https://lruihao.cn/posts/hustoj/ title=\"HustOJ 基础搭建教程\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/gcd-bit/index.md title=\"最大公约数（二进制算法） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"最大公约数（二进制算法）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/gcd-bit\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"欧几里得, 数学, 数论, C\",\"wordcount\":300,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/gcd-bit\\/\",\"datePublished\":\"2019-05-17T09:14:16+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/gcd-bit/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>最大公约数（二进制算法）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>最大公约数（二进制算法）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-17 09:14:16\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-17>2019-05-17</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"300 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=最大公约数（二进制算法）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#原理>原理</a></li><li><a href=#实现>实现</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。</p></blockquote><h2 class=heading-element id=原理><span>1 原理</span>\n<a href=#%e5%8e%9f%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本算法基于以下事实：</p><blockquote><p>对于两个数的最大公约数 gcd(m, n)，有\nm&lt;n 时，gcd(m, n)=gcd(n, m)\nm 偶 n 偶时，gcd(m, n)=2*gcd(m/2, n/2)\nm 偶 n 奇时，gcd(m, n)=gcd(m/2, n)\nm 奇 n 偶时，gcd(m, n)=gcd(m, n/2)\nm 奇 n 奇时，gcd(m, n)=gcd(n, m-n)</p></blockquote><p>采用递归即可。</p><h2 class=heading-element id=实现><span>2 实现</span>\n<a href=#%e5%ae%9e%e7%8e%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kr>inline</span> <span class=kt>int</span> <span class=nf>GCD</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=k>return</span> <span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>y</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=k>return</span> <span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=mi>0</span><span class=o>==</span><span class=p>(</span><span class=n>x</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>);</span><span class=o>++</span><span class=n>i</span><span class=p>)</span><span class=n>x</span><span class=o>&gt;&gt;=</span><span class=mi>1</span><span class=p>;</span>   <span class=c1>// 去掉所有的 2\n</span></span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=mi>0</span><span class=o>==</span><span class=p>(</span><span class=n>y</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>);</span><span class=o>++</span><span class=n>j</span><span class=p>)</span><span class=n>y</span><span class=o>&gt;&gt;=</span><span class=mi>1</span><span class=p>;</span>   <span class=c1>// 去掉所有的 2\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>j</span><span class=o>&lt;</span><span class=n>i</span><span class=p>)</span> <span class=n>i</span><span class=o>=</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>while</span><span class=p>(</span><span class=mi>1</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>&lt;</span><span class=n>y</span><span class=p>)</span><span class=n>x</span><span class=o>^=</span><span class=n>y</span><span class=p>,</span><span class=n>y</span><span class=o>^=</span><span class=n>x</span><span class=p>,</span><span class=n>x</span><span class=o>^=</span><span class=n>y</span><span class=p>;</span>   <span class=c1>// 若 x &lt; y 交换 x, y\n</span></span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=mi>0</span><span class=o>==</span><span class=p>(</span><span class=n>x</span><span class=o>-=</span><span class=n>y</span><span class=p>))</span> <span class=k>return</span> <span class=n>y</span><span class=o>&lt;&lt;</span><span class=n>i</span><span class=p>;</span>  <span class=c1>// 若 x == y，gcd == x == y（就是在辗转减，while(1) 控制）\n</span></span></span><span class=line><span class=cl>                <span class=k>while</span><span class=p>(</span><span class=mi>0</span><span class=o>==</span><span class=p>(</span><span class=n>x</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>))</span><span class=n>x</span><span class=o>&gt;&gt;=</span><span class=mi>1</span><span class=p>;</span> <span class=c1>// 去掉所有的 2\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=kt>int</span> <span class=nf>get_lcm</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>)</span><span class=c1>///获得最小公倍数\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=o>=</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>y</span><span class=o>=</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>b</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>t</span><span class=o>=</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>a</span><span class=o>=</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>b</span><span class=o>=</span><span class=n>t</span><span class=o>%</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>x</span><span class=o>/</span><span class=n>a</span><span class=o>*</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/gcd-bit/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/gcd-bit.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/gcd-bit.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9C%80%E5%A4%A7%E5%85%AC%E7%BA%A6%E6%95%B0%EF%BC%88%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%AE%97%E6%B3%95%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9C%80%E5%A4%A7%E5%85%AC%E7%BA%A6%E6%95%B0%EF%BC%88%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%AE%97%E6%B3%95%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/gcd-bit/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/gcd-bit.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/gcd-bit/ data-title=最大公约数（二进制算法） data-hashtags=欧几里得,数学,数论,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/gcd-bit/ data-hashtag=欧几里得><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/gcd-bit/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/gcd-bit/ data-title=最大公约数（二进制算法） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/gcd-bit/ data-title=最大公约数（二进制算法）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ class=post-tag title=\"标签 - 欧几里得\">欧几里得</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag title=\"标签 - 数论\">数论</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/imgurl/ class=post-nav-item rel=prev title=\"宝塔面板安装 ImgURL 图床\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>宝塔面板安装 ImgURL 图床</a><a href=/posts/hustoj/ class=post-nav-item rel=next title=\"HustOJ 基础搭建教程\">HustOJ 基础搭建教程<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#原理>原理</a></li><li><a href=#实现>实现</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f8c9a0dc01662987361a64b52a8302e4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f8c9a0dc01662987361a64b52a8302e4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/gcd-bit/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/gcd-bit/index.md",
    "content": "# 最大公约数（二进制算法）\n\n\n> 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\n\n<!--more-->\n\n## 原理\n\n本算法基于以下事实：\n\n> 对于两个数的最大公约数 gcd(m, n)，有\n> m<n 时，gcd(m, n)=gcd(n, m)\n> m 偶 n 偶时，gcd(m, n)=2\\*gcd(m/2, n/2)\n> m 偶 n 奇时，gcd(m, n)=gcd(m/2, n)\n> m 奇 n 偶时，gcd(m, n)=gcd(m, n/2)\n> m 奇 n 奇时，gcd(m, n)=gcd(n, m-n)\n\n采用递归即可。\n\n## 实现\n\n```cpp 最大公约数\ninline int GCD(int x,int y)\n{\n        int i,j;\n        if(x==0) return y;\n        if(y==0) return x;\n        for(i=0;0==(x&1);++i)x>>=1;   // 去掉所有的 2\n        for(j=0;0==(y&1);++j)y>>=1;   // 去掉所有的 2\n        if(j<i) i=j;\n        while(1){\n                if(x<y)x^=y,y^=x,x^=y;   // 若 x < y 交换 x, y\n                if(0==(x-=y)) return y<<i;  // 若 x == y，gcd == x == y（就是在辗转减，while(1) 控制）\n                while(0==(x&1))x>>=1; // 去掉所有的 2\n        }\n}\n```\n\n```cpp 最小公倍数\nint get_lcm(int a,int b)///获得最小公倍数\n{\n    int x=a;\n    int y=b;\n    while(b)\n    {\n        int t=a;\n        a=b;\n        b=t%b;\n    }\n    return x/a*y;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/gcd-bit/  \n\n"
  },
  {
    "path": "posts/gen-router/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>使用 Node.js 自动创建 Vue 的路由 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\n\"><meta name=keywords content='JavaScript,Node.js,Vue2'><meta itemprop=name content=\"使用 Node.js 自动创建 Vue 的路由\"><meta itemprop=description content=\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\"><meta itemprop=datePublished content=\"2023-06-14T00:11:17+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"468\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript,Node.js,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/gen-router/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"使用 Node.js 自动创建 Vue 的路由\"><meta property=\"og:description\" content=\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-06-14T00:11:17+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"使用 Node.js 自动创建 Vue 的路由\"><meta name=twitter:description content=\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/gen-router/ title=\"使用 Node.js 自动创建 Vue 的路由 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/sourcetree-husky/ title=\"解决 SourceTree 提交时候 husky 命令失败问题\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/el-table-sticky/ title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/gen-router/index.md title=\"使用 Node.js 自动创建 Vue 的路由 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"使用 Node.js 自动创建 Vue 的路由\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/gen-router\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript, Node.js, Vue2\",\"wordcount\":468,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/gen-router\\/\",\"datePublished\":\"2023-06-14T00:11:17+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/gen-router/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>使用 Node.js 自动创建 Vue 的路由</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>使用 Node.js 自动创建 Vue 的路由</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-06-14 00:11:17\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-06-14>2023-06-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"468 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"使用 Node.js 自动创建 Vue 的路由\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#源码>源码</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。</p><h2 class=heading-element id=源码><span>1 源码</span>\n<a href=#%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Gist: <a href=https://gist.github.com/Lruihao/d8f2984525dc9e78dd6a49e15f49cf38 target=_blank rel=\"external nofollow noopener noreferrer\">https://gist.github.com/Lruihao/d8f2984525dc9e78dd6a49e15f49cf38<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=gen-router.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>gen-router.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>fs</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;fs&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>os</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;os&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>vueDir</span> <span class=o>=</span> <span class=s1>&#39;./src/views/&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>routerFile</span> <span class=o>=</span> <span class=s1>&#39;./src/router.js&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>fs</span><span class=p>.</span><span class=nx>readdir</span><span class=p>(</span><span class=nx>vueDir</span><span class=p>,</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>err</span><span class=p>,</span> <span class=nx>files</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>err</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>error</span><span class=p>(</span><span class=s1>&#39;❌ Could not list the directory.&#39;</span><span class=p>,</span> <span class=nx>err</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>routes</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=kr>const</span> <span class=nx>filename</span> <span class=k>of</span> <span class=nx>files</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>filename</span><span class=p>.</span><span class=nx>indexOf</span><span class=p>(</span><span class=s1>&#39;.&#39;</span><span class=p>)</span> <span class=o>&lt;</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=p>[</span><span class=nx>name</span><span class=p>,</span> <span class=nx>ext</span><span class=p>]</span> <span class=o>=</span> <span class=nx>filename</span><span class=p>.</span><span class=nx>split</span><span class=p>(</span><span class=s1>&#39;.&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>ext</span> <span class=o>!==</span> <span class=s1>&#39;vue&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>routeName</span> <span class=o>=</span> <span class=nx>name</span><span class=p>.</span><span class=nx>replace</span><span class=p>(</span><span class=sr>/-([a-z])/g</span><span class=p>,</span> <span class=p>(</span><span class=nx>_</span><span class=p>,</span> <span class=nx>match</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>match</span><span class=p>.</span><span class=nx>toUpperCase</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=kd>let</span> <span class=nx>routeDescription</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>contentFull</span> <span class=o>=</span> <span class=nx>fs</span><span class=p>.</span><span class=nx>readFileSync</span><span class=p>(</span><span class=sb>`</span><span class=si>${</span><span class=nx>vueDir</span><span class=si>}${</span><span class=nx>filename</span><span class=si>}</span><span class=sb>`</span><span class=p>,</span> <span class=s1>&#39;utf-8&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// get route description from first line comment\n</span></span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>match</span> <span class=o>=</span> <span class=sr>/&lt;!--\\s*(.*)\\s*--&gt;/g</span><span class=p>.</span><span class=nx>exec</span><span class=p>(</span><span class=nx>contentFull</span><span class=p>.</span><span class=nx>split</span><span class=p>(</span><span class=nx>os</span><span class=p>.</span><span class=nx>EOL</span><span class=p>)[</span><span class=mi>0</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>match</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>routeDescription</span> <span class=o>=</span> <span class=nx>match</span><span class=p>[</span><span class=mi>1</span><span class=p>].</span><span class=nx>trim</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nx>routes</span><span class=p>.</span><span class=nx>push</span><span class=p>(</span><span class=sb>`  {\n</span></span></span><span class=line><span class=cl><span class=sb>    path: &#39;/</span><span class=si>${</span><span class=nx>name</span> <span class=o>===</span> <span class=s1>&#39;home&#39;</span> <span class=o>?</span> <span class=s1>&#39;&#39;</span> <span class=o>:</span> <span class=nx>name</span><span class=si>}</span><span class=sb>&#39;,\n</span></span></span><span class=line><span class=cl><span class=sb>    name: &#39;</span><span class=si>${</span><span class=nx>routeName</span><span class=si>}</span><span class=sb>&#39;,</span><span class=si>${</span><span class=nx>routeDescription</span> <span class=o>?</span> <span class=sb>`\\n    meta: { description: &#39;</span><span class=si>${</span><span class=nx>routeDescription</span><span class=si>}</span><span class=sb>&#39; },`</span> <span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=si>}</span><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>    component: () =&gt; import(/* webpackChunkName: &#34;</span><span class=si>${</span><span class=nx>routeName</span><span class=si>}</span><span class=sb>&#34; */ &#39;@/views/</span><span class=si>${</span><span class=nx>filename</span><span class=si>}</span><span class=sb>&#39;),\n</span></span></span><span class=line><span class=cl><span class=sb>  },`</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>result</span> <span class=o>=</span>\n</span></span><span class=line><span class=cl><span class=sb>`// This file is automatically generated by gen-router.js, please do not modify it manually！\n</span></span></span><span class=line><span class=cl><span class=sb>import VueRouter from &#39;vue-router&#39;\n</span></span></span><span class=line><span class=cl><span class=sb>import Vue from &#39;vue&#39;\n</span></span></span><span class=line><span class=cl><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>Vue.use(VueRouter)\n</span></span></span><span class=line><span class=cl><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>const routes = [\n</span></span></span><span class=line><span class=cl><span class=si>${</span><span class=nx>routes</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=nx>os</span><span class=p>.</span><span class=nx>EOL</span><span class=p>)</span><span class=si>}</span><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>]\n</span></span></span><span class=line><span class=cl><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>const router = new VueRouter({\n</span></span></span><span class=line><span class=cl><span class=sb>  mode: &#39;hash&#39;,\n</span></span></span><span class=line><span class=cl><span class=sb>  routes,\n</span></span></span><span class=line><span class=cl><span class=sb>})\n</span></span></span><span class=line><span class=cl><span class=sb>\n</span></span></span><span class=line><span class=cl><span class=sb>export default router\n</span></span></span><span class=line><span class=cl><span class=sb>`</span>\n</span></span><span class=line><span class=cl>  <span class=nx>fs</span><span class=p>.</span><span class=nx>writeFile</span><span class=p>(</span><span class=nx>routerFile</span><span class=p>,</span> <span class=nx>result</span><span class=p>,</span> <span class=s1>&#39;utf-8&#39;</span><span class=p>,</span> <span class=p>(</span><span class=nx>err</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>err</span><span class=p>)</span> <span class=k>throw</span> <span class=nx>err</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=sb>`✅ Router generated successfully in </span><span class=si>${</span><span class=nx>routerFile</span><span class=si>}</span><span class=sb>`</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>})</span>\n</span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>生成效果如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=router.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>router.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>// This file is automatically generated by gen-router.js, please do not modify it manually！\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>VueRouter</span> <span class=nx>from</span> <span class=s1>&#39;vue-router&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Vue</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>VueRouter</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>routes</span> <span class=o>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span><span class=o>:</span> <span class=s1>&#39;/&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;home&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>meta</span><span class=o>:</span> <span class=p>{</span> <span class=nx>description</span><span class=o>:</span> <span class=s1>&#39;Home&#39;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>component</span><span class=o>:</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=kr>import</span><span class=p>(</span><span class=cm>/* webpackChunkName: &#34;home&#34; */</span> <span class=s1>&#39;@/views/home.vue&#39;</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>router</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>VueRouter</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>mode</span><span class=o>:</span> <span class=s1>&#39;hash&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>routes</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>})</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=nx>router</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=参考><span>2 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/sunzsh/vue-el-demo/blob/f5e9a2a9934c7040f4fa72663eb8c24b1e3b20c1/gen-router.js target=_blank rel=\"external nofollow noopener noreferrer\">sunzsh/vue-el-demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/gen-router/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/gen-router.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_node.js/gen-router.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BD%BF%E7%94%A8+Node.js+%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA+Vue+%E7%9A%84%E8%B7%AF%E7%94%B1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BD%BF%E7%94%A8+Node.js+%E8%87%AA%E5%8A%A8%E5%88%9B%E5%BB%BA+Vue+%E7%9A%84%E8%B7%AF%E7%94%B1%7c%0A%7cURL%7chttps://lruihao.cn/posts/gen-router/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/gen-router.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/gen-router/ data-title=\"使用 Node.js 自动创建 Vue 的路由\" data-hashtags=JavaScript,Node.js,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/gen-router/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/gen-router/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/gen-router/ data-title=\"使用 Node.js 自动创建 Vue 的路由\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/gen-router/ data-title=\"使用 Node.js 自动创建 Vue 的路由\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/sourcetree-husky/ class=post-nav-item rel=prev title=\"解决 SourceTree 提交时候 Husky 命令失败问题\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>解决 SourceTree 提交时候 Husky 命令失败问题</a><a href=/projects/lruihao/el-table-sticky/ class=post-nav-item rel=next title=Lruihao/el-table-sticky>Lruihao/el-table-sticky<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#源码>源码</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3e2b1f699d04d23eb5c686eb812f4dc7.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3e2b1f699d04d23eb5c686eb812f4dc7.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/gen-router/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/gen-router/index.md",
    "content": "# 使用 Node.js 自动创建 Vue 的路由\n\n\n最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\n\n<!--more-->\n\n## 源码\n\n> Gist: <https://gist.github.com/Lruihao/d8f2984525dc9e78dd6a49e15f49cf38>\n\n```js {title=\"gen-router.js\"}\nconst fs = require('fs')\nconst os = require('os')\n\nconst vueDir = './src/views/'\nconst routerFile = './src/router.js'\n\nfs.readdir(vueDir, function (err, files) {\n  if (err) {\n    console.error('❌ Could not list the directory.', err)\n    return\n  }\n  const routes = []\n  for (const filename of files) {\n    if (filename.indexOf('.') < 0) {\n      continue\n    }\n    const [name, ext] = filename.split('.')\n    if (ext !== 'vue') {\n      continue\n    }\n    const routeName = name.replace(/-([a-z])/g, (_, match) => match.toUpperCase())\n    let routeDescription = ''\n    const contentFull = fs.readFileSync(`${vueDir}${filename}`, 'utf-8')\n    // get route description from first line comment\n    const match = /<!--\\s*(.*)\\s*-->/g.exec(contentFull.split(os.EOL)[0])\n    if (match) {\n      routeDescription = match[1].trim()\n    }\n    routes.push(`  {\n    path: '/${name === 'home' ? '' : name}',\n    name: '${routeName}',${routeDescription ? `\\n    meta: { description: '${routeDescription}' },` : ''}\n    component: () => import(/* webpackChunkName: \"${routeName}\" */ '@/views/${filename}'),\n  },`)\n  }\n  const result =\n`// This file is automatically generated by gen-router.js, please do not modify it manually！\nimport VueRouter from 'vue-router'\nimport Vue from 'vue'\n\nVue.use(VueRouter)\n\nconst routes = [\n${routes.join(os.EOL)}\n]\n\nconst router = new VueRouter({\n  mode: 'hash',\n  routes,\n})\n\nexport default router\n`\n  fs.writeFile(routerFile, result, 'utf-8', (err) => {\n    if (err) throw err\n    console.log(`✅ Router generated successfully in ${routerFile}`)\n  })\n})\n```\n\n生成效果如下：\n\n```js {title=\"router.js\"}\n// This file is automatically generated by gen-router.js, please do not modify it manually！\nimport VueRouter from 'vue-router'\nimport Vue from 'vue'\n\nVue.use(VueRouter)\n\nconst routes = [\n  {\n    path: '/',\n    name: 'home',\n    meta: { description: 'Home' },\n    component: () => import(/* webpackChunkName: \"home\" */ '@/views/home.vue'),\n  },\n]\n\nconst router = new VueRouter({\n  mode: 'hash',\n  routes,\n})\n\nexport default router\n```\n\n## 参考\n\n[sunzsh/vue-el-demo](https://github.com/sunzsh/vue-el-demo/blob/f5e9a2a9934c7040f4fa72663eb8c24b1e3b20c1/gen-router.js)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/gen-router/  \n\n"
  },
  {
    "path": "posts/git/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git 常用指令汇总 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 &ldquo;.git 目录下&rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \"><meta name=keywords content='Git'><meta itemprop=name content=\"Git 常用指令汇总\"><meta itemprop=description content=\"工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 “.git 目录下” 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\"><meta itemprop=datePublished content=\"2018-10-30T08:59:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"3634\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/git/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Git 常用指令汇总\"><meta property=\"og:description\" content=\"工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 “.git 目录下” 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-30T08:59:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Git 常用指令汇总\"><meta name=twitter:description content=\"工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 “.git 目录下” 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/git/ title=\"Git 常用指令汇总 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/beian/ title=网站备案之旅><link rel=next type=text/html href=https://lruihao.cn/posts/blog-backup/ title=\"hexo 博客源码备份\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/git/index.md title=\"Git 常用指令汇总 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Git 常用指令汇总\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/git\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":3634,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/git\\/\",\"datePublished\":\"2018-10-30T08:59:56+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/git/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git 常用指令汇总</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Git 常用指令汇总</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-30 08:59:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-30>2018-10-30</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"3634 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 3700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 8 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Git 常用指令汇总\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/git/images/relation-1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/git/images/relation-1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#介绍>介绍</a></li><li><a href=#git-配置>Git 配置</a><ol><li><a href=#基本操作>基本操作</a></li><li><a href=#push>push</a></li><li><a href=#remote>remote</a></li><li><a href=#clone>clone</a></li><li><a href=#pull>pull</a></li><li><a href=#fetch>fetch</a></li><li><a href=#merge>merge</a></li><li><a href=#branchcheckout>branch,checkout</a></li><li><a href=#refloglog>reflog,log</a></li><li><a href=#reset>reset</a></li><li><a href=#status>status</a></li><li><a href=#diff>diff</a></li><li><a href=#rm-mv>rm, mv</a></li><li><a href=#submodule>submodule</a></li><li><a href=#tag>tag</a></li><li><a href=#stash>stash</a></li><li><a href=#gitk>gitk</a></li></ol></li><li><a href=#githubgitea-等平台-issue-的常用标签>github,gitea 等平台 issue 的常用标签</a></li><li><a href=#license>license</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><ul><li><strong>工作区</strong>：就是你在电脑里能看到的目录。</li><li><strong>暂存区</strong>：英文叫 stage, 或 index。一般存放在 &ldquo;.git 目录下&rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。</li><li><strong>版本库</strong>：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。</li></ul><h2 class=heading-element id=介绍><span>1 介绍</span>\n<a href=#%e4%bb%8b%e7%bb%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p><a href=https://git-scm.com/ target=_blank rel=\"external nofollow noopener noreferrer\">https://git-scm.com/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>先通过几张图片来大致了解一下 Git 的工作原理吧！<br>文章开头的流程图已经简单明了地说明了 Git 常用操作的工作流程，下图换种风格再展示一次：\n<a class=lightgallery target=_blank href=/posts/git/images/relation-2.jpg title=关系图 data-thumbnail=/posts/git/images/relation-2.jpg data-sub-html=\"<h2>关系图</h2>\"><img loading=lazy src=/posts/git/images/relation-2.jpg alt=关系图 height=462 width=553></a></p><p>提到 Git 就会联想到 github, 下图从 Git 的角度简单说明了一些 Github 常用操作的关系：\n<a class=lightgallery target=_blank href=/posts/git/images/github.jpg title=\"github 流程\" data-thumbnail=/posts/git/images/github.jpg data-sub-html=\"<h2>github 流程</h2>\"><img loading=lazy src=/posts/git/images/github.jpg alt=\"github 流程\" height=480 width=924></a></p><p>下面这个图则展示了工作区、版本库中的暂存区和版本库之间的关系：\n<a class=lightgallery target=_blank href=/posts/git/images/work.jpg title=工作区、暂存区和版本库 data-thumbnail=/posts/git/images/work.jpg data-sub-html=\"<h2>工作区、暂存区和版本库</h2>\"><img loading=lazy src=/posts/git/images/work.jpg alt=工作区、暂存区和版本库 height=357 width=683></a></p><p>图中左侧为工作区，右侧为版本库。在版本库中标记为 <code>\"index\"</code> 的区域是暂存区（stage, index），标记为 &ldquo;master&rdquo; 的是 master 分支所代表的目录树。<br><strong>HEAD 指针：每个 git 仓库有且仅有一个 HEAD 指针，它通常指向當前某个活動的本地分支指针（最初本地仓库 master)。也可以是某个提交记录、某个 tag，但这会让其处于 detached HEAD（游离头）状态，此状态下的所有提交都无效。</strong><br>图中我们可以看出此时 <code>\"HEAD\"</code> 实际是指向 master 分支的一个\"游标\"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。<br>图中的<code>objects</code>标识的区域为 Git 的对象库，实际位于 <code>\".git/objects\"</code> 目录下，里面包含了创建的各种对象及内容。<br>当对工作区修改（或新增）的文件执行 <code>\"git add\"</code>命令时，暂存区的目录树被更新，同时工作区修改（或新增）的文件内容被写入到对象库中的一个新的对象中，而该对象的 ID 被记录在暂存区的文件索引中。<br>当执行提交操作（git commit）时，暂存区的目录树写到版本库（对象库）中，master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。<br>当执行 <code>\"git reset HEAD\"</code> 命令时，暂存区的目录树会被重写，被 master 分支指向的目录树所替换，但是工作区不受影响。<br>当执行 <code>\"git rm --cached &lt;file>\"</code> 命令时，会直接从暂存区删除文件，工作区则不做出改变。<br>当执行 <code>\"git checkout .\"</code> 或者 <code>\"git checkout -- &lt;file>\"</code> 命令时，会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险，会清除工作区中未添加到暂存区的改动。<br>当执行 <code>\"git checkout HEAD .\"</code> 或者 <code>\"git checkout HEAD &lt;file>\"</code> 命令时，会用 <code>HEAD</code> 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的，因为不但会清除工作区中未提交的改动，也会清除暂存区中未提交的改动。</p><h2 class=heading-element id=git-配置><span>2 Git 配置</span>\n<a href=#git-%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global --list <span class=c1>#查看全局配置</span>\n</span></span><span class=line><span class=cl>git config --local --list <span class=c1>#查看本项目配置</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 第一次使用 git 的时候，需要设置用户信息和用户邮箱，用于辨识提交者身份</span>\n</span></span><span class=line><span class=cl>git config --global user.name <span class=s2>&#34;用户名&#34;</span>\n</span></span><span class=line><span class=cl>git config --global user.email <span class=s2>&#34;邮箱&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global alias.cm commit\n</span></span><span class=line><span class=cl>git config --global alias.br branch <span class=c1># 配置指令别名简写</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global credential.helper store <span class=c1># 输入一次账号密码后第二次就会记住账号密码</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global core.ignorecase <span class=nb>false</span> <span class=c1># 关闭忽略大小写</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --system core.longpaths <span class=nb>true</span> <span class=c1># 配置长路径</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global http.sslVerify <span class=nb>false</span> <span class=c1># 禁用 SSL 验证</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global core.protectNTFS <span class=nb>false</span> <span class=c1># 关闭 NTFS 文件保护</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git config --global url.<span class=s2>&#34;https://&#34;</span>.insteadOf git:// <span class=c1># git:// 报错</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=基本操作><span>2.1 基本操作</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e6%93%8d%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git init                    <span class=c1>## 把当前的目录变成可以用 git 进行版本控制的 git 仓库，生成隐藏。git 文件。</span>\n</span></span><span class=line><span class=cl>git add XX                  <span class=c1>## 把 xx 文件添加到暂存区去。</span>\n</span></span><span class=line><span class=cl>git add –A                  <span class=c1>## git add --all 的缩写，添加全部到暂存区</span>\n</span></span><span class=line><span class=cl>git add –u                  <span class=c1>## 把文件的删除和修改添加到暂存区（不包括新增）</span>\n</span></span><span class=line><span class=cl>git add .                   <span class=c1>## 监控工作区的状态树，使用它会把工作时的所有变化提交到暂存区</span>\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;message&#34;</span>     <span class=c1>## 从暂存区提交到本地仓库</span>\n</span></span><span class=line><span class=cl>git commit -a -m <span class=s2>&#34;message&#34;</span>  <span class=c1>## 相当于省略 git add，但是无法提交新增的文件</span>\n</span></span><span class=line><span class=cl>git push origin master      <span class=c1>## Git 会把 master 分支推送到远程库对应的远程分支上</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>Tips<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><a href=https://github.com/Lruihao/hugo-blog/wiki/Commit-message target=_blank rel=\"external nofollow noopener noreferrer\">Commit Message<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 内容尽量规范！<br>当某一次提交后，突然想起漏提交了文件，或不小心提交了不满意的代码时，<br>可以使用<code>git commit --amend -m \"message\"</code>指令。它可以在不增加一个新的 commit-id 的情况下将新修改的代码追加到前一次的 commit-id 中。提交之后 message 也将被本次的 message 覆盖，所以还需要再次添加上次的 message。</div></div></div><h3 class=heading-element id=push><span>2.2 push</span>\n<a href=#push class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git push origin branch-name\n</span></span><span class=line><span class=cl>git push –u origin master\n</span></span><span class=line><span class=cl>git push origin --delete branch-name     <span class=c1>## 删除远程分支</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>把当前 master 分支推送到远程库；<code>-u</code>表示记住分支和地址，下次使用<code>git push</code>即可。</p></blockquote><h3 class=heading-element id=remote><span>2.3 remote</span>\n<a href=#remote class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git remote add origin reposityUrl     <span class=c1>## 关联一个远程库</span>\n</span></span><span class=line><span class=cl>git remote                            <span class=c1>## 查看远程库的信息</span>\n</span></span><span class=line><span class=cl>git remote –v                         <span class=c1>## 查看远程库的详细信息</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=clone><span>2.4 clone</span>\n<a href=#clone class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone reposityUrl                   <span class=c1>## 从远程库中克隆</span>\n</span></span><span class=line><span class=cl>git clone -b branchName reposityUrl     <span class=c1>## 克隆指定分支</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=pull><span>2.5 pull</span>\n<a href=#pull class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git pull</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>从远程仓库拉下来到本地库然后合并相当于<code>git fetch</code>+<code>git merge</code>。<br>一般 push 前先拉去最新版本，避免代码冲突，如果有冲突需要解决了冲突才能提交。</p></blockquote><p><strong>import repositories 同步更新</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git pull 原链接\n</span></span><span class=line><span class=cl>git push origin master</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=fetch><span>2.6 fetch</span>\n<a href=#fetch class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git fetch               <span class=c1>## 从远程库抓下最新版本，但是不合并</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>fetch 是从远程库到本地库，但是未在工作区，需要<code>git merge</code></p></blockquote><h3 class=heading-element id=merge><span>2.7 merge</span>\n<a href=#merge class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git merge dev           <span class=c1>## 在当前的分支上合并 dev 分支</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>分支合并也是在本地完成 (<strong>从本地库到工作区</strong>)，新的分支只有在合并后才允许被删除。<br>如果分支合并是出现冲突需要解决了冲突才能合并，使用<code>git status</code>查看冲突文件。</p></blockquote><p><a class=lightgallery target=_blank href=/posts/git/images/delete-merge.png title=分支合并后删除 data-thumbnail=/posts/git/images/delete-merge.png data-sub-html=\"<h2>分支合并后删除</h2>\"><img loading=lazy src=/posts/git/images/delete-merge.png alt=分支合并后删除 height=522 width=1488></a></p><h3 class=heading-element id=branchcheckout><span>2.8 branch,checkout</span>\n<a href=#branchcheckout class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git branch            <span class=c1>## 查看当前所有的分支</span>\n</span></span><span class=line><span class=cl>git branch name       <span class=c1>## 创建分支</span>\n</span></span><span class=line><span class=cl>git branch –r         <span class=c1>## 看远程所有分支</span>\n</span></span><span class=line><span class=cl>git branch –a         <span class=c1>## 查看本地远程分支</span>\n</span></span><span class=line><span class=cl>git branch –d name    <span class=c1>## 删除分支</span>\n</span></span><span class=line><span class=cl>git checkout name     <span class=c1>## 切换分支</span>\n</span></span><span class=line><span class=cl>git checkout –b name  <span class=c1>## 创建并切换到 name 分支上</span>\n</span></span><span class=line><span class=cl>git checkout -- file</span></span></code></pre></td></tr></table></div></div></div><blockquote><p><code>git checkout -- file</code>相当于取消对文档的修改，将最新的本地版本库的本文件复制覆盖它。（比较危险！）</p></blockquote><h3 class=heading-element id=refloglog><span>2.9 reflog,log</span>\n<a href=#refloglog class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git log               <span class=c1>## 显示所有提交过的版本信息：commit id，提交者，日期</span>\n</span></span><span class=line><span class=cl>git reflog            <span class=c1>## 查看历史记录的 commit id</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>Tips<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>想看到自己的操作记录，则可以使用 log 与 reflog，它两个的区别如下：</p><ol><li><code>git log</code>命令可以显示所有提交过的版本信息；\n如果感觉太繁琐，可以加上参数<code>--pretty=oneline</code>，只会显示版本号和提交时的备注信息。</li><li><code>git reflog</code>可以查看所有分支的所有操作记录。（包括已经被删除的 commit 记录和 reset 的操作）</li></ol></div></div></div><h3 class=heading-element id=reset><span>2.10 reset</span>\n<a href=#reset class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git reset --hard HEAD^\n</span></span><span class=line><span class=cl>git reset --hard HEAD~        <span class=c1>## 回退到上一个版本</span>\n</span></span><span class=line><span class=cl>git reset --hard HEAD~100     <span class=c1>## 回退到 100 个版本</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git reset head -- file        <span class=c1>## 不加 file 则全部退回</span>\n</span></span><span class=line><span class=cl>git reset file                <span class=c1>## 将本地仓库的当前版本退回至暂存区，相当于取消暂存</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>版本退回是从本地仓库到暂存区，如果已经提交远程库，此时的版本是低于最新的版本的会拒绝提交，\n需要用<code>git push -f origin master</code>强制提交。</p></blockquote><div class=\"details admonition danger open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-bolt\" aria-hidden=true></i>特别提醒<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>如果你<code>git reset --hard HEAD^</code>+<code>git push -f origin master</code>执行完，github 中的记录和本地文件都会回到退回的状态。<strong>简单来说就是一修改了一天的 bug, 完工后，你这一套操作直接打回原形。别慌（实际内心慌的一麻皮。）</strong></p><ol><li>通过<code>git log -g</code>命令来找到需要恢复的信息对应的 commitid，可以通过提交的时间和记录来辨别，\n找到执行<code>reset --hard</code>之前的那个 commit 对应的 commit-id</li><li>通过<code>git branch recover_branch commit-id</code>来建立一个新的分支</li></ol><p><strong>这样，就把到 commitid 为止的代码、各种提交记录等信息都恢复到了 recover_branch 分支上了。</strong></p></div></div></div><h3 class=heading-element id=status><span>2.11 status</span>\n<a href=#status class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git status</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>查看你的文件在暂存区和工作目录的状态，默认是较为详细的显示，并提示你可以用何种命令完成你接下来可能要做的事情。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git status -s</span></span></code></pre></td></tr></table></div></div></div><p>较为简单的输出当前的状态，如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>$ git status -s\n</span></span><span class=line><span class=cl>M  README.md\n</span></span><span class=line><span class=cl> D hello.rb\n</span></span><span class=line><span class=cl>?? world.java</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>你可以看到，在简短输出中，有两栏。第一栏是暂存区的，第二栏则是工作目录的。这里表示：</p></blockquote><ul><li><code>README.md</code> 在暂存区中的状态是 <code>modify</code></li><li><code>hello.rb</code> 在工作目录中的状态是 <code>delete</code></li><li><code>world.java</code> 还未添加到版本控制。</li></ul><h3 class=heading-element id=diff><span>2.12 diff</span>\n<a href=#diff class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git diff XX         <span class=c1>## 查看 XX 文件修改了哪些内容</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>git diff            <span class=c1>## 工作目录和暂存区</span>\n</span></span><span class=line><span class=cl>git diff --cached   <span class=c1>## 暂存区和本地仓库</span>\n</span></span><span class=line><span class=cl>git diff HEAD       <span class=c1>## 工作目录和本地仓库</span>\n</span></span><span class=line><span class=cl>git diff --stat     <span class=c1>## 显示信息摘要</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=rm-mv><span>2.13 rm, mv</span>\n<a href=#rm-mv class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git rm                           <span class=c1>## 将文件从暂存区和工作目录删除，-f 为强制删除</span>\n</span></span><span class=line><span class=cl>git rm filename                  <span class=c1>## 删除文件</span>\n</span></span><span class=line><span class=cl>git rm –r dirname                <span class=c1>## 删除文件夹 –r 表示递归所有子目录</span>\n</span></span><span class=line><span class=cl>git rm --cached &lt;path&gt;           <span class=c1>## 将文件从暂存区中删除</span>\n</span></span><span class=line><span class=cl>git mv &lt;old_path&gt; &lt;new_path&gt;</span></span></code></pre></td></tr></table></div></div></div><blockquote><p><code>git rm</code>用来删除文件、目录。<code>git mv</code>命令用于移动或重命名一个文件、目录。</p></blockquote><p>比如删除 photos 文件，本地删除后，远程仓库还会有，所以</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git rm -r photos\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;删除相册&#34;</span>\n</span></span><span class=line><span class=cl>git push</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=submodule><span>2.14 submodule</span>\n<a href=#submodule class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add         <span class=c1>## 添加子模组</span>\n</span></span><span class=line><span class=cl>git submodule init        <span class=c1>## 子模组初始化</span>\n</span></span><span class=line><span class=cl>git submodule update      <span class=c1>## 子模组更新</span>\n</span></span><span class=line><span class=cl>git submodule -help</span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>Note<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>当一个远程库有子模组时，直接 clone 子模组只是一个空文件夹，需要进入子模组的空文件夹<code>init</code>和<code>update</code>才行。\n或者使用递归克隆<code>git clone --recursive 远程库</code><br>子模组更新后，父模组必须更新，因为需要更新 commit id。</div></div></div><h3 class=heading-element id=tag><span>2.15 tag</span>\n<a href=#tag class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git tag v1.0\n</span></span><span class=line><span class=cl>git tag -a v1.0                   <span class=c1>## 给最新一次提交打标签</span>\n</span></span><span class=line><span class=cl>git tag -a &lt;tagname&gt; -m <span class=s2>&#34;标签&#34;</span>    <span class=c1>## 指定标签信息命令</span>\n</span></span><span class=line><span class=cl>git show &lt;tagname&gt;                <span class=c1>## 显示标签信息</span>\n</span></span><span class=line><span class=cl>git tag                           <span class=c1>## 查看版本打的 Tag</span>\n</span></span><span class=line><span class=cl>git tag -d v1.0                   <span class=c1>## 删除本地标签</span>\n</span></span><span class=line><span class=cl>git push origin :refs/tags/v1.0   <span class=c1>## 删除远程标签</span>\n</span></span><span class=line><span class=cl>$ git push <span class=o>[</span>remote<span class=o>]</span> <span class=o>[</span>tag<span class=o>]</span>         <span class=c1>## 提交指定 tag</span>\n</span></span><span class=line><span class=cl>$ git push <span class=o>[</span>remote<span class=o>]</span> --tags        <span class=c1>## 提交所有 tag</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>Note<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>当你执行<code>git tag -a</code>命令时，Git 会打开你的编辑器，让你写一句标签注解，就像你给提交写注解一样。\n如果我们忘了给某个提交打标签，又将它发布了，我们可以给它追加标签。</div></div></div><p>例如，假设我们发布了提交 85fc7e7（最后一行），但是那时候忘了给它打标签。我们现在也可以：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>$ git tag -a v0.9 85fc7e7\n</span></span><span class=line><span class=cl>$ git log --oneline --decorate --graph\n</span></span><span class=line><span class=cl>*   d5e9fc2 <span class=o>(</span>HEAD -&gt; master<span class=o>)</span> Merge branch <span class=s1>&#39;change_site&#39;</span>\n</span></span><span class=line><span class=cl><span class=p>|</span><span class=se>\\\n</span></span></span><span class=line><span class=cl><span class=p>|</span> * <span class=m>7774248</span> <span class=o>(</span>change_site<span class=o>)</span> changed the runoob.php\n</span></span><span class=line><span class=cl>* <span class=p>|</span> c68142b 修改代码\n</span></span><span class=line><span class=cl><span class=p>|</span>/\n</span></span><span class=line><span class=cl>* c1501a2 removed test.txt、add runoob.php\n</span></span><span class=line><span class=cl>* 3e92c19 add test.txt\n</span></span><span class=line><span class=cl>* 3b58100 <span class=o>(</span>tag: v0.9<span class=o>)</span> 第一次版本提交</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=stash><span>2.16 stash</span>\n<a href=#stash class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git stash               <span class=c1>## 把当前的工作隐藏起来，等以后恢复现场后继续工作</span>\n</span></span><span class=line><span class=cl>git stash list          <span class=c1>## 查看所有被隐藏的文件列表</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=gitk><span>2.17 gitk</span>\n<a href=#gitk class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>gitk                    <span class=c1>## git 自带 GUI</span>\n</span></span><span class=line><span class=cl>gitk --all</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=githubgitea-等平台-issue-的常用标签><span>3 github,gitea 等平台 issue 的常用标签</span>\n<a href=#githubgitea-%e7%ad%89%e5%b9%b3%e5%8f%b0-issue-%e7%9a%84%e5%b8%b8%e7%94%a8%e6%a0%87%e7%ad%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>bug</code> 描述的问题是一个 bug</li><li><code>enhancement</code> 功能增强，没有 feature 也可以指 New feature or request</li><li><code>feature</code> 新功能</li><li><code>duplicate</code> 问题重复</li><li><code>invalid</code> 可用的，不是 bug</li><li><code>question</code> 疑问，需要进一步的信息</li><li><code>wontfix</code> 不会修复此问题</li><li><code>help-wanted</code> 需要帮助</li><li><code>good first issue</code> Good for newcomers</li><li><a href=https://www.jianshu.com/p/48b935e36000 target=_blank rel=\"external nofollow noopener noreferrer\">更多标签<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=license><span>4 license</span>\n<a href=#license class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/git/images/license.jpg title=license data-thumbnail=/posts/git/images/license.jpg data-sub-html=\"<h2>license</h2>\"><img loading=lazy src=/posts/git/images/license.jpg alt=license height=800 width=1280></a></p><h2 class=heading-element id=其他><span>5 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html target=_blank rel=\"external nofollow noopener noreferrer\">常用 Git 命令清单<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://blog.csdn.net/qq1332479771/article/details/56087333 target=_blank rel=\"external nofollow noopener noreferrer\">github 上 fork 了别人的项目后，再同步更新别人的提交<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://learngitbranching.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Gearn Git Branching<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/git/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/git/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Git+%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4%E6%B1%87%E6%80%BB&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cGit+%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4%E6%B1%87%E6%80%BB%7c%0A%7cURL%7chttps://lruihao.cn/posts/git/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/git/ data-title=\"Git 常用指令汇总\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/git/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/git/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/git/ data-title=\"Git 常用指令汇总\" data-image=/posts/git/images/relation-1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/git/ data-title=\"Git 常用指令汇总\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/beian/ class=post-nav-item rel=prev title=网站备案之旅><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>网站备案之旅</a><a href=/posts/blog-backup/ class=post-nav-item rel=next title=\"Hexo 博客源码备份\">Hexo 博客源码备份<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#介绍>介绍</a></li><li><a href=#git-配置>Git 配置</a><ol><li><a href=#基本操作>基本操作</a></li><li><a href=#push>push</a></li><li><a href=#remote>remote</a></li><li><a href=#clone>clone</a></li><li><a href=#pull>pull</a></li><li><a href=#fetch>fetch</a></li><li><a href=#merge>merge</a></li><li><a href=#branchcheckout>branch,checkout</a></li><li><a href=#refloglog>reflog,log</a></li><li><a href=#reset>reset</a></li><li><a href=#status>status</a></li><li><a href=#diff>diff</a></li><li><a href=#rm-mv>rm, mv</a></li><li><a href=#submodule>submodule</a></li><li><a href=#tag>tag</a></li><li><a href=#stash>stash</a></li><li><a href=#gitk>gitk</a></li></ol></li><li><a href=#githubgitea-等平台-issue-的常用标签>github,gitea 等平台 issue 的常用标签</a></li><li><a href=#license>license</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1ce7d401f80e690df073189ecec29477.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1ce7d401f80e690df073189ecec29477.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/git/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/git/index.md",
    "content": "# Git 常用指令汇总\n\n\n- **工作区**：就是你在电脑里能看到的目录。\n- **暂存区**：英文叫 stage, 或 index。一般存放在 \".git 目录下\" 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。\n- **版本库**：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\n<!--more-->\n\n## 介绍\n\n> <https://git-scm.com/>\n\n先通过几张图片来大致了解一下 Git 的工作原理吧！  \n文章开头的流程图已经简单明了地说明了 Git 常用操作的工作流程，下图换种风格再展示一次：\n![关系图](images/relation-2.jpg)\n\n提到 Git 就会联想到 github, 下图从 Git 的角度简单说明了一些 Github 常用操作的关系：\n![github 流程](images/github.jpg)\n\n下面这个图则展示了工作区、版本库中的暂存区和版本库之间的关系：\n![工作区、暂存区和版本库](images/work.jpg)\n\n图中左侧为工作区，右侧为版本库。在版本库中标记为 `\"index\"` 的区域是暂存区（stage, index），标记为 \"master\" 的是 master 分支所代表的目录树。  \n**HEAD 指针：每个 git 仓库有且仅有一个 HEAD 指针，它通常指向當前某个活動的本地分支指针（最初本地仓库 master)。也可以是某个提交记录、某个 tag，但这会让其处于 detached HEAD（游离头）状态，此状态下的所有提交都无效。**  \n图中我们可以看出此时 `\"HEAD\"` 实际是指向 master 分支的一个\"游标\"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。  \n图中的`objects`标识的区域为 Git 的对象库，实际位于 `\".git/objects\"` 目录下，里面包含了创建的各种对象及内容。  \n当对工作区修改（或新增）的文件执行 `\"git add\"`命令时，暂存区的目录树被更新，同时工作区修改（或新增）的文件内容被写入到对象库中的一个新的对象中，而该对象的 ID 被记录在暂存区的文件索引中。  \n当执行提交操作（git commit）时，暂存区的目录树写到版本库（对象库）中，master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。  \n当执行 `\"git reset HEAD\"` 命令时，暂存区的目录树会被重写，被 master 分支指向的目录树所替换，但是工作区不受影响。  \n当执行 `\"git rm --cached <file>\"` 命令时，会直接从暂存区删除文件，工作区则不做出改变。  \n当执行 `\"git checkout .\"` 或者 `\"git checkout -- <file>\"` 命令时，会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险，会清除工作区中未添加到暂存区的改动。  \n当执行 `\"git checkout HEAD .\"` 或者 `\"git checkout HEAD <file>\"` 命令时，会用 `HEAD` 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的，因为不但会清除工作区中未提交的改动，也会清除暂存区中未提交的改动。\n\n## Git 配置\n\n```bash\ngit config --global --list #查看全局配置\ngit config --local --list #查看本项目配置\n\n# 第一次使用 git 的时候，需要设置用户信息和用户邮箱，用于辨识提交者身份\ngit config --global user.name \"用户名\"\ngit config --global user.email \"邮箱\"\n\ngit config --global alias.cm commit\ngit config --global alias.br branch # 配置指令别名简写\n\ngit config --global credential.helper store # 输入一次账号密码后第二次就会记住账号密码\n\ngit config --global core.ignorecase false # 关闭忽略大小写\n\ngit config --system core.longpaths true # 配置长路径\n\ngit config --global http.sslVerify false # 禁用 SSL 验证\n\ngit config --global core.protectNTFS false # 关闭 NTFS 文件保护\n\ngit config --global url.\"https://\".insteadOf git:// # git:// 报错\n```\n\n### 基本操作\n\n```bash\ngit init                    ## 把当前的目录变成可以用 git 进行版本控制的 git 仓库，生成隐藏。git 文件。\ngit add XX                  ## 把 xx 文件添加到暂存区去。\ngit add –A                  ## git add --all 的缩写，添加全部到暂存区\ngit add –u                  ## 把文件的删除和修改添加到暂存区（不包括新增）\ngit add .                   ## 监控工作区的状态树，使用它会把工作时的所有变化提交到暂存区\ngit commit -m \"message\"     ## 从暂存区提交到本地仓库\ngit commit -a -m \"message\"  ## 相当于省略 git add，但是无法提交新增的文件\ngit push origin master      ## Git 会把 master 分支推送到远程库对应的远程分支上\n```\n\n{{< admonition tip \"Tips\" >}}\n[Commit Message](https://github.com/Lruihao/hugo-blog/wiki/Commit-message) 内容尽量规范！  \n当某一次提交后，突然想起漏提交了文件，或不小心提交了不满意的代码时，  \n可以使用`git commit --amend -m \"message\"`指令。它可以在不增加一个新的 commit-id 的情况下将新修改的代码追加到前一次的 commit-id 中。提交之后 message 也将被本次的 message 覆盖，所以还需要再次添加上次的 message。\n{{< /admonition >}}\n\n### push\n\n```bash\ngit push origin branch-name\ngit push –u origin master\ngit push origin --delete branch-name     ## 删除远程分支\n```\n\n> 把当前 master 分支推送到远程库；`-u`表示记住分支和地址，下次使用`git push`即可。\n\n### remote\n\n```bash\ngit remote add origin reposityUrl     ## 关联一个远程库\ngit remote                            ## 查看远程库的信息\ngit remote –v                         ## 查看远程库的详细信息\n```\n\n### clone\n\n```bash\ngit clone reposityUrl                   ## 从远程库中克隆\ngit clone -b branchName reposityUrl     ## 克隆指定分支\n```\n\n### pull\n\n```bash\ngit pull\n```\n\n> 从远程仓库拉下来到本地库然后合并相当于`git fetch`+`git merge`。  \n> 一般 push 前先拉去最新版本，避免代码冲突，如果有冲突需要解决了冲突才能提交。\n\n**import repositories 同步更新**\n\n```bash\ngit pull 原链接\ngit push origin master\n```\n\n### fetch\n\n```bash\ngit fetch               ## 从远程库抓下最新版本，但是不合并\n```\n\n> fetch 是从远程库到本地库，但是未在工作区，需要`git merge`\n\n### merge\n\n```bash\ngit merge dev           ## 在当前的分支上合并 dev 分支\n```\n\n> 分支合并也是在本地完成 (**从本地库到工作区**)，新的分支只有在合并后才允许被删除。  \n> 如果分支合并是出现冲突需要解决了冲突才能合并，使用`git status`查看冲突文件。\n\n![分支合并后删除](images/delete-merge.png)\n\n### branch,checkout\n\n```bash\ngit branch            ## 查看当前所有的分支\ngit branch name       ## 创建分支\ngit branch –r         ## 看远程所有分支\ngit branch –a         ## 查看本地远程分支\ngit branch –d name    ## 删除分支\ngit checkout name     ## 切换分支\ngit checkout –b name  ## 创建并切换到 name 分支上\ngit checkout -- file\n```\n\n> `git checkout -- file`相当于取消对文档的修改，将最新的本地版本库的本文件复制覆盖它。（比较危险！）\n\n### reflog,log\n\n```bash\ngit log               ## 显示所有提交过的版本信息：commit id，提交者，日期\ngit reflog            ## 查看历史记录的 commit id\n```\n\n{{< admonition tip \"Tips\" >}}\n\n想看到自己的操作记录，则可以使用 log 与 reflog，它两个的区别如下：\n\n1. `git log`命令可以显示所有提交过的版本信息；\n   如果感觉太繁琐，可以加上参数`--pretty=oneline`，只会显示版本号和提交时的备注信息。\n2. `git reflog`可以查看所有分支的所有操作记录。（包括已经被删除的 commit 记录和 reset 的操作）\n\n{{< /admonition >}}\n\n### reset\n\n```bash\ngit reset --hard HEAD^\ngit reset --hard HEAD~        ## 回退到上一个版本\ngit reset --hard HEAD~100     ## 回退到 100 个版本\n\ngit reset head -- file        ## 不加 file 则全部退回\ngit reset file                ## 将本地仓库的当前版本退回至暂存区，相当于取消暂存\n```\n\n> 版本退回是从本地仓库到暂存区，如果已经提交远程库，此时的版本是低于最新的版本的会拒绝提交，\n> 需要用`git push -f origin master`强制提交。\n\n{{< admonition danger \"特别提醒\" >}}\n如果你`git reset --hard HEAD^`+`git push -f origin master`执行完，github 中的记录和本地文件都会回到退回的状态。**简单来说就是一修改了一天的 bug, 完工后，你这一套操作直接打回原形。别慌（实际内心慌的一麻皮。）**\n\n1. 通过`git log -g`命令来找到需要恢复的信息对应的 commitid，可以通过提交的时间和记录来辨别，\n   找到执行`reset --hard`之前的那个 commit 对应的 commit-id\n2. 通过`git branch recover_branch commit-id`来建立一个新的分支\n\n**这样，就把到 commitid 为止的代码、各种提交记录等信息都恢复到了 recover_branch 分支上了。**\n{{< /admonition >}}\n\n### status\n\n```bash\ngit status\n```\n\n> 查看你的文件在暂存区和工作目录的状态，默认是较为详细的显示，并提示你可以用何种命令完成你接下来可能要做的事情。\n\n```bash\ngit status -s\n```\n\n较为简单的输出当前的状态，如：\n\n```bash\n$ git status -s\nM  README.md\n D hello.rb\n?? world.java\n```\n\n> 你可以看到，在简短输出中，有两栏。第一栏是暂存区的，第二栏则是工作目录的。这里表示：\n\n- `README.md` 在暂存区中的状态是 `modify`\n- `hello.rb` 在工作目录中的状态是 `delete`\n- `world.java` 还未添加到版本控制。\n\n### diff\n\n```bash\ngit diff XX         ## 查看 XX 文件修改了哪些内容\n\ngit diff            ## 工作目录和暂存区\ngit diff --cached   ## 暂存区和本地仓库\ngit diff HEAD       ## 工作目录和本地仓库\ngit diff --stat     ## 显示信息摘要\n```\n\n### rm, mv\n\n```bash\ngit rm                           ## 将文件从暂存区和工作目录删除，-f 为强制删除\ngit rm filename                  ## 删除文件\ngit rm –r dirname                ## 删除文件夹 –r 表示递归所有子目录\ngit rm --cached <path>           ## 将文件从暂存区中删除\ngit mv <old_path> <new_path>\n```\n\n> `git rm`用来删除文件、目录。`git mv`命令用于移动或重命名一个文件、目录。\n\n比如删除 photos 文件，本地删除后，远程仓库还会有，所以\n\n```bash\ngit rm -r photos\ngit commit -m \"删除相册\"\ngit push\n```\n\n### submodule\n\n```bash\ngit submodule add         ## 添加子模组\ngit submodule init        ## 子模组初始化\ngit submodule update      ## 子模组更新\ngit submodule -help\n```\n\n{{< admonition Note \"Note\" >}}\n当一个远程库有子模组时，直接 clone 子模组只是一个空文件夹，需要进入子模组的空文件夹`init`和`update`才行。\n或者使用递归克隆`git clone --recursive 远程库`  \n子模组更新后，父模组必须更新，因为需要更新 commit id。\n{{< /admonition >}}\n\n### tag\n\n```bash\ngit tag v1.0\ngit tag -a v1.0                   ## 给最新一次提交打标签\ngit tag -a <tagname> -m \"标签\"    ## 指定标签信息命令\ngit show <tagname>                ## 显示标签信息\ngit tag                           ## 查看版本打的 Tag\ngit tag -d v1.0                   ## 删除本地标签\ngit push origin :refs/tags/v1.0   ## 删除远程标签\n$ git push [remote] [tag]         ## 提交指定 tag\n$ git push [remote] --tags        ## 提交所有 tag\n```\n\n{{< admonition Success \"Note\" >}}\n当你执行`git tag -a`命令时，Git 会打开你的编辑器，让你写一句标签注解，就像你给提交写注解一样。\n如果我们忘了给某个提交打标签，又将它发布了，我们可以给它追加标签。\n{{< /admonition >}}\n\n例如，假设我们发布了提交 85fc7e7（最后一行），但是那时候忘了给它打标签。我们现在也可以：\n\n```bash\n$ git tag -a v0.9 85fc7e7\n$ git log --oneline --decorate --graph\n*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'\n|\\\n| * 7774248 (change_site) changed the runoob.php\n* | c68142b 修改代码\n|/\n* c1501a2 removed test.txt、add runoob.php\n* 3e92c19 add test.txt\n* 3b58100 (tag: v0.9) 第一次版本提交\n```\n\n### stash\n\n```bash\ngit stash               ## 把当前的工作隐藏起来，等以后恢复现场后继续工作\ngit stash list          ## 查看所有被隐藏的文件列表\n```\n\n### gitk\n\n```bash\ngitk                    ## git 自带 GUI\ngitk --all\n```\n\n## github,gitea 等平台 issue 的常用标签\n\n- `bug` 描述的问题是一个 bug\n- `enhancement` 功能增强，没有 feature 也可以指 New feature or request\n- `feature` 新功能\n- `duplicate` 问题重复\n- `invalid` 可用的，不是 bug\n- `question` 疑问，需要进一步的信息\n- `wontfix` 不会修复此问题\n- `help-wanted` 需要帮助\n- `good first issue` Good for newcomers\n- [更多标签](https://www.jianshu.com/p/48b935e36000)\n\n## license\n\n![license](images/license.jpg)\n\n## 其他\n\n- [常用 Git 命令清单](http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html)\n- [github 上 fork 了别人的项目后，再同步更新别人的提交](https://blog.csdn.net/qq1332479771/article/details/56087333)\n- [Gearn Git Branching](https://learngitbranching.js.org/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/git/  \n\n"
  },
  {
    "path": "posts/git-index-lock/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git Index.lock | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\n1 2 3 4 5 fatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\n\"><meta name=keywords content='Git'><meta itemprop=name content=\"git index.lock\"><meta itemprop=description content=\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\n1 2 3 4 5 fatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\"><meta itemprop=datePublished content=\"2018-08-14T19:21:23+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"247\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/git-index-lock/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"git index.lock\"><meta property=\"og:description\" content=\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\n1 2 3 4 5 fatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-14T19:21:23+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"git index.lock\"><meta name=twitter:description content=\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\n1 2 3 4 5 fatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/git-index-lock/ title=\"git index.lock | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/termux/ title=\"在 Android 上搭建 hexo 博客\"><link rel=next type=text/html href=https://lruihao.cn/posts/heart/ title=\"“高逼格”C 语言画心\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/git-index-lock/index.md title=\"git index.lock | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"git index.lock\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/git-index-lock\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":247,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/git-index-lock\\/\",\"datePublished\":\"2018-08-14T19:21:23+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/git-index-lock/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git Index.lock</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Git Index.lock</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-14 19:21:23\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-14>2018-08-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"247 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Git Index.lock\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fatal: Unable to create <span class=s1>&#39;/xxx/xx/.git/index.lock&#39;</span>: File exists.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>If no other git process is currently running, this probably means a\n</span></span><span class=line><span class=cl>git process crashed in this repository earlier. Make sure no other git\n</span></span><span class=line><span class=cl>process is running and remove the file manually to <span class=k>continue</span>.</span></span></code></pre></td></tr></table></div></div></div><p>原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。</p><p>有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 <code>rm -f ./.git/index.lock</code> 。之后就可以正常使用。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/git-index-lock/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git-index-lock.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/git-index-lock.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20git+index.lock&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cgit+index.lock%7c%0A%7cURL%7chttps://lruihao.cn/posts/git-index-lock/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git-index-lock.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/git-index-lock/ data-title=\"Git Index.lock\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/git-index-lock/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/git-index-lock/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/git-index-lock/ data-title=\"Git Index.lock\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/git-index-lock/ data-title=\"Git Index.lock\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/termux/ class=post-nav-item rel=prev title=\"在 Android 上搭建 Hexo 博客\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>在 Android 上搭建 Hexo 博客</a><a href=/posts/heart/ class=post-nav-item rel=next title=\"“高逼格”C 语言画心\">“高逼格”C 语言画心<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/247eb66223c15b4808b09a1d172c70b6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/247eb66223c15b4808b09a1d172c70b6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/git-index-lock/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/git-index-lock/index.md",
    "content": "# Git Index.lock\n\n\n在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\n\n```bash\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.\n```\n\n原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\n\n有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 `rm -f ./.git/index.lock` 。之后就可以正常使用。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/git-index-lock/  \n\n"
  },
  {
    "path": "posts/git-summary/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git 统计代码量 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"使用 Git 命令统计在某段时间内项目中的代码量。\n\"><meta name=keywords content='Git'><meta itemprop=name content=\"Git 统计代码量\"><meta itemprop=description content=\"使用 Git 命令统计在某段时间内项目中的代码量。\"><meta itemprop=datePublished content=\"2024-07-17T16:06:08+08:00\"><meta itemprop=dateModified content=\"2024-07-17T18:34:56+08:00\"><meta itemprop=wordCount content=\"258\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/git-summary/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Git 统计代码量\"><meta property=\"og:description\" content=\"使用 Git 命令统计在某段时间内项目中的代码量。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-07-17T16:06:08+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-17T18:34:56+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Git 统计代码量\"><meta name=twitter:description content=\"使用 Git 命令统计在某段时间内项目中的代码量。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/git-summary/ title=\"Git 统计代码量 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/drop-shadow/ title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/git-summary/index.md title=\"Git 统计代码量 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Git 统计代码量\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/git-summary\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":258,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/git-summary\\/\",\"datePublished\":\"2024-07-17T16:06:08+08:00\",\"dateModified\":\"2024-07-17T18:34:56+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/git-summary/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git 统计代码量</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Git 统计代码量</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-17 16:06:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-17>2024-07-17</time></span>&nbsp;<span title=\"更新于 2024-07-17 18:34:56\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-17>2024-07-17</time></span>&nbsp;<span title=\"258 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Git 统计代码量\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#统计-commit-数>统计 commit 数</a></li><li><a href=#统计行数>统计行数</a></li><li><a href=#整合成一个脚本>整合成一个脚本</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>使用 Git 命令统计在某段时间内项目中的代码量。</p><h2 class=heading-element id=统计-commit-数><span>1 统计 commit 数</span>\n<a href=#%e7%bb%9f%e8%ae%a1-commit-%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git log --author<span class=o>=</span><span class=s2>&#34;1024@lruihao.cn&#34;</span> --since<span class=o>=</span><span class=s2>&#34;2023-01-01&#34;</span> --until<span class=o>=</span><span class=s2>&#34;2023-12-31&#34;</span> --oneline <span class=p>|</span> wc -l</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=统计行数><span>2 统计行数</span>\n<a href=#%e7%bb%9f%e8%ae%a1%e8%a1%8c%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git log --author<span class=o>=</span><span class=s2>&#34;1024@lruihao.cn&#34;</span> --pretty<span class=o>=</span>tformat:  --since<span class=o>=</span><span class=s2>&#34;2023-01-01&#34;</span> --until<span class=o>=</span><span class=s2>&#34;2023-12-31&#34;</span> --numstat -- .  <span class=s2>&#34;:(exclude)build&#34;</span> <span class=s2>&#34;:(exclude)dist&#34;</span> <span class=s2>&#34;:(exclude)node_modules&#34;</span> <span class=s2>&#34;:(exclude)test&#34;</span> <span class=s2>&#34;:(exclude)static&#34;</span> -numstat <span class=p>|</span> awk <span class=s1>&#39;{ add += $1; subs += $2; loc += $1 - $2 } END { printf &#34;added lines: %s, removed lines: %s, total lines: %s\\n&#34;, add, subs, loc }&#39;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=整合成一个脚本><span>3 整合成一个脚本</span>\n<a href=#%e6%95%b4%e5%90%88%e6%88%90%e4%b8%80%e4%b8%aa%e8%84%9a%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>统计所有作者移除 <code>--author=\"$author_email\"</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nv>project_name</span><span class=o>=</span><span class=k>$(</span>basename <span class=s2>&#34;</span><span class=k>$(</span><span class=nb>pwd</span><span class=k>)</span><span class=s2>&#34;</span><span class=k>)</span>\n</span></span><span class=line><span class=cl><span class=nv>author_email</span><span class=o>=</span><span class=s2>&#34;1024@lruihao.cn&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1># since_date=&#34;1 year ago&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>since_date</span><span class=o>=</span><span class=s2>&#34;2023-01-01&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>until_date</span><span class=o>=</span><span class=s2>&#34;2023-12-31&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 统计 commit 数量</span>\n</span></span><span class=line><span class=cl><span class=nv>commit_count</span><span class=o>=</span><span class=k>$(</span>git log --author<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$author_email</span><span class=s2>&#34;</span> --since<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$since_date</span><span class=s2>&#34;</span> --until<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$until_date</span><span class=s2>&#34;</span> --oneline <span class=p>|</span> wc -l<span class=k>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 统计代码行数（排除目录 build、dist、node_modules、test、static）</span>\n</span></span><span class=line><span class=cl><span class=nv>line_stats</span><span class=o>=</span><span class=k>$(</span>git log --author<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$author_email</span><span class=s2>&#34;</span> --pretty<span class=o>=</span>tformat:  --since<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$since_date</span><span class=s2>&#34;</span> --until<span class=o>=</span><span class=s2>&#34;</span><span class=nv>$until_date</span><span class=s2>&#34;</span> --numstat -- .  <span class=s2>&#34;:(exclude)build&#34;</span> <span class=s2>&#34;:(exclude)dist&#34;</span> <span class=s2>&#34;:(exclude)node_modules&#34;</span> <span class=s2>&#34;:(exclude)test&#34;</span> <span class=s2>&#34;:(exclude)static&#34;</span> <span class=p>|</span> awk <span class=s1>&#39;{ add += $1; subs += $2; } END { printf &#34;%s ++\\t%s --\\n&#34;, add, subs }&#39;</span><span class=k>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;</span><span class=nv>$project_name</span><span class=s2>:\\t</span><span class=nv>$commit_count</span><span class=s2> commits\\t</span><span class=nv>$line_stats</span><span class=s2>&#34;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>例如在 FixIt 项目中截至 2024-07-17 为止我的代码统计如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>FixIt:      1022 commits        82040 ++        103942 --</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-17 18:34:56\">更新于 2024-07-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/2849095b8bd4accc522b6f9109c7b405357c72ae rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 更新 git-summary.md&#10移出草稿&#10Commit: 2849095b8bd4accc522b6f9109c7b405357c72ae [2849095]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-17 18:34:56\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>2849095</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/git-summary/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git-summary.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/git-summary.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Git+%E7%BB%9F%E8%AE%A1%E4%BB%A3%E7%A0%81%E9%87%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cGit+%E7%BB%9F%E8%AE%A1%E4%BB%A3%E7%A0%81%E9%87%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/git-summary/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/git-summary.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/git-summary/ data-title=\"Git 统计代码量\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/git-summary/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/git-summary/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/git-summary/ data-title=\"Git 统计代码量\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/git-summary/ data-title=\"Git 统计代码量\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/drop-shadow/ class=post-nav-item rel=prev title=异形元素怎么设置阴影？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>异形元素怎么设置阴影？</a><a href=/projects/hugo-fixit/shortcode-rewards/ class=post-nav-item rel=next title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#统计-commit-数>统计 commit 数</a></li><li><a href=#统计行数>统计行数</a></li><li><a href=#整合成一个脚本>整合成一个脚本</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/382d5f75fc970a96ee9777775717ac97.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/382d5f75fc970a96ee9777775717ac97.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/git-summary/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/git-summary/index.md",
    "content": "# Git 统计代码量\n\n\n使用 Git 命令统计在某段时间内项目中的代码量。\n\n<!--more-->\n\n## 统计 commit 数\n\n```bash\ngit log --author=\"1024@lruihao.cn\" --since=\"2023-01-01\" --until=\"2023-12-31\" --oneline | wc -l\n```\n\n## 统计行数\n\n```bash\ngit log --author=\"1024@lruihao.cn\" --pretty=tformat:  --since=\"2023-01-01\" --until=\"2023-12-31\" --numstat -- .  \":(exclude)build\" \":(exclude)dist\" \":(exclude)node_modules\" \":(exclude)test\" \":(exclude)static\" -numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added lines: %s, removed lines: %s, total lines: %s\\n\", add, subs, loc }'\n```\n\n## 整合成一个脚本\n\n统计所有作者移除 `--author=\"$author_email\"`\n\n```bash\n#!/bin/bash\n\nproject_name=$(basename \"$(pwd)\")\nauthor_email=\"1024@lruihao.cn\"\n# since_date=\"1 year ago\"\nsince_date=\"2023-01-01\"\nuntil_date=\"2023-12-31\"\n\n# 统计 commit 数量\ncommit_count=$(git log --author=\"$author_email\" --since=\"$since_date\" --until=\"$until_date\" --oneline | wc -l)\n\n# 统计代码行数（排除目录 build、dist、node_modules、test、static）\nline_stats=$(git log --author=\"$author_email\" --pretty=tformat:  --since=\"$since_date\" --until=\"$until_date\" --numstat -- .  \":(exclude)build\" \":(exclude)dist\" \":(exclude)node_modules\" \":(exclude)test\" \":(exclude)static\" | awk '{ add += $1; subs += $2; } END { printf \"%s ++\\t%s --\\n\", add, subs }')\n\necho \"$project_name:\\t$commit_count commits\\t$line_stats\"\n```\n\n例如在 FixIt 项目中截至 2024-07-17 为止我的代码统计如下：\n\n```plain\nFixIt:      1022 commits        82040 ++        103942 --\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/git-summary/  \n\n"
  },
  {
    "path": "posts/github-actions/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。 \"><meta name=keywords content='Git,GitHub Actions,hugo,腾讯云 cos 桶'><meta itemprop=name content=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\"><meta itemprop=description content=\"解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。\"><meta itemprop=datePublished content=\"2021-10-04T23:46:49+08:00\"><meta itemprop=dateModified content=\"2024-12-17T18:09:03+08:00\"><meta itemprop=wordCount content=\"666\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,GitHub Actions,Hugo,腾讯云 cos 桶\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/github-actions/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\"><meta property=\"og:description\" content=\"解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-04T23:46:49+08:00\"><meta property=\"article:modified_time\" content=\"2024-12-17T18:09:03+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"GitHub Actions\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"腾讯云 cos 桶\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\"><meta name=twitter:description content=\"解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/github-actions/ title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexo-to-hugo/ title=\"个人博客从 Hexo 迁移至 Hugo\"><link rel=next type=text/html href=https://lruihao.cn/posts/hugo-admin/ title=\"Hugo 本地管理 Shell 腳本\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/github-actions/index.md title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/github-actions\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, GitHub Actions, hugo, 腾讯云 cos 桶\",\"wordcount\":666,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/github-actions\\/\",\"datePublished\":\"2021-10-04T23:46:49+08:00\",\"dateModified\":\"2024-12-17T18:09:03+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/github-actions/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a>&ensp;<a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-04 23:46:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-04>2021-10-04</time></span>&nbsp;<span title=\"更新于 2024-12-17 18:09:03\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-12-17>2024-12-17</time></span>&nbsp;<span title=\"666 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#準備>準備</a></li><li><a href=#github-actions>Github Actions</a><ol><li><a href=#創建-workflows-任務>創建 workflows 任務</a></li><li><a href=#配置-github-pages-密鑰>配置 Github Pages 密鑰</a></li><li><a href=#配置-cos-密鑰>配置 COS 密鑰</a></li></ol></li><li><a href=#cos-自動同步備用>COS 自動同步（備用）</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-12-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>解決痛點<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。<br>也就是説實現了在線寫靜態博客的需求。</div></div></div><h2 class=heading-element id=準備><span>1 準備</span>\n<a href=#%e6%ba%96%e5%82%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>工作流程涉及到兩個倉庫和一個 cos 桶，例如：</p><blockquote><ul><li>Lruihao/hugo-blog # Blog source repository</li><li>Lruihao/lruihao.github.io # GitHub pages repository</li><li>blog-1256932288 # COS bucket</li></ul></blockquote><h2 class=heading-element id=github-actions><span>2 Github Actions</span>\n<a href=#github-actions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=創建-workflows-任務><span>2.1 創建 workflows 任務</span>\n<a href=#%e5%89%b5%e5%bb%ba-workflows-%e4%bb%bb%e5%8b%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>創建 <code>hugo-site/.github/workflows/deploy.yml</code>, 這個文件會寫一些命令告訴 Github 在我們提交源碼的時候，它要幫我們做哪些事情。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Auto Deploy hugo</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>on</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=l>push]</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>jobs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>Explore-GitHub-Actions</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>runs-on</span><span class=p>:</span><span class=w> </span><span class=l>ubuntu-latest</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>steps</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Check out repository code</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>actions/checkout@v2</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>submodules</span><span class=p>:</span><span class=w> </span><span class=l>recursive</span><span class=w> </span><span class=c># Fetch Hugo themes (true OR recursive)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>fetch-depth</span><span class=p>:</span><span class=w> </span><span class=m>0</span><span class=w> </span><span class=c># Fetch all history for .GitInfo and .Lastmod</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Setup Hugo</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>peaceiris/actions-hugo@v2</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>hugo-version</span><span class=p>:</span><span class=w> </span><span class=l>${{ vars.HUGO_VERSION || &#39;latest&#39; }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>extended</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Build Hugo static files</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>hugo --minify</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Deploy to Github Pages</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>peaceiris/actions-gh-pages@v3</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>deploy_key</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.GP_DEPLOY_KEY }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>external_repository</span><span class=p>:</span><span class=w> </span><span class=l>Lruihao/lruihao.github.io</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>publish_branch</span><span class=p>:</span><span class=w> </span><span class=l>main</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>publish_dir</span><span class=p>:</span><span class=w> </span><span class=l>./public</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>commit_message</span><span class=p>:</span><span class=w> </span><span class=l>${{ github.event.head_commit.message }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Install coscmd</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>sudo pip install coscmd</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Configure coscmd</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>env</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>COS_SECRET_ID</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.COS_SECRET_ID }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>COS_SECRET_KEY</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.COS_SECRET_KEY }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>COS_BUCKET_NAME</span><span class=p>:</span><span class=w> </span><span class=l>blog-1256932288</span><span class=w> </span><span class=c># Change for yourself</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>COS_BUCKET_REGION</span><span class=p>:</span><span class=w> </span><span class=l>ap-chengdu</span><span class=w> </span><span class=c># Change for yourself</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET_NAME -r $COS_BUCKET_REGION</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Deploy to COS Bucket</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>coscmd upload -r -s --delete -f public/ /</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=配置-github-pages-密鑰><span>2.2 配置 Github Pages 密鑰</span>\n<a href=#%e9%85%8d%e7%bd%ae-github-pages-%e5%af%86%e9%91%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>為了讓 Lruihao/hugo-blog 提交代碼后自動部署到 Lruihao/lruihao.github.io, 需要生成一對 ssh key.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh-keygen -t rsa -b <span class=m>4096</span> -C <span class=s2>&#34;</span><span class=k>$(</span>git config user.email<span class=k>)</span><span class=s2>&#34;</span> -f gh-pages -N <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1># You will get 2 files:</span>\n</span></span><span class=line><span class=cl><span class=c1># gh-pages.pub (public key)</span>\n</span></span><span class=line><span class=cl><span class=c1># gh-pages     (private key)</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 private key, name 为 <code>GP_DEPLOY_KEY</code></p></li><li><p>打開 Lruihao/lruihao.github.io, 点击 Deploy keys, 添加 public key, name 隨意，<code>Allow write access</code> 一定要勾上，否則無法提交</p></li></ol><h3 class=heading-element id=配置-cos-密鑰><span>2.3 配置 COS 密鑰</span>\n<a href=#%e9%85%8d%e7%bd%ae-cos-%e5%af%86%e9%91%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 COS 桶的 <code>secret_id</code> 和 <code>secret_key</code>:</p><ul><li>COS_SECRET_ID</li><li>COS_SECRET_KEY</li></ul><blockquote><p>至此，Github Pages 和 COS 都已經可以通過 Github Actions 自動部署了，有部署記錄后，<br>打開 Lruihao/hugo-blog -> Actions 可以看到構建過程和結果，構建失敗也會收到 Github 發給你的郵件。</p></blockquote><h2 class=heading-element id=cos-自動同步備用><span>3 COS 自動同步（備用）</span>\n<a href=#cos-%e8%87%aa%e5%8b%95%e5%90%8c%e6%ad%a5%e5%82%99%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本小節內容和 Github Actions 無關，僅作為 COS 備用上傳方式。</p><ul><li>COSBrowser</li></ul><ol><li>下載 COS 官方軟件 COSBrowser</li><li>點開右上角 工具箱</li><li>選擇 文件同步</li><li>選擇 本地文件夹 eg. <code>hugo-site/public</code></li><li>選擇 存储桶目录</li><li>同步类型：單次同步、自動同步、定時同步</li></ol><blockquote><p>同步前先執行 hugo 構建命令，eg. <code>hugo --minify</code><br>有 Github actions 選單次同步就好，在 Github 不好用時可用。</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-12-17 18:09:03\">更新于 2024-12-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/2472bb5e6bff6ef422f8a13c0f12219d009eb6aa rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 使用环境变量 HUGO_VERSION 控制 Hugo 版本&#10&#10Commit: 2472bb5e6bff6ef422f8a13c0f12219d009eb6aa [2472bb5]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-17 18:09:03\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>2472bb5</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/github-actions/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/github-actions.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/github-actions.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hugo+%E4%BD%BF%E7%94%A8+GitHub+Actions+%E9%83%A8%E7%BD%B2%E5%88%B0+GithHb+Pages+%E5%92%8C+%E8%85%BE%E8%AE%AF%E4%BA%91+cos+%E6%A1%B6&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHugo+%E4%BD%BF%E7%94%A8+GitHub+Actions+%E9%83%A8%E7%BD%B2%E5%88%B0+GithHb+Pages+%E5%92%8C+%E8%85%BE%E8%AE%AF%E4%BA%91+cos+%E6%A1%B6%7c%0A%7cURL%7chttps://lruihao.cn/posts/github-actions/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/github-actions.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/github-actions/ data-title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\" data-hashtags=\"Git,GitHub Actions,hugo,腾讯云 cos 桶\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/github-actions/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/github-actions/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/github-actions/ data-title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/github-actions/ data-title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/github-actions/ class=post-tag title=\"标签 - GitHub Actions\">GitHub Actions</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag title=\"标签 - 腾讯云 cos 桶\">腾讯云 cos 桶</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexo-to-hugo/ class=post-nav-item rel=prev title=\"个人博客从 Hexo 迁移至 Hugo\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>个人博客从 Hexo 迁移至 Hugo</a><a href=/posts/hugo-admin/ class=post-nav-item rel=next title=\"Hugo 本地管理 Shell 腳本\">Hugo 本地管理 Shell 腳本<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#準備>準備</a></li><li><a href=#github-actions>Github Actions</a><ol><li><a href=#創建-workflows-任務>創建 workflows 任務</a></li><li><a href=#配置-github-pages-密鑰>配置 Github Pages 密鑰</a></li><li><a href=#配置-cos-密鑰>配置 COS 密鑰</a></li></ol></li><li><a href=#cos-自動同步備用>COS 自動同步（備用）</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3ebf363e73290b7b68ae11519f02b692.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3ebf363e73290b7b68ae11519f02b692.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/github-actions/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/github-actions/index.md",
    "content": "# Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\n\n\n{{< admonition quote \"解決痛點\">}}\nGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。  \n也就是説實現了在線寫靜態博客的需求。\n{{< /admonition >}}\n\n<!--more-->\n\n## 準備\n\n工作流程涉及到兩個倉庫和一個 cos 桶，例如：\n\n> - Lruihao/hugo-blog # Blog source repository\n> - Lruihao/lruihao.github.io # GitHub pages repository\n> - blog-1256932288 # COS bucket\n\n## Github Actions\n\n### 創建 workflows 任務\n\n創建 `hugo-site/.github/workflows/deploy.yml`, 這個文件會寫一些命令告訴 Github 在我們提交源碼的時候，它要幫我們做哪些事情。\n\n```yaml\nname: Auto Deploy hugo\non: [push]\njobs:\n  Explore-GitHub-Actions:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Check out repository code\n        uses: actions/checkout@v2\n        with:\n          submodules: recursive # Fetch Hugo themes (true OR recursive)\n          fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod\n      - name: Setup Hugo\n        uses: peaceiris/actions-hugo@v2\n        with:\n          hugo-version: ${{ vars.HUGO_VERSION || 'latest' }}\n          extended: true\n      - name: Build Hugo static files\n        run: hugo --minify\n      - name: Deploy to Github Pages\n        uses: peaceiris/actions-gh-pages@v3\n        with:\n          deploy_key: ${{ secrets.GP_DEPLOY_KEY }}\n          external_repository: Lruihao/lruihao.github.io\n          publish_branch: main\n          publish_dir: ./public\n          commit_message: ${{ github.event.head_commit.message }}\n      - name: Install coscmd\n        run: sudo pip install coscmd\n      - name: Configure coscmd\n        env:\n          COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }}\n          COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }}\n          COS_BUCKET_NAME: blog-1256932288 # Change for yourself\n          COS_BUCKET_REGION: ap-chengdu # Change for yourself\n        run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET_NAME -r $COS_BUCKET_REGION\n      - name: Deploy to COS Bucket\n        run: coscmd upload -r -s --delete -f public/ /\n```\n\n### 配置 Github Pages 密鑰\n\n1. 為了讓 Lruihao/hugo-blog 提交代碼后自動部署到 Lruihao/lruihao.github.io, 需要生成一對 ssh key.\n\n   ```bash\n   ssh-keygen -t rsa -b 4096 -C \"$(git config user.email)\" -f gh-pages -N \"\"\n   # You will get 2 files:\n   # gh-pages.pub (public key)\n   # gh-pages     (private key)\n   ```\n\n2. 打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 private key, name 为 `GP_DEPLOY_KEY`\n3. 打開 Lruihao/lruihao.github.io, 点击 Deploy keys, 添加 public key, name 隨意，`Allow write access` 一定要勾上，否則無法提交\n\n### 配置 COS 密鑰\n\n打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 COS 桶的 `secret_id` 和 `secret_key`:\n\n- COS_SECRET_ID\n- COS_SECRET_KEY\n\n> 至此，Github Pages 和 COS 都已經可以通過 Github Actions 自動部署了，有部署記錄后，  \n> 打開 Lruihao/hugo-blog -> Actions 可以看到構建過程和結果，構建失敗也會收到 Github 發給你的郵件。\n\n## COS 自動同步（備用）\n\n本小節內容和 Github Actions 無關，僅作為 COS 備用上傳方式。\n\n- COSBrowser\n\n1. 下載 COS 官方軟件 COSBrowser\n2. 點開右上角 工具箱\n3. 選擇 文件同步\n4. 選擇 本地文件夹 eg. `hugo-site/public`\n5. 選擇 存储桶目录\n6. 同步类型：單次同步、自動同步、定時同步\n\n> 同步前先執行 hugo 構建命令，eg. `hugo --minify`  \n> 有 Github actions 選單次同步就好，在 Github 不好用時可用。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/github-actions/  \n\n"
  },
  {
    "path": "posts/gituse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>使用 Git 上传代码到 Github, Coding 等仓库 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='0.1 config 1 2 git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意：\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。\n'><meta name=keywords content='Git'><meta itemprop=name content=\"使用 Git 上传代码到 github, coding 等仓库\"><meta itemprop=description content='0.1 config 1 2 git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意：\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。'><meta itemprop=datePublished content=\"2018-10-26T21:11:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"519\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/gituse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"使用 Git 上传代码到 github, coding 等仓库\"><meta property=\"og:description\" content='0.1 config 1 2 git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意：\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-26T21:11:02+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"使用 Git 上传代码到 github, coding 等仓库\"><meta name=twitter:description content='0.1 config 1 2 git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意：\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/gituse/ title=\"使用 Git 上传代码到 github, coding 等仓库 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/termux1/ title=\"termux 基本使用教程\"><link rel=next type=text/html href=https://lruihao.cn/posts/web-server-win/ title=\"windows 上搭建 web 服务器\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/gituse/index.md title=\"使用 Git 上传代码到 github, coding 等仓库 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"使用 Git 上传代码到 github, coding 等仓库\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/gituse\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git\",\"wordcount\":519,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/gituse\\/\",\"datePublished\":\"2018-10-26T21:11:02+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/gituse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>使用 Git 上传代码到 Github, Coding 等仓库</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>使用 Git 上传代码到 Github, Coding 等仓库</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-26 21:11:02\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-26>2018-10-26</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"519 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"使用 Git 上传代码到 Github, Coding 等仓库\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#config>config</a></li><li><a href=#生成-ssh>生成 ssh</a></li><li><a href=#创建本地代码库>创建本地代码库</a></li><li><a href=#代码推送重点>代码推送（重点）</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=config><span>0.1 config</span>\n<a href=#config class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global user.name <span class=s2>&#34;Your Name&#34;</span>\n</span></span><span class=line><span class=cl>git config --global user.email <span class=s2>&#34;email@example.com&#34;</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>第一次使用 git 的时候需要设置提交者信息。<br>注意：<br>如果用了 <code>--global</code> 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。<br>如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 <code>--global</code> 选项重新配置即可，新的设定保存在当前项目的 <code>.git/config</code> 文件里。</p></blockquote><h3 class=heading-element id=生成-ssh><span>0.2 生成 ssh</span>\n<a href=#%e7%94%9f%e6%88%90-ssh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的，所以我们需要配置验证信息：<br>使用以下命令生成 SSH Key：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>ssh-keygen -t rsa -C &#34;youremail@example.com&#34;</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>后面的 <code>your_email@youremail.com</code> 改为你在 Github 上注册的邮箱，之后会要求确认路径和输入密码，我们这使用默认的一路回车就行。成功的话会在 <code>C:\\Users\\用户名、</code>或者<code>~/</code> 下生成 <code>.ssh</code>文件夹，进去，打开 <code>id_rsa.pub</code>，复制里面的 key。去 github、coding 等平台配置 SSH 公钥（根据自己情况）</p></blockquote><h3 class=heading-element id=创建本地代码库><span>0.3 创建本地代码库</span>\n<a href=#%e5%88%9b%e5%bb%ba%e6%9c%ac%e5%9c%b0%e4%bb%a3%e7%a0%81%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在本地创建一个文件夹，作为你上传代码的本地仓库，在这个文件夹内点击右键，选择 Git Bash Here，首先要初始化本地仓库：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git init</span></span></code></pre></td></tr></table></div></div></div><p>接下来进行远程代码库克隆（事先在 coding 等中建立一个项目，就是你需要链接的仓库）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git clone https://github.com/Lruihao/Lruihao.github.io.git</span></span></code></pre></td></tr></table></div></div></div><p>克隆时会出现输入账号密码的环节正确输入即可。</p><h3 class=heading-element id=代码推送重点><span>0.4 代码推送（重点）</span>\n<a href=#%e4%bb%a3%e7%a0%81%e6%8e%a8%e9%80%81%e9%87%8d%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git status\n</span></span><span class=line><span class=cl>git add *\n</span></span><span class=line><span class=cl>git commit -m &#34;代码备注随便写&#34;\n</span></span><span class=line><span class=cl>git push origin master</span></span></code></pre></td></tr></table></div></div></div><ul><li><a href=https://learngitbranching.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Gearn Git Branching<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/gituse/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/gituse.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/gituse.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BD%BF%E7%94%A8+Git+%E4%B8%8A%E4%BC%A0%E4%BB%A3%E7%A0%81%E5%88%B0+github%2C+coding+%E7%AD%89%E4%BB%93%E5%BA%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BD%BF%E7%94%A8+Git+%E4%B8%8A%E4%BC%A0%E4%BB%A3%E7%A0%81%E5%88%B0+github%2C+coding+%E7%AD%89%E4%BB%93%E5%BA%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/gituse/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/gituse.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/gituse/ data-title=\"使用 Git 上传代码到 Github, Coding 等仓库\" data-hashtags=Git><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/gituse/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/gituse/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/gituse/ data-title=\"使用 Git 上传代码到 Github, Coding 等仓库\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/gituse/ data-title=\"使用 Git 上传代码到 Github, Coding 等仓库\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/termux1/ class=post-nav-item rel=prev title=\"Termux 基本使用教程\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Termux 基本使用教程</a><a href=/posts/web-server-win/ class=post-nav-item rel=next title=\"Windows 上搭建 Web 服务器\">Windows 上搭建 Web 服务器<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#config>config</a></li><li><a href=#生成-ssh>生成 ssh</a></li><li><a href=#创建本地代码库>创建本地代码库</a></li><li><a href=#代码推送重点>代码推送（重点）</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cfdcd42409dccb38a513bc3bca47d4ca.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cfdcd42409dccb38a513bc3bca47d4ca.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/gituse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/gituse/index.md",
    "content": "# 使用 Git 上传代码到 Github, Coding 等仓库\n\n\n### config\n\n```bash\ngit config --global user.name \"Your Name\"\ngit config --global user.email \"email@example.com\"\n```\n\n> 第一次使用 git 的时候需要设置提交者信息。  \n> 注意：  \n> 如果用了 `--global` 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。  \n> 如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 `--global` 选项重新配置即可，新的设定保存在当前项目的 `.git/config` 文件里。\n\n### 生成 ssh\n\n由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的，所以我们需要配置验证信息：  \n使用以下命令生成 SSH Key：\n\n```\nssh-keygen -t rsa -C \"youremail@example.com\"\n```\n\n> 后面的 `your_email@youremail.com` 改为你在 Github 上注册的邮箱，之后会要求确认路径和输入密码，我们这使用默认的一路回车就行。成功的话会在 `C:\\Users\\用户名、`或者`~/` 下生成 `.ssh`文件夹，进去，打开 `id_rsa.pub`，复制里面的 key。去 github、coding 等平台配置 SSH 公钥（根据自己情况）\n\n### 创建本地代码库\n\n在本地创建一个文件夹，作为你上传代码的本地仓库，在这个文件夹内点击右键，选择 Git Bash Here，首先要初始化本地仓库：\n\n```\ngit init\n```\n\n接下来进行远程代码库克隆（事先在 coding 等中建立一个项目，就是你需要链接的仓库）\n\n```\ngit clone https://github.com/Lruihao/Lruihao.github.io.git\n```\n\n克隆时会出现输入账号密码的环节正确输入即可。\n\n### 代码推送（重点）\n\n```\ngit status\ngit add *\ngit commit -m \"代码备注随便写\"\ngit push origin master\n```\n\n- [Gearn Git Branching](https://learngitbranching.js.org/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/gituse/  \n\n"
  },
  {
    "path": "posts/grid-bg-image/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS 如何实现网格背景效果？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n1 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\n\"><meta name=keywords content='CSS'><meta itemprop=name content=\"CSS 如何实现网格背景效果？\"><meta itemprop=description content=\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n1 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\"><meta itemprop=datePublished content=\"2023-09-02T10:05:44+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=wordCount content=\"1010\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/grid-bg-image/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS 如何实现网格背景效果？\"><meta property=\"og:description\" content=\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n1 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-02T10:05:44+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-28T17:12:48+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CSS 如何实现网格背景效果？\"><meta name=twitter:description content=\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n1 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/aws-ec2/ title=\"将 Hugo 博客部署到亚马逊云服务器\"><link rel=next type=text/html href=https://lruihao.cn/posts/vscode-snippets/ title=\"VSCode 添加用户代码片段，自定义用户代码片段\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/grid-bg-image/index.md title=\"CSS 如何实现网格背景效果？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"CSS 如何实现网格背景效果？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/grid-bg-image\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS\",\"wordcount\":1010,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/grid-bg-image\\/\",\"datePublished\":\"2023-09-02T10:05:44+08:00\",\"dateModified\":\"2024-07-28T17:12:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/grid-bg-image/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS 如何实现网格背景效果？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>现代 CSS 解决方案</span>\n<span class=collection-count>5</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><span class=active title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？</span></li><li class=collection-item><a href=/posts/scrollbar-styling/ title=标准滚动条控制规范>标准滚动条控制规范</a></li><li class=collection-item><a href=/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</a></li><li class=collection-item><a href=/posts/drop-shadow/ title=异形元素怎么设置阴影？>异形元素怎么设置阴影？</a></li><li class=collection-item><a href=/posts/css-round/ title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位</a></li></ul><div class=collection-nav-simple><i class=\"fa-solid fa-angle-left collection-nav-item text-secondary\" aria-hidden=true></i><span class=text-secondary>1/5</span><a href=/posts/scrollbar-styling/ class=collection-nav-item rel=next title=标准滚动条控制规范><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>CSS 如何实现网格背景效果？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-02 10:05:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-02>2023-09-02</time></span>&nbsp;<span title=\"更新于 2024-07-28 17:12:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-28>2024-07-28</time></span>&nbsp;<span title=\"1010 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"CSS 如何实现网格背景效果？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#前驱知识>前驱知识</a></li><li><a href=#实线网格>实线网格</a></li><li><a href=#虚线网格>虚线网格</a></li><li><a href=#点阵网格>点阵网格</a></li><li><a href=#总结>总结</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-28，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将介绍如何使用 <code>linear-gradient</code> 、<code>background-size</code> 等属性来实现网格背景效果。</p><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。</p><p>最先想到的是使用 CSS 来实现这个效果，经过一番尝试，发现可以通过使用 CSS 的一些技术点，轻松实现不同类型的网格背景效果，包括实线网格和虚线网格。</p><h2 class=heading-element id=前驱知识><span>2 前驱知识</span>\n<a href=#%e5%89%8d%e9%a9%b1%e7%9f%a5%e8%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在开始之前，我们需要了解一些必要的 CSS 属性和知识点。</p><ul><li><a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/linear-gradient target=_blank rel=\"external nofollow noopener noreferrer\"><code>linear-gradient</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>：CSS <strong><code>linear-gradient()</code></strong> 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于<a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;gradient></code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>数据类型，是一种特别的<a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/image target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;image></code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>数据类型。</li><li><a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/radial-gradient target=_blank rel=\"external nofollow noopener noreferrer\"><code>radial-gradient</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>：<strong><code>radial-gradient()</code></strong> <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS target=_blank rel=\"external nofollow noopener noreferrer\">CSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Functions target=_blank rel=\"external nofollow noopener noreferrer\">函数<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>创建一个图像，该图像由从原点辐射的两种或多种颜色之间的渐进过渡组成。它的形状可以是圆形或椭圆形。函数的结果是 <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;gradient></code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 数据类型的对象。这是一种特别的 <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/image target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;image></code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li><li><code>background-size</code></li><li><code>background-repeat</code></li><li><code>background-position</code></li><li><code>::before</code> 和 <code>::after</code> 伪元素</li></ul><h2 class=heading-element id=实线网格><span>3 实线网格</span>\n<a href=#%e5%ae%9e%e7%ba%bf%e7%bd%91%e6%a0%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这个效果，我最初是在刷掘金的时候发现的，掘金文章内容区的背景一个实线网格，呈现出的效果类似一页学生时代的记事本，当时觉得很有意思，于是扒下来当作了现在博客文章内容的背景。</p><p>实线网格的实现思路是使用 <code>linear-gradient</code> 来绘制横向和纵向的网格线，然后通过 <code>background-size</code> 来控制网格线的间距。</p><p>具体代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>grid</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-image</span><span class=p>:</span> <span class=nb>linear-gradient</span><span class=p>(</span><span class=kc>to</span> <span class=kc>right</span><span class=p>,</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>60</span><span class=p>,</span> <span class=mi>10</span><span class=p>,</span> <span class=mi>30</span><span class=p>,</span> <span class=mf>0.04</span><span class=p>)</span> <span class=mi>1</span><span class=kt>px</span><span class=p>,</span> <span class=kc>transparent</span> <span class=mi>0</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=nb>linear-gradient</span><span class=p>(</span><span class=kc>to</span> <span class=kc>bottom</span><span class=p>,</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>60</span><span class=p>,</span> <span class=mi>10</span><span class=p>,</span> <span class=mi>30</span><span class=p>,</span> <span class=mf>0.04</span><span class=p>)</span> <span class=mi>1</span><span class=kt>px</span><span class=p>,</span> <span class=kc>transparent</span> <span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-size</span><span class=p>:</span> <span class=mi>20</span><span class=kt>px</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>上面的代码中，<code>background-image</code> 属性使用了两个 <code>linear-gradient</code>，通过渐变颜色从 <code>rgba(60, 10, 30, 0.04)</code> 到 <code>transparent</code> 实现了横向和纵向的网格线。通过指定 <code>background-size</code> 为 <code>20px 20px</code>，设置了背景大小为 20px，由于 <code>background-repeat</code> 默认为 <code>repeat</code>，所以就实现了 20px 间距的网格线。</p><h2 class=heading-element id=虚线网格><span>4 虚线网格</span>\n<a href=#%e8%99%9a%e7%ba%bf%e7%bd%91%e6%a0%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>虚线网格的实现思路需要借助 <code>::before</code> 和 <code>::after</code> 伪元素，然后还是通过类似实线的思路实现网格线，然后两个伪元素叠加在一起，从而实现虚线网格。</p><blockquote><p>未做实例</p></blockquote><h2 class=heading-element id=点阵网格><span>5 点阵网格</span>\n<a href=#%e7%82%b9%e9%98%b5%e7%bd%91%e6%a0%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这里把渐变修改为径向渐变就实现点点背景了，原理和前面说的都是一样的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>grid</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-image</span><span class=p>:</span> <span class=nb>radial-gradient</span><span class=p>(</span><span class=kc>circle</span> <span class=p>,</span> <span class=mh>#5a5a5a</span> <span class=mf>.5</span><span class=kt>px</span><span class=p>,</span> <span class=kc>transparent</span> <span class=mf>.5</span><span class=kt>px</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-size</span><span class=p>:</span> <span class=mi>20</span><span class=kt>px</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=总结><span>6 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最后为了实现我在实际开发中的需求，我还需要控制网格宽度为容器的 1/24，这里就需要使用 <code>calc()</code> 函数来计算了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 背景显示网格辅助线（宽：1/24 高：40+8px） */</span>\n</span></span><span class=line><span class=cl><span class=nt>background-image</span><span class=o>:</span> <span class=nt>linear-gradient</span><span class=o>(</span><span class=nt>90deg</span><span class=o>,</span> <span class=nt>rgba</span><span class=o>(</span><span class=nt>60</span><span class=o>,</span> <span class=nt>10</span><span class=o>,</span> <span class=nt>30</span><span class=o>,</span> <span class=nt>0</span><span class=p>.</span><span class=nc>04</span><span class=o>)</span> <span class=nt>1px</span><span class=o>,</span> <span class=nt>transparent</span> <span class=nt>0</span><span class=o>),</span>\n</span></span><span class=line><span class=cl>  <span class=nt>linear-gradient</span><span class=o>(</span><span class=nt>1turn</span><span class=o>,</span> <span class=nt>rgba</span><span class=o>(</span><span class=nt>60</span><span class=o>,</span> <span class=nt>10</span><span class=o>,</span> <span class=nt>30</span><span class=o>,</span> <span class=nt>0</span><span class=p>.</span><span class=nc>04</span><span class=o>)</span> <span class=nt>1px</span><span class=o>,</span> <span class=nt>transparent</span> <span class=nt>0</span><span class=o>);</span>\n</span></span><span class=line><span class=cl><span class=nt>background-size</span><span class=o>:</span> <span class=nt>calc</span><span class=o>((</span><span class=nt>100</span><span class=o>%</span> <span class=nt>-</span> <span class=nt>8px</span><span class=o>)</span> <span class=o>/</span> <span class=nt>24</span><span class=o>)</span> <span class=nt>48px</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>background-position</span><span class=o>:</span> <span class=nt>4px</span> <span class=nt>4px</span><span class=o>;</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 或者点阵网格辅助线（宽：1/24 高：40+8px） */</span>\n</span></span><span class=line><span class=cl><span class=nt>background-image</span><span class=o>:</span> <span class=nt>radial-gradient</span><span class=o>(</span><span class=nt>circle</span> <span class=o>,</span> <span class=p>#</span><span class=nn>5a5a5a</span> <span class=p>.</span><span class=nc>5px</span><span class=o>,</span> <span class=nt>transparent</span> <span class=p>.</span><span class=nc>5px</span><span class=o>);</span>\n</span></span><span class=line><span class=cl><span class=nt>background-size</span><span class=o>:</span> <span class=nt>calc</span><span class=o>((</span><span class=nt>100</span><span class=o>%</span> <span class=nt>-</span> <span class=nt>8px</span><span class=o>)</span> <span class=o>/</span> <span class=nt>24</span><span class=o>)</span> <span class=nt>48px</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>background-position</span><span class=o>:</span> <span class=nt>24px</span> <span class=nt>24px</span><span class=o>;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=参考><span>7 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://zhuanlan.zhihu.com/p/345973110 target=_blank rel=\"external nofollow noopener noreferrer\">CSS+HTML&lt;网格背景效果><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・现代 CSS 解决方案</span></span></a> 5</div><div class=collection-nav><a href=/posts/scrollbar-styling/ class=collection-nav-item rel=next title=标准滚动条控制规范><span>标准滚动条控制规范</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-28 17:12:48\">更新于 2024-07-28&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8930517d6b79fb9502594cf9384e0a83577448eb rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整合集&#10&#10Commit: 8930517d6b79fb9502594cf9384e0a83577448eb [8930517]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-28 17:12:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8930517</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/grid-bg-image/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/grid-bg-image.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/grid-bg-image.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20CSS+%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BD%91%E6%A0%BC%E8%83%8C%E6%99%AF%E6%95%88%E6%9E%9C%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCSS+%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BD%91%E6%A0%BC%E8%83%8C%E6%99%AF%E6%95%88%E6%9E%9C%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/grid-bg-image/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/grid-bg-image.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/grid-bg-image/ data-title=\"CSS 如何实现网格背景效果？\" data-hashtags=CSS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/grid-bg-image/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/grid-bg-image/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/grid-bg-image/ data-title=\"CSS 如何实现网格背景效果？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/grid-bg-image/ data-title=\"CSS 如何实现网格背景效果？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/aws-ec2/ class=post-nav-item rel=prev title=\"将 Hugo 博客部署到 AWS 服务器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>将 Hugo 博客部署到 AWS 服务器</a><a href=/posts/vscode-snippets/ class=post-nav-item rel=next title=\"VSCode 添加用户代码片段，自定义用户代码片段\">VSCode 添加用户代码片段，自定义用户代码片段<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#前驱知识>前驱知识</a></li><li><a href=#实线网格>实线网格</a></li><li><a href=#虚线网格>虚线网格</a></li><li><a href=#点阵网格>点阵网格</a></li><li><a href=#总结>总结</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b2974a15012c06b846be42ba82708c32.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b2974a15012c06b846be42ba82708c32.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/grid-bg-image/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/grid-bg-image/index.md",
    "content": "# CSS 如何实现网格背景效果？\n\n\n本文将介绍如何使用 `linear-gradient` 、`background-size` 等属性来实现网格背景效果。\n\n## 前言\n\n最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\n\n最先想到的是使用 CSS 来实现这个效果，经过一番尝试，发现可以通过使用 CSS 的一些技术点，轻松实现不同类型的网格背景效果，包括实线网格和虚线网格。\n\n## 前驱知识\n\n在开始之前，我们需要了解一些必要的 CSS 属性和知识点。\n\n- [`linear-gradient`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/linear-gradient)：CSS **`linear-gradient()`** 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于[`<gradient>`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient)数据类型，是一种特别的[`<image>`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/image)数据类型。\n- [`radial-gradient`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/radial-gradient)：**`radial-gradient()`** [CSS](https://developer.mozilla.org/zh-CN/docs/Web/CSS) [函数](https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Functions)创建一个图像，该图像由从原点辐射的两种或多种颜色之间的渐进过渡组成。它的形状可以是圆形或椭圆形。函数的结果是 [`<gradient>`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient) 数据类型的对象。这是一种特别的 [`<image>`](https://developer.mozilla.org/zh-CN/docs/Web/CSS/image)。\n- `background-size`\n- `background-repeat`\n- `background-position`\n- `::before` 和 `::after` 伪元素\n\n## 实线网格\n\n这个效果，我最初是在刷掘金的时候发现的，掘金文章内容区的背景一个实线网格，呈现出的效果类似一页学生时代的记事本，当时觉得很有意思，于是扒下来当作了现在博客文章内容的背景。\n\n实线网格的实现思路是使用 `linear-gradient` 来绘制横向和纵向的网格线，然后通过 `background-size` 来控制网格线的间距。\n\n具体代码如下：\n\n```css\n.grid {\n  background-image: linear-gradient(to right, rgba(60, 10, 30, 0.04) 1px, transparent 0),\n    linear-gradient(to bottom, rgba(60, 10, 30, 0.04) 1px, transparent 0);\n  background-size: 20px 20px;\n}\n```\n\n上面的代码中，`background-image` 属性使用了两个 `linear-gradient`，通过渐变颜色从 `rgba(60, 10, 30, 0.04)` 到 `transparent` 实现了横向和纵向的网格线。通过指定 `background-size` 为 `20px 20px`，设置了背景大小为 20px，由于 `background-repeat` 默认为 `repeat`，所以就实现了 20px 间距的网格线。\n\n## 虚线网格\n\n虚线网格的实现思路需要借助 `::before` 和 `::after` 伪元素，然后还是通过类似实线的思路实现网格线，然后两个伪元素叠加在一起，从而实现虚线网格。\n\n> 未做实例\n\n## 点阵网格\n\n这里把渐变修改为径向渐变就实现点点背景了，原理和前面说的都是一样的。\n\n```css\n.grid {\n  background-image: radial-gradient(circle , #5a5a5a .5px, transparent .5px);\n  background-size: 20px 20px;\n}\n```\n\n## 总结\n\n最后为了实现我在实际开发中的需求，我还需要控制网格宽度为容器的 1/24，这里就需要使用 `calc()` 函数来计算了。\n\n```css\n/* 背景显示网格辅助线（宽：1/24 高：40+8px） */\nbackground-image: linear-gradient(90deg, rgba(60, 10, 30, 0.04) 1px, transparent 0),\n  linear-gradient(1turn, rgba(60, 10, 30, 0.04) 1px, transparent 0);\nbackground-size: calc((100% - 8px) / 24) 48px;\nbackground-position: 4px 4px;\n```\n\n```css\n/* 或者点阵网格辅助线（宽：1/24 高：40+8px） */\nbackground-image: radial-gradient(circle , #5a5a5a .5px, transparent .5px);\nbackground-size: calc((100% - 8px) / 24) 48px;\nbackground-position: 24px 24px;\n```\n\n## 参考\n\n- [CSS+HTML<网格背景效果>](https://zhuanlan.zhihu.com/p/345973110)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/grid-bg-image/  \n\n"
  },
  {
    "path": "posts/gtd/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Getting Things Done for Ios App Reminders and Github Issues | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &ldquo;there is an inverse relationship between things on your mind and those things getting done&rdquo;.\nReference #20 \"><meta name=keywords content='GTD'><meta itemprop=name content=\"Getting Things Done for ios App Reminders and Github issues\"><meta itemprop=description content=\"quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states “there is an inverse relationship between things on your mind and those things getting done”.\nReference #20\"><meta itemprop=datePublished content=\"2021-12-22T20:17:42+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"444\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GTD\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/gtd/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Getting Things Done for ios App Reminders and Github issues\"><meta property=\"og:description\" content=\"quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states “there is an inverse relationship between things on your mind and those things getting done”.\nReference #20\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-12-22T20:17:42+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"GTD\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Getting Things Done for ios App Reminders and Github issues\"><meta name=twitter:description content=\"quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states “there is an inverse relationship between things on your mind and those things getting done”.\nReference #20\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/gtd/ title=\"Getting Things Done for ios App Reminders and Github issues | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit/ title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><link rel=next type=text/html href=https://lruihao.cn/posts/css-scss-var/ title=\"关于 CSS 和 Scss 变量运算那些事\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/gtd/index.md title=\"Getting Things Done for ios App Reminders and Github issues | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Getting Things Done for ios App Reminders and Github issues\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/gtd\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"GTD\",\"wordcount\":444,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/gtd\\/\",\"datePublished\":\"2021-12-22T20:17:42+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/gtd/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Getting Things Done for Ios App Reminders and Github Issues</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Getting Things Done for Ios App Reminders and Github Issues</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-12-22 20:17:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-12-22>2021-12-22</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"444 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Getting Things Done for Ios App Reminders and Github Issues\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/gtd/images/reminders.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/gtd/images/reminders.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#理解>理解</a></li><li><a href=#apple-reminders-app>Apple Reminders app</a></li><li><a href=#github>Github</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>quote<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p><strong>Getting Things Done (GTD)</strong> is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &ldquo;there is an inverse relationship between things on your mind and those things getting done&rdquo;.</p><ul><li><a href=https://en.wikipedia.org/wiki/Getting_Things_Done target=_blank rel=\"external nofollow noopener noreferrer\">Reference<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/hugo-blog/issues/20 target=_blank rel=\"external nofollow noopener noreferrer\">#20<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div></div></div><h2 class=heading-element id=理解><span>1 理解</span>\n<a href=#%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>简而言之原则就是：</p><ol><li>搜集 (Collections Box)</li><li>处理</li><li>组织<ul><li>Next actions</li><li>Projects</li><li>Waiting for</li><li>Someday</li></ul></li><li>检查</li></ol><h2 class=heading-element id=apple-reminders-app><span>2 Apple Reminders app</span>\n<a href=#apple-reminders-app class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>按照以上原则就可以把 Apple 的提醒事项建 5 个大分类，<br>日常各种想法收集到收集箱，<br>空闲下来后再组织，分到不同时间点去做，<br>然后就要自律地去执行处理，做完回顾检查是否都完成。<br>还可以通过标签更加细分我们的 idea, 配合日历使用让生活学习更高效。</p><p><a class=lightgallery target=_blank href=/posts/gtd/images/reminders.png title=/posts/gtd/images/reminders.png data-thumbnail=/posts/gtd/images/reminders.png data-sub-html=\"<h2>/posts/gtd/images/reminders.png</h2>\"><img loading=lazy src=/posts/gtd/images/reminders.png alt=/posts/gtd/images/reminders.png height=1800 width=2880></a></p><h2 class=heading-element id=github><span>3 Github</span>\n<a href=#github class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>收集：选择 repository -> 建 issue</li><li>处理：解决并关闭 issue</li><li>组织：<ul><li>Labels</li><li>Projects</li><li>Milestone</li></ul></li></ul><div class=table-wrapper><table><thead><tr><th style=text-align:left>Lable</th><th style=text-align:left>Description</th></tr></thead><tbody><tr><td style=text-align:left>bug</td><td style=text-align:left>Something isn&rsquo;t working</td></tr><tr><td style=text-align:left>documentation</td><td style=text-align:left>Improvements or additions to documentation</td></tr><tr><td style=text-align:left>duplicate</td><td style=text-align:left>e or pull request already exists</td></tr><tr><td style=text-align:left>enhancement</td><td style=text-align:left>New feature or request</td></tr><tr><td style=text-align:left>good first issue</td><td style=text-align:left>Good for newcomers</td></tr><tr><td style=text-align:left>help wanted</td><td style=text-align:left>Extra attention is needed</td></tr><tr><td style=text-align:left>invalid</td><td style=text-align:left>This doesn&rsquo;t seem right</td></tr><tr><td style=text-align:left>priority</td><td style=text-align:left>Something to deal with first</td></tr><tr><td style=text-align:left>question</td><td style=text-align:left>Further information is requested</td></tr><tr><td style=text-align:left>study</td><td style=text-align:left>Self learning plan</td></tr><tr><td style=text-align:left>wontfix</td><td style=text-align:left>This will not be worked on</td></tr></tbody></table></div><h2 class=heading-element id=总结><span>4 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>之前在 Foxconn 工作，因为工作电脑、个人电脑、手机可以做到互不干扰，本来想的是把<strong>工作、学习 (Free Code) 和 生活</strong> 的计划完全分开。\n但是换工作后用自己的电脑，工作和 Free Code 就有了交集，换 mac 后，由于苹果生态的原因，不可避免生活计划也加入其中，形成一个三者互相交错的 Venn 图，所以简单分一下：</p><ul><li>工作、生活<ul><li>苹果生态：日历、提醒、备忘录（标签区分）</li></ul></li><li>学习<ul><li>Github (collection, backup), Blog (summarize)</li></ul></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/gtd/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/gtd/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/gtd/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Getting+Things+Done+for+ios+App+Reminders+and+Github+issues&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cGetting+Things+Done+for+ios+App+Reminders+and+Github+issues%7c%0A%7cURL%7chttps://lruihao.cn/posts/gtd/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/gtd/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/gtd/ data-title=\"Getting Things Done for Ios App Reminders and Github Issues\" data-hashtags=GTD><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/gtd/ data-hashtag=GTD><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/gtd/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/gtd/ data-title=\"Getting Things Done for Ios App Reminders and Github Issues\" data-image=/posts/gtd/images/reminders.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/gtd/ data-title=\"Getting Things Done for Ios App Reminders and Github Issues\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gtd/ class=post-tag title=\"标签 - GTD\">GTD</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/fixit/ class=post-nav-item rel=prev title=hugo-fixit/FixIt><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/FixIt</a><a href=/posts/css-scss-var/ class=post-nav-item rel=next title=\"关于 CSS 和 Scss 变量运算那些事\">关于 CSS 和 Scss 变量运算那些事<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#理解>理解</a></li><li><a href=#apple-reminders-app>Apple Reminders app</a></li><li><a href=#github>Github</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3f3b3bbb615c034f8f37055427b83892.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3f3b3bbb615c034f8f37055427b83892.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/gtd/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/gtd/index.md",
    "content": "# Getting Things Done for Ios App Reminders and Github Issues\n\n\n{{< admonition quote \"quote\" true >}}\n**Getting Things Done (GTD)** is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \"there is an inverse relationship between things on your mind and those things getting done\".\n\n- [Reference](https://en.wikipedia.org/wiki/Getting_Things_Done)\n- [#20](https://github.com/Lruihao/hugo-blog/issues/20)\n\n{{< /admonition >}}\n\n<!--more-->\n\n## 理解\n\n简而言之原则就是：\n\n1. 搜集 (Collections Box)\n2. 处理\n3. 组织\n   - Next actions\n   - Projects\n   - Waiting for\n   - Someday\n4. 检查\n\n## Apple Reminders app\n\n按照以上原则就可以把 Apple 的提醒事项建 5 个大分类，  \n日常各种想法收集到收集箱，  \n空闲下来后再组织，分到不同时间点去做，  \n然后就要自律地去执行处理，做完回顾检查是否都完成。  \n还可以通过标签更加细分我们的 idea, 配合日历使用让生活学习更高效。\n\n![](images/reminders.png)\n\n## Github\n\n- 收集：选择 repository -> 建 issue\n- 处理：解决并关闭 issue\n- 组织：\n  - Labels\n  - Projects\n  - Milestone\n\n| Lable            | Description                                |\n| :--------------- | :----------------------------------------- |\n| bug              | Something isn't working                    |\n| documentation    | Improvements or additions to documentation |\n| duplicate        | e or pull request already exists           |\n| enhancement      | New feature or request                     |\n| good first issue | Good for newcomers                         |\n| help wanted      | Extra attention is needed                  |\n| invalid          | This doesn't seem right                    |\n| priority         | Something to deal with first               |\n| question         | Further information is requested           |\n| study            | Self learning plan                         |\n| wontfix          | This will not be worked on                 |\n\n## 总结\n\n之前在 Foxconn 工作，因为工作电脑、个人电脑、手机可以做到互不干扰，本来想的是把**工作、学习 (Free Code) 和 生活** 的计划完全分开。\n但是换工作后用自己的电脑，工作和 Free Code 就有了交集，换 mac 后，由于苹果生态的原因，不可避免生活计划也加入其中，形成一个三者互相交错的 Venn 图，所以简单分一下：\n\n- 工作、生活\n  - 苹果生态：日历、提醒、备忘录（标签区分）\n- 学习\n  - Github (collection, backup), Blog (summarize)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/gtd/  \n\n"
  },
  {
    "path": "posts/hdu-1241/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hdu-1241-Oil Deposits (Dfs) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n1.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\n\"><meta name=keywords content='DFS,搜索,HDU,ACM,C++'><meta itemprop=name content=\"hdu-1241-Oil Deposits (dfs)\"><meta itemprop=description content=\"1 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n1.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\"><meta itemprop=datePublished content=\"2018-07-22T11:37:20+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"484\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"DFS,搜索,HDU,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu-1241/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hdu-1241-Oil Deposits (dfs)\"><meta property=\"og:description\" content=\"1 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n1.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:37:20+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"DFS\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hdu-1241-Oil Deposits (dfs)\"><meta name=twitter:description content=\"1 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n1.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu-1241/ title=\"hdu-1241-Oil Deposits (dfs) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ title=\"BFS 求最短路\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ title=杨辉三角><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu-1241/index.md title=\"hdu-1241-Oil Deposits (dfs) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hdu-1241-Oil Deposits (dfs)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-1241\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"DFS, 搜索, HDU, ACM, C\\u002b\\u002b\",\"wordcount\":484,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-1241\\/\",\"datePublished\":\"2018-07-22T11:37:20+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu-1241/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hdu-1241-Oil Deposits (Dfs)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hdu-1241-Oil Deposits (Dfs)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:37:20\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"484 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hdu-1241-Oil Deposits (Dfs)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#oil-deposits>Oil Deposits</a><ol><li><a href=#problem-description>Problem Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#source>Source</a></li><li><a href=#recommend>Recommend</a></li></ol></li><li><a href=#思路>思路</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=oil-deposits><span>1 <a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=_blank rel=\"external nofollow noopener noreferrer\">Oil Deposits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#oil-deposits class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://vjudge.net/contest/238973#problem/L target=_blank rel=\"external nofollow noopener noreferrer\">翻译<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)<br>Total Submission(s): 41406 Accepted Submission(s): 23977</p><h3 class=heading-element id=problem-description><span>1.1 Problem Description</span>\n<a href=#problem-description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.</p><h3 class=heading-element id=input><span>1.2 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The input file contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 &lt;= m &lt;= 100 and 1 &lt;= n &lt;= 100. Following this are m lines of n characters each (not counting the end-of-line characters). Each character corresponds to one plot, and is either &rsquo; * &lsquo;, representing the absence of oil, or &lsquo;@&rsquo;, representing an oil pocket.</p><h3 class=heading-element id=output><span>1.3 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For each grid, output the number of distinct oil deposits. Two different pockets are part of the same oil deposit if they are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets.</p><h3 class=heading-element id=sample-input><span>1.4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>1 1\n*\n3 5\n*@*@*\n**@**\n*@*@*\n1 8\n@@****@*\n5 5\n****@\n*@@*@\n*@**@\n@@@*@\n@@**@\n0 0\n</code></pre><h3 class=heading-element id=sample-output><span>1.5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>0\n1\n2\n</code></pre><h3 class=heading-element id=source><span>1.6 Source</span>\n<a href=#source class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Mid-Central USA 1997</p><h3 class=heading-element id=recommend><span>1.7 Recommend</span>\n<a href=#recommend class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Eddy | We have carefully selected several similar problems for you: 1016 1010 1312 1242 1240</p><h2 class=heading-element id=思路><span>2 思路</span>\n<a href=#%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>dfs 模板题吧，八个方向搜索；（像 i，j 这样的计数器还是写在局部比较好，我尽然被定义域的问题搞了一晚上醉了醉了。）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>char</span> <span class=n>maze</span><span class=p>[</span><span class=mi>107</span><span class=p>][</span><span class=mi>107</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>vx</span><span class=p>[</span><span class=mi>8</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>vy</span><span class=p>[</span><span class=mi>8</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>dfs</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=n>maze</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=sc>&#39;*&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>8</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>tx</span><span class=o>=</span><span class=n>x</span><span class=o>+</span><span class=n>vx</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>ty</span><span class=o>=</span><span class=n>y</span><span class=o>+</span><span class=n>vy</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>tx</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>tx</span><span class=o>&lt;</span><span class=n>m</span><span class=o>&amp;&amp;</span><span class=n>ty</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>ty</span><span class=o>&lt;</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>maze</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;@&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>dfs</span><span class=p>(</span><span class=n>tx</span><span class=p>,</span><span class=n>ty</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>m</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>s</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>maze</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span><span class=c1>//相当于不连通的情况\n</span></span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>maze</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;@&#39;</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                    <span class=n>dfs</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                    <span class=n>s</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>s</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu-1241/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-1241.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu-1241.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hdu-1241-Oil+Deposits+%28dfs%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chdu-1241-Oil+Deposits+%28dfs%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu-1241/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-1241.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu-1241/ data-title=\"Hdu-1241-Oil Deposits (Dfs)\" data-hashtags=DFS,搜索,HDU,ACM,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu-1241/ data-hashtag=DFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu-1241/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu-1241/ data-title=\"Hdu-1241-Oil Deposits (Dfs)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu-1241/ data-title=\"Hdu-1241-Oil Deposits (Dfs)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag title=\"标签 - DFS\">DFS</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-nav-item rel=prev title=\"BFS 求最短路\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>BFS 求最短路</a><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=post-nav-item rel=next title=杨辉三角>杨辉三角<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#oil-deposits>Oil Deposits</a><ol><li><a href=#problem-description>Problem Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#source>Source</a></li><li><a href=#recommend>Recommend</a></li></ol></li><li><a href=#思路>思路</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e034d72fd6b56cf59b58738a20161a20.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e034d72fd6b56cf59b58738a20161a20.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu-1241/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu-1241/index.md",
    "content": "# Hdu-1241-Oil Deposits (Dfs)\n\n\n## [Oil Deposits](http://acm.hdu.edu.cn/showproblem.php?pid=1241)\n\n[翻译](https://vjudge.net/contest/238973#problem/L)  \nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)  \nTotal Submission(s): 41406 Accepted Submission(s): 23977\n\n### Problem Description\n\nThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\n\n### Input\n\nThe input file contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 <= m <= 100 and 1 <= n <= 100. Following this are m lines of n characters each (not counting the end-of-line characters). Each character corresponds to one plot, and is either ' \\* ', representing the absence of oil, or '@', representing an oil pocket.\n\n### Output\n\nFor each grid, output the number of distinct oil deposits. Two different pockets are part of the same oil deposit if they are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets.\n\n### Sample Input\n\n    1 1\n    *\n    3 5\n    *@*@*\n    **@**\n    *@*@*\n    1 8\n    @@****@*\n    5 5\n    ****@\n    *@@*@\n    *@**@\n    @@@*@\n    @@**@\n    0 0\n\n### Sample Output\n\n    0\n    1\n    2\n\n### Source\n\nMid-Central USA 1997\n\n### Recommend\n\nEddy | We have carefully selected several similar problems for you: 1016 1010 1312 1242 1240\n\n## 思路\n\ndfs 模板题吧，八个方向搜索；（像 i，j 这样的计数器还是写在局部比较好，我尽然被定义域的问题搞了一晚上醉了醉了。）\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint n,m,s;\nchar maze[107][107];\nint vx[8]={-1,1,0,0,-1,-1,1,1};\nint vy[8]={0,0,-1,1,-1,1,1,-1};\n\nvoid dfs(int x,int y){\n    maze[x][y]='*';\n    for(int i=0;i<8;i++){\n        int tx=x+vx[i];\n        int ty=y+vy[i];\n        if(tx>=0&&tx<m&&ty>=0&&ty<n&&maze[tx][ty]=='@')\n            dfs(tx,ty);\n    }\n}\n\nint main(){\n    int i,j;\n    while(cin>>m>>n&&m){\n        s=0;\n        for(i=0;i<m;i++)\n            cin>>maze[i];\n        for(i=0;i<m;i++){//相当于不连通的情况\n            for(j=0;j<n;j++){\n                if(maze[i][j]=='@'){\n                    dfs(i,j);\n                    s++;\n                }\n            }\n        }\n        cout<<s<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu-1241/  \n\n"
  },
  {
    "path": "posts/hdu-1495/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S<101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。\n'><meta name=keywords content='ACM,HDU,搜索,C++'><meta itemprop=name content=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><meta itemprop=description content='非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S<101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。'><meta itemprop=datePublished content=\"2018-07-24T15:34:00+08:00\"><meta itemprop=dateModified content=\"2018-07-24T15:34:00+08:00\"><meta itemprop=wordCount content=\"1076\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,HDU,搜索,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu-1495/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><meta property=\"og:description\" content='非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S<101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-24T15:34:00+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-24T15:34:00+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><meta name=twitter:description content='非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S<101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu-1495/ title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu-2612/ title=\"hdu-2612-Find a way（双 bfs）\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ title=在线离线算法><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu-1495/index.md title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-1495\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, HDU, 搜索, C\\u002b\\u002b\",\"wordcount\":1076,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-1495\\/\",\"datePublished\":\"2018-07-24T15:34:00+08:00\",\"dateModified\":\"2018-07-24T15:34:00+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu-1495/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-24 15:34:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-24>2018-07-24</time></span>&nbsp;<span title=\"1076 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-24，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=_blank rel=\"external nofollow noopener noreferrer\">非常可乐<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。</p><h2 class=heading-element id=input><span>1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>三个整数 : S 可乐的体积 , N 和 M 是两个杯子的容量，以\"0 0 0\"结束。</p><h2 class=heading-element id=output><span>2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果能平分的话请输出最少要倒的次数，否则输出\"NO\"。</p><h2 class=heading-element id=sample-input><span>3 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>7 4 3\n4 1 3\n0 0 0\n</code></pre><h2 class=heading-element id=sample-output><span>4 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>NO\n3\n</code></pre><p>模拟一下倒水的过程，一共有三种倒法，a 向 bc，b 向 ac，c 向 ab。（相当于一共六个方向）搜索并记录搜索过的过程就好了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>used</span><span class=p>[</span><span class=mi>111</span><span class=p>][</span><span class=mi>111</span><span class=p>][</span><span class=mi>111</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>z</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=n>m</span><span class=p>,</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>bfs</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=n>queue</span><span class=o>&lt;</span><span class=n>node</span><span class=o>&gt;</span><span class=n>q</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>used</span><span class=p>[</span><span class=n>a</span><span class=p>][</span><span class=mi>0</span><span class=p>][</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=p>(</span><span class=o>!</span><span class=n>q</span><span class=p>.</span><span class=n>empty</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>trans</span><span class=p>;</span>    <span class=c1>//倒水量\n</span></span></span><span class=line><span class=cl>    <span class=n>m</span> <span class=o>=</span> <span class=n>q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=n>q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>//成功分好的三种情况\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>((</span><span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>==</span> <span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>==</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>)</span> <span class=o>||</span> <span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>==</span> <span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>==</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>)</span> <span class=o>||</span> <span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>==</span> <span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>==</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>//下面开始 6 个搜索（由一个杯子向另外两个倒水）\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>x</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>//第一\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=p>,</span> <span class=n>b</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>);</span><span class=c1>//自己模拟一下倒水过程就知道了\n</span></span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=c1>//第二\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=p>,</span> <span class=n>c</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>//第三\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=p>,</span> <span class=n>a</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=c1>//第四\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=p>,</span> <span class=n>c</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>z</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>//第五\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=p>,</span> <span class=n>a</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=c1>//第六\n</span></span></span><span class=line><span class=cl>      <span class=n>trans</span> <span class=o>=</span> <span class=n>min</span><span class=p>(</span><span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=p>,</span> <span class=n>b</span> <span class=o>-</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>y</span> <span class=o>+</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>z</span> <span class=o>-</span> <span class=n>trans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>m</span><span class=p>.</span><span class=n>step</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>used</span><span class=p>[</span><span class=n>n</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>n</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=p>(</span><span class=o>~</span><span class=n>scanf</span> <span class=p>(</span><span class=s>&#34;%d %d %d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>c</span><span class=p>)</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=n>a</span> <span class=o>||</span> <span class=n>b</span> <span class=o>||</span> <span class=n>c</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>a</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>)</span>    <span class=c1>//先简单的剪枝一下，奇数肯定不能平分\n</span></span></span><span class=line><span class=cl>      <span class=n>printf</span> <span class=p>(</span><span class=s>&#34;NO</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>memset</span> <span class=p>(</span><span class=n>used</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span> <span class=p>(</span><span class=n>used</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>      <span class=kt>int</span> <span class=n>ans</span> <span class=o>=</span> <span class=n>bfs</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=n>ans</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span> <span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=k>else</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span> <span class=p>(</span><span class=s>&#34;NO</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>然后杭电上讨论板子上提供一种数论题解，<del>但是数据存在一点问题，只不过有些数据好像不对；比如：10 6 5 的结果应该是 1 而不是 9</del>，也提示我们多维思考同一个问题！</p><p><a href=https://blog.csdn.net/V5ZSQ/article/details/52097459 target=_blank rel=\"external nofollow noopener noreferrer\">数论推导<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>s</span><span class=p>,</span><span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>s</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>,</span><span class=n>s</span><span class=o>+</span><span class=n>n</span><span class=o>+</span><span class=n>m</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>s</span><span class=o>/=</span><span class=n>__gcd</span><span class=p>(</span><span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>s</span><span class=o>&amp;</span><span class=mi>1</span><span class=p>)</span><span class=c1>//奇数\n</span></span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;NO</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>s</span><span class=o>-</span><span class=mi>1</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-24 15:34:00\">更新于 2018-07-24&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu-1495/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-1495.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu-1495.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20HDU-1495-%E9%9D%9E%E5%B8%B8%E5%8F%AF%E4%B9%90%EF%BC%88bfs+%E6%A8%A1%E6%8B%9F%E5%80%92%E6%B0%B4+or+%E6%95%B0%E8%AE%BA%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHDU-1495-%E9%9D%9E%E5%B8%B8%E5%8F%AF%E4%B9%90%EF%BC%88bfs+%E6%A8%A1%E6%8B%9F%E5%80%92%E6%B0%B4+or+%E6%95%B0%E8%AE%BA%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu-1495/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-1495.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu-1495/ data-title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\" data-hashtags=ACM,HDU,搜索,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu-1495/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu-1495/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu-1495/ data-title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu-1495/ data-title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu-2612/ class=post-nav-item rel=prev title=\"Hdu-2612-Find a Way（双 Bfs）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hdu-2612-Find a Way（双 Bfs）</a><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=post-nav-item rel=next title=在线离线算法>在线离线算法<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b31df2415b2195d8fa30ab2b8cec6f26.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b31df2415b2195d8fa30ab2b8cec6f26.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu-1495/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu-1495/index.md",
    "content": "# HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\n\n\n[非常可乐](http://acm.hdu.edu.cn/showproblem.php?pid=1495)\n\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S<101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\"NO\"。\n\n## Input\n\n三个整数 : S 可乐的体积 , N 和 M 是两个杯子的容量，以\"0 0 0\"结束。\n\n## Output\n\n如果能平分的话请输出最少要倒的次数，否则输出\"NO\"。\n\n## Sample Input\n\n    7 4 3\n    4 1 3\n    0 0 0\n\n## Sample Output\n\n    NO\n    3\n\n模拟一下倒水的过程，一共有三种倒法，a 向 bc，b 向 ac，c 向 ab。（相当于一共六个方向）搜索并记录搜索过的过程就好了。\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint a,b,c;\nint used[111][111][111];\nstruct node\n{\n  int x,y,z;\n  int step;\n}m,n;\n\nint bfs()\n{\n  queue<node>q;\n  m.x = a;\n  m.y = 0;\n  m.z = 0;\n  m.step = 0;\n  used[a][0][0] = 1;\n  q.push(m);\n  while (!q.empty())\n  {\n    int trans;    //倒水量\n    m = q.front();\n    q.pop();\n\n    //成功分好的三种情况\n    if ((m.x == 0 && m.y == m.z) || (m.y == 0 && m.x == m.z) || (m.z == 0 && m.x == m.y))\n      return m.step;\n\n    //下面开始 6 个搜索（由一个杯子向另外两个倒水）\n    if (m.x)\n    {\n      //第一\n      trans = min(m.x , b - m.y);//自己模拟一下倒水过程就知道了\n        n.x = m.x - trans;\n        n.y = m.y + trans;\n        n.z = m.z;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          q.push(n);\n          used[n.x][n.y][n.z] = 1;\n        }\n\n      //第二\n      trans = min(m.x , c - m.z);\n        n.x = m.x - trans;\n        n.y = m.y;\n        n.z = m.z + trans;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          q.push(n);\n          used[n.x][n.y][n.z] = 1;\n        }\n    }\n    if (m.y)\n    {\n      //第三\n      trans = min(m.y , a - m.x);\n        n.x = m.x + trans;\n        n.y = m.y - trans;\n        n.z = m.z;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          used[n.x][n.y][n.z] = 1;\n          q.push(n);\n        }\n\n      //第四\n      trans = min(m.y , c - m.z);\n        n.x = m.x;\n        n.y = m.y - trans;\n        n.z = m.z + trans;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          used[n.x][n.y][n.z] = 1;\n          q.push(n);\n        }\n    }\n    if (m.z)\n    {\n      //第五\n      trans = min(m.z , a - m.x);\n        n.x = m.x + trans;\n        n.y = m.y;\n        n.z = m.z - trans;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          used[n.x][n.y][n.z] = 1;\n          q.push(n);\n        }\n\n      //第六\n      trans = min(m.z , b - m.y);\n        n.x = m.x;\n        n.y = m.y + trans;\n        n.z = m.z - trans;\n        n.step = m.step + 1;\n        if (!used[n.x][n.y][n.z])\n        {\n          q.push(n);\n          used[n.x][n.y][n.z] = 1;\n        }\n    }\n  }\n  return 0;\n}\n\nint main()\n{\n  while (~scanf (\"%d %d %d\",&a,&b,&c) && (a || b || c))\n  {\n    if (a&1)    //先简单的剪枝一下，奇数肯定不能平分\n      printf (\"NO\\n\");\n    else\n    {\n      memset (used,0,sizeof (used));\n      int ans = bfs();\n      if (ans)\n        printf (\"%d\\n\",ans);\n      else\n        printf (\"NO\\n\");\n    }\n  }\n  return 0;\n}\n```\n\n然后杭电上讨论板子上提供一种数论题解，~~但是数据存在一点问题，只不过有些数据好像不对；比如：10 6 5 的结果应该是 1 而不是 9~~，也提示我们多维思考同一个问题！\n\n[数论推导](https://blog.csdn.net/V5ZSQ/article/details/52097459)\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int s,n,m;\n    while(cin>>s>>n>>m,s+n+m){\n        s/=__gcd(n,m);\n        if(s&1)//奇数\n            cout<<\"NO\\n\";\n        else cout<<s-1<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu-1495/  \n\n"
  },
  {
    "path": "posts/hdu-2612/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hdu-2612-Find a Way（双 Bfs） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Find a way\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &mldr;&mldr;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\n\"><meta name=keywords content='ACM,HDU,搜索,C++'><meta itemprop=name content=\"hdu-2612-Find a way（双 bfs）\"><meta itemprop=description content=\"Find a way\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） …….. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\"><meta itemprop=datePublished content=\"2018-07-23T12:34:42+08:00\"><meta itemprop=dateModified content=\"2018-07-23T12:34:42+08:00\"><meta itemprop=wordCount content=\"889\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,HDU,搜索,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu-2612/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hdu-2612-Find a way（双 bfs）\"><meta property=\"og:description\" content=\"Find a way\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） …….. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-23T12:34:42+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-23T12:34:42+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hdu-2612-Find a way（双 bfs）\"><meta name=twitter:description content=\"Find a way\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） …….. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu-2612/ title=\"hdu-2612-Find a way（双 bfs） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-3278/ title=\"POJ-3278-Catch That Cow(bfs)\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu-1495/ title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu-2612/index.md title=\"hdu-2612-Find a way（双 bfs） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hdu-2612-Find a way（双 bfs）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-2612\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, HDU, 搜索, C\\u002b\\u002b\",\"wordcount\":889,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu-2612\\/\",\"datePublished\":\"2018-07-23T12:34:42+08:00\",\"dateModified\":\"2018-07-23T12:34:42+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu-2612/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hdu-2612-Find a Way（双 Bfs）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hdu-2612-Find a Way（双 Bfs）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-23 12:34:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-23>2018-07-23</time></span>&nbsp;<span title=\"889 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hdu-2612-Find a Way（双 Bfs）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#hint>Hint</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-23，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=_blank rel=\"external nofollow noopener noreferrer\">Find a way<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &mldr;&mldr;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）</p><h2 class=heading-element id=input><span>1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>多组测试数据</p><p>每组数据，开始一行 n，m (2&lt;=n,m&lt;=200)</p><p>接下来是个 n x m 的矩阵</p><p>&lsquo;Y&rsquo; 表示坤神所在的初始位置</p><p>&lsquo;M&rsquo; 表示瑞瑞所在的初始位置</p><p>&lsquo;#&rsquo; 该点禁止通行</p><p>&lsquo;.&rsquo; 该点可通行</p><p>&lsquo;@&rsquo; 召唤师大峡谷</p><h2 class=heading-element id=output><span>2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>每组测试数据，输出坤神和瑞瑞到达同一个召唤师大峡谷所花费的最短时间。</p><h2 class=heading-element id=sample-input><span>3 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>4 4\nY.#@\n....\n.#..\n@..M\n4 4\nY.#@\n....\n.#..\n@#.M\n5 5\nY..@.\n.#...\n@..M.\n`#...#`\n</code></pre><h2 class=heading-element id=sample-output><span>4 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>66\n88\n66\n</code></pre><h2 class=heading-element id=hint><span>5 Hint</span>\n<a href=#hint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于第一组样例，坤神和瑞瑞去矩阵（4,1）这个召唤师大峡谷，耗费的时间为 3 ✖️ 11 + 3 ✖️ 11 = 66，去矩阵（1,4）这个召唤师大峡谷，耗费的时间为 5 ✖️ 11 + 3 ✖️ 11 = 88。所以，最终答案：66。<a href=https://blog.csdn.net/ld_1090815922/article/details/72448569 target=_blank rel=\"external nofollow noopener noreferrer\">思路参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p><code>写代码总是好粗心！！</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c++\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c++ data-lang=c++><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#define inf 0x3f3f3f3f     </span><span class=c1>//acm 中“无穷大”的一般定义\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>M</span><span class=o>=</span><span class=mi>202</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>char</span> <span class=n>mp</span><span class=p>[</span><span class=n>M</span><span class=p>][</span><span class=n>M</span><span class=p>];</span>            <span class=c1>//地图\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=n>M</span><span class=p>][</span><span class=n>M</span><span class=p>],</span><span class=n>b</span><span class=p>[</span><span class=n>M</span><span class=p>][</span><span class=n>M</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=n>vis</span><span class=p>[</span><span class=n>M</span><span class=p>][</span><span class=n>M</span><span class=p>];</span>           <span class=c1>//标记数组\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>init</span><span class=p>()</span>              <span class=c1>//初始化函数\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>ans</span><span class=o>=</span><span class=n>inf</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>j</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>inf</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>inf</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>bfs</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>,</span><span class=kt>bool</span> <span class=n>flag</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>dir</span><span class=p>[</span><span class=mi>4</span><span class=p>][</span><span class=mi>2</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>    <span class=n>node</span> <span class=n>u</span><span class=p>,</span><span class=n>v</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>queue</span><span class=o>&lt;</span><span class=n>node</span><span class=o>&gt;</span> <span class=n>q</span><span class=p>;</span>  <span class=c1>//初始化队列第一个元素\n</span></span></span><span class=line><span class=cl>    <span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=o>=</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=o>=</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>u</span><span class=p>.</span><span class=n>step</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>vis</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>u</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>q</span><span class=p>.</span><span class=n>empty</span><span class=p>()){</span>\n</span></span><span class=line><span class=cl>        <span class=n>u</span><span class=o>=</span><span class=n>q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=n>q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>mp</span><span class=p>[</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;@&#39;</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>)</span> <span class=n>a</span><span class=p>[</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span> <span class=n>b</span><span class=p>[</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>tx</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=o>+</span><span class=n>dir</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>0</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>ty</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>y</span><span class=o>+</span><span class=n>dir</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>1</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>tx</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>ty</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>tx</span><span class=o>&lt;</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>ty</span><span class=o>&lt;</span><span class=n>m</span><span class=o>&amp;&amp;!</span><span class=n>vis</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>&amp;&amp;</span><span class=n>mp</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>!=</span><span class=sc>&#39;#&#39;</span><span class=p>){</span><span class=c1>//注意@和 M，Y 也是可以走的。\n</span></span></span><span class=line><span class=cl>                <span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=o>=</span><span class=n>tx</span><span class=p>;</span>                                          <span class=c1>//每次写搜索都忘记 vis!!!!\n</span></span></span><span class=line><span class=cl>                <span class=n>v</span><span class=p>.</span><span class=n>y</span><span class=o>=</span><span class=n>ty</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>vis</span><span class=p>[</span><span class=n>tx</span><span class=p>][</span><span class=n>ty</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>  <span class=c1>//我总是忘记。\n</span></span></span><span class=line><span class=cl>                <span class=n>v</span><span class=p>.</span><span class=n>step</span><span class=o>=</span><span class=n>u</span><span class=p>.</span><span class=n>step</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>~</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>init</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%s&#34;</span><span class=p>,</span><span class=n>mp</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>j</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>mp</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;Y&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=n>memset</span><span class=p>(</span><span class=n>vis</span><span class=p>,</span><span class=nb>false</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>vis</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>                    <span class=n>bfs</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=nb>false</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>mp</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;M&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=n>memset</span><span class=p>(</span><span class=n>vis</span><span class=p>,</span><span class=nb>false</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>vis</span><span class=p>));</span>  <span class=c1>//记得再次初始化标记数组\n</span></span></span><span class=line><span class=cl>                    <span class=n>bfs</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=nb>true</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span> <span class=n>j</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>mp</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;@&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                    <span class=n>ans</span><span class=o>=</span><span class=n>min</span><span class=p>(</span><span class=n>ans</span><span class=p>,</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>+</span><span class=n>b</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=o>*</span><span class=mi>11</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-23 12:34:42\">更新于 2018-07-23&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu-2612/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-2612.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu-2612.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hdu-2612-Find+a+way%EF%BC%88%E5%8F%8C+bfs%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chdu-2612-Find+a+way%EF%BC%88%E5%8F%8C+bfs%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu-2612/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu-2612.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu-2612/ data-title=\"Hdu-2612-Find a Way（双 Bfs）\" data-hashtags=ACM,HDU,搜索,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu-2612/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu-2612/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu-2612/ data-title=\"Hdu-2612-Find a Way（双 Bfs）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu-2612/ data-title=\"Hdu-2612-Find a Way（双 Bfs）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-3278/ class=post-nav-item rel=prev title=\"POJ-3278-Catch That Cow(bfs)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>POJ-3278-Catch That Cow(bfs)</a><a href=/posts/hdu-1495/ class=post-nav-item rel=next title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\">HDU-1495-非常可乐（bfs 模拟倒水 or 数论）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#hint>Hint</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cde8be452aefe0c97004d0108cf5fe37.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cde8be452aefe0c97004d0108cf5fe37.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu-2612/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu-2612/index.md",
    "content": "# Hdu-2612-Find a Way（双 Bfs）\n\n\n[Find a way](http://acm.hdu.edu.cn/showproblem.php?pid=2612)\n\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） ........ 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\n\n## Input\n\n多组测试数据\n\n每组数据，开始一行 n，m (2<=n,m<=200)\n\n接下来是个 n x m 的矩阵\n\n'Y' 表示坤神所在的初始位置\n\n'M' 表示瑞瑞所在的初始位置\n\n'#' 该点禁止通行\n\n'.' 该点可通行\n\n'@' 召唤师大峡谷\n\n## Output\n\n每组测试数据，输出坤神和瑞瑞到达同一个召唤师大峡谷所花费的最短时间。\n\n## Sample Input\n\n    4 4\n    Y.#@\n    ....\n    .#..\n    @..M\n    4 4\n    Y.#@\n    ....\n    .#..\n    @#.M\n    5 5\n    Y..@.\n    .#...\n    @..M.\n    `#...#`\n\n## Sample Output\n\n    66\n    88\n    66\n\n## Hint\n\n对于第一组样例，坤神和瑞瑞去矩阵（4,1）这个召唤师大峡谷，耗费的时间为 3 ✖️ 11 + 3 ✖️ 11 = 66，去矩阵（1,4）这个召唤师大峡谷，耗费的时间为 5 ✖️ 11 + 3 ✖️ 11 = 88。所以，最终答案：66。[思路参考](https://blog.csdn.net/ld_1090815922/article/details/72448569)\n\n`写代码总是好粗心！！`\n\n<!-- markdownlint-disable MD046 -->\n\n```c++\n#include <bits/stdc++.h>\n#define inf 0x3f3f3f3f     //acm 中“无穷大”的一般定义\nusing namespace std;\n\nconst int M=202;\nchar mp[M][M];            //地图\nint a[M][M],b[M][M];\nbool vis[M][M];           //标记数组\nint n,m;\nint ans;\nstruct node\n{\n    int x,y,step;\n};\n\nvoid init()              //初始化函数\n{\n    ans=inf;\n    for(int i=0; i<n; i++)\n        for(int j=0; j<m; j++)\n        {\n            a[i][j]=inf;\n            b[i][j]=inf;\n        }\n}\n\nvoid bfs(int x,int y,bool flag){\n    int dir[4][2]={-1,0,1,0,0,1,0,-1};\n    node u,v;\n    queue<node> q;  //初始化队列第一个元素\n    u.x=x;\n    u.y=y;\n    u.step=0;\n    vis[x][y]=true;\n    q.push(u);\n    while(!q.empty()){\n        u=q.front();\n        q.pop();\n        if(mp[u.x][u.y]=='@'){\n            if(!flag) a[u.x][u.y]=u.step;\n            else b[u.x][u.y]=u.step;\n        }\n        for(int i=0;i<4;i++){\n            int tx=u.x+dir[i][0];\n            int ty=u.y+dir[i][1];\n            if(tx>=0&&ty>=0&&tx<n&&ty<m&&!vis[tx][ty]&&mp[tx][ty]!='#'){//注意@和 M，Y 也是可以走的。\n                v.x=tx;                                          //每次写搜索都忘记 vis!!!!\n                v.y=ty;\n                vis[tx][ty]=true;  //我总是忘记。\n                v.step=u.step+1;\n                q.push(v);\n            }\n        }\n    }\n}\n\nint main()\n{\n    while(~scanf(\"%d%d\",&n,&m))\n    {\n        init();\n        for(int i=0; i<n; i++)\n            scanf(\"%s\",mp[i]);\n        for(int i=0; i<n; i++)\n            for(int j=0; j<m; j++)\n            {\n                if(mp[i][j]=='Y')\n                {\n                    memset(vis,false,sizeof(vis));\n                    bfs(i,j,false);\n                }\n                if(mp[i][j]=='M')\n                {\n                    memset(vis,false,sizeof(vis));  //记得再次初始化标记数组\n                    bfs(i,j,true);\n                }\n            }\n        for(int i=0; i<n; i++)\n            for(int j=0; j<m; j++)\n                if(mp[i][j]=='@')\n                    ans=min(ans,a[i][j]+b[i][j]);\n        printf(\"%d\\n\",ans*11);\n    }\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu-2612/  \n\n"
  },
  {
    "path": "posts/hdu1009/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HDU 1009 FatMouse' Trade（贪心） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\n\"><meta name=keywords content='ACM,贪心,HDU'><meta itemprop=name content=\"HDU 1009 FatMouse' Trade（贪心）\"><meta itemprop=description content=\"1 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\"><meta itemprop=datePublished content=\"2019-04-12T16:43:19+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"317\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,贪心,HDU\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu1009/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HDU 1009 FatMouse' Trade（贪心）\"><meta property=\"og:description\" content=\"1 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-12T16:43:19+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"贪心\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HDU 1009 FatMouse' Trade（贪心）\"><meta name=twitter:description content=\"1 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu1009/ title=\"HDU 1009 FatMouse' Trade（贪心） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ngrok/ title=本地搭建网站服务器并穿透内网><link rel=next type=text/html href=https://lruihao.cn/posts/stringbuffer/ title=\"java 常用类\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu1009/index.md title=\"HDU 1009 FatMouse' Trade（贪心） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"HDU 1009 FatMouse' Trade（贪心）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu1009\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 贪心, HDU\",\"wordcount\":317,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu1009\\/\",\"datePublished\":\"2019-04-12T16:43:19+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu1009/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HDU 1009 FatMouse' Trade（贪心）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>HDU 1009 FatMouse' Trade（贪心）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-12 16:43:19\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-12>2019-04-12</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"317 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"HDU 1009 FatMouse' Trade（贪心）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目大意>题目大意</a><ol><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li><li><a href=#分析>分析</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题目大意><span>1 题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。</p><h3 class=heading-element id=sample-input><span>1.1 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>5 3\n7 2\n4 3\n5 2\n20 3\n25 18\n24 15\n15 10\n-1 -1\n</code></pre><h3 class=heading-element id=sample-output><span>1.2 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>13.333\n31.500\n</code></pre><h2 class=heading-element id=分析><span>2 分析</span>\n<a href=#%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>老鼠要用最少的猫粮来换取最多的食物 , 也就是 J[i]/F[i] 越大越好 , 所以按照 J[i]/F[i] 进行降序排列 , 然后依次用猫粮来换取食物 , 当所剩下的猫粮不足以完全换取食物 , 能换多少是多少。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;algorithm&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>double</span> <span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>double</span> <span class=n>f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>double</span> <span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span><span class=n>a</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>cmp</span><span class=p>(</span><span class=n>node</span> <span class=n>x</span><span class=p>,</span><span class=n>node</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=n>x</span><span class=p>.</span><span class=n>s</span><span class=o>&gt;</span><span class=n>y</span><span class=p>.</span><span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>m</span><span class=p>,</span><span class=n>n</span><span class=p>,</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>)</span><span class=o>&amp;&amp;</span><span class=p>(</span><span class=n>m</span><span class=o>!=-</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>n</span><span class=o>!=-</span><span class=mi>1</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>a</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%lf%lf&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>j</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>f</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>s</span><span class=o>=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>j</span><span class=o>/</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>sort</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=n>n</span><span class=p>,</span><span class=n>cmp</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>double</span> <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>m</span><span class=o>&gt;=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>f</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>m</span><span class=o>-=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span><span class=k>else</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>s</span><span class=o>*</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>m</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>m</span><span class=o>&lt;=</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%.3lf</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>sum</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu1009/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu1009.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu1009.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20HDU+1009+FatMouse%27+Trade%EF%BC%88%E8%B4%AA%E5%BF%83%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHDU+1009+FatMouse%27+Trade%EF%BC%88%E8%B4%AA%E5%BF%83%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu1009/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu1009.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu1009/ data-title=\"HDU 1009 FatMouse' Trade（贪心）\" data-hashtags=ACM,贪心,HDU><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu1009/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu1009/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu1009/ data-title=\"HDU 1009 FatMouse' Trade（贪心）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu1009/ data-title=\"HDU 1009 FatMouse' Trade（贪心）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E8%B4%AA%E5%BF%83/ class=post-tag title=\"标签 - 贪心\">贪心</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ngrok/ class=post-nav-item rel=prev title=本地搭建网站服务器并穿透内网><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>本地搭建网站服务器并穿透内网</a><a href=/posts/stringbuffer/ class=post-nav-item rel=next title=\"Java 常用类\">Java 常用类<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目大意>题目大意</a><ol><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li><li><a href=#分析>分析</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/84c9011a7be78653e7be5dc29e91d753.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/84c9011a7be78653e7be5dc29e91d753.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu1009/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu1009/index.md",
    "content": "# HDU 1009 FatMouse' Trade（贪心）\n\n\n## 题目大意\n\n[题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=1009)  \n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\n\n### Sample Input\n\n    5 3\n    7 2\n    4 3\n    5 2\n    20 3\n    25 18\n    24 15\n    15 10\n    -1 -1\n\n### Sample Output\n\n    13.333\n    31.500\n\n## 分析\n\n老鼠要用最少的猫粮来换取最多的食物 , 也就是 J[i]/F[i] 越大越好 , 所以按照 J[i]/F[i] 进行降序排列 , 然后依次用猫粮来换取食物 , 当所剩下的猫粮不足以完全换取食物 , 能换多少是多少。\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include<stdio.h>\n#include<algorithm>\nusing namespace std;\n\nstruct node{\n  double j;\n  double f;\n  double s;\n}a[1005];\n\nint cmp(node x,node y){\n  return x.s>y.s;\n}\n\nint main(){\n  int m,n,i;\n  while(scanf(\"%d%d\",&m,&n)&&(m!=-1&&n!=-1)){\n    memset(a,0,sizeof(a));\n    for(i=0;i<n;i++){\n      scanf(\"%lf%lf\",&a[i].j,&a[i].f);\n      a[i].s=a[i].j/a[i].f;\n    }\n\n    sort(a,a+n,cmp);\n\n    double sum=0;\n    for(i=0;i<n;i++){\n      if(m>=a[i].f){\n        sum+=a[i].j;\n        m-=a[i].f;\n      }else{\n        sum+=a[i].s*m;\n        m=0;\n      }\n      if(m<=0)\n        break;\n    }\n    printf(\"%.3lf\\n\",sum);\n  }\n  return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu1009/  \n\n"
  },
  {
    "path": "posts/hdu1272/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>小希的迷宫-HDU-1272（并查集 or 树性质） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题目链接：小希的迷宫 2 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\n3 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\n\"><meta name=keywords content='ACM,并查集,HDU,C++,C'><meta itemprop=name content=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><meta itemprop=description content=\"1 题目链接：小希的迷宫 2 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\n3 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\"><meta itemprop=datePublished content=\"2018-08-01T21:45:50+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"428\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,并查集,HDU,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu1272/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><meta property=\"og:description\" content=\"1 题目链接：小希的迷宫 2 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\n3 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-01T21:45:50+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><meta name=twitter:description content=\"1 题目链接：小希的迷宫 2 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\n3 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu1272/ title=\"小希的迷宫-HDU-1272（并查集 or 树性质） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu3038/ title=\"How Many Answers Are Wrong-hdu3038（带权并查集）\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj1182/ title=食物链-poj1182（带权并查集经典模板）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu1272/index.md title=\"小希的迷宫-HDU-1272（并查集 or 树性质） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu1272\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 并查集, HDU, C\\u002b\\u002b, C\",\"wordcount\":428,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu1272\\/\",\"datePublished\":\"2018-08-01T21:45:50+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu1272/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>小希的迷宫-HDU-1272（并查集 or 树性质）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>小希的迷宫-HDU-1272（并查集 or 树性质）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-01 21:45:50\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-01>2018-08-01</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"428 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目链接小希的迷宫>题目链接：小希的迷宫</a></li><li><a href=#并查集>并查集</a></li><li><a href=#树的性质>树的性质</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题目链接小希的迷宫><span>1 题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=_blank rel=\"external nofollow noopener noreferrer\">小希的迷宫<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=并查集><span>2 并查集</span>\n<a href=#%e5%b9%b6%e6%9f%a5%e9%9b%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>无回路</li><li>单连通</li></ul><p>并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成<strong>回路</strong>，则可以判定 No，交了一发错了。<br>想了一下没有考虑到多个连通域的情况，该题必须只有<strong>一个连通域</strong></p><h2 class=heading-element id=树的性质><span>3 树的性质</span>\n<a href=#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;</p><p>最后注意空树的情况，至于自环我这里 No 也过了，没有去验证自环 Yes 的情况了</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=c1>//并查集\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>100001</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>son</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>son</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span><span class=o>!=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>son</span><span class=o>!=</span><span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>t</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>]</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>son</span><span class=o>=</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>join</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=kt>int</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>a</span><span class=p>),</span><span class=n>y</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>!=</span><span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>flag</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>sum</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>flag</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>~</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>)</span> <span class=o>&amp;&amp;</span> <span class=n>a</span><span class=o>!=</span><span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>b</span><span class=o>!=</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>==-</span><span class=mi>1</span> <span class=o>&amp;&amp;</span> <span class=n>b</span><span class=o>==-</span><span class=mi>1</span><span class=p>)</span> <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span><span class=n>pre</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>=</span><span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span><span class=n>pre</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>=</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>find</span><span class=p>(</span><span class=n>a</span><span class=p>)</span><span class=o>==</span><span class=n>find</span><span class=p>(</span><span class=n>b</span><span class=p>))</span><span class=n>flag</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>flag</span><span class=o>!=</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>join</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>sum</span> <span class=o>=</span> <span class=mi>0</span><span class=p>,</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>100001</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=n>i</span><span class=p>)</span><span class=n>sum</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>sum</span><span class=o>&gt;</span><span class=mi>1</span> <span class=o>||</span> <span class=n>flag</span> <span class=o>==</span> <span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>printf</span><span class=p>(</span><span class=s>&#34;No</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span>\n</span></span><span class=line><span class=cl>      <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Yes</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=c1>//1 2 3 4 0 0 No 没有连通\n</span></span></span><span class=line><span class=cl><span class=c1>//0 0 Yes\n</span></span></span><span class=line><span class=cl><span class=c1>//1 1 0 0 No（该代码）\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-C data-lang=C><span class=line><span class=cl><span class=c1>//树性质\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=n>s</span><span class=p>[</span><span class=mi>100001</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>  <span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>len</span><span class=p>,</span><span class=n>num</span><span class=p>,</span><span class=n>v</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>100001</span><span class=p>;</span><span class=o>++</span><span class=n>i</span><span class=p>)</span>  <span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>len</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>num</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>v</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>  <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>==-</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>b</span><span class=o>==-</span><span class=mi>1</span><span class=p>)</span>  <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>==</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>  <span class=k>if</span><span class=p>(</span><span class=n>v</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span>  <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;Yes</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>continue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>num</span><span class=o>==</span><span class=n>len</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span>  <span class=c1>//划重点！！\n</span></span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;Yes</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=k>else</span> <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;No</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=n>num</span><span class=o>=</span><span class=n>len</span><span class=o>=</span><span class=n>v</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>100001</span><span class=p>;</span><span class=o>++</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>s</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>v</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>==</span><span class=nb>false</span><span class=p>)</span>    <span class=n>len</span><span class=o>++</span><span class=p>;</span><span class=c1>//点数\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>s</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>==</span><span class=nb>false</span><span class=p>)</span>    <span class=n>len</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>s</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>=</span><span class=n>s</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>num</span><span class=o>++</span><span class=p>;</span><span class=c1>//边数\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu1272/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu1272.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu1272.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%B0%8F%E5%B8%8C%E7%9A%84%E8%BF%B7%E5%AE%AB-HDU-1272%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86+or+%E6%A0%91%E6%80%A7%E8%B4%A8%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%B0%8F%E5%B8%8C%E7%9A%84%E8%BF%B7%E5%AE%AB-HDU-1272%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86+or+%E6%A0%91%E6%80%A7%E8%B4%A8%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu1272/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu1272.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu1272/ data-title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\" data-hashtags=ACM,并查集,HDU,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu1272/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu1272/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu1272/ data-title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu1272/ data-title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu3038/ class=post-nav-item rel=prev title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>How Many Answers Are Wrong-Hdu3038（带权并查集）</a><a href=/posts/poj1182/ class=post-nav-item rel=next title=食物链-Poj1182（带权并查集经典模板）>食物链-Poj1182（带权并查集经典模板）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目链接小希的迷宫>题目链接：小希的迷宫</a></li><li><a href=#并查集>并查集</a></li><li><a href=#树的性质>树的性质</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b2f0074cce92da89ff8c1bd4899efd32.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b2f0074cce92da89ff8c1bd4899efd32.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu1272/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu1272/index.md",
    "content": "# 小希的迷宫-HDU-1272（并查集 or 树性质）\n\n\n## 题目链接：[小希的迷宫](http://acm.hdu.edu.cn/showproblem.php?pid=1272)\n\n## 并查集\n\n- 无回路\n- 单连通\n\n并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成**回路**，则可以判定 No，交了一发错了。  \n想了一下没有考虑到多个连通域的情况，该题必须只有**一个连通域**\n\n## 树的性质\n\n既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\n\n<!--more-->\n\n最后注意空树的情况，至于自环我这里 No 也过了，没有去验证自环 Yes 的情况了\n\n```cpp\n//并查集\n#include<bits/stdc++.h>\nusing namespace std;\n\nint pre[100001];\n\nint find(int root){\n    int son,t;\n    son=root;\n    while(root!=pre[root])\n        root=pre[root];\n    while(son!=root){\n        t=pre[son];\n        pre[son]=root;\n        son=t;\n    }\n    return root;\n}\n\nvoid join(int a,int b){\n    int x=find(a),y=find(b);\n    if(x!=y)\n        pre[y]=x;\n}\n\nint main(){\n    int a,b,flag,i,sum;\n  while(1)\n  {\n    flag = 0;\n    while(~scanf(\"%d%d\",&a,&b) && a!=0 && b!=0){\n      if(a==-1 && b==-1) return 0;\n            if(pre[a]==0)pre[a]=a;\n      if(pre[b]==0)pre[b]=b;\n      if(find(a)==find(b))flag = 1;\n      else if(flag!=1)\n      join(a,b);\n    }\n        for(sum = 0,i=1;i<100001;i++){\n            if(pre[i]==i)sum++;\n            pre[i] = 0;\n        }\n        if(sum>1 || flag == 1)\n      printf(\"No\\n\");\n        else\n      printf(\"Yes\\n\");\n  }\n}\n//1 2 3 4 0 0 No 没有连通\n//0 0 Yes\n//1 1 0 0 No（该代码）\n```\n\n```C\n//树性质\n#include <stdio.h>\nbool s[100001];\nint main()\n{  int a,b,i,len,num,v;\n  for(i=0;i<100001;++i)  s[i]=false;\n  len=0,num=0,v=0;\n  while(1)\n  {  scanf(\"%d%d\",&a,&b);\n    if(a==-1&&b==-1)  break;\n    if(a==0&&b==0)\n    {  if(v==0)\n      {  printf(\"Yes\\n\");\n        continue;\n      }\n      if(num==len-1)  //划重点！！\n        printf(\"Yes\\n\");\n      else printf(\"No\\n\");\n\n      num=len=v=0;\n      for(i=0;i<100001;++i)\n        s[i]=false;\n      continue;\n    }\n    v=1;\n    if(s[a]==false)    len++;//点数\n    if(s[b]==false)    len++;\n    s[a]=s[b]=true;\n    num++;//边数\n  }\n  return 0;\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu1272/  \n\n"
  },
  {
    "path": "posts/hdu3038/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>How Many Answers Are Wrong-Hdu3038（带权并查集） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接：How Many Answers Are Wrong\n思路参考：本题直接参考,图文解释\n\"><meta name=keywords content='并查集,ACM,HDU,C++'><meta itemprop=name content=\"How Many Answers Are Wrong-hdu3038（带权并查集）\"><meta itemprop=description content=\"题目链接：How Many Answers Are Wrong\n思路参考：本题直接参考,图文解释\"><meta itemprop=datePublished content=\"2018-08-01T11:45:53+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"375\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"并查集,acm,HDU,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hdu3038/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"How Many Answers Are Wrong-hdu3038（带权并查集）\"><meta property=\"og:description\" content=\"题目链接：How Many Answers Are Wrong\n思路参考：本题直接参考,图文解释\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-01T11:45:53+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"How Many Answers Are Wrong-hdu3038（带权并查集）\"><meta name=twitter:description content=\"题目链接：How Many Answers Are Wrong\n思路参考：本题直接参考,图文解释\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hdu3038/ title=\"How Many Answers Are Wrong-hdu3038（带权并查集） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/codeforces680b/ title=\"Bear and Finding Criminals-Codeforces680B\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu1272/ title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hdu3038/index.md title=\"How Many Answers Are Wrong-hdu3038（带权并查集） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu3038\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"并查集, ACM, HDU, C\\u002b\\u002b\",\"wordcount\":375,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hdu3038\\/\",\"datePublished\":\"2018-08-01T11:45:53+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hdu3038/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>How Many Answers Are Wrong-Hdu3038（带权并查集）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>How Many Answers Are Wrong-Hdu3038（带权并查集）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-01 11:45:53\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-01>2018-08-01</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"375 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=_blank rel=\"external nofollow noopener noreferrer\">How Many Answers Are Wrong<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>思路参考：<a href=https://blog.csdn.net/duan_1998/article/details/70196576 target=_blank rel=\"external nofollow noopener noreferrer\">本题直接参考<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>,<a href=https://blog.csdn.net/dextrad_ihacker/article/details/51016017 target=_blank rel=\"external nofollow noopener noreferrer\">图文解释<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=kt>long</span> <span class=kt>long</span> <span class=n>LL</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>200010</span><span class=p>],</span><span class=n>ranks</span><span class=p>[</span><span class=mi>200010</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>]</span> <span class=o>!=</span> <span class=n>root</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>f</span> <span class=o>=</span> <span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>]</span> <span class=o>=</span> <span class=n>find</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>]);</span><span class=c1>//递归路径压缩\n</span></span></span><span class=line><span class=cl>        <span class=n>ranks</span><span class=p>[</span><span class=n>root</span><span class=p>]</span> <span class=o>+=</span> <span class=n>ranks</span><span class=p>[</span><span class=n>f</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=cm>/*精髓假如一开始没关系，那么用 rank 数组来表示 a，b 各自到各自祖先的距离。\n</span></span></span><span class=line><span class=cl><span class=cm>        那么在把 a 的祖先给 b 的祖先当父亲之后，那么 b 到祖先的距离也就是 rank[b] 就要再加上 b 原本的祖先到 a 的祖先的距离，更新一下，\n</span></span></span><span class=line><span class=cl><span class=cm>        其中 find 函数（找根节点的函数）里 rank[x]+=rank[pre[x]]（这里 pre 数组存的是对应数的父节点）*/</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>~</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>ans</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>ranks</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>ranks</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=k>while</span><span class=p>(</span><span class=n>m</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>c</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>a</span><span class=o>--</span><span class=p>;</span><span class=c1>//[a,b]~~(a--,b]\n</span></span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>fa</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>a</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>fb</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>b</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>fa</span><span class=o>!=</span><span class=n>fb</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=n>pre</span><span class=p>[</span><span class=n>fb</span><span class=p>]</span><span class=o>=</span><span class=n>fa</span><span class=p>;</span><span class=c1>//注意合并顺序，反过来下面的也要改\n</span></span></span><span class=line><span class=cl>                <span class=n>ranks</span><span class=p>[</span><span class=n>fb</span><span class=p>]</span><span class=o>=</span><span class=n>ranks</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>-</span><span class=n>ranks</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>+</span><span class=n>c</span><span class=p>;</span><span class=c1>//更新距离\n</span></span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>ranks</span><span class=p>[</span><span class=n>b</span><span class=p>]</span><span class=o>-</span><span class=n>ranks</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>!=</span><span class=n>c</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                    <span class=n>ans</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hdu3038/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu3038.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hdu3038.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20How+Many+Answers+Are+Wrong-hdu3038%EF%BC%88%E5%B8%A6%E6%9D%83%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHow+Many+Answers+Are+Wrong-hdu3038%EF%BC%88%E5%B8%A6%E6%9D%83%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hdu3038/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hdu3038.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hdu3038/ data-title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\" data-hashtags=并查集,ACM,HDU,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hdu3038/ data-hashtag=并查集><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hdu3038/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hdu3038/ data-title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hdu3038/ data-title=\"How Many Answers Are Wrong-Hdu3038（带权并查集）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/codeforces680b/ class=post-nav-item rel=prev title=\"Bear and Finding Criminals-Codeforces680B\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Bear and Finding Criminals-Codeforces680B</a><a href=/posts/hdu1272/ class=post-nav-item rel=next title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\">小希的迷宫-HDU-1272（并查集 or 树性质）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/48d418b2e265ac04d276e23fb980bbd6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/48d418b2e265ac04d276e23fb980bbd6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hdu3038/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hdu3038/index.md",
    "content": "# How Many Answers Are Wrong-Hdu3038（带权并查集）\n\n\n题目链接：[How Many Answers Are Wrong](http://acm.hdu.edu.cn/showproblem.php?pid=3038)  \n思路参考：[本题直接参考](https://blog.csdn.net/duan_1998/article/details/70196576),[图文解释](https://blog.csdn.net/dextrad_ihacker/article/details/51016017)\n\n<!--more-->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\ntypedef long long LL;\nint pre[200010],ranks[200010];\n\nint find(int root){\n    if(pre[root] != root)\n    {\n        int f = pre[root];\n        pre[root] = find(pre[root]);//递归路径压缩\n        ranks[root] += ranks[f];\n        /*精髓假如一开始没关系，那么用 rank 数组来表示 a，b 各自到各自祖先的距离。\n        那么在把 a 的祖先给 b 的祖先当父亲之后，那么 b 到祖先的距离也就是 rank[b] 就要再加上 b 原本的祖先到 a 的祖先的距离，更新一下，\n        其中 find 函数（找根节点的函数）里 rank[x]+=rank[pre[x]]（这里 pre 数组存的是对应数的父节点）*/\n    }\n    return pre[root];\n}\n\nint main(){\n    int n,m;\n    while(~scanf(\"%d%d\",&n,&m)){\n        int ans=0;\n        for(int i=1; i<=n; i++)\n            pre[i]=i;\n        memset(ranks,0,sizeof(ranks));\n        while(m--){\n            int a,b,c;\n            scanf(\"%d%d%d\",&a,&b,&c);\n            a--;//[a,b]~~(a--,b]\n            int fa=find(a);\n            int fb=find(b);\n            if(fa!=fb){\n                pre[fb]=fa;//注意合并顺序，反过来下面的也要改\n                ranks[fb]=ranks[a]-ranks[b]+c;//更新距离\n            }\n            else {\n                if(ranks[b]-ranks[a]!=c)\n                    ans++;\n            }\n        }\n        printf(\"%d\\n\",ans);\n    }\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hdu3038/  \n\n"
  },
  {
    "path": "posts/heart/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>“高逼格”C 语言画心 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\n大一在机房拍的图 \"><meta name=keywords content='C'><meta itemprop=name content=\"“高逼格”C 语言画心\"><meta itemprop=description content=\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\n大一在机房拍的图\"><meta itemprop=datePublished content=\"2018-08-15T16:33:12+08:00\"><meta itemprop=dateModified content=\"2018-08-15T16:33:12+08:00\"><meta itemprop=wordCount content=\"402\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/heart/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"“高逼格”C 语言画心\"><meta property=\"og:description\" content=\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\n大一在机房拍的图\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-15T16:33:12+08:00\"><meta property=\"article:modified_time\" content=\"2018-08-15T16:33:12+08:00\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"“高逼格”C 语言画心\"><meta name=twitter:description content=\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\n大一在机房拍的图\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/heart/ title=\"“高逼格”C 语言画心 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/git-index-lock/ title=\"git index.lock\"><link rel=next type=text/html href=https://lruihao.cn/posts/dongtaisub/ title=\"hexo 个性化 - next 主题动态显示 subtitle\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/heart/index.md title=\"“高逼格”C 语言画心 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"“高逼格”C 语言画心\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/heart\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"C\",\"wordcount\":402,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/heart\\/\",\"datePublished\":\"2018-08-15T16:33:12+08:00\",\"dateModified\":\"2018-08-15T16:33:12+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/heart/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>“高逼格”C 语言画心</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>“高逼格”C 语言画心</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-15 16:33:12\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-15>2018-08-15</time></span>&nbsp;<span title=\"402 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"“高逼格”C 语言画心\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-08-15，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。</p><p><figure><a class=lightgallery target=_blank href=/images/remote/5b8680e407e09_14695341072961183661.gif title=大一在机房拍的图 data-thumbnail=/images/remote/5b8680e407e09_14695341072961183661.gif data-sub-html=\"<h2>截图</h2><p>大一在机房拍的图</p>\"><img loading=lazy src=/images/remote/5b8680e407e09_14695341072961183661.gif alt=截图 height=210 width=210></a><figcaption class=image-caption>大一在机房拍的图</figcaption></figure></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;math.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;windows.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;tchar.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>float</span> <span class=nf>f</span><span class=p>(</span><span class=kt>float</span> <span class=n>x</span><span class=p>,</span> <span class=kt>float</span> <span class=n>y</span><span class=p>,</span> <span class=kt>float</span> <span class=n>z</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>float</span> <span class=n>a</span> <span class=o>=</span> <span class=n>x</span> <span class=o>*</span> <span class=n>x</span> <span class=o>+</span> <span class=mf>9.0f</span> <span class=o>/</span> <span class=mf>4.0f</span> <span class=o>*</span> <span class=n>y</span> <span class=o>*</span> <span class=n>y</span> <span class=o>+</span> <span class=n>z</span> <span class=o>*</span> <span class=n>z</span> <span class=o>-</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>a</span> <span class=o>*</span> <span class=n>a</span> <span class=o>*</span> <span class=n>a</span> <span class=o>-</span> <span class=n>x</span> <span class=o>*</span> <span class=n>x</span> <span class=o>*</span> <span class=n>z</span> <span class=o>*</span> <span class=n>z</span> <span class=o>*</span> <span class=n>z</span> <span class=o>-</span> <span class=mf>9.0f</span> <span class=o>/</span> <span class=mf>80.0f</span> <span class=o>*</span> <span class=n>y</span> <span class=o>*</span> <span class=n>y</span> <span class=o>*</span> <span class=n>z</span> <span class=o>*</span> <span class=n>z</span> <span class=o>*</span> <span class=n>z</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>float</span> <span class=nf>h</span><span class=p>(</span><span class=kt>float</span> <span class=n>x</span><span class=p>,</span> <span class=kt>float</span> <span class=n>z</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>float</span> <span class=n>y</span> <span class=o>=</span> <span class=mf>1.0f</span><span class=p>;</span> <span class=n>y</span> <span class=o>&gt;=</span> <span class=mf>0.0f</span><span class=p>;</span> <span class=n>y</span> <span class=o>-=</span> <span class=mf>0.001f</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nf>f</span><span class=p>(</span><span class=n>x</span><span class=p>,</span> <span class=n>y</span><span class=p>,</span> <span class=n>z</span><span class=p>)</span> <span class=o>&lt;=</span> <span class=mf>0.0f</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mf>0.0f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>HANDLE</span> <span class=n>o</span> <span class=o>=</span> <span class=nf>GetStdHandle</span><span class=p>(</span><span class=n>STD_OUTPUT_HANDLE</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>_TCHAR</span> <span class=n>buffer</span><span class=p>[</span><span class=mi>25</span><span class=p>][</span><span class=mi>80</span><span class=p>]</span> <span class=o>=</span> <span class=p>{</span> <span class=nf>_T</span><span class=p>(</span><span class=sc>&#39; &#39;</span><span class=p>)</span> <span class=p>};</span>\n</span></span><span class=line><span class=cl>    <span class=n>_TCHAR</span> <span class=n>ramp</span><span class=p>[]</span> <span class=o>=</span> <span class=nf>_T</span><span class=p>(</span><span class=s>&#34;.:-=+*#%@&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>float</span> <span class=n>t</span> <span class=o>=</span> <span class=mf>0.0f</span><span class=p>;;</span> <span class=n>t</span> <span class=o>+=</span> <span class=mf>0.1f</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>sy</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kt>float</span> <span class=n>s</span> <span class=o>=</span> <span class=nf>sinf</span><span class=p>(</span><span class=n>t</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=kt>float</span> <span class=n>a</span> <span class=o>=</span> <span class=n>s</span> <span class=o>*</span> <span class=n>s</span> <span class=o>*</span> <span class=n>s</span> <span class=o>*</span> <span class=n>s</span> <span class=o>*</span> <span class=mf>0.2f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=kt>float</span> <span class=n>z</span> <span class=o>=</span> <span class=mf>1.3f</span><span class=p>;</span> <span class=n>z</span> <span class=o>&gt;</span> <span class=o>-</span><span class=mf>1.2f</span><span class=p>;</span> <span class=n>z</span> <span class=o>-=</span> <span class=mf>0.1f</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>_TCHAR</span><span class=o>*</span> <span class=n>p</span> <span class=o>=</span> <span class=o>&amp;</span><span class=n>buffer</span><span class=p>[</span><span class=n>sy</span><span class=o>++</span><span class=p>][</span><span class=mi>0</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=kt>float</span> <span class=n>tz</span> <span class=o>=</span> <span class=n>z</span> <span class=o>*</span> <span class=p>(</span><span class=mf>1.2f</span> <span class=o>-</span> <span class=n>a</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span> <span class=p>(</span><span class=kt>float</span> <span class=n>x</span> <span class=o>=</span> <span class=o>-</span><span class=mf>1.5f</span><span class=p>;</span> <span class=n>x</span> <span class=o>&lt;</span> <span class=mf>1.5f</span><span class=p>;</span> <span class=n>x</span> <span class=o>+=</span> <span class=mf>0.05f</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=kt>float</span> <span class=n>tx</span> <span class=o>=</span> <span class=n>x</span> <span class=o>*</span> <span class=p>(</span><span class=mf>1.2f</span> <span class=o>+</span> <span class=n>a</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                <span class=kt>float</span> <span class=n>v</span> <span class=o>=</span> <span class=nf>f</span><span class=p>(</span><span class=n>tx</span><span class=p>,</span> <span class=mf>0.0f</span><span class=p>,</span> <span class=n>tz</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span> <span class=p>(</span><span class=n>v</span> <span class=o>&lt;=</span> <span class=mf>0.0f</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>y0</span> <span class=o>=</span> <span class=nf>h</span><span class=p>(</span><span class=n>tx</span><span class=p>,</span> <span class=n>tz</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>ny</span> <span class=o>=</span> <span class=mf>0.01f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>nx</span> <span class=o>=</span> <span class=nf>h</span><span class=p>(</span><span class=n>tx</span> <span class=o>+</span> <span class=n>ny</span><span class=p>,</span> <span class=n>tz</span><span class=p>)</span> <span class=o>-</span> <span class=n>y0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>nz</span> <span class=o>=</span> <span class=nf>h</span><span class=p>(</span><span class=n>tx</span><span class=p>,</span> <span class=n>tz</span> <span class=o>+</span> <span class=n>ny</span><span class=p>)</span> <span class=o>-</span> <span class=n>y0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>nd</span> <span class=o>=</span> <span class=mf>1.0f</span> <span class=o>/</span> <span class=nf>sqrtf</span><span class=p>(</span><span class=n>nx</span> <span class=o>*</span> <span class=n>nx</span> <span class=o>+</span> <span class=n>ny</span> <span class=o>*</span> <span class=n>ny</span> <span class=o>+</span> <span class=n>nz</span> <span class=o>*</span> <span class=n>nz</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>                    <span class=kt>float</span> <span class=n>d</span> <span class=o>=</span> <span class=p>(</span><span class=n>nx</span> <span class=o>+</span> <span class=n>ny</span> <span class=o>-</span> <span class=n>nz</span><span class=p>)</span> <span class=o>*</span> <span class=n>nd</span> <span class=o>*</span> <span class=mf>0.5f</span> <span class=o>+</span> <span class=mf>0.5f</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=o>*</span><span class=n>p</span><span class=o>++</span> <span class=o>=</span> <span class=n>ramp</span><span class=p>[(</span><span class=kt>int</span><span class=p>)(</span><span class=n>d</span> <span class=o>*</span> <span class=mf>5.0f</span><span class=p>)];</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>                <span class=k>else</span>\n</span></span><span class=line><span class=cl>                    <span class=o>*</span><span class=n>p</span><span class=o>++</span> <span class=o>=</span> <span class=sc>&#39; &#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=n>sy</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>sy</span> <span class=o>&lt;</span> <span class=mi>25</span><span class=p>;</span> <span class=n>sy</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>COORD</span> <span class=n>coord</span> <span class=o>=</span> <span class=p>{</span> <span class=mi>0</span><span class=p>,</span> <span class=n>sy</span> <span class=p>};</span>\n</span></span><span class=line><span class=cl>            <span class=nf>SetConsoleCursorPosition</span><span class=p>(</span><span class=n>o</span><span class=p>,</span> <span class=n>coord</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=nf>WriteConsole</span><span class=p>(</span><span class=n>o</span><span class=p>,</span> <span class=n>buffer</span><span class=p>[</span><span class=n>sy</span><span class=p>],</span> <span class=mi>79</span><span class=p>,</span> <span class=nb>NULL</span><span class=p>,</span> <span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=nf>Sleep</span><span class=p>(</span><span class=mi>33</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=/posts/heart/heart.zip>exe 文件下载 <i class=\"fa-solid fa-download\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-08-15 16:33:12\">更新于 2018-08-15&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/heart/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/heart/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/heart/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E2%80%9C%E9%AB%98%E9%80%BC%E6%A0%BC%E2%80%9DC+%E8%AF%AD%E8%A8%80%E7%94%BB%E5%BF%83&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E2%80%9C%E9%AB%98%E9%80%BC%E6%A0%BC%E2%80%9DC+%E8%AF%AD%E8%A8%80%E7%94%BB%E5%BF%83%7c%0A%7cURL%7chttps://lruihao.cn/posts/heart/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/heart/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/heart/ data-title=\"“高逼格”C 语言画心\" data-hashtags=C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/heart/ data-hashtag=C><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/heart/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/heart/ data-title=\"“高逼格”C 语言画心\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/heart/ data-title=\"“高逼格”C 语言画心\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/git-index-lock/ class=post-nav-item rel=prev title=\"Git Index.lock\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Git Index.lock</a><a href=/posts/dongtaisub/ class=post-nav-item rel=next title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\">Hexo 个性化 - Next 主题动态显示 Subtitle<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cadb06d453c2085804acba60a7196e5d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cadb06d453c2085804acba60a7196e5d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/heart/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/heart/index.md",
    "content": "# “高逼格”C 语言画心\n\n\n七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\n\n![截图](https://i.loli.net/2018/08/29/5b8680e407e09.gif '大一在机房拍的图')\n\n<!--more-->\n\n```c\n#include <stdio.h>\n#include <math.h>\n#include <windows.h>\n#include <tchar.h>\n\nfloat f(float x, float y, float z) {\n    float a = x * x + 9.0f / 4.0f * y * y + z * z - 1;\n    return a * a * a - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * z;\n}\n\nfloat h(float x, float z) {\n    for (float y = 1.0f; y >= 0.0f; y -= 0.001f)\n        if (f(x, y, z) <= 0.0f)\n            return y;\n    return 0.0f;\n}\n\nint main() {\n    HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE);\n    _TCHAR buffer[25][80] = { _T(' ') };\n    _TCHAR ramp[] = _T(\".:-=+*#%@\");\n\n    for (float t = 0.0f;; t += 0.1f) {\n        int sy = 0;\n        float s = sinf(t);\n        float a = s * s * s * s * 0.2f;\n        for (float z = 1.3f; z > -1.2f; z -= 0.1f) {\n            _TCHAR* p = &buffer[sy++][0];\n            float tz = z * (1.2f - a);\n            for (float x = -1.5f; x < 1.5f; x += 0.05f) {\n                float tx = x * (1.2f + a);\n                float v = f(tx, 0.0f, tz);\n                if (v <= 0.0f) {\n                    float y0 = h(tx, tz);\n                    float ny = 0.01f;\n                    float nx = h(tx + ny, tz) - y0;\n                    float nz = h(tx, tz + ny) - y0;\n                    float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz);\n                    float d = (nx + ny - nz) * nd * 0.5f + 0.5f;\n                    *p++ = ramp[(int)(d * 5.0f)];\n                }\n                else\n                    *p++ = ' ';\n            }\n        }\n\n        for (sy = 0; sy < 25; sy++) {\n            COORD coord = { 0, sy };\n            SetConsoleCursorPosition(o, coord);\n            WriteConsole(o, buffer[sy], 79, NULL, 0);\n        }\n        Sleep(33);\n    }\n}\n```\n\n[exe 文件下载 :(fa-solid fa-download):](heart.zip)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/heart/  \n\n"
  },
  {
    "path": "posts/hello-world/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hello World | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\n其實也不重要了，還望披荊斬棘，不改初心。\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\n\"><meta name=keywords content='随笔'><meta itemprop=name content=\"Hello World\"><meta itemprop=description content=\"“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\n其實也不重要了，還望披荊斬棘，不改初心。\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\"><meta itemprop=datePublished content=\"2018-05-28T20:01:01+08:00\"><meta itemprop=dateModified content=\"2024-07-28T22:39:47+08:00\"><meta itemprop=wordCount content=\"532\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hello-world/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hello World\"><meta property=\"og:description\" content=\"“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\n其實也不重要了，還望披荊斬棘，不改初心。\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-05-28T20:01:01+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-28T22:39:47+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hello World\"><meta name=twitter:description content=\"“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\n其實也不重要了，還望披荊斬棘，不改初心。\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hello-world/ title=\"Hello World | 菠菜眾長\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/lruihao.github.io/ title=\"博客构建档（HTML & Markdown）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hello-world/index.md title=\"Hello World | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hello World\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hello-world\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔\",\"wordcount\":532,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hello-world\\/\",\"datePublished\":\"2018-05-28T20:01:01+08:00\",\"dateModified\":\"2024-07-28T22:39:47+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hello-world/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hello World</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hello World</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">I&rsquo;m coming!</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-05-28 20:01:01\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-05-28>2018-05-28</time></span>&nbsp;<span title=\"更新于 2024-07-28 22:39:47\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-28>2024-07-28</time></span>&nbsp;<span title=\"532 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hello World\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”</p></blockquote><p>我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，<br>其實也不重要了，還望披荊斬棘，不改初心。</p><p>不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！</p><p>從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。</p><p>時間並不會因為你的迷茫和遲疑而停留，就像你在看到這篇博客的時候，不知道有多少人正風雨兼程趕赴夢想。沒有誰生來就是神牛，千裏之行，始於足下！比自己優秀的人有很多，永遠不要感動自己，保持謙遜，沉澱自己，感謝每一個曾經努力的自己。不必執著於過去，也不必過度擔憂未來，望披荊斬棘，不忘初心。</p><p>最開始寫博客，是在打 ACM 的時候，深受一個學長的博客影響，他的博客是 hexo 搭建的，ID 是 [<code>戎碼一生</code>]，所以我也照葫蘆畫瓢用 hexo 搭建了一個，一用就是 3 年，博客名字原“<code>博採眾長</code>”改为“<code>菠菜眾長</code>”，因為不能用成語作為網站名字，就這個原因。</p><p>直到 21 年下半年，升級 Windows 11, 系統出了 BUG, 整理磁盤不小心把代碼刪掉了，就乾脆換成 hugo 了。</p><p><figure><a class=lightgallery target=_blank href=/posts/hello-world/images/lunyu.jpg title=逝者如斯乎，不舍昼夜 data-thumbnail=/posts/hello-world/images/lunyu.jpg data-sub-html=\"<h2>現在並沒有刀槍入庫，馬放南山，衹是在奔赴另一片山海</h2><p>逝者如斯乎，不舍昼夜</p>\"><img loading=lazy src=/posts/hello-world/images/lunyu.jpg alt=現在並沒有刀槍入庫，馬放南山，衹是在奔赴另一片山海 height=1050 width=1680></a><figcaption class=image-caption>逝者如斯乎，不舍昼夜</figcaption></figure></p><meting-js url=https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3 name=李志 artist=你离开了南京，从此没人和我说话 cover=\"https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\" theme=#448aff fixed=true></meting-js></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-28 22:39:47\">更新于 2024-07-28&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ad1fa77a5cea5f6a080083ed1ce67d067ec7d117 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 更新关于页面&#10&#10Commit: ad1fa77a5cea5f6a080083ed1ce67d067ec7d117 [ad1fa77]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-28 22:39:47&#10Commit Date: 2024-07-28 22:45:17\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ad1fa77</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hello-world/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/hello-world/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/hello-world/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hello+World&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHello+World%7c%0A%7cURL%7chttps://lruihao.cn/posts/hello-world/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/hello-world/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hello-world/ data-title=\"Hello World\" data-hashtags=随笔><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hello-world/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hello-world/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hello-world/ data-title=\"Hello World\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hello-world/ data-title=\"Hello World\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/lruihao.github.io/ class=post-nav-item rel=next title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css></noscript><link rel=stylesheet href=/lib/aplayer/dark.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.js defer></script><script src=https://unpkg.com/meting@2.0.1/dist/Meting.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6764dc15ea7b8ee22c2266fbedf1629e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6764dc15ea7b8ee22c2266fbedf1629e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hello-world/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hello-world/index.md",
    "content": "# Hello World\n\n\n> “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\n\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，  \n其實也不重要了，還望披荊斬棘，不改初心。\n\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\n\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\n\n時間並不會因為你的迷茫和遲疑而停留，就像你在看到這篇博客的時候，不知道有多少人正風雨兼程趕赴夢想。沒有誰生來就是神牛，千裏之行，始於足下！比自己優秀的人有很多，永遠不要感動自己，保持謙遜，沉澱自己，感謝每一個曾經努力的自己。不必執著於過去，也不必過度擔憂未來，望披荊斬棘，不忘初心。\n\n最開始寫博客，是在打 ACM 的時候，深受一個學長的博客影響，他的博客是 hexo 搭建的，ID 是 [`戎碼一生`]，所以我也照葫蘆畫瓢用 hexo 搭建了一個，一用就是 3 年，博客名字原“`博採眾長`”改为“`菠菜眾長`”，因為不能用成語作為網站名字，就這個原因。\n\n直到 21 年下半年，升級 Windows 11, 系統出了 BUG, 整理磁盤不小心把代碼刪掉了，就乾脆換成 hugo 了。\n\n![現在並沒有刀槍入庫，馬放南山，衹是在奔赴另一片山海](images/lunyu.jpg '逝者如斯乎，不舍昼夜')\n\n{{< music url=\"https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3\" name=\"李志\" artist=\"你离开了南京，从此没人和我说话\" cover=\"https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\" fixed=true >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hello-world/  \n\n"
  },
  {
    "path": "posts/hellojava/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>用记事本编写第一个 Java 程序 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\njavac java \"><meta name=keywords content='Java'><meta itemprop=name content=\"用记事本编写第一个 java 程序\"><meta itemprop=description content=\"之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\njavac java\"><meta itemprop=datePublished content=\"2019-04-19T19:49:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"269\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hellojava/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"用记事本编写第一个 java 程序\"><meta property=\"og:description\" content=\"之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\njavac java\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-19T19:49:54+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"用记事本编写第一个 java 程序\"><meta name=twitter:description content=\"之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\njavac java\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hellojava/ title=\"用记事本编写第一个 java 程序 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/java-regex/ title=\"java 正则表达式练习\"><link rel=next type=text/html href=https://lruihao.cn/posts/wximgpy/ title=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hellojava/index.md title=\"用记事本编写第一个 java 程序 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"用记事本编写第一个 java 程序\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hellojava\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":269,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hellojava\\/\",\"datePublished\":\"2019-04-19T19:49:54+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hellojava/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>用记事本编写第一个 Java 程序</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>用记事本编写第一个 Java 程序</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-19 19:49:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-19>2019-04-19</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"269 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"用记事本编写第一个 Java 程序\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#编写-java>编写 java</a></li><li><a href=#打开-cmd>打开 cmd</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以<code>.java</code>为后缀的文件；然后将这些源程序用<code>javac</code>编译成<code>.class</code>后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。<br>由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。</p></blockquote><ul><li>javac</li><li>java</li></ul><p><a class=lightgallery target=_blank href=/posts/hellojava/images/2.png title=hello data-thumbnail=/posts/hellojava/images/2.png data-sub-html=\"<h2>hello</h2>\"><img loading=lazy src=/posts/hellojava/images/2.png alt=hello height=391 width=1155></a></p><h2 class=heading-element id=编写-java><span>1 编写 java</span>\n<a href=#%e7%bc%96%e5%86%99-java class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>用记事本编辑 java 文件，并且把后缀改成<code>.java</code>，文件名和类名要一样。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>HelloWorld</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;Hello World!&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=打开-cmd><span>2 打开 cmd</span>\n<a href=#%e6%89%93%e5%bc%80-cmd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/hellojava/images/1.png title=cmd data-thumbnail=/posts/hellojava/images/1.png data-sub-html=\"<h2>cmd</h2>\"><img loading=lazy src=/posts/hellojava/images/1.png alt=cmd height=639 width=1223></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hellojava/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/hellojava/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/hellojava/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%94%A8%E8%AE%B0%E4%BA%8B%E6%9C%AC%E7%BC%96%E5%86%99%E7%AC%AC%E4%B8%80%E4%B8%AA+java+%E7%A8%8B%E5%BA%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%94%A8%E8%AE%B0%E4%BA%8B%E6%9C%AC%E7%BC%96%E5%86%99%E7%AC%AC%E4%B8%80%E4%B8%AA+java+%E7%A8%8B%E5%BA%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/hellojava/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/hellojava/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hellojava/ data-title=\"用记事本编写第一个 Java 程序\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hellojava/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hellojava/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hellojava/ data-title=\"用记事本编写第一个 Java 程序\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hellojava/ data-title=\"用记事本编写第一个 Java 程序\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/java-regex/ class=post-nav-item rel=prev title=\"Java 正则表达式练习\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 正则表达式练习</a><a href=/posts/wximgpy/ class=post-nav-item rel=next title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\">基本 Python 实现的爬取微信好友头像，并拼接成大图<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#编写-java>编写 java</a></li><li><a href=#打开-cmd>打开 cmd</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2c7c25806c1b020cadf6f63e0962305f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2c7c25806c1b020cadf6f63e0962305f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hellojava/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hellojava/index.md",
    "content": "# 用记事本编写第一个 Java 程序\n\n\n> 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以`.java`为后缀的文件；然后将这些源程序用`javac`编译成`.class`后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。  \n> 由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\n\n- javac\n- java\n\n<!--more-->\n\n![hello](images/2.png)\n\n## 编写 java\n\n用记事本编辑 java 文件，并且把后缀改成`.java`，文件名和类名要一样。\n\n```java\npublic class HelloWorld{\n  public static void main(String[] args){\n    System.out.println(\"Hello World!\");\n  }\n}\n```\n\n## 打开 cmd\n\n![cmd](images/1.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hellojava/  \n\n"
  },
  {
    "path": "posts/hexo-d-error/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo D 出错 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录，防止以后出错用。\n错误如下\n\"><meta name=keywords content='Hexo'><meta itemprop=name content=\"hexo d 出错\"><meta itemprop=description content=\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录，防止以后出错用。\n错误如下\"><meta itemprop=datePublished content=\"2018-08-21T22:15:01+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"262\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexo-d-error/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo d 出错\"><meta property=\"og:description\" content=\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录，防止以后出错用。\n错误如下\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-21T22:15:01+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo d 出错\"><meta name=twitter:description content=\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录，防止以后出错用。\n错误如下\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexo-d-error/ title=\"hexo d 出错 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dongtaisub/ title=\"hexo 个性化 - next 主题动态显示 subtitle\"><link rel=next type=text/html href=https://lruihao.cn/posts/hexo-wordcount/ title=\"hexo next 主题添加字数统计（2018）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexo-d-error/index.md title=\"hexo d 出错 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo d 出错\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-d-error\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo\",\"wordcount\":262,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-d-error\\/\",\"datePublished\":\"2018-08-21T22:15:01+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexo-d-error/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo D 出错</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo D 出错</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-21 22:15:01\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-21>2018-08-21</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"262 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo D 出错\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。<br>现在做一下记录，防止以后出错用。<br>错误如下</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>Connection reset by 13.229.188.59 port <span class=m>22</span>\n</span></span><span class=line><span class=cl>fatal: sha1 file <span class=s1>&#39;&lt;stdout&gt;&#39;</span> write error: Broken pipe\n</span></span><span class=line><span class=cl>fatal: The remote end hung up unexpectedly\n</span></span><span class=line><span class=cl>FATAL Something<span class=s1>&#39;s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html\n</span></span></span><span class=line><span class=cl><span class=s1>Error: Connection reset by 13.229.188.59 port 22\n</span></span></span><span class=line><span class=cl><span class=s1>fatal: sha1 file &#39;</span>&lt;stdout&gt;<span class=err>&#39;</span> write error: Broken pipe\n</span></span><span class=line><span class=cl>fatal: The remote end hung up unexpectedly\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>at ChildProcess.&lt;anonymous&gt; <span class=o>(</span>H:<span class=se>\\H</span>exo<span class=se>\\n</span>ode_modules<span class=se>\\h</span>exo-util<span class=se>\\l</span>ib<span class=se>\\s</span>pawn.js:37:17<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at emitTwo <span class=o>(</span>events.js:106:13<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at ChildProcess.emit <span class=o>(</span>events.js:191:7<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at ChildProcess.cp.emit <span class=o>(</span>H:<span class=se>\\H</span>exo<span class=se>\\n</span>ode_modules<span class=se>\\c</span>ross-spawn<span class=se>\\l</span>ib<span class=se>\\e</span>noent.js:40:29<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at maybeClose <span class=o>(</span>internal/child_process.js:850:16<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at Socket.&lt;anonymous&gt; <span class=o>(</span>internal/child_process.js:323:11<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at emitOne <span class=o>(</span>events.js:96:13<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at Socket.emit <span class=o>(</span>events.js:188:7<span class=o>)</span>\n</span></span><span class=line><span class=cl>    at Pipe._handle.close <span class=o>[</span>as _onclose<span class=o>]</span> <span class=o>(</span>net.js:492:12<span class=o>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>...</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>确保 ssh 正常，hexo-deploy-git 插件正常的情况下删除。deploy_git 文件夹就好了。\n最后吐槽一下，这个鬼错误，搞我一晚上醉了。我又打算重装了的。/吐血</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexo-d-error/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-d-error.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexo-d-error.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+d+%E5%87%BA%E9%94%99&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+d+%E5%87%BA%E9%94%99%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexo-d-error/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-d-error.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexo-d-error/ data-title=\"Hexo D 出错\" data-hashtags=Hexo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexo-d-error/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexo-d-error/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexo-d-error/ data-title=\"Hexo D 出错\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexo-d-error/ data-title=\"Hexo D 出错\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dongtaisub/ class=post-nav-item rel=prev title=\"Hexo 个性化 - Next 主题动态显示 Subtitle\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo 个性化 - Next 主题动态显示 Subtitle</a><a href=/posts/hexo-wordcount/ class=post-nav-item rel=next title=\"Hexo Next 主题添加字数统计（2018）\">Hexo Next 主题添加字数统计（2018）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/88d5bebdacaa8043d0726fa84dbfc257.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/88d5bebdacaa8043d0726fa84dbfc257.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexo-d-error/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexo-d-error/index.md",
    "content": "# Hexo D 出错\n\n\n搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。  \n现在做一下记录，防止以后出错用。  \n错误如下\n\n<!--more-->\n\n```bash\nConnection reset by 13.229.188.59 port 22\nfatal: sha1 file '<stdout>' write error: Broken pipe\nfatal: The remote end hung up unexpectedly\nFATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html\nError: Connection reset by 13.229.188.59 port 22\nfatal: sha1 file '<stdout>' write error: Broken pipe\nfatal: The remote end hung up unexpectedly\n\nat ChildProcess.<anonymous> (H:\\Hexo\\node_modules\\hexo-util\\lib\\spawn.js:37:17)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at ChildProcess.cp.emit (H:\\Hexo\\node_modules\\cross-spawn\\lib\\enoent.js:40:29)\n    at maybeClose (internal/child_process.js:850:16)\n    at Socket.<anonymous> (internal/child_process.js:323:11)\n    at emitOne (events.js:96:13)\n    at Socket.emit (events.js:188:7)\n    at Pipe._handle.close [as _onclose] (net.js:492:12)\n\n...\n```\n\n确保 ssh 正常，hexo-deploy-git 插件正常的情况下删除。deploy_git 文件夹就好了。\n最后吐槽一下，这个鬼错误，搞我一晚上醉了。我又打算重装了的。/吐血\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexo-d-error/  \n\n"
  },
  {
    "path": "posts/hexo-theme-next/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo-Theme-Next @Modified LRH | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\"><meta name=keywords content='Hexo,Node.js,他山之石'><meta itemprop=name content=\"hexo-theme-next @modified LRH\"><meta itemprop=description content=\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\"><meta itemprop=datePublished content=\"2019-03-21T16:43:19+08:00\"><meta itemprop=dateModified content=\"2019-09-13T16:43:19+08:00\"><meta itemprop=wordCount content=\"2662\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,Node.js,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexo-theme-next/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo-theme-next @modified LRH\"><meta property=\"og:description\" content=\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-21T16:43:19+08:00\"><meta property=\"article:modified_time\" content=\"2019-09-13T16:43:19+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo-theme-next @modified LRH\"><meta name=twitter:description content=\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexo-theme-next/ title=\"hexo-theme-next @modified LRH | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/substatus/ title=\"Java 父类子类的对象初始化过程\"><link rel=next type=text/html href=https://lruihao.cn/posts/http2https/ title=\"vps 配置 ssl 及 https 重定向\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexo-theme-next/index.md title=\"hexo-theme-next @modified LRH | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo-theme-next @modified LRH\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-theme-next\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, Node.js, 他山之石\",\"wordcount\":2662,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-theme-next\\/\",\"datePublished\":\"2019-03-21T16:43:19+08:00\",\"dateModified\":\"2019-09-13T16:43:19+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexo-theme-next/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo-Theme-Next @Modified LRH</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo-Theme-Next @Modified LRH</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-21 16:43:19\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-21>2019-03-21</time></span>&nbsp;<span title=\"更新于 2019-09-13 16:43:19\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2019-09-13>2019-09-13</time></span>&nbsp;<span title=\"2662 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 6 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo-Theme-Next @Modified LRH\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/hexo-theme-next/images/next.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/hexo-theme-next/images/next.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#初步安装>初步安装</a></li><li><a href=#更新内容>更新内容</a><ol><li><a href=#links-模板>links 模板</a></li><li><a href=#备案信息自定义>备案信息自定义</a></li><li><a href=#文字抖动特效>文字抖动特效</a></li><li><a href=#左下角微信公众号>左下角微信公众号</a></li><li><a href=#相关文章收纳>相关文章收纳</a></li><li><a href=#chat-services>Chat Services</a></li><li><a href=#pdf-和-mermaid-解析模块>pdf 和 Mermaid 解析模块</a></li><li><a href=#模仿-csdn-转发样式>模仿 csdn 转发样式</a></li><li><a href=#热度页面>热度页面</a></li><li><a href=#复制按钮样式>复制按钮样式</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2019-09-13，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition danger open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-bolt\" aria-hidden=true></i>危险<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><span style=color:#d9534f;font-size:1.2em><strong>如无必要，不再更新！（2019.09.13）</strong></span><br>今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将<strong>放弃对 next 的主题的自定义修改</strong>，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。<br>我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。<br>以下仍为当前博客使用主题，lib 资源已打包 github。</div></div></div><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>next<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>基于 <a href=https://github.com/theme-next/hexo-theme-next target=_blank rel=\"external nofollow noopener noreferrer\">hexo-theme-next 6.0+<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的 Pisces 模板做的 DIY 扩展性设计（部分兼容 next 其他几种模板）。主要是一些 custom style 还有一些第三方的 js。修改的地方太多也有点小乱就不提 PR 了。<br><a href=https://github.com/Lruihao/hexo-theme-next target=_blank rel=\"external nofollow noopener noreferrer\">modified<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>  官方 Demo => <a href=https://theme-next.org target=_blank rel=\"external nofollow noopener noreferrer\">https://theme-next.org<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>记录一下折腾过程，以后备份恢复博客也好方便自己。本文之前的美化修改请见 <a href=/tags/hexo/>hexo 标签</a>。<br><strong>主题中若有遗漏第三方插件或应用的 key 及 id 值等请修改为自己对应的值</strong></div></div></div><p>主要的几个自定义文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>_config.swig                                 #主题配置文件 相关账户信息自己注册替换\n</span></span><span class=line><span class=cl>\\layout\\custom\\head.swig                     #在头部自定义加入标签\n</span></span><span class=line><span class=cl>\\layout\\custom\\google_adsense.swig           #谷歌广告模块，内有注释暂时弃用\n</span></span><span class=line><span class=cl>\\layout\\_layout.swig                         #主布局\n</span></span><span class=line><span class=cl>\\layout\\_macro\\post.swig                     #文章布局\n</span></span><span class=line><span class=cl>\\layout\\_macro\\post-copyright.swig           #文章版权\n</span></span><span class=line><span class=cl>\\layout\\_macro\\siderbar.swig                 #侧栏模板\n</span></span><span class=line><span class=cl>\\layout\\_third-party\\copy-code.swig          #复制按钮\n</span></span><span class=line><span class=cl>\\layout\\_partials\\comments.swig              #评论主模板\n</span></span><span class=line><span class=cl>\\layout\\_partials\\footer.swig                #底部模板#该模块在 layout.swig 引入，用于在 body 自定义标签\n</span></span><span class=line><span class=cl>\\layout\\_partials\\footer_custom.swig         #footer 自定义文件\n</span></span><span class=line><span class=cl>\\layout\\_third-party\\custom.swig             #该模块在 layout.swig 引入用于在 body 自定义标签\n</span></span><span class=line><span class=cl>\\source\\css\\_custom\\customs.styl             #主要用户自定义样式表\n</span></span><span class=line><span class=cl>\\source\\fonts\\                               #引入了一些我的手写体及外部字体\n</span></span><span class=line><span class=cl>\\scripts\\qcloudcdn.js                        #腾讯云 cos 桶刷新缓存的脚本，不需要可删掉 [^1]</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://lruihao.cn/posts/cos-hexo.html#CDN%E5%88%B7%E6%96%B0 target=_blank rel=\"external nofollow noopener noreferrer\">^1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=初步安装><span>1 初步安装</span>\n<a href=#%e5%88%9d%e6%ad%a5%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>安装整个改过的主题，然后下载相应的 lib 资源解压放入 source 文件夹</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> hexo\n</span></span><span class=line><span class=cl>git clone https://github.com/Lruihao/hexo-theme-next themes/next</span></span></code></pre></td></tr></table></div></div></div><p>主题配置文件<code>_config.yml</code>, 选择主题</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-text\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-text data-lang=text><span class=line><span class=cl>theme: next</span></span></code></pre></td></tr></table></div></div></div><a href=http://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1 target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>lib 下载</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><p><a class=lightgallery target=_blank href=/posts/hexo-theme-next/images/lib.png title=\"lib 资源\" data-thumbnail=/posts/hexo-theme-next/images/lib.png data-sub-html=\"<h2>lib 资源</h2>\"><img loading=lazy src=/posts/hexo-theme-next/images/lib.png alt=\"lib 资源\" height=349 width=365></a></p><h2 class=heading-element id=更新内容><span>2 更新内容</span>\n<a href=#%e6%9b%b4%e6%96%b0%e5%86%85%e5%ae%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>更多自定义详见源码</p></blockquote><h3 class=heading-element id=links-模板><span>2.1 links 模板</span>\n<a href=#links-%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>自定义友链模板，打开<code>hexo\\themes\\next\\layout\\</code>新建<code>links.swig</code>文件，写下以下内容后保存。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=k>extends</span> <span class=s1>&#39;_layout.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>import</span> <span class=s1>&#39;_macro/sidebar.swig&#39;</span> <span class=n>as</span> <span class=n>sidebar_template</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>title</span> <span class=o>%</span><span class=p>}{</span><span class=c1>#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% set page_title_suffix = &#39; | &#39; + title %}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% if page.type === &#34;categories&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ __(&#39;title.category&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% elif page.type === &#34;tags&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ __(&#39;title.tag&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% elif page.type === &#34;photos&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{{ __(&#39;title.photos&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% else %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ page.title + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% endif %}{#</span>\n</span></span><span class=line><span class=cl><span class=c1>#}{% endblock %}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>page_class</span> <span class=o>%</span><span class=p>}</span><span class=n>page</span><span class=o>-</span><span class=n>post</span><span class=o>-</span><span class=n>detail</span><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>content</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=o>&lt;</span><span class=n>div</span> <span class=n>id</span><span class=o>=</span><span class=s2>&#34;posts&#34;</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;posts-expand&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>##################}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>#### PAGE BLOCK ###}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>##################}</span>\n</span></span><span class=line><span class=cl>    <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;post-block page&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_partials/page-header.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#################}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#### PAGE BODY ###}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#################}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>script</span> <span class=n>src</span><span class=o>=</span><span class=s2>&#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js&#34;</span><span class=o>&gt;&lt;/</span><span class=n>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;post-body{</span><span class=si>% i</span><span class=s2>f theme.han %} han-init-context{</span><span class=si>% e</span><span class=s2>ndif %}{</span><span class=si>% i</span><span class=s2>f page.direction &amp;&amp; page.direction.toLowerCase() === &#39;rtl&#39; %} rtl{</span><span class=si>% e</span><span class=s2>ndif %}&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;links-list&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>{</span><span class=o>%</span> <span class=k>for</span> <span class=n>svg</span><span class=p>,</span><span class=n>link</span> <span class=ow>in</span> <span class=n>site</span><span class=o>.</span><span class=n>data</span><span class=o>.</span><span class=n>links</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;card-box&#34;</span> <span class=n>title</span><span class=o>=</span><span class=s2>&#34;{{ link.info }}&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>              <span class=o>&lt;</span><span class=n>a</span> <span class=n>href</span><span class=o>=</span><span class=s2>&#34;{{ link.site }}&#34;</span> <span class=n>target</span><span class=o>=</span><span class=s2>&#34;_blank&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span><span class=o>%</span> <span class=k>if</span> <span class=n>link</span><span class=o>.</span><span class=n>avatar</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>                  <span class=o>&lt;</span><span class=n>img</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;card-avatar&#34;</span> <span class=n>data</span><span class=o>-</span><span class=n>original</span><span class=o>=</span><span class=s2>&#34;{{ link.avatar }}&#34;</span> <span class=n>alt</span><span class=o>=</span><span class=s2>&#34;{{ link.nickname }}&#34;</span><span class=o>/&gt;</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span><span class=o>%</span> <span class=k>else</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>                  <span class=o>&lt;</span><span class=n>svg</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;card-avatar&#34;</span> <span class=n>aria</span><span class=o>-</span><span class=n>hidden</span><span class=o>=</span><span class=s2>&#34;true&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>                    <span class=o>&lt;</span><span class=n>use</span> <span class=n>xlink</span><span class=p>:</span><span class=n>href</span><span class=o>=</span><span class=s2>&#34;#icon-{{svg+1}}&#34;</span><span class=o>&gt;&lt;/</span><span class=n>use</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>                  <span class=o>&lt;/</span><span class=n>svg</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span><span class=o>%</span> <span class=n>endif</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>                <span class=o>&lt;</span><span class=n>span</span> <span class=n>title</span><span class=o>=</span><span class=s2>&#34;{{ link.nickname }}&#34;</span><span class=o>&gt;</span><span class=err>@</span><span class=p>{{</span> <span class=n>link</span><span class=o>.</span><span class=n>nickname</span> <span class=p>}}</span><span class=o>&lt;/</span><span class=n>span</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>              <span class=o>&lt;/</span><span class=n>a</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>            <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>{</span><span class=o>%</span> <span class=n>endfor</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>{{</span> <span class=n>page</span><span class=o>.</span><span class=n>content</span> <span class=p>}}</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>style</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=o>/*</span> <span class=err>@</span><span class=n>Author</span><span class=p>:</span> <span class=n>lruihao</span><span class=o>.</span><span class=n>cn</span> <span class=o>*/</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>links</span><span class=o>-</span><span class=n>list</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>margin</span><span class=o>-</span><span class=n>top</span><span class=p>:</span> <span class=mi>1</span><span class=n>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>display</span><span class=p>:</span> <span class=n>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>flex</span><span class=o>-</span><span class=n>direction</span><span class=p>:</span> <span class=n>row</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>justify</span><span class=o>-</span><span class=n>content</span><span class=p>:</span> <span class=n>space</span><span class=o>-</span><span class=n>between</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>flex</span><span class=o>-</span><span class=n>wrap</span><span class=p>:</span> <span class=n>wrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>box</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>width</span><span class=p>:</span> <span class=mi>150</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>height</span><span class=p>:</span> <span class=mi>200</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>font</span><span class=o>-</span><span class=n>size</span><span class=p>:</span> <span class=mi>1</span><span class=n>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>text</span><span class=o>-</span><span class=n>align</span><span class=p>:</span> <span class=n>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>background</span><span class=p>:</span> <span class=n>rgba</span><span class=p>(</span><span class=mi>255</span><span class=p>,</span><span class=mi>255</span><span class=p>,</span><span class=mi>255</span><span class=p>,</span><span class=mf>0.3</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>box</span><span class=o>-</span><span class=n>sizing</span><span class=p>:</span> <span class=n>border</span><span class=o>-</span><span class=n>box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>box</span><span class=o>-</span><span class=n>shadow</span><span class=p>:</span> <span class=mi>3</span><span class=n>px</span> <span class=mi>3</span><span class=n>px</span> <span class=mi>5</span><span class=n>px</span> <span class=c1>#aaa;</span>\n</span></span><span class=line><span class=cl>          <span class=n>border</span><span class=o>-</span><span class=n>radius</span><span class=p>:</span> <span class=mi>5</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>transition</span><span class=o>-</span><span class=n>duration</span><span class=p>:</span> <span class=mf>0.3</span><span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>margin</span><span class=o>-</span><span class=n>bottom</span><span class=p>:</span> <span class=mi>1</span><span class=n>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>display</span><span class=p>:</span> <span class=n>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>flex</span><span class=o>-</span><span class=n>direction</span><span class=p>:</span> <span class=n>column</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>box</span><span class=p>:</span><span class=n>hover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>background</span><span class=p>:</span> <span class=c1>#fff;</span>\n</span></span><span class=line><span class=cl>          <span class=n>transform</span><span class=p>:</span> <span class=n>scale</span><span class=p>(</span><span class=mf>1.03</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>box</span><span class=o>-</span><span class=n>shadow</span><span class=p>:</span> <span class=mi>0</span> <span class=mi>0</span> <span class=mi>3</span><span class=n>px</span> <span class=c1>#aaa;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>box</span> <span class=n>a</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>border</span><span class=p>:</span><span class=n>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>avatar</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>width</span><span class=p>:</span> <span class=mi>100</span><span class=o>%!</span><span class=n>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>height</span><span class=p>:</span> <span class=mi>150</span><span class=n>px</span><span class=o>!</span><span class=n>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>border</span><span class=o>-</span><span class=n>radius</span><span class=p>:</span> <span class=mi>5</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>margin</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>padding</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>box</span> <span class=n>span</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>display</span><span class=p>:</span> <span class=n>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>position</span><span class=p>:</span> <span class=n>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>bottom</span><span class=p>:</span> <span class=mi>1</span><span class=n>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>align</span><span class=o>-</span><span class=bp>self</span><span class=p>:</span> <span class=n>flex</span><span class=o>-</span><span class=n>end</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>color</span><span class=p>:</span> <span class=c1>#2bbc8a;</span>\n</span></span><span class=line><span class=cl>          <span class=n>font</span><span class=o>-</span><span class=n>weight</span><span class=p>:</span> <span class=n>bold</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nb>max</span><span class=o>-</span><span class=n>width</span><span class=p>:</span> <span class=mi>100</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>overflow</span><span class=p>:</span> <span class=n>hidden</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>white</span><span class=o>-</span><span class=n>space</span><span class=p>:</span> <span class=n>nowrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>text</span><span class=o>-</span><span class=n>overflow</span><span class=p>:</span> <span class=n>ellipsis</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>margin</span><span class=o>-</span><span class=n>top</span><span class=p>:</span> <span class=mi>15</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=o>.</span><span class=n>card</span><span class=o>-</span><span class=n>box</span> <span class=n>span</span><span class=p>:</span><span class=n>hover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>color</span><span class=p>:</span> <span class=c1>#d480aa;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;/</span><span class=n>style</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#####################}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#### END PAGE BODY ###}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#####################}</span>\n</span></span><span class=line><span class=cl>    <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_partials/breadcrumb.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>######################}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>#### END PAGE BLOCK ###}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>######################}</span>\n</span></span><span class=line><span class=cl>  <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>sidebar</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>{{</span> <span class=n>sidebar_template</span><span class=o>.</span><span class=n>render</span><span class=p>(</span><span class=bp>false</span><span class=p>)</span> <span class=p>}}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>script_extra</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_scripts/pages/post-details.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><ul><li><strong>若未使用懒加载请将模板中的<code>data-original</code>属性改为<code>src</code></strong></li><li><strong>若懒加载无法加载预览图请手动添加<code>src=\"/images/loading.gif\"</code></strong></li><li><strong>若 fancybox 显示 alt 内容请更换 fancybox2 或者将 alt 属值删除</strong></li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;img class=&#34;card-avatar&#34; data-original=&#34;{{ link.avatar }}&#34; alt=&#34;{{ link.nickname }}&#34;/&gt;</span></span></code></pre></td></tr></table></div></div></div><p>然后<code>hexo n page links</code>新建一个页面文章配置写下如下内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-XMl data-lang=XMl><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: 友情链接\n</span></span><span class=line><span class=cl>layout: links\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><p>然后在<code>links</code>页面文件夹下面新建文件夹<code>_data</code>，再在里面新建<code>links.yml</code>，内容如下</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>- nickname: 博採眾長\n</span></span><span class=line><span class=cl>  avatar: http://lruihao.cn/images/avatar.png\n</span></span><span class=line><span class=cl>  site: http://lruihao.cn\n</span></span><span class=line><span class=cl>  info: 一个菜鸟的博客\n</span></span><span class=line><span class=cl>- nickname:                 #友链名称\n</span></span><span class=line><span class=cl>  avatar:                   #友链头像\n</span></span><span class=line><span class=cl>  site:                     #友链地址\n</span></span><span class=line><span class=cl>  info:                     #友链说明</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=备案信息自定义><span>2.2 备案信息自定义</span>\n<a href=#%e5%a4%87%e6%a1%88%e4%bf%a1%e6%81%af%e8%87%aa%e5%ae%9a%e4%b9%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>## -------------------------------------------------------------\n</span></span><span class=line><span class=cl>## footer_custom Settings\n</span></span><span class=line><span class=cl>## -------------------------------------------------------------\n</span></span><span class=line><span class=cl>beian:\n</span></span><span class=line><span class=cl>  enable: true\n</span></span><span class=line><span class=cl>  gov: 湘公网安备 43030402000254 号\n</span></span><span class=line><span class=cl>  recordcode: 43030402000254\n</span></span><span class=line><span class=cl>  icp: 湘 ICP 备 18020535 号</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=文字抖动特效><span>2.3 文字抖动特效</span>\n<a href=#%e6%96%87%e5%ad%97%e6%8a%96%e5%8a%a8%e7%89%b9%e6%95%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;div</span> <span class=na>class=</span><span class=s>&#34;shaky&#34;</span><span class=nt>&gt;</span>（づ●&#39;◡&#39;●) づ ❥内容区<span class=nt>&lt;/div&gt;</span></span></span></code></pre></td></tr></table></div></div></div><div class=shaky>（づ●'◡'●) づ ❥内容区</div><h3 class=heading-element id=左下角微信公众号><span>2.4 左下角微信公众号</span>\n<a href=#%e5%b7%a6%e4%b8%8b%e8%a7%92%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>\\source\\css\\_custom\\customs.styl</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=相关文章收纳><span>2.5 相关文章收纳</span>\n<a href=#%e7%9b%b8%e5%85%b3%e6%96%87%e7%ab%a0%e6%94%b6%e7%ba%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>加入 H5 标签，实现可收纳功能，点击查看详情。</p><h3 class=heading-element id=chat-services><span>2.6 Chat Services</span>\n<a href=#chat-services class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>共 chatra,tidio,daovoice 三个选项，三选一</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>## Chatra Support\n</span></span><span class=line><span class=cl>## See: https://chatra.io\n</span></span><span class=line><span class=cl>## Dashboard: https://app.chatra.io/settings/general\n</span></span><span class=line><span class=cl>chatra:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  async: true\n</span></span><span class=line><span class=cl>  id: ## visit Dashboard to get your ChatraID\n</span></span><span class=line><span class=cl>  #embed: ## unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>## Tidio Support\n</span></span><span class=line><span class=cl>## See: https://www.tidiochat.com\n</span></span><span class=line><span class=cl>## Dashboard: https://www.tidiochat.com/panel/dashboard\n</span></span><span class=line><span class=cl>tidio:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  key: ## Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>#在线客服\n</span></span><span class=line><span class=cl>daovoice: true\n</span></span><span class=line><span class=cl>daovoice_app_id: xxxx   ## http://www.daovoice.io/</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=pdf-和-mermaid-解析模块><span>2.7 pdf 和 Mermaid 解析模块</span>\n<a href=#pdf-%e5%92%8c-mermaid-%e8%a7%a3%e6%9e%90%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://lruihao.cn/posts/next-pdf/ target=_blank rel=\"external nofollow noopener noreferrer\">pdf 传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>pdf:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  ## Default height\n</span></span><span class=line><span class=cl>  height: 500px\n</span></span><span class=line><span class=cl>  pdfobject:\n</span></span><span class=line><span class=cl>    cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js\n</span></span><span class=line><span class=cl>    #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>## Mermaid tag\n</span></span><span class=line><span class=cl>mermaid:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  ## Available themes: default | dark | forest | neutral\n</span></span><span class=line><span class=cl>  theme: forest\n</span></span><span class=line><span class=cl>  cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js\n</span></span><span class=line><span class=cl>  #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=模仿-csdn-转发样式><span>2.8 模仿 csdn 转发样式</span>\n<a href=#%e6%a8%a1%e4%bb%bf-csdn-%e8%bd%ac%e5%8f%91%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>...\n</span></span><span class=line><span class=cl>   &lt;a class=&#34;post-title-link&#34; href=&#34;{{ url_for(post.path) }}&#34; itemprop=&#34;url&#34;&gt;\n</span></span><span class=line><span class=cl><span class=gi>+    {% if post.repost %}\n</span></span></span><span class=line><span class=cl><span class=gi>+      &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;\n</span></span></span><span class=line><span class=cl><span class=gi>+    {% endif %}\n</span></span></span><span class=line><span class=cl>     {{ post.title | default(__(&#39;post.untitled&#39;))}}\n</span></span><span class=line><span class=cl>   &lt;/a&gt;\n</span></span><span class=line><span class=cl> {% else -%}\n</span></span><span class=line><span class=cl><span class=gi>+  {% if post.repost %}\n</span></span></span><span class=line><span class=cl><span class=gi>+    &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;\n</span></span></span><span class=line><span class=cl><span class=gi>+  {% endif %}\n</span></span></span><span class=line><span class=cl>   {{- post.title -}}\n</span></span><span class=line><span class=cl>...\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>repost</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>color</span><span class=p>:</span> <span class=mh>#5acc79</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border</span><span class=p>:</span> <span class=mi>1</span><span class=kt>px</span> <span class=kc>solid</span> <span class=mh>#e7f4df</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border-radius</span><span class=p>:</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>padding</span><span class=p>:</span> <span class=mi>2</span><span class=kt>px</span> <span class=mi>5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-size</span><span class=p>:</span> <span class=mi>15</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-weight</span><span class=p>:</span> <span class=mi>500</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: xxxx\n</span></span><span class=line><span class=cl>repost: true\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><p><a href=https://lruihao.cn/tags/%e4%bb%96%e5%b1%b1%e4%b9%8b%e7%9f%b3/ target=_blank rel=\"external nofollow noopener noreferrer\">预览<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=热度页面><span>2.9 热度页面</span>\n<a href=#%e7%83%ad%e5%ba%a6%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>打开<code>hexo\\themes\\next\\layout</code>新建 top.swig 文件，写下如下内容保存：</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=k>extends</span> <span class=s1>&#39;_layout.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>import</span> <span class=s1>&#39;_macro/sidebar.swig&#39;</span> <span class=n>as</span> <span class=n>sidebar_template</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>title</span> <span class=o>%</span><span class=p>}{</span><span class=c1>#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% set page_title_suffix = &#39; | &#39; + title %}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% if page.type === &#34;categories&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ __(&#39;title.category&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% elif page.type === &#34;tags&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ __(&#39;title.tag&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% elif page.type === &#34;photos&#34; and not page.title %}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{{ __(&#39;title.photos&#39;) + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% else %}{#</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#}{{ page.title + page_title_suffix }}{#</span>\n</span></span><span class=line><span class=cl>  <span class=c1>#}{% endif %}{#</span>\n</span></span><span class=line><span class=cl><span class=c1>#}{% endblock %}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>page_class</span> <span class=o>%</span><span class=p>}</span><span class=n>page</span><span class=o>-</span><span class=n>post</span><span class=o>-</span><span class=n>detail</span><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>content</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=o>&lt;</span><span class=n>div</span> <span class=n>id</span><span class=o>=</span><span class=s2>&#34;posts&#34;</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;posts-expand&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>##################}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>#### PAGE BLOCK ###}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>##################}</span>\n</span></span><span class=line><span class=cl>    <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;post-block page&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_partials/page-header.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#################}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#### PAGE BODY ###}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#################}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>div</span> <span class=k>class</span><span class=o>=</span><span class=s2>&#34;post-body{</span><span class=si>% i</span><span class=s2>f theme.han %} han-init-context{</span><span class=si>% e</span><span class=s2>ndif %}{</span><span class=si>% i</span><span class=s2>f page.direction &amp;&amp; page.direction.toLowerCase() === &#39;rtl&#39; %} rtl{</span><span class=si>% e</span><span class=s2>ndif %}&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>{{</span> <span class=n>page</span><span class=o>.</span><span class=n>content</span> <span class=p>}}</span>\n</span></span><span class=line><span class=cl>        <span class=o>&lt;</span><span class=n>div</span> <span class=n>id</span><span class=o>=</span><span class=s2>&#34;top&#34;</span><span class=o>&gt;&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>style</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#top{</span>\n</span></span><span class=line><span class=cl>          <span class=n>display</span><span class=p>:</span> <span class=n>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>flex</span><span class=o>-</span><span class=n>direction</span><span class=p>:</span> <span class=n>row</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>justify</span><span class=o>-</span><span class=n>content</span><span class=p>:</span> <span class=n>space</span><span class=o>-</span><span class=n>between</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>flex</span><span class=o>-</span><span class=n>wrap</span><span class=p>:</span> <span class=n>wrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>width</span><span class=p>:</span> <span class=mi>100</span><span class=o>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nb>min</span><span class=o>-</span><span class=n>height</span><span class=p>:</span> <span class=n>calc</span><span class=p>({{</span> <span class=n>page</span><span class=o>.</span><span class=n>limit</span> <span class=p>}}</span> <span class=o>*</span> <span class=mi>20</span><span class=n>px</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#top div{</span>\n</span></span><span class=line><span class=cl>          <span class=n>width</span><span class=p>:</span> <span class=mi>400</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>height</span><span class=p>:</span> <span class=mi>40</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nb>max</span><span class=o>-</span><span class=n>width</span><span class=p>:</span> <span class=mi>400</span><span class=n>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>overflow</span><span class=p>:</span> <span class=n>hidden</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>white</span><span class=o>-</span><span class=n>space</span><span class=p>:</span> <span class=n>nowrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>text</span><span class=o>-</span><span class=n>overflow</span><span class=p>:</span> <span class=n>ellipsis</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#top a{</span>\n</span></span><span class=line><span class=cl>          <span class=n>color</span><span class=p>:</span> <span class=c1>#555;</span>\n</span></span><span class=line><span class=cl>          <span class=n>text</span><span class=o>-</span><span class=n>decoration</span><span class=p>:</span> <span class=n>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>outline</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>border</span><span class=o>-</span><span class=n>bottom</span><span class=p>:</span> <span class=mi>1</span><span class=n>px</span> <span class=n>solid</span> <span class=c1>#999;</span>\n</span></span><span class=line><span class=cl>          <span class=n>word</span><span class=o>-</span><span class=n>wrap</span><span class=p>:</span> <span class=k>break</span><span class=o>-</span><span class=n>word</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;/</span><span class=n>style</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>script</span> <span class=n>src</span><span class=o>=</span><span class=s2>&#34;https://cdn1.lncld.net/static/js/av-core-mini-0.6.4.js&#34;</span><span class=o>&gt;&lt;/</span><span class=n>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>script</span><span class=o>&gt;</span><span class=n>AV</span><span class=o>.</span><span class=n>initialize</span><span class=p>(</span><span class=s2>&#34;{{ theme.valine.appid }}&#34;</span><span class=p>,</span> <span class=s2>&#34;{{ theme.valine.appkey }}&#34;</span><span class=p>);</span><span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;</span><span class=n>script</span> <span class=n>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=n>setTimeout</span><span class=p>(</span><span class=n>function</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>          <span class=k>var</span> <span class=n>time</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl>          <span class=k>var</span> <span class=n>title</span><span class=o>=</span><span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>          <span class=k>var</span> <span class=n>url</span><span class=o>=</span><span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>          <span class=k>var</span> <span class=n>query</span> <span class=o>=</span> <span class=n>new</span> <span class=n>AV</span><span class=o>.</span><span class=n>Query</span><span class=p>(</span><span class=s1>&#39;Counter&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>query</span><span class=o>.</span><span class=n>notEqualTo</span><span class=p>(</span><span class=s1>&#39;id&#39;</span><span class=p>,</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>query</span><span class=o>.</span><span class=n>descending</span><span class=p>(</span><span class=s1>&#39;time&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=n>query</span><span class=o>.</span><span class=n>limit</span><span class=p>({{</span> <span class=n>page</span><span class=o>.</span><span class=n>limit</span> <span class=p>}});</span> <span class=o>//</span><span class=err>设置篇数</span>\n</span></span><span class=line><span class=cl>          <span class=n>query</span><span class=o>.</span><span class=n>find</span><span class=p>()</span><span class=o>.</span><span class=n>then</span><span class=p>(</span><span class=n>function</span> <span class=p>(</span><span class=n>todo</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span> <span class=p>(</span><span class=k>var</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=p>{{</span> <span class=n>page</span><span class=o>.</span><span class=n>limit</span> <span class=p>}};</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>              <span class=k>var</span> <span class=n>result</span><span class=o>=</span><span class=n>todo</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>.</span><span class=n>attributes</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>              <span class=n>time</span><span class=o>=</span><span class=n>result</span><span class=o>.</span><span class=n>time</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>              <span class=n>title</span><span class=o>=</span><span class=n>result</span><span class=o>.</span><span class=n>title</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>              <span class=n>category</span><span class=o>=</span><span class=n>result</span><span class=o>.</span><span class=n>categories</span>\n</span></span><span class=line><span class=cl>              <span class=n>url</span><span class=o>=</span><span class=n>result</span><span class=o>.</span><span class=n>url</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>              <span class=k>var</span> <span class=n>content</span><span class=o>=</span><span class=s2>&#34;&lt;div&gt;&#34;</span><span class=o>+</span><span class=s2>&#34;【文章热度：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>+</span><span class=s2>&#34;℃】&#34;</span><span class=o>+</span><span class=s2>&#34;&lt;a href=&#39;&#34;</span><span class=o>+</span><span class=s2>&#34;{{ config.url }}&#34;</span><span class=o>+</span><span class=s2>&#34;&#34;</span><span class=o>+</span><span class=n>url</span><span class=o>+</span><span class=s2>&#34;&#39;&gt;&#34;</span><span class=o>+</span><span class=n>title</span><span class=o>+</span><span class=s2>&#34;&lt;/a&gt;&#34;</span><span class=o>+</span><span class=s2>&#34;&lt;/div&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>              <span class=n>document</span><span class=o>.</span><span class=n>getElementById</span><span class=p>(</span><span class=s2>&#34;top&#34;</span><span class=p>)</span><span class=o>.</span><span class=n>innerHTML</span><span class=o>+=</span><span class=n>content</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>          <span class=p>},</span> <span class=n>function</span> <span class=p>(</span><span class=n>error</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>console</span><span class=o>.</span><span class=n>log</span><span class=p>(</span><span class=s2>&#34;error&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=p>});</span>\n</span></span><span class=line><span class=cl>        <span class=p>},</span><span class=mi>1000</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#####################}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#### END PAGE BODY ###}</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span><span class=c1>#####################}</span>\n</span></span><span class=line><span class=cl>    <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_partials/breadcrumb.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>######################}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>#### END PAGE BLOCK ###}</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span><span class=c1>######################}</span>\n</span></span><span class=line><span class=cl>  <span class=o>&lt;/</span><span class=n>div</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>sidebar</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>{{</span> <span class=n>sidebar_template</span><span class=o>.</span><span class=n>render</span><span class=p>(</span><span class=bp>false</span><span class=p>)</span> <span class=p>}}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>block</span> <span class=n>script_extra</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span><span class=o>%</span> <span class=n>include</span> <span class=s1>&#39;_scripts/pages/post-details.swig&#39;</span> <span class=o>%</span><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>{</span><span class=o>%</span> <span class=n>endblock</span> <span class=o>%</span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>其中第 36 行改成你自己的 leancloud 的 appid 和 appkey, 比如我的是在主题配置文件里面的 valine 配置下，所以我就写成<code>theme.valine.appid</code>。和我一样就不需要修改，其他自行配置。</p><p>然后<code>hexo n page top</code>新建一个页面文章配置写下如下内容，limit 表示显示篇数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-XMl data-lang=XMl><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: 热度\n</span></span><span class=line><span class=cl>layout: top\n</span></span><span class=line><span class=cl>limit: 20\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=复制按钮样式><span>2.10 复制按钮样式</span>\n<a href=#%e5%a4%8d%e5%88%b6%e6%8c%89%e9%92%ae%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/hexo-theme-next/images/lightbtn.png title=/posts/hexo-theme-next/images/lightbtn.png data-thumbnail=/posts/hexo-theme-next/images/lightbtn.png data-sub-html=\"<h2>/posts/hexo-theme-next/images/lightbtn.png</h2>\"><img loading=lazy src=/posts/hexo-theme-next/images/lightbtn.png alt=/posts/hexo-theme-next/images/lightbtn.png height=96 width=137></a>\n<a class=lightgallery target=_blank href=/posts/hexo-theme-next/images/nightbtn.png title=/posts/hexo-theme-next/images/nightbtn.png data-thumbnail=/posts/hexo-theme-next/images/nightbtn.png data-sub-html=\"<h2>/posts/hexo-theme-next/images/nightbtn.png</h2>\"><img loading=lazy src=/posts/hexo-theme-next/images/nightbtn.png alt=/posts/hexo-theme-next/images/nightbtn.png height=96 width=139></a>\n<a class=lightgallery target=_blank href=/posts/hexo-theme-next/images/3dbtn.png title=/posts/hexo-theme-next/images/3dbtn.png data-thumbnail=/posts/hexo-theme-next/images/3dbtn.png data-sub-html=\"<h2>/posts/hexo-theme-next/images/3dbtn.png</h2>\"><img loading=lazy src=/posts/hexo-theme-next/images/3dbtn.png alt=/posts/hexo-theme-next/images/3dbtn.png height=103 width=142></a></p><blockquote><p>本来只想简单美化一下变成 night 样式的，后来写完发现 3dbtn 也挺喜欢的。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>codeblock</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>##</span><span class=w> </span><span class=n>Manual</span><span class=w> </span><span class=n>define</span><span class=w> </span><span class=n>the</span><span class=w> </span><span class=n>border</span><span class=w> </span><span class=n>radius</span><span class=w> </span><span class=n>in</span><span class=w> </span><span class=n>codeblock</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>##</span><span class=w> </span><span class=n>Leave</span><span class=w> </span><span class=n>it</span><span class=w> </span><span class=n>empty</span><span class=w> </span><span class=k>for</span><span class=w> </span><span class=n>the</span><span class=w> </span><span class=k>default</span><span class=w> </span><span class=n>1</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>border_radius</span><span class=p>:</span><span class=w> </span><span class=n>5</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>##</span><span class=w> </span><span class=n>Add</span><span class=w> </span><span class=n>copy</span><span class=w> </span><span class=n>button</span><span class=w> </span><span class=n>on</span><span class=w> </span><span class=n>codeblock</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>copy_button</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>enable</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=err>##</span><span class=w> </span><span class=n>Show</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=n>copy</span><span class=w> </span><span class=n>result</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show_result</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=err>##</span><span class=w> </span><span class=n>Style</span><span class=p>:</span><span class=w> </span><span class=err>&#39;</span><span class=n>light</span><span class=p>,</span><span class=n>night</span><span class=p>,</span><span class=n>flat</span><span class=p>,</span><span class=n>3dbtn</span><span class=err>&#39;</span><span class=w> </span><span class=n>is</span><span class=w> </span><span class=n>currently</span><span class=w> </span><span class=n>available</span><span class=p>,</span><span class=w> </span><span class=n>leave</span><span class=w> </span><span class=n>it</span><span class=w> </span><span class=n>empty</span><span class=w> </span><span class=n>or</span><span class=w> </span><span class=n>light</span><span class=w> </span><span class=n>is</span><span class=w> </span><span class=k>default</span><span class=w> </span><span class=n>theme</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>style</span><span class=p>:</span><span class=w> </span><span class=n>night</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-09-13 16:43:19\">更新于 2019-09-13&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexo-theme-next/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-theme-next/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexo-theme-next/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo-theme-next+%40modified+LRH&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo-theme-next+%40modified+LRH%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexo-theme-next/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-theme-next/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexo-theme-next/ data-title=\"Hexo-Theme-Next @Modified LRH\" data-hashtags=Hexo,Node.js,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexo-theme-next/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexo-theme-next/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexo-theme-next/ data-title=\"Hexo-Theme-Next @Modified LRH\" data-image=/posts/hexo-theme-next/images/next.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexo-theme-next/ data-title=\"Hexo-Theme-Next @Modified LRH\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/substatus/ class=post-nav-item rel=prev title=\"Java 父类子类的对象初始化过程\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 父类子类的对象初始化过程</a><a href=/posts/http2https/ class=post-nav-item rel=next title=\"Vps 配置 Ssl 及 Https 重定向\">Vps 配置 Ssl 及 Https 重定向<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#初步安装>初步安装</a></li><li><a href=#更新内容>更新内容</a><ol><li><a href=#links-模板>links 模板</a></li><li><a href=#备案信息自定义>备案信息自定义</a></li><li><a href=#文字抖动特效>文字抖动特效</a></li><li><a href=#左下角微信公众号>左下角微信公众号</a></li><li><a href=#相关文章收纳>相关文章收纳</a></li><li><a href=#chat-services>Chat Services</a></li><li><a href=#pdf-和-mermaid-解析模块>pdf 和 Mermaid 解析模块</a></li><li><a href=#模仿-csdn-转发样式>模仿 csdn 转发样式</a></li><li><a href=#热度页面>热度页面</a></li><li><a href=#复制按钮样式>复制按钮样式</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/211c86c12dbc4e740b31b4edc4a9592a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/211c86c12dbc4e740b31b4edc4a9592a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexo-theme-next/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexo-theme-next/index.md",
    "content": "# Hexo-Theme-Next @Modified LRH\n\n\n<!-- markdownlint-disable-file -->\n\n{{< admonition danger >}}\n<span style=\"color: #d9534f;font-size: 1.2em;\">**如无必要，不再更新！（2019.09.13）**</span>  \n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将**放弃对 next 的主题的自定义修改**，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。  \n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。  \n以下仍为当前博客使用主题，lib 资源已打包 github。\n{{< /admonition >}}\n\n<!--more-->\n\n{{< admonition success \"next\" >}}\n基于 [hexo-theme-next 6.0+](https://github.com/theme-next/hexo-theme-next) 的 Pisces 模板做的 DIY 扩展性设计（部分兼容 next 其他几种模板）。主要是一些 custom style 还有一些第三方的 js。修改的地方太多也有点小乱就不提 PR 了。  \n[modified](https://github.com/Lruihao/hexo-theme-next)&emsp; 官方 Demo => <https://theme-next.org>  \n记录一下折腾过程，以后备份恢复博客也好方便自己。本文之前的美化修改请见 [hexo 标签](/tags/hexo/)。  \n**主题中若有遗漏第三方插件或应用的 key 及 id 值等请修改为自己对应的值**  \n{{< /admonition >}}\n\n主要的几个自定义文件\n\n```xml 主要修改路径及文件\n_config.swig                                 #主题配置文件 相关账户信息自己注册替换\n\\layout\\custom\\head.swig                     #在头部自定义加入标签\n\\layout\\custom\\google_adsense.swig           #谷歌广告模块，内有注释暂时弃用\n\\layout\\_layout.swig                         #主布局\n\\layout\\_macro\\post.swig                     #文章布局\n\\layout\\_macro\\post-copyright.swig           #文章版权\n\\layout\\_macro\\siderbar.swig                 #侧栏模板\n\\layout\\_third-party\\copy-code.swig          #复制按钮\n\\layout\\_partials\\comments.swig              #评论主模板\n\\layout\\_partials\\footer.swig                #底部模板#该模块在 layout.swig 引入，用于在 body 自定义标签\n\\layout\\_partials\\footer_custom.swig         #footer 自定义文件\n\\layout\\_third-party\\custom.swig             #该模块在 layout.swig 引入用于在 body 自定义标签\n\\source\\css\\_custom\\customs.styl             #主要用户自定义样式表\n\\source\\fonts\\                               #引入了一些我的手写体及外部字体\n\\scripts\\qcloudcdn.js                        #腾讯云 cos 桶刷新缓存的脚本，不需要可删掉 [^1]\n```\n\n[^1](https://lruihao.cn/posts/cos-hexo.html#CDN%E5%88%B7%E6%96%B0)\n\n## 初步安装\n\n> 安装整个改过的主题，然后下载相应的 lib 资源解压放入 source 文件夹\n\n```bash\ncd hexo\ngit clone https://github.com/Lruihao/hexo-theme-next themes/next\n```\n\n主题配置文件`_config.yml`, 选择主题\n\n```text\ntheme: next\n```\n\n{{< link href=\"http://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1\" content=\"lib 下载\" card=true >}}\n\n![lib 资源](images/lib.png)\n\n## 更新内容\n\n> 更多自定义详见源码\n\n### links 模板\n\n> 自定义友链模板，打开`hexo\\themes\\next\\layout\\`新建`links.swig`文件，写下以下内容后保存。\n\n```swig\n{% extends '_layout.swig' %}\n{% import '_macro/sidebar.swig' as sidebar_template %}\n\n  {% block title %}{#\n  #}{% set page_title_suffix = ' | ' + title %}{#\n\n  #}{% if page.type === \"categories\" and not page.title %}{#\n    #}{{ __('title.category') + page_title_suffix }}{#\n  #}{% elif page.type === \"tags\" and not page.title %}{#\n    #}{{ __('title.tag') + page_title_suffix }}{#\n\n  #}{% elif page.type === \"photos\" and not page.title %}{#\n  #}{{ __('title.photos') + page_title_suffix }}{#\n\n  #}{% else %}{#\n    #}{{ page.title + page_title_suffix }}{#\n  #}{% endif %}{#\n#}{% endblock %}\n\n{% block page_class %}page-post-detail{% endblock %}\n\n{% block content %}\n\n  <div id=\"posts\" class=\"posts-expand\">\n    {##################}\n    {#### PAGE BLOCK ###}\n    {##################}\n    <div class=\"post-block page\">\n      {% include '_partials/page-header.swig' %}\n      {#################}\n      {#### PAGE BODY ###}\n      {#################}\n\n      <script src=\"//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\"></script>\n      <div class=\"post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction && page.direction.toLowerCase() === 'rtl' %} rtl{% endif %}\">\n        <div class=\"links-list\">\n          {% for svg,link in site.data.links %}\n            <div class=\"card-box\" title=\"{{ link.info }}\">\n              <a href=\"{{ link.site }}\" target=\"_blank\">\n                {% if link.avatar %}\n                  <img class=\"card-avatar\" data-original=\"{{ link.avatar }}\" alt=\"{{ link.nickname }}\"/>\n                {% else %}\n                  <svg class=\"card-avatar\" aria-hidden=\"true\">\n                    <use xlink:href=\"#icon-{{svg+1}}\"></use>\n                  </svg>\n                {% endif %}\n                <span title=\"{{ link.nickname }}\">@{{ link.nickname }}</span>\n              </a>\n            </div>\n          {% endfor %}\n        </div>\n        {{ page.content }}\n      </div>\n\n      <style>\n        /* @Author: lruihao.cn */\n        .links-list {\n          margin-top: 1rem;\n          display: flex;\n          flex-direction: row;\n          justify-content: space-between;\n          flex-wrap: wrap;\n        }\n        .card-box {\n          width: 150px;\n          height: 200px;\n          font-size: 1rem;\n          text-align: center;\n          background: rgba(255,255,255,0.3);\n          box-sizing: border-box;\n          box-shadow: 3px 3px 5px #aaa;\n          border-radius: 5px;\n          transition-duration: 0.3s;\n          margin-bottom: 1rem;\n          display: flex;\n          flex-direction: column;\n        }\n        .card-box:hover {\n          background: #fff;\n          transform: scale(1.03);\n          box-shadow: 0 0 3px #aaa;\n        }\n        .card-box a {\n          border:none;\n        }\n        .card-avatar {\n          width: 100%!important;\n          height: 150px!important;\n          border-radius: 5px;\n          margin: 0;\n          padding: 0;\n        }\n        .card-box span{\n          display: block;\n          position: relative;\n          bottom: 1rem;\n          align-self: flex-end;\n          color: #2bbc8a;\n          font-weight: bold;\n          max-width: 100%;\n          overflow: hidden;\n          white-space: nowrap;\n          text-overflow: ellipsis;\n          margin-top: 15px;\n        }\n        .card-box span:hover {\n          color: #d480aa;\n        }\n      </style>\n\n      {#####################}\n      {#### END PAGE BODY ###}\n      {#####################}\n    </div>\n    {% include '_partials/breadcrumb.swig' %}\n    {######################}\n    {#### END PAGE BLOCK ###}\n    {######################}\n  </div>\n\n{% endblock %}\n\n{% block sidebar %}\n  {{ sidebar_template.render(false) }}\n{% endblock %}\n\n{% block script_extra %}\n  {% include '_scripts/pages/post-details.swig' %}\n{% endblock %}\n```\n\n- **若未使用懒加载请将模板中的`data-original`属性改为`src`**\n- **若懒加载无法加载预览图请手动添加`src=\"/images/loading.gif\"`**\n- **若 fancybox 显示 alt 内容请更换 fancybox2 或者将 alt 属值删除**\n\n```\n<img class=\"card-avatar\" data-original=\"{{ link.avatar }}\" alt=\"{{ link.nickname }}\"/>\n```\n\n然后`hexo n page links`新建一个页面文章配置写下如下内容：\n\n```XMl\n---\ntitle: 友情链接\nlayout: links\n---\n```\n\n然后在`links`页面文件夹下面新建文件夹`_data`，再在里面新建`links.yml`，内容如下\n\n```xml links.yml\n- nickname: 博採眾長\n  avatar: http://lruihao.cn/images/avatar.png\n  site: http://lruihao.cn\n  info: 一个菜鸟的博客\n- nickname:                 #友链名称\n  avatar:                   #友链头像\n  site:                     #友链地址\n  info:                     #友链说明\n```\n\n### 备案信息自定义\n\n```xml _config.yml\n## -------------------------------------------------------------\n## footer_custom Settings\n## -------------------------------------------------------------\nbeian:\n  enable: true\n  gov: 湘公网安备 43030402000254 号\n  recordcode: 43030402000254\n  icp: 湘 ICP 备 18020535 号\n```\n\n### 文字抖动特效\n\n```xml 使用方法\n<div class=\"shaky\">（づ●'◡'●) づ ❥内容区</div>\n```\n\n<div class=\"shaky\">（づ●'◡'●) づ ❥内容区</div>\n\n### 左下角微信公众号\n\n```xml 替换为自己的二维码\n\\source\\css\\_custom\\customs.styl\n```\n\n### 相关文章收纳\n\n加入 H5 标签，实现可收纳功能，点击查看详情。\n\n### Chat Services\n\n> 共 chatra,tidio,daovoice 三个选项，三选一\n\n```swig _config.swig\n## Chatra Support\n## See: https://chatra.io\n## Dashboard: https://app.chatra.io/settings/general\nchatra:\n  enable: false\n  async: true\n  id: ## visit Dashboard to get your ChatraID\n  #embed: ## unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto\n\n## Tidio Support\n## See: https://www.tidiochat.com\n## Dashboard: https://www.tidiochat.com/panel/dashboard\ntidio:\n  enable: false\n  key: ## Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer\n\n#在线客服\ndaovoice: true\ndaovoice_app_id: xxxx   ## http://www.daovoice.io/\n```\n\n### pdf 和 Mermaid 解析模块\n\n[pdf 传送门](https://lruihao.cn/posts/next-pdf/)\n\n```swig config.swig\npdf:\n  enable: false\n  ## Default height\n  height: 500px\n  pdfobject:\n    cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js\n    #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\n\n## Mermaid tag\nmermaid:\n  enable: false\n  ## Available themes: default | dark | forest | neutral\n  theme: forest\n  cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js\n  #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js\n```\n\n### 模仿 csdn 转发样式\n\n```diff post.swig 主要修改\n...\n   <a class=\"post-title-link\" href=\"{{ url_for(post.path) }}\" itemprop=\"url\">\n+    {% if post.repost %}\n+      <span class=\"repost\">转</span>\n+    {% endif %}\n     {{ post.title | default(__('post.untitled'))}}\n   </a>\n {% else -%}\n+  {% if post.repost %}\n+    <span class=\"repost\">转</span>\n+  {% endif %}\n   {{- post.title -}}\n...\n```\n\n```css css 样式\n.repost {\n  color: #5acc79;\n  border: 1px solid #e7f4df;\n  border-radius: 20px;\n  padding: 2px 5px;\n  font-size: 15px;\n  font-weight: 500;\n}\n```\n\n```xml post 使用\n---\ntitle: xxxx\nrepost: true\n---\n```\n\n[预览](https://lruihao.cn/tags/他山之石/)\n\n### 热度页面\n\n> 打开`hexo\\themes\\next\\layout`新建 top.swig 文件，写下如下内容保存：\n\n```swig\n{% extends '_layout.swig' %}\n{% import '_macro/sidebar.swig' as sidebar_template %}\n\n  {% block title %}{#\n  #}{% set page_title_suffix = ' | ' + title %}{#\n\n  #}{% if page.type === \"categories\" and not page.title %}{#\n    #}{{ __('title.category') + page_title_suffix }}{#\n  #}{% elif page.type === \"tags\" and not page.title %}{#\n    #}{{ __('title.tag') + page_title_suffix }}{#\n\n  #}{% elif page.type === \"photos\" and not page.title %}{#\n  #}{{ __('title.photos') + page_title_suffix }}{#\n\n  #}{% else %}{#\n    #}{{ page.title + page_title_suffix }}{#\n  #}{% endif %}{#\n#}{% endblock %}\n\n{% block page_class %}page-post-detail{% endblock %}\n\n{% block content %}\n\n  <div id=\"posts\" class=\"posts-expand\">\n    {##################}\n    {#### PAGE BLOCK ###}\n    {##################}\n    <div class=\"post-block page\">\n      {% include '_partials/page-header.swig' %}\n      {#################}\n      {#### PAGE BODY ###}\n      {#################}\n\n      <div class=\"post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction && page.direction.toLowerCase() === 'rtl' %} rtl{% endif %}\">\n        {{ page.content }}\n        <div id=\"top\"></div>\n      </div>\n\n      <style>\n        #top{\n          display: flex;\n          flex-direction: row;\n          justify-content: space-between;\n          flex-wrap: wrap;\n          width: 100%;\n          min-height: calc({{ page.limit }} * 20px);\n        }\n        #top div{\n          width: 400px;\n          height: 40px;\n          max-width: 400px;\n          overflow: hidden;\n          white-space: nowrap;\n          text-overflow: ellipsis;\n        }\n        #top a{\n          color: #555;\n          text-decoration: none;\n          outline: 0;\n          border-bottom: 1px solid #999;\n          word-wrap: break-word;\n        }\n      </style>\n      <script src=\"https://cdn1.lncld.net/static/js/av-core-mini-0.6.4.js\"></script>\n      <script>AV.initialize(\"{{ theme.valine.appid }}\", \"{{ theme.valine.appkey }}\");</script>\n      <script type=\"text/javascript\">\n        setTimeout(function(){\n          var time=0\n          var title=\"\"\n          var url=\"\"\n          var query = new AV.Query('Counter');\n          query.notEqualTo('id',0);\n          query.descending('time');\n          query.limit({{ page.limit }}); //设置篇数\n          query.find().then(function (todo) {\n            for (var i=0;i<{{ page.limit }};i++){\n              var result=todo[i].attributes;\n              time=result.time;\n              title=result.title;\n              category=result.categories\n              url=result.url;\n              var content=\"<div>\"+\"【文章热度：\"+time+\"℃】\"+\"<a href='\"+\"{{ config.url }}\"+\"\"+url+\"'>\"+title+\"</a>\"+\"</div>\";\n              document.getElementById(\"top\").innerHTML+=content;\n            }\n          }, function (error) {\n            console.log(\"error\");\n          });\n        },1000)\n      </script>\n\n      {#####################}\n      {#### END PAGE BODY ###}\n      {#####################}\n    </div>\n    {% include '_partials/breadcrumb.swig' %}\n    {######################}\n    {#### END PAGE BLOCK ###}\n    {######################}\n  </div>\n\n{% endblock %}\n\n{% block sidebar %}\n  {{ sidebar_template.render(false) }}\n{% endblock %}\n\n{% block script_extra %}\n  {% include '_scripts/pages/post-details.swig' %}\n{% endblock %}\n```\n\n其中第 36 行改成你自己的 leancloud 的 appid 和 appkey, 比如我的是在主题配置文件里面的 valine 配置下，所以我就写成`theme.valine.appid`。和我一样就不需要修改，其他自行配置。\n\n然后`hexo n page top`新建一个页面文章配置写下如下内容，limit 表示显示篇数：\n\n```XMl top.md\n---\ntitle: 热度\nlayout: top\nlimit: 20\n---\n```\n\n### 复制按钮样式\n\n![](images/lightbtn.png)\n![](images/nightbtn.png)\n![](images/3dbtn.png)\n\n> 本来只想简单美化一下变成 night 样式的，后来写完发现 3dbtn 也挺喜欢的。\n\n```java config 配置\ncodeblock:\n  ## Manual define the border radius in codeblock\n  ## Leave it empty for the default 1\n  border_radius: 5\n  ## Add copy button on codeblock\n  copy_button:\n    enable: true\n    ## Show text copy result\n    show_result: true\n    ## Style: 'light,night,flat,3dbtn' is currently available, leave it empty or light is default theme\n    style: night\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexo-theme-next/  \n\n"
  },
  {
    "path": "posts/hexo-to-hugo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>个人博客从 Hexo 迁移至 Hugo | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\n\"><meta name=keywords content='FixIt,Hexo,hugo'><meta itemprop=name content=\"个人博客从 Hexo 迁移至 Hugo\"><meta itemprop=description content=\"电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\"><meta itemprop=datePublished content=\"2021-10-03T15:27:58+08:00\"><meta itemprop=dateModified content=\"2024-11-06T19:42:55+08:00\"><meta itemprop=wordCount content=\"1452\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"FixIt,Hexo,Hugo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexo-to-hugo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"个人博客从 Hexo 迁移至 Hugo\"><meta property=\"og:description\" content=\"电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-03T15:27:58+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-06T19:42:55+08:00\"><meta property=\"article:tag\" content=\"FixIt\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"个人博客从 Hexo 迁移至 Hugo\"><meta name=twitter:description content=\"电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexo-to-hugo/ title=\"个人博客从 Hexo 迁移至 Hugo | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/friends/ title=友情链接><link rel=next type=text/html href=https://lruihao.cn/posts/github-actions/ title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexo-to-hugo/index.md title=\"个人博客从 Hexo 迁移至 Hugo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"个人博客从 Hexo 迁移至 Hugo\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-to-hugo\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"FixIt, Hexo, hugo\",\"wordcount\":1452,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-to-hugo\\/\",\"datePublished\":\"2021-10-03T15:27:58+08:00\",\"dateModified\":\"2024-11-06T19:42:55+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexo-to-hugo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>个人博客从 Hexo 迁移至 Hugo</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>个人博客从 Hexo 迁移至 Hugo</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-03 15:27:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-03>2021-10-03</time></span>&nbsp;<span title=\"更新于 2024-11-06 19:42:55\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-06>2024-11-06</time></span>&nbsp;<span title=\"1452 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"个人博客从 Hexo 迁移至 Hugo\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#hugo-准备>Hugo 准备</a><ol><li><a href=#概念>概念</a></li><li><a href=#安装>安装</a></li><li><a href=#生成站点>生成站点</a></li><li><a href=#创建文章>创建文章</a></li><li><a href=#添加主题>添加主题</a></li><li><a href=#在本地启动网站>在本地启动网站</a></li><li><a href=#hugo-build>hugo build</a></li></ol></li><li><a href=#写作指北>写作指北</a></li><li><a href=#todo-list>Todo list</a><ol><li><a href=#base>Base</a></li><li><a href=#theme-fixit>Theme FixIt</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。</p></blockquote><h2 class=heading-element id=hugo-准备><span>1 Hugo 准备</span>\n<a href=#hugo-%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=概念><span>1.1 概念</span>\n<a href=#%e6%a6%82%e5%bf%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again.</p></blockquote><p>那 hugo 基于编译语言 GO 构建，对于静态页面的构建肯定是碾压 hexo 的存在，其官方标语也是很直白 <code>\"The world’s fastest framework for building websites\"</code>, 作为先后使用过 hexo 和 hugo 的我来说，这确实名副其实。</p><ul><li><a href=https://gohugo.io target=_blank rel=\"external nofollow noopener noreferrer\">gohugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h3 class=heading-element id=安装><span>1.2 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>hugo 提供了很多种安装方式，Git, Docker, Binary.<br>个人电脑使用二进制安装是最方便快捷的，无需安装其他依赖。<br>到 <a href=https://github.com/gohugoio/hugo/releases target=_blank rel=\"external nofollow noopener noreferrer\">Hugo Releases<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 下载对应的 windows 操作系统版本的 Hugo 二进制文件，玩就要玩全的，所以我就选择了扩展版本，此次选择的最新版为 <code>hugo_extended_0.88.1_Windows-64bit.zip</code>, 然后自行解压安装即可。</p><h3 class=heading-element id=生成站点><span>1.3 生成站点</span>\n<a href=#%e7%94%9f%e6%88%90%e7%ab%99%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用 Hugo 快速生成站点，比如希望生成到 <code>/path/to/site</code> 路径：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo new site /path/to/site</span></span></code></pre></td></tr></table></div></div></div><p>站点目录结构：</p><pre><code>▸ archetypes/    # 配置文章模板，相当于 hexo 的 scaffolds\n▸ content/       # 文章页面内容，相当于 hexo 的 source\n▸ data/          # 可存放一些 yaml, json, toml 格式的数据\n▸ layouts/       # 页面布局源码，改造主题可不动主题源码\n▸ static/        # 静态文件存放\n  config.toml    # 站点配置文件，相当于 hexo 的 _config.yml\n</code></pre><h3 class=heading-element id=创建文章><span>1.4 创建文章</span>\n<a href=#%e5%88%9b%e5%bb%ba%e6%96%87%e7%ab%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>注：路径要写以 <code>content/</code> 为根目录的相对路径</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo new path/fileName</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=添加主题><span>1.5 添加主题</span>\n<a href=#%e6%b7%bb%e5%8a%a0%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>添加主题的方式选用 Git 子模组的形式，为了日后快速升级，避免在使用 hexo 中因大量魔改 next 主题而导致难以升级的困扰。<br>精挑细选最终选择了 <del><a href=https://github.com/dillonzq/LoveIt target=_blank rel=\"external nofollow noopener noreferrer\">LoveIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></del> => <a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git init\n</span></span><span class=line><span class=cl>git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt</span></span></code></pre></td></tr></table></div></div></div><p>在 <code>config.toml</code> 添加 <del>theme = &ldquo;LoveIt&rdquo;</del></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=s2>&#34;FixIt&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=在本地启动网站><span>1.6 在本地启动网站</span>\n<a href=#%e5%9c%a8%e6%9c%ac%e5%9c%b0%e5%90%af%e5%8a%a8%e7%bd%91%e7%ab%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用以下命令启动网站：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo serve --disableFastRender</span></span></code></pre></td></tr></table></div></div></div><p>去查看 <code>http://localhost:1313</code></p><h3 class=heading-element id=hugo-build><span>1.7 hugo build</span>\n<a href=#hugo-build class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>使用以下命令生成静态文件，然后自己可手动选择部署到 github pages 或 COS 等服务器</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo --minify</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=写作指北><span>2 写作指北</span>\n<a href=#%e5%86%99%e4%bd%9c%e6%8c%87%e5%8c%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/zh-cn/theme-documentation-basics target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题文档 - 基本概念<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/zh-cn/theme-documentation-content/ target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题文档 - 内容<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/zh-cn/theme-documentation-built-in-shortcodes/ target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题文档 - 内置 Shortcodes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/zh-cn/theme-documentation-extended-shortcodes/ target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题文档 - 扩展 Shortcodes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=todo-list><span>3 Todo list</span>\n<a href=#todo-list class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><a href=https://github.com/Lruihao/hugo-blog target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>本站源码备份</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/hugo-blog</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><blockquote><p>原来 hexo 做了大量的美化和扩展功能，迁移到 hugo 想尽可能多的保留。取之精华，去其糟粕。</p></blockquote><h3 class=heading-element id=base><span>3.1 Base</span>\n<a href=#base class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>迁移 hexo 所有文章内容</p></li><li><details><summary>迁移 hexo 所有页面内容</summary><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>留言页面</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>网友打赏支持页面，整合到留言页面</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>重写关于页面，一切从简</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>友情链接页面</li><li data-task=- title=已取消><i class=\"checkbox-icon fa-solid fa-square-xmark\" aria-hidden=true></i>重写 404 页面</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>站点时间和不蒜子计数改到 hello-world 页面</li></ul></li></ul></details><ul><li data-task=- title=已取消><p><i class=\"checkbox-icon fa-solid fa-square-xmark\" aria-hidden=true></i><a href=https://img.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">cos-album<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://sz.journey.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">🍚 饭醉团伙 🍷<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 整合到博客 cos-album/ <a href=https://github.com/Lruihao/hugo-blog/issues/7 target=_blank rel=\"external nofollow noopener noreferrer\">#7 (wontfix)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></li><li data-task=- title=已取消><p><i class=\"checkbox-icon fa-solid fa-square-xmark\" aria-hidden=true></i>新增 demo/, 以子模组的形式存放前端 demo, serverless 记账本等（保持原本博客的纯粹性）</p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>博客 valine 评论，阅读数迁移，可用 leancloud API 写代码转化（但似乎没必要）</p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>博客 SEO 优化迁移 <sup><a href=#seo-ref>baidu_urls.txt</a></sup><a id=seo></a></p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i><code>Github actions</code> 自动部署到 <strong>Github pages</strong> 和 <strong>COS</strong> 脚本编写</p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>hugo 本地管理 shell 脚本工具编写</p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>知乎卡片式链接 改成 hugo shortcodes, 取名 <code>cardlink</code></p></li><li><details><summary>zxm/沐目体 归档 :( <a href=https://github.com/Lruihao/hugo-blog/issues/6 target=_blank rel=\"noopener noreferrer\">#6</a></summary><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>安装 沐目体</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>压缩 沐目体 fontspider</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>沐目体 post 修订</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>typyit 配合 随机诗词和网易云热评 API</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>实时预览功能 base on Vuejs</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>[恋爱叙事体] <code>love</code> 归档</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>[光] 归档</li></ul></li></ul></details><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>hugo 内容加密研究 <a href=https://github.com/Lruihao/hugo-blog/issues/3 target=_blank rel=\"external nofollow noopener noreferrer\">#3<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i><code>Lruihao/hugo-blog</code> README 撰写，MIT, 发布 1.0.0 版本做完整备份，base on theme version</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>更换 gravatar 头像 <a href=https://github.com/Lruihao/hugo-blog/issues/4 target=_blank rel=\"external nofollow noopener noreferrer\">#4<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>博客在线编辑器研究 github1s 等 <a href=https://github.com/Lruihao/hugo-blog/issues/5 target=_blank rel=\"external nofollow noopener noreferrer\">#5<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><hr><p><a id=seo-ref></a><code>[baidu_urls.txt]:</code><a href=#seo>↩︎</a></p><p>生成百度链接集合小技巧，关掉归档分页，在归档页面控制台执行以下代码即可获得所有文章链接</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kd>let</span> <span class=nx>urls</span> <span class=o>=</span> <span class=p>[];</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=p>(</span><span class=kd>let</span> <span class=nx>a</span> <span class=k>of</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelectorAll</span><span class=p>(</span><span class=s1>&#39;.archive-item a&#39;</span><span class=p>))</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>urls</span><span class=p>.</span><span class=nx>push</span><span class=p>(</span><span class=nx>a</span><span class=p>.</span><span class=nx>href</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>urls</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=s1>&#39;\\n&#39;</span><span class=p>));</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p><a href=https://github.com/hugo-fixit/FixIt/releases/tag/v0.2.15 rel=external target=_blank class=version-link><img class=version src=/images/version/0.2.15-new.min.svg alt=\"FixIt 0.2.15 | 新增\"></a> FixIt 主题已支持自动输出 <code>baidu_urls.txt</code> 文件</p></blockquote><hr><h3 class=heading-element id=theme-fixit><span>3.2 Theme FixIt</span>\n<a href=#theme-fixit class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><del>hugo LoveIt 主题整体优化，必要时建 PR 或 issue 到 LoveIt 仓库</del> (LoveIt 已停更一年多）<br><del>先把自己发现和 LoveIt 原 repo 的 issue 尽可能的修复，修改的原则是：<strong>不改动原项目代码</strong>，</del><br><del>唯一途径就是在站点相同的目录用<strong>新增</strong>的方式替代<strong>修改、删除</strong>操作。</del><br><del>之后再等等看作者是否还会更新，如已做大量的更改，再做考虑整合为一个新的主题。</del><br>为了更好的完善博客功能以及修复 BUG 已创建新的主题 FixIt (fork from LoveIt)</p></blockquote><a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>Hugo theme FixIt</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/FixIt</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><p>进度更新至 <a href=https://github.com/Lruihao/hugo-blog/issues/8 target=_blank rel=\"external nofollow noopener noreferrer\">#8<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>CSS 优化，背景，元素圆角化，外圆内方，居中对齐等</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>沐目体引入</li><li data-task=\" \" title=未完成><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i>TOC 序号生成</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>Fix: 无标题时也会生成目录的 BUG</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>subtitle 等细节优化</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>Fix: typeit 打印代码时跑版的问题</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>Fix: 文章 <code>h1</code> 标题多行跑版</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>Code Review</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-06 19:42:55\">更新于 2024-11-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/1c5760c0529af49c8c73e9fa8b09273afc80a96e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Fix: 修复任务列表正则表达式匹配不准确的问题&#10&#10Commit: 1c5760c0529af49c8c73e9fa8b09273afc80a96e [1c5760c]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-06 19:42:55\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>1c5760c</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexo-to-hugo/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-to-hugo.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexo-to-hugo.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E4%BB%8E+Hexo+%E8%BF%81%E7%A7%BB%E8%87%B3+Hugo&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E4%BB%8E+Hexo+%E8%BF%81%E7%A7%BB%E8%87%B3+Hugo%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexo-to-hugo/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-to-hugo.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexo-to-hugo/ data-title=\"个人博客从 Hexo 迁移至 Hugo\" data-hashtags=FixIt,Hexo,hugo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexo-to-hugo/ data-hashtag=FixIt><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexo-to-hugo/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexo-to-hugo/ data-title=\"个人博客从 Hexo 迁移至 Hugo\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexo-to-hugo/ data-title=\"个人博客从 Hexo 迁移至 Hugo\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit/ class=post-tag title=\"标签 - FixIt\">FixIt</a><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/hugo-blog/ class=post-nav-item rel=prev title=Lruihao/hugo-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/hugo-blog</a><a href=/posts/github-actions/ class=post-nav-item rel=next title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\">Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#hugo-准备>Hugo 准备</a><ol><li><a href=#概念>概念</a></li><li><a href=#安装>安装</a></li><li><a href=#生成站点>生成站点</a></li><li><a href=#创建文章>创建文章</a></li><li><a href=#添加主题>添加主题</a></li><li><a href=#在本地启动网站>在本地启动网站</a></li><li><a href=#hugo-build>hugo build</a></li></ol></li><li><a href=#写作指北>写作指北</a></li><li><a href=#todo-list>Todo list</a><ol><li><a href=#base>Base</a></li><li><a href=#theme-fixit>Theme FixIt</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/4ca38f0ff587e5775a2d6f1a2dde3c48.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/4ca38f0ff587e5775a2d6f1a2dde3c48.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexo-to-hugo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexo-to-hugo/index.md",
    "content": "# 个人博客从 Hexo 迁移至 Hugo\n\n\n> 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\n\n<!--more-->\n\n## Hugo 准备\n\n### 概念\n\n> Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again.\n\n那 hugo 基于编译语言 GO 构建，对于静态页面的构建肯定是碾压 hexo 的存在，其官方标语也是很直白 `\"The world’s fastest framework for building websites\"`, 作为先后使用过 hexo 和 hugo 的我来说，这确实名副其实。\n\n- [gohugo](https://gohugo.io)\n\n### 安装\n\nhugo 提供了很多种安装方式，Git, Docker, Binary.  \n个人电脑使用二进制安装是最方便快捷的，无需安装其他依赖。  \n到 [Hugo Releases](https://github.com/gohugoio/hugo/releases) 下载对应的 windows 操作系统版本的 Hugo 二进制文件，玩就要玩全的，所以我就选择了扩展版本，此次选择的最新版为 `hugo_extended_0.88.1_Windows-64bit.zip`, 然后自行解压安装即可。\n\n### 生成站点\n\n使用 Hugo 快速生成站点，比如希望生成到 `/path/to/site` 路径：\n\n```bash\nhugo new site /path/to/site\n```\n\n站点目录结构：\n\n<!-- markdownlint-disable MD046 -->\n\n    ▸ archetypes/    # 配置文章模板，相当于 hexo 的 scaffolds\n    ▸ content/       # 文章页面内容，相当于 hexo 的 source\n    ▸ data/          # 可存放一些 yaml, json, toml 格式的数据\n    ▸ layouts/       # 页面布局源码，改造主题可不动主题源码\n    ▸ static/        # 静态文件存放\n      config.toml    # 站点配置文件，相当于 hexo 的 _config.yml\n\n### 创建文章\n\n注：路径要写以 `content/` 为根目录的相对路径\n\n```bash\nhugo new path/fileName\n```\n\n### 添加主题\n\n添加主题的方式选用 Git 子模组的形式，为了日后快速升级，避免在使用 hexo 中因大量魔改 next 主题而导致难以升级的困扰。  \n精挑细选最终选择了 ~~[LoveIt](https://github.com/dillonzq/LoveIt)~~ => [FixIt](https://github.com/Lruihao/FixIt)\n\n```bash\ngit init\ngit submodule add https://github.com/Lruihao/FixIt.git themes/FixIt\n```\n\n在 `config.toml` 添加 ~~theme = \"LoveIt\"~~\n\n```toml\ntheme = \"FixIt\"\n```\n\n### 在本地启动网站\n\n使用以下命令启动网站：\n\n```bash\nhugo serve --disableFastRender\n```\n\n去查看 `http://localhost:1313`\n\n### hugo build\n\n使用以下命令生成静态文件，然后自己可手动选择部署到 github pages 或 COS 等服务器\n\n```bash\nhugo --minify\n```\n\n## 写作指北\n\n- [FixIt 主题文档 - 基本概念](https://fixit.lruihao.cn/zh-cn/theme-documentation-basics)\n- [FixIt 主题文档 - 内容](https://fixit.lruihao.cn/zh-cn/theme-documentation-content/)\n- [FixIt 主题文档 - 内置 Shortcodes](https://fixit.lruihao.cn/zh-cn/theme-documentation-built-in-shortcodes/)\n- [FixIt 主题文档 - 扩展 Shortcodes](https://fixit.lruihao.cn/zh-cn/theme-documentation-extended-shortcodes/)\n\n## Todo list\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"https://github.com/Lruihao/hugo-blog\" content=\"本站源码备份\" card=true >}}\n\n> 原来 hexo 做了大量的美化和扩展功能，迁移到 hugo 想尽可能多的保留。取之精华，去其糟粕。\n\n### Base\n\n<!-- markdownlint-disable MD033 -->\n\n- [x] 迁移 hexo 所有文章内容\n- <details>\n  <summary>迁移 hexo 所有页面内容</summary>\n\n  - [x] 留言页面\n  - [x] 网友打赏支持页面，整合到留言页面\n  - [x] 重写关于页面，一切从简\n  - [x] 友情链接页面\n  - [-] 重写 404 页面\n  - [x] 站点时间和不蒜子计数改到 hello-world 页面\n\n</details>\n\n- [-] [cos-album](https://img.lruihao.cn) 和 [🍚 饭醉团伙 🍷](https://sz.journey.lruihao.cn) 整合到博客 cos-album/ [#7 (wontfix)](https://github.com/Lruihao/hugo-blog/issues/7)\n- [-] 新增 demo/, 以子模组的形式存放前端 demo, serverless 记账本等（保持原本博客的纯粹性）\n- [x] 博客 valine 评论，阅读数迁移，可用 leancloud API 写代码转化（但似乎没必要）\n- [x] 博客 SEO 优化迁移 <sup>[baidu_urls.txt](#seo-ref)</sup><a id=\"seo\"></a>\n- [x] `Github actions` 自动部署到 **Github pages** 和 **COS** 脚本编写\n- [x] hugo 本地管理 shell 脚本工具编写\n- [x] 知乎卡片式链接 改成 hugo shortcodes, 取名 `cardlink`\n- <details>\n  <summary>zxm/沐目体 归档 :( <a href=\"https://github.com/Lruihao/hugo-blog/issues/6\" target=\"_blank\" rel=\"noopener noreferrer\">#6</a></summary>\n\n  - [x] 安装 沐目体\n  - [x] 压缩 沐目体 fontspider\n  - [x] 沐目体 post 修订\n  - [x] typyit 配合 随机诗词和网易云热评 API\n  - [x] 实时预览功能 base on Vuejs\n  - [x] [恋爱叙事体] `love` 归档\n  - [x] [光] 归档\n\n</details>\n\n- [x] hugo 内容加密研究 [#3](https://github.com/Lruihao/hugo-blog/issues/3)\n- [x] `Lruihao/hugo-blog` README 撰写，MIT, 发布 1.0.0 版本做完整备份，base on theme version\n- [x] 更换 gravatar 头像 [#4](https://github.com/Lruihao/hugo-blog/issues/4)\n- [x] 博客在线编辑器研究 github1s 等 [#5](https://github.com/Lruihao/hugo-blog/issues/5)\n\n---\n\n<a id=\"seo-ref\"></a>`[baidu_urls.txt]:`[↩︎](#seo)\n\n生成百度链接集合小技巧，关掉归档分页，在归档页面控制台执行以下代码即可获得所有文章链接\n\n```javascript\nlet urls = [];\nfor (let a of document.querySelectorAll('.archive-item a')) {\n  urls.push(a.href);\n}\nconsole.log(urls.join('\\n'));\n```\n\n> {{< version 0.2.15 >}} FixIt 主题已支持自动输出 `baidu_urls.txt` 文件\n\n---\n\n### Theme FixIt\n\n> ~~hugo LoveIt 主题整体优化，必要时建 PR 或 issue 到 LoveIt 仓库~~ (LoveIt 已停更一年多）  \n> ~~先把自己发现和 LoveIt 原 repo 的 issue 尽可能的修复，修改的原则是：**不改动原项目代码**，~~  \n> ~~唯一途径就是在站点相同的目录用**新增**的方式替代**修改、删除**操作。~~  \n> ~~之后再等等看作者是否还会更新，如已做大量的更改，再做考虑整合为一个新的主题。~~  \n> 为了更好的完善博客功能以及修复 BUG 已创建新的主题 FixIt (fork from LoveIt)\n\n{{< link href=\"https://github.com/Lruihao/FixIt\" content=\"Hugo theme FixIt\" card=true >}}\n\n进度更新至 [#8](https://github.com/Lruihao/hugo-blog/issues/8)\n\n- [x] CSS 优化，背景，元素圆角化，外圆内方，居中对齐等\n- [x] 沐目体引入\n- [ ] TOC 序号生成\n- [x] Fix: 无标题时也会生成目录的 BUG\n- [x] subtitle 等细节优化\n- [x] Fix: typeit 打印代码时跑版的问题\n- [x] Fix: 文章 `h1` 标题多行跑版\n- [x] Code Review\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexo-to-hugo/  \n\n"
  },
  {
    "path": "posts/hexo-wordcount/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo Next 主题添加字数统计（2018） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\n\"><meta name=keywords content='Hexo,字数统计'><meta itemprop=name content=\"hexo next 主题添加字数统计（2018）\"><meta itemprop=description content=\"警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\"><meta itemprop=datePublished content=\"2018-08-30T13:15:50+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"757\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,字数统计\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexo-wordcount/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo next 主题添加字数统计（2018）\"><meta property=\"og:description\" content=\"警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-30T13:15:50+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"字数统计\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo next 主题添加字数统计（2018）\"><meta name=twitter:description content=\"警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexo-wordcount/ title=\"hexo next 主题添加字数统计（2018） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexo-d-error/ title=\"hexo d 出错\"><link rel=next type=text/html href=https://lruihao.cn/posts/vim/ title=\"Vim 速查表\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexo-wordcount/index.md title=\"hexo next 主题添加字数统计（2018） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo next 主题添加字数统计（2018）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-wordcount\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, 字数统计\",\"wordcount\":757,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexo-wordcount\\/\",\"datePublished\":\"2018-08-30T13:15:50+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexo-wordcount/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo Next 主题添加字数统计（2018）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo Next 主题添加字数统计（2018）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-30 13:15:50\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-30>2018-08-30</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"757 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo Next 主题添加字数统计（2018）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装>安装</a></li><li><a href=#post-添加>post 添加</a></li><li><a href=#全站添加>全站添加</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p><strong>2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！</strong></p><p>最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)</p></div></div></div><h2 class=heading-element id=安装><span>1 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/willin/hexo-wordcount target=_blank rel=\"external nofollow noopener noreferrer\">wordcount github<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n如果没有安装 hexo-wordcount 插件，先安装该插件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>npm i --save hexo-wordcount\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl># Node 版本 7.6.0 之前，请安装 2.x 版本 (Node.js v7.6.0 and previous)\n</span></span><span class=line><span class=cl>npm install hexo-wordcount@2 --save</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=post-添加><span>2 post 添加</span>\n<a href=#post-%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开<code>hexo\\themes\\hexo-theme-next\\layout\\_macro</code>路径下的 post.swig 文件，既然没有字数统计那么我们就加一个，简单暴力地直接在阅读数后面加上一条就好了，在文件类搜索关键词<code>busuanzi</code>, 我用的是不蒜子，如果用的了 leancloud 的搜 leancloud 就好了，其他类似。找到这段代码后</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% if not is_index and theme.busuanzi_count.enable and theme.busuanzi_count.post_views %}\n</span></span><span class=line><span class=cl>    &lt;span class=&#34;post-meta-divider&#34;&gt;|&lt;/span&gt;\n</span></span><span class=line><span class=cl>    &lt;span class=&#34;post-meta-item-icon&#34;\n</span></span><span class=line><span class=cl>    {% if not theme.post_meta.item_text %} title=&#34;{{ __(&#39;post.views&#39;) }}&#34; {% endif %}&gt;\n</span></span><span class=line><span class=cl>    &lt;i class=&#34;fa fa-{{ theme.busuanzi_count.post_views_icon }}&#34;&gt;&lt;/i&gt;\n</span></span><span class=line><span class=cl>    {% if theme.post_meta.item_text %} {{__(&#39;post.views&#39;) + __(&#39;symbol.colon&#39;) }} {% endif %}\n</span></span><span class=line><span class=cl>    &lt;span class=&#34;busuanzi-value&#34; id=&#34;busuanzi_value_page_pv&#34; &gt;&lt;/span&gt;\n</span></span><span class=line><span class=cl>    &lt;/span&gt;\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>{% endif %}</span></span></code></pre></td></tr></table></div></div></div><p>在<code>endif</code>上面，即本文代码块那个空行处添加以下代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;span class=&#34;post-meta-divider&#34;&gt;|&lt;/span&gt;\n</span></span><span class=line><span class=cl>&lt;span title=&#34;{{ __(&#39;post.wordcount&#39;) }}&#34;&gt;&lt;span class=&#34;post-meta-item-icon&#34;&gt;&lt;i class=&#34;fa fa-file-word-o&#34;&gt;&lt;/i&gt;&lt;/span&gt;字数： {{ wordcount(post.content) }}&lt;/span&gt;</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=全站添加><span>3 全站添加</span>\n<a href=#%e5%85%a8%e7%ab%99%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开<code>hexo\\themes\\hexo-theme-next\\layout\\_partials</code>路径下 footer.swig 文件，在你喜欢的位置添加以下代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;div class=&#34;theme-info&#34;&gt;\n</span></span><span class=line><span class=cl>  &lt;div class=&#34;powered-by&#34;&gt;&lt;/div&gt;\n</span></span><span class=line><span class=cl>  &lt;span class=&#34;post-count&#34;&gt;全站共 {{ totalcount(site) }} 字&lt;/span&gt;\n</span></span><span class=line><span class=cl>&lt;/div&gt;</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexo-wordcount/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-wordcount.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexo-wordcount.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+next+%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1%EF%BC%882018%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+next+%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1%EF%BC%882018%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexo-wordcount/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexo-wordcount.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexo-wordcount/ data-title=\"Hexo Next 主题添加字数统计（2018）\" data-hashtags=Hexo,字数统计><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexo-wordcount/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexo-wordcount/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexo-wordcount/ data-title=\"Hexo Next 主题添加字数统计（2018）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexo-wordcount/ data-title=\"Hexo Next 主题添加字数统计（2018）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/ class=post-tag title=\"标签 - 字数统计\">字数统计</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexo-d-error/ class=post-nav-item rel=prev title=\"Hexo D 出错\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo D 出错</a><a href=/posts/vim/ class=post-nav-item rel=next title=\"Vim 速查表\">Vim 速查表<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装>安装</a></li><li><a href=#post-添加>post 添加</a></li><li><a href=#全站添加>全站添加</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0d594e779c5ae2bd9b7ddba4f5074b7a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0d594e779c5ae2bd9b7ddba4f5074b7a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexo-wordcount/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexo-wordcount/index.md",
    "content": "# Hexo Next 主题添加字数统计（2018）\n\n\n{{< admonition warning >}}\n**2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！**\n\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\n{{< /admonition >}}\n\n<!--more-->\n\n## 安装\n\n[wordcount github](https://github.com/willin/hexo-wordcount)\n如果没有安装 hexo-wordcount 插件，先安装该插件：\n\n```\nnpm i --save hexo-wordcount\n\n# Node 版本 7.6.0 之前，请安装 2.x 版本 (Node.js v7.6.0 and previous)\nnpm install hexo-wordcount@2 --save\n```\n\n## post 添加\n\n打开`hexo\\themes\\hexo-theme-next\\layout\\_macro`路径下的 post.swig 文件，既然没有字数统计那么我们就加一个，简单暴力地直接在阅读数后面加上一条就好了，在文件类搜索关键词`busuanzi`, 我用的是不蒜子，如果用的了 leancloud 的搜 leancloud 就好了，其他类似。找到这段代码后\n\n```\n{% if not is_index and theme.busuanzi_count.enable and theme.busuanzi_count.post_views %}\n    <span class=\"post-meta-divider\">|</span>\n    <span class=\"post-meta-item-icon\"\n    {% if not theme.post_meta.item_text %} title=\"{{ __('post.views') }}\" {% endif %}>\n    <i class=\"fa fa-{{ theme.busuanzi_count.post_views_icon }}\"></i>\n    {% if theme.post_meta.item_text %} {{__('post.views') + __('symbol.colon') }} {% endif %}\n    <span class=\"busuanzi-value\" id=\"busuanzi_value_page_pv\" ></span>\n    </span>\n\n{% endif %}\n```\n\n在`endif`上面，即本文代码块那个空行处添加以下代码\n\n```\n<span class=\"post-meta-divider\">|</span>\n<span title=\"{{ __('post.wordcount') }}\"><span class=\"post-meta-item-icon\"><i class=\"fa fa-file-word-o\"></i></span>字数： {{ wordcount(post.content) }}</span>\n```\n\n## 全站添加\n\n打开`hexo\\themes\\hexo-theme-next\\layout\\_partials`路径下 footer.swig 文件，在你喜欢的位置添加以下代码\n\n```\n<div class=\"theme-info\">\n  <div class=\"powered-by\"></div>\n  <span class=\"post-count\">全站共 {{ totalcount(site) }} 字</span>\n</div>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexo-wordcount/  \n\n"
  },
  {
    "path": "posts/hexobuild/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo+github 搭建个人博客及美化 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"更多关于 hexo\n1 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\n\"><meta name=keywords content='Hexo,Node.js'><meta itemprop=name content=\"hexo+github 搭建个人博客及美化\"><meta itemprop=description content=\"更多关于 hexo\n1 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\"><meta itemprop=datePublished content=\"2018-06-01T14:34:23+08:00\"><meta itemprop=dateModified content=\"2021-10-03T15:27:58+08:00\"><meta itemprop=wordCount content=\"1737\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,Node.js\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexobuild/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo+github 搭建个人博客及美化\"><meta property=\"og:description\" content=\"更多关于 hexo\n1 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-01T14:34:23+08:00\"><meta property=\"article:modified_time\" content=\"2021-10-03T15:27:58+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo+github 搭建个人博客及美化\"><meta name=twitter:description content=\"更多关于 hexo\n1 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexobuild/ title=\"hexo+github 搭建个人博客及美化 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexowrite/ title=\"hexo 添加图片，音乐，链接，视频\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ title=戏子春秋><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexobuild/index.md title=\"hexo+github 搭建个人博客及美化 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo+github 搭建个人博客及美化\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexobuild\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, Node.js\",\"wordcount\":1737,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexobuild\\/\",\"datePublished\":\"2018-06-01T14:34:23+08:00\",\"dateModified\":\"2021-10-03T15:27:58+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexobuild/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo+github 搭建个人博客及美化</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo+github 搭建个人博客及美化</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-01 14:34:23\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-01>2018-06-01</time></span>&nbsp;<span title=\"更新于 2021-10-03 15:27:58\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2021-10-03>2021-10-03</time></span>&nbsp;<span title=\"1737 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo+github 搭建个人博客及美化\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#首先>首先</a></li><li><a href=#hexo-安装>hexo 安装</a></li><li><a href=#建站>建站</a></li><li><a href=#安装-hexo-插件>安装 hexo 插件</a></li><li><a href=#本地查看效果>本地查看效果</a></li><li><a href=#部署>部署</a></li><li><a href=#美化>美化</a><ol><li><a href=#博文置顶>博文置顶</a></li><li><a href=#about-页面>about 页面</a></li><li><a href=#添加搜索评论分享>添加搜索，评论，分享</a></li><li><a href=#添加访客数阅读量等>添加访客数，阅读量等</a><ol><li><a href=#文章阅读量>文章阅读量</a></li><li><a href=#站点访问量访客数>站点访问量，访客数</a></li></ol></li></ol></li><li><a href=#写文章>写文章</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2021-10-03，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><strong><a href=/categories/hexo/>更多关于 hexo</a></strong></p><h2 class=heading-element id=首先><span>1 首先</span>\n<a href=#%e9%a6%96%e5%85%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://hexo.io/zh-cn/docs/index.html target=_blank rel=\"external nofollow noopener noreferrer\">官方文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：</p><ul><li><a href=https://nodejs.org/en/ target=_blank rel=\"external nofollow noopener noreferrer\">Node.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://git-scm.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=hexo-安装><span>2 hexo 安装</span>\n<a href=#hexo-%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果你的电脑中已经安装上述必备程序，那么恭喜你！接下来只需要使用 npm 即可完成 Hexo 的安装。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install -g hexo-cli</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=建站><span>3 建站</span>\n<a href=#%e5%bb%ba%e7%ab%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装 Hexo 完成后，请执行下列命令，Hexo 将会在指定文件夹中新建所需要的文件。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hexo init &lt;folder&gt;\n</span></span><span class=line><span class=cl><span class=nb>cd</span> &lt;folder&gt;\n</span></span><span class=line><span class=cl>npm install</span></span></code></pre></td></tr></table></div></div></div><p><folder>为一个文件夹的名字\n新建完成后，指定文件夹的目录如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>.\n</span></span><span class=line><span class=cl>├── _config.yml\n</span></span><span class=line><span class=cl>├── package.json\n</span></span><span class=line><span class=cl>├── scaffolds\n</span></span><span class=line><span class=cl>├── source\n</span></span><span class=line><span class=cl>|   ├── _drafts\n</span></span><span class=line><span class=cl>|   └── _posts\n</span></span><span class=line><span class=cl>└── themes</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=安装-hexo-插件><span>4 安装 hexo 插件</span>\n<a href=#%e5%ae%89%e8%a3%85-hexo-%e6%8f%92%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>全装上吧，没事。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-generator-index --save\n</span></span><span class=line><span class=cl>npm install hexo-generator-archive --save\n</span></span><span class=line><span class=cl>npm install hexo-generator-category --save\n</span></span><span class=line><span class=cl>npm install hexo-generator-tag --save\n</span></span><span class=line><span class=cl>npm install hexo-server --save\n</span></span><span class=line><span class=cl>npm install hexo-deployer-git --save\n</span></span><span class=line><span class=cl>npm install hexo-deployer-heroku --save\n</span></span><span class=line><span class=cl>npm install hexo-deployer-rsync --save\n</span></span><span class=line><span class=cl>npm install hexo-deployer-openshift --save\n</span></span><span class=line><span class=cl>npm install hexo-renderer-marked@0.2 --save\n</span></span><span class=line><span class=cl>npm install hexo-renderer-stylus@0.2 --save\n</span></span><span class=line><span class=cl>npm install hexo-generator-feed@1 --save\n</span></span><span class=line><span class=cl>npm install hexo-generator-sitemap@1 --save</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=本地查看效果><span>5 本地查看效果</span>\n<a href=#%e6%9c%ac%e5%9c%b0%e6%9f%a5%e7%9c%8b%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>执行下面语句，执行完再登录 localhost:4000 查看效果（执行完不要按 Ctrl+C，不然就停止了）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hexo g\n</span></span><span class=line><span class=cl>hexo s</span></span></code></pre></td></tr></table></div></div></div><p><strong>其他步骤在这里不赘述，参见 <a href=https://my.oschina.net/ryaneLee/blog/638440 target=_blank rel=\"external nofollow noopener noreferrer\">超详细教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong>\n<strong><a href=https://lruihao.cn/posts/termux/ target=_blank rel=\"external nofollow noopener noreferrer\">安卓上搭建 hexo 博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><h2 class=heading-element id=部署><span>6 部署</span>\n<a href=#%e9%83%a8%e7%bd%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hexo g -d</span></span></code></pre></td></tr></table></div></div></div><p>部署后我们可以浏览器搜 username.github.io 查看自己的博客效果，比如我的 <a href=https://lruihao.github.io/ target=_blank rel=\"external nofollow noopener noreferrer\">lruihao.github.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=美化><span>7 美化</span>\n<a href=#%e7%be%8e%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><strong>这些美化都写的很详细，我建议你们自己好好看看吧，我也是在这里看到的，如果问我和这里说的是一样的。</strong></p><ul><li><a href=/categories/hexo/>hexo 个性化教程</a></li><li><a href=http://www.zhaojun.im target=_blank rel=\"external nofollow noopener noreferrer\">valine 特别鸣谢赵俊 👍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://asdfv1929.github.io/tags/Hexo/ target=_blank rel=\"external nofollow noopener noreferrer\">asdfv1929<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://hexo.io/themes/ target=_blank rel=\"external nofollow noopener noreferrer\">hexo 官方主题集合<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<del>我用的是 aloha 主题</del>，该主题 <a href=https://github.com/henryhuang/hexo-theme-aloha/wiki/zh_CN target=_blank rel=\"external nofollow noopener noreferrer\">官方文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<strong>后改用 next 主题 <a href=https://theme-next.iissnan.com/ target=_blank rel=\"external nofollow noopener noreferrer\">next 主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li><a href=https://hexo.io/plugins target=_blank rel=\"external nofollow noopener noreferrer\">hexo 官方插件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<del>说说我的主题遇到的一些问题，由于这个主题用的人少，所以作者优化的不是很好（next 使用最多），当然也可以反过来说，所以自己美化了一点</del></li></ul><h3 class=heading-element id=博文置顶><span>7.1 博文置顶</span>\n<a href=#%e5%8d%9a%e6%96%87%e7%bd%ae%e9%a1%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>修改 <code>hero-generator-index</code> 插件，把文件：<code>node_modules/hexo-generator-index/lib/generator.js</code> 内的代码替换为：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=err>&#39;</span><span class=n>use</span><span class=w> </span><span class=n>strict</span><span class=err>&#39;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>pagination</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>require</span><span class=p>(</span><span class=err>&#39;</span><span class=n>hexo</span><span class=o>-</span><span class=n>pagination</span><span class=err>&#39;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>module</span><span class=p>.</span><span class=na>exports</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>function</span><span class=p>(</span><span class=n>locals</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>config</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>this</span><span class=p>.</span><span class=na>config</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>posts</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>locals</span><span class=p>.</span><span class=na>posts</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>posts</span><span class=p>.</span><span class=na>data</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>posts</span><span class=p>.</span><span class=na>data</span><span class=p>.</span><span class=na>sort</span><span class=p>(</span><span class=n>function</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=w> </span><span class=n>b</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=na>top</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>top</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=c1>// 两篇文章 top 都有定义</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=na>top</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>top</span><span class=p>)</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>date</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>a</span><span class=p>.</span><span class=na>date</span><span class=p>;</span><span class=w> </span><span class=c1>// 若 top 值一样则按照文章日期降序排</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>else</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>top</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>a</span><span class=p>.</span><span class=na>top</span><span class=p>;</span><span class=w> </span><span class=c1>// 否则按照 top 值降序排</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=na>top</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=o>!</span><span class=n>b</span><span class=p>.</span><span class=na>top</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=c1>// 以下是只有一篇文章 top 有定义，那么将有 top 的排在前面（这里用异或操作居然不行 233）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>return</span><span class=w> </span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>a</span><span class=p>.</span><span class=na>top</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>top</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>return</span><span class=w> </span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>else</span><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>.</span><span class=na>date</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>a</span><span class=p>.</span><span class=na>date</span><span class=p>;</span><span class=w> </span><span class=c1>// 都没定义按照文章日期降序排</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>});</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>paginationDir</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>config</span><span class=p>.</span><span class=na>pagination_dir</span><span class=w> </span><span class=o>||</span><span class=w> </span><span class=err>&#39;</span><span class=n>page</span><span class=err>&#39;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>pagination</span><span class=p>(</span><span class=err>&#39;&#39;</span><span class=p>,</span><span class=w> </span><span class=n>posts</span><span class=p>,</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>perPage</span><span class=p>:</span><span class=w> </span><span class=n>config</span><span class=p>.</span><span class=na>index_generator</span><span class=p>.</span><span class=na>per_page</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>layout</span><span class=p>:</span><span class=w> </span><span class=o>[</span><span class=err>&#39;</span><span class=n>index</span><span class=err>&#39;</span><span class=p>,</span><span class=w> </span><span class=err>&#39;</span><span class=n>archive</span><span class=err>&#39;</span><span class=o>]</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>format</span><span class=p>:</span><span class=w> </span><span class=n>paginationDir</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=err>&#39;</span><span class=o>/%</span><span class=n>d</span><span class=o>/</span><span class=err>&#39;</span><span class=p>,</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>data</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>__index</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>});</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>};</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=about-页面><span>7.2 about 页面</span>\n<a href=#about-%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>about 页面可以用 HTML 写，你想怎么写都行，我用的最简单的方法，直接<code>hexo n page \"about\"</code>后，会生成一个 md 文件，也就是后面说的文章，直接写文章就行了。</p><h3 class=heading-element id=添加搜索评论分享><span>7.3 添加搜索，评论，分享</span>\n<a href=#%e6%b7%bb%e5%8a%a0%e6%90%9c%e7%b4%a2%e8%af%84%e8%ae%ba%e5%88%86%e4%ba%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>搜索功能真心好用，当文章多起来的时候，标签提供的作用已经很少了，只能简单索引，搜索却能精确查找，这里我用的依旧是最简单的本地站内搜索。\n安装<code>hexo-generator-searchdb</code></p><p>在站点的根目录下执行以下命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-generator-searchdb --save</span></span></code></pre></td></tr></table></div></div></div><p>配置站点配置文件\n新增以下内容到任意位置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>search:\n</span></span><span class=line><span class=cl>  path: search.xml\n</span></span><span class=line><span class=cl>  field: post\n</span></span><span class=line><span class=cl>  format: html\n</span></span><span class=line><span class=cl>  limit: 10000</span></span></code></pre></td></tr></table></div></div></div><p>配置主题配置文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>## Local search\n</span></span><span class=line><span class=cl>local_search:\n</span></span><span class=line><span class=cl>  enable: true</span></span></code></pre></td></tr></table></div></div></div><p><a href=https://blog.naaln.com/2016/07/hexo-with-algolia/ target=_blank rel=\"external nofollow noopener noreferrer\">algolia 参考文件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>让搜索引擎找到你的博客，还是看到邱承佳学长博文有写到 <a href=https://blog.csdn.net/qq_26891045/article/details/51280470 target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=添加访客数阅读量等><span>7.4 添加访客数，阅读量等</span>\n<a href=#%e6%b7%bb%e5%8a%a0%e8%ae%bf%e5%ae%a2%e6%95%b0%e9%98%85%e8%af%bb%e9%87%8f%e7%ad%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。</p><h4 class=heading-element id=文章阅读量><span>7.4.1 文章阅读量</span>\n<a href=#%e6%96%87%e7%ab%a0%e9%98%85%e8%af%bb%e9%87%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><blockquote><p>以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。</p></blockquote><p>打开以下路径在你喜欢的地方添加代码，<code>\\blog\\hexo\\themes\\主题名字、layout\\_partial</code>，找到 <code>article.ejs</code>文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>div</span> <span class=na>align</span><span class=o>=</span><span class=s>&#34;left&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_container_page_pv&#34;</span><span class=p>&gt;</span> 本文总阅读量<span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_value_page_pv&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>次 <span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=站点访问量访客数><span>7.4.2 站点访问量，访客数</span>\n<a href=#%e7%ab%99%e7%82%b9%e8%ae%bf%e9%97%ae%e9%87%8f%e8%ae%bf%e5%ae%a2%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>打开以下路径在你喜欢的地方添加代码，<code>\\blog\\hexo\\themes\\主题名字、layout\\_partial</code>，找到 <code>footer.ejs</code>文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js&#34;</span> <span class=na>async</span> <span class=na>defer</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_container_page_pv&#34;</span><span class=p>&gt;</span> 本站总访问量<span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_value_site_pv&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>次 | <span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_container_site_uv&#34;</span><span class=p>&gt;</span> 本站访客数<span class=p>&lt;</span><span class=nt>span</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;busuanzi_value_site_uv&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>人次 <span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>2018.10.08 更新\n不蒜子官网说七牛强制过期域名<del>dn-lbstatics.qbox.me</del>, 所以 js 文件位置发生改变，改为<code>busuanzi.ibruce.info</code></strong></p><h2 class=heading-element id=写文章><span>8 写文章</span>\n<a href=#%e5%86%99%e6%96%87%e7%ab%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>hexo 文章用轻量型标签语言 Markdown 编写</p><ul><li><a href=https://sspai.com/post/25137 target=_blank rel=\"external nofollow noopener noreferrer\">markdown 入门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://markdown.tw/ target=_blank rel=\"external nofollow noopener noreferrer\">繁体原始文件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/othree/markdown-syntax-zhtw/blob/master/syntax.md target=_blank rel=\"external nofollow noopener noreferrer\">繁体原始文件 github<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-10-03 15:27:58\">更新于 2021-10-03&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexobuild/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexobuild.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexobuild.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo%2Bgithub+%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E5%8F%8A%E7%BE%8E%E5%8C%96&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo%2Bgithub+%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E5%8F%8A%E7%BE%8E%E5%8C%96%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexobuild/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexobuild.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexobuild/ data-title=\"Hexo+github 搭建个人博客及美化\" data-hashtags=Hexo,Node.js><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexobuild/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexobuild/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexobuild/ data-title=\"Hexo+github 搭建个人博客及美化\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexobuild/ data-title=\"Hexo+github 搭建个人博客及美化\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexowrite/ class=post-nav-item rel=prev title=\"Hexo 添加图片，音乐，链接，视频\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo 添加图片，音乐，链接，视频</a><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=post-nav-item rel=next title=戏子春秋>戏子春秋<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#首先>首先</a></li><li><a href=#hexo-安装>hexo 安装</a></li><li><a href=#建站>建站</a></li><li><a href=#安装-hexo-插件>安装 hexo 插件</a></li><li><a href=#本地查看效果>本地查看效果</a></li><li><a href=#部署>部署</a></li><li><a href=#美化>美化</a><ol><li><a href=#博文置顶>博文置顶</a></li><li><a href=#about-页面>about 页面</a></li><li><a href=#添加搜索评论分享>添加搜索，评论，分享</a></li><li><a href=#添加访客数阅读量等>添加访客数，阅读量等</a><ol><li><a href=#文章阅读量>文章阅读量</a></li><li><a href=#站点访问量访客数>站点访问量，访客数</a></li></ol></li></ol></li><li><a href=#写文章>写文章</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a829e0fd133b98fd41c9ce565fae9ad4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a829e0fd133b98fd41c9ce565fae9ad4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexobuild/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexobuild/index.md",
    "content": "# Hexo+github 搭建个人博客及美化\n\n\n**[更多关于 hexo](/categories/hexo/)**\n\n## 首先\n\n[官方文档](https://hexo.io/zh-cn/docs/index.html) 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\n\n- [Node.js](https://nodejs.org/en/)\n- [Git](https://git-scm.com/)\n\n## hexo 安装\n\n如果你的电脑中已经安装上述必备程序，那么恭喜你！接下来只需要使用 npm 即可完成 Hexo 的安装。\n\n```bash\nnpm install -g hexo-cli\n```\n\n## 建站\n\n安装 Hexo 完成后，请执行下列命令，Hexo 将会在指定文件夹中新建所需要的文件。\n\n```bash\nhexo init <folder>\ncd <folder>\nnpm install\n```\n\n<folder>为一个文件夹的名字\n新建完成后，指定文件夹的目录如下：\n\n```\n.\n├── _config.yml\n├── package.json\n├── scaffolds\n├── source\n|   ├── _drafts\n|   └── _posts\n└── themes\n```\n\n## 安装 hexo 插件\n\n全装上吧，没事。\n\n```bash\nnpm install hexo-generator-index --save\nnpm install hexo-generator-archive --save\nnpm install hexo-generator-category --save\nnpm install hexo-generator-tag --save\nnpm install hexo-server --save\nnpm install hexo-deployer-git --save\nnpm install hexo-deployer-heroku --save\nnpm install hexo-deployer-rsync --save\nnpm install hexo-deployer-openshift --save\nnpm install hexo-renderer-marked@0.2 --save\nnpm install hexo-renderer-stylus@0.2 --save\nnpm install hexo-generator-feed@1 --save\nnpm install hexo-generator-sitemap@1 --save\n```\n\n## 本地查看效果\n\n执行下面语句，执行完再登录 localhost:4000 查看效果（执行完不要按 Ctrl+C，不然就停止了）\n\n```bash\nhexo g\nhexo s\n```\n\n**其他步骤在这里不赘述，参见 [超详细教程](https://my.oschina.net/ryaneLee/blog/638440)**\n**[安卓上搭建 hexo 博客](https://lruihao.cn/posts/termux/)**\n\n## 部署\n\n```bash\nhexo g -d\n```\n\n部署后我们可以浏览器搜 username.github.io 查看自己的博客效果，比如我的 [lruihao.github.io](https://lruihao.github.io/)\n\n## 美化\n\n**这些美化都写的很详细，我建议你们自己好好看看吧，我也是在这里看到的，如果问我和这里说的是一样的。**\n\n- [hexo 个性化教程](/categories/hexo/)\n- [valine 特别鸣谢赵俊 👍](http://www.zhaojun.im)\n- [asdfv1929](https://asdfv1929.github.io/tags/Hexo/)\n- [hexo 官方主题集合](https://hexo.io/themes/)，~~我用的是 aloha 主题~~，该主题 [官方文档](https://github.com/henryhuang/hexo-theme-aloha/wiki/zh_CN)，**后改用 next 主题 [next 主题](https://theme-next.iissnan.com/)**\n- [hexo 官方插件](https://hexo.io/plugins)\n  ~~说说我的主题遇到的一些问题，由于这个主题用的人少，所以作者优化的不是很好（next 使用最多），当然也可以反过来说，所以自己美化了一点~~\n\n### 博文置顶\n\n修改 `hero-generator-index` 插件，把文件：`node_modules/hexo-generator-index/lib/generator.js` 内的代码替换为：\n\n```java\n'use strict';\nvar pagination = require('hexo-pagination');\nmodule.exports = function(locals){\n  var config = this.config;\n  var posts = locals.posts;\n    posts.data = posts.data.sort(function(a, b) {\n        if(a.top && b.top) { // 两篇文章 top 都有定义\n            if(a.top == b.top) return b.date - a.date; // 若 top 值一样则按照文章日期降序排\n            else return b.top - a.top; // 否则按照 top 值降序排\n        }\n        else if(a.top && !b.top) { // 以下是只有一篇文章 top 有定义，那么将有 top 的排在前面（这里用异或操作居然不行 233）\n            return -1;\n        }\n        else if(!a.top && b.top) {\n            return 1;\n        }\n        else return b.date - a.date; // 都没定义按照文章日期降序排\n    });\n  var paginationDir = config.pagination_dir || 'page';\n  return pagination('', posts, {\n    perPage: config.index_generator.per_page,\n    layout: ['index', 'archive'],\n    format: paginationDir + '/%d/',\n    data: {\n      __index: true\n    }\n  });\n};\n```\n\n### about 页面\n\nabout 页面可以用 HTML 写，你想怎么写都行，我用的最简单的方法，直接`hexo n page \"about\"`后，会生成一个 md 文件，也就是后面说的文章，直接写文章就行了。\n\n### 添加搜索，评论，分享\n\n搜索功能真心好用，当文章多起来的时候，标签提供的作用已经很少了，只能简单索引，搜索却能精确查找，这里我用的依旧是最简单的本地站内搜索。\n安装`hexo-generator-searchdb`\n\n在站点的根目录下执行以下命令：\n\n```bash\nnpm install hexo-generator-searchdb --save\n```\n\n配置站点配置文件\n新增以下内容到任意位置：\n\n```\nsearch:\n  path: search.xml\n  field: post\n  format: html\n  limit: 10000\n```\n\n配置主题配置文件\n\n```\n## Local search\nlocal_search:\n  enable: true\n```\n\n[algolia 参考文件](https://blog.naaln.com/2016/07/hexo-with-algolia/)  \n让搜索引擎找到你的博客，还是看到邱承佳学长博文有写到 [传送门](https://blog.csdn.net/qq_26891045/article/details/51280470)\n\n### 添加访客数，阅读量等\n\n评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。\n\n#### 文章阅读量\n\n> 以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。\n\n打开以下路径在你喜欢的地方添加代码，`\\blog\\hexo\\themes\\主题名字、layout\\_partial`，找到 `article.ejs`文件\n\n```html\n<div align=\"left\">\n  <span id=\"busuanzi_container_page_pv\"> 本文总阅读量<span id=\"busuanzi_value_page_pv\"></span>次 </span>\n</div>\n```\n\n#### 站点访问量，访客数\n\n打开以下路径在你喜欢的地方添加代码，`\\blog\\hexo\\themes\\主题名字、layout\\_partial`，找到 `footer.ejs`文件\n\n```html\n<script src=\"//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js\" async defer></script>\n\n<span id=\"busuanzi_container_page_pv\"> 本站总访问量<span id=\"busuanzi_value_site_pv\"></span>次 | </span>\n<span id=\"busuanzi_container_site_uv\"> 本站访客数<span id=\"busuanzi_value_site_uv\"></span>人次 </span>\n```\n\n**2018.10.08 更新\n不蒜子官网说七牛强制过期域名~~dn-lbstatics.qbox.me~~, 所以 js 文件位置发生改变，改为`busuanzi.ibruce.info`**\n\n## 写文章\n\nhexo 文章用轻量型标签语言 Markdown 编写\n\n- [markdown 入门](https://sspai.com/post/25137)\n- [繁体原始文件](https://markdown.tw/)\n- [繁体原始文件 github](https://github.com/othree/markdown-syntax-zhtw/blob/master/syntax.md)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexobuild/  \n\n"
  },
  {
    "path": "posts/hexowrite/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo 添加图片，音乐，链接，视频 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\n\"><meta name=keywords content='Hexo'><meta itemprop=name content=\"hexo 添加图片，音乐，链接，视频\"><meta itemprop=description content=\"如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\"><meta itemprop=datePublished content=\"2018-05-31T23:19:22+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"892\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hexowrite/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo 添加图片，音乐，链接，视频\"><meta property=\"og:description\" content=\"如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-05-31T23:19:22+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo 添加图片，音乐，链接，视频\"><meta name=twitter:description content=\"如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hexowrite/ title=\"hexo 添加图片，音乐，链接，视频 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ title=猴子与哪吒><link rel=next type=text/html href=https://lruihao.cn/posts/hexobuild/ title=\"hexo+github 搭建个人博客及美化\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hexowrite/index.md title=\"hexo 添加图片，音乐，链接，视频 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo 添加图片，音乐，链接，视频\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hexowrite\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo\",\"wordcount\":892,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hexowrite\\/\",\"datePublished\":\"2018-05-31T23:19:22+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hexowrite/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo 添加图片，音乐，链接，视频</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo 添加图片，音乐，链接，视频</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-05-31 23:19:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-05-31>2018-05-31</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"892 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo 添加图片，音乐，链接，视频\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#1-首先>1. 首先</a><ol><li><a href=#11-设置站点配置_configyml>1.1 设置站点配置_config.yml</a></li><li><a href=#12-安装插件>1.2 安装插件</a></li><li><a href=#13-下次再运行-hexo-n-xxxx来生成-md-博文时下路径>1.3 下次再运行 hexo n &ldquo;xxxx\"来生成 md 博文时，下路径</a></li></ol></li><li><a href=#2-添加图片>2. 添加图片</a><ol><li><a href=#21-markdown-添加>2.1 markdown 添加</a></li><li><a href=#22-插件添加>2.2 插件添加</a></li></ol></li><li><a href=#3-音乐>3. 音乐</a></li><li><a href=#4-添加链接>4. 添加链接</a></li><li><a href=#5-添加视频>5. 添加视频</a></li><li><a href=#工具集合>工具集合</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><strong>如果实在搞得头晕直接去 <a href=https://www.jianshu.com/ target=_blank rel=\"external nofollow noopener noreferrer\">简书<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 <a href=https://maxiang.io/ target=_blank rel=\"external nofollow noopener noreferrer\">马克飞象，专为印象笔记打造的 Markdown 编辑器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://www.typora.io/# target=_blank rel=\"external nofollow noopener noreferrer\">typora 也是不错的<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，突然发现 <a href=https://www.csdn.net/ target=_blank rel=\"external nofollow noopener noreferrer\">csdn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 也支持 Markdown 编译器了</strong></p></blockquote><h2 class=heading-element id=1-首先><span>1 1. 首先</span>\n<a href=#1-%e9%a6%96%e5%85%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>刚刚搭博客，很多都不懂，就连插入图片的路径问题都把我整的要命。（我用的 Sublime Text 3 编译器）<br>下面讲讲：</p><h3 class=heading-element id=11-设置站点配置_configyml><span>1.1 1.1 设置站点配置_config.yml</span>\n<a href=#11-%e8%ae%be%e7%bd%ae%e7%ab%99%e7%82%b9%e9%85%8d%e7%bd%ae_configyml class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yml data-lang=yml><span class=line><span class=cl><span class=nt>post_asset_folder</span><span class=p>:</span><span class=w> </span><span class=kc>true</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=12-安装插件><span>1.2 1.2 安装插件</span>\n<a href=#12-%e5%ae%89%e8%a3%85%e6%8f%92%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install https://github.com/CodeFalling/hexo-asset-image -- save</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=13-下次再运行-hexo-n-xxxx来生成-md-博文时下路径><span>1.3 1.3 下次再运行 hexo n &ldquo;xxxx\"来生成 md 博文时，下路径</span>\n<a href=#13-%e4%b8%8b%e6%ac%a1%e5%86%8d%e8%bf%90%e8%a1%8c-hexo-n-xxxx%e6%9d%a5%e7%94%9f%e6%88%90-md-%e5%8d%9a%e6%96%87%e6%97%b6%e4%b8%8b%e8%b7%af%e5%be%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>/source/_posts</span></span></code></pre></td></tr></table></div></div></div><p>文件夹内除了 xxxx.md 文件还有一个同名的文件夹，在 xxxx.md 中想引入图片时，先把图片复制到 xxxx 这个文件夹中，然后只需要在 xxxx.md 中按照 markdown 的格式引入图片。</p><h2 class=heading-element id=2-添加图片><span>2 2. 添加图片</span>\n<a href=#2-%e6%b7%bb%e5%8a%a0%e5%9b%be%e7%89%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先大家可以查看 hexo 官方文档 <a href=https://hexo.io/zh-cn/docs/asset-folders.html target=_blank rel=\"external nofollow noopener noreferrer\">资源文件夹章节<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=21-markdown-添加><span>2.1 2.1 markdown 添加</span>\n<a href=#21-markdown-%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>相对路径添加（我被这个相对路径搞得要死，前面各种出错，大家可以对照我的来插入图片 &mldr;）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl><span class=gh>#直接写图片名就好了，图片实例见下\n</span></span></span><span class=line><span class=cl>![<span class=nt>kyrie irving</span>](<span class=na>294136.jpg</span>)\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gh>#如果改了 Permalink 就要加上文章名，即同名文件夹名\n</span></span></span><span class=line><span class=cl>![<span class=nt>kyrie irving</span>](<span class=na>hexo-添加图片，音乐，链接，视频/294136.jpg</span>)\n</span></span><span class=line><span class=cl><span class=gh>#代码压缩后前面还要加一个/\n</span></span></span><span class=line><span class=cl>![<span class=nt>kyrie irving</span>](<span class=na>/hexo-添加图片，音乐，链接，视频/294136.jpg</span>)</span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/hexowrite/images/294136.jpg title=\"kyrie irving\" data-thumbnail=/posts/hexowrite/images/294136.jpg data-sub-html=\"<h2>kyrie irving</h2>\"><img loading=lazy src=/posts/hexowrite/images/294136.jpg alt=\"kyrie irving\" height=1080 width=1920></a></p><h3 class=heading-element id=22-插件添加><span>2.2 2.2 插件添加</span>\n<a href=#22-%e6%8f%92%e4%bb%b6%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://mr-houzi.github.io/2017/10/24/Hexo-asset-img/ target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>这种方式被很多人诟病，但有时候也不失一种好方式，简单快捷。<br>还有图片名字显示，不错的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% asset_img 297787.jpg kyrie irving %}</span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/hexowrite/images/297787.jpg title=\"kyrie irving\" data-thumbnail=/posts/hexowrite/images/297787.jpg data-sub-html=\"<h2>kyrie irving</h2>\"><img loading=lazy src=/posts/hexowrite/images/297787.jpg alt=\"kyrie irving\" height=1200 width=1920></a></p><h2 class=heading-element id=3-音乐><span>3 3. 音乐</span>\n<a href=#3-%e9%9f%b3%e4%b9%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>大家可以看 <a href=https://music.163.com target=_blank rel=\"external nofollow noopener noreferrer\">网易云音乐<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的官网，播放音乐可以生成外链，直接拿来用就行了。iframe 插件可以在代码中设置宽高等参数，auto 为自动播放。flash 不可以自己设置参数。看喜好，随便你。\n其他音乐，把插件中的链接替换成要播放的链接就可以了</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl><span class=gh>#iframe 插件\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>&lt;iframe frameborder=&#34;no&#34; border=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; width=330 height=86 src=&#34;//music.163.com/outchain/player?type=2&amp;id=66651&amp;auto=0&amp;height=66&#34;&gt;\n</span></span><span class=line><span class=cl>&lt;/iframe&gt;</span></span></code></pre></td></tr></table></div></div></div><iframe frameborder=no border=0 marginwidth=0 marginheight=0 width=330 height=86 src=\"//music.163.com/outchain/player?type=2&id=66651&auto=0&height=66\"></iframe><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl>#flash 插件\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>embed</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;//music.163.com/style/swf/widget.swf?sid=40249713&amp;type=2&amp;auto=0&amp;width=320&amp;height=66&#34;</span> <span class=na>width</span><span class=o>=</span><span class=s>&#34;340&#34;</span> <span class=na>height</span><span class=o>=</span><span class=s>&#34;86&#34;</span>  <span class=na>allowNetworking</span><span class=o>=</span><span class=s>&#34;all&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>embed</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=4-添加链接><span>4 4. 添加链接</span>\n<a href=#4-%e6%b7%bb%e5%8a%a0%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>[<span class=nt>我的微博</span>](<span class=na>https://weibo.com/liahao</span>)\n</span></span><span class=line><span class=cl>{% link text url title %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=5-添加视频><span>5 5. 添加视频</span>\n<a href=#5-%e6%b7%bb%e5%8a%a0%e8%a7%86%e9%a2%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>视频链接最好是打开就是视频的链接（youku，YouTube，抖音等）\n可以把视频上传到优酷，抖音等生成外链再拿来用。（优酷上传需要注册和实名认证）\n<a href=https://lruihao.cn/posts/nextplugin/ target=_blank rel=\"external nofollow noopener noreferrer\">插件参考资料<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>自拍手写视频（优酷）</p><blockquote><p>实验室无聊拍的</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>iframe</span>\n</span></span><span class=line><span class=cl> <span class=na>height</span><span class=o>=</span><span class=s>500</span> <span class=na>width</span><span class=o>=</span><span class=s>100%</span>\n</span></span><span class=line><span class=cl> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://player.youku.com/embed/XMzY0MzgxNDMyOA==&#34;</span>\n</span></span><span class=line><span class=cl> <span class=na>frameborder</span><span class=o>=</span><span class=s>0</span> <span class=na>allowfullscreen</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>iframe</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><iframe height=500 width=100% src=\"https://player.youku.com/embed/XMzY0MzgxNDMyOA==\" frameborder=0 allowfullscreen></iframe><h2 class=heading-element id=工具集合><span>6 工具集合</span>\n<a href=#%e5%b7%a5%e5%85%b7%e9%9b%86%e5%90%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://picgo.github.io/PicGo-Doc/zh/ target=_blank rel=\"external nofollow noopener noreferrer\">Picgo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://maxiang.io/ target=_blank rel=\"external nofollow noopener noreferrer\">马克飞象<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、CSDN、简书</li><li><a href=https://sm.ms/ target=_blank rel=\"external nofollow noopener noreferrer\">SM.MS 图床<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hexowrite/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexowrite/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hexowrite/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+%E6%B7%BB%E5%8A%A0%E5%9B%BE%E7%89%87%EF%BC%8C%E9%9F%B3%E4%B9%90%EF%BC%8C%E9%93%BE%E6%8E%A5%EF%BC%8C%E8%A7%86%E9%A2%91&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+%E6%B7%BB%E5%8A%A0%E5%9B%BE%E7%89%87%EF%BC%8C%E9%9F%B3%E4%B9%90%EF%BC%8C%E9%93%BE%E6%8E%A5%EF%BC%8C%E8%A7%86%E9%A2%91%7c%0A%7cURL%7chttps://lruihao.cn/posts/hexowrite/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hexowrite/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hexowrite/ data-title=\"Hexo 添加图片，音乐，链接，视频\" data-hashtags=Hexo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hexowrite/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hexowrite/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hexowrite/ data-title=\"Hexo 添加图片，音乐，链接，视频\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hexowrite/ data-title=\"Hexo 添加图片，音乐，链接，视频\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=post-nav-item rel=prev title=猴子与哪吒><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>猴子与哪吒</a><a href=/posts/hexobuild/ class=post-nav-item rel=next title=\"Hexo+github 搭建个人博客及美化\">Hexo+github 搭建个人博客及美化<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#1-首先>1. 首先</a><ol><li><a href=#11-设置站点配置_configyml>1.1 设置站点配置_config.yml</a></li><li><a href=#12-安装插件>1.2 安装插件</a></li><li><a href=#13-下次再运行-hexo-n-xxxx来生成-md-博文时下路径>1.3 下次再运行 hexo n &ldquo;xxxx\"来生成 md 博文时，下路径</a></li></ol></li><li><a href=#2-添加图片>2. 添加图片</a><ol><li><a href=#21-markdown-添加>2.1 markdown 添加</a></li><li><a href=#22-插件添加>2.2 插件添加</a></li></ol></li><li><a href=#3-音乐>3. 音乐</a></li><li><a href=#4-添加链接>4. 添加链接</a></li><li><a href=#5-添加视频>5. 添加视频</a></li><li><a href=#工具集合>工具集合</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/94a9310cd4c8ab0dde63d210c39adfa3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/94a9310cd4c8ab0dde63d210c39adfa3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hexowrite/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hexowrite/index.md",
    "content": "# Hexo 添加图片，音乐，链接，视频\n\n\n> **如果实在搞得头晕直接去 [简书](https://www.jianshu.com/) 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 [马克飞象，专为印象笔记打造的 Markdown 编辑器](https://maxiang.io/)，[typora 也是不错的](https://www.typora.io/#)，突然发现 [csdn](https://www.csdn.net/) 也支持 Markdown 编译器了**\n\n<!--more-->\n\n## 1. 首先\n\n刚刚搭博客，很多都不懂，就连插入图片的路径问题都把我整的要命。（我用的 Sublime Text 3 编译器）  \n下面讲讲：\n\n### 1.1 设置站点配置\\_config.yml\n\n```yml\npost_asset_folder: true\n```\n\n### 1.2 安装插件\n\n```bash\nnpm install https://github.com/CodeFalling/hexo-asset-image -- save\n```\n\n### 1.3 下次再运行 hexo n \"xxxx\"来生成 md 博文时，下路径\n\n```plain\n/source/_posts\n```\n\n文件夹内除了 xxxx.md 文件还有一个同名的文件夹，在 xxxx.md 中想引入图片时，先把图片复制到 xxxx 这个文件夹中，然后只需要在 xxxx.md 中按照 markdown 的格式引入图片。\n\n## 2. 添加图片\n\n首先大家可以查看 hexo 官方文档 [资源文件夹章节](https://hexo.io/zh-cn/docs/asset-folders.html)\n\n### 2.1 markdown 添加\n\n相对路径添加（我被这个相对路径搞得要死，前面各种出错，大家可以对照我的来插入图片 ...）\n\n```md\n#直接写图片名就好了，图片实例见下\n![kyrie irving](294136.jpg)\n\n#如果改了 Permalink 就要加上文章名，即同名文件夹名\n![kyrie irving](hexo-添加图片，音乐，链接，视频/294136.jpg)\n#代码压缩后前面还要加一个/\n![kyrie irving](/hexo-添加图片，音乐，链接，视频/294136.jpg)\n```\n\n![kyrie irving](images/294136.jpg)\n\n### 2.2 插件添加\n\n[传送门](https://mr-houzi.github.io/2017/10/24/Hexo-asset-img/)  \n这种方式被很多人诟病，但有时候也不失一种好方式，简单快捷。  \n还有图片名字显示，不错的。\n\n```md\n{% asset_img 297787.jpg kyrie irving %}\n```\n\n![kyrie irving](images/297787.jpg)\n\n## 3. 音乐\n\n大家可以看 [网易云音乐](https://music.163.com) 的官网，播放音乐可以生成外链，直接拿来用就行了。iframe 插件可以在代码中设置宽高等参数，auto 为自动播放。flash 不可以自己设置参数。看喜好，随便你。\n其他音乐，把插件中的链接替换成要播放的链接就可以了\n\n```md\n#iframe 插件\n\n<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=330 height=86 src=\"//music.163.com/outchain/player?type=2&id=66651&auto=0&height=66\">\n</iframe>\n```\n\n<!-- markdownlint-disable MD033 -->\n\n<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=330 height=86 src=\"//music.163.com/outchain/player?type=2&id=66651&auto=0&height=66\"></iframe>\n\n```html\n#flash 插件\n\n<embed src=\"//music.163.com/style/swf/widget.swf?sid=40249713&type=2&auto=0&width=320&height=66\" width=\"340\" height=\"86\"  allowNetworking=\"all\">\n</embed>\n```\n\n## 4. 添加链接\n\n```md\n[我的微博](https://weibo.com/liahao)\n{% link text url title %}\n```\n\n## 5. 添加视频\n\n> 视频链接最好是打开就是视频的链接（youku，YouTube，抖音等）\n> 可以把视频上传到优酷，抖音等生成外链再拿来用。（优酷上传需要注册和实名认证）\n> [插件参考资料](https://lruihao.cn/posts/nextplugin/)\n\n自拍手写视频（优酷）\n\n> 实验室无聊拍的\n\n```html\n<iframe\n height=500 width=100%\n src=\"https://player.youku.com/embed/XMzY0MzgxNDMyOA==\"\n frameborder=0 allowfullscreen>\n</iframe>\n```\n\n<iframe\n height=500 width=100%\n src=\"https://player.youku.com/embed/XMzY0MzgxNDMyOA==\"\n frameborder=0 allowfullscreen>\n</iframe>\n\n## 工具集合\n\n- [Picgo](https://picgo.github.io/PicGo-Doc/zh/)\n- [马克飞象](https://maxiang.io/)、CSDN、简书\n- [SM.MS 图床](https://sm.ms/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hexowrite/  \n\n"
  },
  {
    "path": "posts/homebrew-npm/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\"><meta name=keywords content='Homebrew,npm,npx,Mac,nvm,debug'><meta itemprop=name content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\"><meta itemprop=description content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\"><meta itemprop=datePublished content=\"2022-12-15T15:33:30+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"406\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Homebrew,npm,npx,Mac,nvm,debug\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/homebrew-npm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\"><meta property=\"og:description\" content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-12-15T15:33:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Homebrew\"><meta property=\"article:tag\" content=\"npm\"><meta property=\"article:tag\" content=\"npx\"><meta property=\"article:tag\" content=\"Mac\"><meta property=\"article:tag\" content=\"nvm\"><meta property=\"article:tag\" content=\"debug\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\"><meta name=twitter:description content=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/homebrew-npm/ title=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><link rel=next type=text/html href=https://lruihao.cn/years/2022/ title=\"2022 年度总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/homebrew-npm/index.md title=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/homebrew-npm\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Homebrew, npm, npx, Mac, nvm, debug\",\"wordcount\":406,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/homebrew-npm\\/\",\"datePublished\":\"2022-12-15T15:33:30+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/homebrew-npm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2022-12-15 15:33:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-12-15>2022-12-15</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"406 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#罪魁祸首>罪魁祸首</a></li><li><a href=#why>Why</a></li><li><a href=#where>Where</a></li><li><a href=#how>How</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>问题<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。</div></div></div><h2 class=heading-element id=罪魁祸首><span>1 罪魁祸首</span>\n<a href=#%e7%bd%aa%e9%ad%81%e7%a5%b8%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先定位到这次问题的根本原因是安装 Homebrew 导致的，这点可以很快也很明确地定位到，因为以前安装 Homebrew 也遇到了这个问题，但是当时的做法是卸载 Homebrew 避免冲突。</p><h2 class=heading-element id=why><span>2 Why</span>\n<a href=#why class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>分析为啥会冲突，Homebrew 安装的工程中也会默认一部分依赖的二进制文件，npm 和 npx 也在其中，所以这导致了 Homebrew 的安装 npm 和 npx 覆盖了系统中 node 的 npm 和 npx 进而导致 node 和 npm 版本不一致，无法使用 npm 启动项目。</p><h2 class=heading-element id=where><span>3 Where</span>\n<a href=#where class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>找一下目前 npm 和 npx 的二进制文件在哪。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>nvm use system\n</span></span><span class=line><span class=cl>node -v           <span class=c1># 8.10.0</span>\n</span></span><span class=line><span class=cl>which npm         <span class=c1># /opt/homebrew/bin/npm</span>\n</span></span><span class=line><span class=cl>which npx         <span class=c1># /opt/homebrew/bin/npx</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=how><span>4 How</span>\n<a href=#how class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>很明显前面的猜测是对的，那就打开这个目录看看：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>open /opt/homebrew/bin</span></span></code></pre></td></tr></table></div></div></div><p>找到 npm 和 npx，把他们重命名为 <code>npm-brew</code> 和 <code>npx-brew</code>, 这样通过别名也保留 Homebrew 的 npm 和 npx.</p><p>修改完后，重启终端，再看看 npm 和 npx 是否生效：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>nvm use system\n</span></span><span class=line><span class=cl>node -v           <span class=c1># 8.10.0</span>\n</span></span><span class=line><span class=cl>which npm         <span class=c1># /usr/local/bin/npm</span>\n</span></span><span class=line><span class=cl>which npx         <span class=c1># /usr/local/bin/npx</span>\n</span></span><span class=line><span class=cl>npm -v\n</span></span><span class=line><span class=cl>npx -v</span></span></code></pre></td></tr></table></div></div></div><p>一切正常了，可以用 npm 继续启动原来的项目了。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/homebrew-npm/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/homebrew-npm.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/homebrew-npm.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%89%E8%A3%85+Homebrew+%E5%90%8E%E5%AF%BC%E8%87%B4%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%8E%9F%E6%9C%89%E7%9A%84+npm+%E5%92%8C+npx+%E5%A4%B1%E6%95%88&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%89%E8%A3%85+Homebrew+%E5%90%8E%E5%AF%BC%E8%87%B4%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%8E%9F%E6%9C%89%E7%9A%84+npm+%E5%92%8C+npx+%E5%A4%B1%E6%95%88%7c%0A%7cURL%7chttps://lruihao.cn/posts/homebrew-npm/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/homebrew-npm.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/homebrew-npm/ data-title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\" data-hashtags=Homebrew,npm,npx,Mac,nvm,debug><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/homebrew-npm/ data-hashtag=Homebrew><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/homebrew-npm/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/homebrew-npm/ data-title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/homebrew-npm/ data-title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/homebrew/ class=post-tag title=\"标签 - Homebrew\">Homebrew</a><a href=/tags/npm/ class=post-tag title=\"标签 - npm\">npm</a><a href=/tags/npx/ class=post-tag title=\"标签 - npx\">npx</a><a href=/tags/mac/ class=post-tag title=\"标签 - Mac\">Mac</a><a href=/tags/nvm/ class=post-tag title=\"标签 - nvm\">nvm</a><a href=/tags/debug/ class=post-tag title=\"标签 - debug\">debug</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/vue-minder-editor-extended/ class=post-nav-item rel=prev title=Lruihao/vue-minder-editor-extended><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/vue-minder-editor-extended</a><a href=/years/2022/ class=post-nav-item rel=next title=\"2022 年度总结\">2022 年度总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#罪魁祸首>罪魁祸首</a></li><li><a href=#why>Why</a></li><li><a href=#where>Where</a></li><li><a href=#how>How</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/980c8a4cc81391e2ce4a2bbee7e1e6a9.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/980c8a4cc81391e2ce4a2bbee7e1e6a9.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/homebrew-npm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/homebrew-npm/index.md",
    "content": "# 安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\n\n\n{{< admonition question >}}\n前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\n{{< /admonition >}}\n\n<!--more-->\n\n## 罪魁祸首\n\n首先定位到这次问题的根本原因是安装 Homebrew 导致的，这点可以很快也很明确地定位到，因为以前安装 Homebrew 也遇到了这个问题，但是当时的做法是卸载 Homebrew 避免冲突。\n\n## Why\n\n分析为啥会冲突，Homebrew 安装的工程中也会默认一部分依赖的二进制文件，npm 和 npx 也在其中，所以这导致了 Homebrew 的安装 npm 和 npx 覆盖了系统中 node 的 npm 和 npx 进而导致 node 和 npm 版本不一致，无法使用 npm 启动项目。\n\n## Where\n\n找一下目前 npm 和 npx 的二进制文件在哪。\n\n```bash\nnvm use system\nnode -v           # 8.10.0\nwhich npm         # /opt/homebrew/bin/npm\nwhich npx         # /opt/homebrew/bin/npx\n```\n\n## How\n\n很明显前面的猜测是对的，那就打开这个目录看看：\n\n```bash\nopen /opt/homebrew/bin\n```\n\n找到 npm 和 npx，把他们重命名为 `npm-brew` 和 `npx-brew`, 这样通过别名也保留 Homebrew 的 npm 和 npx.\n\n修改完后，重启终端，再看看 npm 和 npx 是否生效：\n\n```bash\nnvm use system\nnode -v           # 8.10.0\nwhich npm         # /usr/local/bin/npm\nwhich npx         # /usr/local/bin/npx\nnpm -v\nnpx -v\n```\n\n一切正常了，可以用 npm 继续启动原来的项目了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/homebrew-npm/  \n\n"
  },
  {
    "path": "posts/how-tables/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>How Many Tables-HDU-1213（并查集求连通域数目） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\n\"><meta name=keywords content='并查集,HDU,C++,ACM'><meta itemprop=name content=\"how many tables-HDU-1213（并查集求连通域数目）\"><meta itemprop=description content=\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\"><meta itemprop=datePublished content=\"2018-07-31T11:12:10+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"116\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"并查集,HDU,C++,acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/how-tables/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"how many tables-HDU-1213（并查集求连通域数目）\"><meta property=\"og:description\" content=\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T11:12:10+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"how many tables-HDU-1213（并查集求连通域数目）\"><meta name=twitter:description content=\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/how-tables/ title=\"how many tables-HDU-1213（并查集求连通域数目） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-1611/ title=The-suspects-POJ-1611（并查集）><link rel=next type=text/html href=https://lruihao.cn/posts/codeforces680a/ title=\"Bear and Five Cards-Codeforces680A\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/how-tables/index.md title=\"how many tables-HDU-1213（并查集求连通域数目） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/how-tables\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"并查集, HDU, C\\u002b\\u002b, ACM\",\"wordcount\":116,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/how-tables\\/\",\"datePublished\":\"2018-07-31T11:12:10+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/how-tables/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>How Many Tables-HDU-1213（并查集求连通域数目）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>How Many Tables-HDU-1213（并查集求连通域数目）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 11:12:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"116 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"How Many Tables-HDU-1213（并查集求连通域数目）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>并查集求连通域数目，初始化 sum=n；\n题目链接： <a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=_blank rel=\"external nofollow noopener noreferrer\">how many tables<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>son</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>son</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span><span class=o>!=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>son</span><span class=o>!=</span><span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>t</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>]</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>son</span><span class=o>=</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>t</span><span class=p>,</span><span class=n>sum</span><span class=p>,</span><span class=n>root1</span><span class=p>,</span><span class=n>root2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>t</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>=</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>root1</span><span class=o>&gt;&gt;</span><span class=n>root2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>xx</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>root1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>yy</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>root2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>xx</span><span class=o>!=</span><span class=n>yy</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=n>pre</span><span class=p>[</span><span class=n>xx</span><span class=p>]</span><span class=o>=</span><span class=n>yy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>sum</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>sum</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/how-tables/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/how-tables.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/how-tables.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20how+many+tables-HDU-1213%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%E6%B1%82%E8%BF%9E%E9%80%9A%E5%9F%9F%E6%95%B0%E7%9B%AE%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chow+many+tables-HDU-1213%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%E6%B1%82%E8%BF%9E%E9%80%9A%E5%9F%9F%E6%95%B0%E7%9B%AE%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/how-tables/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/how-tables.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/how-tables/ data-title=\"How Many Tables-HDU-1213（并查集求连通域数目）\" data-hashtags=并查集,HDU,C++,ACM><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/how-tables/ data-hashtag=并查集><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/how-tables/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/how-tables/ data-title=\"How Many Tables-HDU-1213（并查集求连通域数目）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/how-tables/ data-title=\"How Many Tables-HDU-1213（并查集求连通域数目）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-1611/ class=post-nav-item rel=prev title=The-Suspects-POJ-1611（并查集）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>The-Suspects-POJ-1611（并查集）</a><a href=/posts/codeforces680a/ class=post-nav-item rel=next title=\"Bear and Five Cards-Codeforces680A\">Bear and Five Cards-Codeforces680A<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/how-tables/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/how-tables/index.md",
    "content": "# How Many Tables-HDU-1213（并查集求连通域数目）\n\n\n并查集求连通域数目，初始化 sum=n；\n题目链接： [how many tables](http://acm.hdu.edu.cn/showproblem.php?pid=1213)\n\n<!--more-->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint pre[1005];\n\nint find(int root){\n    int son,t;\n    son=root;\n    while(root!=pre[root])\n        root=pre[root];\n    while(son!=root){\n        t=pre[son];\n        pre[son]=root;\n        son=t;\n    }\n    return root;\n}\n\nint main(){\n    int n,m,t,sum,root1,root2;\n    cin>>t;\n    while(t--){\n        cin>>n>>m;\n        sum=n;\n        for(int i=1;i<=n;i++)\n            pre[i]=i;\n        for(int i=0;i<m;i++){\n            cin>>root1>>root2;\n            int xx=find(root1);\n            int yy=find(root2);\n            if(xx!=yy){\n                pre[xx]=yy;\n                sum--;\n            }\n        }\n        cout<<sum<<endl;\n    }\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/how-tables/  \n\n"
  },
  {
    "path": "posts/href-301/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 获取链接（转） 传送门\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\n\"><meta name=keywords content='redirect,JavaScript,他山之石'><meta itemprop=name content=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\"><meta itemprop=description content=\"0.1 获取链接（转） 传送门\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\"><meta itemprop=datePublished content=\"2018-10-28T14:22:00+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"1418\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"redirect,javascript,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/href-301/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\"><meta property=\"og:description\" content=\"0.1 获取链接（转） 传送门\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-28T14:22:00+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"redirect\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\"><meta name=twitter:description content=\"0.1 获取链接（转） 传送门\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/href-301/ title=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/web-server-win/ title=\"windows 上搭建 web 服务器\"><link rel=next type=text/html href=https://lruihao.cn/posts/web-server-yun/ title=\"云服务器 CentOS 系统搭建 web 服务\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/href-301/index.md title=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/href-301\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"redirect, JavaScript, 他山之石\",\"wordcount\":1418,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/href-301\\/\",\"datePublished\":\"2018-10-28T14:22:00+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/href-301/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span title=转载 class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><span>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-28 14:22:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-28>2018-10-28</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1418 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#获取链接转>获取链接（转）</a><ol><li><a href=#windowlocationhref设置或获取整个-url-为字符串>window.location.href（设置或获取整个 URL 为字符串）</a></li><li><a href=#windowlocationprotocol设置或获取-url-的协议部分>window.location.protocol（设置或获取 URL 的协议部分）</a></li><li><a href=#windowlocationhost设置或获取-url-的主机部分>window.location.host（设置或获取 URL 的主机部分）</a></li><li><a href=#windowlocationport设置或获取与-url-关联的端口号码>window.location.port（设置或获取与 URL 关联的端口号码）</a></li><li><a href=#windowlocationpathname设置或获取与-url-的路径部分就是文件地址>window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）)</a></li><li><a href=#windowlocationsearch设置或获取-href-属性中跟在问号后面的部分>window.location.search（设置或获取 href 属性中跟在问号后面的部分）</a></li><li><a href=#windowlocationhash设置或获取-href-属性中在井号后面的分段>window.location.hash（设置或获取 href 属性中在井号“#”后面的分段）</a></li><li><a href=#js-获取-url-中的参数值>js 获取 url 中的参数值</a><ol><li><a href=#正则法>正则法</a></li><li><a href=#split-拆分法>split 拆分法</a></li><li><a href=#指定取>指定取</a></li></ol></li></ol></li><li><a href=#301-重定向实践>301 重定向（实践）</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=获取链接转><span>0.1 获取链接（转）</span>\n<a href=#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://www.cnblogs.com/zhabayi/p/6419938.html target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。</p><p>下面我们举例一个 URL，然后获得它的各个组成部分：<code>http://i.cnblogs.com/EditPosts.aspx?opt=1</code></p><h4 class=heading-element id=windowlocationhref设置或获取整个-url-为字符串><span>0.1.1 window.location.href（设置或获取整个 URL 为字符串）</span>\n<a href=#windowlocationhref%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96%e6%95%b4%e4%b8%aa-url-%e4%b8%ba%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>href</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：<code>http://i.cnblogs.com/EditPosts.aspx?opt=1</code></p><h4 class=heading-element id=windowlocationprotocol设置或获取-url-的协议部分><span>0.1.2 window.location.protocol（设置或获取 URL 的协议部分）</span>\n<a href=#windowlocationprotocol%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96-url-%e7%9a%84%e5%8d%8f%e8%ae%ae%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>protocol</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：<code>http:</code></p><h4 class=heading-element id=windowlocationhost设置或获取-url-的主机部分><span>0.1.3 window.location.host（设置或获取 URL 的主机部分）</span>\n<a href=#windowlocationhost%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96-url-%e7%9a%84%e4%b8%bb%e6%9c%ba%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>host</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：<code>i.cnblogs.com</code></p><h4 class=heading-element id=windowlocationport设置或获取与-url-关联的端口号码><span>0.1.4 window.location.port（设置或获取与 URL 关联的端口号码）</span>\n<a href=#windowlocationport%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96%e4%b8%8e-url-%e5%85%b3%e8%81%94%e7%9a%84%e7%ab%af%e5%8f%a3%e5%8f%b7%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>port</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符）</p><h4 class=heading-element id=windowlocationpathname设置或获取与-url-的路径部分就是文件地址><span>0.1.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）)</span>\n<a href=#windowlocationpathname%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96%e4%b8%8e-url-%e7%9a%84%e8%b7%af%e5%be%84%e9%83%a8%e5%88%86%e5%b0%b1%e6%98%af%e6%96%87%e4%bb%b6%e5%9c%b0%e5%9d%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>pathname</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：<code>/EditPosts.aspx</code></p><h4 class=heading-element id=windowlocationsearch设置或获取-href-属性中跟在问号后面的部分><span>0.1.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分）</span>\n<a href=#windowlocationsearch%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96-href-%e5%b1%9e%e6%80%a7%e4%b8%ad%e8%b7%9f%e5%9c%a8%e9%97%ae%e5%8f%b7%e5%90%8e%e9%9d%a2%e7%9a%84%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>search</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：<code>?opt=1</code></p><p>PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。</p><h4 class=heading-element id=windowlocationhash设置或获取-href-属性中在井号后面的分段><span>0.1.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段）</span>\n<a href=#windowlocationhash%e8%ae%be%e7%bd%ae%e6%88%96%e8%8e%b7%e5%8f%96-href-%e5%b1%9e%e6%80%a7%e4%b8%ad%e5%9c%a8%e4%ba%95%e5%8f%b7%e5%90%8e%e9%9d%a2%e7%9a%84%e5%88%86%e6%ae%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>test</span> <span class=o>=</span> <span class=n>window</span><span class=o>.</span><span class=n>location</span><span class=o>.</span><span class=n>hash</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>test</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><p>返回：空字符（因为 url 中没有）</p><h4 class=heading-element id=js-获取-url-中的参数值><span>0.1.8 js 获取 url 中的参数值</span>\n<a href=#js-%e8%8e%b7%e5%8f%96-url-%e4%b8%ad%e7%9a%84%e5%8f%82%e6%95%b0%e5%80%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><h5 class=heading-element id=正则法><span>0.1.8.1 正则法</span>\n<a href=#%e6%ad%a3%e5%88%99%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=n>function</span><span class=w> </span><span class=nf>getQueryString</span><span class=p>(</span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>reg</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>RegExp</span><span class=p>(</span><span class=err>&#39;</span><span class=p>(</span><span class=o>^|&amp;</span><span class=p>)</span><span class=err>&#39;</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>name</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=err>&#39;</span><span class=o>=</span><span class=p>(</span><span class=o>[^&amp;]*</span><span class=p>)(</span><span class=o>&amp;|</span><span class=n>$</span><span class=p>)</span><span class=err>&#39;</span><span class=p>,</span><span class=w> </span><span class=sc>&#39;i&#39;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>r</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>search</span><span class=p>.</span><span class=na>substr</span><span class=p>(</span><span class=n>1</span><span class=p>).</span><span class=na>match</span><span class=p>(</span><span class=n>reg</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>r</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=kc>null</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>unescape</span><span class=p>(</span><span class=n>r</span><span class=o>[</span><span class=n>2</span><span class=o>]</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// 这样调用：</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>GetQueryString</span><span class=p>(</span><span class=s>&#34;参数名 1&#34;</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>GetQueryString</span><span class=p>(</span><span class=s>&#34;参数名 2&#34;</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>GetQueryString</span><span class=p>(</span><span class=s>&#34;参数名 3&#34;</span><span class=p>));</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h5 class=heading-element id=split-拆分法><span>0.1.8.2 split 拆分法</span>\n<a href=#split-%e6%8b%86%e5%88%86%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=n>function</span><span class=w> </span><span class=nf>GetRequest</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>url</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>location</span><span class=p>.</span><span class=na>search</span><span class=p>;</span><span class=w> </span><span class=c1>//获取 url 中&#34;?&#34;符后的字串</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>theRequest</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Object</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>url</span><span class=p>.</span><span class=na>indexOf</span><span class=p>(</span><span class=s>&#34;?&#34;</span><span class=p>)</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=o>-</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>var</span><span class=w> </span><span class=n>str</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>url</span><span class=p>.</span><span class=na>substr</span><span class=p>(</span><span class=n>1</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>strs</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>str</span><span class=p>.</span><span class=na>split</span><span class=p>(</span><span class=s>&#34;&amp;&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kd>var</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>strs</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>theRequest</span><span class=o>[</span><span class=n>strs</span><span class=o>[</span><span class=n>i</span><span class=o>]</span><span class=p>.</span><span class=na>split</span><span class=p>(</span><span class=s>&#34;=&#34;</span><span class=p>)</span><span class=o>[</span><span class=n>0</span><span class=o>]]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>unescape</span><span class=p>(</span><span class=n>strs</span><span class=o>[</span><span class=n>i</span><span class=o>]</span><span class=p>.</span><span class=na>split</span><span class=p>(</span><span class=s>&#34;=&#34;</span><span class=p>)</span><span class=o>[</span><span class=n>1</span><span class=o>]</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>theRequest</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>Request</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Object</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>Request</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>GetRequest</span><span class=p>();</span><span class=o>&lt;</span><span class=n>br</span><span class=o>&gt;</span><span class=c1>// var id=Request[&#34;id&#34;];</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// var 参数 1, 参数 2, 参数 3, 参数 N;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// 参数 1 = Request[&#39;参数 1&#39;];</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// 参数 2 = Request[&#39;参数 2&#39;];</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>// 参数 3 = Request[&#39;参数 3&#39;];</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=o>//</span><span class=w> </span><span class=n>参数</span><span class=w> </span><span class=n>N</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Request</span><span class=o>[</span><span class=err>&#39;</span><span class=n>参数</span><span class=w> </span><span class=n>N</span><span class=err>&#39;</span><span class=o>]</span><span class=p>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h5 class=heading-element id=指定取><span>0.1.8.3 指定取</span>\n<a href=#%e6%8c%87%e5%ae%9a%e5%8f%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><p>比如说一个 url：<code>http://i.cnblogs.com/?j=js</code>, 我们想得到参数 j 的值，可以通过以下函数调用。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=n>function</span><span class=w> </span><span class=nf>GetQueryString</span><span class=p>(</span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>reg</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>RegExp</span><span class=p>(</span><span class=s>&#34;(^|&amp;)&#34;</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>name</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=s>&#34;=([^&amp;]*)(&amp;|$)&#34;</span><span class=p>,</span><span class=w> </span><span class=s>&#34;i&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>r</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>search</span><span class=p>.</span><span class=na>substr</span><span class=p>(</span><span class=n>1</span><span class=p>).</span><span class=na>match</span><span class=p>(</span><span class=n>reg</span><span class=p>);</span><span class=w> </span><span class=c1>//获取 url 中&#34;?&#34;符后的字符串并正则匹配</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>context</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>r</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=kc>null</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=n>context</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>r</span><span class=o>[</span><span class=n>2</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>reg</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>r</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>context</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=kc>null</span><span class=w> </span><span class=o>||</span><span class=w> </span><span class=n>context</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=s>&#34;&#34;</span><span class=w> </span><span class=o>||</span><span class=w> </span><span class=n>context</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=s>&#34;undefined&#34;</span><span class=w> </span><span class=o>?</span><span class=w> </span><span class=s>&#34;&#34;</span><span class=w> </span><span class=p>:</span><span class=w> </span><span class=n>context</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>alert</span><span class=p>(</span><span class=n>GetQueryString</span><span class=p>(</span><span class=s>&#34;j&#34;</span><span class=p>));</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=301-重定向实践><span>0.2 301 重定向（实践）</span>\n<a href=#301-%e9%87%8d%e5%ae%9a%e5%90%91%e5%ae%9e%e8%b7%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>由于之前把 blog 和网站主页分开在两个仓库所以要想在 blog 中 menu 里跳转到站外链接就要做一些处理。以前一直百度不到。\n其实想法早就有了，只要在 blog 首页或者网站首页检测到<code>https://lruihao.cn/home</code>这个链接，或者检测到 home 字段就自动跳转。想法很简单。可是对 js 真的一点都不了解，以前百度也找不到实际的效果案例。所以还是自己写吧！附上蹩脚代码。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>path</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>href</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//alert(path);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>path</span><span class=o>==</span><span class=err>&#39;</span><span class=n>https</span><span class=p>:</span><span class=c1>//lruihao.cn/home/&#39;) {</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>replace</span><span class=p>(</span><span class=s>&#34;https://www.lruihao.cn&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>或者</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>path</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>pathname</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//alert(path);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>path</span><span class=o>==</span><span class=err>&#39;</span><span class=o>/</span><span class=n>home</span><span class=o>/</span><span class=err>&#39;</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>replace</span><span class=p>(</span><span class=s>&#34;https://www.lruihao.cn&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>http 强制重定向 https</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=o>&lt;</span><span class=n>script</span><span class=o>&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>targetProtocol</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;https:&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>var</span><span class=w> </span><span class=n>host</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;lruihao.cn&#34;</span><span class=p>;</span><span class=w> </span><span class=c1>//域名判断，因为 localhost 仅支持 http</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>host</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>host</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>protocol</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=n>targetProtocol</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>href</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>targetProtocol</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>href</span><span class=p>.</span><span class=na>substring</span><span class=p>(</span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>protocol</span><span class=p>.</span><span class=na>length</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/href-301/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/href-301.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/href-301.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BD%BF%E7%94%A8+js+%E5%87%86%E7%A1%AE%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2+url+%E7%BD%91%E5%9D%80%E4%BF%A1%E6%81%AF%E5%8F%8A+301+%E9%87%8D%E5%AE%9A%E5%90%91%E5%AE%9E%E6%88%98&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BD%BF%E7%94%A8+js+%E5%87%86%E7%A1%AE%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E9%A1%B5%E9%9D%A2+url+%E7%BD%91%E5%9D%80%E4%BF%A1%E6%81%AF%E5%8F%8A+301+%E9%87%8D%E5%AE%9A%E5%90%91%E5%AE%9E%E6%88%98%7c%0A%7cURL%7chttps://lruihao.cn/posts/href-301/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/href-301.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/href-301/ data-title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\" data-hashtags=redirect,JavaScript,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/href-301/ data-hashtag=redirect><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/href-301/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/href-301/ data-title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/href-301/ data-title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/redirect/ class=post-tag title=\"标签 - redirect\">redirect</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/web-server-win/ class=post-nav-item rel=prev title=\"Windows 上搭建 Web 服务器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Windows 上搭建 Web 服务器</a><a href=/posts/web-server-yun/ class=post-nav-item rel=next title=\"云服务器 CentOS 系统搭建 Web 服务\">云服务器 CentOS 系统搭建 Web 服务<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#获取链接转>获取链接（转）</a><ol><li><a href=#windowlocationhref设置或获取整个-url-为字符串>window.location.href（设置或获取整个 URL 为字符串）</a></li><li><a href=#windowlocationprotocol设置或获取-url-的协议部分>window.location.protocol（设置或获取 URL 的协议部分）</a></li><li><a href=#windowlocationhost设置或获取-url-的主机部分>window.location.host（设置或获取 URL 的主机部分）</a></li><li><a href=#windowlocationport设置或获取与-url-关联的端口号码>window.location.port（设置或获取与 URL 关联的端口号码）</a></li><li><a href=#windowlocationpathname设置或获取与-url-的路径部分就是文件地址>window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）)</a></li><li><a href=#windowlocationsearch设置或获取-href-属性中跟在问号后面的部分>window.location.search（设置或获取 href 属性中跟在问号后面的部分）</a></li><li><a href=#windowlocationhash设置或获取-href-属性中在井号后面的分段>window.location.hash（设置或获取 href 属性中在井号“#”后面的分段）</a></li><li><a href=#js-获取-url-中的参数值>js 获取 url 中的参数值</a><ol><li><a href=#正则法>正则法</a></li><li><a href=#split-拆分法>split 拆分法</a></li><li><a href=#指定取>指定取</a></li></ol></li></ol></li><li><a href=#301-重定向实践>301 重定向（实践）</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d0910d8518c18973441e6349561fed55.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d0910d8518c18973441e6349561fed55.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/href-301/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/href-301/index.md",
    "content": "# 使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\n\n\n### 获取链接（转）\n\n[传送门](https://www.cnblogs.com/zhabayi/p/6419938.html)  \n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\n\n下面我们举例一个 URL，然后获得它的各个组成部分：`http://i.cnblogs.com/EditPosts.aspx?opt=1`\n\n#### window.location.href（设置或获取整个 URL 为字符串）\n\n```\nvar test = window.location.href;\nalert(test);\n```\n\n返回：`http://i.cnblogs.com/EditPosts.aspx?opt=1`\n\n#### window.location.protocol（设置或获取 URL 的协议部分）\n\n```\nvar test = window.location.protocol;\nalert(test);\n```\n\n返回：`http:`\n\n#### window.location.host（设置或获取 URL 的主机部分）\n\n```\nvar test = window.location.host;\nalert(test);\n```\n\n返回：`i.cnblogs.com`\n\n#### window.location.port（设置或获取与 URL 关联的端口号码）\n\n```\nvar test = window.location.port;\nalert(test);\n```\n\n返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符）\n\n#### window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）)\n\n```\nvar test = window.location.pathname;\nalert(test);\n```\n\n返回：`/EditPosts.aspx`\n\n#### window.location.search（设置或获取 href 属性中跟在问号后面的部分）\n\n```\nvar test = window.location.search;\nalert(test);\n```\n\n返回：`?opt=1`\n\nPS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。\n\n#### window.location.hash（设置或获取 href 属性中在井号“#”后面的分段）\n\n```\nvar test = window.location.hash;\nalert(test);\n```\n\n返回：空字符（因为 url 中没有）\n\n#### js 获取 url 中的参数值\n\n##### 正则法\n\n```java\nfunction getQueryString(name) {\n  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');\n  var r = window.location.search.substr(1).match(reg);\n  if (r != null) {\n    return unescape(r[2]);\n  }\n  return null;\n}\n// 这样调用：\nalert(GetQueryString(\"参数名 1\"));\n\nalert(GetQueryString(\"参数名 2\"));\n\nalert(GetQueryString(\"参数名 3\"));\n```\n\n##### split 拆分法\n\n```java\nfunction GetRequest() {\n  var url = location.search; //获取 url 中\"?\"符后的字串\n  var theRequest = new Object();\n  if (url.indexOf(\"?\") != -1) {\n    var str = url.substr(1);\n    strs = str.split(\"&\");\n    for(var i = 0; i < strs.length; i ++) {\n      theRequest[strs[i].split(\"=\")[0]] = unescape(strs[i].split(\"=\")[1]);\n    }\n  }\n  return theRequest;\n}\nvar Request = new Object();\nRequest = GetRequest();<br>// var id=Request[\"id\"];\n// var 参数 1, 参数 2, 参数 3, 参数 N;\n// 参数 1 = Request['参数 1'];\n// 参数 2 = Request['参数 2'];\n// 参数 3 = Request['参数 3'];\n// 参数 N = Request['参数 N'];\n```\n\n##### 指定取\n\n比如说一个 url：`http://i.cnblogs.com/?j=js`, 我们想得到参数 j 的值，可以通过以下函数调用。\n\n```java\nfunction GetQueryString(name) {\n  var reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\", \"i\");\n  var r = window.location.search.substr(1).match(reg); //获取 url 中\"?\"符后的字符串并正则匹配\n  var context = \"\";\n  if (r != null)\n     context = r[2];\n  reg = null;\n  r = null;\n  return context == null || context == \"\" || context == \"undefined\" ? \"\" : context;\n}\nalert(GetQueryString(\"j\"));\n```\n\n### 301 重定向（实践）\n\n由于之前把 blog 和网站主页分开在两个仓库所以要想在 blog 中 menu 里跳转到站外链接就要做一些处理。以前一直百度不到。\n其实想法早就有了，只要在 blog 首页或者网站首页检测到`https://lruihao.cn/home`这个链接，或者检测到 home 字段就自动跳转。想法很简单。可是对 js 真的一点都不了解，以前百度也找不到实际的效果案例。所以还是自己写吧！附上蹩脚代码。\n\n```java\nvar path = window.location.href;\n    //alert(path);\n    if (path=='https://lruihao.cn/home/') {\n      window.location.replace(\"https://www.lruihao.cn\");\n    }\n```\n\n或者\n\n```java\nvar path = window.location.pathname;\n    //alert(path);\n    if (path=='/home/') {\n      window.location.replace(\"https://www.lruihao.cn\");\n    }\n```\n\nhttp 强制重定向 https\n\n```java\n<script>\n  var targetProtocol = \"https:\";\n  var host = \"lruihao.cn\"; //域名判断，因为 localhost 仅支持 http\n  if (window.location.host == host && window.location.protocol != targetProtocol){\n    window.location.href = targetProtocol +\n      window.location.href.substring(window.location.protocol.length);\n    }\n</script>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/href-301/  \n\n"
  },
  {
    "path": "posts/http2https/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vps 配置 Ssl 及 Https 重定向 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\n\"><meta name=keywords content='SSL,redirect,CDN,JavaScript,server'><meta itemprop=name content=\"vps 配置 ssl 及 https 重定向\"><meta itemprop=description content=\"记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\"><meta itemprop=datePublished content=\"2019-03-28T19:40:54+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"357\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"SSL,redirect,CDN,javascript,server\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/http2https/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vps 配置 ssl 及 https 重定向\"><meta property=\"og:description\" content=\"记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-28T19:40:54+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"SSL\"><meta property=\"article:tag\" content=\"redirect\"><meta property=\"article:tag\" content=\"CDN\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"server\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vps 配置 ssl 及 https 重定向\"><meta name=twitter:description content=\"记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/http2https/ title=\"vps 配置 ssl 及 https 重定向 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexo-theme-next/ title=\"hexo-theme-next @modified LRH\"><link rel=next type=text/html href=https://lruihao.cn/posts/dacheng/ title=大数乘法><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/http2https/index.md title=\"vps 配置 ssl 及 https 重定向 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"vps 配置 ssl 及 https 重定向\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/http2https\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"SSL, redirect, CDN, JavaScript, server\",\"wordcount\":357,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/http2https\\/\",\"datePublished\":\"2019-03-28T19:40:54+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/http2https/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vps 配置 Ssl 及 Https 重定向</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Vps 配置 Ssl 及 Https 重定向</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-28 19:40:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-28>2019-03-28</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"357 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Vps 配置 Ssl 及 Https 重定向\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#强制重定向-https>强制重定向 https</a></li><li><a href=#腾讯云-cdn-配置>腾讯云 CDN 配置</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>记录自己在配置 vps 及博客 SSL 证书时遇到的问题。</p></blockquote><h2 class=heading-element id=强制重定向-https><span>1 强制重定向 https</span>\n<a href=#%e5%bc%ba%e5%88%b6%e9%87%8d%e5%ae%9a%e5%90%91-https class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>有一种情况相信很多人都遇到过，就是虽然我们配置了 ssl 证书，但是 https 和 http 地址都是各自都可以单独访问。我们应该也见过类似于 github 的代码托管网站有强制 https 的开关。如果是这种情况我们还可以通过 js 进行 301 定向。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=o>&lt;</span><span class=n>script</span><span class=o>&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>targetProtocol</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;https:&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>var</span><span class=w> </span><span class=n>host</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=s>&#34;lruihao.cn&#34;</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>host</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>host</span><span class=w> </span><span class=o>&amp;&amp;</span><span class=w> </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>protocol</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=n>targetProtocol</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>href</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>targetProtocol</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>href</span><span class=p>.</span><span class=na>substring</span><span class=p>(</span><span class=n>window</span><span class=p>.</span><span class=na>location</span><span class=p>.</span><span class=na>protocol</span><span class=p>.</span><span class=na>length</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=腾讯云-cdn-配置><span>2 腾讯云 CDN 配置</span>\n<a href=#%e8%85%be%e8%ae%af%e4%ba%91-cdn-%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>这个博客后来是转到了腾讯云的 cos 桶存储。当时在桶内静态网站设置的时候，设置强制 https 发现会出错。而且还接入了 CDN，所以今天在 CDN 设置那里也看到了 https 的设置，打开强制 https 就 OK 了。这天在三丰云撸了一个免费的主机，搭了一个 WordPress（想试试 wp 的感觉），然后 vps 的 SSL 问题现在也很简单了，第一步，到腾讯云申请免费证书；第二步，配置 CDN，按步骤来，其中接入方式选择自有源站；第三步，强制 https（可选）。</p></blockquote><p><a class=lightgallery target=_blank href=/posts/http2https/images/1.png title=Cellvps–WordPress data-thumbnail=/posts/http2https/images/1.png data-sub-html=\"<h2>Cellvps–WordPress</h2>\"><img loading=lazy src=/posts/http2https/images/1.png alt=Cellvps–WordPress height=904 width=1899></a></p><p><a class=lightgallery target=_blank href=/posts/http2https/images/2.png title=\"CDN 域名管理\" data-thumbnail=/posts/http2https/images/2.png data-sub-html=\"<h2>CDN 域名管理</h2>\"><img loading=lazy src=/posts/http2https/images/2.png alt=\"CDN 域名管理\" height=487 width=1644></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/http2https/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/http2https/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/http2https/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20vps+%E9%85%8D%E7%BD%AE+ssl+%E5%8F%8A+https+%E9%87%8D%E5%AE%9A%E5%90%91&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cvps+%E9%85%8D%E7%BD%AE+ssl+%E5%8F%8A+https+%E9%87%8D%E5%AE%9A%E5%90%91%7c%0A%7cURL%7chttps://lruihao.cn/posts/http2https/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/http2https/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/http2https/ data-title=\"Vps 配置 Ssl 及 Https 重定向\" data-hashtags=SSL,redirect,CDN,JavaScript,server><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/http2https/ data-hashtag=SSL><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/http2https/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/http2https/ data-title=\"Vps 配置 Ssl 及 Https 重定向\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/http2https/ data-title=\"Vps 配置 Ssl 及 Https 重定向\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ssl/ class=post-tag title=\"标签 - SSL\">SSL</a><a href=/tags/redirect/ class=post-tag title=\"标签 - redirect\">redirect</a><a href=/tags/cdn/ class=post-tag title=\"标签 - CDN\">CDN</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexo-theme-next/ class=post-nav-item rel=prev title=\"Hexo-Theme-Next @Modified LRH\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo-Theme-Next @Modified LRH</a><a href=/posts/dacheng/ class=post-nav-item rel=next title=大数乘法>大数乘法<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#强制重定向-https>强制重定向 https</a></li><li><a href=#腾讯云-cdn-配置>腾讯云 CDN 配置</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/85f41e792ee3de1ac5020de929e1c596.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/85f41e792ee3de1ac5020de929e1c596.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/http2https/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/http2https/index.md",
    "content": "# Vps 配置 Ssl 及 Https 重定向\n\n\n> 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\n\n<!--more-->\n\n## 强制重定向 https\n\n> 有一种情况相信很多人都遇到过，就是虽然我们配置了 ssl 证书，但是 https 和 http 地址都是各自都可以单独访问。我们应该也见过类似于 github 的代码托管网站有强制 https 的开关。如果是这种情况我们还可以通过 js 进行 301 定向。\n\n```java http2https\n<script>\nvar targetProtocol = \"https:\";\nvar host = \"lruihao.cn\";\nif (window.location.host == host && window.location.protocol != targetProtocol){\n  window.location.href = targetProtocol +\n    window.location.href.substring(window.location.protocol.length);\n}\n</script>\n```\n\n## 腾讯云 CDN 配置\n\n> 这个博客后来是转到了腾讯云的 cos 桶存储。当时在桶内静态网站设置的时候，设置强制 https 发现会出错。而且还接入了 CDN，所以今天在 CDN 设置那里也看到了 https 的设置，打开强制 https 就 OK 了。这天在三丰云撸了一个免费的主机，搭了一个 WordPress（想试试 wp 的感觉），然后 vps 的 SSL 问题现在也很简单了，第一步，到腾讯云申请免费证书；第二步，配置 CDN，按步骤来，其中接入方式选择自有源站；第三步，强制 https（可选）。\n\n![Cellvps--WordPress](images/1.png)\n\n![CDN 域名管理](images/2.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/http2https/  \n\n"
  },
  {
    "path": "posts/hugo-admin/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo 本地管理 Shell 腳本 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"使用 Shell 腳本管理 Hugo 本地博客\"><meta name=keywords content='hugo,shell'><meta itemprop=name content=\"Hugo 本地管理 Shell 腳本\"><meta itemprop=description content=\"使用 Shell 腳本管理 Hugo 本地博客\"><meta itemprop=datePublished content=\"2021-10-04T23:49:00+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=wordCount content=\"767\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,shell\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hugo-admin/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo 本地管理 Shell 腳本\"><meta property=\"og:description\" content=\"使用 Shell 腳本管理 Hugo 本地博客\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-04T23:49:00+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T10:24:30+08:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"shell\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo 本地管理 Shell 腳本\"><meta name=twitter:description content=\"使用 Shell 腳本管理 Hugo 本地博客\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hugo-admin/ title=\"Hugo 本地管理 Shell 腳本 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/github-actions/ title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\"><link rel=next type=text/html href=https://lruihao.cn/posts/hugo-friends/ title=\"Hugo 友情連結模板\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hugo-admin/index.md title=\"Hugo 本地管理 Shell 腳本 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo 本地管理 Shell 腳本\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-admin\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, shell\",\"wordcount\":767,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-admin\\/\",\"datePublished\":\"2021-10-04T23:49:00+08:00\",\"dateModified\":\"2024-10-06T10:24:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"使用 Shell 腳本管理 Hugo 本地博客\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hugo-admin/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo 本地管理 Shell 腳本</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo 本地管理 Shell 腳本</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-04 23:49:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-04>2021-10-04</time></span>&nbsp;<span title=\"更新于 2024-10-06 10:24:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"767 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo 本地管理 Shell 腳本\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#實現>實現</a><ol><li><a href=#post_generatorsh>post_generator.sh</a></li><li><a href=#hugo_serversh>hugo_server.sh</a></li><li><a href=#hugo_buildersh>hugo_builder.sh</a></li><li><a href=#public_asyncsh>public_async.sh</a></li><li><a href=#auto_pushsh>auto_push.sh</a></li><li><a href=#hugo_mainsh>hugo_main.sh</a></li></ol></li><li><a href=#使用>使用</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition abstract open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=true></i>摘要<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。<br>自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。</div></div></div><h2 class=heading-element id=實現><span>1 實現</span>\n<a href=#%e5%af%a6%e7%8f%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一共六個腳本，放在 <code>hugo-site/_localadmin/</code> 下</p><pre><code>_localadmin/\n  ├── auto_push.sh       # 自動化提交源碼\n  ├── hugo_builder.sh    # 構建 hugo 命令\n  ├── hugo_main.sh       # 主介面入口\n  ├── hugo_server.sh     # 啟動本地服務\n  ├── post_generator.sh  # 創建文章\n  └── public_async.sh    # 同步 public 子模組\n</code></pre><h3 class=heading-element id=post_generatorsh><span>1.1 post_generator.sh</span>\n<a href=#post_generatorsh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>輸入文章名稱（建議使用英文）</li><li>文章是否會插入圖片等資源（默認：否）</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1>#author: Lruihao</span>\n</span></span><span class=line><span class=cl><span class=nb>cd</span> ..\n</span></span><span class=line><span class=cl><span class=nb>read</span> -p <span class=s2>&#34;Please enter the article name: &#34;</span> postName\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=o>[</span> -z <span class=nv>$postName</span> <span class=o>]</span><span class=p>;</span><span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;The article name is required!&#34;</span>\n</span></span><span class=line><span class=cl><span class=k>else</span>\n</span></span><span class=line><span class=cl>  <span class=nb>read</span> -p <span class=s2>&#34;Will there be pictures in this article? [y/n]...&#34;</span> choice\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=o>[</span> <span class=nv>$choice</span> <span class=o>=</span> <span class=s2>&#34;y&#34;</span> <span class=o>]</span><span class=p>;</span><span class=k>then</span>\n</span></span><span class=line><span class=cl>    hugo new posts/<span class=nv>$postName</span>/index.md\n</span></span><span class=line><span class=cl>  <span class=k>else</span>\n</span></span><span class=line><span class=cl>    hugo new posts/<span class=nv>$postName</span>.md\n</span></span><span class=line><span class=cl>  <span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>fi</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=hugo_serversh><span>1.2 hugo_server.sh</span>\n<a href=#hugo_serversh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ..\n</span></span><span class=line><span class=cl>hugo server --disableFastRender</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=hugo_buildersh><span>1.3 hugo_builder.sh</span>\n<a href=#hugo_buildersh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ..\n</span></span><span class=line><span class=cl>hugo --minify</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=public_asyncsh><span>1.4 public_async.sh</span>\n<a href=#public_asyncsh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ..\n</span></span><span class=line><span class=cl>git submodule update --remote\n</span></span><span class=line><span class=cl>git add public\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;Feat: Update public module commit id&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=auto_pushsh><span>1.5 auto_push.sh</span>\n<a href=#auto_pushsh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>不輸入 Git 提交訊息會使用腳本中默認訊息 <code>Docs: 『菠菜眾長』内容更新 YYYY-MM-DD week hh:mm::ss</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1>#author: Lruihao</span>\n</span></span><span class=line><span class=cl><span class=nb>cd</span> ..\n</span></span><span class=line><span class=cl><span class=c1># 是否需要每次提交自動更新子模組</span>\n</span></span><span class=line><span class=cl><span class=c1># git submodule update --remote</span>\n</span></span><span class=line><span class=cl><span class=c1># git add public</span>\n</span></span><span class=line><span class=cl><span class=c1># git commit -m &#34;Feat: Update public module commit id&#34;</span>\n</span></span><span class=line><span class=cl>git add .\n</span></span><span class=line><span class=cl><span class=nb>read</span> -p <span class=s2>&#34;Please enter commit message: &#34;</span> commitMsg\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=o>[</span> -z <span class=nv>$commitMsg</span> <span class=o>]</span><span class=p>;</span><span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nv>commitMsg</span><span class=o>=</span><span class=s2>&#34;Docs: 『菠菜眾長』内容更新 </span><span class=k>$(</span>date +<span class=s1>&#39;%F %a %T&#39;</span><span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;</span><span class=nv>$commitMsg</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>git push</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=hugo_mainsh><span>1.6 hugo_main.sh</span>\n<a href=#hugo_mainsh class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>可單獨執行子腳本也可以通過主介面來選擇序號執行</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1>#author: Lruihao</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;Please enter the serial number to work&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;--------------------------------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;1. post generator&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;2. hugo server&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;3. hugo build&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;4. public async&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;5. auto push&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;--------------------------------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;Press Ctrl+C to stop&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>read</span> num\n</span></span><span class=line><span class=cl><span class=k>case</span> <span class=nv>$num</span> in\n</span></span><span class=line><span class=cl>  1<span class=o>)</span>\n</span></span><span class=line><span class=cl>    sh post_generator.sh\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  2<span class=o>)</span>\n</span></span><span class=line><span class=cl>    sh hugo_server.sh\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  3<span class=o>)</span>\n</span></span><span class=line><span class=cl>    sh hugo_builder.sh\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  4<span class=o>)</span>\n</span></span><span class=line><span class=cl>    sh public_async.sh\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  5<span class=o>)</span>\n</span></span><span class=line><span class=cl>    sh auto_push.sh\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl>  *<span class=o>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>echo</span> <span class=s2>&#34;There is no such serial number&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>;;</span>\n</span></span><span class=line><span class=cl><span class=k>esac</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;Press any key to continue...&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>read</span> x\n</span></span><span class=line><span class=cl>clear\n</span></span><span class=line><span class=cl>sh hugo_main.sh</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用><span>2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>將 <code>hugo_main.sh</code> 建立桌面快捷鍵</li><li>雙擊 <code>hugo_main.sh</code> 進入根據提示使用即可</li></ol><p>由於一般寫博客會便邊寫邊預覽，所以一般開兩個主介面窗口，如下圖：</p><blockquote><ul><li>一個選擇 <code>2</code> 啟動本地服務</li><li>一個用於生成文章，部署文章等</li></ul></blockquote><p><figure><a class=lightgallery target=_blank href=/posts/hugo-admin/images/hugo-admin1.png title=\"Hugo Admin\" data-thumbnail=/posts/hugo-admin/images/hugo-admin1.png data-sub-html=\"<h2>Hugo Admin</h2><p>Hugo Admin</p>\"><img loading=lazy src=/posts/hugo-admin/images/hugo-admin1.png alt=\"Hugo Admin\" height=582 width=1520></a><figcaption class=image-caption>Hugo Admin</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 10:24:30\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hugo-admin/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-admin/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hugo-admin/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hugo+%E6%9C%AC%E5%9C%B0%E7%AE%A1%E7%90%86+Shell+%E8%85%B3%E6%9C%AC&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHugo+%E6%9C%AC%E5%9C%B0%E7%AE%A1%E7%90%86+Shell+%E8%85%B3%E6%9C%AC%7c%0A%7cURL%7chttps://lruihao.cn/posts/hugo-admin/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-admin/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hugo-admin/ data-title=\"Hugo 本地管理 Shell 腳本\" data-hashtags=hugo,shell><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hugo-admin/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hugo-admin/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hugo-admin/ data-title=\"Hugo 本地管理 Shell 腳本\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hugo-admin/ data-title=\"Hugo 本地管理 Shell 腳本\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/shell/ class=post-tag title=\"标签 - shell\">shell</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/github-actions/ class=post-nav-item rel=prev title=\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a><a href=/posts/hugo-friends/ class=post-nav-item rel=next title=\"Hugo 友情連結模板\">Hugo 友情連結模板<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#實現>實現</a><ol><li><a href=#post_generatorsh>post_generator.sh</a></li><li><a href=#hugo_serversh>hugo_server.sh</a></li><li><a href=#hugo_buildersh>hugo_builder.sh</a></li><li><a href=#public_asyncsh>public_async.sh</a></li><li><a href=#auto_pushsh>auto_push.sh</a></li><li><a href=#hugo_mainsh>hugo_main.sh</a></li></ol></li><li><a href=#使用>使用</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/dfd3937a4be1f2bb1b8f0c783501e347.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/dfd3937a4be1f2bb1b8f0c783501e347.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hugo-admin/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hugo-admin/index.md",
    "content": "# Hugo 本地管理 Shell 腳本\n\n\n{{< admonition abstract >}}\n在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。  \n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\n{{< /admonition >}}\n\n<!--more-->\n\n## 實現\n\n一共六個腳本，放在 `hugo-site/_localadmin/` 下\n\n    _localadmin/\n      ├── auto_push.sh       # 自動化提交源碼\n      ├── hugo_builder.sh    # 構建 hugo 命令\n      ├── hugo_main.sh       # 主介面入口\n      ├── hugo_server.sh     # 啟動本地服務\n      ├── post_generator.sh  # 創建文章\n      └── public_async.sh    # 同步 public 子模組\n\n### post_generator.sh\n\n1. 輸入文章名稱（建議使用英文）\n2. 文章是否會插入圖片等資源（默認：否）\n\n```bash\n#!/bin/bash\n#author: Lruihao\ncd ..\nread -p \"Please enter the article name: \" postName\nif [ -z $postName ];then\n  echo \"The article name is required!\"\nelse\n  read -p \"Will there be pictures in this article? [y/n]...\" choice\n  if [ $choice = \"y\" ];then\n    hugo new posts/$postName/index.md\n  else\n    hugo new posts/$postName.md\n  fi\nfi\n```\n\n### hugo_server.sh\n\n```bash\ncd ..\nhugo server --disableFastRender\n```\n\n### hugo_builder.sh\n\n```bash\ncd ..\nhugo --minify\n```\n\n### public_async.sh\n\n```bash\ncd ..\ngit submodule update --remote\ngit add public\ngit commit -m \"Feat: Update public module commit id\"\n```\n\n### auto_push.sh\n\n不輸入 Git 提交訊息會使用腳本中默認訊息 `Docs: 『菠菜眾長』内容更新 YYYY-MM-DD week hh:mm::ss`\n\n```bash\n#!/bin/bash\n#author: Lruihao\ncd ..\n# 是否需要每次提交自動更新子模組\n# git submodule update --remote\n# git add public\n# git commit -m \"Feat: Update public module commit id\"\ngit add .\nread -p \"Please enter commit message: \" commitMsg\nif [ -z $commitMsg ];then\n  commitMsg=\"Docs: 『菠菜眾長』内容更新 $(date +'%F %a %T')\"\nfi\ngit commit -m \"$commitMsg\"\ngit push\n```\n\n### hugo_main.sh\n\n> 可單獨執行子腳本也可以通過主介面來選擇序號執行\n\n```bash\n#!/bin/bash\n#author: Lruihao\necho \"Please enter the serial number to work\"\necho \"--------------------------------------\"\necho \"1. post generator\"\necho \"2. hugo server\"\necho \"3. hugo build\"\necho \"4. public async\"\necho \"5. auto push\"\necho \"--------------------------------------\"\necho \"Press Ctrl+C to stop\"\n\nread num\ncase $num in\n  1)\n    sh post_generator.sh\n    ;;\n  2)\n    sh hugo_server.sh\n    ;;\n  3)\n    sh hugo_builder.sh\n    ;;\n  4)\n    sh public_async.sh\n    ;;\n  5)\n    sh auto_push.sh\n    ;;\n  *)\n    echo \"There is no such serial number\"\n    ;;\nesac\n\necho \"Press any key to continue...\"\nread x\nclear\nsh hugo_main.sh\n```\n\n## 使用\n\n1. 將 `hugo_main.sh` 建立桌面快捷鍵\n2. 雙擊 `hugo_main.sh` 進入根據提示使用即可\n\n由於一般寫博客會便邊寫邊預覽，所以一般開兩個主介面窗口，如下圖：\n\n> - 一個選擇 `2` 啟動本地服務\n> - 一個用於生成文章，部署文章等\n\n![Hugo Admin](images/hugo-admin1.png 'Hugo Admin')\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hugo-admin/  \n\n"
  },
  {
    "path": "posts/hugo-cardlink/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo 添加知乎卡片式链接 Shortcodes | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \"><meta name=keywords content='hugo,Shortcodes'><meta itemprop=name content=\"Hugo 添加知乎卡片式链接 Shortcodes\"><meta itemprop=description content=\"卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\"><meta itemprop=datePublished content=\"2021-10-05T19:33:13+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=wordCount content=\"277\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,Shortcodes\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hugo-cardlink/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo 添加知乎卡片式链接 Shortcodes\"><meta property=\"og:description\" content=\"卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-05T19:33:13+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T10:24:30+08:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo 添加知乎卡片式链接 Shortcodes\"><meta name=twitter:description content=\"卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hugo-cardlink/ title=\"Hugo 添加知乎卡片式链接 Shortcodes | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hugo-i18n-zh-tw/ title=\"Hugo I18n 添加中文繁體翻譯\"><link rel=next type=text/html href=https://lruihao.cn/posts/subl_imgpaste2/ title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hugo-cardlink/index.md title=\"Hugo 添加知乎卡片式链接 Shortcodes | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-cardlink\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, Shortcodes\",\"wordcount\":277,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-cardlink\\/\",\"datePublished\":\"2021-10-05T19:33:13+08:00\",\"dateModified\":\"2024-10-06T10:24:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hugo-cardlink/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo 添加知乎卡片式链接 Shortcodes</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo 添加知乎卡片式链接 Shortcodes</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-05 19:33:13\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-05>2021-10-05</time></span>&nbsp;<span title=\"更新于 2024-10-06 10:24:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"277 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo 添加知乎卡片式链接 Shortcodes\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#源碼>源碼</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>卡片式链接已整合到 FixIt 主题</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/FixIt</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>回顧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>之前在使用 hexo 的時候也有用到，<a href=/posts/linkcard/>模仿知乎卡片式链接</a><br>和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，<br>使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。</div></div></div><h2 class=heading-element id=源碼><span>1 源碼</span>\n<a href=#%e6%ba%90%e7%a2%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>基於 LoveIt 主題的 Link Shortcodes, 主要改到以下幾個文件，<a href=https://github.com/Lruihao/hugo-blog/commit/089c303693e806bff855ecf3fee110baa62b870b target=_blank rel=\"external nofollow noopener noreferrer\">完整提交記錄<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><pre><code>assets/css/custom.scss\nassets/css/partial/cardlink.scss          # 卡片式鏈接樣式\nlayouts/partials/plugin/cardlink.html     # 卡片式鏈接模板\nlayouts/shortcodes/cardlink.html\nstatic/images/card-link-bg.jpg\n</code></pre><h2 class=heading-element id=使用><span>2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>使用參數见 <a href=https://fixit.lruihao.cn/zh-cn/theme-documentation-extended-shortcodes/#2-link target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 擴展 Shortcodes - Link<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{{&lt; cardlink href=&#34;https://github.com/Lruihao/hugo-blog/commit/089c303693e806bff855ecf3fee110baa62b870b&#34; content=&#34;知乎卡片式链接 Git 記錄&#34; &gt;}}</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>&#x1f4a1; 注：FixIt <a href=https://github.com/hugo-fixit/FixIt/releases/tag/v0.2.12 rel=external target=_blank class=version-link><img class=version src=/images/version/0.2.12-changed.min.svg alt=\"FixIt 0.2.12 | 更改\"></a> 已合併 shortcode cardlink 到 shortcode link，只需添加 <code>card=true</code></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{{&lt; link href=&#34;https://github.com/Lruihao/FixIt&#34; content=&#34;卡片式链接已整合到 FixIt 主题&#34; card=true &gt;}}</span></span></code></pre></td></tr></table></div></div></div><hr><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>我的博客即将同步至腾讯云 + 社区，邀请大家一同入驻：<br><a href=\"https://cloud.tencent.com/developer/support-plan?invite_code=3o5dmfzf0xkwk\" target=_blank rel=\"external nofollow noopener noreferrer\">https://cloud.tencent.com/developer/support-plan?invite_code=3o5dmfzf0xkwk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 10:24:30\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hugo-cardlink/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-cardlink.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hugo-cardlink.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hugo+%E6%B7%BB%E5%8A%A0%E7%9F%A5%E4%B9%8E%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5+Shortcodes&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHugo+%E6%B7%BB%E5%8A%A0%E7%9F%A5%E4%B9%8E%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5+Shortcodes%7c%0A%7cURL%7chttps://lruihao.cn/posts/hugo-cardlink/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-cardlink.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hugo-cardlink/ data-title=\"Hugo 添加知乎卡片式链接 Shortcodes\" data-hashtags=hugo,Shortcodes><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hugo-cardlink/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hugo-cardlink/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hugo-cardlink/ data-title=\"Hugo 添加知乎卡片式链接 Shortcodes\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hugo-cardlink/ data-title=\"Hugo 添加知乎卡片式链接 Shortcodes\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hugo-i18n-zh-tw/ class=post-nav-item rel=prev title=\"Hugo I18n 添加中文繁體翻譯\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hugo I18n 添加中文繁體翻譯</a><a href=/posts/subl_imgpaste2/ class=post-nav-item rel=next title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\">Sublime 剪贴板图片粘贴插件 —— Markdown 必备<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#源碼>源碼</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ddf6975ff5fbc5c661477b59ca586e4d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ddf6975ff5fbc5c661477b59ca586e4d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hugo-cardlink/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hugo-cardlink/index.md",
    "content": "# Hugo 添加知乎卡片式链接 Shortcodes\n\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"https://github.com/Lruihao/FixIt\" content=\"卡片式链接已整合到 FixIt 主题\" card=true >}}\n\n{{< admonition quote \"回顧\" >}}\n之前在使用 hexo 的時候也有用到，[模仿知乎卡片式链接](/posts/linkcard/)  \n 和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，  \n 使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。  \n{{< /admonition >}}\n\n<!--more-->\n\n## 源碼\n\n基於 LoveIt 主題的 Link Shortcodes, 主要改到以下幾個文件，[完整提交記錄](https://github.com/Lruihao/hugo-blog/commit/089c303693e806bff855ecf3fee110baa62b870b)\n\n    assets/css/custom.scss\n    assets/css/partial/cardlink.scss          # 卡片式鏈接樣式\n    layouts/partials/plugin/cardlink.html     # 卡片式鏈接模板\n    layouts/shortcodes/cardlink.html\n    static/images/card-link-bg.jpg\n\n## 使用\n\n使用參數见 [FixIt 擴展 Shortcodes - Link](https://fixit.lruihao.cn/zh-cn/theme-documentation-extended-shortcodes/#2-link)\n\n<!-- markdownlint-disable MD046 -->\n\n```md\n{{</* cardlink href=\"https://github.com/Lruihao/hugo-blog/commit/089c303693e806bff855ecf3fee110baa62b870b\" content=\"知乎卡片式链接 Git 記錄\" */>}}\n```\n\n> :bulb: 注：FixIt {{< version 0.2.12 changed >}} 已合併 shortcode cardlink 到 shortcode link，只需添加 `card=true`\n\n```md\n{{</* link href=\"https://github.com/Lruihao/FixIt\" content=\"卡片式链接已整合到 FixIt 主题\" card=true */>}}\n```\n\n---\n\n{{< admonition info \"信息\" >}}\n我的博客即将同步至腾讯云 + 社区，邀请大家一同入驻：  \n <https://cloud.tencent.com/developer/support-plan?invite_code=3o5dmfzf0xkwk>\n{{< /admonition >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hugo-cardlink/  \n\n"
  },
  {
    "path": "posts/hugo-friends/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo 友情連結模板 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt \"><meta name=keywords content='hugo'><meta itemprop=name content=\"Hugo 友情連結模板\"><meta itemprop=description content=\"過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt\"><meta itemprop=datePublished content=\"2021-10-05T14:14:10+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=wordCount content=\"740\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hugo-friends/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo 友情連結模板\"><meta property=\"og:description\" content=\"過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-05T14:14:10+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T10:24:30+08:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo 友情連結模板\"><meta name=twitter:description content=\"過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hugo-friends/ title=\"Hugo 友情連結模板 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hugo-admin/ title=\"Hugo 本地管理 Shell 腳本\"><link rel=next type=text/html href=https://lruihao.cn/posts/hugo-i18n-zh-tw/ title=\"Hugo I18n 添加中文繁體翻譯\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hugo-friends/index.md title=\"Hugo 友情連結模板 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo 友情連結模板\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-friends\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo\",\"wordcount\":740,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-friends\\/\",\"datePublished\":\"2021-10-05T14:14:10+08:00\",\"dateModified\":\"2024-10-06T10:24:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hugo-friends/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo 友情連結模板</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo 友情連結模板</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-05 14:14:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-05>2021-10-05</time></span>&nbsp;<span title=\"更新于 2024-10-06 10:24:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"740 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo 友情連結模板\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#創建模板>創建模板</a></li><li><a href=#模板樣式>模板樣式</a></li><li><a href=#友鏈頁面>友鏈頁面</a></li><li><a href=#數據>數據</a></li><li><a href=#結語>結語</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>過程<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。</div></div></div><a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>友情鏈接模板已整合到 FixIt 主題</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/FixIt</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a>\n<a href=https://lruihao.cn/friends/ target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>友情鏈接範本</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>lruihao.cn/friends/</span>\n</span></span><img src=/images/remote/lruihao_12979630246456260096.png alt=\"card image\" class=cl-shortcut-image></span></a><h2 class=heading-element id=創建模板><span>1 創建模板</span>\n<a href=#%e5%89%b5%e5%bb%ba%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>開始之前去看了 hugo 的官網，再看了一下 go 模板的語法。</p><p>新建 <code>layouts/friends/single.html</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl>{{- define &#34;title&#34; }}{{ .Title }} - {{ .Site.Title }}{{ end -}} {{- define &#34;content&#34; -}} {{- $params := .Scratch.Get &#34;params&#34; -}}\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;page single special&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  {{- /* Title */ -}}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>h1</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;single-title animated pulse faster&#34;</span><span class=p>&gt;</span>{{- .Title -}}<span class=p>&lt;/</span><span class=nt>h1</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  {{- /* Subtitle */ -}} {{- with $params.subtitle -}}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>h2</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;single-subtitle&#34;</span><span class=p>&gt;</span>{{ . }}<span class=p>&lt;/</span><span class=nt>h2</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  {{- end -}} {{- /* Friend links */ -}} {{- $loading := resources.Get &#34;svg/loading.svg&#34; | minify -}}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;/friends/css/_friends.css&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;friend-links&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    {{ range $index, $friend := .Site.Data.friends }}\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>a</span>\n</span></span><span class=line><span class=cl>      <span class=na>class</span><span class=o>=</span><span class=s>&#34;friend-link&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>title</span><span class=o>=</span><span class=s>&#34;{{ $friend.description }}&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>href</span><span class=o>=</span><span class=s>&#34;{{ $friend.url | safeURL }}&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>rel</span><span class=o>=</span><span class=s>&#34;external nofollow noopener noreferrer&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>target</span><span class=o>=</span><span class=s>&#34;_blank&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      {{ if $friend.avatar }}\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>img</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;friend-avatar lazyload&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;{{ $loading.RelPermalink }}&#34;</span> <span class=na>data-src</span><span class=o>=</span><span class=s>&#34;{{ $friend.avatar }}&#34;</span> <span class=na>alt</span><span class=o>=</span><span class=s>&#34;{{ $friend.nickname }}&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>      {{ else }}\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>svg</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;friend-avatar&#34;</span> <span class=na>aria-hidden</span><span class=o>=</span><span class=s>&#34;true&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>use</span> <span class=na>xlink:href</span><span class=o>=</span><span class=s>&#34;#icon-{{ add 1 $index }}&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>use</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>svg</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      {{ end }}\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>span</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;friend-nickname&#34;</span> <span class=na>title</span><span class=o>=</span><span class=s>&#34;{{ $friend.nickname }}&#34;</span><span class=p>&gt;</span>@{{ $friend.nickname }}<span class=p>&lt;/</span><span class=nt>span</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    {{ end }}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  {{- /* Content */ -}}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;content&#34;</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;content&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    {{- dict &#34;Content&#34; .Content &#34;Ruby&#34; $params.ruby &#34;Fraction&#34; $params.fraction &#34;Fontawesome&#34; $params.fontawesome | partial &#34;function/content.html&#34; |\n</span></span><span class=line><span class=cl>    safeHTML -}}\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  {{- /* Comment */ -}} {{- partial &#34;comment.html&#34; . -}}\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>{{- end -}}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=模板樣式><span>2 模板樣式</span>\n<a href=#%e6%a8%a1%e6%9d%bf%e6%a8%a3%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>新建文件 <code>_friends.css</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/**\n</span></span></span><span class=line><span class=cl><span class=c> * @Description: Style of layout named &#39;Friend links&#39;.\n</span></span></span><span class=line><span class=cl><span class=c> * @Author: lruihao.cn\n</span></span></span><span class=line><span class=cl><span class=c> * @Updated:  2021/9/20 19:26\n</span></span></span><span class=line><span class=cl><span class=c> */</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-links</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin-top</span><span class=p>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-direction</span><span class=p>:</span> <span class=kc>row</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>justify-content</span><span class=p>:</span> <span class=kc>space-between</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-wrap</span><span class=p>:</span> <span class=kc>wrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>media</span> <span class=o>(</span><span class=nt>max-width</span><span class=o>:</span> <span class=nt>576px</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nc>friend-links</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>justify-content</span><span class=p>:</span> <span class=kc>space-around</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-link</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=mi>150</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>height</span><span class=p>:</span> <span class=mi>200</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-size</span><span class=p>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>text-align</span><span class=p>:</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>background</span><span class=p>:</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>255</span><span class=p>,</span> <span class=mi>255</span><span class=p>,</span> <span class=mi>255</span><span class=p>,</span> <span class=mf>0.3</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>box-sizing</span><span class=p>:</span> <span class=kc>border-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>box-shadow</span><span class=p>:</span> <span class=mi>3</span><span class=kt>px</span> <span class=mi>3</span><span class=kt>px</span> <span class=mi>5</span><span class=kt>px</span> <span class=mh>#aaa</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border-radius</span><span class=p>:</span> <span class=mi>5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border</span><span class=p>:</span> <span class=kc>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>transition-duration</span><span class=p>:</span> <span class=mf>0.3</span><span class=kt>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin-bottom</span><span class=p>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>flex-direction</span><span class=p>:</span> <span class=kc>column</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>justify-content</span><span class=p>:</span> <span class=kc>space-between</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-link</span><span class=p>:</span><span class=nd>hover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background</span><span class=p>:</span> <span class=mh>#fff</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>transform</span><span class=p>:</span> <span class=nb>scale</span><span class=p>(</span><span class=mf>1.03</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>box-shadow</span><span class=p>:</span> <span class=mi>0</span> <span class=mi>0</span> <span class=mi>3</span><span class=kt>px</span> <span class=mh>#aaa</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-avatar</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>object-fit</span><span class=p>:</span> <span class=kc>cover</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>object-position</span><span class=p>:</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=mi>100</span><span class=kt>%</span> <span class=cp>!important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>height</span><span class=p>:</span> <span class=mi>150</span><span class=kt>px</span> <span class=cp>!important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border-radius</span><span class=p>:</span> <span class=mi>5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>padding</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-nickname</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>position</span><span class=p>:</span> <span class=kc>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>color</span><span class=p>:</span> <span class=mh>#2bbc8a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-weight</span><span class=p>:</span> <span class=kc>bold</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>max-width</span><span class=p>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>overflow</span><span class=p>:</span> <span class=kc>hidden</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>white-space</span><span class=p>:</span> <span class=kc>nowrap</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>text-overflow</span><span class=p>:</span> <span class=kc>ellipsis</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>line-height</span><span class=p>:</span> <span class=mi>18</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin-bottom</span><span class=p>:</span> <span class=mi>1</span><span class=kt>rem</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>friend-nickname</span><span class=p>:</span><span class=nd>hover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>color</span><span class=p>:</span> <span class=mh>#d480aa</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=友鏈頁面><span>3 友鏈頁面</span>\n<a href=#%e5%8f%8b%e9%8f%88%e9%a0%81%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo new friends/index.md</span></span></code></pre></td></tr></table></div></div></div><ol><li><p>將 <code>_friends.css</code> 放到 <code>content/friends/css/</code></p></li><li><p>打開友鏈頁面 <code>content/friends/index.md</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: &#39;友鏈&#39;\n</span></span><span class=line><span class=cl>date: 2021-09-19T12:33:48+08:00\n</span></span><span class=line><span class=cl>type: &#39;friends&#39;\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=數據><span>4 數據</span>\n<a href=#%e6%95%b8%e6%93%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>新建數據文件 <code>data/friends.yml</code>, 數據格式為：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=c># - nickname: 标题</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c>#   avatar: 头像</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c>#   url: 站点</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c>#   description: 描述</span><span class=w>\n</span></span></span><span class=line><span class=cl>- <span class=nt>nickname</span><span class=p>:</span><span class=w> </span><span class=l>Lruihao</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>avatar</span><span class=p>:</span><span class=w> </span><span class=l>https://gravatar.loli.net/avatar/3f985efb5907ca52944a3cd7edd51606?d=wavatar&amp;v=1.3.10</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>url</span><span class=p>:</span><span class=w> </span><span class=l>https://lruihao.cn</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>description</span><span class=p>:</span><span class=w> </span><span class=l>不怕萬人阻擋，只怕自己投降</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=結語><span>5 結語</span>\n<a href=#%e7%b5%90%e8%aa%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>這樣每次添加友鏈或者刪除友鏈衹要操作數據文件 <code>friends.yml</code> 就好，乾淨又衛生！<br>友鏈頁面 <code>content/friends/index.md</code> 繼承了基礎頁面的功能，內容評論等</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 10:24:30\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hugo-friends/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-friends.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hugo-friends.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hugo+%E5%8F%8B%E6%83%85%E9%80%A3%E7%B5%90%E6%A8%A1%E6%9D%BF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHugo+%E5%8F%8B%E6%83%85%E9%80%A3%E7%B5%90%E6%A8%A1%E6%9D%BF%7c%0A%7cURL%7chttps://lruihao.cn/posts/hugo-friends/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-friends.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hugo-friends/ data-title=\"Hugo 友情連結模板\" data-hashtags=hugo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hugo-friends/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hugo-friends/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hugo-friends/ data-title=\"Hugo 友情連結模板\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hugo-friends/ data-title=\"Hugo 友情連結模板\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hugo-admin/ class=post-nav-item rel=prev title=\"Hugo 本地管理 Shell 腳本\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hugo 本地管理 Shell 腳本</a><a href=/posts/hugo-i18n-zh-tw/ class=post-nav-item rel=next title=\"Hugo I18n 添加中文繁體翻譯\">Hugo I18n 添加中文繁體翻譯<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#創建模板>創建模板</a></li><li><a href=#模板樣式>模板樣式</a></li><li><a href=#友鏈頁面>友鏈頁面</a></li><li><a href=#數據>數據</a></li><li><a href=#結語>結語</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2956f1cccb73a886d642d203e4f0bb52.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2956f1cccb73a886d642d203e4f0bb52.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hugo-friends/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hugo-friends/index.md",
    "content": "# Hugo 友情連結模板\n\n<!-- markdownlint-disable MD034 -->\n\n{{< admonition question \"過程\" >}}\n以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\n{{< /admonition >}}\n\n{{< link href=\"https://github.com/Lruihao/FixIt\" content=\"友情鏈接模板已整合到 FixIt 主題\" card=true >}}\n\n<!--more-->\n\n{{< link href=\"https://lruihao.cn/friends/\" content=\"友情鏈接範本\" card=true >}}\n\n## 創建模板\n\n開始之前去看了 hugo 的官網，再看了一下 go 模板的語法。\n\n新建 `layouts/friends/single.html`\n\n```html\n{{- define \"title\" }}{{ .Title }} - {{ .Site.Title }}{{ end -}} {{- define \"content\" -}} {{- $params := .Scratch.Get \"params\" -}}\n<div class=\"page single special\">\n  {{- /* Title */ -}}\n  <h1 class=\"single-title animated pulse faster\">{{- .Title -}}</h1>\n\n  {{- /* Subtitle */ -}} {{- with $params.subtitle -}}\n  <h2 class=\"single-subtitle\">{{ . }}</h2>\n  {{- end -}} {{- /* Friend links */ -}} {{- $loading := resources.Get \"svg/loading.svg\" | minify -}}\n  <script src=\"//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\"></script>\n  <link rel=\"stylesheet\" href=\"/friends/css/_friends.css\" />\n  <div class=\"friend-links\">\n    {{ range $index, $friend := .Site.Data.friends }}\n    <a\n      class=\"friend-link\"\n      title=\"{{ $friend.description }}\"\n      href=\"{{ $friend.url | safeURL }}\"\n      rel=\"external nofollow noopener noreferrer\"\n      target=\"_blank\"\n    >\n      {{ if $friend.avatar }}\n      <img class=\"friend-avatar lazyload\" src=\"{{ $loading.RelPermalink }}\" data-src=\"{{ $friend.avatar }}\" alt=\"{{ $friend.nickname }}\" />\n      {{ else }}\n      <svg class=\"friend-avatar\" aria-hidden=\"true\">\n        <use xlink:href=\"#icon-{{ add 1 $index }}\"></use>\n      </svg>\n      {{ end }}\n      <span class=\"friend-nickname\" title=\"{{ $friend.nickname }}\">@{{ $friend.nickname }}</span>\n    </a>\n    {{ end }}\n  </div>\n\n  {{- /* Content */ -}}\n  <div class=\"content\" id=\"content\">\n    {{- dict \"Content\" .Content \"Ruby\" $params.ruby \"Fraction\" $params.fraction \"Fontawesome\" $params.fontawesome | partial \"function/content.html\" |\n    safeHTML -}}\n  </div>\n\n  {{- /* Comment */ -}} {{- partial \"comment.html\" . -}}\n</div>\n{{- end -}}\n```\n\n## 模板樣式\n\n新建文件 `_friends.css`\n\n```css\n/**\n * @Description: Style of layout named 'Friend links'.\n * @Author: lruihao.cn\n * @Updated:  2021/9/20 19:26\n */\n\n.friend-links {\n  margin-top: 1rem;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n@media (max-width: 576px) {\n  .friend-links {\n    justify-content: space-around;\n  }\n}\n.friend-link {\n  width: 150px;\n  height: 200px;\n  font-size: 1rem;\n  text-align: center;\n  background: rgba(255, 255, 255, 0.3);\n  box-sizing: border-box;\n  box-shadow: 3px 3px 5px #aaa;\n  border-radius: 5px;\n  border: none;\n  transition-duration: 0.3s;\n  margin-bottom: 1rem;\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n}\n.friend-link:hover {\n  background: #fff;\n  transform: scale(1.03);\n  box-shadow: 0 0 3px #aaa;\n}\n.friend-avatar {\n  object-fit: cover;\n  object-position: center;\n  width: 100% !important;\n  height: 150px !important;\n  border-radius: 5px;\n  margin: 0;\n  padding: 0;\n}\n.friend-nickname {\n  display: block;\n  position: relative;\n  color: #2bbc8a;\n  font-weight: bold;\n  max-width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  line-height: 18px;\n  margin-bottom: 1rem;\n}\n.friend-nickname:hover {\n  color: #d480aa;\n}\n```\n\n## 友鏈頁面\n\n```bash\nhugo new friends/index.md\n```\n\n1. 將 `_friends.css` 放到 `content/friends/css/`\n2. 打開友鏈頁面 `content/friends/index.md`\n\n   ```md\n   ---\n   title: '友鏈'\n   date: 2021-09-19T12:33:48+08:00\n   type: 'friends'\n   ---\n   ```\n\n## 數據\n\n新建數據文件 `data/friends.yml`, 數據格式為：\n\n```yaml\n# - nickname: 标题\n#   avatar: 头像\n#   url: 站点\n#   description: 描述\n- nickname: Lruihao\n  avatar: https://gravatar.loli.net/avatar/3f985efb5907ca52944a3cd7edd51606?d=wavatar&v=1.3.10\n  url: https://lruihao.cn\n  description: 不怕萬人阻擋，只怕自己投降\n```\n\n## 結語\n\n> 這樣每次添加友鏈或者刪除友鏈衹要操作數據文件 `friends.yml` 就好，乾淨又衛生！  \n> 友鏈頁面 `content/friends/index.md` 繼承了基礎頁面的功能，內容評論等\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hugo-friends/  \n\n"
  },
  {
    "path": "posts/hugo-i18n-zh-tw/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo I18n 添加中文繁體翻譯 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\n\"><meta name=keywords content='FixIt,hugo,I18n'><meta itemprop=name content=\"Hugo I18n 添加中文繁體翻譯\"><meta itemprop=description content=\"工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\"><meta itemprop=datePublished content=\"2021-10-05T19:14:45+08:00\"><meta itemprop=dateModified content=\"2021-12-19T20:01:45+08:00\"><meta itemprop=wordCount content=\"1335\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"FixIt,Hugo,I18n\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo I18n 添加中文繁體翻譯\"><meta property=\"og:description\" content=\"工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-05T19:14:45+08:00\"><meta property=\"article:modified_time\" content=\"2021-12-19T20:01:45+08:00\"><meta property=\"article:tag\" content=\"FixIt\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"I18n\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo I18n 添加中文繁體翻譯\"><meta name=twitter:description content=\"工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hugo-i18n-zh-tw/ title=\"Hugo I18n 添加中文繁體翻譯 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hugo-friends/ title=\"Hugo 友情連結模板\"><link rel=next type=text/html href=https://lruihao.cn/posts/hugo-cardlink/ title=\"Hugo 添加知乎卡片式链接 Shortcodes\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hugo-i18n-zh-tw/index.md title=\"Hugo I18n 添加中文繁體翻譯 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo I18n 添加中文繁體翻譯\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-i18n-zh-tw\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"FixIt, hugo, I18n\",\"wordcount\":1335,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hugo-i18n-zh-tw\\/\",\"datePublished\":\"2021-10-05T19:14:45+08:00\",\"dateModified\":\"2021-12-19T20:01:45+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hugo-i18n-zh-tw/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo I18n 添加中文繁體翻譯</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo I18n 添加中文繁體翻譯</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-05 19:14:45\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-05>2021-10-05</time></span>&nbsp;<span title=\"更新于 2021-12-19 20:01:45\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2021-12-19>2021-12-19</time></span>&nbsp;<span title=\"1335 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo I18n 添加中文繁體翻譯\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#翻譯>翻譯</a></li><li><a href=#配置>配置</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2021-12-19，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。</p></blockquote><blockquote><p>更新说明：<a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题已支持中文繁體。</p></blockquote><h2 class=heading-element id=翻譯><span>1 翻譯</span>\n<a href=#%e7%bf%bb%e8%ad%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>屬於直譯，有些詞語可能並不符合現在臺灣或者香港那邊的說法。比如，<code>分類</code>好像臺灣常說<code>歸類</code>吧</p><p>新建 <code>i18n/zh-TW.toml</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span><span class=lnt>132\n</span><span class=lnt>133\n</span><span class=lnt>134\n</span><span class=lnt>135\n</span><span class=lnt>136\n</span><span class=lnt>137\n</span><span class=lnt>138\n</span><span class=lnt>139\n</span><span class=lnt>140\n</span><span class=lnt>141\n</span><span class=lnt>142\n</span><span class=lnt>143\n</span><span class=lnt>144\n</span><span class=lnt>145\n</span><span class=lnt>146\n</span><span class=lnt>147\n</span><span class=lnt>148\n</span><span class=lnt>149\n</span><span class=lnt>150\n</span><span class=lnt>151\n</span><span class=lnt>152\n</span><span class=lnt>153\n</span><span class=lnt>154\n</span><span class=lnt>155\n</span><span class=lnt>156\n</span><span class=lnt>157\n</span><span class=lnt>158\n</span><span class=lnt>159\n</span><span class=lnt>160\n</span><span class=lnt>161\n</span><span class=lnt>162\n</span><span class=lnt>163\n</span><span class=lnt>164\n</span><span class=lnt>165\n</span><span class=lnt>166\n</span><span class=lnt>167\n</span><span class=lnt>168\n</span><span class=lnt>169\n</span><span class=lnt>170\n</span><span class=lnt>171\n</span><span class=lnt>172\n</span><span class=lnt>173\n</span><span class=lnt>174\n</span><span class=lnt>175\n</span><span class=lnt>176\n</span><span class=lnt>177\n</span><span class=lnt>178\n</span><span class=lnt>179\n</span><span class=lnt>180\n</span><span class=lnt>181\n</span><span class=lnt>182\n</span><span class=lnt>183\n</span><span class=lnt>184\n</span><span class=lnt>185\n</span><span class=lnt>186\n</span><span class=lnt>187\n</span><span class=lnt>188\n</span><span class=lnt>189\n</span><span class=lnt>190\n</span><span class=lnt>191\n</span><span class=lnt>192\n</span><span class=lnt>193\n</span><span class=lnt>194\n</span><span class=lnt>195\n</span><span class=lnt>196\n</span><span class=lnt>197\n</span><span class=lnt>198\n</span><span class=lnt>199\n</span><span class=lnt>200\n</span><span class=lnt>201\n</span><span class=lnt>202\n</span><span class=lnt>203\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=c># Translations for Traditional Chinese</span>\n</span></span><span class=line><span class=cl><span class=c># 繁體中文的翻譯</span>\n</span></span><span class=line><span class=cl><span class=c># https://gohugo.io/content-management/multilingual/#translation-of-strings</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === baseof ==</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>backToTop</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;回到頂部&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>viewComments</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;查看評論&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === baseof ==</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === Post ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>posts</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;文章&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === Post ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === Taxonomy ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>allSome</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;所有{{ .Some }}&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>tag</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;標籤&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>tags</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;標籤&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>category</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;分類&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>categories</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;分類&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>years</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;年度總結&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === Taxonomy ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === Pagination ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>more</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;更多&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === Pagination ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === partials/header.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>selectLanguage</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;選擇語言&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>switchTheme</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;切換主題&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === partials/header.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === partials/footer.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>poweredBySome</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;由 {{ .Hugo }} 強力驅動 | 主題 - {{ .Theme }}&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === partials/footer.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === partials/comment.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>valineLang</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;zh-TW&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>valinePlaceholder</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;你的評論 ...&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>facebookLanguageCode</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;zh-TW&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === partials/comment.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === partials/assets.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>search</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;搜索&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>searchPlaceholder</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;搜索文章標題或內容 ...&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>clear</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;清空&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>cancel</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;取消&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>noResultsFound</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;沒有找到結果&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>lunrLanguageCode</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;zh&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>lunrLanguageLib</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;lib/lunr/lunr.zh.js&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>lunrSegmentitLib</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;lib/lunr/lunr.segmentit.js&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>copyToClipboard</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;複製到剪貼板&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>cookieconsentMessage</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;本網站使用 Cookies 來改善您的流覽體驗。&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>cookieconsentDismiss</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;同意&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>cookieconsentLink</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;瞭解更多&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === partials/assets.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === partials/plugin/share.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>shareOn</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;分享到&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === partials/plugin/share.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === posts/single.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>contents</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;目錄&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>publishedOnDate</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;發佈於 {{ .Date }}&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>includedInCategories</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;收錄於 {{ .Categories }}&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>wordCount</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;約 {{ .Count }} 字&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>readingTime</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;預計閱讀 {{ .Count }} 分鐘&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>views</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;次閱讀&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>author</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;作者&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>updatedOnDate</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;更新於 {{ .Date }}&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>readMarkdown</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;閱讀原始文檔&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>back</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;返回&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>home</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;主頁&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>readMore</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;閱讀全文&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === posts/single.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === 404.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>pageNotFound</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;頁面沒找到&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>pageNotFoundText</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;抱歉，您要查找的頁面不存在。&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === 404.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === shortcodes/admonition.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>note</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;注意&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>abstract</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;摘要&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>info</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;信息&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>tip</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;技巧&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>success</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;成功&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>question</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;問題&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>warning</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;警告&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>failure</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;失敗&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>danger</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;危險&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>bug</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;Bug&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>example</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;示例&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>quote</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;引用&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === shortcodes/admonition.html ===</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># === shortcodes/version.html ===</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>new</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;新增&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>changed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;更改&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>deleted</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>other</span> <span class=p>=</span> <span class=s2>&#34;刪除&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># === shortcodes/version.html ===</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=配置><span>2 配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打開 <code>config.toml</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>defaultContentLanguage</span> <span class=p>=</span> <span class=s2>&#34;zh-tw&#34;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-12-19 20:01:45\">更新于 2021-12-19&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hugo-i18n-zh-tw/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-i18n-zh-tw.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/hugo-i18n-zh-tw.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Hugo+I18n+%E6%B7%BB%E5%8A%A0%E4%B8%AD%E6%96%87%E7%B9%81%E9%AB%94%E7%BF%BB%E8%AD%AF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHugo+I18n+%E6%B7%BB%E5%8A%A0%E4%B8%AD%E6%96%87%E7%B9%81%E9%AB%94%E7%BF%BB%E8%AD%AF%7c%0A%7cURL%7chttps://lruihao.cn/posts/hugo-i18n-zh-tw/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/hugo-i18n-zh-tw.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hugo-i18n-zh-tw/ data-title=\"Hugo I18n 添加中文繁體翻譯\" data-hashtags=FixIt,hugo,I18n><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hugo-i18n-zh-tw/ data-hashtag=FixIt><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hugo-i18n-zh-tw/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hugo-i18n-zh-tw/ data-title=\"Hugo I18n 添加中文繁體翻譯\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hugo-i18n-zh-tw/ data-title=\"Hugo I18n 添加中文繁體翻譯\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit/ class=post-tag title=\"标签 - FixIt\">FixIt</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/i18n/ class=post-tag title=\"标签 - I18n\">I18n</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hugo-friends/ class=post-nav-item rel=prev title=\"Hugo 友情連結模板\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hugo 友情連結模板</a><a href=/posts/hugo-cardlink/ class=post-nav-item rel=next title=\"Hugo 添加知乎卡片式链接 Shortcodes\">Hugo 添加知乎卡片式链接 Shortcodes<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#翻譯>翻譯</a></li><li><a href=#配置>配置</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7d42aee776410000268c47280a00c67d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7d42aee776410000268c47280a00c67d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hugo-i18n-zh-tw/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hugo-i18n-zh-tw/index.md",
    "content": "# Hugo I18n 添加中文繁體翻譯\n\n\n> 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\n\n<!--more-->\n\n> 更新说明：[FixIt](https://github.com/hugo-fixit/FixIt) 主题已支持中文繁體。\n\n## 翻譯\n\n屬於直譯，有些詞語可能並不符合現在臺灣或者香港那邊的說法。比如，`分類`好像臺灣常說`歸類`吧\n\n新建 `i18n/zh-TW.toml`\n\n```toml\n# Translations for Traditional Chinese\n# 繁體中文的翻譯\n# https://gohugo.io/content-management/multilingual/#translation-of-strings\n\n# === baseof ==\n[backToTop]\nother = \"回到頂部\"\n\n[viewComments]\nother = \"查看評論\"\n# === baseof ==\n\n# === Post ===\n[posts]\nother = \"文章\"\n# === Post ===\n\n# === Taxonomy ===\n[allSome]\nother = \"所有{{ .Some }}\"\n\n[tag]\nother = \"標籤\"\n\n[tags]\nother = \"標籤\"\n\n[category]\nother = \"分類\"\n\n[categories]\nother = \"分類\"\n\n[years]\nother = \"年度總結\"\n# === Taxonomy ===\n\n# === Pagination ===\n[more]\nother = \"更多\"\n# === Pagination ===\n\n# === partials/header.html ===\n[selectLanguage]\nother = \"選擇語言\"\n\n[switchTheme]\nother = \"切換主題\"\n# === partials/header.html ===\n\n# === partials/footer.html ===\n[poweredBySome]\nother = \"由 {{ .Hugo }} 強力驅動 | 主題 - {{ .Theme }}\"\n# === partials/footer.html ===\n\n# === partials/comment.html ===\n[valineLang]\nother = \"zh-TW\"\n\n[valinePlaceholder]\nother = \"你的評論 ...\"\n\n[facebookLanguageCode]\nother = \"zh-TW\"\n# === partials/comment.html ===\n\n# === partials/assets.html ===\n[search]\nother = \"搜索\"\n\n[searchPlaceholder]\nother = \"搜索文章標題或內容 ...\"\n\n[clear]\nother = \"清空\"\n\n[cancel]\nother = \"取消\"\n\n[noResultsFound]\nother = \"沒有找到結果\"\n\n[lunrLanguageCode]\nother = \"zh\"\n\n[lunrLanguageLib]\nother = \"lib/lunr/lunr.zh.js\"\n\n[lunrSegmentitLib]\nother = \"lib/lunr/lunr.segmentit.js\"\n\n[copyToClipboard]\nother = \"複製到剪貼板\"\n\n[cookieconsentMessage]\nother = \"本網站使用 Cookies 來改善您的流覽體驗。\"\n\n[cookieconsentDismiss]\nother = \"同意\"\n\n[cookieconsentLink]\nother = \"瞭解更多\"\n# === partials/assets.html ===\n\n# === partials/plugin/share.html ===\n[shareOn]\nother = \"分享到\"\n# === partials/plugin/share.html ===\n\n# === posts/single.html ===\n[contents]\nother = \"目錄\"\n\n[publishedOnDate]\nother = \"發佈於 {{ .Date }}\"\n\n[includedInCategories]\nother = \"收錄於 {{ .Categories }}\"\n\n[wordCount]\nother = \"約 {{ .Count }} 字\"\n\n[readingTime]\nother = \"預計閱讀 {{ .Count }} 分鐘\"\n\n[views]\nother = \"次閱讀\"\n\n[author]\nother = \"作者\"\n\n[updatedOnDate]\nother = \"更新於 {{ .Date }}\"\n\n[readMarkdown]\nother = \"閱讀原始文檔\"\n\n[back]\nother = \"返回\"\n\n[home]\nother = \"主頁\"\n\n[readMore]\nother = \"閱讀全文\"\n# === posts/single.html ===\n\n# === 404.html ===\n[pageNotFound]\nother = \"頁面沒找到\"\n\n[pageNotFoundText]\nother = \"抱歉，您要查找的頁面不存在。\"\n# === 404.html ===\n\n# === shortcodes/admonition.html ===\n[note]\nother = \"注意\"\n\n[abstract]\nother = \"摘要\"\n\n[info]\nother = \"信息\"\n\n[tip]\nother = \"技巧\"\n\n[success]\nother = \"成功\"\n\n[question]\nother = \"問題\"\n\n[warning]\nother = \"警告\"\n\n[failure]\nother = \"失敗\"\n\n[danger]\nother = \"危險\"\n\n[bug]\nother = \"Bug\"\n\n[example]\nother = \"示例\"\n\n[quote]\nother = \"引用\"\n# === shortcodes/admonition.html ===\n\n# === shortcodes/version.html ===\n[new]\nother = \"新增\"\n\n[changed]\nother = \"更改\"\n\n[deleted]\nother = \"刪除\"\n# === shortcodes/version.html ===\n```\n\n## 配置\n\n打開 `config.toml`\n\n```toml\ndefaultContentLanguage = \"zh-tw\"\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hugo-i18n-zh-tw/  \n\n"
  },
  {
    "path": "posts/hustoj/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HustOJ 基础搭建教程 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\n\"><meta name=keywords content='hustoj,ACM,ubuntu,linux'><meta itemprop=name content=\"HustOJ 基础搭建教程\"><meta itemprop=description content=\"目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"315\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"hustoj,acm,ubuntu,linux\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/hustoj/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HustOJ 基础搭建教程\"><meta property=\"og:description\" content=\"目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-17T23:08:04+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"hustoj\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"ubuntu\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HustOJ 基础搭建教程\"><meta name=twitter:description content=\"目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/hustoj/ title=\"HustOJ 基础搭建教程 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/gcd-bit/ title=最大公约数（二进制算法）><link rel=next type=text/html href=https://lruihao.cn/posts/judgetriangle/ title=判断三角形的黑盒测试><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/hustoj/index.md title=\"HustOJ 基础搭建教程 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"HustOJ 基础搭建教程\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/hustoj\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hustoj, ACM, ubuntu, linux\",\"wordcount\":315,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/hustoj\\/\",\"datePublished\":\"2019-05-17T23:08:04+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/hustoj/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HustOJ 基础搭建教程</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>HustOJ 基础搭建教程</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-17 23:08:04\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-17>2019-05-17</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"315 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"HustOJ 基础搭建教程\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#快速安装-oj>快速安装 OJ</a></li><li><a href=#使用-hustoj>使用 HustOJ</a></li><li><a href=#说明>说明</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>目前 HustOj 在 GitHUb 地址是：<a href=https://github.com/zhblue/hustoj target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/zhblue/hustoj<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><strong>安装时注意 ubuntu 版本</strong>，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复<code>ubuntu16.04</code>获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。<br>更多说明及 ACM/NOIP 题库下载见官网博客 <a href=http://www.hustoj.com/ target=_blank rel=\"external nofollow noopener noreferrer\">代码的那些事 | 程序员回忆录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=快速安装-oj><span>1 快速安装 OJ</span>\n<a href=#%e5%bf%ab%e9%80%9f%e5%ae%89%e8%a3%85-oj class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>下载</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh</span></span></code></pre></td></tr></table></div></div></div><p>安装</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>sudo bash install-ubuntu16+.sh</span></span></code></pre></td></tr></table></div></div></div><p>等待中一路回车，当提示 done！则表示安装成功：\n<a class=lightgallery target=_blank href=/posts/hustoj/images/1.png title=/posts/hustoj/images/1.png data-thumbnail=/posts/hustoj/images/1.png data-sub-html=\"<h2>/posts/hustoj/images/1.png</h2>\"><img loading=lazy src=/posts/hustoj/images/1.png alt=/posts/hustoj/images/1.png height=436 width=854></a></p><h2 class=heading-element id=使用-hustoj><span>2 使用 HustOJ</span>\n<a href=#%e4%bd%bf%e7%94%a8-hustoj class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开网页/IP 地址<br>注册 admin<br>用 admin 作为用户名注册一个用户，将会自动成为管理员。<br><a class=lightgallery target=_blank href=/posts/hustoj/images/2.png title=/posts/hustoj/images/2.png data-thumbnail=/posts/hustoj/images/2.png data-sub-html=\"<h2>/posts/hustoj/images/2.png</h2>\"><img loading=lazy src=/posts/hustoj/images/2.png alt=/posts/hustoj/images/2.png height=907 width=2065></a><br>注册成功，会提示：<br><a class=lightgallery target=_blank href=/posts/hustoj/images/3.png title=/posts/hustoj/images/3.png data-thumbnail=/posts/hustoj/images/3.png data-sub-html=\"<h2>/posts/hustoj/images/3.png</h2>\"><img loading=lazy src=/posts/hustoj/images/3.png alt=/posts/hustoj/images/3.png height=375 width=863></a><br>登录后台<br>登录账号，并点击右上角的管理：<br><a class=lightgallery target=_blank href=/posts/hustoj/images/4.png title=/posts/hustoj/images/4.png data-thumbnail=/posts/hustoj/images/4.png data-sub-html=\"<h2>/posts/hustoj/images/4.png</h2>\"><img loading=lazy src=/posts/hustoj/images/4.png alt=/posts/hustoj/images/4.png height=761 width=1264></a><br>添加测试题目<br>在后台选择添加题目，添加成功：<br><a class=lightgallery target=_blank href=/posts/hustoj/images/5.png title=/posts/hustoj/images/5.png data-thumbnail=/posts/hustoj/images/5.png data-sub-html=\"<h2>/posts/hustoj/images/5.png</h2>\"><img loading=lazy src=/posts/hustoj/images/5.png alt=/posts/hustoj/images/5.png height=159 width=529></a><br>然后再提交代码测试判题机。</p><h2 class=heading-element id=说明><span>3 说明</span>\n<a href=#%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装后几个重要配置文件的位置</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>/home/judge/etc/judge.conf\n</span></span><span class=line><span class=cl>/home/judge/src/web/include/db_info.inc.php\n</span></span><span class=line><span class=cl>/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini\n</span></span><span class=line><span class=cl>/etc/nginx/sites-enabled/default</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/hustoj/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hustoj/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/hustoj/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20HustOJ+%E5%9F%BA%E7%A1%80%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHustOJ+%E5%9F%BA%E7%A1%80%E6%90%AD%E5%BB%BA%E6%95%99%E7%A8%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/hustoj/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/hustoj/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/hustoj/ data-title=\"HustOJ 基础搭建教程\" data-hashtags=hustoj,ACM,ubuntu,linux><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/hustoj/ data-hashtag=hustoj><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/hustoj/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/hustoj/ data-title=\"HustOJ 基础搭建教程\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/hustoj/ data-title=\"HustOJ 基础搭建教程\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hustoj/ class=post-tag title=\"标签 - hustoj\">hustoj</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/ubuntu/ class=post-tag title=\"标签 - ubuntu\">ubuntu</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/gcd-bit/ class=post-nav-item rel=prev title=最大公约数（二进制算法）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>最大公约数（二进制算法）</a><a href=/posts/judgetriangle/ class=post-nav-item rel=next title=判断三角形的黑盒测试>判断三角形的黑盒测试<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#快速安装-oj>快速安装 OJ</a></li><li><a href=#使用-hustoj>使用 HustOJ</a></li><li><a href=#说明>说明</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/38071d54f1ea34a6b632919a315ae439.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/38071d54f1ea34a6b632919a315ae439.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/hustoj/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/hustoj/index.md",
    "content": "# HustOJ 基础搭建教程\n\n\n> 目前 HustOj 在 GitHUb 地址是：<https://github.com/zhblue/hustoj>  \n> **安装时注意 ubuntu 版本**，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复`ubuntu16.04`获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。  \n> 更多说明及 ACM/NOIP 题库下载见官网博客 [代码的那些事 | 程序员回忆录](http://www.hustoj.com/)\n\n<!--more-->\n\n## 快速安装 OJ\n\n下载\n\n```bash\nwget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh\n```\n\n安装\n\n```bash\nsudo bash install-ubuntu16+.sh\n```\n\n等待中一路回车，当提示 done！则表示安装成功：\n![](images/1.png)\n\n## 使用 HustOJ\n\n打开网页/IP 地址  \n注册 admin  \n用 admin 作为用户名注册一个用户，将会自动成为管理员。  \n![](images/2.png)  \n注册成功，会提示：  \n![](images/3.png)  \n登录后台  \n登录账号，并点击右上角的管理：  \n![](images/4.png)  \n添加测试题目  \n在后台选择添加题目，添加成功：  \n![](images/5.png)  \n然后再提交代码测试判题机。\n\n## 说明\n\n安装后几个重要配置文件的位置\n\n```\n/home/judge/etc/judge.conf\n/home/judge/src/web/include/db_info.inc.php\n/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini\n/etc/nginx/sites-enabled/default\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/hustoj/  \n\n"
  },
  {
    "path": "posts/ifzhushi/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>; | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" <!--[if !IE]><!--> 除 IE 外都可识别 <!--<![endif]-->\n<!--[if IE]> 所有的 IE 可识别 <![endif]-->\n<!--[if IE 6]> 仅 IE6 可识别 <![endif]-->\n<!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 <![endif]-->\n<!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 <![endif]-->\n<!--[if IE 7]> 仅 IE7 可识别 <![endif]-->\n<!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 <![endif]-->\n<!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 <![endif]-->\n<!--[if IE 8]> 仅 IE8 可识别 <![endif]-->\n<!--[if IE 9]> 仅 IE9 可识别 <![endif]-->\n\"><meta name=keywords content='HTML,他山之石'><meta itemprop=name content=\"条件注释判断浏览器版本\"><meta itemprop=description content=\"<!--[if !IE]><!--> 除 IE 外都可识别 <!--<![endif]-->\n<!--[if IE]> 所有的 IE 可识别 <![endif]-->\n<!--[if IE 6]> 仅 IE6 可识别 <![endif]-->\n<!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 <![endif]-->\n<!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 <![endif]-->\n<!--[if IE 7]> 仅 IE7 可识别 <![endif]-->\n<!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 <![endif]-->\n<!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 <![endif]-->\n<!--[if IE 8]> 仅 IE8 可识别 <![endif]-->\n<!--[if IE 9]> 仅 IE9 可识别 <![endif]-->\"><meta itemprop=datePublished content=\"2019-05-10T13:08:27+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"626\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"HTML,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ifzhushi/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"条件注释判断浏览器版本\"><meta property=\"og:description\" content=\"<!--[if !IE]><!--> 除 IE 外都可识别 <!--<![endif]-->\n<!--[if IE]> 所有的 IE 可识别 <![endif]-->\n<!--[if IE 6]> 仅 IE6 可识别 <![endif]-->\n<!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 <![endif]-->\n<!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 <![endif]-->\n<!--[if IE 7]> 仅 IE7 可识别 <![endif]-->\n<!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 <![endif]-->\n<!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 <![endif]-->\n<!--[if IE 8]> 仅 IE8 可识别 <![endif]-->\n<!--[if IE 9]> 仅 IE9 可识别 <![endif]-->\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-10T13:08:27+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"条件注释判断浏览器版本\"><meta name=twitter:description content=\"<!--[if !IE]><!--> 除 IE 外都可识别 <!--<![endif]-->\n<!--[if IE]> 所有的 IE 可识别 <![endif]-->\n<!--[if IE 6]> 仅 IE6 可识别 <![endif]-->\n<!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 <![endif]-->\n<!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 <![endif]-->\n<!--[if IE 7]> 仅 IE7 可识别 <![endif]-->\n<!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 <![endif]-->\n<!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 <![endif]-->\n<!--[if IE 8]> 仅 IE8 可识别 <![endif]-->\n<!--[if IE 9]> 仅 IE9 可识别 <![endif]-->\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ifzhushi/ title=\"条件注释判断浏览器版本<!--[if lt IE 9]>; | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/pysettime/ title=\"python 设置程序每天 8 点定时执行任务\"><link rel=next type=text/html href=https://lruihao.cn/posts/mx2wx/ title=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ifzhushi/index.md title=\"条件注释判断浏览器版本<!--[if lt IE 9]>; | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ifzhushi\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"HTML, 他山之石\",\"wordcount\":626,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ifzhushi\\/\",\"datePublished\":\"2019-05-10T13:08:27+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ifzhushi/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span title=转载 class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i></span><span>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-10 13:08:27\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-10>2019-05-10</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"626 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><span>&lt;!--[if !IE]>&lt;!--> 除 IE 外都可识别 &lt;!--&lt;![endif]--></span><br><span>&lt;!--[if IE]> 所有的 IE 可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 6]> 仅 IE6 可识别 &lt;![endif]--></span><br><span>&lt;!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 7]> 仅 IE7 可识别 &lt;![endif]--></span><br><span>&lt;!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 8]> 仅 IE8 可识别 &lt;![endif]--></span><br><span>&lt;!--[if IE 9]> 仅 IE9 可识别 &lt;![endif]--></span></p></blockquote><table align=center><tbody><tr><th width=50>项目</th><th width=150>范例</th><th>说明</th></tr><tr><td align=middle>!</td><td>[if !IE]</td><td>The NOT operator. This is placed immediately in front of the&nbsp;<em>feature</em>,&nbsp;<em>operator</em>, or&nbsp;<em>subexpression</em>&nbsp;to reverse the Boolean meaning of the expression.<br>NOT 运算符。这是摆立即在前面的<em>功能</em>，<em>操作员</em>，或<em>子表达式</em>扭转布尔表达式的意义。</td></tr><tr><td align=middle>lt</td><td>[if lt IE 5.5]</td><td>The less-than operator. Returns true if the first argument is less than the second argument.<br>小于运算符。如果第一个参数小于第二个参数，则返回 true。</td></tr><tr><td align=middle>lte</td><td>[if lte IE 6]</td><td>The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument.<br>小于或等于运算。如果第一个参数是小于或等于第二个参数，则返回 true。</td></tr><tr><td align=middle>gt</td><td>[if gt IE 5]</td><td>The greater-than operator. Returns true if the first argument is greater than the second argument.<br>大于运算符。如果第一个参数大于第二个参数，则返回 true。</td></tr><tr><td align=middle>gte</td><td>[if gte IE 7]</td><td>The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument.<br>大于或等于运算。如果第一个参数是大于或等于第二个参数，则返回 true。</td></tr><tr><td align=middle>( )</td><td>[if !(IE 7)]</td><td>Subexpression operators. Used in conjunction with boolean operators to create more complex expressions.<br>子表达式运营商。在与布尔运算符用于创建更复杂的表达式。</td></tr><tr><td align=middle>&</td><td>[if (gt IE 5)&(lt IE 7)]</td><td>The AND operator. Returns true if all subexpressions evaluate to true<br>AND 运算符。如果所有的子表达式计算结果为 true，返回 true</td></tr><tr><td align=middle>|</td><td>[if (IE 6)|(IE 7)]</td><td>The OR operator. Returns true if any of the subexpressions evaluates to true.<br>OR 运算符。返回 true，如果子表达式计算结果为 true。</td></tr></tbody></table><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=c>&lt;!--[if lt IE 9]&gt;\n</span></span></span><span class=line><span class=cl><span class=c>加载 CSS1\n</span></span></span><span class=line><span class=cl><span class=c>&lt;!--[else]&gt;\n</span></span></span><span class=line><span class=cl><span class=c>加载 CSS2\n</span></span></span><span class=line><span class=cl><span class=c>&lt;![endif]--&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>这样有效是有效，但是用 HTML VALIDATOR 里，报错，因为这个不符合 XHTML 1.1 的规范，\n如果把 ELSE 语句去掉，则正确。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>加载 CSS2\n</span></span><span class=line><span class=cl><span class=c>&lt;!--[if lt IE 9]&gt;\n</span></span></span><span class=line><span class=cl><span class=c>加载 CSS1（可以把要重写的写在这里）.\n</span></span></span><span class=line><span class=cl><span class=c>&lt;![endif]--&gt;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ifzhushi/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/ifzhushi.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/ifzhushi.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9D%A1%E4%BB%B6%E6%B3%A8%E9%87%8A%E5%88%A4%E6%96%AD%E6%B5%8F%E8%A7%88%E5%99%A8%E7%89%88%E6%9C%AC%3C%21--%5Bif+lt+IE+9%5D%3E%3B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9D%A1%E4%BB%B6%E6%B3%A8%E9%87%8A%E5%88%A4%E6%96%AD%E6%B5%8F%E8%A7%88%E5%99%A8%E7%89%88%E6%9C%AC%3C%21--%5Bif+lt+IE+9%5D%3E%3B%7c%0A%7cURL%7chttps://lruihao.cn/posts/ifzhushi/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/ifzhushi.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ifzhushi/ data-title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\" data-hashtags=HTML,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ifzhushi/ data-hashtag=HTML><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ifzhushi/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ifzhushi/ data-title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ifzhushi/ data-title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/pysettime/ class=post-nav-item rel=prev title=\"Python 设置程序每天 8 点定时执行任务\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 设置程序每天 8 点定时执行任务</a><a href=/posts/mx2wx/ class=post-nav-item rel=next title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\">Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b94f654fca25ee13e1af4b36c6188be5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b94f654fca25ee13e1af4b36c6188be5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ifzhushi/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ifzhushi/index.md",
    "content": "# 条件注释判断浏览器版本<!--[If Lt IE 9]>;\n\n\n> <p><span>&lt;!--[if !IE]&gt;&lt;!--&gt; 除 IE 外都可识别 &lt;!--&lt;![endif]--&gt;</span><br><span>&lt;!--[if IE]&gt; 所有的 IE 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 6]&gt; 仅 IE6 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if lt IE 6]&gt; IE6 以及 IE6 以下版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if gte IE 6]&gt; IE6 以及 IE6 以上版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 7]&gt; 仅 IE7 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if lt IE 7]&gt; IE7 以及 IE7 以下版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if gte IE 7]&gt; IE7 以及 IE7 以上版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 8]&gt; 仅 IE8 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 9]&gt; 仅 IE9 可识别 &lt;![endif]--&gt;</span></p>\n\n<!--more-->\n\n<table align=\"center\"> <tbody> <tr><th width=\"50\">项目</th><th width=\"150\">范例</th><th>说明</th></tr> <tr> <td align=\"middle\">!</td><td>[if !IE]</td><td>The NOT operator. This is placed immediately in front of the&nbsp;<em>feature</em>,&nbsp;<em>operator</em>, or&nbsp;<em>subexpression</em>&nbsp;to reverse the Boolean meaning of the expression.<br />NOT 运算符。这是摆立即在前面的<em>功能</em>，<em>操作员</em>，或<em>子表达式</em>扭转布尔表达式的意义。</td></tr><tr><td align=\"middle\">lt</td> <td>[if lt IE 5.5]</td> <td>The less-than operator. Returns true if the first argument is less than the second argument.<br />小于运算符。如果第一个参数小于第二个参数，则返回 true。</td> </tr><tr><td align=\"middle\">lte</td><td>[if lte IE 6]</td><td>The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument.<br />小于或等于运算。如果第一个参数是小于或等于第二个参数，则返回 true。</td> </tr><tr><td align=\"middle\">gt</td><td>[if gt IE 5]</td><td>The greater-than operator. Returns true if the first argument is greater than the second argument.<br />大于运算符。如果第一个参数大于第二个参数，则返回 true。</td> </tr><tr><td align=\"middle\">gte</td> <td>[if gte IE 7]</td><td>The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument.<br />大于或等于运算。如果第一个参数是大于或等于第二个参数，则返回 true。</td> </tr><tr><td align=\"middle\">( )</td><td>[if !(IE 7)]</td><td>Subexpression operators. Used in conjunction with boolean operators to create more complex expressions.<br />子表达式运营商。在与布尔运算符用于创建更复杂的表达式。</td></tr><tr><td align=\"middle\">&amp;</td><td>[if (gt IE 5)&amp;(lt IE 7)]</td><td>The AND operator. Returns true if all subexpressions evaluate to true<br />AND 运算符。如果所有的子表达式计算结果为 true，返回 true</td></tr><tr><td align=\"middle\">|</td><td>[if (IE 6)|(IE 7)]</td><td>The OR operator. Returns true if any of the subexpressions evaluates to true.<br />OR 运算符。返回 true，如果子表达式计算结果为 true。</td></tr></tbody></table>\n\n```xml\n<!--[if lt IE 9]>\n加载 CSS1\n<!--[else]>\n加载 CSS2\n<![endif]-->\n```\n\n这样有效是有效，但是用 HTML VALIDATOR 里，报错，因为这个不符合 XHTML 1.1 的规范，\n如果把 ELSE 语句去掉，则正确。\n\n```xml\n加载 CSS2\n<!--[if lt IE 9]>\n加载 CSS1（可以把要重写的写在这里）.\n<![endif]-->\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ifzhushi/  \n\n"
  },
  {
    "path": "posts/imgurl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>宝塔面板安装 ImgURL 图床 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\n\"><meta name=keywords content='ImgURL,宝塔面板'><meta itemprop=name content=\"宝塔面板安装 ImgURL 图床\"><meta itemprop=description content=\"ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\"><meta itemprop=datePublished content=\"2019-05-16T20:31:33+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"468\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"ImgURL,宝塔面板\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/imgurl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"宝塔面板安装 ImgURL 图床\"><meta property=\"og:description\" content=\"ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-16T20:31:33+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"ImgURL\"><meta property=\"article:tag\" content=\"宝塔面板\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"宝塔面板安装 ImgURL 图床\"><meta name=twitter:description content=\"ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/imgurl/ title=\"宝塔面板安装 ImgURL 图床 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/mx2wx/ title=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\"><link rel=next type=text/html href=https://lruihao.cn/posts/gcd-bit/ title=最大公约数（二进制算法）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/imgurl/index.md title=\"宝塔面板安装 ImgURL 图床 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"宝塔面板安装 ImgURL 图床\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/imgurl\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ImgURL, 宝塔面板\",\"wordcount\":468,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/imgurl\\/\",\"datePublished\":\"2019-05-16T20:31:33+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/imgurl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>宝塔面板安装 ImgURL 图床</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>宝塔面板安装 ImgURL 图床</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-16 20:31:33\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-16>2019-05-16</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"468 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"宝塔面板安装 ImgURL 图床\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/imgurl/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/imgurl/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#准备工作>准备工作</a></li><li><a href=#设置伪静态>设置伪静态</a></li><li><a href=#安装-fileinfo--imagemagick>安装 fileinfo & imagemagick</a></li><li><a href=#安装-imgurl-2x>安装 ImgURL 2.x</a></li><li><a href=#其它说明>其它说明</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n<a href=https://www.xiaoz.me/archives/12081 target=_blank rel=\"external nofollow noopener noreferrer\">阅读原文<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=准备工作><span>1 准备工作</span>\n<a href=#%e5%87%86%e5%a4%87%e5%b7%a5%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>已经安装宝塔面板</li><li>在宝塔后台创建一个站点</li><li>下载 <a href=https://github.com/helloxz/imgurl target=_blank rel=\"external nofollow noopener noreferrer\">ImgURL 2.x<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 上传到站点根目录并解压</li></ol><h2 class=heading-element id=设置伪静态><span>2 设置伪静态</span>\n<a href=#%e8%ae%be%e7%bd%ae%e4%bc%aa%e9%9d%99%e6%80%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果你宝塔面板安装的 Apache 则不需要再设置伪静态，直接跳过这个步骤，如果使用的 Nginx 环境，请继续往下看。</p><p>找到对应的站点 - 点击后面设置按钮 - 伪静态 - 添加下面的伪静态规则</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=nx>location</span> <span class=o>/</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl><span class=nx>try_files</span> <span class=nv>$uri</span> <span class=nv>$uri</span><span class=o>/</span> <span class=o>/</span><span class=nx>index</span><span class=o>.</span><span class=nx>php</span><span class=o>?</span><span class=nv>$query_string</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=nx>location</span> <span class=o>~*</span> <span class=nx>\\</span><span class=o>.</span><span class=p>(</span><span class=nx>db3</span><span class=o>|</span><span class=nx>json</span><span class=p>)</span><span class=err>$</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>deny</span> <span class=nx>all</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=nx>location</span> <span class=o>~*</span> <span class=o>^/</span><span class=p>(</span><span class=nx>temp</span><span class=o>|</span><span class=nx>upload</span><span class=o>|</span><span class=nx>imgs</span><span class=o>|</span><span class=nx>data</span><span class=o>|</span><span class=nx>application</span><span class=o>|</span><span class=k>static</span><span class=o>|</span><span class=nx>system</span><span class=p>)</span><span class=o>/.*.</span><span class=p>(</span><span class=nx>php</span><span class=o>|</span><span class=nx>php5</span><span class=p>)</span><span class=err>$</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>403</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/imgurl/images/2.png title=/posts/imgurl/images/2.png data-thumbnail=/posts/imgurl/images/2.png data-sub-html=\"<h2>/posts/imgurl/images/2.png</h2>\"><img loading=lazy src=/posts/imgurl/images/2.png alt=/posts/imgurl/images/2.png height=399 width=695></a></p><h2 class=heading-element id=安装-fileinfo--imagemagick><span>3 安装 fileinfo & imagemagick</span>\n<a href=#%e5%ae%89%e8%a3%85-fileinfo--imagemagick class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在宝塔后台 - 软件管理 - 找到你站点对应的 PHP 版本 - 设置 PHP - 安装扩展 - 勾选<code>fileinfo</code>和<code>imagemagick</code>，如下截图。</p><p><a class=lightgallery target=_blank href=/posts/imgurl/images/3.png title=/posts/imgurl/images/3.png data-thumbnail=/posts/imgurl/images/3.png data-sub-html=\"<h2>/posts/imgurl/images/3.png</h2>\"><img loading=lazy src=/posts/imgurl/images/3.png alt=/posts/imgurl/images/3.png height=512 width=794></a></p><h2 class=heading-element id=安装-imgurl-2x><span>4 安装 ImgURL 2.x</span>\n<a href=#%e5%ae%89%e8%a3%85-imgurl-2x class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>其它所需扩展宝塔默认已经支持，重点是安装<code>fileinfo</code>和<code>imagemagick</code>，扩展安装完毕后就可以访问你自己的域名安装 ImgURL 了，如果正常会看到 ImgURL 安装界面。</p><p><a class=lightgallery target=_blank href=/posts/imgurl/images/4.png title=/posts/imgurl/images/4.png data-thumbnail=/posts/imgurl/images/4.png data-sub-html=\"<h2>/posts/imgurl/images/4.png</h2>\"><img loading=lazy src=/posts/imgurl/images/4.png alt=/posts/imgurl/images/4.png height=471 width=846></a><br><a class=lightgallery target=_blank href=/posts/imgurl/images/5.png title=/posts/imgurl/images/5.png data-thumbnail=/posts/imgurl/images/5.png data-sub-html=\"<h2>/posts/imgurl/images/5.png</h2>\"><img loading=lazy src=/posts/imgurl/images/5.png alt=/posts/imgurl/images/5.png height=900 width=1918></a></p><h2 class=heading-element id=其它说明><span>5 其它说明</span>\n<a href=#%e5%85%b6%e5%ae%83%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>如果安装遇到任何问题，请留言反馈或到 <a href=https://ttt.sh/category/6/imgurl%E5%9B%BE%E5%BA%8A target=_blank rel=\"external nofollow noopener noreferrer\">3T 官方社区<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 进行反馈</li><li>ImgURL 更多使用说明请参考帮助文档：<a href=https://dwz.ovh/imgurldoc target=_blank rel=\"external nofollow noopener noreferrer\">https://dwz.ovh/imgurldoc<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/imgurl/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/imgurl/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/imgurl/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85+ImgURL+%E5%9B%BE%E5%BA%8A&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85+ImgURL+%E5%9B%BE%E5%BA%8A%7c%0A%7cURL%7chttps://lruihao.cn/posts/imgurl/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/imgurl/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/imgurl/ data-title=\"宝塔面板安装 ImgURL 图床\" data-hashtags=ImgURL,宝塔面板><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/imgurl/ data-hashtag=ImgURL><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/imgurl/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/imgurl/ data-title=\"宝塔面板安装 ImgURL 图床\" data-image=/posts/imgurl/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/imgurl/ data-title=\"宝塔面板安装 ImgURL 图床\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/imgurl/ class=post-tag title=\"标签 - ImgURL\">ImgURL</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag title=\"标签 - 宝塔面板\">宝塔面板</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/mx2wx/ class=post-nav-item rel=prev title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a><a href=/posts/gcd-bit/ class=post-nav-item rel=next title=最大公约数（二进制算法）>最大公约数（二进制算法）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#准备工作>准备工作</a></li><li><a href=#设置伪静态>设置伪静态</a></li><li><a href=#安装-fileinfo--imagemagick>安装 fileinfo & imagemagick</a></li><li><a href=#安装-imgurl-2x>安装 ImgURL 2.x</a></li><li><a href=#其它说明>其它说明</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/68705244048c105f2eac165a741e3182.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/68705244048c105f2eac165a741e3182.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/imgurl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/imgurl/index.md",
    "content": "# 宝塔面板安装 ImgURL 图床\n\n\n> ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n> [阅读原文](https://www.xiaoz.me/archives/12081)\n\n<!--more-->\n\n## 准备工作\n\n1. 已经安装宝塔面板\n2. 在宝塔后台创建一个站点\n3. 下载 [ImgURL 2.x](https://github.com/helloxz/imgurl) 上传到站点根目录并解压\n\n## 设置伪静态\n\n如果你宝塔面板安装的 Apache 则不需要再设置伪静态，直接跳过这个步骤，如果使用的 Nginx 环境，请继续往下看。\n\n找到对应的站点 - 点击后面设置按钮 - 伪静态 - 添加下面的伪静态规则\n\n```php 伪静态规则\nlocation / {\ntry_files $uri $uri/ /index.php?$query_string;\n}\nlocation ~* \\.(db3|json)$ {\n  deny all;\n}\nlocation ~* ^/(temp|upload|imgs|data|application|static|system)/.*.(php|php5)$ {\n    return 403;\n}\n```\n\n![](images/2.png)\n\n## 安装 fileinfo & imagemagick\n\n在宝塔后台 - 软件管理 - 找到你站点对应的 PHP 版本 - 设置 PHP - 安装扩展 - 勾选`fileinfo`和`imagemagick`，如下截图。\n\n![](images/3.png)\n\n## 安装 ImgURL 2.x\n\n其它所需扩展宝塔默认已经支持，重点是安装`fileinfo`和`imagemagick`，扩展安装完毕后就可以访问你自己的域名安装 ImgURL 了，如果正常会看到 ImgURL 安装界面。\n\n![](images/4.png)  \n![](images/5.png)\n\n## 其它说明\n\n- 如果安装遇到任何问题，请留言反馈或到 [3T 官方社区](https://ttt.sh/category/6/imgurl%E5%9B%BE%E5%BA%8A) 进行反馈\n- ImgURL 更多使用说明请参考帮助文档：<https://dwz.ovh/imgurldoc>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/imgurl/  \n\n"
  },
  {
    "path": "posts/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a>\n<span class=archive-item-date title='2025-08-04 11:37:24'>08-04</span></article><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a>\n<span class=archive-item-date title='2025-06-18 10:35:47'>06-18</span></article><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a>\n<span class=archive-item-date title='2025-01-20 15:56:38'>01-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-viewport/ class=archive-item-link>震惊！CSS 竟然能获取视口尺寸？</a>\n<span class=archive-item-date title='2024-12-06 10:32:22'>12-06</span></article><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a>\n<span class=archive-item-date title='2024-10-06 11:10:22'>10-06</span></article><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article><article class=archive-item><a href=/posts/git-summary/ class=archive-item-link>Git 统计代码量</a>\n<span class=archive-item-date title='2024-07-17 16:06:08'>07-17</span></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a>\n<span class=archive-item-date title='2024-06-09 02:24:31'>06-09</span></article><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><article class=archive-item><a href=/posts/c6bc2d5/ class=archive-item-link>写文档时英文标题什么时候要大写？</a>\n<span class=archive-item-date title='2024-03-26 12:23:44'>03-26</span></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a>\n<span class=archive-item-date title='2024-02-29 16:46:00'>02-29</span></article><article class=archive-item><a href=/posts/auto-sizes/ class=archive-item-link>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a>\n<span class=archive-item-date title='2024-02-21 10:00:13'>02-21</span></article><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article><article class=archive-item><a href=/posts/20b75e9/ class=archive-item-link>为什么很多教程中都有 Foo Bar？</a>\n<span class=archive-item-date title='2024-01-17 09:58:58'>01-17</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/3/>3</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>所有文章 | 菠菜眾長</title><link>https://lruihao.cn/posts/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 27 Aug 2025 12:30:22 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/posts/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item><item><title>Code Playground</title><link>https://lruihao.cn/posts/code-playground/</link><pubDate>Mon, 04 Aug 2025 11:37:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/code-playground/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;以下是常见的在线代码演示和开发环境服务，适合不同场景使用：&lt;/p&gt;</description></item><item><title>CSS @layer：构建更高效、更可维护的样式层级</title><link>https://lruihao.cn/posts/at-layer/</link><pubDate>Wed, 18 Jun 2025 10:35:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/at-layer/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 &lt;code&gt;@layer&lt;/code&gt; 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 &lt;code&gt;@layer&lt;/code&gt; 的背景、作用以及语法，带你一探究竟。&lt;/p&gt;</description></item><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;</description></item><item><title>CSS Flexbox 布局指南</title><link>https://lruihao.cn/posts/flexbox/</link><pubDate>Mon, 20 Jan 2025 15:56:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/flexbox/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。&lt;/p&gt;</description></item><item><title>震惊！CSS 竟然能获取视口尺寸？</title><link>https://lruihao.cn/posts/css-viewport/</link><pubDate>Fri, 06 Dec 2024 10:32:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-viewport/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。&lt;/p&gt;</description></item><item><title>自动获取 GitHub README 内容添加到 Hugo 文章</title><link>https://lruihao.cn/posts/content-adapters/</link><pubDate>Sun, 06 Oct 2024 11:10:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/content-adapters/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案：CSS 四舍五入数值单位</title><link>https://lruihao.cn/posts/css-round/</link><pubDate>Mon, 29 Jul 2024 20:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-round/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍另外一个非常实用的 CSS 数学函数 - &lt;code&gt;round()&lt;/code&gt; 及其实际应用场景。&lt;/p&gt;</description></item><item><title>Git 统计代码量</title><link>https://lruihao.cn/posts/git-summary/</link><pubDate>Wed, 17 Jul 2024 16:06:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-summary/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;使用 Git 命令统计在某段时间内项目中的代码量。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item><item><title>标准滚动条控制规范</title><link>https://lruihao.cn/posts/scrollbar-styling/</link><pubDate>Fri, 28 Jun 2024 22:29:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/scrollbar-styling/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;使用 &lt;code&gt;scrollbar-width&lt;/code&gt; 和 &lt;code&gt;scrollbar-color&lt;/code&gt; 属性设置滚动条的样式。&lt;/p&gt;</description></item><item><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能</title><link>https://lruihao.cn/posts/aside-toggle-drag/</link><pubDate>Thu, 13 Jun 2024 21:03:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/aside-toggle-drag/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。&lt;/p&gt;</description></item><item><title>架构之基：从根儿上了解设计原则</title><link>https://lruihao.cn/posts/design-principles/</link><pubDate>Sun, 09 Jun 2024 02:24:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/design-principles/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</description></item><item><title>怎么生成暗黑模式和明亮模式的 SVG 图片？</title><link>https://lruihao.cn/posts/svg-dark-light/</link><pubDate>Thu, 06 Jun 2024 22:13:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/svg-dark-light/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。&lt;/p&gt;</description></item><item><title>写文档时英文标题什么时候要大写？</title><link>https://lruihao.cn/posts/c6bc2d5/</link><pubDate>Tue, 26 Mar 2024 12:23:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c6bc2d5/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;对于本文的标题的思考来自于 &lt;a href=\"https://gohugo.io/getting-started/configuration/#titlecasestyle\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;中的一个配置 &lt;code&gt;titleCaseStyle&lt;/code&gt;，默认情况下，Hugo 在创建自动章节标题以及使用 &lt;code&gt;strings.Title&lt;/code&gt; 函数转换字符串时遵循美联社样本中发布的大小写规则。&lt;/p&gt;\n&lt;p&gt;但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。&lt;/p&gt;\n&lt;p&gt;经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，&lt;a href=\"https://pub.bnu.edu.cn/jzyg1/72203.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“出版物中，英文什么时候要大写？ ”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>实现类似于 Element UI 表格的溢出文本提示功能</title><link>https://lruihao.cn/posts/overflow-tooltip/</link><pubDate>Thu, 29 Feb 2024 16:46:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/overflow-tooltip/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;在 Element UI 的表格组件中，当表格列的内容过长时，设置 &lt;code&gt;show-overflow-tooltip&lt;/code&gt; 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？&lt;/p&gt;</description></item><item><title>聊聊 Chrome 新增的 sizes=\"auto\" 属性</title><link>https://lruihao.cn/posts/auto-sizes/</link><pubDate>Wed, 21 Feb 2024 10:00:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/auto-sizes/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性。&lt;/p&gt;</description></item><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>为什么很多教程中都有 foo bar？</title><link>https://lruihao.cn/posts/20b75e9/</link><pubDate>Wed, 17 Jan 2024 09:58:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/20b75e9/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。&lt;/p&gt;</description></item><item><title>git submodule: already exists in the index</title><link>https://lruihao.cn/posts/6550187/</link><pubDate>Thu, 11 Jan 2024 10:30:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/6550187/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 报错 &amp;ldquo;git submodule: already exists in the index&amp;rdquo; 的解决方法。&lt;/p&gt;</description></item><item><title>给 el-card 添加折叠功能</title><link>https://lruihao.cn/posts/el-card-collapse/</link><pubDate>Wed, 10 Jan 2024 17:06:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-card-collapse/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;出发点&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;虽然 Element 也有 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-collapse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，&lt;a href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-card&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>SSH 提交签名验证</title><link>https://lruihao.cn/posts/ssh-sign/</link><pubDate>Sun, 22 Oct 2023 18:59:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ssh-sign/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。&lt;/p&gt;</description></item><item><title>如何给 npm 包打补丁？</title><link>https://lruihao.cn/posts/patch-package/</link><pubDate>Thu, 12 Oct 2023 22:37:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/patch-package/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>本文将介绍如何给 npm 包打补丁。</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item><item><title>拖拽式仪表盘的设计与开发</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/draggable-dashboard/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>关于拖拽式仪表盘的设计与开发系列文章。</description></item><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item><item><title>认知复杂度（Cognitive Complexity）</title><link>https://lruihao.cn/posts/cognitive-complexity/</link><pubDate>Sun, 08 Oct 2023 09:52:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cognitive-complexity/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;h2 class=\"heading-element\" id=\"摘要\"&gt;&lt;span&gt;40 摘要&lt;/span&gt;\n &lt;a href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"术语说明\"&gt;&lt;span&gt;40.1 术语说明&lt;/span&gt;\n &lt;a href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。&lt;/p&gt;\n&lt;hr&gt;</description></item><item><title>写作技巧：如何搭建文章的框架结构？</title><link>https://lruihao.cn/posts/article-structure/</link><pubDate>Tue, 26 Sep 2023 15:17:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/article-structure/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。&lt;/p&gt;</description></item><item><title>封装 Vue FullScreenToggler 组件</title><link>https://lruihao.cn/posts/vue-fullscreen-toggler/</link><pubDate>Sun, 17 Sep 2023 19:44:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-fullscreen-toggler/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;基于 &lt;a href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vue-fullscreen&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 封装一个的 Vue 全屏/退出全屏切换组件。&lt;/p&gt;</description></item><item><title>JS 实现全屏和退出全屏</title><link>https://lruihao.cn/posts/js-fullscreen/</link><pubDate>Fri, 15 Sep 2023 17:29:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-fullscreen/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;28 背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。&lt;/p&gt;</description></item><item><title>中文翻译的常见问题</title><link>https://lruihao.cn/posts/translation-guide/</link><pubDate>Fri, 15 Sep 2023 11:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/translation-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下内容截取自 &lt;a href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;针对 MDN 文档的本地化指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的中文翻译的常见问题小节。&lt;/p&gt;\n&lt;p&gt;其中翻译的规范也是中文写作的规范，更多详见之前写的 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\"&gt;中文技术文档的写作规范&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;为保证简体中文文档格式的一致性，翻译指南列出了部分规范。&lt;/p&gt;</description></item><item><title>在 Vue 项目中更优雅地使用 icon</title><link>https://lruihao.cn/posts/vue-svg-icon/</link><pubDate>Thu, 14 Sep 2023 11:24:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-svg-icon/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;28 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、&lt;a href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Font Awesome&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Iconfont&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等。&lt;/p&gt;\n&lt;p&gt;随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。&lt;/p&gt;</description></item><item><title>VSCode 添加用户代码片段，自定义用户代码片段</title><link>https://lruihao.cn/posts/vscode-snippets/</link><pubDate>Thu, 14 Sep 2023 11:21:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vscode-snippets/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。&lt;/p&gt;</description></item><item><title>CSS 如何实现网格背景效果？</title><link>https://lruihao.cn/posts/grid-bg-image/</link><pubDate>Sat, 02 Sep 2023 10:05:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/grid-bg-image/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍如何使用 &lt;code&gt;linear-gradient&lt;/code&gt; 、&lt;code&gt;background-size&lt;/code&gt; 等属性来实现网格背景效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;22 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。&lt;/p&gt;</description></item><item><title>用魔法打败魔法 - ElBacktop Fix</title><link>https://lruihao.cn/posts/el-backtop-fix/</link><pubDate>Thu, 20 Jul 2023 11:08:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-backtop-fix/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;这篇文章主要是记录一下继承 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ElBacktop&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件并修复了一些 bug 的过程。&lt;/p&gt;</description></item><item><title>使用 Node.js 自动创建 Vue 的路由</title><link>https://lruihao.cn/posts/gen-router/</link><pubDate>Wed, 14 Jun 2023 00:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gen-router/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。&lt;/p&gt;</description></item><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>新手向：Vue 2.0 的建议学习顺序</title><link>https://lruihao.cn/posts/vue2-guid/</link><pubDate>Tue, 14 Mar 2023 08:37:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue2-guid/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;blockquote&gt;\n&lt;p&gt;注：2.0 已经有&lt;a href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 。如果对自己英文有信心，也可以直接阅读&lt;a href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;br&gt;\n此指南仅供参考，请根据自身实际情况灵活调整。&lt;br&gt;\n转载自： &lt;a href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尤雨溪&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，2017-08-04 14:51&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>中文技术文档的写作规范</title><link>https://lruihao.cn/posts/document-style-guide/</link><pubDate>Sat, 04 Feb 2023 16:04:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/document-style-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下参考来源：阮一峰的 &lt;a href=\"https://github.com/ruanyf/document-style-guide\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如&lt;a href=\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;微软&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"http://styleguide.mailchimp.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MailChimp&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Apple&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&amp;amp;btkr=1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Yahoo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://docs.docker.com/opensource/doc-style/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;docker&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://struts.apache.org/docs/documentation-style-guide.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Struts&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等（维基百科有一份完整的&lt;a href=\"https://en.wikipedia.org/wiki/List_of_style_guides\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;清单&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;）。&lt;a href=\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文的&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;也有不少，但都不令人满意，要么太简单，要么不太适用。&lt;/p&gt;\n&lt;p&gt;对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。&lt;/p&gt;\n&lt;p&gt;对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。&lt;/p&gt;\n&lt;p&gt;参考上面的规范，于是有了下面一份中文技术文档的写作规范。&lt;/p&gt;</description></item><item><title>浏览器原理 - 事件循环</title><link>https://lruihao.cn/posts/event-loop/</link><pubDate>Wed, 11 Jan 2023 11:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/event-loop/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;p&gt;最近在抖音上刷到很多次 &lt;a href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;袁进老师&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。&lt;/p&gt;</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Beego 安装及配置</title><link>https://lruihao.cn/posts/beego-install/</link><pubDate>Wed, 31 Aug 2022 09:32:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beego-install/</guid><category domain=\"https://lruihao.cn/categories/go/\">Go</category><description>&lt;p&gt;记录 GO 及 Beego 框架安装及基础配置。&lt;/p&gt;</description></item><item><title>语义版本控制（SemVer）</title><link>https://lruihao.cn/posts/semver/</link><pubDate>Sat, 13 Aug 2022 13:32:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/semver/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;版本格式：&lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt;，版本号递增规则如下：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;&lt;code&gt;MAJOR&lt;/code&gt;: &lt;strong&gt;主版本号&lt;/strong&gt;，当你做了不兼容的 API 修改&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;MINOR&lt;/code&gt;: &lt;strong&gt;次版本号&lt;/strong&gt;，当你做了向下兼容的功能性新增&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;PATCH&lt;/code&gt;: &lt;strong&gt;修订号&lt;/strong&gt;，当你做了向下兼容的问题修正&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;先行版本号及版本编译信息可以加到 &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; 的后面，作为延伸。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Commit Message Spec</title><link>https://lruihao.cn/posts/commit-spec/</link><pubDate>Fri, 12 Aug 2022 15:37:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-spec/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;p&gt;Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the &lt;a href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Conventional Commits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; specification based on the &lt;a href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Angular convention&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.&lt;/p&gt;</description></item><item><title>electron 踩坑总结</title><link>https://lruihao.cn/posts/electron-summary/</link><pubDate>Fri, 12 Aug 2022 11:22:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/electron-summary/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;总结一下最近 electron 开发遇到的问题和一些重要知识点。&lt;/p&gt;</description></item><item><title>前端页面内容加密总结</title><link>https://lruihao.cn/posts/encryption-fe/</link><pubDate>Mon, 08 Aug 2022 13:49:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/encryption-fe/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;记录一下前端实现页面加密的思路。&lt;/p&gt;</description></item><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>不同系统的换行符的差异</title><link>https://lruihao.cn/posts/newline/</link><pubDate>Sun, 07 Aug 2022 00:10:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/newline/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。&lt;/p&gt;</description></item><item><title>自定义 ohmyzsh 主题</title><link>https://lruihao.cn/posts/ohmyzsh-custom/</link><pubDate>Sun, 31 Jul 2022 13:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ohmyzsh-custom/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。&lt;/p&gt;</description></item><item><title>linux 文件权限</title><link>https://lruihao.cn/posts/linux-permission/</link><pubDate>Sat, 30 Jul 2022 17:15:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-permission/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;记录 linux 系统下文件权限相关的内容，Mac OS 下类似。&lt;/p&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item><item><title>Mac 配置 ADB</title><link>https://lruihao.cn/posts/adb-for-mac/</link><pubDate>Tue, 05 Jul 2022 15:39:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adb-for-mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;作为非安卓专业开发，无需下载 Android SDK，&lt;br&gt;\n仅下载 Android SDK 中的 &lt;a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;platform-tools&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 命令行工具即可，并配置好环境变量。&lt;/p&gt;</description></item><item><title>重新认识 JavaScript</title><link>https://lruihao.cn/posts/js-rediscover/</link><pubDate>Sun, 01 May 2022 10:59:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-rediscover/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;前言&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。&lt;/p&gt;\n&lt;p&gt;每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>关于 CSS 和 Scss 变量运算那些事</title><link>https://lruihao.cn/posts/css-scss-var/</link><pubDate>Sat, 30 Apr 2022 22:04:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-scss-var/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;h2 class=\"heading-element\" id=\"问题分析\"&gt;&lt;span&gt;10 问题分析&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;昨天在开发 FixIt 的时候，在 Scss 中写 &lt;code&gt;max(foo, bar)&lt;/code&gt; 函数比较不同的单位变量时报错了，但是在 CSS 中使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数函数比较不同的单位变量是没有问题的。&lt;/p&gt;\n&lt;p&gt;造成这一问题的原因是，在 Scss 中，也实现了 &lt;code&gt;max&lt;/code&gt; 和 &lt;code&gt;min&lt;/code&gt; 函数，但是在 Scss 中，&lt;strong&gt;不同单位的变量是不能进行运算的&lt;/strong&gt;，所以使得在 Scss 中直接使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）&lt;/p&gt;\n&lt;p&gt;知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。&lt;/p&gt;</description></item><item><title>Getting Things Done for ios App Reminders and Github issues</title><link>https://lruihao.cn/posts/gtd/</link><pubDate>Wed, 22 Dec 2021 20:17:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gtd/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;quote&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;Getting Things Done (GTD)&lt;/strong&gt; is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &amp;ldquo;there is an inverse relationship between things on your mind and those things getting done&amp;rdquo;.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://en.wikipedia.org/wiki/Getting_Things_Done\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Reference&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/hugo-blog/issues/20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#20&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</title><link>https://lruihao.cn/posts/subl_imgpaste2/</link><pubDate>Tue, 05 Oct 2021 21:54:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subl_imgpaste2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;插件地址&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/robinchenyu/imagepaste&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Hugo 添加知乎卡片式链接 Shortcodes</title><link>https://lruihao.cn/posts/hugo-cardlink/</link><pubDate>Tue, 05 Oct 2021 19:33:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-cardlink/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;卡片式链接已整合到 FixIt 主题&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;\n&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;回顧&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;之前在使用 hexo 的時候也有用到，&lt;a href=\"https://lruihao.cn/posts/linkcard/\"&gt;模仿知乎卡片式链接&lt;/a&gt;&lt;br&gt;\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，&lt;br&gt;\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo I18n 添加中文繁體翻譯</title><link>https://lruihao.cn/posts/hugo-i18n-zh-tw/</link><pubDate>Tue, 05 Oct 2021 19:14:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-i18n-zh-tw/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Hugo 友情連結模板</title><link>https://lruihao.cn/posts/hugo-friends/</link><pubDate>Tue, 05 Oct 2021 14:14:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-friends/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;過程&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;友情鏈接模板已整合到 FixIt 主題&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Hugo 本地管理 Shell 腳本</title><link>https://lruihao.cn/posts/hugo-admin/</link><pubDate>Mon, 04 Oct 2021 23:49:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-admin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition abstract open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。&lt;br&gt;\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>less&amp;sass&amp;scss</title><link>https://lruihao.cn/posts/less-sass-scss/</link><pubDate>Tue, 22 Jun 2021 16:39:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/less-sass-scss/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;blockquote&gt;\n&lt;p&gt;Sass 和 Less 都屬於 &lt;strong&gt;CSS 前置處理器&lt;/strong&gt;，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。&lt;br&gt;\n轉化成通俗易懂的話來說就是 &lt;strong&gt;“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Lightbox</title><link>https://lruihao.cn/posts/lightbox/</link><pubDate>Mon, 21 Jun 2021 16:18:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightbox/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"簡介\"&gt;&lt;span&gt;10 簡介&lt;/span&gt;\n &lt;a href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。&lt;/p&gt;</description></item><item><title>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</title><link>https://lruihao.cn/posts/codereview/</link><pubDate>Thu, 04 Mar 2021 21:04:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codereview/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"程式碼的持續優化\"&gt;&lt;span&gt;1 程式碼的持續優化&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：&lt;/p&gt;</description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;Cell Blog 开发记录，&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>使用 Python 刷 csdn 访问量</title><link>https://lruihao.cn/posts/csdnvisiter/</link><pubDate>Thu, 26 Mar 2020 11:08:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/csdnvisiter/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Cron 表达式的基本语法</title><link>https://lruihao.cn/posts/cron/</link><pubDate>Wed, 25 Mar 2020 09:19:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cron/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;13 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;&lt;code&gt;&amp;lt;秒&amp;gt; &amp;lt;分钟&amp;gt; &amp;lt;小时&amp;gt; &amp;lt;日期 day-of-month&amp;gt; &amp;lt;月份&amp;gt; &amp;lt;星期 day-of-week&amp;gt;&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 &lt;code&gt;X X X X X X&lt;/code&gt;。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。&lt;/p&gt;</description></item><item><title>新冠疫情未返校未返工第 N 天之“自动打卡”</title><link>https://lruihao.cn/posts/daka/</link><pubDate>Wed, 25 Mar 2020 08:22:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/daka/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;这件事还得从一只蝙蝠说起 &amp;hellip;&lt;br&gt;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &amp;hellip;&lt;br&gt;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &amp;hellip;&lt;br&gt;\n我和潇 X 巴哥确定思路后兵分两路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；&lt;/li&gt;\n&lt;li&gt;我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；&lt;/li&gt;\n&lt;/ol&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>SQL 总结</title><link>https://lruihao.cn/posts/sql/</link><pubDate>Thu, 16 Jan 2020 19:28:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sql/</guid><category domain=\"https://lruihao.cn/categories/mysql/\">MySQL</category><description>&lt;blockquote&gt;\n&lt;p&gt;SQL 增删改查 (CRUD) 语句与常用函数总结。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>RESTful</title><link>https://lruihao.cn/posts/restful/</link><pubDate>Thu, 14 Nov 2019 19:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/restful/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\">计算机网络</category><description>&lt;blockquote&gt;\n&lt;p&gt;RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 &lt;a href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RFC5789&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 同时主动推送链接到百度，神马等站长平台</title><link>https://lruihao.cn/posts/phppushurl/</link><pubDate>Sat, 28 Sep 2019 18:32:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phppushurl/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;php 主动推送站点链接到百度站长，神马站长进行 SEO。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 按行读取文件信息</title><link>https://lruihao.cn/posts/phpfile/</link><pubDate>Sat, 28 Sep 2019 17:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfile/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;h2 class=\"heading-element\" id=\"普通方法\"&gt;&lt;span&gt;10 普通方法&lt;/span&gt;\n &lt;a href=\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先采用&lt;code&gt;fopen()&lt;/code&gt;函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。&lt;code&gt;feof()&lt;/code&gt;判断是否到最后一行，&lt;code&gt;fgets()&lt;/code&gt;读取一行文本。&lt;/p&gt;</description></item><item><title>设置网站运行时间</title><link>https://lruihao.cn/posts/site-time/</link><pubDate>Thu, 19 Sep 2019 22:03:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/site-time/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用&lt;code&gt;javascript&lt;/code&gt;计算博客等网站的运行时间。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>script 的三种加载方式 (async, defer)</title><link>https://lruihao.cn/posts/async-defer/</link><pubDate>Sun, 08 Sep 2019 11:47:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/async-defer/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition note open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"&gt;&lt;/i&gt;注意&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;JS 的加载分为两个部分：下载和执行。&lt;br&gt;\n浏览器在执行 HTML 的时候如果遇到&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见&lt;code&gt;&amp;lt;/scirpt&amp;gt;&lt;/code&gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Sublime Text3 快捷键大全</title><link>https://lruihao.cn/posts/sublime-text3/</link><pubDate>Thu, 15 Aug 2019 20:59:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sublime-text3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Sublime Text3 快捷键一览表&lt;/p&gt;</description></item><item><title>NetBeans IDE 开发设置</title><link>https://lruihao.cn/posts/netbeans/</link><pubDate>Thu, 15 Aug 2019 18:36:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/netbeans/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"安裝\"&gt;&lt;span&gt;10 安裝&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方下載點&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"擴充功能\"&gt;&lt;span&gt;11 擴充功能&lt;/span&gt;\n &lt;a href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安裝擴充功能\"&gt;&lt;span&gt;11.1 安裝擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;下載擴充套件包\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方套件庫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;或者在 NetBeans IDE 裏面下載插件（方便）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins&lt;/li&gt;\n&lt;li&gt;選擇要安裝的擴充套件包&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"&gt;&lt;span&gt;11.2 啟用已安裝的擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Installed&lt;/li&gt;\n&lt;li&gt;選擇要啟用的套件 (*.npm)&lt;/li&gt;\n&lt;li&gt;點擊 Activate&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"匯入設定\"&gt;&lt;span&gt;11.3 匯入設定&lt;/span&gt;\n &lt;a href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Options&lt;/li&gt;\n&lt;li&gt;點擊 Import 匯入設定&lt;/li&gt;\n&lt;li&gt;選擇要匯入的套件包 (*.zip)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"常用設定\"&gt;&lt;span&gt;12 常用設定&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"程式碼排版\"&gt;&lt;span&gt;12.1 程式碼排版&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;blockquote&gt;\n&lt;p&gt;在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。&lt;/p&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>简单评论模块--php 表单练习</title><link>https://lruihao.cn/posts/phpform/</link><pubDate>Fri, 19 Jul 2019 11:38:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpform/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，&lt;br&gt;\n&lt;strong&gt;PHP 表单安全性的重要提示&lt;/strong&gt;&lt;br&gt;\n&lt;code&gt;$_SERVER[&amp;quot;PHP_SELF&amp;quot;]&lt;/code&gt;变量能够被黑客利用！&lt;br&gt;\n如果页面中使用了&lt;code&gt;PHP_SELF&lt;/code&gt;，用户能够输入下划线然后执行跨站点脚本（XSS）。&lt;br&gt;\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;跨站点脚本（Cross-site scripting，XSS）&lt;/code&gt;是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 函数学习</title><link>https://lruihao.cn/posts/phpfunc/</link><pubDate>Mon, 15 Jul 2019 11:37:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfunc/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;练习 php 函数的基本使用。&lt;br&gt;\n注：&lt;br&gt;\n必选参数在可选参数的前面。&lt;br&gt;\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实训总结Ⅱ</title><link>https://lruihao.cn/posts/pysx2/</link><pubDate>Fri, 21 Jun 2019 18:46:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx2/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;后面几天讲的有点杂，简单记录一下知识点。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实训总结Ⅰ</title><link>https://lruihao.cn/posts/pysx1/</link><pubDate>Tue, 18 Jun 2019 18:41:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx1/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“&lt;strong&gt;用 python 做量化交易&lt;/strong&gt;”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>判断三角形的黑盒测试</title><link>https://lruihao.cn/posts/judgetriangle/</link><pubDate>Sun, 26 May 2019 18:50:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/judgetriangle/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。&lt;br&gt;\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装 ImgURL 图床</title><link>https://lruihao.cn/posts/imgurl/</link><pubDate>Thu, 16 May 2019 20:31:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/imgurl/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n&lt;a href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;阅读原文&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>条件注释判断浏览器版本&lt;!--[if lt IE 9]&gt;;</title><link>https://lruihao.cn/posts/ifzhushi/</link><pubDate>Fri, 10 May 2019 13:08:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ifzhushi/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;span&gt;&amp;lt;!--[if !IE]&amp;gt;&amp;lt;!--&amp;gt; 除 IE 外都可识别 &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE]&amp;gt; 所有的 IE 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 6]&amp;gt; 仅 IE6 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 6]&amp;gt; IE6 以及 IE6 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 6]&amp;gt; IE6 以及 IE6 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 7]&amp;gt; 仅 IE7 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 7]&amp;gt; IE7 以及 IE7 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 7]&amp;gt; IE7 以及 IE7 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 8]&amp;gt; 仅 IE8 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 9]&amp;gt; 仅 IE9 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 设置程序每天 8 点定时执行任务</title><link>https://lruihao.cn/posts/pysettime/</link><pubDate>Thu, 09 May 2019 23:26:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysettime/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。&lt;br&gt;\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。&lt;br&gt;\n（该程序需要一直挂着，保持网络不断）&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>安装 pyinstaller 出错的解决办法及 csdn 工具实例打包</title><link>https://lruihao.cn/posts/pyinstallererror/</link><pubDate>Thu, 09 May 2019 19:05:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pyinstallererror/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用过命令&lt;code&gt;pip install pyinstaller&lt;/code&gt;安装失败，此包依赖于 pywin32，安装前需要先&lt;code&gt;pip install pywin32&lt;/code&gt;, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Python 如何操作 Json？</title><link>https://lruihao.cn/posts/jsoninfo/</link><pubDate>Tue, 07 May 2019 18:42:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jsoninfo/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 发送 post 请求进行简单的接口测试</title><link>https://lruihao.cn/posts/posttest/</link><pubDate>Tue, 07 May 2019 18:17:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/posttest/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;requests.get()&lt;/li&gt;\n&lt;li&gt;requests.post()&lt;br&gt;\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 通过 URL 和 URLConnection 访问网页资源</title><link>https://lruihao.cn/posts/java-urlreader/</link><pubDate>Mon, 06 May 2019 17:41:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-urlreader/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>文件加密解密（字节流）</title><link>https://lruihao.cn/posts/byteio/</link><pubDate>Thu, 02 May 2019 23:04:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/byteio/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。&lt;/p&gt;\n&lt;p&gt;这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>模拟借书系统（java 异常练习）</title><link>https://lruihao.cn/posts/javaexception/</link><pubDate>Wed, 01 May 2019 16:52:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/javaexception/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>模拟借书系统（java 异常练习）</description></item><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>第一次面试经历</title><link>https://lruihao.cn/posts/1thintervivew/</link><pubDate>Wed, 24 Apr 2019 21:23:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/1thintervivew/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 爬取网站图片（图片链接相似）</title><link>https://lruihao.cn/posts/mmtimgpy/</link><pubDate>Mon, 22 Apr 2019 12:46:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mmtimgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下程序对 &lt;a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;amp;a=fontshowPics&amp;amp;u=qbfRl8gPF2s-&amp;amp;z=Kqz%2FRroVGYc-&amp;amp;share=1&amp;amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;该网址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。&lt;a href=\"https://lruihao.cn/projects/font-mmt/\"&gt;字体效果查看&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>用记事本编写第一个 java 程序</title><link>https://lruihao.cn/posts/hellojava/</link><pubDate>Fri, 19 Apr 2019 19:49:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hellojava/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以&lt;code&gt;.java&lt;/code&gt;为后缀的文件；然后将这些源程序用&lt;code&gt;javac&lt;/code&gt;编译成&lt;code&gt;.class&lt;/code&gt;后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。&lt;br&gt;\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;javac&lt;/li&gt;\n&lt;li&gt;java&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 正则表达式练习</title><link>https://lruihao.cn/posts/java-regex/</link><pubDate>Thu, 18 Apr 2019 22:04:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-regex/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"邮箱\"&gt;&lt;span&gt;10 邮箱&lt;/span&gt;\n &lt;a href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;import java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(&amp;#34;^[a-zA-Z0-9_!#$%&amp;amp;&amp;#39;*&amp;#43;/=?`{|}~^.-]&amp;#43;@[a-zA-Z0-9.-]&amp;#43;$&amp;#34;);\n String[] emails = {&amp;#34;admin@lruihao.cn&amp;#34;, &amp;#34;lruihao.cn&amp;#34;};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email &amp;#43; &amp;#34;匹配结果：&amp;#34; &amp;#43; matcher.matches());\n }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;admin@lruihao.cn 匹配结果：true\nlruihao.cn 匹配结果：false&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"电话\"&gt;&lt;span&gt;11 电话&lt;/span&gt;\n &lt;a href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;package base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;);\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum&amp;#43;&amp;#34;匹配结果： &amp;#34;&amp;#43;matcher.matches());\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(&amp;#34;^[0][1-9]{2,3}-[0-9]{5,10}$&amp;#34;); // 验证带区号的\n p2 = Pattern.compile(&amp;#34;^[1-9]{1}[0-9]{5,8}$&amp;#34;); // 验证没有区号的\n if (str.length() &amp;gt; 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"身份证\"&gt;&lt;span&gt;12 身份证&lt;/span&gt;\n &lt;a href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=&amp;#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&amp;#34; &amp;#43;\n &amp;#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&amp;#34; &amp;#43;\n &amp;#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&amp;#34;;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>java 常用类</title><link>https://lruihao.cn/posts/stringbuffer/</link><pubDate>Sun, 14 Apr 2019 10:12:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/stringbuffer/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"&gt;&lt;span&gt;13 StringBuffer/StringBuilder（掌握）&lt;/span&gt;\n &lt;a href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"&gt;&lt;span&gt;13.1 StringBuffer 是线程安全的可变字符串&lt;/span&gt;\n &lt;a href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;StringBuilder 是线程不安全的可变字符串。&lt;br&gt;\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。&lt;/p&gt;</description></item><item><title>HDU 1009 FatMouse' Trade（贪心）</title><link>https://lruihao.cn/posts/hdu1009/</link><pubDate>Fri, 12 Apr 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;7 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。&lt;/p&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>前端面试题 - HTML+CSS</title><link>https://lruihao.cn/posts/ms-html-css/</link><pubDate>Sat, 30 Mar 2019 22:58:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ms-html-css/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原文链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过&lt;/p&gt;</description></item><item><title>百钱百鸡（枚举法）</title><link>https://lruihao.cn/posts/bqbj/</link><pubDate>Sat, 30 Mar 2019 10:13:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bqbj/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable-file --&gt;\n&lt;div class=\"details admonition danger open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"&gt;&lt;/i&gt;危险&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;span style=\"color: #d9534f;font-size: 1.2em;\"&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对 next 的主题的自定义修改&lt;/strong&gt;，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib 资源已打包 github。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Java 父类子类的对象初始化过程</title><link>https://lruihao.cn/posts/substatus/</link><pubDate>Thu, 21 Mar 2019 13:36:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/substatus/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>ubuntu + windows 双系统默认启动项设置</title><link>https://lruihao.cn/posts/windefault/</link><pubDate>Thu, 21 Mar 2019 12:48:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/windefault/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装</title><link>https://lruihao.cn/posts/bt/</link><pubDate>Mon, 18 Mar 2019 21:31:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bt/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。&lt;a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔官网介绍&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>web 汇总</title><link>https://lruihao.cn/posts/webbiji/</link><pubDate>Mon, 18 Mar 2019 20:40:55 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/webbiji/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 泛型 test</title><link>https://lruihao.cn/posts/fanxing/</link><pubDate>Sat, 16 Mar 2019 13:56:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fanxing/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&amp;lt;&amp;gt;)&lt;/li&gt;\n&lt;li&gt;类型通配符一般使用问号&lt;code&gt;?&lt;/code&gt;代替具体的类型&lt;code&gt;实&lt;/code&gt;参，注意不是类型形参。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>eclipse 的基本使用</title><link>https://lruihao.cn/posts/eclipseuse/</link><pubDate>Fri, 15 Mar 2019 23:47:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/eclipseuse/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"基本使用\"&gt;&lt;span&gt;13 基本使用&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n a: 创建项目（工程）\n *File -- New -- Java Project\n *在左边空白处，直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译，在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-的基本设置\"&gt;&lt;span&gt;14 Eclipse 的基本设置&lt;/span&gt;\n &lt;a href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\nB: 去掉默认注释（可以不用改）\nC: 行号的显示和隐藏\n 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\n 隐藏：把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色：\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了，怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快捷键的使用\"&gt;&lt;span&gt;15 快捷键的使用&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 内容辅助键\n Alt&amp;#43;/ 起提示作用\n main&amp;#43;alt&amp;#43;/,syso&amp;#43;alt&amp;#43;/, 给出其他提示\nB: 快捷键\n 格式化 ctrl&amp;#43;shift&amp;#43;f\n 导入包 ctrl&amp;#43;shift&amp;#43;o\n 注释 ctrl&amp;#43;/\n ctrl&amp;#43;shift&amp;#43;/,ctrl&amp;#43;shift&amp;#43;\\\n 代码上下移动 选中代码 alt&amp;#43;上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl&amp;#43;鼠标点击）&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"&gt;&lt;span&gt;16 Eclipse 中如何提高开发效率&lt;/span&gt;\n &lt;a href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>匿名类在可视化界面中的应用</title><link>https://lruihao.cn/posts/qframe/</link><pubDate>Fri, 15 Mar 2019 22:31:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qframe/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;java 中匿名类用的最多的地方就是可视化界面设计中，特别是将&lt;code&gt;事件监听器&lt;/code&gt;注册到某个组件上的时候。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>模仿知乎卡片式链接</title><link>https://lruihao.cn/posts/linkcard/</link><pubDate>Fri, 15 Mar 2019 15:21:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linkcard/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>win10,ubuntu 双系统时间不一致</title><link>https://lruihao.cn/posts/ubuntutime/</link><pubDate>Fri, 15 Mar 2019 14:28:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ubuntutime/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>QQ 强制生成卡片式链接</title><link>https://lruihao.cn/posts/qqxml/</link><pubDate>Fri, 08 Mar 2019 16:52:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qqxml/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。&lt;br&gt;\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url &lt;code&gt;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=&lt;/code&gt; 于是就有了脚本刷新的想法。简陋的写了一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>磁盘存储器的管理</title><link>https://lruihao.cn/posts/cipanadmin/</link><pubDate>Mon, 04 Mar 2019 23:08:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cipanadmin/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"外存的组织方式\"&gt;&lt;span&gt;1 外存的组织方式&lt;/span&gt;\n &lt;a href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"连续组织方式\"&gt;&lt;span&gt;1.1 连续组织方式&lt;/span&gt;\n &lt;a href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;\n&lt;p&gt;连续组织方式的优点&lt;/p&gt;</description></item><item><title>JS 验证码</title><link>https://lruihao.cn/posts/js-vcode/</link><pubDate>Mon, 04 Mar 2019 20:53:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-vcode/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;style type=\"text/css\"&gt;\n\n# code{ \n\n font-family:Arial; \n font-style:italic; \n font-weight:bold; \n border:2px solid #ddd;\n letter-spacing:9px; \n color:blue;\n font-size: 15px;\n}\n&lt;/style&gt;\n&lt;script type=\"text/javascript\"&gt;\n //设置一个全局的变量，便于保存验证码\n var code;\n function createCode(){\n //首先默认 code 为空字符串\n code = '';\n //设置长度，这里看需求，我这里设置了 4\n var codeLength = 4;\n var codeV = document.getElementById('code');\n //设置随机字符\n var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n //循环 codeLength 我设置的 4 就是循环 4 次\n for(var i = 0; i &lt; codeLength; i++){\n //设置随机数范围，这设置为 0 ~ 36\n var index = Math.floor(Math.random()*35);\n //字符串拼接 将每次随机的字符 进行拼接\n code += random[index];\n }\n //将拼接好的字符串赋值给展示的 Value\n codeV.value = code;\n }\n\n //下面就是判断是否== 的代码，无需解释\n function validate(){\n var Input = document.getElementById('input');\n var oValue = Input.value.toUpperCase();\n if(oValue ==0){\n alert('请输入验证码');\n }else if(oValue != code){\n Input.value = '';\n alert('验证码不正确，请重新输入');\n createCode();\n }else{\n Input.value = '';\n alert('验证码正确！');//window.open('http://lruihao.cn','_self');\n }\n }\n\n //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n window.onload = function (){\n\n createCode();\n }\n&lt;/script&gt;\n&lt;div align=\"center\"&gt; \n &lt;input type = \"text\" id = \"input\" value=\"\" /&gt; &lt;input type = \"button\" id=\"code\" onclick=\"createCode()\"/&gt; &lt;input class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/&gt;\n &lt;br/&gt;请点击验证码处：↑\n&lt;/div&gt;</description></item><item><title>还乡</title><link>https://lruihao.cn/posts/renative/</link><pubDate>Fri, 01 Feb 2019 20:44:40 +0800</pubDate><guid>https://lruihao.cn/posts/renative/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 继承 test</title><link>https://lruihao.cn/posts/jicheng/</link><pubDate>Thu, 24 Jan 2019 15:07:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jicheng/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;引用&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;继承的好处：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;提高了代码的复用性&lt;/li&gt;\n&lt;li&gt;提高了代码的维护性&lt;/li&gt;\n&lt;li&gt;让类与类之间产生了关系，是多态的前提&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;继承的弊端：类的耦合性很强&lt;/p&gt;\n&lt;p&gt;设计原则：低耦合，高内聚。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;耦合：类与类的关系。&lt;/li&gt;\n&lt;li&gt;内聚：自己完成事情的能力。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Arrays 类及基本使用</title><link>https://lruihao.cn/posts/java-arrays/</link><pubDate>Fri, 18 Jan 2019 13:13:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-arrays/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"主要方法\"&gt;&lt;span&gt;10 主要方法&lt;/span&gt;\n &lt;a href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;static type[] copyof(type[] original,int length)&lt;/li&gt;\n&lt;li&gt;static int binarysearch(type[] a,type key)&lt;/li&gt;\n&lt;li&gt;static boolean equals(type[] a,type[] b)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,type val)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,int fromindex,int toindex,type val)&lt;/li&gt;\n&lt;li&gt;static void sort(type[] a)&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>在搜索、文章底部、侧栏添加最近文章模块</title><link>https://lruihao.cn/posts/recent-posts/</link><pubDate>Wed, 16 Jan 2019 17:50:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/recent-posts/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;首先在主题配置文件添加以下关键字&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;pre&gt;&lt;code&gt;recent_posts:\n enable: true\n search: true\n post: false\n sidebar: false\n icon: history\n title: 近期文章\n layout: block&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"侧栏\"&gt;&lt;span&gt;13 侧栏&lt;/span&gt;\n &lt;a href=\"#%e4%be%a7%e6%a0%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 &lt;code&gt;next/layout/_macro/sidebar.swig&lt;/code&gt; 中的 &lt;code&gt;if theme.links&lt;/code&gt; 对应的 &lt;code&gt;endif&lt;/code&gt; 后面。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n &amp;lt;div class=&amp;#34;links-of-blogroll motion-element {{ &amp;#34;links-of-blogroll-&amp;#34; &amp;#43; theme.recent_posts.layout }}&amp;#34;&amp;gt;\n &amp;lt;div class=&amp;#34;links-of-blogroll-title&amp;#34;&amp;gt;\n &amp;lt;i class=&amp;#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&amp;#34; aria-hidden=&amp;#34;true&amp;#34;&amp;gt;&amp;lt;/i&amp;gt;\n {{ theme.recent_posts.title }}\n &amp;lt;/div&amp;gt;\n &amp;lt;ul class=&amp;#34;links-of-blogroll-list&amp;#34;&amp;gt;\n {% set posts = site.posts.sort(&amp;#39;-date&amp;#39;) %}\n {% for post in posts.slice(&amp;#39;0&amp;#39;, &amp;#39;3&amp;#39;) %}\n &amp;lt;li&amp;gt;\n &amp;lt;a href=&amp;#34;{{ url_for(post.path) }}&amp;#34; title=&amp;#34;{{ post.title }}&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;{{ post.title }}&amp;lt;/a&amp;gt;\n &amp;lt;/li&amp;gt;\n {% endfor %}\n &amp;lt;/ul&amp;gt;\n &amp;lt;/div&amp;gt;\n{% endif %}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"搜索结果处添加\"&gt;&lt;span&gt;14 搜索结果处添加&lt;/span&gt;\n &lt;a href=\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;找到路径&lt;code&gt;H:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search&lt;/code&gt;下&lt;code&gt;localsearch.swig&lt;/code&gt;文件&lt;br&gt;\n把&lt;code&gt;&amp;lt;div id=&amp;quot;local-search-result&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;修改成以下内容（这里显示 15 篇）&lt;/p&gt;</description></item><item><title>java 猜数字小游戏（Math 类）</title><link>https://lruihao.cn/posts/mathclass/</link><pubDate>Tue, 15 Jan 2019 17:33:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mathclass/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;大一刚学 c 的时候以前写过 &lt;a href=\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;c 语言版&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ol&gt;\n&lt;li&gt;Math: 针对数学进行运算的类&lt;/li&gt;\n&lt;li&gt;特点：没有构造方法，因为它的成员都是静态的&lt;/li&gt;\n&lt;li&gt;产生随机数：\npublic static double random(): 产生随机数，范围 [0.0,1.0)&lt;/li&gt;\n&lt;li&gt;产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;&lt;/li&gt;\n&lt;li&gt;猜数字小游戏案例&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>面向对象基础知识总结</title><link>https://lruihao.cn/posts/duixiang/</link><pubDate>Tue, 15 Jan 2019 16:07:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/duixiang/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"面向对象思想理解\"&gt;&lt;span&gt;52 面向对象思想（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;面向对象是基于面向过程的一种编程思想&lt;/li&gt;\n&lt;li&gt;思想特点：&lt;br&gt;\nA: 是一种更符合我们思考习惯的思想&lt;br&gt;\nB: 把复杂的问题简单化&lt;br&gt;\nC: 让我们从执行者变成了指挥者&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\nA: 洗衣服&lt;br&gt;\nB: 吃饭&lt;br&gt;\nC: 买电脑&lt;/li&gt;\n&lt;li&gt;举例并代码体现\n把大象装进冰箱&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类与对象掌握\"&gt;&lt;span&gt;53 类与对象（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。&lt;/li&gt;\n&lt;li&gt;现实世界事物是如何表达的呢？\n属性：外在特征&lt;br&gt;\n行为：内在行为&lt;/li&gt;\n&lt;li&gt;我们学习的是 java 语言，它最基本的单位是类。&lt;br&gt;\n所以我们要学会用类来体现一个事物。&lt;/li&gt;\n&lt;li&gt;类：是一组相关的属性和行为的集合&lt;/li&gt;\n&lt;li&gt;对象：是该类事物的具体个体。&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\n学生 类&lt;br&gt;\n张三 对象&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类的组成掌握\"&gt;&lt;span&gt;54 类的组成（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;成员变量&lt;br&gt;\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。&lt;/li&gt;\n&lt;li&gt;成员方法&lt;br&gt;\n其实就是方法，只不过不需要 static 了&lt;/li&gt;\n&lt;li&gt;案例：&lt;br&gt;\n学生类&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n String name;\n int age;\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"类的使用掌握\"&gt;&lt;span&gt;55 类的使用（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;创建对象&lt;br&gt;\n格式：类名 对象名 = new 类名 ();&lt;/li&gt;\n&lt;li&gt;使用成员&lt;br&gt;\n成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&amp;hellip;);&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"&gt;&lt;span&gt;56 成员变量和局部变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;在类中的位置不同&lt;br&gt;\nA: 成员变量 类中，方法外&lt;br&gt;\nB: 局部变量 方法的形式参数，或者方法体中&lt;/li&gt;\n&lt;li&gt;在内存中的位置不同&lt;br&gt;\nA: 成员变量 在堆中&lt;br&gt;\nB: 局部变量 在栈中&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失&lt;br&gt;\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失&lt;/li&gt;\n&lt;li&gt;初始化值不同&lt;br&gt;\nA: 成员变量 有默认初始化值&lt;br&gt;\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"形式参数问题理解\"&gt;&lt;span&gt;57 形式参数问题（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;基本类型&lt;br&gt;\n基本类型作为形式参数，需要的是该基本类型的值。&lt;/li&gt;\n&lt;li&gt;引用类型&lt;br&gt;\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"匿名对象理解\"&gt;&lt;span&gt;58 匿名对象（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;匿名对象：没有名字的对象。是对象的简化书写方式。&lt;/li&gt;\n&lt;li&gt;使用场景&lt;br&gt;\nA: 调用方法，仅仅只调用一次&lt;br&gt;\nB: 作为实际参数传递&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"封装掌握\"&gt;&lt;span&gt;59 封装（掌握）&lt;/span&gt;\n &lt;a href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;隐藏实现细节，提供公共的访问方式&lt;/li&gt;\n&lt;li&gt;好处：&lt;br&gt;\nA: 隐藏实现细节，提供公共的访问方式&lt;br&gt;\nB: 提高了代码的复用性&lt;br&gt;\nC: 提高了代码的安全性&lt;/li&gt;\n&lt;li&gt;使用原则&lt;br&gt;\nA: 把成员变量隐藏&lt;br&gt;\nB: 给出该成员变量对应的公共访问方式&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"private-关键字掌握\"&gt;&lt;span&gt;60 private 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个权限修饰符&lt;/li&gt;\n&lt;li&gt;可以修饰类的成员（成员变量和成员方法）&lt;/li&gt;\n&lt;li&gt;仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"this-关键字掌握\"&gt;&lt;span&gt;61 this 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;this：代表本类的对象&lt;/li&gt;\n&lt;li&gt;应用场景：&lt;br&gt;\n解决了局部变量隐藏成员变量的问题。&lt;br&gt;\n其他用法和 super 一起讲。&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n\n public void study() {\n System.out.println(&amp;#34;学生爱学习&amp;#34;);\n }\n\n public void eat() {\n System.out.println(&amp;#34;学生要吃饭&amp;#34;);\n }\n\n public void sleep() {\n System.out.println(&amp;#34;学生想睡觉&amp;#34;);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;s.getName());\n System.out.println(&amp;#34;年龄是：&amp;#34;&amp;#43;s.getAge());\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"构造方法掌握\"&gt;&lt;span&gt;62 构造方法（掌握）&lt;/span&gt;\n &lt;a href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;作用：对对象的数据进行初始化。&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\nA: 方法名和类名相同&lt;br&gt;\nB: 没有返回值类型&lt;br&gt;\nC: 没有返回值&lt;/li&gt;\n&lt;li&gt;注意事项&lt;br&gt;\nA: 如果我们没写构造方法，系统将默认给出无参构造方法&lt;br&gt;\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法&lt;br&gt;\n建议：我们自己手动给出无参构造方法&lt;/li&gt;\n&lt;li&gt;给成员变量赋值：&lt;br&gt;\nA: 无参+setXxx()&lt;br&gt;\nB: 带参&lt;/li&gt;\n&lt;li&gt;一个标准的代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参&amp;#43;setXxx()\n Student s = new Student();\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(&amp;#34;张曼玉&amp;#34;,20);\n ss.show();\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"对象的初始化过程理解\"&gt;&lt;span&gt;63 对象的初始化过程（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Student s = new Student(); 做了哪些事情&lt;br&gt;\nA: 加载 Student.class 文件进内存&lt;br&gt;\nB: 在栈中为 s 开辟空间&lt;br&gt;\nC: 在堆中为学生对象开辟空间&lt;br&gt;\nD: 为学生对象的成员变量赋默认值&lt;br&gt;\nE: 为学生对象的成员变量赋显示值&lt;br&gt;\nF: 通过构造方法给成员变量赋值&lt;br&gt;\nG: 对象构造完毕，把地址赋值给 s 变量&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"static-关键字掌握\"&gt;&lt;span&gt;64 static 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个状态修饰符。静态的意思&lt;/li&gt;\n&lt;li&gt;它可以修饰成员变量和成员方法&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\n&lt;strong&gt;A: 随着类的加载而加载&lt;br&gt;\nB: 优先于对象存在&lt;br&gt;\nC: 被所有对象共享&lt;/strong&gt;&lt;br&gt;\n这也是判断我们是不是该使用静态的条件&lt;br&gt;\n举例：饮水机（可共享 static) 和水杯例子。&lt;br&gt;\nD: 可以通过类名调用&lt;br&gt;\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用&lt;/li&gt;\n&lt;li&gt;方法访问特点&lt;br&gt;\nA: 普通成员方法&lt;br&gt;\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法&lt;br&gt;\nB: 静态成员方法&lt;br&gt;\n&lt;strong&gt;只能访问静态成员变量，静态成员方法&lt;br&gt;\n简记：静态只能访问静态&lt;/strong&gt;&lt;br&gt;\n注意：&lt;br&gt;\n&lt;strong&gt;静态中是不能有 this 的。&lt;br&gt;\n先进内存的不能访问后进内存的。反之可以。&lt;/strong&gt;&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;/**\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n *\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name&amp;#43;&amp;#34;---&amp;#34;&amp;#43;age&amp;#43;&amp;#34;---&amp;#34;&amp;#43;classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(&amp;#34;林青霞&amp;#34;,28,&amp;#34;20150306&amp;#34;);\n s1.show();\n\n /*\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35,&amp;#34;20150306&amp;#34;);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33,&amp;#34;20150306&amp;#34;);\n s3.show();\n */\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33);\n s3.show();\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static: 静态关键字。\n\n 作用：\n 可以修饰成员变量和成员方法\n\n 特点：\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机：可以被静态修饰\n 水杯：不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象，还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(&amp;#34;show&amp;#34;);\n }\n\n public static void show2() {\n System.out.println(&amp;#34;show2&amp;#34;);\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();&amp;amp;ensp;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static 的注意事项：\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法：\n 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n 静态的成员方法：\n 只能访问静态的成员变量，静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//&amp;amp;ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);&amp;amp;ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(&amp;#34;林青霞&amp;#34;);\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"&gt;&lt;span&gt;65 静态成员变量和普通成员变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;所属不同&lt;br&gt;\n静态属于类的，称为类变量&lt;br&gt;\n非静态属于对象的，称为对象变量，实例变量&lt;/li&gt;\n&lt;li&gt;内存空间不同&lt;br&gt;\n静态在方法区的静态区&lt;br&gt;\n非静态在堆内存&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\n静态随着类的加载而加载，随着类的消失而消失&lt;br&gt;\n非静态随着对象的创建而存在，随着对象的消失而消失&lt;/li&gt;\n&lt;li&gt;调用不同&lt;br&gt;\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用&lt;br&gt;\n非静态只能通过对象名调用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"main-方法是静态的理解\"&gt;&lt;span&gt;66 main 方法是静态的（理解）&lt;/span&gt;\n &lt;a href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;public static void main(String[] args)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。&lt;br&gt;\nstatic: 被 jvm 调用，不用创建对象，直接类名访问&lt;br&gt;\nvoid: 被 jvm 调用，不需要给 jvm 返回值&lt;br&gt;\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别&lt;br&gt;\nString[] args:&lt;br&gt;\n早期出现是为了接收键盘录入数据的。&lt;/p&gt;</description></item><item><title>java 水仙花数（循环）</title><link>https://lruihao.cn/posts/java-range/</link><pubDate>Mon, 14 Jan 2019 17:30:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-range/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1&lt;sup&gt;3 + 5&lt;/sup&gt;3+ 3^3 = 153）。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 录入数据</title><link>https://lruihao.cn/posts/java-input/</link><pubDate>Mon, 14 Jan 2019 15:33:46 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-input/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"记忆格式\"&gt;&lt;span&gt;7 记忆格式&lt;/span&gt;\n &lt;a href=\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;(1) 导包：&lt;br&gt;\nimport java.util.Scanner;&lt;br&gt;\n注意：位置在 class 的上面。&lt;br&gt;\n(2) 创建键盘录入对象：&lt;br&gt;\nScanner sc = new Scanner(System.in);&lt;br&gt;\n(3) 获取数据&lt;br&gt;\nint i = sc.nextInt();&lt;br&gt;\n(4) 练习：&lt;br&gt;\nA: 求两个数据的和&lt;br&gt;\nB: 获取两个数据中较大的值&lt;br&gt;\nC: 获取三个数据中较大的值&lt;br&gt;\nD: 比较两个数是否相等&lt;/p&gt;</description></item><item><title>java 标识符</title><link>https://lruihao.cn/posts/biaoshi/</link><pubDate>Mon, 14 Jan 2019 15:07:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/biaoshi/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"标识符\"&gt;&lt;span&gt;1 标识符&lt;/span&gt;\n &lt;a href=\"#%e6%a0%87%e8%af%86%e7%ac%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给类，接口，方法或者变量起名字的符号&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"组成规则\"&gt;&lt;span&gt;2 组成规则&lt;/span&gt;\n &lt;a href=\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A: 英文字母大小写&lt;br&gt;\nB: 数字&lt;br&gt;\nC:_和$&lt;/p&gt;</description></item><item><title>英语语法--主谓一致</title><link>https://lruihao.cn/posts/subject-verb/</link><pubDate>Sat, 12 Jan 2019 13:02:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subject-verb/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"常见情况\"&gt;&lt;span&gt;1 常见情况&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\"&gt;&lt;span&gt;1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数&lt;/span&gt;\n &lt;a href=\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;English &lt;u&gt;and&lt;/u&gt; chinese are two quite different languages.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Both&lt;/u&gt; brother &lt;u&gt;and&lt;/u&gt; sister tire of city life.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\"&gt;&lt;span&gt;1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;&lt;u&gt;No&lt;/u&gt; desk &lt;u&gt;and&lt;/u&gt; (no) chair is seen in the hall.&lt;/li&gt;\n&lt;li&gt;All work &lt;u&gt;and&lt;/u&gt; &lt;u&gt;no&lt;/u&gt; play makes Jack a dull boy.&lt;/li&gt;\n&lt;li&gt;They each have been to the Forbidden city.\neach 位于主语后，所以谓语动词用复数&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"&gt;&lt;span&gt;1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread&lt;/p&gt;</description></item><item><title>英语语法--形式倒装</title><link>https://lruihao.cn/posts/inversion-3/</link><pubDate>Mon, 10 Dec 2018 21:52:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;形式倒装，句子本不是本来的语序。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"may-位于句首标祝愿\"&gt;&lt;span&gt;0.1 may 位于句首，标祝愿&lt;/span&gt;\n &lt;a href=\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;May you succeed.&lt;/li&gt;\n&lt;li&gt;May you have a happy holiday.&lt;/li&gt;\n&lt;li&gt;Long live chairman Mao.（毛主席万古长青）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"&gt;&lt;span&gt;0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前&lt;/span&gt;\n &lt;a href=\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>英语语法--完全倒装</title><link>https://lruihao.cn/posts/inversion-2/</link><pubDate>Mon, 10 Dec 2018 21:14:51 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;完全倒装：把整个谓语动词放到主语前。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"表方位或时间的副词-adv表地点的介词短语位于句首时\"&gt;&lt;span&gt;0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时&lt;/span&gt;\n &lt;a href=\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;Here comes the bus.&lt;/li&gt;\n&lt;li&gt;In the lecture hall of a university sits a professor.&lt;/li&gt;\n&lt;li&gt;Out rushed the children.&lt;/li&gt;\n&lt;li&gt;Now comes your turn.&lt;/li&gt;\n&lt;li&gt;Up jumped the cat and caught the mouse.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Down&lt;/u&gt; came the rain and &lt;u&gt;up&lt;/u&gt; went the umbrellas.&lt;/li&gt;\n&lt;li&gt;Among the people stood his friend,Jim.&lt;/li&gt;\n&lt;li&gt;(To be) South of the river lies a small factory.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;但主语为表示人称的代词时无需倒装&lt;/p&gt;</description></item><item><title>英语语法--部分倒装</title><link>https://lruihao.cn/posts/inversion-1/</link><pubDate>Sat, 08 Dec 2018 17:52:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。&lt;strong&gt;以下内容纯手打！！&lt;/strong&gt;\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 插件及 next 内置样式集</title><link>https://lruihao.cn/posts/nextplugin/</link><pubDate>Sat, 24 Nov 2018 16:54:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nextplugin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/2 更新&lt;br&gt;\n博客已迁移至 Hugo, 插件演示不适用，已删除。&lt;br&gt;\n让文章写的好看又简洁又好用的插件！&lt;a href=\"https://hexo.io/zh-cn/docs/tag-plugins.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 完整的标签列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://theme-next.org/docs/tag-plugins/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 插件列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>通过 bat 批处理文件自动提交博客代码</title><link>https://lruihao.cn/posts/commit-bat/</link><pubDate>Sat, 17 Nov 2018 14:25:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-bat/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;git add * （添加需要提交的文件，这里全选）&lt;/li&gt;\n&lt;li&gt;git commit -m &amp;ldquo;提交信息&amp;rdquo;&lt;/li&gt;\n&lt;li&gt;git push&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博採眾長 app</title><link>https://lruihao.cn/posts/fas-app/</link><pubDate>Mon, 12 Nov 2018 16:04:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fas-app/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"介绍\"&gt;&lt;span&gt;0.10 介绍&lt;/span&gt;\n &lt;a href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;使用 fusion app 对网页进行的封装。&lt;br&gt;\n功能：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;浏览本博客，主页&lt;/li&gt;\n&lt;li&gt;私人网盘&lt;/li&gt;\n&lt;li&gt;2048 等小游戏&lt;/li&gt;\n&lt;li&gt;在线客服，QQ 等&lt;/li&gt;\n&lt;li&gt;pc 与移动浏览器标识切换&lt;/li&gt;\n&lt;li&gt;留言，打赏，博主日志等&lt;/li&gt;\n&lt;li&gt;分享功能，分享到 QQ，微信，浏览器打开等&lt;/li&gt;\n&lt;li&gt;app 内添加书签，自动记录历史记录，刷新等&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;配合博客的&lt;code&gt;PWA + quicklink&lt;/code&gt;功能可实现离线浏览&lt;/strong&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>caddy-两步搭建超简单云盘</title><link>https://lruihao.cn/posts/caddy-file/</link><pubDate>Sun, 11 Nov 2018 13:59:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/caddy-file/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;16 安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"编写配置文件\"&gt;&lt;span&gt;17 编写配置文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vim Caddyfile&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;内容如下：&lt;/p&gt;</description></item><item><title>next 添加支持 pdf</title><link>https://lruihao.cn/posts/next-pdf/</link><pubDate>Fri, 09 Nov 2018 12:51:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/next-pdf/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;最新的 next 主题已经更新了支持 PDF 功能，&lt;del&gt;写法也和链接写法一样&lt;/del&gt;，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"iframe推荐\"&gt;&lt;span&gt;10 iframe(推荐)&lt;/span&gt;\n &lt;a href=\"#iframe%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;iframe src=&amp;#34;/posts/next-pdf/1.pdf&amp;#34; style=&amp;#34;width: 100%;height: 800px;&amp;#34;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"模板自带\"&gt;&lt;span&gt;11 模板自带&lt;/span&gt;\n &lt;a href=\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。&lt;/p&gt;</description></item><item><title>js 判断用户设备类型及平台</title><link>https://lruihao.cn/posts/js-device/</link><pubDate>Sat, 03 Nov 2018 23:35:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-device/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。&lt;/p&gt;</description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/blog-backup/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"备份-hexo-博客\"&gt;&lt;span&gt;7 备份 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m &amp;#34;blog hexo&amp;#34;\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"&gt;&lt;span&gt;8 在其他终端克隆和更新 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;nodejs,git,hexo 已经安装好，即搭建完成&lt;/p&gt;</description></item><item><title>Git 常用指令汇总</title><link>https://lruihao.cn/posts/git/</link><pubDate>Tue, 30 Oct 2018 08:59:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;工作区&lt;/strong&gt;：就是你在电脑里能看到的目录。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;暂存区&lt;/strong&gt;：英文叫 stage, 或 index。一般存放在 &amp;ldquo;.git 目录下&amp;rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;版本库&lt;/strong&gt;：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>网站备案之旅</title><link>https://lruihao.cn/posts/beian/</link><pubDate>Mon, 29 Oct 2018 23:16:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beian/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;备案&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。&lt;br&gt;\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>shell 脚本初体验</title><link>https://lruihao.cn/posts/shell/</link><pubDate>Mon, 29 Oct 2018 11:57:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/shell/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;今天上机学了几个小命令&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;read&lt;/li&gt;\n&lt;li&gt;echo&lt;/li&gt;\n&lt;li&gt;if&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;然后自己写了一个小脚本觉得还挺有趣的&lt;/p&gt;</description></item><item><title>云服务器 CentOS 系统搭建 web 服务</title><link>https://lruihao.cn/posts/web-server-yun/</link><pubDate>Mon, 29 Oct 2018 09:15:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-yun/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h3 class=\"heading-element\" id=\"搭建-apache-web-服务\"&gt;&lt;span&gt;0.10 搭建 Apache web 服务&lt;/span&gt;\n &lt;a href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;安装 Apache 超文本传输协议 (HTTP) 服务器的主程序&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# yum install -y httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意安装目录，可通过 cd 命令切换。&lt;/p&gt;\n&lt;ol start=\"2\"&gt;\n&lt;li&gt;启动 HTTP 服务&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果启动失败，可通过 systemctl status httpd.service 查看错误原因。&lt;br&gt;\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。&lt;br&gt;\n默认根目录&lt;code&gt;/var/www/html/&lt;/code&gt;&lt;/p&gt;</description></item><item><title>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战</title><link>https://lruihao.cn/posts/href-301/</link><pubDate>Sun, 28 Oct 2018 14:22:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/href-301/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h3 class=\"heading-element\" id=\"获取链接转\"&gt;&lt;span&gt;0.7 获取链接（转）&lt;/span&gt;\n &lt;a href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;a href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。&lt;/p&gt;</description></item><item><title>windows 上搭建 web 服务器</title><link>https://lruihao.cn/posts/web-server-win/</link><pubDate>Fri, 26 Oct 2018 21:56:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-win/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;我用的 win10&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开控制面板\"&gt;&lt;span&gt;0.1 打开控制面板&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。&lt;br&gt;\n&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"&lt;h2&gt;打开控制面板&lt;/h2&gt;&lt;p&gt;打开控制面板&lt;/p&gt;</description></item><item><title>使用 Git 上传代码到 github, coding 等仓库</title><link>https://lruihao.cn/posts/gituse/</link><pubDate>Fri, 26 Oct 2018 21:11:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gituse/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;h3 class=\"heading-element\" id=\"config\"&gt;&lt;span&gt;0.13 config&lt;/span&gt;\n &lt;a href=\"#config\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;git config --global user.name &amp;#34;Your Name&amp;#34;\ngit config --global user.email &amp;#34;email@example.com&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;\n&lt;p&gt;第一次使用 git 的时候需要设置提交者信息。&lt;br&gt;\n注意：&lt;br&gt;\n如果用了 &lt;code&gt;--global&lt;/code&gt; 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。&lt;br&gt;\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 &lt;code&gt;--global&lt;/code&gt; 选项重新配置即可，新的设定保存在当前项目的 &lt;code&gt;.git/config&lt;/code&gt; 文件里。&lt;/p&gt;</description></item><item><title>termux 基本使用教程</title><link>https://lruihao.cn/posts/termux1/</link><pubDate>Tue, 23 Oct 2018 22:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面有一篇文章写到一些，&lt;a href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n&lt;strong&gt;本文当初摘要自 &lt;a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;国光个人博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。&lt;a href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;备用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"初始化\"&gt;&lt;span&gt;25 初始化&lt;/span&gt;\n &lt;a href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;下载并初始化 termux&lt;/p&gt;</description></item><item><title>ttf 字体压缩</title><link>https://lruihao.cn/posts/web-font/</link><pubDate>Wed, 17 Oct 2018 21:38:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-font/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。&lt;/p&gt;</description></item><item><title>linux 编程初体验</title><link>https://lruihao.cn/posts/linux-hello-c/</link><pubDate>Mon, 15 Oct 2018 21:19:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-hello-c/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;在 Linux 上编译 c 语言文件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开-vim-编辑器\"&gt;&lt;span&gt;0.10 打开 vim 编辑器&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;（没有就用 vi, 或者先安装 vim&lt;code&gt;sudo apt-get install vim&lt;/code&gt;)&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vim&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"编辑文件\"&gt;&lt;span&gt;0.11 编辑文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;打开文件编辑器之后编辑文件\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"&lt;h2&gt;edit&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>流水线</title><link>https://lruihao.cn/posts/liushuixian/</link><pubDate>Tue, 09 Oct 2018 16:21:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/liushuixian/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"概念\"&gt;&lt;span&gt;22 概念&lt;/span&gt;\n &lt;a href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。&lt;/p&gt;</description></item><item><title>计算机数据</title><link>https://lruihao.cn/posts/data/</link><pubDate>Mon, 08 Oct 2018 23:01:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/data/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"数据的表示\"&gt;&lt;span&gt;0.1 数据的表示&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;数据的表示可分为：原码，反码和补码。（二进制）&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;原码：符号位 0 为正，1 为负。&lt;/li&gt;\n&lt;li&gt;反码：符号位 0 为正，1 为负。\n&lt;ul&gt;\n&lt;li&gt;正数：反码同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;补码：\n&lt;ul&gt;\n&lt;li&gt;正数：同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反再 +1。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;移码：补码符号位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"数据表示范围\"&gt;&lt;span&gt;0.2 数据表示范围&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;原码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;反码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;补码： &lt;code&gt;-z^n-1 ~ 2^n-1 - 1&lt;/code&gt; （补码正 0 和负 0 相同，少占一数位，就多一个范围）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。&lt;/p&gt;</description></item><item><title>网页夜间效果</title><link>https://lruihao.cn/posts/night/</link><pubDate>Thu, 27 Sep 2018 13:13:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/night/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。&lt;code&gt;css+js&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>网页离开时改变标题“崩溃欺骗”</title><link>https://lruihao.cn/posts/crash-cheat/</link><pubDate>Wed, 26 Sep 2018 16:36:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/crash-cheat/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>linux/centos 下的安装 git</title><link>https://lruihao.cn/posts/linux-git/</link><pubDate>Sat, 22 Sep 2018 22:28:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-git/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"下载-git\"&gt;&lt;span&gt;0.16 下载 git&lt;/span&gt;\n &lt;a href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;wget https://github.com/git/git/archive/v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"安装依赖\"&gt;&lt;span&gt;0.17 安装依赖&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"解压-git\"&gt;&lt;span&gt;0.18 解压 git&lt;/span&gt;\n &lt;a href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;unzip v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注：\nunzip 命令用不了，具体步骤如下：&lt;/p&gt;</description></item><item><title>每一个优秀的人，都有一段沉默的时光</title><link>https://lruihao.cn/posts/mood/</link><pubDate>Fri, 21 Sep 2018 21:11:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mood/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;手机便签里保存的一段话，也记不得在哪看到的了。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。&lt;br&gt;\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。&lt;/p&gt;\n&lt;p&gt;人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。&lt;br&gt;\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。&lt;/p&gt;</description></item><item><title>Vim 速查表</title><link>https://lruihao.cn/posts/vim/</link><pubDate>Fri, 31 Aug 2018 11:46:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vim/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Vim 速查表 - 帮你提高 N 倍效率&lt;/p&gt;</description></item><item><title>hexo next 主题添加字数统计（2018）</title><link>https://lruihao.cn/posts/hexo-wordcount/</link><pubDate>Thu, 30 Aug 2018 13:15:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-wordcount/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition warning open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"&gt;&lt;/i&gt;警告&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>hexo d 出错</title><link>https://lruihao.cn/posts/hexo-d-error/</link><pubDate>Tue, 21 Aug 2018 22:15:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-d-error/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。&lt;br&gt;\n现在做一下记录，防止以后出错用。&lt;br&gt;\n错误如下&lt;/p&gt;</description></item><item><title>hexo 个性化 - next 主题动态显示 subtitle</title><link>https://lruihao.cn/posts/dongtaisub/</link><pubDate>Mon, 20 Aug 2018 16:16:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dongtaisub/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。&lt;a href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（关键词：js, 后加载）&lt;br&gt;\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>“高逼格”C 语言画心</title><link>https://lruihao.cn/posts/heart/</link><pubDate>Wed, 15 Aug 2018 16:33:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/heart/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。&lt;/p&gt;\n&lt;p&gt;&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif\" title=\"大一在机房拍的图\" data-thumbnail=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" data-sub-html=\"&lt;h2&gt;截图&lt;/h2&gt;&lt;p&gt;大一在机房拍的图&lt;/p&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\"截图\" height=\"210\" width=\"210\"&gt;&lt;/a&gt;&lt;figcaption class=\"image-caption\"&gt;大一在机房拍的图&lt;/figcaption&gt;\n &lt;/figure&gt;&lt;/p&gt;</description></item><item><title>git index.lock</title><link>https://lruihao.cn/posts/git-index-lock/</link><pubDate>Tue, 14 Aug 2018 19:21:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-index-lock/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;fatal: Unable to create &amp;#39;/xxx/xx/.git/index.lock&amp;#39;: File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。&lt;/p&gt;\n&lt;p&gt;有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 &lt;code&gt;rm -f ./.git/index.lock&lt;/code&gt; 。之后就可以正常使用。&lt;/p&gt;</description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**&lt;a href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;部署后的效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;**&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>hexo 博客自定义 console log</title><link>https://lruihao.cn/posts/console-log/</link><pubDate>Sat, 04 Aug 2018 16:19:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/console-log/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。&lt;br&gt;\n我主要用到的工具：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;console.log()&lt;/li&gt;\n&lt;li&gt;Notepad++&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线图片转文字工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>最短路入门</title><link>https://lruihao.cn/posts/zuiduanlu/</link><pubDate>Fri, 03 Aug 2018 16:27:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/zuiduanlu/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"dijkstra-算法\"&gt;&lt;span&gt;1 Dijkstra 算法&lt;/span&gt;\n &lt;a href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"1-定义概览\"&gt;&lt;span&gt;1.1 1. 定义概览&lt;/span&gt;\n &lt;a href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。&lt;/p&gt;</description></item><item><title>牛客暑假多校第五场</title><link>https://lruihao.cn/posts/nowcodersummer-5th/</link><pubDate>Thu, 02 Aug 2018 21:27:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcodersummer-5th/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接 密码：l9sn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多&lt;/p&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bear and Finding Criminals-Codeforces680B</title><link>https://lruihao.cn/posts/codeforces680b/</link><pubDate>Tue, 31 Jul 2018 19:32:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里&lt;strong&gt;一定&lt;/strong&gt;有罪犯。&lt;/p&gt;\n&lt;p&gt;一定能确定该城市有小偷的几种情况：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市有罪犯，则一定能检测到&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市的左边和右边位置若&lt;strong&gt;都&lt;/strong&gt;不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Bear and Five Cards-Codeforces680A</title><link>https://lruihao.cn/posts/codeforces680a/</link><pubDate>Tue, 31 Jul 2018 19:22:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>Piles-with-stones</title><link>https://lruihao.cn/posts/piles-with-stones/</link><pubDate>Tue, 31 Jul 2018 11:09:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/piles-with-stones/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Codeforces Round #500 (Div. 2)&lt;br&gt;\n题目链接：&lt;a href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles With Stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>在线离线算法</title><link>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</link><pubDate>Thu, 26 Jul 2018 09:57:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"在线算法\"&gt;&lt;span&gt;1 &lt;a href=\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。&lt;/p&gt;</description></item><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>Adjacent Replacements</title><link>https://lruihao.cn/posts/adjacent-replacements/</link><pubDate>Sun, 22 Jul 2018 11:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adjacent-replacements/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;第一次打 cf 就做出一道这样的找规律的题，打到自闭。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin&amp;gt;&amp;gt;n;\n int i;\n int flag=0;\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;){\n cin&amp;gt;&amp;gt;a[i];\n if(!(a[i]&amp;amp;1)) a[i]--;\n if(!flag) {cout&amp;lt;&amp;lt;a[i];flag=1;}\n else cout&amp;lt;&amp;lt;&amp;#34; &amp;#34;&amp;lt;&amp;lt;a[i];\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>杨辉三角</title><link>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</link><pubDate>Sun, 22 Jul 2018 11:41:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百度知道&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n1&lt;/p&gt;\n&lt;p&gt;1 1&lt;/p&gt;\n&lt;p&gt;1 2 1&lt;/p&gt;\n&lt;p&gt;1 3 3 1&lt;/p&gt;\n&lt;p&gt;1 4 6 4 1&lt;/p&gt;\n&lt;p&gt;1 5 10 10 5 1&lt;/p&gt;\n&lt;p&gt;1 6 15 20 15 6 1&lt;/p&gt;\n&lt;hr&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>BFS 求最短路</title><link>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><pubDate>Sun, 22 Jul 2018 11:31:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.&lt;br&gt;\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，&lt;br&gt;\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。&lt;/p&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item><item><title>TaoTao 要吃鸡</title><link>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</link><pubDate>Sun, 22 Jul 2018 10:55:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）&lt;br&gt;\n链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/74/B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;16 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item><item><title>简单背包</title><link>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</link><pubDate>Sat, 16 Jun 2018 13:18:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;code&gt;弱鸡还是弱鸡啊最简单的背包问题——。——！&lt;/code&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;7 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛参赛队员代表发言</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</link><pubDate>Fri, 15 Jun 2018 07:51:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;来自一位大佬的演讲&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;尊敬的领导、教练，亲爱的参赛选手们：&lt;br&gt;\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。&lt;br&gt;\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。&lt;br&gt;\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。&lt;br&gt;\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。&lt;br&gt;\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。&lt;br&gt;\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛总结</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 14 Jun 2018 23:32:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（hdu 复赛）&lt;/p&gt;\n&lt;p&gt;2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。&lt;/p&gt;</description></item><item><title>F.sorting</title><link>https://lruihao.cn/posts/f-sorting/</link><pubDate>Thu, 14 Jun 2018 22:49:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/f-sorting/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"&lt;h2&gt;sorting.png&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>K.2018</title><link>https://lruihao.cn/posts/k-2018/</link><pubDate>Thu, 14 Jun 2018 22:48:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/k-2018/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"k-2018\"&gt;&lt;span&gt;4 K. 2018&lt;/span&gt;\n &lt;a href=\"#k-2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item><item><title>A.Easy h-index</title><link>https://lruihao.cn/posts/a-easy/</link><pubDate>Thu, 14 Jun 2018 22:36:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/a-easy/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"a-easy-h-index\"&gt;&lt;span&gt;4 A. Easy h-index&lt;/span&gt;\n &lt;a href=\"#a-easy-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has published many papers. Given a0,a1,a2,&amp;hellip;,an which means Bobo has published ai papers with&lt;br&gt;\nitations exactly i, ﬁnd the h-index of Bobo.&lt;/p&gt;</description></item><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item><item><title>位运算</title><link>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</link><pubDate>Thu, 14 Jun 2018 20:22:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"1-运算\"&gt;&lt;span&gt;1 1. &amp;amp;运算&lt;/span&gt;\n &lt;a href=\"#1-%e8%bf%90%e7%ae%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&amp;amp;运算通常用于二进制取位操作，例如一个数 &amp;amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。&lt;/p&gt;</description></item><item><title>C++ with STL</title><link>https://lruihao.cn/posts/c-with-stl/</link><pubDate>Thu, 14 Jun 2018 20:22:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-with-stl/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"&gt;&lt;span&gt;25 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）&lt;/span&gt;\n &lt;a href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;交换两元素的值在 C 语言课上作为指针讲解的典例。&lt;/p&gt;\n&lt;p&gt;int a=1,b=2;&lt;/p&gt;</description></item><item><title>各种 Links 汇总与分享</title><link>https://lruihao.cn/posts/links/</link><pubDate>Thu, 07 Jun 2018 00:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/links/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/1 更新&lt;br&gt;\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。&lt;/p&gt;\n&lt;p&gt;我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>戏子春秋</title><link>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</link><pubDate>Sun, 03 Jun 2018 19:41:32 +0800</pubDate><guid>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;从此故乡只有冬夏，再无春秋。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo+github 搭建个人博客及美化</title><link>https://lruihao.cn/posts/hexobuild/</link><pubDate>Fri, 01 Jun 2018 14:34:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexobuild/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://lruihao.cn/categories/hexo/\"&gt;更多关于 hexo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"首先\"&gt;&lt;span&gt;25 首先&lt;/span&gt;\n &lt;a href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：&lt;/p&gt;</description></item><item><title>hexo 添加图片，音乐，链接，视频</title><link>https://lruihao.cn/posts/hexowrite/</link><pubDate>Thu, 31 May 2018 23:19:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexowrite/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如果实在搞得头晕直接去 &lt;a href=\"https://www.jianshu.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简书&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 &lt;a href=\"https://maxiang.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;马克飞象，专为印象笔记打造的 Markdown 编辑器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://www.typora.io/#\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;typora 也是不错的&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，突然发现 &lt;a href=\"https://www.csdn.net/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;csdn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 也支持 Markdown 编译器了&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>猴子与哪吒</title><link>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</link><pubDate>Thu, 31 May 2018 10:09:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;一直觉得中国古代神话&lt;/p&gt;\n&lt;p&gt;能称得上传奇的只有两个人物：&lt;/p&gt;\n&lt;p&gt;一是猴子&lt;/p&gt;\n&lt;p&gt;一是哪吒&lt;/p&gt;\n&lt;p&gt;百世蕴灵育出只石猴 大闹天宫腾云驾雾&lt;/p&gt;\n&lt;p&gt;三年怀胎生了个哪吒 东海屠龙翻江倒海&lt;/p&gt;\n&lt;p&gt;可以说 除了这两人 没人再能当得起离经放纵四个字的&lt;/p&gt;\n&lt;p&gt;但称得上悲剧的 约摸也只有这两个&lt;/p&gt;\n&lt;p&gt;一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空&lt;/p&gt;\n&lt;p&gt;一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://lruihao.cn/posts/hello-world/</link><pubDate>Mon, 28 May 2018 20:01:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hello-world/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，&lt;br&gt;\n其實也不重要了，還望披荊斬棘，不改初心。&lt;/p&gt;\n&lt;p&gt;不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！&lt;/p&gt;\n&lt;p&gt;從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "posts/inversion-1/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>英语语法--部分倒装 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\n\"><meta name=keywords content='English'><meta itemprop=name content=\"英语语法--部分倒装\"><meta itemprop=description content=\"虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\"><meta itemprop=datePublished content=\"2018-12-08T17:52:39+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1388\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"English\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/inversion-1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"英语语法--部分倒装\"><meta property=\"og:description\" content=\"虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-12-08T17:52:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"English\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"英语语法--部分倒装\"><meta name=twitter:description content=\"虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/inversion-1/ title=\"英语语法--部分倒装 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/nextplugin/ title=\"hexo 插件及 next 内置样式集\"><link rel=next type=text/html href=https://lruihao.cn/posts/inversion-2/ title=英语语法--完全倒装><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/inversion-1/index.md title=\"英语语法--部分倒装 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"英语语法--部分倒装\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"English\",\"wordcount\":1388,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-1\\/\",\"datePublished\":\"2018-12-08T17:52:39+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/inversion-1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>英语语法--部分倒装</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>英语语法--部分倒装</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-12-08 17:52:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-12-08>2018-12-08</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1388 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=英语语法--部分倒装><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#xx-也如此xx-也一样>xx 也如此，xx 也一样</a></li><li><a href=#否定副词或含有否定的介词短位于句首>否定副词或含有否定的介词短位于句首</a></li><li><a href=#only--状语位于句首>only + 状语位于句首</a></li><li><a href=#sosuchthat-句型位于句首>So/Such&mldr;that&mldr; 句型位于句首</a></li><li><a href=#as-引导让步狀语从句>as 引导让步狀语从句</a></li><li><a href=#把虚拟语气从句中的-werehadshould-提至句首并省略-if>把虚拟语气从句中的 were,had,should 提至句首，并省略 if</a></li><li><a href=#表肯定含义的时间频率词位于句首>表肯定含义的时间频率词位于句首</a></li><li><a href=#疑问句用部分倒装>疑问句用部分倒装</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。<strong>以下内容纯手打！！</strong>\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。</p></blockquote><blockquote><p><strong>部分倒装：把谓语动词的一部分（<code>助动词，be 动词，情态动词</code>）提到主语前面。</strong></p></blockquote><h3 class=heading-element id=xx-也如此xx-也一样><span>0.1 xx 也如此，xx 也一样</span>\n<a href=#xx-%e4%b9%9f%e5%a6%82%e6%ad%a4xx-%e4%b9%9f%e4%b8%80%e6%a0%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>表示前面的内容也适用于后者，用<code>\"so/nor/neither + 动词 + 主语\"</code>句型。表<code>“xx 也如此，xx 也一样”</code>。可用<code>,</code>、<code>;</code>、<code>and</code>隔开（注意情形）。</p><p><strong>例句</strong></p><ol><li>They love having lots of friends<code>,</code> <code>so do</code>the disabled.（这里<code>the + 形容词</code>表一类人）</li><li>I have had a new idea<code>;</code> <code>so has</code>my friends.</li><li>Lily <u>can&rsquo;t</u> ride bicycle<code>,</code> <code>nor/neither can</code>lucy.</li><li>The injured look <u>disappointed（沮丧的）</u><code>,</code> <code>so did</code>senior citizens.（老人） （否定前缀词 ≠ 否定）</li><li>If you <u>aren&rsquo;t</u> for the plan<code>;</code> <code>nor/neither will</code>I.<br><strong>,</strong> 或 <strong>;</strong> 前的句子若为从句，先将主句补充出，其后再根据主句改。<br>这里主句应为：I will not be for the plan.(be for 同意）</li><li>It is burning（燃烧）hot today<code>,</code> so it is（那确实） <code>and/; so was (it)</code>yesterday.（这里只用用 and 或；)</li><li>Everyone is here and looks upset<code>,</code> <code>so it is with Mary = it is the same with</code>Mary.<br>这个句型同样适用于前面的六个例子，但是前面是并列句必须用这个句型。</li><li>The truth is that no one is perfect.When all potential（潜在的）for ugliness in removed<code>,</code> so is all of the potential for beauty.</li></ol><h3 class=heading-element id=否定副词或含有否定的介词短位于句首><span>0.2 否定副词或含有否定的介词短位于句首</span>\n<a href=#%e5%90%a6%e5%ae%9a%e5%89%af%e8%af%8d%e6%88%96%e5%90%ab%e6%9c%89%e5%90%a6%e5%ae%9a%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li><u>Neither</u> <code>does Mr.Green</code> know the matter（事件） <u>nor</u> <code>does he</code> care about it.<br>neither……nor…… 既不也不 either……or……要么要么，不是就是</li><li><u>Not only</u> <code>did we</code> lose our way <u>but also</u> (we) came close to losing our lives.(come close to 接近，差一点就）</li><li><u>Not until</u> I began to work hard <code>did I</code> realize how much time I had wasted.<br>从句不倒装，原句为：<br>I didn&rsquo;t realize how much time I had wasted until I began to work hard.</li><li><u>No sooner</u> <code>had they</code> arrived at the tomb <u>than</u> they fell ill.（一……就……)</li><li><u>In no case</u> <code>will we</code> give up half-way.</li><li><u>Hardly</u> <code>does Jim</code> think it possible to finish the task <u>before/when</u> dark.<br>hardly&mldr;before/when 一……就……   这里取\"几乎不\"释义应该更合适。</li><li><u>Not a (single)</u> mistake <code>has Mary</code> made so far.（玛丽到目前为止一个错误也没犯。)<br>not a (single) + 单数名词 表示“一个也没有”%}</li><li><u>In no time（立刻马上）</u> Jone worked out the figure（体积）. （无否定不倒装）</li></ol><h3 class=heading-element id=only--状语位于句首><span>0.3 only + 状语位于句首</span>\n<a href=#only--%e7%8a%b6%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li><u>Only in this way</u> <code>are you</code> able to do it well.<br>倒装前：<br>You are able to do it well only in this way.</li><li><u>Only when they returned home</u> <code>did they</code> understand what had happened.</li><li><u>Only on such a trip</u> <code>will you</code> gain a better appreciation（理解）of Eurepean literature.</li><li><u>Only the teacher</u> got the news that our school could have <u>a 4-day holiday.</u>（同位语从句，only+主语所以不倒装）</li></ol><h3 class=heading-element id=sosuchthat-句型位于句首><span>0.4 So/Such&mldr;that&mldr; 句型位于句首</span>\n<a href=#sosuchthat-%e5%8f%a5%e5%9e%8b%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>So + adj + a/an + 单数名词 = Such + a/an + adj + 单数名词 <code>如此 ... 以至于 ...</code>\nso 侧重于 adj/adv such 侧重于 n.\n比如，so many/much/few/little</p></blockquote><p><strong>例句</strong></p><ol><li><u>So crowded</u> <code>was the art gallery（展览会）</code> <u>that</u> I couldn&rsquo;t move about (it).</li><li><u>Such good weather</u> <code>was it</code> <u>that</u> we all went out last week.</li><li>Such a lovely girl <code>is kate</code> that everyone likes her.</li><li>So loudly <code>did he</code> speak that even people next room could hear him.</li></ol><h3 class=heading-element id=as-引导让步狀语从句><span>0.5 as 引导让步狀语从句</span>\n<a href=#as-%e5%bc%95%e5%af%bc%e8%ae%a9%e6%ad%a5%e7%8b%80%e8%af%ad%e4%bb%8e%e5%8f%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>as 引导让步状语从句（虽然，即使，尽管，无论），把<code>从句</code>中的<code>表语，动词，副词</code>提至句首 (as 后不用再倒装了），当表语是名词时，提至句首时一律用零冠词（其中 as 可用 though 替代，倒装后省略 but,though,however,even,though,although 等）</p></blockquote><p><strong>例句</strong></p><ol><li>Child <u>as</u> he is,he knows a lot.</li><li>Poor as King was,he tried his best to help others.</li><li>Try as he may,he has never made his boss satisfied.</li><li>Search as you would,you could find no body in the room.</li><li>Much as I want to buy the car,I can&rsquo;t afford（支付）it.</li></ol><h3 class=heading-element id=把虚拟语气从句中的-werehadshould-提至句首并省略-if><span>0.6 把虚拟语气从句中的 were,had,should 提至句首，并省略 if</span>\n<a href=#%e6%8a%8a%e8%99%9a%e6%8b%9f%e8%af%ad%e6%b0%94%e4%bb%8e%e5%8f%a5%e4%b8%ad%e7%9a%84-werehadshould-%e6%8f%90%e8%87%b3%e5%8f%a5%e9%a6%96%e5%b9%b6%e7%9c%81%e7%95%a5-if class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li><u>Had</u> you followwed my advice,you couldn&rsquo;t have made such a silly mistake.</li><li><u>Were</u> you not a boy,you could wear a dress.</li><li><u>Should</u> he invite me,I might take part in this party.</li></ol><h3 class=heading-element id=表肯定含义的时间频率词位于句首><span>0.7 表肯定含义的时间频率词位于句首</span>\n<a href=#%e8%a1%a8%e8%82%af%e5%ae%9a%e5%90%ab%e4%b9%89%e7%9a%84%e6%97%b6%e9%97%b4%e9%a2%91%e7%8e%87%e8%af%8d%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>always,often,many a time(many times 多次）,every + 时间，now and then（时不时的）</p></blockquote><p><strong>例句</strong></p><ol><li><u>Many a time</u> <code>has he</code> offered me some good suggestions.</li><li><u>Now and then</u> <code>does my class teacher</code> warn us not yo use cellphones in the classroom.</li></ol><h3 class=heading-element id=疑问句用部分倒装><span>0.8 疑问句用部分倒装</span>\n<a href=#%e7%96%91%e9%97%ae%e5%8f%a5%e7%94%a8%e9%83%a8%e5%88%86%e5%80%92%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>普通的疑问句：<br>How do you do that?<br>除了：<br>What is wrong? = What is the matter?<br>&mldr;</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/inversion-1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-1.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/inversion-1.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E9%83%A8%E5%88%86%E5%80%92%E8%A3%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E9%83%A8%E5%88%86%E5%80%92%E8%A3%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/inversion-1/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-1.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/inversion-1/ data-title=英语语法--部分倒装 data-hashtags=English><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/inversion-1/ data-hashtag=English><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/inversion-1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/inversion-1/ data-title=英语语法--部分倒装 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/inversion-1/ data-title=英语语法--部分倒装><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag title=\"标签 - English\">English</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/nextplugin/ class=post-nav-item rel=prev title=\"Hexo 插件及 Next 内置样式集\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo 插件及 Next 内置样式集</a><a href=/posts/inversion-2/ class=post-nav-item rel=next title=英语语法--完全倒装>英语语法--完全倒装<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#xx-也如此xx-也一样>xx 也如此，xx 也一样</a></li><li><a href=#否定副词或含有否定的介词短位于句首>否定副词或含有否定的介词短位于句首</a></li><li><a href=#only--状语位于句首>only + 状语位于句首</a></li><li><a href=#sosuchthat-句型位于句首>So/Such&mldr;that&mldr; 句型位于句首</a></li><li><a href=#as-引导让步狀语从句>as 引导让步狀语从句</a></li><li><a href=#把虚拟语气从句中的-werehadshould-提至句首并省略-if>把虚拟语气从句中的 were,had,should 提至句首，并省略 if</a></li><li><a href=#表肯定含义的时间频率词位于句首>表肯定含义的时间频率词位于句首</a></li><li><a href=#疑问句用部分倒装>疑问句用部分倒装</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ec41ccbb04cee550014cf8e576f76619.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ec41ccbb04cee550014cf8e576f76619.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/inversion-1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/inversion-1/index.md",
    "content": "# 英语语法--部分倒装\n\n\n> 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。**以下内容纯手打！！**\n> 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\n\n<!--more-->\n\n> **部分倒装：把谓语动词的一部分（`助动词，be 动词，情态动词`）提到主语前面。**\n\n### xx 也如此，xx 也一样\n\n表示前面的内容也适用于后者，用`\"so/nor/neither + 动词 + 主语\"`句型。表`“xx 也如此，xx 也一样”`。可用`,`、`;`、`and`隔开（注意情形）。\n\n**例句**\n\n1. They love having lots of friends`,` `so do`the disabled.（这里`the + 形容词`表一类人）\n2. I have had a new idea`;` `so has`my friends.\n3. Lily <u>can't</u> ride bicycle`,` `nor/neither can`lucy.\n4. The injured look <u>disappointed（沮丧的）</u>`,` `so did`senior citizens.（老人） （否定前缀词 ≠ 否定）\n5. If you <u>aren't</u> for the plan`;` `nor/neither will`I.<br>\n   **,** 或 **;** 前的句子若为从句，先将主句补充出，其后再根据主句改。<br>这里主句应为：I will not be for the plan.(be for 同意）\n6. It is burning（燃烧）hot today`,` so it is（那确实） `and/; so was (it)`yesterday.（这里只用用 and 或；)\n7. Everyone is here and looks upset`,` `so it is with Mary = it is the same with`Mary.<br>\n   这个句型同样适用于前面的六个例子，但是前面是并列句必须用这个句型。\n8. The truth is that no one is perfect.When all potential（潜在的）for ugliness in removed`,` so is all of the potential for beauty.\n\n### 否定副词或含有否定的介词短位于句首\n\n**例句**\n\n1. <u>Neither</u> `does Mr.Green` know the matter（事件） <u>nor</u> `does he` care about it.<br>\n   neither……nor…… 既不也不&emsp;either……or……要么要么，不是就是\n2. <u>Not only</u> `did we` lose our way <u>but also</u> (we) came close to losing our lives.(come close to 接近，差一点就）\n3. <u>Not until</u> I began to work hard `did I` realize how much time I had wasted.<br>\n   从句不倒装，原句为：<br>I didn't realize how much time I had wasted until I began to work hard.\n4. <u>No sooner</u> `had they` arrived at the tomb <u>than</u> they fell ill.（一……就……)\n5. <u>In no case</u> `will we` give up half-way.\n6. <u>Hardly</u> `does Jim` think it possible to finish the task <u>before/when</u> dark.<br>\n   hardly...before/when 一……就…… &emsp; 这里取\"几乎不\"释义应该更合适。\n7. <u>Not a (single)</u> mistake `has Mary` made so far.（玛丽到目前为止一个错误也没犯。)<br>\n   not a (single) + 单数名词 表示“一个也没有”%}\n8. <u>In no time（立刻马上）</u> Jone worked out the figure（体积）. （无否定不倒装）\n\n### only + 状语位于句首\n\n**例句**\n\n1. <u>Only in this way</u> `are you` able to do it well.<br>\n   倒装前：<br>You are able to do it well only in this way.\n2. <u>Only when they returned home</u> `did they` understand what had happened.\n3. <u>Only on such a trip</u> `will you` gain a better appreciation（理解）of Eurepean literature.\n4. <u>Only the teacher</u> got the news that our school could have <u>a 4-day holiday.</u>（同位语从句，only+主语所以不倒装）\n\n### So/Such...that... 句型位于句首\n\n> So + adj + a/an + 单数名词 = Such + a/an + adj + 单数名词 `如此 ... 以至于 ...`\n> so 侧重于 adj/adv&emsp;such 侧重于 n.\n> 比如，so many/much/few/little\n\n**例句**\n\n1. <u>So crowded</u> `was the art gallery（展览会）` <u>that</u> I couldn't move about (it).\n2. <u>Such good weather</u> `was it` <u>that</u> we all went out last week.\n3. Such a lovely girl `is kate` that everyone likes her.\n4. So loudly `did he` speak that even people next room could hear him.\n\n### as 引导让步狀语从句\n\n> as 引导让步状语从句（虽然，即使，尽管，无论），把`从句`中的`表语，动词，副词`提至句首 (as 后不用再倒装了），当表语是名词时，提至句首时一律用零冠词（其中 as 可用 though 替代，倒装后省略 but,though,however,even,though,although 等）\n\n**例句**\n\n1. Child <u>as</u> he is,he knows a lot.\n2. Poor as King was,he tried his best to help others.\n3. Try as he may,he has never made his boss satisfied.\n4. Search as you would,you could find no body in the room.\n5. Much as I want to buy the car,I can't afford（支付）it.\n\n### 把虚拟语气从句中的 were,had,should 提至句首，并省略 if\n\n**例句**\n\n1. <u>Had</u> you followwed my advice,you couldn't have made such a silly mistake.\n2. <u>Were</u> you not a boy,you could wear a dress.\n3. <u>Should</u> he invite me,I might take part in this party.\n\n### 表肯定含义的时间频率词位于句首\n\n> always,often,many a time(many times 多次）,every + 时间，now and then（时不时的）\n\n**例句**\n\n1. <u>Many a time</u> `has he` offered me some good suggestions.\n2. <u>Now and then</u> `does my class teacher` warn us not yo use cellphones in the classroom.\n\n### 疑问句用部分倒装\n\n普通的疑问句：  \nHow do you do that?  \n除了：  \nWhat is wrong? = What is the matter?  \n...\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/inversion-1/  \n\n"
  },
  {
    "path": "posts/inversion-2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>英语语法--完全倒装 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 完全倒装：把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\n\"><meta name=keywords content='English'><meta itemprop=name content=\"英语语法--完全倒装\"><meta itemprop=description content=\"完全倒装：把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\"><meta itemprop=datePublished content=\"2018-12-10T21:14:51+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"257\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"English\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/inversion-2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"英语语法--完全倒装\"><meta property=\"og:description\" content=\"完全倒装：把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-12-10T21:14:51+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"English\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"英语语法--完全倒装\"><meta name=twitter:description content=\"完全倒装：把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/inversion-2/ title=\"英语语法--完全倒装 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/inversion-1/ title=英语语法--部分倒装><link rel=next type=text/html href=https://lruihao.cn/posts/inversion-3/ title=英语语法--形式倒装><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/inversion-2/index.md title=\"英语语法--完全倒装 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"英语语法--完全倒装\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-2\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"English\",\"wordcount\":257,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-2\\/\",\"datePublished\":\"2018-12-10T21:14:51+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/inversion-2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>英语语法--完全倒装</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>英语语法--完全倒装</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-12-10 21:14:51\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-12-10>2018-12-10</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"257 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=英语语法--完全倒装><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#表方位或时间的副词-adv表地点的介词短语位于句首时>表方位或时间的副词 (adv)、表地点的介词短语位于句首时</a></li><li><a href=#表语词短语位于句首时adjdoingdone>表语（词/短语）位于句首时，adj/doing/done</a></li><li><a href=#存在句-there-be-中其中-be--existarisefollowenterappearlive-等表状态-vi>存在句 there be 中，其中 be ->exist/arise/follow/enter/appear/live 等表状态 vi</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>完全倒装：把整个谓语动词放到主语前。</p></blockquote><h3 class=heading-element id=表方位或时间的副词-adv表地点的介词短语位于句首时><span>0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时</span>\n<a href=#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>Here comes the bus.</li><li>In the lecture hall of a university sits a professor.</li><li>Out rushed the children.</li><li>Now comes your turn.</li><li>Up jumped the cat and caught the mouse.</li><li><u>Down</u> came the rain and <u>up</u> went the umbrellas.</li><li>Among the people stood his friend,Jim.</li><li>(To be) South of the river lies a small factory.</li></ol><p>但主语为表示人称的代词时无需倒装</p><ol start=9><li>Here are you.    Away it flew.</li></ol><h3 class=heading-element id=表语词短语位于句首时adjdoingdone><span>0.2 表语（词/短语）位于句首时，adj/doing/done</span>\n<a href=#%e8%a1%a8%e8%af%ad%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6adjdoingdone class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>Written on the blackboard are the name of these who were late.</li><li>Gone are the days when we worked together.</li><li>Standing at the tree is a shy girl with two big eges.</li><li>Present(adj) at the conference were all leaders of this city.</li><li>Lying on the grassland is the boy who was injured in the fire.</li></ol><h3 class=heading-element id=存在句-there-be-中其中-be--existarisefollowenterappearlive-等表状态-vi><span>0.3 存在句 there be 中，其中 be ->exist/arise/follow/enter/appear/live 等表状态 vi</span>\n<a href=#%e5%ad%98%e5%9c%a8%e5%8f%a5-there-be-%e4%b8%ad%e5%85%b6%e4%b8%ad-be--existarisefollowenterappearlive-%e7%ad%89%e8%a1%a8%e7%8a%b6%e6%80%81-vi class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>There come shows for help from the river.</li><li>There seems something wrong with machine.</li><li>There remains nothing to be done.</li><li>There happened an event last week.</li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/inversion-2/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-2.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/inversion-2.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E5%AE%8C%E5%85%A8%E5%80%92%E8%A3%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E5%AE%8C%E5%85%A8%E5%80%92%E8%A3%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/inversion-2/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-2.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/inversion-2/ data-title=英语语法--完全倒装 data-hashtags=English><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/inversion-2/ data-hashtag=English><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/inversion-2/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/inversion-2/ data-title=英语语法--完全倒装 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/inversion-2/ data-title=英语语法--完全倒装><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag title=\"标签 - English\">English</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/inversion-1/ class=post-nav-item rel=prev title=英语语法--部分倒装><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>英语语法--部分倒装</a><a href=/posts/inversion-3/ class=post-nav-item rel=next title=英语语法--形式倒装>英语语法--形式倒装<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#表方位或时间的副词-adv表地点的介词短语位于句首时>表方位或时间的副词 (adv)、表地点的介词短语位于句首时</a></li><li><a href=#表语词短语位于句首时adjdoingdone>表语（词/短语）位于句首时，adj/doing/done</a></li><li><a href=#存在句-there-be-中其中-be--existarisefollowenterappearlive-等表状态-vi>存在句 there be 中，其中 be ->exist/arise/follow/enter/appear/live 等表状态 vi</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/939cc2608b36b67d5c2fe1b6dc8ea54b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/939cc2608b36b67d5c2fe1b6dc8ea54b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/inversion-2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/inversion-2/index.md",
    "content": "# 英语语法--完全倒装\n\n\n> 完全倒装：把整个谓语动词放到主语前。\n\n### 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\n\n**例句**\n\n1. Here comes the bus.\n2. In the lecture hall of a university sits a professor.\n3. Out rushed the children.\n4. Now comes your turn.\n5. Up jumped the cat and caught the mouse.\n6. <u>Down</u> came the rain and <u>up</u> went the umbrellas.\n7. Among the people stood his friend,Jim.\n8. (To be) South of the river lies a small factory.\n\n但主语为表示人称的代词时无需倒装\n\n9. Here are you.&emsp;&emsp;&emsp;&emsp;Away it flew.\n\n### 表语（词/短语）位于句首时，adj/doing/done\n\n**例句**\n\n1. Written on the blackboard are the name of these who were late.\n2. Gone are the days when we worked together.\n3. Standing at the tree is a shy girl with two big eges.\n4. Present(adj) at the conference were all leaders of this city.\n5. Lying on the grassland is the boy who was injured in the fire.\n\n### 存在句 there be 中，其中 be \\->exist/arise/follow/enter/appear/live 等表状态 vi\n\n**例句**\n\n1. There come shows for help from the river.\n2. There seems something wrong with machine.\n3. There remains nothing to be done.\n4. There happened an event last week.\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/inversion-2/  \n\n"
  },
  {
    "path": "posts/inversion-3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>英语语法--形式倒装 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 形式倒装，句子本不是本来的语序。\n0.1 may 位于句首，标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\n\"><meta name=keywords content='English'><meta itemprop=name content=\"英语语法--形式倒装\"><meta itemprop=description content=\"形式倒装，句子本不是本来的语序。\n0.1 may 位于句首，标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\"><meta itemprop=datePublished content=\"2018-12-10T21:52:30+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"237\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"English\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/inversion-3/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"英语语法--形式倒装\"><meta property=\"og:description\" content=\"形式倒装，句子本不是本来的语序。\n0.1 may 位于句首，标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-12-10T21:52:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"English\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"英语语法--形式倒装\"><meta name=twitter:description content=\"形式倒装，句子本不是本来的语序。\n0.1 may 位于句首，标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/inversion-3/ title=\"英语语法--形式倒装 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/inversion-2/ title=英语语法--完全倒装><link rel=next type=text/html href=https://lruihao.cn/years/2018/ title=\"2018 年度总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/inversion-3/index.md title=\"英语语法--形式倒装 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"英语语法--形式倒装\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-3\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"English\",\"wordcount\":237,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/inversion-3\\/\",\"datePublished\":\"2018-12-10T21:52:30+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/inversion-3/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>英语语法--形式倒装</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>英语语法--形式倒装</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-12-10 21:52:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-12-10>2018-12-10</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"237 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=英语语法--形式倒装><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#may-位于句首标祝愿>may 位于句首，标祝愿</a></li><li><a href=#whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前>whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前</a></li><li><a href=#the--比较级the--比较级---越--越->the + 比较级，the + 比较级 -->“越 &mldr; 越 &mldr;”</a></li><li><a href=#感叹句>感叹句</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>形式倒装，句子本不是本来的语序。</p></blockquote><h3 class=heading-element id=may-位于句首标祝愿><span>0.1 may 位于句首，标祝愿</span>\n<a href=#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>May you succeed.</li><li>May you have a happy holiday.</li><li>Long live chairman Mao.（毛主席万古长青）</li></ol><h3 class=heading-element id=whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前><span>0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前</span>\n<a href=#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>Whatever the weather is,he sticks out（坚持）walking outside.</li><li>Go to stamp sales and buy whatever you can offord.</li><li>Whatever reasons you have,you should carry out your promise.</li><li>However <u>many difficulties(n.)</u> you meet with,you should try to overcome them.\nWhatever <u>difficulties(n.)</u> you meet with,you should try to overcome them.\nHowever <u>difficult(adj.)</u> the problem is,we must work it out today.</li></ol><h3 class=heading-element id=the--比较级the--比较级---越--越-><span>0.3 the + 比较级，the + 比较级 -->“越 &mldr; 越 &mldr;”</span>\n<a href=#the--%e6%af%94%e8%be%83%e7%ba%a7the--%e6%af%94%e8%be%83%e7%ba%a7---%e8%b6%8a--%e8%b6%8a- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>The hander you study,the greater progress you will make.</li><li>The more you listen to English,the easier it becomes.</li><li>The older you grow,the more challenges you will meet.</li></ol><h3 class=heading-element id=感叹句><span>0.4 感叹句</span>\n<a href=#%e6%84%9f%e5%8f%b9%e5%8f%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>例句</strong></p><ol><li>What an interesting talk they had!</li><li>How interesting the talk was!</li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/inversion-3/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-3.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/inversion-3.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E5%BD%A2%E5%BC%8F%E5%80%92%E8%A3%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E5%BD%A2%E5%BC%8F%E5%80%92%E8%A3%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/inversion-3/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/inversion-3.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/inversion-3/ data-title=英语语法--形式倒装 data-hashtags=English><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/inversion-3/ data-hashtag=English><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/inversion-3/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/inversion-3/ data-title=英语语法--形式倒装 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/inversion-3/ data-title=英语语法--形式倒装><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag title=\"标签 - English\">English</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/inversion-2/ class=post-nav-item rel=prev title=英语语法--完全倒装><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>英语语法--完全倒装</a><a href=/years/2018/ class=post-nav-item rel=next title=\"2018 年度总结\">2018 年度总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#may-位于句首标祝愿>may 位于句首，标祝愿</a></li><li><a href=#whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前>whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前</a></li><li><a href=#the--比较级the--比较级---越--越->the + 比较级，the + 比较级 -->“越 &mldr; 越 &mldr;”</a></li><li><a href=#感叹句>感叹句</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/9f7c53c593cacb46be354f01f9719e15.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/9f7c53c593cacb46be354f01f9719e15.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/inversion-3/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/inversion-3/index.md",
    "content": "# 英语语法--形式倒装\n\n\n> 形式倒装，句子本不是本来的语序。\n\n### may 位于句首，标祝愿\n\n**例句**\n\n1. May you succeed.\n2. May you have a happy holiday.\n3. Long live chairman Mao.（毛主席万古长青）\n\n### whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前\n\n**例句**\n\n1. Whatever the weather is,he sticks out（坚持）walking outside.\n2. Go to stamp sales and buy whatever you can offord.\n3. Whatever reasons you have,you should carry out your promise.\n4. However <u>many difficulties(n.)</u> you meet with,you should try to overcome them.\n   Whatever <u>difficulties(n.)</u> you meet with,you should try to overcome them.\n   However <u>difficult(adj.)</u> the problem is,we must work it out today.\n\n### the + 比较级，the + 比较级 \\-\\->“越 ... 越 ...”\n\n**例句**\n\n1. The hander you study,the greater progress you will make.\n2. The more you listen to English,the easier it becomes.\n3. The older you grow,the more challenges you will meet.\n\n### 感叹句\n\n**例句**\n\n1. What an interesting talk they had!\n2. How interesting the talk was!\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/inversion-3/  \n\n"
  },
  {
    "path": "posts/java-arrays/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Arrays 类及基本使用 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \"><meta name=keywords content='Java,Collator,Comparator'><meta itemprop=name content=\"Arrays 类及基本使用\"><meta itemprop=description content=\"1 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a)\"><meta itemprop=datePublished content=\"2019-01-18T13:13:10+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"850\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java,Collator,Comparator\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/java-arrays/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Arrays 类及基本使用\"><meta property=\"og:description\" content=\"1 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a)\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-18T13:13:10+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"article:tag\" content=\"Collator\"><meta property=\"article:tag\" content=\"Comparator\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Arrays 类及基本使用\"><meta name=twitter:description content=\"1 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a)\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/java-arrays/ title=\"Arrays 类及基本使用 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/recent-posts/ title=在搜索、文章底部、侧栏添加最近文章模块><link rel=next type=text/html href=https://lruihao.cn/posts/cos-hexo/ title=\"利用腾讯云对象存储 COS 桶托管 hexo 博客\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/java-arrays/index.md title=\"Arrays 类及基本使用 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Arrays 类及基本使用\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/java-arrays\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java, Collator, Comparator\",\"wordcount\":850,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/java-arrays\\/\",\"datePublished\":\"2019-01-18T13:13:10+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/java-arrays/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Arrays 类及基本使用</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Arrays 类及基本使用</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-18 13:13:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-18>2019-01-18</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"850 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Arrays 类及基本使用\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#主要方法>主要方法</a></li><li><a href=#实例代码>实例代码</a></li><li><a href=#程序运行结果>程序运行结果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=主要方法><span>1 主要方法</span>\n<a href=#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>static type[] copyof(type[] original,int length)</li><li>static int binarysearch(type[] a,type key)</li><li>static boolean equals(type[] a,type[] b)</li><li>static void fill(type[] a,type val)</li><li>static void fill(type[] a,int fromindex,int toindex,type val)</li><li>static void sort(type[] a)</li></ul><h2 class=heading-element id=实例代码><span>2 实例代码</span>\n<a href=#%e5%ae%9e%e4%be%8b%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>Arrays</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.text.Collator</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Arrays</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Comparator</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>ArraysDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>agrs</span><span class=o>[]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Integer</span><span class=w> </span><span class=n>arr</span><span class=o>[]=</span><span class=k>new</span><span class=w> </span><span class=n>Integer</span><span class=o>[</span><span class=n>9</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>9</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>arr</span><span class=o>[</span><span class=n>i</span><span class=o>]=</span><span class=p>(</span><span class=kt>int</span><span class=p>)(</span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>()</span><span class=o>*</span><span class=n>100</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//显示，排序数组</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;原内容：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>display</span><span class=p>(</span><span class=n>arr</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Arrays</span><span class=p>.</span><span class=na>sort</span><span class=p>(</span><span class=n>arr</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;排序后：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>display</span><span class=p>(</span><span class=n>arr</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//将值 -1 分配给数组 arr 中下标从 0 到 3-1 的位置</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Arrays</span><span class=p>.</span><span class=na>fill</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=w> </span><span class=n>0</span><span class=p>,</span><span class=n>3</span><span class=p>,</span><span class=o>-</span><span class=n>1</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;fill() 后：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>display</span><span class=p>(</span><span class=n>arr</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//搜索 23</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;值 23 的位置：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>index</span><span class=w> </span><span class=o>=</span><span class=n>Arrays</span><span class=p>.</span><span class=na>binarySearch</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=w> </span><span class=n>23</span><span class=p>);</span><span class=c1>//二分查找</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>index</span><span class=p>);</span><span class=c1>//如果查找不到，index 为负</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;\\n 插入 0 在 3 号位置：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Arrays</span><span class=p>.</span><span class=na>fill</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=n>3</span><span class=p>,</span><span class=n>4</span><span class=p>,</span><span class=n>0</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>display</span><span class=p>(</span><span class=n>arr</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;值 0 的位置：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>index</span><span class=w> </span><span class=o>=</span><span class=n>Arrays</span><span class=p>.</span><span class=na>binarySearch</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=w> </span><span class=n>0</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>index</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Integer</span><span class=w> </span><span class=n>arr2</span><span class=o>[]=</span><span class=k>new</span><span class=w> </span><span class=n>Integer</span><span class=o>[</span><span class=n>8</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>arr2</span><span class=o>=</span><span class=n>Arrays</span><span class=p>.</span><span class=na>copyOf</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=w> </span><span class=n>arr2</span><span class=p>.</span><span class=na>length</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//复制 8 个</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;\\n 复制后的数组：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>display</span><span class=p>(</span><span class=n>arr2</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>Arrays</span><span class=p>.</span><span class=na>equals</span><span class=p>(</span><span class=n>arr</span><span class=p>,</span><span class=w> </span><span class=n>arr2</span><span class=p>))</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;两数组相同！&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>else</span><span class=w> </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;两数组不相同！&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;----------------------------------------&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>str</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&#34;计算机&#34;</span><span class=p>,</span><span class=s>&#34;黄桑&#34;</span><span class=p>,</span><span class=s>&#34;通信&#34;</span><span class=p>,</span><span class=s>&#34;李瑞豪&#34;</span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Arrays</span><span class=p>.</span><span class=na>sort</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>str</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>str</span><span class=o>[</span><span class=n>i</span><span class=o>]+</span><span class=s>&#34; &#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//Collator 类是用来执行分语言环境的字符串比较，这里用的 CHINA</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Comparator</span><span class=w> </span><span class=n>com</span><span class=o>=</span><span class=n>Collator</span><span class=p>.</span><span class=na>getInstance</span><span class=p>(</span><span class=n>java</span><span class=p>.</span><span class=na>util</span><span class=p>.</span><span class=na>Locale</span><span class=p>.</span><span class=na>CHINA</span><span class=p>);</span><span class=c1>//获取 Comparator 对象，参数表示按中文排序</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//根据指定的 &#34;比较器&#34; 产生的顺序对 &#34;指定对象数组&#34; 进行排序</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Arrays</span><span class=p>.</span><span class=na>sort</span><span class=p>(</span><span class=n>str</span><span class=p>,</span><span class=n>com</span><span class=p>);</span><span class=c1>//sort(T[] a,Comparator&lt;?super T&gt;c)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>str</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>str</span><span class=o>[</span><span class=n>i</span><span class=o>]+</span><span class=s>&#34; &#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>display</span><span class=p>(</span><span class=n>Integer</span><span class=w> </span><span class=n>arr</span><span class=o>[]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>i</span><span class=o>]+</span><span class=s>&#34; &#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=程序运行结果><span>3 程序运行结果</span>\n<a href=#%e7%a8%8b%e5%ba%8f%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>原内容：41 0 44 96 49 96 30 6 87\n</span></span><span class=line><span class=cl>排序后：0 6 30 41 44 49 87 96 96\n</span></span><span class=line><span class=cl>fill() 后：-1 -1 -1 41 44 49 87 96 96\n</span></span><span class=line><span class=cl>值 23 的位置：-4\n</span></span><span class=line><span class=cl>插入 0 在 3 号位置：-1 -1 -1 0 44 49 87 96 96\n</span></span><span class=line><span class=cl>值 0 的位置：3\n</span></span><span class=line><span class=cl>复制后的数组：-1 -1 -1 0 44 49 87 96\n</span></span><span class=line><span class=cl>两数组不相同！\n</span></span><span class=line><span class=cl>----------------------------------------\n</span></span><span class=line><span class=cl>李瑞豪 计算机 通信 黄桑\n</span></span><span class=line><span class=cl>黄桑 计算机 李瑞豪 通信</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/java-arrays/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-arrays.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/java-arrays.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Arrays+%E7%B1%BB%E5%8F%8A%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cArrays+%E7%B1%BB%E5%8F%8A%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/java-arrays/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-arrays.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/java-arrays/ data-title=\"Arrays 类及基本使用\" data-hashtags=Java,Collator,Comparator><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/java-arrays/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/java-arrays/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/java-arrays/ data-title=\"Arrays 类及基本使用\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/java-arrays/ data-title=\"Arrays 类及基本使用\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a><a href=/tags/collator/ class=post-tag title=\"标签 - Collator\">Collator</a><a href=/tags/comparator/ class=post-tag title=\"标签 - Comparator\">Comparator</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/recent-posts/ class=post-nav-item rel=prev title=在搜索、文章底部、侧栏添加最近文章模块><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>在搜索、文章底部、侧栏添加最近文章模块</a><a href=/posts/cos-hexo/ class=post-nav-item rel=next title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\">利用腾讯云对象存储 COS 桶托管 Hexo 博客<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#主要方法>主要方法</a></li><li><a href=#实例代码>实例代码</a></li><li><a href=#程序运行结果>程序运行结果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e61ca88883d625f967c831c9a433599c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e61ca88883d625f967c831c9a433599c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/java-arrays/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/java-arrays/index.md",
    "content": "# Arrays 类及基本使用\n\n\n## 主要方法\n\n- static type[] copyof(type[] original,int length)\n- static int binarysearch(type[] a,type key)\n- static boolean equals(type[] a,type[] b)\n- static void fill(type[] a,type val)\n- static void fill(type[] a,int fromindex,int toindex,type val)\n- static void sort(type[] a)\n\n<!--more-->\n\n## 实例代码\n\n```java\npackage Arrays;\n\nimport java.text.Collator;\nimport java.util.Arrays;\nimport java.util.Comparator;\n\npublic class ArraysDemo {\n  public static void main(String agrs[]) {\n    Integer arr[]=new Integer[9];\n    for(int i=0;i<9;i++)\n      arr[i]=(int)(Math.random()*100);\n    //显示，排序数组\n    System.out.print(\"原内容：\");\n    display(arr);\n    Arrays.sort(arr);\n    System.out.print(\"排序后：\");\n    display(arr);\n    //将值 -1 分配给数组 arr 中下标从 0 到 3-1 的位置\n    Arrays.fill(arr, 0,3,-1);\n    System.out.print(\"fill() 后：\");\n    display(arr);\n    //搜索 23\n    System.out.print(\"值 23 的位置：\");\n    int index =Arrays.binarySearch(arr, 23);//二分查找\n    System.out.print(index);//如果查找不到，index 为负\n    System.out.print(\"\\n 插入 0 在 3 号位置：\");\n    Arrays.fill(arr,3,4,0);\n    display(arr);\n    System.out.print(\"值 0 的位置：\");\n    index =Arrays.binarySearch(arr, 0);\n    System.out.print(index);\n    Integer arr2[]=new Integer[8];\n    arr2=Arrays.copyOf(arr, arr2.length);\n    //复制 8 个\n    System.out.print(\"\\n 复制后的数组：\");\n    display(arr2);\n    if(Arrays.equals(arr, arr2))\n      System.out.println(\"两数组相同！\");\n    else System.out.println(\"两数组不相同！\");\n    System.out.println(\"----------------------------------------\");\n    String[] str = {\"计算机\",\"黄桑\",\"通信\",\"李瑞豪\"};\n    Arrays.sort(str);\n    for(int i=0;i<str.length;i++)\n      System.out.print(str[i]+\" \");\n    System.out.println(\"\");\n    //Collator 类是用来执行分语言环境的字符串比较，这里用的 CHINA\n    Comparator com=Collator.getInstance(java.util.Locale.CHINA);//获取 Comparator 对象，参数表示按中文排序\n    //根据指定的 \"比较器\" 产生的顺序对 \"指定对象数组\" 进行排序\n    Arrays.sort(str,com);//sort(T[] a,Comparator<?super T>c)\n    for(int i=0;i<str.length;i++)\n      System.out.print(str[i]+\" \");\n  }\n  static void display(Integer arr[]) {\n    for(int i=0;i<arr.length;i++)\n      System.out.print(arr[i]+\" \");\n    System.out.println(\"\");\n  }\n}\n```\n\n## 程序运行结果\n\n```plain\n原内容：41 0 44 96 49 96 30 6 87\n排序后：0 6 30 41 44 49 87 96 96\nfill() 后：-1 -1 -1 41 44 49 87 96 96\n值 23 的位置：-4\n插入 0 在 3 号位置：-1 -1 -1 0 44 49 87 96 96\n值 0 的位置：3\n复制后的数组：-1 -1 -1 0 44 49 87 96\n两数组不相同！\n----------------------------------------\n李瑞豪 计算机 通信 黄桑\n黄桑 计算机 李瑞豪 通信\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/java-arrays/  \n\n"
  },
  {
    "path": "posts/java-input/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 录入数据 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 记忆格式 (1) 导包：\nimport java.util.Scanner;\n注意：位置在 class 的上面。\n(2) 创建键盘录入对象：\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习：\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\n\"><meta name=keywords content='Java'><meta itemprop=name content=\"java 录入数据\"><meta itemprop=description content=\"1 记忆格式 (1) 导包：\nimport java.util.Scanner;\n注意：位置在 class 的上面。\n(2) 创建键盘录入对象：\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习：\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\"><meta itemprop=datePublished content=\"2019-01-14T15:33:46+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"235\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/java-input/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 录入数据\"><meta property=\"og:description\" content=\"1 记忆格式 (1) 导包：\nimport java.util.Scanner;\n注意：位置在 class 的上面。\n(2) 创建键盘录入对象：\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习：\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-14T15:33:46+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 录入数据\"><meta name=twitter:description content=\"1 记忆格式 (1) 导包：\nimport java.util.Scanner;\n注意：位置在 class 的上面。\n(2) 创建键盘录入对象：\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习：\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/java-input/ title=\"java 录入数据 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/biaoshi/ title=\"java 标识符\"><link rel=next type=text/html href=https://lruihao.cn/posts/java-range/ title=\"java 水仙花数（循环）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/java-input/index.md title=\"java 录入数据 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 录入数据\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/java-input\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":235,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/java-input\\/\",\"datePublished\":\"2019-01-14T15:33:46+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/java-input/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 录入数据</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 录入数据</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-14 15:33:46\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-14>2019-01-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"235 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 录入数据\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#记忆格式>记忆格式</a></li><li><a href=#实例>实例</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=记忆格式><span>1 记忆格式</span>\n<a href=#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>(1) 导包：<br>import java.util.Scanner;<br>注意：位置在 class 的上面。<br>(2) 创建键盘录入对象：<br>Scanner sc = new Scanner(System.in);<br>(3) 获取数据<br>int i = sc.nextInt();<br>(4) 练习：<br>A: 求两个数据的和<br>B: 获取两个数据中较大的值<br>C: 获取三个数据中较大的值<br>D: 比较两个数是否相等</p><h2 class=heading-element id=实例><span>2 实例</span>\n<a href=#%e5%ae%9e%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>helloworld</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>helloworld</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>(),</span><span class=n>j</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>(),</span><span class=n>k</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>i</span><span class=o>+</span><span class=s>&#34;+&#34;</span><span class=o>+</span><span class=n>j</span><span class=o>+</span><span class=s>&#34;=&#34;</span><span class=o>+</span><span class=p>(</span><span class=n>i</span><span class=o>+</span><span class=n>j</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;MAXij=&#34;</span><span class=o>+</span><span class=n>Max</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;MAXijk=&#34;</span><span class=o>+</span><span class=n>Max</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>k</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c1>//Max() 方法重载</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>Max</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>i</span><span class=o>&gt;</span><span class=n>j</span><span class=o>?</span><span class=n>i</span><span class=p>:</span><span class=n>j</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>Max</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>k</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>==</span><span class=n>j</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;i 和 j 相等&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>==</span><span class=n>k</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;i 和 k 相等&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>j</span><span class=o>==</span><span class=n>k</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;j 和 k 相等&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w>  </span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=n>i</span><span class=o>&gt;</span><span class=n>j</span><span class=o>?</span><span class=n>i</span><span class=p>:</span><span class=n>j</span><span class=p>)</span><span class=o>&gt;</span><span class=n>k</span><span class=o>?</span><span class=n>i</span><span class=p>:</span><span class=n>k</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>结果</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>5 5 6\n</span></span><span class=line><span class=cl>5+5=10\n</span></span><span class=line><span class=cl>MAXij=5\n</span></span><span class=line><span class=cl>i 和 j 相等\n</span></span><span class=line><span class=cl>MAXijk=6</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/java-input/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-input.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/java-input.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E5%BD%95%E5%85%A5%E6%95%B0%E6%8D%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E5%BD%95%E5%85%A5%E6%95%B0%E6%8D%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/java-input/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-input.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/java-input/ data-title=\"Java 录入数据\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/java-input/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/java-input/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/java-input/ data-title=\"Java 录入数据\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/java-input/ data-title=\"Java 录入数据\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/biaoshi/ class=post-nav-item rel=prev title=\"Java 标识符\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 标识符</a><a href=/posts/java-range/ class=post-nav-item rel=next title=\"Java 水仙花数（循环）\">Java 水仙花数（循环）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#记忆格式>记忆格式</a></li><li><a href=#实例>实例</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8c376d7b111a7da475c29028f2fd4330.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8c376d7b111a7da475c29028f2fd4330.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/java-input/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/java-input/index.md",
    "content": "# Java 录入数据\n\n\n## 记忆格式\n\n(1) 导包：  \n import java.util.Scanner;  \n 注意：位置在 class 的上面。  \n(2) 创建键盘录入对象：  \n Scanner sc = new Scanner(System.in);  \n(3) 获取数据  \n int i = sc.nextInt();  \n(4) 练习：  \n A: 求两个数据的和  \n B: 获取两个数据中较大的值  \n C: 获取三个数据中较大的值  \n D: 比较两个数是否相等\n\n## 实例\n\n```java\npackage helloworld;\n\nimport java.util.Scanner;\n\npublic class helloworld {\n\n  public static void main(String[] args) {\n    Scanner sc = new Scanner(System.in);\n    int i=sc.nextInt(),j=sc.nextInt(),k=sc.nextInt();\n    sc.close();\n    System.out.println(i+\"+\"+j+\"=\"+(i+j));\n    System.out.println(\"MAXij=\"+Max(i,j));\n    System.out.println(\"MAXijk=\"+Max(i,j,k));\n\n  }\n  //Max() 方法重载\n  static int Max(int i,int j) {\n    return i>j?i:j;\n  }\n  static int Max(int i,int j,int k) {\n    if(i==j)\n      System.out.println(\"i 和 j 相等\");\n    else if(i==k)\n      System.out.println(\"i 和 k 相等\");\n    else if(j==k)\n      System.out.println(\"j 和 k 相等\");\n    return  (i=i>j?i:j)>k?i:k;\n  }\n\n}\n```\n\n结果\n\n```plain\n5 5 6\n5+5=10\nMAXij=5\ni 和 j 相等\nMAXijk=6\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/java-input/  \n\n"
  },
  {
    "path": "posts/java-range/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 水仙花数（循环） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\n\"><meta name=keywords content='水仙花数,Java'><meta itemprop=name content=\"java 水仙花数（循环）\"><meta itemprop=description content=\"水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\"><meta itemprop=datePublished content=\"2019-01-14T17:30:24+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"658\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"水仙花数,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/java-range/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 水仙花数（循环）\"><meta property=\"og:description\" content=\"水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-14T17:30:24+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"水仙花数\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 水仙花数（循环）\"><meta name=twitter:description content=\"水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/java-range/ title=\"java 水仙花数（循环） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/java-input/ title=\"java 录入数据\"><link rel=next type=text/html href=https://lruihao.cn/posts/duixiang/ title=面向对象基础知识总结><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/java-range/index.md title=\"java 水仙花数（循环） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 水仙花数（循环）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/java-range\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"水仙花数, Java\",\"wordcount\":658,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/java-range\\/\",\"datePublished\":\"2019-01-14T17:30:24+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/java-range/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 水仙花数（循环）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 水仙花数（循环）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-14 17:30:24\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-14>2019-01-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"658 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 水仙花数（循环）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#定义>定义</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1<sup>3 + 5</sup>3+ 3^3 = 153）。</p></blockquote><h2 class=heading-element id=定义><span>1 定义</span>\n<a href=#%e5%ae%9a%e4%b9%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>水仙花数只是自幂数的一种，严格来说 3 位数的 3 次幂数才称为水仙花数。<br>附：其他位数的自幂数名字<br>一位自幂数：独身数<br>两位自幂数：没有<br>三位自幂数：水仙花数<br>四位自幂数：四叶玫瑰数<br>五位自幂数：五角星数<br>六位自幂数：六合数<br>七位自幂数：北斗七星数<br>八位自幂数：八仙数<br>九位自幂数：九九重阳数<br>十位自幂数：十全十美数</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>xunhuan</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>shuixianhua</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>agrs</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;指定最大位数 N:&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>Scanner</span><span class=w> </span><span class=n>input</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=kt>int</span><span class=w> </span><span class=n>N</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>input</span><span class=p>.</span><span class=na>nextInt</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>input</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>3</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>&lt;=</span><span class=w> </span><span class=n>N</span><span class=p>;</span><span class=w> </span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=o>[]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=kt>int</span><span class=o>[</span><span class=n>i</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=p>)</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>pow</span><span class=p>(</span><span class=n>10</span><span class=p>,</span><span class=w> </span><span class=n>i</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>i</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=s>&#34;位的水仙花数有：\\t&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>while</span><span class=w> </span><span class=p>(</span><span class=n>num</span><span class=w> </span><span class=o>&lt;=</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>pow</span><span class=p>(</span><span class=n>10</span><span class=p>,</span><span class=w> </span><span class=n>i</span><span class=p>))</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=kt>int</span><span class=w> </span><span class=n>sum</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>i</span><span class=p>;</span><span class=w> </span><span class=n>j</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                    </span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=p>)</span><span class=w> </span><span class=p>(</span><span class=n>num</span><span class=w> </span><span class=o>/</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>pow</span><span class=p>(</span><span class=n>10</span><span class=p>,</span><span class=w> </span><span class=n>j</span><span class=p>)</span><span class=w> </span><span class=o>%</span><span class=w> </span><span class=n>10</span><span class=p>);</span><span class=c1>//取各个位的数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>j</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>i</span><span class=p>;</span><span class=w> </span><span class=n>j</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                    </span><span class=n>sum</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>sum</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=p>)</span><span class=w> </span><span class=n>Math</span><span class=p>.</span><span class=na>pow</span><span class=p>(</span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]</span><span class=p>,</span><span class=w> </span><span class=n>i</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>num</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>sum</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>num</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=s>&#34;\\t&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=n>num</span><span class=o>++</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=s>&#34;\\n&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>由于 int 精度限制，最多算到 9 位，而且使用常规算法，算到 8，9 位的时候就特别慢了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>指定最大位数 N:10\n</span></span><span class=line><span class=cl>3 位的水仙花数有：153  370  371  407\n</span></span><span class=line><span class=cl>4 位的水仙花数有：1634  8208  9474\n</span></span><span class=line><span class=cl>5 位的水仙花数有：54748  92727  93084\n</span></span><span class=line><span class=cl>6 位的水仙花数有：548834\n</span></span><span class=line><span class=cl>7 位的水仙花数有：1741725  4210818  9800817  9926315\n</span></span><span class=line><span class=cl>8 位的水仙花数有：24678050  24678051  88593477\n</span></span><span class=line><span class=cl>9 位的水仙花数有：146511208</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/java-range/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-range.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/java-range.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0%EF%BC%88%E5%BE%AA%E7%8E%AF%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0%EF%BC%88%E5%BE%AA%E7%8E%AF%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/java-range/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-range.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/java-range/ data-title=\"Java 水仙花数（循环）\" data-hashtags=水仙花数,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/java-range/ data-hashtag=水仙花数><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/java-range/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/java-range/ data-title=\"Java 水仙花数（循环）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/java-range/ data-title=\"Java 水仙花数（循环）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/ class=post-tag title=\"标签 - 水仙花数\">水仙花数</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/java-input/ class=post-nav-item rel=prev title=\"Java 录入数据\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 录入数据</a><a href=/posts/duixiang/ class=post-nav-item rel=next title=面向对象基础知识总结>面向对象基础知识总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#定义>定义</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/bbf0b5f24720c346912022ccdf2e213d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/bbf0b5f24720c346912022ccdf2e213d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/java-range/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/java-range/index.md",
    "content": "# Java 水仙花数（循环）\n\n\n> 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1^3 + 5^3+ 3^3 = 153）。\n\n<!--more-->\n\n## 定义\n\n水仙花数只是自幂数的一种，严格来说 3 位数的 3 次幂数才称为水仙花数。  \n附：其他位数的自幂数名字  \n一位自幂数：独身数  \n两位自幂数：没有  \n三位自幂数：水仙花数  \n四位自幂数：四叶玫瑰数  \n五位自幂数：五角星数  \n六位自幂数：六合数  \n七位自幂数：北斗七星数  \n八位自幂数：八仙数  \n九位自幂数：九九重阳数  \n十位自幂数：十全十美数\n\n```java\npackage xunhuan;\n\nimport java.util.Scanner;\n\npublic class shuixianhua {\n\n    public static void main(String[] agrs) {\n        System.out.print(\"指定最大位数 N:\");\n        Scanner input = new Scanner(System.in);\n        int N = input.nextInt();\n        input.close();\n        for (int i = 3; i <= N; i++) {\n            int a[] = new int[i];\n            int num = (int) Math.pow(10, i - 1) + 1;\n            System.out.print(i + \"位的水仙花数有：\\t\");\n            while (num <= Math.pow(10, i)) {\n                int sum = 0;\n                for (int j = 0; j < i; j++)\n                    a[j] = (int) (num / Math.pow(10, j) % 10);//取各个位的数\n                for (int j = 0; j < i; j++)\n                    sum = sum + (int) Math.pow(a[j], i);\n                if (num == sum)\n                    System.out.print(num + \"\\t\");\n                num++;\n            }\n            System.out.print(\"\\n\");\n        }\n    }\n\n}\n```\n\n由于 int 精度限制，最多算到 9 位，而且使用常规算法，算到 8，9 位的时候就特别慢了。\n\n```plain\n指定最大位数 N:10\n3 位的水仙花数有：153  370  371  407\n4 位的水仙花数有：1634  8208  9474\n5 位的水仙花数有：54748  92727  93084\n6 位的水仙花数有：548834\n7 位的水仙花数有：1741725  4210818  9800817  9926315\n8 位的水仙花数有：24678050  24678051  88593477\n9 位的水仙花数有：146511208\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/java-range/  \n\n"
  },
  {
    "path": "posts/java-regex/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 正则表达式练习 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='1 邮箱 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%&&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果：\" + matcher.matches()); } } } 1 2 admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false 2 电话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果： \"+matcher.matches()); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() > 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; } 3 身份证 1 2 3 4 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\"; '><meta name=keywords content='regex,Java'><meta itemprop=name content=\"java 正则表达式练习\"><meta itemprop=description content='1 邮箱 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%&&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果：\" + matcher.matches()); } } } 1 2 admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false 2 电话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果： \"+matcher.matches()); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() > 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; } 3 身份证 1 2 3 4 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";'><meta itemprop=datePublished content=\"2019-04-18T22:04:21+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"452\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"regex,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/java-regex/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 正则表达式练习\"><meta property=\"og:description\" content='1 邮箱 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%&&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果：\" + matcher.matches()); } } } 1 2 admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false 2 电话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果： \"+matcher.matches()); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() > 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; } 3 身份证 1 2 3 4 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-18T22:04:21+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"regex\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 正则表达式练习\"><meta name=twitter:description content='1 邮箱 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%&&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果：\" + matcher.matches()); } } } 1 2 admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false 2 电话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果： \"+matcher.matches()); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() > 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; } 3 身份证 1 2 3 4 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/java-regex/ title=\"java 正则表达式练习 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/stringbuffer/ title=\"java 常用类\"><link rel=next type=text/html href=https://lruihao.cn/posts/hellojava/ title=\"用记事本编写第一个 java 程序\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/java-regex/index.md title=\"java 正则表达式练习 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 正则表达式练习\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/java-regex\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"regex, Java\",\"wordcount\":452,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/java-regex\\/\",\"datePublished\":\"2019-04-18T22:04:21+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/java-regex/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 正则表达式练习</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 正则表达式练习</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-18 22:04:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-18>2019-04-18</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"452 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 正则表达式练习\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#邮箱>邮箱</a></li><li><a href=#电话>电话</a></li><li><a href=#身份证>身份证</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=邮箱><span>1 邮箱</span>\n<a href=#%e9%82%ae%e7%ae%b1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Matcher</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Pattern</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>RegexDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//       Pattern 类 正则表达式的编译表示。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>Pattern</span><span class=w> </span><span class=n>pattern</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[a-zA-Z0-9_!#$%&amp;&#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>emails</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=s>&#34;admin@lruihao.cn&#34;</span><span class=p>,</span><span class=w> </span><span class=s>&#34;lruihao.cn&#34;</span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>for</span><span class=w> </span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>email</span><span class=w> </span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=n>emails</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>Matcher</span><span class=w> </span><span class=n>matcher</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>pattern</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>email</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>email</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=s>&#34;匹配结果：&#34;</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>matcher</span><span class=p>.</span><span class=na>matches</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=n>admin</span><span class=nd>@lruihao.cn</span><span class=w> </span><span class=n>匹配结果</span><span class=err>：</span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=n>lruihao</span><span class=p>.</span><span class=na>cn</span><span class=w> </span><span class=n>匹配结果</span><span class=err>：</span><span class=kc>false</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=电话><span>2 电话</span>\n<a href=#%e7%94%b5%e8%af%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Matcher</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.regex.Pattern</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>RegexTest</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Pattern</span><span class=w> </span><span class=n>patter</span><span class=o>=</span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=n>telnum</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextLine</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Matcher</span><span class=w> </span><span class=n>matcher</span><span class=o>=</span><span class=n>patter</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>telnum</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>telnum</span><span class=o>+</span><span class=s>&#34;匹配结果： &#34;</span><span class=o>+</span><span class=n>matcher</span><span class=p>.</span><span class=na>matches</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 获取当前的 httpSession\n</span></span></span><span class=line><span class=cl><span class=cm> * @return\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=n>HttpSession</span><span class=w> </span><span class=nf>getSession</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=k>return</span><span class=w> </span><span class=n>getRequest</span><span class=p>().</span><span class=na>getSession</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 手机号验证\n</span></span></span><span class=line><span class=cl><span class=cm> * @param str\n</span></span></span><span class=line><span class=cl><span class=cm> * @return 验证通过返回 true\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>isMobile</span><span class=p>(</span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>str</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Pattern</span><span class=w> </span><span class=n>p</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Matcher</span><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>boolean</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;</span><span class=p>);</span><span class=w> </span><span class=c1>// 验证手机号</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 电话号码验证\n</span></span></span><span class=line><span class=cl><span class=cm> * @param str\n</span></span></span><span class=line><span class=cl><span class=cm> * @return 验证通过返回 true\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>boolean</span><span class=w> </span><span class=nf>isPhone</span><span class=p>(</span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>str</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Pattern</span><span class=w> </span><span class=n>p1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>,</span><span class=w> </span><span class=n>p2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Matcher</span><span class=w> </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>boolean</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=kc>false</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p1</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[0][1-9]{2,3}-[0-9]{5,10}$&#34;</span><span class=p>);</span><span class=w> </span><span class=c1>// 验证带区号的</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>p2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>Pattern</span><span class=p>.</span><span class=na>compile</span><span class=p>(</span><span class=s>&#34;^[1-9]{1}[0-9]{5,8}$&#34;</span><span class=p>);</span><span class=w>     </span><span class=c1>// 验证没有区号的</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>str</span><span class=p>.</span><span class=na>length</span><span class=p>()</span><span class=w> </span><span class=o>&gt;</span><span class=w> </span><span class=n>9</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p1</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w> </span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>m</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>p2</span><span class=p>.</span><span class=na>matcher</span><span class=p>(</span><span class=n>str</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>m</span><span class=p>.</span><span class=na>matches</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>b</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=身份证><span>3 身份证</span>\n<a href=#%e8%ba%ab%e4%bb%bd%e8%af%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=cm>/* 身份证正则表达式 16 或 18 */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>IDCARD</span><span class=o>=</span><span class=s>&#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&#34;</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>           </span><span class=s>&#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&#34;</span><span class=w> </span><span class=o>+</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>           </span><span class=s>&#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&#34;</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/java-regex/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-regex.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/java-regex.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BB%83%E4%B9%A0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BB%83%E4%B9%A0%7c%0A%7cURL%7chttps://lruihao.cn/posts/java-regex/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-regex.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/java-regex/ data-title=\"Java 正则表达式练习\" data-hashtags=regex,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/java-regex/ data-hashtag=regex><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/java-regex/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/java-regex/ data-title=\"Java 正则表达式练习\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/java-regex/ data-title=\"Java 正则表达式练习\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/regex/ class=post-tag title=\"标签 - regex\">regex</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/stringbuffer/ class=post-nav-item rel=prev title=\"Java 常用类\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 常用类</a><a href=/posts/hellojava/ class=post-nav-item rel=next title=\"用记事本编写第一个 Java 程序\">用记事本编写第一个 Java 程序<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#邮箱>邮箱</a></li><li><a href=#电话>电话</a></li><li><a href=#身份证>身份证</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ce53e9a85944c58fead0c64f6ddd6272.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ce53e9a85944c58fead0c64f6ddd6272.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/java-regex/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/java-regex/index.md",
    "content": "# Java 正则表达式练习\n\n\n## 邮箱\n\n```java\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n    public static void main(String[] args) {\n//       Pattern 类 正则表达式的编译表示。\n        Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\");\n        String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"};\n        for (String email :\n                emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n            Matcher matcher = pattern.matcher(email);\n            System.out.println(email + \"匹配结果：\" + matcher.matches());\n        }\n    }\n}\n```\n\n```java 结果\nadmin@lruihao.cn 匹配结果：true\nlruihao.cn 匹配结果：false\n```\n\n## 电话\n\n```java\npackage base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n  public static void main(String[] args) {\n    Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\");\n    Scanner sc=new Scanner(System.in);\n    String telnum=sc.nextLine();\n    sc.close();\n    Matcher matcher=patter.matcher(telnum);\n    System.out.println(telnum+\"匹配结果： \"+matcher.matches());\n  }\n}\n```\n\n```java\n/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n  Pattern p = null;\n  Matcher m = null;\n  boolean b = false;\n  p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号\n  m = p.matcher(str);\n  b = m.matches();\n  return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n  Pattern p1 = null, p2 = null;\n  Matcher m = null;\n  boolean b = false;\n  p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的\n  p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\");     // 验证没有区号的\n  if (str.length() > 9) {\n    m = p1.matcher(str);\n    b = m.matches();\n  } else {\n    m = p2.matcher(str);\n    b = m.matches();\n  }\n  return b;\n}\n```\n\n## 身份证\n\n```java\n/* 身份证正则表达式 16 或 18 */\n   public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" +\n           \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" +\n           \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/java-regex/  \n\n"
  },
  {
    "path": "posts/java-urlreader/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 通过 URL 和 URLConnection 访问网页资源 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\n\"><meta name=keywords content='URLConnection,Java'><meta itemprop=name content=\"java 通过 URL 和 URLConnection 访问网页资源\"><meta itemprop=description content=\"该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\"><meta itemprop=datePublished content=\"2019-05-06T17:41:35+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"544\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"URLConnection,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/java-urlreader/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 通过 URL 和 URLConnection 访问网页资源\"><meta property=\"og:description\" content=\"该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-06T17:41:35+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"URLConnection\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 通过 URL 和 URLConnection 访问网页资源\"><meta name=twitter:description content=\"该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/java-urlreader/ title=\"java 通过 URL 和 URLConnection 访问网页资源 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/byteio/ title=文件加密解密（字节流）><link rel=next type=text/html href=https://lruihao.cn/posts/posttest/ title=\"python 发送 post 请求进行简单的接口测试\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/java-urlreader/index.md title=\"java 通过 URL 和 URLConnection 访问网页资源 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/java-urlreader\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"URLConnection, Java\",\"wordcount\":544,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/java-urlreader\\/\",\"datePublished\":\"2019-05-06T17:41:35+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/java-urlreader/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 通过 URL 和 URLConnection 访问网页资源</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 通过 URL 和 URLConnection 访问网页资源</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-06 17:41:35\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-06>2019-05-06</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"544 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 通过 URL 和 URLConnection 访问网页资源\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.BufferedReader</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.File</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileWriter</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.InputStreamReader</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.net.URL</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.net.URLConnection</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>URLReader</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=kd>throws</span><span class=w> </span><span class=n>Exception</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>try</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>URL</span><span class=w> </span><span class=n>lrh</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>URL</span><span class=p>(</span><span class=s>&#34;https://www.lruihao.cn&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>File</span><span class=w> </span><span class=n>file</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>File</span><span class=p>(</span><span class=s>&#34;C:\\\\Users\\\\李瑞豪、\\Desktop\\\\lrh.html&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>FileWriter</span><span class=w> </span><span class=n>fout</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>FileWriter</span><span class=p>(</span><span class=n>file</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>BufferedReader</span><span class=w> </span><span class=n>in</span><span class=w> </span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>BufferedReader</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>InputStreamReader</span><span class=p>(</span><span class=n>lrh</span><span class=p>.</span><span class=na>openStream</span><span class=p>()));</span><span class=c1>//字节流转化成字符流，再构建缓冲字符流</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>String</span><span class=w> </span><span class=n>inputLine</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>while</span><span class=p>((</span><span class=n>inputLine</span><span class=o>=</span><span class=n>in</span><span class=p>.</span><span class=na>readLine</span><span class=p>())</span><span class=o>!=</span><span class=kc>null</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>inputLine</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>fout</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>inputLine</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>in</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>fout</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//获取响应 header 信息</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>URLConnection</span><span class=w> </span><span class=n>conn</span><span class=o>=</span><span class=n>lrh</span><span class=p>.</span><span class=na>openConnection</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>conn</span><span class=p>.</span><span class=na>connect</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;获取到的响应长度：&#34;</span><span class=o>+</span><span class=n>conn</span><span class=p>.</span><span class=na>getContentLength</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;响应类型：&#34;</span><span class=o>+</span><span class=n>conn</span><span class=p>.</span><span class=na>getContentType</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//用 BufferedReader 读取 URL 的响应</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>in</span><span class=w> </span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>BufferedReader</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>InputStreamReader</span><span class=p>(</span><span class=n>conn</span><span class=p>.</span><span class=na>getInputStream</span><span class=p>()));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>String</span><span class=w> </span><span class=n>line</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>String</span><span class=w> </span><span class=n>result</span><span class=o>=</span><span class=kc>null</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>while</span><span class=p>((</span><span class=n>line</span><span class=o>=</span><span class=n>in</span><span class=p>.</span><span class=na>readLine</span><span class=p>())</span><span class=o>!=</span><span class=kc>null</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>result</span><span class=o>+=</span><span class=n>line</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>result</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w> </span><span class=k>catch</span><span class=w> </span><span class=p>(</span><span class=n>Exception</span><span class=w> </span><span class=n>e</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>e</span><span class=p>.</span><span class=na>printStackTrace</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/java-urlreader/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-urlreader.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/java-urlreader.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E9%80%9A%E8%BF%87+URL+%E5%92%8C+URLConnection+%E8%AE%BF%E9%97%AE%E7%BD%91%E9%A1%B5%E8%B5%84%E6%BA%90&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E9%80%9A%E8%BF%87+URL+%E5%92%8C+URLConnection+%E8%AE%BF%E9%97%AE%E7%BD%91%E9%A1%B5%E8%B5%84%E6%BA%90%7c%0A%7cURL%7chttps://lruihao.cn/posts/java-urlreader/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/java-urlreader.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/java-urlreader/ data-title=\"Java 通过 URL 和 URLConnection 访问网页资源\" data-hashtags=URLConnection,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/java-urlreader/ data-hashtag=URLConnection><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/java-urlreader/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/java-urlreader/ data-title=\"Java 通过 URL 和 URLConnection 访问网页资源\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/java-urlreader/ data-title=\"Java 通过 URL 和 URLConnection 访问网页资源\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/urlconnection/ class=post-tag title=\"标签 - URLConnection\">URLConnection</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/byteio/ class=post-nav-item rel=prev title=文件加密解密（字节流）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>文件加密解密（字节流）</a><a href=/posts/posttest/ class=post-nav-item rel=next title=\"Python 发送 Post 请求进行简单的接口测试\">Python 发送 Post 请求进行简单的接口测试<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/25c200cb60a3f4bbb4acfa03de8137b0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/25c200cb60a3f4bbb4acfa03de8137b0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/java-urlreader/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/java-urlreader/index.md",
    "content": "# Java 通过 URL 和 URLConnection 访问网页资源\n\n\n> 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\n\n<!--more-->\n\n```java\npackage cn.lruihao.base;\n\nimport java.io.BufferedReader;\nimport java.io.File;\nimport java.io.FileWriter;\nimport java.io.InputStreamReader;\nimport java.net.URL;\nimport java.net.URLConnection;\n\npublic class URLReader {\n\n  public static void main(String[] args) throws Exception{\n    try {\n      URL lrh=new URL(\"https://www.lruihao.cn\");\n      File file=new File(\"C:\\\\Users\\\\李瑞豪、\\Desktop\\\\lrh.html\");\n      FileWriter fout=new FileWriter(file);\n      BufferedReader in =new BufferedReader(new InputStreamReader(lrh.openStream()));//字节流转化成字符流，再构建缓冲字符流\n      String inputLine;\n      while((inputLine=in.readLine())!=null) {\n        System.out.println(inputLine);\n        fout.write(inputLine);\n      }\n      in.close();\n      fout.close();\n\n      //获取响应 header 信息\n      URLConnection conn=lrh.openConnection();\n      conn.connect();\n      System.out.println(\"获取到的响应长度：\"+conn.getContentLength());\n      System.out.println(\"响应类型：\"+conn.getContentType());\n\n      //用 BufferedReader 读取 URL 的响应\n      in =new BufferedReader(new InputStreamReader(conn.getInputStream()));\n      String line;\n      String result=null;\n      while((line=in.readLine())!=null) {\n        result+=line;\n      }\n      System.out.println(result);\n    } catch (Exception e) {\n      e.printStackTrace();\n    }\n\n  }\n\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/java-urlreader/  \n\n"
  },
  {
    "path": "posts/javaexception/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>模拟借书系统（java 异常练习） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='Java'><meta itemprop=name content=\"模拟借书系统（java 异常练习）\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-01T16:52:21+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"890\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/javaexception/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"模拟借书系统（java 异常练习）\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-01T16:52:21+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"模拟借书系统（java 异常练习）\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/javaexception/ title=\"模拟借书系统（java 异常练习） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/qrcode/ title=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\"><link rel=next type=text/html href=https://lruihao.cn/posts/byteio/ title=文件加密解密（字节流）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/javaexception/index.md title=\"模拟借书系统（java 异常练习） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"模拟借书系统（java 异常练习）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/javaexception\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":890,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/javaexception\\/\",\"datePublished\":\"2019-05-01T16:52:21+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/javaexception/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>模拟借书系统（java 异常练习）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>模拟借书系统（java 异常练习）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-01 16:52:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-01>2019-05-01</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"890 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"模拟借书系统（java 异常练习）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/javaexception/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/javaexception/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#实现代码>实现代码</a></li><li><a href=#大致运行效果>大致运行效果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=实现代码><span>1 实现代码</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>这里的异常主要是<code>InputMismatchException</code>, 可以直接捕获该异常，我直接捕获了父类异常。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span><span class=lnt>92\n</span><span class=lnt>93\n</span><span class=lnt>94\n</span><span class=lnt>95\n</span><span class=lnt>96\n</span><span class=lnt>97\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.Exception</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * @author 李瑞豪\n</span></span></span><span class=line><span class=cl><span class=cm> * 借书系统（异常练习）\n</span></span></span><span class=line><span class=cl><span class=cm> */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>ExceptionDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>Book</span><span class=o>[]</span><span class=w> </span><span class=n>books</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>new</span><span class=w> </span><span class=n>Book</span><span class=p>(</span><span class=s>&#34;数据结构&#34;</span><span class=p>),</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>new</span><span class=w> </span><span class=n>Book</span><span class=p>(</span><span class=s>&#34;Java&#34;</span><span class=p>),</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>new</span><span class=w> </span><span class=n>Book</span><span class=p>(</span><span class=s>&#34;php&#34;</span><span class=p>),</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>new</span><span class=w> </span><span class=n>Book</span><span class=p>(</span><span class=s>&#34;c&#34;</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;欢迎来到借书系统！&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>ExceptionDemo</span><span class=w> </span><span class=n>jieshu</span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>ExceptionDemo</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>jieshu</span><span class=p>.</span><span class=na>menu</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>menu</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;输入命令：1. 书名查找；\\t2. 序号查找；&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=c1>//初始化并捕获用户输入</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c1>//  捕获异常</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>try</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=kt>int</span><span class=w> </span><span class=n>id</span><span class=w> </span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>if</span><span class=p>(</span><span class=n>id</span><span class=o>==</span><span class=n>1</span><span class=o>||</span><span class=n>id</span><span class=o>==</span><span class=n>2</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>inquire</span><span class=p>(</span><span class=n>id</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;输入错误！请根据提示输入~~&#34;</span><span class=p>);</span><span class=c1>//输入非 1，2 的数字情况</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>menu</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=k>catch</span><span class=w> </span><span class=p>(</span><span class=n>Exception</span><span class=w> </span><span class=n>e</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//输入字符为非数字</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>e</span><span class=p>.</span><span class=na>printStackTrace</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;输入错误，请输入数字命令~~&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>menu</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=k>finally</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>private</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>inquire</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>id</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>if</span><span class=p>(</span><span class=n>id</span><span class=o>==</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;请输入要查找的书名！&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextLine</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=o>=</span><span class=n>FindName</span><span class=p>(</span><span class=n>name</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>if</span><span class=p>(</span><span class=n>num</span><span class=o>==</span><span class=n>0</span><span class=o>?</span><span class=kc>false</span><span class=p>:</span><span class=kc>true</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//验证书名是否存在 存在则打印</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;book:&#34;</span><span class=o>+</span><span class=n>name</span><span class=o>+</span><span class=s>&#34;\\t 序号：&#34;</span><span class=o>+</span><span class=n>num</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//menu();//回到访问起点 也可以去掉终止程序</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=p>}</span><span class=k>else</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>             </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;图书不存在&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>             </span><span class=n>menu</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>         </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>id</span><span class=w> </span><span class=o>==</span><span class=w> </span><span class=n>2</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;请输入您要查找的序号：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=kt>int</span><span class=w> </span><span class=n>id2</span><span class=o>=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>FindNum</span><span class=p>(</span><span class=n>id2</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>private</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>FindNum</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>try</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>if</span><span class=p>(</span><span class=n>num</span><span class=o>&gt;=</span><span class=n>0</span><span class=o>&amp;&amp;</span><span class=n>num</span><span class=o>&lt;</span><span class=n>books</span><span class=p>.</span><span class=na>length</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>books</span><span class=o>[</span><span class=n>num</span><span class=o>]</span><span class=p>.</span><span class=na>getName</span><span class=p>());</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>     </span><span class=c1>//menu();//回到访问起点 也可以去掉终止程序</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=p>}</span><span class=k>else</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>             </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;图书不存在&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>             </span><span class=n>menu</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>         </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=k>catch</span><span class=w> </span><span class=p>(</span><span class=n>Exception</span><span class=w> </span><span class=n>e</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>e</span><span class=p>.</span><span class=na>printStackTrace</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;输入有误！~~&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>FindName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>for</span><span class=p>(</span><span class=n>Book</span><span class=w> </span><span class=n>i</span><span class=p>:</span><span class=n>books</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>String</span><span class=w> </span><span class=n>name1</span><span class=o>=</span><span class=n>i</span><span class=p>.</span><span class=na>getName</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=k>if</span><span class=p>(</span><span class=n>name1</span><span class=p>.</span><span class=na>equals</span><span class=p>(</span><span class=n>name</span><span class=p>))</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>num</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>   </span><span class=n>num</span><span class=o>++</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.Exception</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>Book</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>private</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>public</span><span class=w> </span><span class=n>String</span><span class=w> </span><span class=nf>getName</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setName</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=kd>public</span><span class=w> </span><span class=nf>Book</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>name</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>this</span><span class=p>.</span><span class=na>name</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>name</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w> </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=大致运行效果><span>2 大致运行效果</span>\n<a href=#%e5%a4%a7%e8%87%b4%e8%bf%90%e8%a1%8c%e6%95%88%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/javaexception/images/2.png title=运行效果 data-thumbnail=/posts/javaexception/images/2.png data-sub-html=\"<h2>运行效果</h2>\"><img loading=lazy src=/posts/javaexception/images/2.png alt=运行效果 height=392 width=594></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/javaexception/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/javaexception/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/javaexception/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%A8%A1%E6%8B%9F%E5%80%9F%E4%B9%A6%E7%B3%BB%E7%BB%9F%EF%BC%88java+%E5%BC%82%E5%B8%B8%E7%BB%83%E4%B9%A0%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%A8%A1%E6%8B%9F%E5%80%9F%E4%B9%A6%E7%B3%BB%E7%BB%9F%EF%BC%88java+%E5%BC%82%E5%B8%B8%E7%BB%83%E4%B9%A0%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/javaexception/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/javaexception/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/javaexception/ data-title=\"模拟借书系统（java 异常练习）\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/javaexception/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/javaexception/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/javaexception/ data-title=\"模拟借书系统（java 异常练习）\" data-image=/posts/javaexception/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/javaexception/ data-title=\"模拟借书系统（java 异常练习）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/qrcode/ class=post-nav-item rel=prev title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a><a href=/posts/byteio/ class=post-nav-item rel=next title=文件加密解密（字节流）>文件加密解密（字节流）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#实现代码>实现代码</a></li><li><a href=#大致运行效果>大致运行效果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6d39ed1e24c47282d4bc7e849660db5e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6d39ed1e24c47282d4bc7e849660db5e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/javaexception/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/javaexception/index.md",
    "content": "# 模拟借书系统（java 异常练习）\n\n\n<!--more-->\n\n## 实现代码\n\n> 这里的异常主要是`InputMismatchException`, 可以直接捕获该异常，我直接捕获了父类异常。\n\n```java ExceptionDemo.java\npackage cn.lruihao.Exception;\n\nimport java.util.Scanner;\n\n/**\n * @author 李瑞豪\n * 借书系统（异常练习）\n */\n\npublic class ExceptionDemo {\n  private final Book[] books = {\n    new Book(\"数据结构\"),\n    new Book(\"Java\"),\n    new Book(\"php\"),\n    new Book(\"c\")\n  };\n\n public static void main(String[] args) {\n  System.out.println(\"欢迎来到借书系统！\");\n  ExceptionDemo jieshu= new ExceptionDemo();\n  jieshu.menu();\n }\n\n public void menu() {\n  System.out.println(\"输入命令：1. 书名查找；\\t2. 序号查找；\");\n   //初始化并捕获用户输入\n  Scanner sc = new Scanner(System.in);\n//  捕获异常\n  try {\n   int id =sc.nextInt();\n   if(id==1||id==2) {\n    inquire(id);\n   }else {\n    System.out.println(\"输入错误！请根据提示输入~~\");//输入非 1，2 的数字情况\n    menu();\n   }\n  }catch (Exception e) {//输入字符为非数字\n   e.printStackTrace();\n   System.out.println(\"输入错误，请输入数字命令~~\");\n   menu();\n  }finally{\n   sc.close();\n  }\n }\n\n private void inquire(int id) {\n  Scanner sc = new Scanner(System.in);\n\n  if(id==1) {\n   System.out.println(\"请输入要查找的书名！\");\n   String name=sc.nextLine();\n   int num=FindName(name);\n   if(num==0?false:true) {//验证书名是否存在 存在则打印\n    System.out.println(\"book:\"+name+\"\\t 序号：\"+num);\n    //menu();//回到访问起点 也可以去掉终止程序\n   }else{\n             System.out.println(\"图书不存在\");\n             menu();\n         }\n   sc.close();\n  }else if(id == 2) {\n   System.out.println(\"请输入您要查找的序号：\");\n   int id2=sc.nextInt();\n   FindNum(id2);\n   sc.close();\n  }\n\n }\n\n private void FindNum(int num) {\n  try {\n   if(num>=0&&num<books.length) {\n     System.out.println(books[num].getName());\n     //menu();//回到访问起点 也可以去掉终止程序\n   }else{\n             System.out.println(\"图书不存在\");\n             menu();\n         }\n  }catch (Exception e) {\n   e.printStackTrace();\n   System.out.println(\"输入有误！~~\");\n  }\n\n }\n\n private int FindName(String name) {\n  int num=0;\n  for(Book i:books) {\n   String name1=i.getName();\n   if(name1.equals(name)) {\n    return num;\n   }\n   num++;\n  }\n  return 0;\n }\n}\n```\n\n```java Book.java\npackage cn.lruihao.Exception;\n\npublic class Book {\n private String name;\n\n public String getName() {\n  return name;\n }\n\n public void setName(String name) {\n  this.name = name;\n }\n\n public Book(String name) {\n  this.name = name;\n }\n\n}\n```\n\n## 大致运行效果\n\n![运行效果](images/2.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/javaexception/  \n\n"
  },
  {
    "path": "posts/jicheng/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 继承 Test | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 引用 继承的好处：\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\n设计原则：低耦合，高内聚。\n耦合：类与类的关系。 内聚：自己完成事情的能力。 \"><meta name=keywords content='Java'><meta itemprop=name content=\"java 继承 test\"><meta itemprop=description content=\"引用 继承的好处：\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\n设计原则：低耦合，高内聚。\n耦合：类与类的关系。 内聚：自己完成事情的能力。\"><meta itemprop=datePublished content=\"2019-01-24T15:07:50+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1271\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/jicheng/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 继承 test\"><meta property=\"og:description\" content=\"引用 继承的好处：\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\n设计原则：低耦合，高内聚。\n耦合：类与类的关系。 内聚：自己完成事情的能力。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-24T15:07:50+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 继承 test\"><meta name=twitter:description content=\"引用 继承的好处：\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\n设计原则：低耦合，高内聚。\n耦合：类与类的关系。 内聚：自己完成事情的能力。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/jicheng/ title=\"java 继承 test | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cos-hexo/ title=\"利用腾讯云对象存储 COS 桶托管 hexo 博客\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/hexo-theme-next/ title=\"Elegant and powerful theme for Hexo.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/jicheng/index.md title=\"java 继承 test | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 继承 test\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/jicheng\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":1271,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/jicheng\\/\",\"datePublished\":\"2019-01-24T15:07:50+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/jicheng/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 继承 Test</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 继承 Test</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-24 15:07:50\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-24>2019-01-24</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1271 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 继承 Test\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#java-中的继承特点>java 中的继承特点</a></li><li><a href=#java-中的继承注意事项>java 中的继承注意事项</a></li><li><a href=#继承>继承</a></li><li><a href=#代码块>代码块</a></li><li><a href=#继承间的成员关系>继承间的成员关系</a></li><li><a href=#注意事项>注意事项</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>引用<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>继承的好处：</p><ol><li>提高了代码的复用性</li><li>提高了代码的维护性</li><li>让类与类之间产生了关系，是多态的前提</li></ol><p>继承的弊端：类的耦合性很强</p><p>设计原则：低耦合，高内聚。</p><ul><li>耦合：类与类的关系。</li><li>内聚：自己完成事情的能力。</li></ul></div></div></div><h2 class=heading-element id=java-中的继承特点><span>1 java 中的继承特点</span>\n<a href=#java-%e4%b8%ad%e7%9a%84%e7%bb%a7%e6%89%bf%e7%89%b9%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Java 只支持单继承，不支持多继承。Java 支持多层继承（继承体系）</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>A</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>B</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>A</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>class C extends A,B {\n</span></span></span><span class=line><span class=cl><span class=cm>}\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>C</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>B</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>ExtendsDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=java-中的继承注意事项><span>2 java 中的继承注意事项</span>\n<a href=#java-%e4%b8%ad%e7%9a%84%e7%bb%a7%e6%89%bf%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>子类只能继承父类所有非私有的成员（成员方法和成员变量）</li><li>子类不能继承父类的构造方法，但是可以通过 super 关键字去访问父类构造方法。</li><li>不要为了部分功能而去继承</li></ol><p>那么，我们什么时候考虑使用继承呢？\n继承中类之间体现的是：”is a”的关系。<br>如果两个类满足这个关系：xxx is a yyy，那么他们就可以使用继承。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>Student,Person  对\n</span></span><span class=line><span class=cl>Dog,Animal  对\n</span></span><span class=line><span class=cl>Dog,Pig  错</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=继承><span>3 继承</span>\n<a href=#%e7%bb%a7%e6%89%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>继承间的构造方法关系：创建子类对象，会先去访问父类的构造方法。对父类的数据进行初始化。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>jicheng</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Fu</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>10</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Fu</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;父类&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Zi</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>Fu</span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>20</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Zi</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;子类&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>(){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>num</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>30</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>num</span><span class=p>);</span><span class=c1>//30</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=na>num</span><span class=p>);</span><span class=c1>//20</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=kd>super</span><span class=p>.</span><span class=na>num</span><span class=p>);</span><span class=c1>//10</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>test</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Zi</span><span class=w> </span><span class=n>z</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Zi</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>z</span><span class=p>.</span><span class=na>show</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>程序运行结果</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>父类\n</span></span><span class=line><span class=cl>子类\n</span></span><span class=line><span class=cl>30\n</span></span><span class=line><span class=cl>20\n</span></span><span class=line><span class=cl>10</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=代码块><span>4 代码块</span>\n<a href=#%e4%bb%a3%e7%a0%81%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>代码块的执行顺序：静态代码块 &ndash;> 构造代码块 &ndash;> 构造方法<br>代码的执行特点：静态代码块只执行一次，构造代码块每次调用构造方法都执行。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>jicheng</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Fu</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;父类静态代码块&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;父类构造代码块&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Fu</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;父类构造方法&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Zi</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>Fu</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>static</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;子类静态代码块&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;子类构造代码块&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Zi</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;子类构造方法&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>test</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Zi</span><span class=w> </span><span class=n>z</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Zi</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Zi</span><span class=w> </span><span class=n>z2</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Zi</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>程序运行结果：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>父类静态代码块\n</span></span><span class=line><span class=cl>子类静态代码块\n</span></span><span class=line><span class=cl>父类构造代码块\n</span></span><span class=line><span class=cl>父类构造方法\n</span></span><span class=line><span class=cl>子类构造代码块\n</span></span><span class=line><span class=cl>子类构造方法\n</span></span><span class=line><span class=cl>父类构造代码块\n</span></span><span class=line><span class=cl>父类构造方法\n</span></span><span class=line><span class=cl>子类构造代码块\n</span></span><span class=line><span class=cl>子类构造方法</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=继承间的成员关系><span>5 继承间的成员关系</span>\n<a href=#%e7%bb%a7%e6%89%bf%e9%97%b4%e7%9a%84%e6%88%90%e5%91%98%e5%85%b3%e7%b3%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><p>成员方法\n不同名称：非常简单，一看就知道调用谁<br>相同名称：先在子类找，再在父类找<br>&mldr;<br>找不到就报错。</p></li><li><p>成员变量：\n名字不同：非常的简单，一看就知道使用的是谁。<br>名字相同：就近原则。</p><blockquote><p>使用变量的时候，会先找局部范围。<br>如果想直接使用成员变量，加关键字：this 即可。<br>如果想直接使用父类的成员变量，加关键字：super 即可。</p></blockquote></li></ul><h2 class=heading-element id=注意事项><span>6 注意事项</span>\n<a href=#%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><strong>子类中所有的构造方法默认都会访问父类中空参数的构造方法。为什么呢？因为子类会继承父类中的数据，可能还会使用父类的数据。所以，子类初始化之前，一定要先完成父类数据的初始化。</strong></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/jicheng/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/jicheng.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/jicheng.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E7%BB%A7%E6%89%BF+test&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E7%BB%A7%E6%89%BF+test%7c%0A%7cURL%7chttps://lruihao.cn/posts/jicheng/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/jicheng.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/jicheng/ data-title=\"Java 继承 Test\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/jicheng/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/jicheng/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/jicheng/ data-title=\"Java 继承 Test\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/jicheng/ data-title=\"Java 继承 Test\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cos-hexo/ class=post-nav-item rel=prev title=\"利用腾讯云对象存储 COS 桶托管 Hexo 博客\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a><a href=/projects/lruihao/hexo-theme-next/ class=post-nav-item rel=next title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#java-中的继承特点>java 中的继承特点</a></li><li><a href=#java-中的继承注意事项>java 中的继承注意事项</a></li><li><a href=#继承>继承</a></li><li><a href=#代码块>代码块</a></li><li><a href=#继承间的成员关系>继承间的成员关系</a></li><li><a href=#注意事项>注意事项</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d7cfd77837fdccb790ac25f9018bfea5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d7cfd77837fdccb790ac25f9018bfea5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/jicheng/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/jicheng/index.md",
    "content": "# Java 继承 Test\n\n\n{{< admonition quote >}}\n继承的好处：\n\n1. 提高了代码的复用性\n2. 提高了代码的维护性\n3. 让类与类之间产生了关系，是多态的前提\n\n继承的弊端：类的耦合性很强\n\n设计原则：低耦合，高内聚。\n\n- 耦合：类与类的关系。\n- 内聚：自己完成事情的能力。\n\n{{< /admonition >}}\n\n<!--more-->\n\n## java 中的继承特点\n\n> Java 只支持单继承，不支持多继承。Java 支持多层继承（继承体系）\n\n```java\nclass A {\n}\n\nclass B extends A {\n}\n/*\nclass C extends A,B {\n}\n*/\n\nclass C extends B {\n}\n\nclass ExtendsDemo {\n  public static void main(String[] args) {\n\n  }\n}\n```\n\n## java 中的继承注意事项\n\n1. 子类只能继承父类所有非私有的成员（成员方法和成员变量）\n2. 子类不能继承父类的构造方法，但是可以通过 super 关键字去访问父类构造方法。\n3. 不要为了部分功能而去继承\n\n那么，我们什么时候考虑使用继承呢？\n继承中类之间体现的是：”is a”的关系。  \n 如果两个类满足这个关系：xxx is a yyy，那么他们就可以使用继承。\n\n```plain\nStudent,Person  对\nDog,Animal  对\nDog,Pig  错\n```\n\n## 继承\n\n> 继承间的构造方法关系：创建子类对象，会先去访问父类的构造方法。对父类的数据进行初始化。\n\n```java\npackage jicheng;\n\nclass Fu{\n  public int num = 10;\n  public Fu(){\n    System.out.println(\"父类\");\n  }\n}\nclass Zi extends Fu{\n  public int num = 20;\n  public Zi(){\n    System.out.println(\"子类\");\n  }\n  public void show(){\n    int num = 30;\n    System.out.println(num);//30\n    System.out.println(this.num);//20\n    System.out.println(super.num);//10\n  }\n}\n\npublic class test {\n  public static void main(String[] args) {\n    Zi z = new Zi();\n    z.show();\n  }\n}\n```\n\n程序运行结果\n\n```plain\n父类\n子类\n30\n20\n10\n```\n\n## 代码块\n\n> 代码块的执行顺序：静态代码块 --> 构造代码块 --> 构造方法  \n> 代码的执行特点：静态代码块只执行一次，构造代码块每次调用构造方法都执行。\n\n```java\npackage jicheng;\n\nclass Fu {\n  static {\n    System.out.println(\"父类静态代码块\");\n  }\n\n  {\n    System.out.println(\"父类构造代码块\");\n  }\n\n  public Fu() {\n    System.out.println(\"父类构造方法\");\n  }\n}\n\nclass Zi extends Fu {\n  static {\n    System.out.println(\"子类静态代码块\");\n  }\n\n  {\n    System.out.println(\"子类构造代码块\");\n  }\n\n  public Zi() {\n    System.out.println(\"子类构造方法\");\n  }\n}\n\npublic class test {\n  public static void main(String[] args) {\n    Zi z = new Zi();\n    Zi z2 = new Zi();\n  }\n}\n```\n\n程序运行结果：\n\n```plain\n父类静态代码块\n子类静态代码块\n父类构造代码块\n父类构造方法\n子类构造代码块\n子类构造方法\n父类构造代码块\n父类构造方法\n子类构造代码块\n子类构造方法\n```\n\n## 继承间的成员关系\n\n- 成员方法\n  不同名称：非常简单，一看就知道调用谁  \n  相同名称：先在子类找，再在父类找  \n  ...  \n  找不到就报错。\n\n- 成员变量：\n  名字不同：非常的简单，一看就知道使用的是谁。  \n  名字相同：就近原则。\n  > 使用变量的时候，会先找局部范围。  \n  > 如果想直接使用成员变量，加关键字：this 即可。  \n  > 如果想直接使用父类的成员变量，加关键字：super 即可。\n\n## 注意事项\n\n**子类中所有的构造方法默认都会访问父类中空参数的构造方法。为什么呢？因为子类会继承父类中的数据，可能还会使用父类的数据。所以，子类初始化之前，一定要先完成父类数据的初始化。**\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/jicheng/  \n\n"
  },
  {
    "path": "posts/js-device/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Js 判断用户设备类型及平台 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\n\"><meta name=keywords content='JavaScript,他山之石'><meta itemprop=name content=\"js 判断用户设备类型及平台\"><meta itemprop=description content=\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\"><meta itemprop=datePublished content=\"2018-11-03T23:35:44+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"458\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/js-device/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"js 判断用户设备类型及平台\"><meta property=\"og:description\" content=\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-03T23:35:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"js 判断用户设备类型及平台\"><meta name=twitter:description content=\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/js-device/ title=\"js 判断用户设备类型及平台 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/blog-backup/ title=\"hexo 博客源码备份\"><link rel=next type=text/html href=https://lruihao.cn/posts/next-pdf/ title=\"next 添加支持 pdf\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/js-device/index.md title=\"js 判断用户设备类型及平台 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"js 判断用户设备类型及平台\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/js-device\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript, 他山之石\",\"wordcount\":458,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/js-device\\/\",\"datePublished\":\"2018-11-03T23:35:44+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/js-device/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Js 判断用户设备类型及平台</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://www.cnblogs.com/coober/p/6594379.html title=\"转载 -> https://www.cnblogs.com/coober/p/6594379.html\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>Js 判断用户设备类型及平台</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-03 23:35:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-03>2018-11-03</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"458 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Js 判断用户设备类型及平台\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#首先判断-pc-端还是移动端>首先判断 pc 端还是移动端</a></li><li><a href=#判断用户移动端使用的系统平台>判断用户移动端使用的系统平台</a></li><li><a href=#判断用户是否在微信中打开>判断用户是否在微信中打开</a></li><li><a href=#实际运用>实际运用</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。</p><h3 class=heading-element id=首先判断-pc-端还是移动端><span>0.1 首先判断 pc 端还是移动端</span>\n<a href=#%e9%a6%96%e5%85%88%e5%88%a4%e6%96%ad-pc-%e7%ab%af%e8%bf%98%e6%98%af%e7%a7%bb%e5%8a%a8%e7%ab%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=n>function</span> <span class=n>IsPC</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>userAgentInfo</span> <span class=o>=</span> <span class=n>navigator</span><span class=o>.</span><span class=n>userAgent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>Agents</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;Android&#34;</span><span class=p>,</span> <span class=s2>&#34;iPhone&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=s2>&#34;SymbianOS&#34;</span><span class=p>,</span> <span class=s2>&#34;Windows Phone&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=s2>&#34;iPad&#34;</span><span class=p>,</span> <span class=s2>&#34;iPod&#34;</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>flag</span> <span class=o>=</span> <span class=bp>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=k>var</span> <span class=n>v</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>v</span> <span class=o>&lt;</span> <span class=n>Agents</span><span class=o>.</span><span class=n>length</span><span class=p>;</span> <span class=n>v</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=n>userAgentInfo</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=n>Agents</span><span class=p>[</span><span class=n>v</span><span class=p>])</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>flag</span> <span class=o>=</span> <span class=bp>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=n>flag</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=判断用户移动端使用的系统平台><span>0.2 判断用户移动端使用的系统平台</span>\n<a href=#%e5%88%a4%e6%96%ad%e7%94%a8%e6%88%b7%e7%a7%bb%e5%8a%a8%e7%ab%af%e4%bd%bf%e7%94%a8%e7%9a%84%e7%b3%bb%e7%bb%9f%e5%b9%b3%e5%8f%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=k>var</span> <span class=n>u</span> <span class=o>=</span> <span class=n>navigator</span><span class=o>.</span><span class=n>userAgent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>u</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=s1>&#39;Android&#39;</span><span class=p>)</span> <span class=o>&gt;</span> <span class=o>-</span><span class=mi>1</span> <span class=o>||</span> <span class=n>u</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=s1>&#39;Linux&#39;</span><span class=p>)</span> <span class=o>&gt;</span> <span class=o>-</span><span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=o>//</span><span class=err>安卓手机</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=n>u</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=s1>&#39;iPhone&#39;</span><span class=p>)</span> <span class=o>&gt;</span> <span class=o>-</span><span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=o>//</span><span class=err>苹果手机</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=n>u</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=s1>&#39;Windows Phone&#39;</span><span class=p>)</span> <span class=o>&gt;</span> <span class=o>-</span><span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=o>//</span><span class=n>winphone</span> <span class=err>手机</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=判断用户是否在微信中打开><span>0.3 判断用户是否在微信中打开</span>\n<a href=#%e5%88%a4%e6%96%ad%e7%94%a8%e6%88%b7%e6%98%af%e5%90%a6%e5%9c%a8%e5%be%ae%e4%bf%a1%e4%b8%ad%e6%89%93%e5%bc%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=n>function</span> <span class=n>isWeiXin</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>ua</span> <span class=o>=</span> <span class=n>navigator</span><span class=o>.</span><span class=n>userAgent</span><span class=o>.</span><span class=n>toLowerCase</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>ua</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=s1>&#39;micromessenger&#39;</span><span class=p>)</span> <span class=o>!=</span> <span class=o>-</span><span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=bp>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=bp>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=实际运用><span>0.4 实际运用</span>\n<a href=#%e5%ae%9e%e9%99%85%e8%bf%90%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>根据 pc 或者移动端控制飘花数目，降低 cpu 消耗，减少卡顿。<a href=https://www.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl>  <span class=o>&lt;</span><span class=n>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=n>function</span> <span class=n>sakuraInit</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>(</span><span class=s1>&#39;clear&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>userAgentInfo</span> <span class=o>=</span> <span class=n>navigator</span><span class=o>.</span><span class=n>userAgent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>Agents</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;Android&#34;</span><span class=p>,</span> <span class=s2>&#34;iPhone&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=s2>&#34;SymbianOS&#34;</span><span class=p>,</span> <span class=s2>&#34;Windows Phone&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=s2>&#34;iPad&#34;</span><span class=p>,</span> <span class=s2>&#34;iPod&#34;</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>var</span> <span class=n>flag</span> <span class=o>=</span> <span class=bp>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=k>var</span> <span class=n>v</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>v</span> <span class=o>&lt;</span> <span class=n>Agents</span><span class=o>.</span><span class=n>length</span><span class=p>;</span> <span class=n>v</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=p>(</span><span class=n>userAgentInfo</span><span class=o>.</span><span class=n>indexOf</span><span class=p>(</span><span class=n>Agents</span><span class=p>[</span><span class=n>v</span><span class=p>])</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>flag</span> <span class=o>=</span> <span class=bp>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>flag</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/1.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>5</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/2.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>5</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/3.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>5</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/4.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>5</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/1.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>2</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/2.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>2</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/3.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>2</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>            <span class=o>$</span><span class=p>(</span><span class=n>document</span><span class=p>)</span><span class=o>.</span><span class=n>snowfall</span><span class=p>({</span><span class=n>image</span><span class=p>:</span><span class=s2>&#34;images/4.png&#34;</span><span class=p>,</span> <span class=n>flakeCount</span><span class=p>:</span><span class=mi>2</span><span class=p>,</span> <span class=n>minSpeed</span><span class=p>:</span><span class=mi>1</span><span class=p>,</span> <span class=n>minSize</span><span class=p>:</span><span class=mi>8</span><span class=p>,</span> <span class=n>maxSize</span><span class=p>:</span><span class=mi>15</span><span class=p>,});</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>window</span><span class=o>.</span><span class=n>onload</span> <span class=o>=</span> <span class=n>sakuraInit</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=o>&lt;/</span><span class=n>script</span><span class=o>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/js-device/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/js-device.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/js-device.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20js+%E5%88%A4%E6%96%AD%E7%94%A8%E6%88%B7%E8%AE%BE%E5%A4%87%E7%B1%BB%E5%9E%8B%E5%8F%8A%E5%B9%B3%E5%8F%B0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjs+%E5%88%A4%E6%96%AD%E7%94%A8%E6%88%B7%E8%AE%BE%E5%A4%87%E7%B1%BB%E5%9E%8B%E5%8F%8A%E5%B9%B3%E5%8F%B0%7c%0A%7cURL%7chttps://lruihao.cn/posts/js-device/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/js-device.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/js-device/ data-title=\"Js 判断用户设备类型及平台\" data-hashtags=JavaScript,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/js-device/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/js-device/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/js-device/ data-title=\"Js 判断用户设备类型及平台\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/js-device/ data-title=\"Js 判断用户设备类型及平台\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/blog-backup/ class=post-nav-item rel=prev title=\"Hexo 博客源码备份\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo 博客源码备份</a><a href=/posts/next-pdf/ class=post-nav-item rel=next title=\"Next 添加支持 Pdf\">Next 添加支持 Pdf<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#首先判断-pc-端还是移动端>首先判断 pc 端还是移动端</a></li><li><a href=#判断用户移动端使用的系统平台>判断用户移动端使用的系统平台</a></li><li><a href=#判断用户是否在微信中打开>判断用户是否在微信中打开</a></li><li><a href=#实际运用>实际运用</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3732e41af9de0bc63f40781a99c47060.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3732e41af9de0bc63f40781a99c47060.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/js-device/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/js-device/index.md",
    "content": "# Js 判断用户设备类型及平台\n\n\n前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\n\n<!--more-->\n\n### 首先判断 pc 端还是移动端\n\n```\nfunction IsPC() {\n        var userAgentInfo = navigator.userAgent;\n        var Agents = [\"Android\", \"iPhone\",\n                    \"SymbianOS\", \"Windows Phone\",\n                    \"iPad\", \"iPod\"];\n        var flag = true;\n        for (var v = 0; v < Agents.length; v++) {\n            if (userAgentInfo.indexOf(Agents[v]) > 0) {\n                flag = false;\n                break;\n            }\n        }\n        return flag;\n    }\n```\n\n### 判断用户移动端使用的系统平台\n\n```\nvar u = navigator.userAgent;\n    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {\n        //安卓手机\n    } else if (u.indexOf('iPhone') > -1) {\n        //苹果手机\n    } else if (u.indexOf('Windows Phone') > -1) {\n        //winphone 手机\n    }\n```\n\n### 判断用户是否在微信中打开\n\n```\nfunction isWeiXin(){\n        var ua = navigator.userAgent.toLowerCase();\n        if(ua.indexOf('micromessenger') != -1) {\n            return true;\n        } else {\n            return false;\n        }\n    }\n```\n\n### 实际运用\n\n根据 pc 或者移动端控制飘花数目，降低 cpu 消耗，减少卡顿。[demo](https://www.lruihao.cn)\n\n```\n  <script>\n    function sakuraInit() {\n        $(document).snowfall('clear');\n        var userAgentInfo = navigator.userAgent;\n        var Agents = [\"Android\", \"iPhone\",\n                    \"SymbianOS\", \"Windows Phone\",\n                    \"iPad\", \"iPod\"];\n        var flag = true;\n        for (var v = 0; v < Agents.length; v++) {\n            if (userAgentInfo.indexOf(Agents[v]) > 0) {\n                flag = false;\n                break;\n            }\n        }\n        if (flag) {\n            $(document).snowfall({image:\"images/1.png\", flakeCount:5, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/2.png\", flakeCount:5, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/3.png\", flakeCount:5, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/4.png\", flakeCount:5, minSpeed:1, minSize:8, maxSize:15,});\n        } else {\n            $(document).snowfall({image:\"images/1.png\", flakeCount:2, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/2.png\", flakeCount:2, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/3.png\", flakeCount:2, minSpeed:1, minSize:8, maxSize:15,});\n            $(document).snowfall({image:\"images/4.png\", flakeCount:2, minSpeed:1, minSize:8, maxSize:15,});\n        }\n    }\n    window.onload = sakuraInit();\n  </script>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/js-device/  \n> 转载 URL: https://www.cnblogs.com/coober/p/6594379.html\n"
  },
  {
    "path": "posts/js-fullscreen/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>JS 实现全屏和退出全屏 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\n\"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"JS 实现全屏和退出全屏\"><meta itemprop=description content=\"1 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\"><meta itemprop=datePublished content=\"2023-09-15T17:29:25+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1196\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/js-fullscreen/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"JS 实现全屏和退出全屏\"><meta property=\"og:description\" content=\"1 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-15T17:29:25+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"JS 实现全屏和退出全屏\"><meta name=twitter:description content=\"1 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/js-fullscreen/ title=\"JS 实现全屏和退出全屏 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/translation-guide/ title=中文翻译的常见问题><link rel=next type=text/html href=https://lruihao.cn/posts/vue-fullscreen-toggler/ title=\"封装 Vue FullScreenToggler 组件\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/js-fullscreen/index.md title=\"JS 实现全屏和退出全屏 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"JS 实现全屏和退出全屏\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/js-fullscreen\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":1196,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/js-fullscreen\\/\",\"datePublished\":\"2023-09-15T17:29:25+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/js-fullscreen/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>JS 实现全屏和退出全屏</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>JS 实现全屏和退出全屏</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-15 17:29:25\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-15>2023-09-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1196 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"JS 实现全屏和退出全屏\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#背景>背景</a></li><li><a href=#全屏是否可用>全屏是否可用</a></li><li><a href=#实现全屏>实现全屏</a></li><li><a href=#退出全屏>退出全屏</a></li><li><a href=#获取全屏元素>获取全屏元素</a></li><li><a href=#监听全屏模式变化>监听全屏模式变化</a></li><li><a href=#相关插件>相关插件</a></li><li><a href=#小插曲>小插曲</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=背景><span>1 背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。</p><p>Fullscreen API 是一组用于控制全屏显示的方法和属性，它们允许我们将网页内容以全屏的方式展示给用户，并提供了相应的事件来监听全屏模式的变化。</p><p>在本文中，我们将介绍如何判断浏览器是否支持全屏功能，如何实现进入全屏和退出全屏的功能，以及如何获取当前全屏元素和监听全屏模式的变化。</p><blockquote><p>注意：Fullscreen API 在不同浏览器之间可能存在差异，请在使用时进行兼容性测试和处理。</p></blockquote><h2 class=heading-element id=全屏是否可用><span>2 全屏是否可用</span>\n<a href=#%e5%85%a8%e5%b1%8f%e6%98%af%e5%90%a6%e5%8f%af%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在使用 Fullscreen API 之前，我们需要先判断当前浏览器是否支持全屏功能。可以通过 <code>document.fullscreenEnabled</code> 属性来检查。</p><p>以下是一个示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>fullscreenEnabled</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>mozFullScreenEnabled</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>webkitFullscreenEnabled</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>msFullscreenEnabled</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;浏览器支持全屏功能&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;浏览器不支持全屏功能&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>详细的 API 说明可以参考 <a href=https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API target=_blank rel=\"external nofollow noopener noreferrer\">Fullscreen API - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=实现全屏><span>3 实现全屏</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e5%85%a8%e5%b1%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>要实现全屏，我们可以使用 <code>requestFullscreen()</code> 方法。该方法可用于 DOM 元素，使其进入全屏模式。</p><p>以下是一个示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>const</span> <span class=nx>element</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;my-element&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>element</span><span class=p>.</span><span class=nx>requestFullscreen</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>element</span><span class=p>.</span><span class=nx>requestFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nx>element</span><span class=p>.</span><span class=nx>mozRequestFullScreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Firefox\n</span></span></span><span class=line><span class=cl>  <span class=nx>element</span><span class=p>.</span><span class=nx>mozRequestFullScreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nx>element</span><span class=p>.</span><span class=nx>webkitRequestFullscreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Chrome, Safari and Opera\n</span></span></span><span class=line><span class=cl>  <span class=nx>element</span><span class=p>.</span><span class=nx>webkitRequestFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nx>element</span><span class=p>.</span><span class=nx>msRequestFullscreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Internet Explorer and Edge\n</span></span></span><span class=line><span class=cl>  <span class=nx>element</span><span class=p>.</span><span class=nx>msRequestFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>详细的 API 说明可以参考 <a href=https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen target=_blank rel=\"external nofollow noopener noreferrer\">Element.requestFullscreen() - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=退出全屏><span>4 退出全屏</span>\n<a href=#%e9%80%80%e5%87%ba%e5%85%a8%e5%b1%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>当我们需要退出全屏时，可以使用 <code>exitFullscreen()</code> 方法。该方法可用于当前处于全屏状态的元素。</p><p>以下是一个示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>exitFullscreen</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>exitFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>mozCancelFullScreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Firefox\n</span></span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>mozCancelFullScreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>webkitExitFullscreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Chrome, Safari and Opera\n</span></span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>webkitExitFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>msExitFullscreen</span><span class=p>)</span> <span class=p>{</span> <span class=c1>// Internet Explorer and Edge\n</span></span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>msExitFullscreen</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>详细的 API 说明可以参考 <a href=https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen target=_blank rel=\"external nofollow noopener noreferrer\">Document.exitFullscreen() - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=获取全屏元素><span>5 获取全屏元素</span>\n<a href=#%e8%8e%b7%e5%8f%96%e5%85%a8%e5%b1%8f%e5%85%83%e7%b4%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在全屏模式下，我们可能需要获取当前处于全屏状态的元素。可以使用<code>document.fullscreenElement</code>属性来获取。</p><p>以下是一个示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>const</span> <span class=nx>fullscreenElement</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>fullscreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>mozFullScreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>webkitFullscreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>msFullscreenElement</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>fullscreenElement</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;当前全屏元素：&#39;</span><span class=p>,</span> <span class=nx>fullscreenElement</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;没有全屏元素&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>详细的 API 说明可以参考 <a href=https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenElement target=_blank rel=\"external nofollow noopener noreferrer\">Document.fullscreenElement - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=监听全屏模式变化><span>6 监听全屏模式变化</span>\n<a href=#%e7%9b%91%e5%90%ac%e5%85%a8%e5%b1%8f%e6%a8%a1%e5%bc%8f%e5%8f%98%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果我们希望在全屏模式发生变化时得到通知，可以使用 Fullscreen API 提供的事件。</p><p>以下是一个示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;fullscreenchange&#39;</span><span class=p>,</span> <span class=nx>handleFullscreenChange</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;mozfullscreenchange&#39;</span><span class=p>,</span> <span class=nx>handleFullscreenChange</span><span class=p>);</span> <span class=c1>// Firefox\n</span></span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;webkitfullscreenchange&#39;</span><span class=p>,</span> <span class=nx>handleFullscreenChange</span><span class=p>);</span> <span class=c1>// Chrome, Safari and Opera\n</span></span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;MSFullscreenChange&#39;</span><span class=p>,</span> <span class=nx>handleFullscreenChange</span><span class=p>);</span> <span class=c1>// Internet Explorer and Edge\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>handleFullscreenChange</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>fullscreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>mozFullScreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>webkitFullscreenElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>msFullscreenElement</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;进入全屏模式&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;退出全屏模式&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>通过添加相应的事件监听器，可以在全屏模式变化时执行自定义的处理函数。</p><h2 class=heading-element id=相关插件><span>7 相关插件</span>\n<a href=#%e7%9b%b8%e5%85%b3%e6%8f%92%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>了解以上 API 后本来已经准备开始写插件了，不过秉承不重复造轮子的思想，找到了以下两个库，基本满足开发需求了。</p><ul><li><a href=https://github.com/sindresorhus/screenfull target=_blank rel=\"external nofollow noopener noreferrer\">screenfull<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/mirari/vue-fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">vue-fullscreen<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=小插曲><span>8 小插曲</span>\n<a href=#%e5%b0%8f%e6%8f%92%e6%9b%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>document.fullscreen</code>、<code>document.fullscreenElement</code>、<code>document.fullscreenEnabled</code> 的 MDN 文档中文翻译已过时，然后顺手提了一个 PR <a href=https://github.com/mdn/translated-content/pull/15859 target=_blank rel=\"external nofollow noopener noreferrer\">mdn/translated-content#15859<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=参考链接><span>9 参考链接</span>\n<a href=#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API target=_blank rel=\"external nofollow noopener noreferrer\">Fullscreen API - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen target=_blank rel=\"external nofollow noopener noreferrer\">Element.requestFullscreen() - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen target=_blank rel=\"external nofollow noopener noreferrer\">Document.exitFullscreen() - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenElement target=_blank rel=\"external nofollow noopener noreferrer\">Document.fullscreenElement - MDN Web Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/js-fullscreen/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-fullscreen.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/js-fullscreen.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20JS+%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%B1%8F%E5%92%8C%E9%80%80%E5%87%BA%E5%85%A8%E5%B1%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cJS+%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%B1%8F%E5%92%8C%E9%80%80%E5%87%BA%E5%85%A8%E5%B1%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/js-fullscreen/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-fullscreen.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/js-fullscreen/ data-title=\"JS 实现全屏和退出全屏\" data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/js-fullscreen/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/js-fullscreen/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/js-fullscreen/ data-title=\"JS 实现全屏和退出全屏\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/js-fullscreen/ data-title=\"JS 实现全屏和退出全屏\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/translation-guide/ class=post-nav-item rel=prev title=中文翻译的常见问题><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>中文翻译的常见问题</a><a href=/posts/vue-fullscreen-toggler/ class=post-nav-item rel=next title=\"封装 Vue FullScreenToggler 组件\">封装 Vue FullScreenToggler 组件<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#背景>背景</a></li><li><a href=#全屏是否可用>全屏是否可用</a></li><li><a href=#实现全屏>实现全屏</a></li><li><a href=#退出全屏>退出全屏</a></li><li><a href=#获取全屏元素>获取全屏元素</a></li><li><a href=#监听全屏模式变化>监听全屏模式变化</a></li><li><a href=#相关插件>相关插件</a></li><li><a href=#小插曲>小插曲</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0f60328123a2a79d5ddfdb6dfcdfad30.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0f60328123a2a79d5ddfdb6dfcdfad30.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/js-fullscreen/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/js-fullscreen/index.md",
    "content": "# JS 实现全屏和退出全屏\n\n\n## 背景\n\n在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\n\nFullscreen API 是一组用于控制全屏显示的方法和属性，它们允许我们将网页内容以全屏的方式展示给用户，并提供了相应的事件来监听全屏模式的变化。\n\n在本文中，我们将介绍如何判断浏览器是否支持全屏功能，如何实现进入全屏和退出全屏的功能，以及如何获取当前全屏元素和监听全屏模式的变化。\n\n> 注意：Fullscreen API 在不同浏览器之间可能存在差异，请在使用时进行兼容性测试和处理。\n\n## 全屏是否可用\n\n在使用 Fullscreen API 之前，我们需要先判断当前浏览器是否支持全屏功能。可以通过 `document.fullscreenEnabled` 属性来检查。\n\n以下是一个示例：\n\n```javascript\nif (document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled) {\n  console.log('浏览器支持全屏功能');\n} else {\n  console.log('浏览器不支持全屏功能');\n}\n```\n\n详细的 API 说明可以参考 [Fullscreen API - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API)。\n\n## 实现全屏\n\n要实现全屏，我们可以使用 `requestFullscreen()` 方法。该方法可用于 DOM 元素，使其进入全屏模式。\n\n以下是一个示例：\n\n```javascript\nconst element = document.getElementById('my-element');\nif (element.requestFullscreen) {\n  element.requestFullscreen();\n} else if (element.mozRequestFullScreen) { // Firefox\n  element.mozRequestFullScreen();\n} else if (element.webkitRequestFullscreen) { // Chrome, Safari and Opera\n  element.webkitRequestFullscreen();\n} else if (element.msRequestFullscreen) { // Internet Explorer and Edge\n  element.msRequestFullscreen();\n}\n```\n\n详细的 API 说明可以参考 [Element.requestFullscreen() - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen)。\n\n## 退出全屏\n\n当我们需要退出全屏时，可以使用 `exitFullscreen()` 方法。该方法可用于当前处于全屏状态的元素。\n\n以下是一个示例：\n\n```javascript\nif (document.exitFullscreen) {\n  document.exitFullscreen();\n} else if (document.mozCancelFullScreen) { // Firefox\n  document.mozCancelFullScreen();\n} else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera\n  document.webkitExitFullscreen();\n} else if (document.msExitFullscreen) { // Internet Explorer and Edge\n  document.msExitFullscreen();\n}\n```\n\n详细的 API 说明可以参考 [Document.exitFullscreen() - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen)。\n\n## 获取全屏元素\n\n在全屏模式下，我们可能需要获取当前处于全屏状态的元素。可以使用`document.fullscreenElement`属性来获取。\n\n以下是一个示例：\n\n```javascript\nconst fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;\n\nif (fullscreenElement) {\n  console.log('当前全屏元素：', fullscreenElement);\n} else {\n  console.log('没有全屏元素');\n}\n```\n\n详细的 API 说明可以参考 [Document.fullscreenElement - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenElement)。\n\n## 监听全屏模式变化\n\n如果我们希望在全屏模式发生变化时得到通知，可以使用 Fullscreen API 提供的事件。\n\n以下是一个示例：\n\n```javascript\ndocument.addEventListener('fullscreenchange', handleFullscreenChange);\ndocument.addEventListener('mozfullscreenchange', handleFullscreenChange); // Firefox\ndocument.addEventListener('webkitfullscreenchange', handleFullscreenChange); // Chrome, Safari and Opera\ndocument.addEventListener('MSFullscreenChange', handleFullscreenChange); // Internet Explorer and Edge\n\nfunction handleFullscreenChange() {\n  if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) {\n    console.log('进入全屏模式');\n  } else {\n    console.log('退出全屏模式');\n  }\n}\n```\n\n通过添加相应的事件监听器，可以在全屏模式变化时执行自定义的处理函数。\n\n## 相关插件\n\n了解以上 API 后本来已经准备开始写插件了，不过秉承不重复造轮子的思想，找到了以下两个库，基本满足开发需求了。\n\n- [screenfull](https://github.com/sindresorhus/screenfull)\n- [vue-fullscreen](https://github.com/mirari/vue-fullscreen)\n\n## 小插曲\n\n`document.fullscreen`、`document.fullscreenElement`、`document.fullscreenEnabled` 的 MDN 文档中文翻译已过时，然后顺手提了一个 PR [mdn/translated-content#15859](https://github.com/mdn/translated-content/pull/15859)\n\n## 参考链接\n\n- [Fullscreen API - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API)\n- [Element.requestFullscreen() - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen)\n- [Document.exitFullscreen() - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen)\n- [Document.fullscreenElement - MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreenElement)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/js-fullscreen/  \n\n"
  },
  {
    "path": "posts/js-rediscover/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>重新认识 JavaScript | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\n\"><meta name=keywords content='JavaScript,ES6'><meta itemprop=name content=\"重新认识 JavaScript\"><meta itemprop=description content=\"前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\"><meta itemprop=datePublished content=\"2022-05-01T10:59:36+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"2088\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript,ES6\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/js-rediscover/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"重新认识 JavaScript\"><meta property=\"og:description\" content=\"前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-05-01T10:59:36+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"ES6\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"重新认识 JavaScript\"><meta name=twitter:description content=\"前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/js-rediscover/ title=\"重新认识 JavaScript | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/css-scss-var/ title=\"关于 CSS 和 Scss 变量运算那些事\"><link rel=next type=text/html href=https://lruihao.cn/posts/adb-for-mac/ title=\"Mac 配置 ADB\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/js-rediscover/index.md title=\"重新认识 JavaScript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"重新认识 JavaScript\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/js-rediscover\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript, ES6\",\"wordcount\":2088,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/js-rediscover\\/\",\"datePublished\":\"2022-05-01T10:59:36+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/js-rediscover/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>重新认识 JavaScript</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>重新认识 JavaScript</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">学习 JavaScript 新特性</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2022-05-01 10:59:36\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-05-01>2022-05-01</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"2088 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"重新认识 JavaScript\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#数组方法-some-every-find-filter-map>数组方法 some, every, find, filter, map</a></li><li><a href=#使用-objecthasown-替代-in-操作符>使用 <code>Object.hasOwn</code> 替代 <code>in</code> 操作符</a></li><li><a href=#使用--声明私有属性>使用 &ldquo;#&rdquo; 声明私有属性</a></li><li><a href=#有用的数字分隔符>有用的数字分隔符</a></li><li><a href=#---的使用>&ldquo;?.&rdquo;, &ldquo;??&rdquo;, &ldquo;??=&rdquo; 的使用</a></li><li><a href=#使用-bigint-支持大数计算>使用 BigInt 支持大数计算</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>前言<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。</p><p>每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。</p></div></div></div><h2 class=heading-element id=数组方法-some-every-find-filter-map><span>1 数组方法 some, every, find, filter, map</span>\n<a href=#%e6%95%b0%e7%bb%84%e6%96%b9%e6%b3%95-some-every-find-filter-map class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>共同点：这几个方法都不会改变原始数组。</p></blockquote><p><strong><a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some target=_blank rel=\"external nofollow noopener noreferrer\">some<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><p><code>some()</code> 方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试，它返回一个布尔值。</p><p>数组中有至少一个元素通过回调函数的测试就会返回 <code>true</code>，所有元素都没有通过回调函数的测试返回值才会为 <code>false</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>arr</span><span class=p>.</span><span class=nx>some</span><span class=p>(</span><span class=nx>callback</span><span class=p>(</span><span class=nx>element</span><span class=p>[,</span> <span class=nx>index</span><span class=p>[,</span> <span class=nx>array</span><span class=p>]])[,</span> <span class=nx>thisArg</span><span class=p>])</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=p>[</span><span class=mi>2</span><span class=p>,</span> <span class=mi>5</span><span class=p>,</span> <span class=mi>8</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>4</span><span class=p>].</span><span class=nx>some</span><span class=p>((</span><span class=nx>x</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>x</span> <span class=o>&gt;</span> <span class=mi>10</span><span class=p>);</span> <span class=c1>// false\n</span></span></span><span class=line><span class=cl><span class=p>[</span><span class=mi>12</span><span class=p>,</span> <span class=mi>5</span><span class=p>,</span> <span class=mi>8</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>4</span><span class=p>].</span><span class=nx>some</span><span class=p>((</span><span class=nx>x</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>x</span> <span class=o>&gt;</span> <span class=mi>10</span><span class=p>);</span> <span class=c1>// true\n</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>技巧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><code>some()</code> 不会对空数组进行检测，空数组返回 <code>false</code></div></div></div><p><strong><a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/every target=_blank rel=\"external nofollow noopener noreferrer\">every<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><blockquote><p>助记：<code>every()</code> 和 <code>some()</code> 功能相反</p></blockquote><p><code>every()</code> 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试，它返回一个布尔值。</p><p>如果回调函数的每一次返回都为 <a href=https://developer.mozilla.org/zh-CN/docs/Glossary/Truthy target=_blank rel=\"external nofollow noopener noreferrer\">truthy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 值，返回 <code>true</code> ，否则返回 <code>false</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>arr</span><span class=p>.</span><span class=nx>every</span><span class=p>(</span><span class=nx>callback</span><span class=p>(</span><span class=nx>element</span><span class=p>[,</span> <span class=nx>index</span><span class=p>[,</span> <span class=nx>array</span><span class=p>]])[,</span> <span class=nx>thisArg</span><span class=p>])</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=p>[</span><span class=mi>12</span><span class=p>,</span> <span class=mi>5</span><span class=p>,</span> <span class=mi>8</span><span class=p>,</span> <span class=mi>130</span><span class=p>,</span> <span class=mi>44</span><span class=p>].</span><span class=nx>every</span><span class=p>((</span><span class=nx>x</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>x</span> <span class=o>&gt;=</span> <span class=mi>10</span><span class=p>);</span> <span class=c1>// false\n</span></span></span><span class=line><span class=cl><span class=p>[</span><span class=mi>12</span><span class=p>,</span> <span class=mi>54</span><span class=p>,</span> <span class=mi>18</span><span class=p>,</span> <span class=mi>130</span><span class=p>,</span> <span class=mi>44</span><span class=p>].</span><span class=nx>every</span><span class=p>((</span><span class=nx>x</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>x</span> <span class=o>&gt;=</span> <span class=mi>10</span><span class=p>);</span> <span class=c1>// true\n</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>技巧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><code>every()</code> 不会对空数组进行检测，空数组返回 <code>true</code></div></div></div><p><strong><a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/find target=_blank rel=\"external nofollow noopener noreferrer\">Find<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><blockquote><p>助记：功能和 <code>some()</code> 类似，<code>some()</code> 返回布尔值，<code>find()</code> 返回<strong>找到</strong>的元素</p></blockquote><p><code>find()</code> 方法返回数组中满足提供的测试函数的第一个元素的值，否则返回 <a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/undefined target=_blank rel=\"external nofollow noopener noreferrer\"><code>undefined</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>arr</span><span class=p>.</span><span class=nx>find</span><span class=p>(</span><span class=nx>callback</span><span class=p>[,</span> <span class=nx>thisArg</span><span class=p>])</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>array1</span> <span class=o>=</span> <span class=p>[</span><span class=mi>5</span><span class=p>,</span> <span class=mi>12</span><span class=p>,</span> <span class=mi>8</span><span class=p>,</span> <span class=mi>130</span><span class=p>,</span> <span class=mi>44</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>found</span> <span class=o>=</span> <span class=nx>array1</span><span class=p>.</span><span class=nx>find</span><span class=p>((</span><span class=nx>element</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>element</span> <span class=o>&gt;</span> <span class=mi>10</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>found</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>// expected output: 12\n</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition quote open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-quote-right\" aria-hidden=true></i>引用<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>另请参见 <a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex target=_blank rel=\"external nofollow noopener noreferrer\"><code>findIndex()</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 方法，它返回数组中找到的元素的索引，而不是其值。</p><p>如果你需要找到一个元素的位置或者一个元素是否存在于数组中，使用 <a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf target=_blank rel=\"external nofollow noopener noreferrer\"><code>Array.prototype.indexOf()</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或 <a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes target=_blank rel=\"external nofollow noopener noreferrer\"><code>Array.prototype.includes()</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div></div></div><p><strong><a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter target=_blank rel=\"external nofollow noopener noreferrer\">filter<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><blockquote><p>助记：如字面意思，它是一个筛子，会筛选出满足条件的元素</p></blockquote><p><code>filter()</code> 方法创建一个新数组，其包含通过所提供函数实现的测试的所有元素。</p><p>返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>var</span> <span class=nx>newArray</span> <span class=o>=</span> <span class=nx>arr</span><span class=p>.</span><span class=nx>filter</span><span class=p>(</span><span class=nx>callback</span><span class=p>(</span><span class=nx>element</span><span class=p>[,</span> <span class=nx>index</span><span class=p>[,</span> <span class=nx>array</span><span class=p>]])[,</span> <span class=nx>thisArg</span><span class=p>])</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>words</span> <span class=o>=</span> <span class=p>[</span><span class=s1>&#39;spray&#39;</span><span class=p>,</span> <span class=s1>&#39;limit&#39;</span><span class=p>,</span> <span class=s1>&#39;elite&#39;</span><span class=p>,</span> <span class=s1>&#39;exuberant&#39;</span><span class=p>,</span> <span class=s1>&#39;destruction&#39;</span><span class=p>,</span> <span class=s1>&#39;present&#39;</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>result</span> <span class=o>=</span> <span class=nx>words</span><span class=p>.</span><span class=nx>filter</span><span class=p>((</span><span class=nx>word</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>word</span><span class=p>.</span><span class=nx>length</span> <span class=o>&gt;</span> <span class=mi>6</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>result</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>// expected output: Array [&#34;exuberant&#34;, &#34;destruction&#34;, &#34;present&#34;]\n</span></span></span></code></pre></td></tr></table></div></div></div><p><strong><a href=https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map target=_blank rel=\"external nofollow noopener noreferrer\">map<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p><blockquote><p>助记：功能和 <code>filter()</code> 类似，<code>filter()</code> 返回筛选的元素，<code>map()</code> 返回筛选的结果值</p></blockquote><p><code>map()</code> 方法创建一个新数组，这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。</p><p>返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>var</span> <span class=nx>new_array</span> <span class=o>=</span> <span class=nx>arr</span><span class=p>.</span><span class=nx>map</span><span class=p>(</span><span class=kd>function</span> <span class=nx>callback</span><span class=p>(</span><span class=nx>currentValue</span><span class=p>[,</span> <span class=nx>index</span><span class=p>[,</span> <span class=nx>array</span><span class=p>]])</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl> <span class=c1>// Return element for new_array\n</span></span></span><span class=line><span class=cl><span class=p>}[,</span> <span class=nx>thisArg</span><span class=p>])</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>array1</span> <span class=o>=</span> <span class=p>[</span><span class=mi>1</span><span class=p>,</span> <span class=mi>4</span><span class=p>,</span> <span class=mi>9</span><span class=p>,</span> <span class=mi>16</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// pass a function to map\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>map1</span> <span class=o>=</span> <span class=nx>array1</span><span class=p>.</span><span class=nx>map</span><span class=p>((</span><span class=nx>x</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>x</span> <span class=o>*</span> <span class=mi>2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>map1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>// expected output: Array [2, 8, 18, 32]\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用-objecthasown-替代-in-操作符><span>2 使用 <code>Object.hasOwn</code> 替代 <code>in</code> 操作符</span>\n<a href=#%e4%bd%bf%e7%94%a8-objecthasown-%e6%9b%bf%e4%bb%a3-in-%e6%93%8d%e4%bd%9c%e7%ac%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>有时，我们想知道对象上是否存在某个属性，一般会使用 <code>in</code> 操作符或 <code>obj.hasOwnProperty</code>，但它们都有各自的缺陷。</p><p><strong>in</strong></p><p>如果指定的属性位于对象或其原型链中，<code>in</code> 运算符将返回 <code>true</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>const</span> <span class=nx>Person</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>age</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>this</span><span class=p>.</span><span class=nx>age</span> <span class=o>=</span> <span class=nx>age</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=nx>Person</span><span class=p>.</span><span class=nx>prototype</span><span class=p>.</span><span class=nx>name</span> <span class=o>=</span> <span class=s1>&#39;fatfish&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>p1</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Person</span><span class=p>(</span><span class=mi>24</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;age&#39;</span> <span class=k>in</span> <span class=nx>p1</span><span class=p>);</span> <span class=c1>// true\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;name&#39;</span> <span class=k>in</span> <span class=nx>p1</span><span class=p>);</span> <span class=c1>// true  注意这里\n</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>obj.hasOwnProperty</strong></p><p><code>hasOwnProperty</code> 方法会返回一个布尔值，表示对象<strong>自身属性</strong>中是否具有对应的值（原型链上的属性不会读取）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>const</span> <span class=nx>Person</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>age</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>this</span><span class=p>.</span><span class=nx>age</span> <span class=o>=</span> <span class=nx>age</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=nx>Person</span><span class=p>.</span><span class=nx>prototype</span><span class=p>.</span><span class=nx>name</span> <span class=o>=</span> <span class=s1>&#39;fatfish&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>p1</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Person</span><span class=p>(</span><span class=mi>24</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>hasOwnProperty</span><span class=p>(</span><span class=s1>&#39;age&#39;</span><span class=p>));</span> <span class=c1>// true\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>hasOwnProperty</span><span class=p>(</span><span class=s1>&#39;name&#39;</span><span class=p>));</span> <span class=c1>// fasle  注意这里\n</span></span></span></code></pre></td></tr></table></div></div></div><p><code>obj.hasOwnProperty</code> 已经可以过滤掉原型链上的属性，但在某些情况下，它还是不安全。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nb>Object</span><span class=p>.</span><span class=nx>create</span><span class=p>(</span><span class=kc>null</span><span class=p>).</span><span class=nx>hasOwnProperty</span><span class=p>(</span><span class=s1>&#39;name&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>// Uncaught TypeError: Object.create(...).hasOwnProperty is not a function\n</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>Object.hasOwn</strong></p><p>别急，我们可以使用 <code>Object.hasOwn</code> 来避免这两个问题，这比 <code>obj.hasOwnProperty</code> 方法更加方便、安全。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kd>let</span> <span class=nx>object</span> <span class=o>=</span> <span class=p>{</span> <span class=nx>age</span><span class=o>:</span> <span class=mi>24</span> <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=nb>Object</span><span class=p>.</span><span class=nx>hasOwn</span><span class=p>(</span><span class=nx>object</span><span class=p>,</span> <span class=s1>&#39;age&#39;</span><span class=p>);</span> <span class=c1>// true\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>object3</span> <span class=o>=</span> <span class=nb>Object</span><span class=p>.</span><span class=nx>create</span><span class=p>(</span><span class=kc>null</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nb>Object</span><span class=p>.</span><span class=nx>hasOwn</span><span class=p>(</span><span class=nx>object3</span><span class=p>,</span> <span class=s1>&#39;age&#39;</span><span class=p>);</span> <span class=c1>// false\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用--声明私有属性><span>3 使用 &ldquo;#&rdquo; 声明私有属性</span>\n<a href=#%e4%bd%bf%e7%94%a8--%e5%a3%b0%e6%98%8e%e7%a7%81%e6%9c%89%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以前，我们一般用 <code>_</code> 表示私有属性，但它并不靠谱，还是会被外部修改。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>class</span> <span class=nx>Person</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>constructor</span><span class=p>(</span><span class=nx>name</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>_money</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>name</span> <span class=o>=</span> <span class=nx>name</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>get</span> <span class=nx>money</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=k>this</span><span class=p>.</span><span class=nx>_money</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>set</span> <span class=nx>money</span><span class=p>(</span><span class=nx>money</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>_money</span> <span class=o>=</span> <span class=nx>money</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>showMoney</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>_money</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>p1</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Person</span><span class=p>(</span><span class=s1>&#39;fatfish&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>money</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>_money</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span><span class=line><span class=cl><span class=nx>p1</span><span class=p>.</span><span class=nx>_money</span> <span class=o>=</span> <span class=mi>2</span><span class=p>;</span> <span class=c1>// 依旧可以从外部修改_money 属性，所以这种做法并不安全\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>money</span><span class=p>);</span> <span class=c1>// 2\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>_money</span><span class=p>);</span> <span class=c1>// 2\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><strong>使用 <code>#</code> 实现真正私有属性</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>class</span> <span class=nx>Person</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=err>#</span><span class=nx>money</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>constructor</span><span class=p>(</span><span class=nx>name</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>name</span> <span class=o>=</span> <span class=nx>name</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>get</span> <span class=nx>money</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=k>this</span><span class=p>.</span><span class=err>#</span><span class=nx>money</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>set</span> <span class=nx>money</span><span class=p>(</span><span class=nx>money</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=err>#</span><span class=nx>money</span> <span class=o>=</span> <span class=nx>money</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>showMoney</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=err>#</span><span class=nx>money</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>p1</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Person</span><span class=p>(</span><span class=s1>&#39;fatfish&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>money</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span><span class=line><span class=cl><span class=c1>// p1.#money = 2 // 没法从外部直接修改\n</span></span></span><span class=line><span class=cl><span class=nx>p1</span><span class=p>.</span><span class=nx>money</span> <span class=o>=</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=nx>money</span><span class=p>);</span> <span class=c1>// 2\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>p1</span><span class=p>.</span><span class=err>#</span><span class=nx>money</span><span class=p>);</span> <span class=c1>// Uncaught SyntaxError: Private field &#39;#money&#39; must be declared in an enclosing class\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=有用的数字分隔符><span>4 有用的数字分隔符</span>\n<a href=#%e6%9c%89%e7%94%a8%e7%9a%84%e6%95%b0%e5%ad%97%e5%88%86%e9%9a%94%e7%ac%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以使用 <code>_</code> 分隔数字，当然也可以用于计算</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=c1>// ✅ 更加易于阅读\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>newSixBillion</span> <span class=o>=</span> <span class=mi>6000_000_000</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>// ❌ 难以阅读\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>originSixBillion</span> <span class=o>=</span> <span class=mi>6000000000</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>newSixBillion</span> <span class=o>===</span> <span class=nx>originSixBillion</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=c1>// expected output: true\n</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>const</span> <span class=nx>sum</span> <span class=o>=</span> <span class=mi>1000</span> <span class=o>+</span> <span class=mi>6000_000_000</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>// expected output: 6000001000\n</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>技巧<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>另外，我们写时间时，<code>24*60*60*1000</code> 的可读性也是远大于 <code>86400000</code> 的。</div></div></div><h2 class=heading-element id=---的使用><span>5 &ldquo;?.&rdquo;, &ldquo;??&rdquo;, &ldquo;??=&rdquo; 的使用</span>\n<a href=#---%e7%9a%84%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><strong>可选链 ?.</strong></p><p>以前我们为了简化 <code>if else</code>，通常会写出这样的代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>obj</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>obj</span> <span class=o>&amp;&amp;</span> <span class=nx>obj</span><span class=p>.</span><span class=nx>name</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>$title</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;.title&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>title</span> <span class=o>=</span> <span class=nx>$title</span> <span class=o>?</span> <span class=nx>title</span><span class=p>.</span><span class=nx>innerText</span> <span class=o>:</span> <span class=kc>undefined</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p>使用 <code>?.</code> 简化 <code>&&</code> 和三元运算符</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>obj</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>obj</span><span class=o>?</span><span class=p>.</span><span class=nx>name</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>$title</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;.title&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>title</span> <span class=o>=</span> <span class=nx>$title</span><span class=o>?</span><span class=p>.</span><span class=nx>innerText</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>空值合并运算符 ??</strong></p><p>之前给变量赋默认值时，我们一般会用 <code>||</code> 来写，比如</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>foo</span> <span class=o>||</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>bar</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>foo</span> <span class=o>||</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>bar</span><span class=p>);</span> <span class=c1>// 2 注意这里\n</span></span></span></code></pre></td></tr></table></div></div></div><p>所以，<code>||</code> 有时候并不是很安全，所以我们不得不加判断</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>foo</span> <span class=o>!==</span> <span class=kc>undefined</span> <span class=o>?</span> <span class=nx>foo</span> <span class=o>:</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>bar</span><span class=p>);</span> <span class=c1>// 0\n</span></span></span></code></pre></td></tr></table></div></div></div><p>现在使用 <code>??</code> 可以使代码更加优雅</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>foo</span> <span class=o>??</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>bar</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>foo</span> <span class=o>??</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>bar</span><span class=p>);</span> <span class=c1>// 0\n</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>空值赋值运算符 ??=</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>foo</span> <span class=o>??=</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>foo</span><span class=p>);</span> <span class=c1>// 0\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>foo</span> <span class=o>??=</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>foo</span><span class=p>);</span> <span class=c1>// 1\n</span></span></span></code></pre></td></tr></table></div></div></div><p>很好理解，这里的 <code>foo ??= 2</code> 等价于 <code>foo = foo ?? 2</code></p><h2 class=heading-element id=使用-bigint-支持大数计算><span>6 使用 BigInt 支持大数计算</span>\n<a href=#%e4%bd%bf%e7%94%a8-bigint-%e6%94%af%e6%8c%81%e5%a4%a7%e6%95%b0%e8%ae%a1%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>JS 中超过 <code>Number.MAX_SAFE_INTEGER</code> 的数字计算将是不安全的。</p><p><strong>Example:</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nb>Math</span><span class=p>.</span><span class=nx>pow</span><span class=p>(</span><span class=mi>2</span><span class=p>,</span> <span class=mi>53</span><span class=p>)</span> <span class=o>===</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>pow</span><span class=p>(</span><span class=mi>2</span><span class=p>,</span> <span class=mi>53</span><span class=p>)</span> <span class=o>+</span> <span class=mi>1</span><span class=p>;</span> <span class=c1>// true\n</span></span></span><span class=line><span class=cl><span class=c1>// Math.pow(2, 53) =&gt; 9007199254740992\n</span></span></span><span class=line><span class=cl><span class=c1>// Math.pow(2, 53) + 1 =&gt; 9007199254740992\n</span></span></span></code></pre></td></tr></table></div></div></div><p>使用 <code>BigInt</code> 完全可以避免这个问题</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nx>BigInt</span><span class=p>(</span><span class=nb>Math</span><span class=p>.</span><span class=nx>pow</span><span class=p>(</span><span class=mi>2</span><span class=p>,</span> <span class=mi>53</span><span class=p>))</span> <span class=o>===</span> <span class=nx>BigInt</span><span class=p>(</span><span class=nb>Math</span><span class=p>.</span><span class=nx>pow</span><span class=p>(</span><span class=mi>2</span><span class=p>,</span> <span class=mi>53</span><span class=p>))</span> <span class=o>+</span> <span class=nx>BigInt</span><span class=p>(</span><span class=mi>1</span><span class=p>);</span> <span class=c1>// false\n</span></span></span><span class=line><span class=cl><span class=c1>// BigInt(Math.pow(2, 53)) =&gt; 9007199254740992n\n</span></span></span><span class=line><span class=cl><span class=c1>// BigInt(Math.pow(2, 53)) + BigInt(1) =&gt; 9007199254740993n\n</span></span></span></code></pre></td></tr></table></div></div></div><p>要创建一个 BigInt，可以在一个整数的末尾添加字符<code>n</code>，或者调用函数 <code>BigInt()</code>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>let</span> <span class=nx>foo</span> <span class=o>=</span> <span class=nx>BigInt</span><span class=p>(</span><span class=mi>1</span><span class=p>);</span> <span class=c1>// 1n\n</span></span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>bar</span> <span class=o>=</span> <span class=nx>BigInt</span><span class=p>(</span><span class=mi>2</span><span class=p>);</span> <span class=c1>// 2n\n</span></span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>foo</span> <span class=o>&gt;</span> <span class=nx>bar</span><span class=p>);</span> <span class=c1>// false\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=mi>1</span><span class=nx>n</span> <span class=o>&gt;</span> <span class=mi>2</span><span class=nx>n</span><span class=p>);</span> <span class=c1>// false\n</span></span></span></code></pre></td></tr></table></div></div></div><p><em>学无止境，与未来的自己共勉</em></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/js-rediscover/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-rediscover.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/js-rediscover.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86+JavaScript&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%87%8D%E6%96%B0%E8%AE%A4%E8%AF%86+JavaScript%7c%0A%7cURL%7chttps://lruihao.cn/posts/js-rediscover/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-rediscover.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/js-rediscover/ data-title=\"重新认识 JavaScript\" data-hashtags=JavaScript,ES6><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/js-rediscover/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/js-rediscover/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/js-rediscover/ data-title=\"重新认识 JavaScript\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/js-rediscover/ data-title=\"重新认识 JavaScript\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/es6/ class=post-tag title=\"标签 - ES6\">ES6</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/css-scss-var/ class=post-nav-item rel=prev title=\"关于 CSS 和 Scss 变量运算那些事\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>关于 CSS 和 Scss 变量运算那些事</a><a href=/posts/adb-for-mac/ class=post-nav-item rel=next title=\"Mac 配置 ADB\">Mac 配置 ADB<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#数组方法-some-every-find-filter-map>数组方法 some, every, find, filter, map</a></li><li><a href=#使用-objecthasown-替代-in-操作符>使用 <code>Object.hasOwn</code> 替代 <code>in</code> 操作符</a></li><li><a href=#使用--声明私有属性>使用 &ldquo;#&rdquo; 声明私有属性</a></li><li><a href=#有用的数字分隔符>有用的数字分隔符</a></li><li><a href=#---的使用>&ldquo;?.&rdquo;, &ldquo;??&rdquo;, &ldquo;??=&rdquo; 的使用</a></li><li><a href=#使用-bigint-支持大数计算>使用 BigInt 支持大数计算</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/adc208d6cb444ffdd3a5dce73c2baee7.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/adc208d6cb444ffdd3a5dce73c2baee7.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/js-rediscover/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/js-rediscover/index.md",
    "content": "# 重新认识 JavaScript\n\n\n{{< admonition tip \"前言\" >}}\n\n前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\n\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\n\n{{< /admonition >}}\n\n<!--more-->\n\n## 数组方法 some, every, find, filter, map\n\n> 共同点：这几个方法都不会改变原始数组。\n\n**[some](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some)**\n\n`some()` 方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试，它返回一个布尔值。\n\n数组中有至少一个元素通过回调函数的测试就会返回 `true`，所有元素都没有通过回调函数的测试返回值才会为 `false`。\n\n```js\narr.some(callback(element[, index[, array]])[, thisArg])\n```\n\n```js\n[2, 5, 8, 1, 4].some((x) => x > 10); // false\n[12, 5, 8, 1, 4].some((x) => x > 10); // true\n```\n\n{{< admonition tip >}}\n\n`some()` 不会对空数组进行检测，空数组返回 `false`\n\n{{< /admonition >}}\n\n**[every](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/every)**\n\n> 助记：`every()` 和 `some()` 功能相反\n\n`every()` 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试，它返回一个布尔值。\n\n如果回调函数的每一次返回都为 [truthy](https://developer.mozilla.org/zh-CN/docs/Glossary/Truthy) 值，返回 `true` ，否则返回 `false`。\n\n```js\narr.every(callback(element[, index[, array]])[, thisArg])\n```\n\n```js\n[12, 5, 8, 130, 44].every((x) => x >= 10); // false\n[12, 54, 18, 130, 44].every((x) => x >= 10); // true\n```\n\n{{< admonition tip >}}\n\n`every()` 不会对空数组进行检测，空数组返回 `true`\n\n{{< /admonition >}}\n\n**[Find](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/find)**\n\n> 助记：功能和 `some()` 类似，`some()` 返回布尔值，`find()` 返回**找到**的元素\n\n`find()` 方法返回数组中满足提供的测试函数的第一个元素的值，否则返回 [`undefined`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/undefined)。\n\n```js\narr.find(callback[, thisArg])\n```\n\n```js\nconst array1 = [5, 12, 8, 130, 44];\n\nconst found = array1.find((element) => element > 10);\n\nconsole.log(found);\n// expected output: 12\n```\n\n{{< admonition quote >}}\n\n另请参见 [`findIndex()`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex) 方法，它返回数组中找到的元素的索引，而不是其值。\n\n如果你需要找到一个元素的位置或者一个元素是否存在于数组中，使用 [`Array.prototype.indexOf()`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) 或 [`Array.prototype.includes()`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)。\n\n{{< /admonition >}}\n\n**[filter](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)**\n\n> 助记：如字面意思，它是一个筛子，会筛选出满足条件的元素\n\n`filter()` 方法创建一个新数组，其包含通过所提供函数实现的测试的所有元素。\n\n返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。\n\n```js\nvar newArray = arr.filter(callback(element[, index[, array]])[, thisArg])\n```\n\n```js\nconst words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];\n\nconst result = words.filter((word) => word.length > 6);\n\nconsole.log(result);\n// expected output: Array [\"exuberant\", \"destruction\", \"present\"]\n```\n\n**[map](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map)**\n\n> 助记：功能和 `filter()` 类似，`filter()` 返回筛选的元素，`map()` 返回筛选的结果值\n\n`map()` 方法创建一个新数组，这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。\n\n返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。\n\n```js\nvar new_array = arr.map(function callback(currentValue[, index[, array]]) {\n // Return element for new_array\n}[, thisArg])\n```\n\n```js\nconst array1 = [1, 4, 9, 16];\n\n// pass a function to map\nconst map1 = array1.map((x) => x * 2);\n\nconsole.log(map1);\n// expected output: Array [2, 8, 18, 32]\n```\n\n## 使用 `Object.hasOwn` 替代 `in` 操作符\n\n有时，我们想知道对象上是否存在某个属性，一般会使用 `in` 操作符或 `obj.hasOwnProperty`，但它们都有各自的缺陷。\n\n**in**\n\n如果指定的属性位于对象或其原型链中，`in` 运算符将返回 `true`。\n\n```javascript\nconst Person = function (age) {\n  this.age = age;\n};\nPerson.prototype.name = 'fatfish';\n\nconst p1 = new Person(24);\nconsole.log('age' in p1); // true\nconsole.log('name' in p1); // true  注意这里\n```\n\n**obj.hasOwnProperty**\n\n`hasOwnProperty` 方法会返回一个布尔值，表示对象**自身属性**中是否具有对应的值（原型链上的属性不会读取）。\n\n```javascript\nconst Person = function (age) {\n  this.age = age;\n};\nPerson.prototype.name = 'fatfish';\n\nconst p1 = new Person(24);\nconsole.log(p1.hasOwnProperty('age')); // true\nconsole.log(p1.hasOwnProperty('name')); // fasle  注意这里\n```\n\n`obj.hasOwnProperty` 已经可以过滤掉原型链上的属性，但在某些情况下，它还是不安全。\n\n```javascript\nObject.create(null).hasOwnProperty('name');\n// Uncaught TypeError: Object.create(...).hasOwnProperty is not a function\n```\n\n**Object.hasOwn**\n\n别急，我们可以使用 `Object.hasOwn` 来避免这两个问题，这比 `obj.hasOwnProperty` 方法更加方便、安全。\n\n```javascript\nlet object = { age: 24 };\nObject.hasOwn(object, 'age'); // true\n\nlet object3 = Object.create(null);\nObject.hasOwn(object3, 'age'); // false\n```\n\n## 使用 \"#\" 声明私有属性\n\n以前，我们一般用 `_` 表示私有属性，但它并不靠谱，还是会被外部修改。\n\n```javascript\nclass Person {\n  constructor(name) {\n    this._money = 1;\n    this.name = name;\n  }\n  get money() {\n    return this._money;\n  }\n  set money(money) {\n    this._money = money;\n  }\n  showMoney() {\n    console.log(this._money);\n  }\n}\nconst p1 = new Person('fatfish');\nconsole.log(p1.money); // 1\nconsole.log(p1._money); // 1\np1._money = 2; // 依旧可以从外部修改_money 属性，所以这种做法并不安全\nconsole.log(p1.money); // 2\nconsole.log(p1._money); // 2\n```\n\n**使用 `#` 实现真正私有属性**\n\n```javascript\nclass Person {\n  #money = 1;\n  constructor(name) {\n    this.name = name;\n  }\n  get money() {\n    return this.#money;\n  }\n  set money(money) {\n    this.#money = money;\n  }\n  showMoney() {\n    console.log(this.#money);\n  }\n}\nconst p1 = new Person('fatfish');\nconsole.log(p1.money); // 1\n// p1.#money = 2 // 没法从外部直接修改\np1.money = 2;\nconsole.log(p1.money); // 2\nconsole.log(p1.#money); // Uncaught SyntaxError: Private field '#money' must be declared in an enclosing class\n```\n\n## 有用的数字分隔符\n\n可以使用 `_` 分隔数字，当然也可以用于计算\n\n```javascript\n// ✅ 更加易于阅读\nconst newSixBillion = 6000_000_000;\n// ❌ 难以阅读\nconst originSixBillion = 6000000000;\n\nconsole.log(newSixBillion === originSixBillion);\n// expected output: true\n```\n\n```javascript\nconst sum = 1000 + 6000_000_000;\n// expected output: 6000001000\n```\n\n{{< admonition tip >}}\n\n另外，我们写时间时，`24*60*60*1000` 的可读性也是远大于 `86400000` 的。\n\n{{< /admonition >}}\n\n## \"?.\", \"??\", \"??=\" 的使用\n\n**可选链 ?.**\n\n以前我们为了简化 `if else`，通常会写出这样的代码\n\n```js\nconst obj = null;\nconsole.log(obj && obj.name);\n\nconst $title = document.querySelector('.title');\nconst title = $title ? title.innerText : undefined;\n```\n\n使用 `?.` 简化 `&&` 和三元运算符\n\n```js\nconst obj = null;\nconsole.log(obj?.name);\n\nconst $title = document.querySelector('.title');\nconst title = $title?.innerText;\n```\n\n**空值合并运算符 ??**\n\n之前给变量赋默认值时，我们一般会用 `||` 来写，比如\n\n```js\nlet foo = 1;\nlet bar = foo || 2;\nconsole.log(bar); // 1\n\nlet foo = 0;\nlet bar = foo || 2;\nconsole.log(bar); // 2 注意这里\n```\n\n所以，`||` 有时候并不是很安全，所以我们不得不加判断\n\n```js\nlet foo = 0;\nlet bar = foo !== undefined ? foo : 2;\nconsole.log(bar); // 0\n```\n\n现在使用 `??` 可以使代码更加优雅\n\n```js\nlet foo = 1;\nlet bar = foo ?? 2;\nconsole.log(bar); // 1\n\nlet foo = 0;\nlet bar = foo ?? 2;\nconsole.log(bar); // 0\n```\n\n**空值赋值运算符 ??=**\n\n```js\nlet foo = 0;\nfoo ??= 2;\nconsole.log(foo); // 0\n\nlet foo = 1;\nfoo ??= 2;\nconsole.log(foo); // 1\n```\n\n很好理解，这里的 `foo ??= 2` 等价于 `foo = foo ?? 2`\n\n## 使用 BigInt 支持大数计算\n\nJS 中超过 `Number.MAX_SAFE_INTEGER` 的数字计算将是不安全的。\n\n**Example:**\n\n```javascript\nMath.pow(2, 53) === Math.pow(2, 53) + 1; // true\n// Math.pow(2, 53) => 9007199254740992\n// Math.pow(2, 53) + 1 => 9007199254740992\n```\n\n使用 `BigInt` 完全可以避免这个问题\n\n```javascript\nBigInt(Math.pow(2, 53)) === BigInt(Math.pow(2, 53)) + BigInt(1); // false\n// BigInt(Math.pow(2, 53)) => 9007199254740992n\n// BigInt(Math.pow(2, 53)) + BigInt(1) => 9007199254740993n\n```\n\n要创建一个 BigInt，可以在一个整数的末尾添加字符`n`，或者调用函数 `BigInt()`。\n\n```js\nlet foo = BigInt(1); // 1n\nlet bar = BigInt(2); // 2n\nconsole.log(foo > bar); // false\n\nconsole.log(1n > 2n); // false\n```\n\n_学无止境，与未来的自己共勉_\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/js-rediscover/  \n\n"
  },
  {
    "path": "posts/js-vcode/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>JS 验证码 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 请点击验证码处：↑ \"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"JS 验证码\"><meta itemprop=description content=\"请点击验证码处：↑\"><meta itemprop=datePublished content=\"2019-03-04T20:53:09+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"469\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/js-vcode/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"JS 验证码\"><meta property=\"og:description\" content=\"请点击验证码处：↑\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-04T20:53:09+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"JS 验证码\"><meta name=twitter:description content=\"请点击验证码处：↑\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/js-vcode/ title=\"JS 验证码 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/renative/ title=还乡><link rel=next type=text/html href=https://lruihao.cn/posts/cipanadmin/ title=磁盘存储器的管理><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/js-vcode/index.md title=\"JS 验证码 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"JS 验证码\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/js-vcode\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":469,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/js-vcode\\/\",\"datePublished\":\"2019-03-04T20:53:09+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/js-vcode/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>JS 验证码</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>JS 验证码</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-04 20:53:09\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-04>2019-03-04</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"469 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"JS 验证码\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><style type=text/css># code{font-family:Arial;font-style:italic;font-weight:700;border:2px solid #ddd;letter-spacing:9px;color:blue;font-size:15px}</style><script type=text/javascript>var code;function createCode(){code=\"\";for(var t,n=4,s=document.getElementById(\"code\"),o=new Array(\"人\",\"徒\",\"知\",\"枯\",\"坐\",\"息\",\"思\",\"为\",\"进\",\"德\",\"之\",\"功\",\"殊\",\"不\",\"知\",\"上\",\"达\",\"之\",\"士\",\"圆\",\"通\",\"定\",\"慧\",\"体\",\"用\",\"双\",\"修\",\"即\",\"动\",\"而\",\"静\",\"虽\",\"撄\",\"而\",\"宁\"),e=0;e<n;e++)t=Math.floor(Math.random()*35),code+=o[t];s.value=code}function validate(){var e=document.getElementById(\"input\"),t=e.value.toUpperCase();t==0?alert(\"请输入验证码\"):t!=code?(e.value=\"\",alert(\"验证码不正确，请重新输入\"),createCode()):(e.value=\"\",alert(\"验证码正确！\"))}window.onload=function(){createCode()}</script><div align=center><input type=text id=input> <input type=button id=code onclick=createCode()> <input class=btn type=button value=验证 onclick=validate()><br>请点击验证码处：↑</div><p>验证码 JS 来源互联网</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//设置一个全局的变量，便于保存验证码\n</span></span></span><span class=line><span class=cl>    <span class=kd>var</span> <span class=nx>code</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kd>function</span> <span class=nx>createCode</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//首先默认 code 为空字符串\n</span></span></span><span class=line><span class=cl>        <span class=nx>code</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//设置长度，这里看需求，我这里设置了 4\n</span></span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>codeLength</span> <span class=o>=</span> <span class=mi>4</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>codeV</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;code&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//设置随机字符\n</span></span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>random</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Array</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>4</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mi>6</span><span class=p>,</span><span class=mi>7</span><span class=p>,</span><span class=mi>8</span><span class=p>,</span><span class=mi>9</span><span class=p>,</span><span class=s1>&#39;A&#39;</span><span class=p>,</span><span class=s1>&#39;B&#39;</span><span class=p>,</span><span class=s1>&#39;C&#39;</span><span class=p>,</span><span class=s1>&#39;D&#39;</span><span class=p>,</span><span class=s1>&#39;E&#39;</span><span class=p>,</span><span class=s1>&#39;F&#39;</span><span class=p>,</span><span class=s1>&#39;G&#39;</span><span class=p>,</span><span class=s1>&#39;H&#39;</span><span class=p>,</span><span class=s1>&#39;I&#39;</span><span class=p>,</span><span class=s1>&#39;J&#39;</span><span class=p>,</span><span class=s1>&#39;K&#39;</span><span class=p>,</span><span class=s1>&#39;L&#39;</span><span class=p>,</span><span class=s1>&#39;M&#39;</span><span class=p>,</span><span class=s1>&#39;N&#39;</span><span class=p>,</span><span class=s1>&#39;O&#39;</span><span class=p>,</span><span class=s1>&#39;P&#39;</span><span class=p>,</span><span class=s1>&#39;Q&#39;</span><span class=p>,</span><span class=s1>&#39;R&#39;</span><span class=p>,</span> <span class=s1>&#39;S&#39;</span><span class=p>,</span><span class=s1>&#39;T&#39;</span><span class=p>,</span><span class=s1>&#39;U&#39;</span><span class=p>,</span><span class=s1>&#39;V&#39;</span><span class=p>,</span><span class=s1>&#39;W&#39;</span><span class=p>,</span><span class=s1>&#39;X&#39;</span><span class=p>,</span><span class=s1>&#39;Y&#39;</span><span class=p>,</span><span class=s1>&#39;Z&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//循环 codeLength 我设置的 4 就是循环 4 次\n</span></span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kd>var</span> <span class=nx>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=nx>i</span> <span class=o>&lt;</span> <span class=nx>codeLength</span><span class=p>;</span> <span class=nx>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=c1>//设置随机数范围，这设置为 0 ~ 36\n</span></span></span><span class=line><span class=cl>             <span class=kd>var</span> <span class=nx>index</span> <span class=o>=</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>floor</span><span class=p>(</span><span class=nb>Math</span><span class=p>.</span><span class=nx>random</span><span class=p>()</span><span class=o>*</span><span class=mi>36</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>             <span class=c1>//字符串拼接 将每次随机的字符 进行拼接\n</span></span></span><span class=line><span class=cl>             <span class=nx>code</span> <span class=o>+=</span> <span class=nx>random</span><span class=p>[</span><span class=nx>index</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//将拼接好的字符串赋值给展示的 Value\n</span></span></span><span class=line><span class=cl>        <span class=nx>codeV</span><span class=p>.</span><span class=nx>value</span> <span class=o>=</span> <span class=nx>code</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>//下面就是判断是否== 的代码，无需解释，也可以结合 ajax 在后台做判断\n</span></span></span><span class=line><span class=cl>    <span class=kd>function</span> <span class=nx>validate</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>Input</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;input&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>oValue</span> <span class=o>=</span> <span class=nx>Input</span><span class=p>.</span><span class=nx>value</span><span class=p>.</span><span class=nx>toUpperCase</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=nx>oValue</span> <span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;请输入验证码&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span><span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=nx>oValue</span> <span class=o>!=</span> <span class=nx>code</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=nx>Input</span><span class=p>.</span><span class=nx>value</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;验证码不正确，请重新输入&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=nx>createCode</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span><span class=k>else</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=nx>Input</span><span class=p>.</span><span class=nx>value</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;验证码正确！&#39;</span><span class=p>);</span><span class=c1>//window.open(&#39;http://lruihao.cn&#39;,&#39;_self&#39;);\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>//设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n</span></span></span><span class=line><span class=cl>    <span class=nb>window</span><span class=p>.</span><span class=nx>onload</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>(){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=nx>createCode</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/js-vcode/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-vcode.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/js-vcode.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20JS+%E9%AA%8C%E8%AF%81%E7%A0%81&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cJS+%E9%AA%8C%E8%AF%81%E7%A0%81%7c%0A%7cURL%7chttps://lruihao.cn/posts/js-vcode/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/js-vcode.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/js-vcode/ data-title=\"JS 验证码\" data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/js-vcode/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/js-vcode/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/js-vcode/ data-title=\"JS 验证码\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/js-vcode/ data-title=\"JS 验证码\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/renative/ class=post-nav-item rel=prev title=还乡><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>还乡</a><a href=/posts/cipanadmin/ class=post-nav-item rel=next title=磁盘存储器的管理>磁盘存储器的管理<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c349130a660e1b4877d286b099cb3e53.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c349130a660e1b4877d286b099cb3e53.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/js-vcode/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/js-vcode/index.md",
    "content": "# JS 验证码\n\n\n<!-- markdownlint-disable MD033 -->\n\n<style type=\"text/css\">\n\n# code{  \n\n  font-family:Arial;  \n  font-style:italic;  \n  font-weight:bold;  \n  border:2px solid #ddd;\n  letter-spacing:9px;  \n  color:blue;\n  font-size: 15px;\n}\n</style>\n\n<script type=\"text/javascript\">\n    //设置一个全局的变量，便于保存验证码\n    var code;\n    function createCode(){\n        //首先默认 code 为空字符串\n        code = '';\n        //设置长度，这里看需求，我这里设置了 4\n        var codeLength = 4;\n        var codeV = document.getElementById('code');\n        //设置随机字符\n        var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n        //循环 codeLength 我设置的 4 就是循环 4 次\n        for(var i = 0; i < codeLength; i++){\n            //设置随机数范围，这设置为 0 ~ 36\n             var index = Math.floor(Math.random()*35);\n             //字符串拼接 将每次随机的字符 进行拼接\n             code += random[index];\n        }\n        //将拼接好的字符串赋值给展示的 Value\n        codeV.value = code;\n    }\n\n    //下面就是判断是否== 的代码，无需解释\n    function validate(){\n        var Input = document.getElementById('input');\n        var oValue = Input.value.toUpperCase();\n        if(oValue ==0){\n            alert('请输入验证码');\n        }else if(oValue != code){\n            Input.value = '';\n            alert('验证码不正确，请重新输入');\n            createCode();\n        }else{\n            Input.value = '';\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\n        }\n    }\n\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n    window.onload = function (){\n\n        createCode();\n    }\n</script>\n\n<div align=\"center\">  \n    <input type = \"text\" id = \"input\" value=\"\" /> <input type = \"button\" id=\"code\" onclick=\"createCode()\"/> <input class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/>\n    <br/>请点击验证码处：↑\n</div>\n\n<!--more-->\n\n验证码 JS 来源互联网\n\n```javascript 验证码 js\n<script type=\"text/javascript\">\n    //设置一个全局的变量，便于保存验证码\n    var code;\n    function createCode(){\n        //首先默认 code 为空字符串\n        code = '';\n        //设置长度，这里看需求，我这里设置了 4\n        var codeLength = 4;\n        var codeV = document.getElementById('code');\n        //设置随机字符\n        var random = new Array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R', 'S','T','U','V','W','X','Y','Z');\n        //循环 codeLength 我设置的 4 就是循环 4 次\n        for(var i = 0; i < codeLength; i++){\n            //设置随机数范围，这设置为 0 ~ 36\n             var index = Math.floor(Math.random()*36);\n             //字符串拼接 将每次随机的字符 进行拼接\n             code += random[index];\n        }\n        //将拼接好的字符串赋值给展示的 Value\n        codeV.value = code;\n    }\n\n    //下面就是判断是否== 的代码，无需解释，也可以结合 ajax 在后台做判断\n    function validate(){\n        var Input = document.getElementById('input');\n        var oValue = Input.value.toUpperCase();\n        if(oValue ==0){\n            alert('请输入验证码');\n        }else if(oValue != code){\n            Input.value = '';\n            alert('验证码不正确，请重新输入');\n            createCode();\n        }else{\n            Input.value = '';\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\n        }\n    }\n\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n    window.onload = function (){\n\n        createCode();\n    }\n</script>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/js-vcode/  \n\n"
  },
  {
    "path": "posts/jsoninfo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 如何操作 Json？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\n\"><meta name=keywords content='Python,JSON,他山之石'><meta itemprop=name content=\"Python 如何操作 Json？\"><meta itemprop=description content=\"Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\"><meta itemprop=datePublished content=\"2019-05-07T18:42:47+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1384\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python,JSON,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/jsoninfo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Python 如何操作 Json？\"><meta property=\"og:description\" content=\"Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-07T18:42:47+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"JSON\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Python 如何操作 Json？\"><meta name=twitter:description content=\"Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/jsoninfo/ title=\"Python 如何操作 Json？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/posttest/ title=\"python 发送 post 请求进行简单的接口测试\"><link rel=next type=text/html href=https://lruihao.cn/posts/singlethreaddown/ title=\"java 实现一个单线程的资源下载器\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/jsoninfo/index.md title=\"Python 如何操作 Json？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Python 如何操作 Json？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/jsoninfo\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, JSON, 他山之石\",\"wordcount\":1384,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/jsoninfo\\/\",\"datePublished\":\"2019-05-07T18:42:47+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/jsoninfo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 如何操作 Json？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=\"https://baijiahao.baidu.com/s?id=1608659655547720220&amp;wfr=spider&amp;for=pc\" title=\"转载 -> https://baijiahao.baidu.com/s?id=1608659655547720220&amp;wfr=spider&amp;for=pc\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>Python 如何操作 Json？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-07 18:42:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-07>2019-05-07</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1384 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 如何操作 Json？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/jsoninfo/images/1.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/jsoninfo/images/1.jpg></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#json-的数据格式>json 的数据格式</a></li><li><a href=#jsondumps>json.dumps()</a></li><li><a href=#jsonloads>json.loads()</a></li><li><a href=#jsondump-和-jsonload>json.dump() 和 json.load()</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。</p></blockquote><h2 class=heading-element id=json-的数据格式><span>1 json 的数据格式</span>\n<a href=#json-%e7%9a%84%e6%95%b0%e6%8d%ae%e6%a0%bc%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 json 中，遵循“键值对”的这样一种方式，比如：“{&ldquo;name&rdquo;:&ldquo;tom&rdquo;}”, 就是一个 json 格式的数据，json 的格式归纳下来，一般有以下几点：</p><ul><li>对象通过键值对表现；</li><li>键通过双引号包裹，后面跟冒号“:”，然后跟该键的值；</li><li>值可以是字符串、数字、数组等数据类型；</li><li>对象与对象之间用逗号隔开；</li><li>“{}”用来表达对象；</li><li>“[]”用来表达数组；</li></ul><p>我们看一个略为复杂一点的例子：</p><p><a class=lightgallery target=_blank href=/posts/jsoninfo/images/2.jpg title=/posts/jsoninfo/images/2.jpg data-thumbnail=/posts/jsoninfo/images/2.jpg data-sub-html=\"<h2>/posts/jsoninfo/images/2.jpg</h2>\"><img loading=lazy src=/posts/jsoninfo/images/2.jpg alt=/posts/jsoninfo/images/2.jpg height=301 width=291></a></p><p>上例则是一个典型的 json 格式的数据，强大的 Python 提供了一个“json”模块，可以方便的将各种零散的数据通过模块的内置函数编码形成一个 json 格式的数据，也可以将一个 json 格式的数据解码形成自己需要的数据，非常好用，下面我们就来介绍一下。</p><h2 class=heading-element id=jsondumps><span>2 json.dumps()</span>\n<a href=#jsondumps class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>json 模块里的 dumps 函数是对数据进行编码，形成 json 格式的数据，我们看一下下面的例子：</p><p><a class=lightgallery target=_blank href=/posts/jsoninfo/images/3.jpg title=/posts/jsoninfo/images/3.jpg data-thumbnail=/posts/jsoninfo/images/3.jpg data-sub-html=\"<h2>/posts/jsoninfo/images/3.jpg</h2>\"><img loading=lazy src=/posts/jsoninfo/images/3.jpg alt=/posts/jsoninfo/images/3.jpg height=239 width=560></a></p><p>通过输出的结果很容易看出，通过 dumps 方法使字典转换成为了 json 格式，虽然它们非常相似。其中，在 dumps 里的参数“sort_keys=True”，使得输出 json 后对 key 和 value 进行 0<sub>9、a</sub> z 的顺序排序，如果不填，则按照无序排列。有时候，通过排序可以方便地比较 json 中的数据，因此，适当的排序是很有必要的。</p><p>此外，“Indent”参数表示缩进的意思，它可以使得输出的 Json 看起来更加整齐好看，可读性更强，例如：</p><p><a class=lightgallery target=_blank href=/posts/jsoninfo/images/4.jpg title=/posts/jsoninfo/images/4.jpg data-thumbnail=/posts/jsoninfo/images/4.jpg data-sub-html=\"<h2>/posts/jsoninfo/images/4.jpg</h2>\"><img loading=lazy src=/posts/jsoninfo/images/4.jpg alt=/posts/jsoninfo/images/4.jpg height=306 width=478></a></p><p>下面列举一下 dumps（）的可填参数：</p><ul><li>skipkey：默认为 False，当 dict 对象里的数据不是 Python 的基本数据类型；（str,unicode,int,long,float,bool,None）时，当 skipkey 为 False，就会报错，如果 skipkey 为 True，则可以跳过这类 key；</li><li>indent：如果填 0 或者不填，则按照一行进行打印，否则按照 indent 的数值显示前面的空格（正整数形式）；</li><li>separators：分隔符，默认为“(&rsquo;,&rsquo;,&rsquo;:&rsquo;)”，它表示 key 之间用“,”隔开，key 和 value 之间用“:”隔开；</li><li>encoding：编码格式，默认值是 UTF-8；</li><li>sort_keys：对 key、value 进行排序，默认值是 False，即不排序；</li><li>ensure_ascii：默认为 True，如果 dict 对象里含有 none-ASCII 的字符，则显示、uXX 的格式，如果为 False，则能正常显示出来；</li></ul><h2 class=heading-element id=jsonloads><span>3 json.loads()</span>\n<a href=#jsonloads class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>和 dumps 相反，loads 函数则是将 json 格式的数据解码，转换为 Python 字典，我们看一下下面的例子：</p><p><a class=lightgallery target=_blank href=/posts/jsoninfo/images/5.jpg title=/posts/jsoninfo/images/5.jpg data-thumbnail=/posts/jsoninfo/images/5.jpg data-sub-html=\"<h2>/posts/jsoninfo/images/5.jpg</h2>\"><img loading=lazy src=/posts/jsoninfo/images/5.jpg alt=/posts/jsoninfo/images/5.jpg height=236 width=534></a></p><p>有时候，输出结果遇到中文的时候，会出现编码格式不一样的情况，显示出为 Unicode 的编码格式，使得不易读懂，解决办法是添加参数“encoding”参数，即上面的改写成这样：d1 = json.loads(data1,encoding=&lsquo;utf-8&rsquo;) 即可。</p><h2 class=heading-element id=jsondump-和-jsonload><span>4 json.dump() 和 json.load()</span>\n<a href=#jsondump-%e5%92%8c-jsonload class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>相对于上面所讲的 dumps 和 loads 来说，dump 和 load 函数的功能类似，只不过前者是用来处理字符串类型的，而后者是用于处理文件类型的，如下所示：</p><p><a class=lightgallery target=_blank href=/posts/jsoninfo/images/6.jpg title=/posts/jsoninfo/images/6.jpg data-thumbnail=/posts/jsoninfo/images/6.jpg data-sub-html=\"<h2>/posts/jsoninfo/images/6.jpg</h2>\"><img loading=lazy src=/posts/jsoninfo/images/6.jpg alt=/posts/jsoninfo/images/6.jpg height=380 width=535></a></p><p>上例列举出了 json 的四个方法：dumps（）和 dump（）、loads（）和 load（）的简单使用方法，可见，Python 对于 json 的处理相当方便，不像 c++那样（谁用谁知道）。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/jsoninfo/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/jsoninfo/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/jsoninfo/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Python+%E5%A6%82%E4%BD%95%E6%93%8D%E4%BD%9C+Json%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cPython+%E5%A6%82%E4%BD%95%E6%93%8D%E4%BD%9C+Json%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/jsoninfo/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/jsoninfo/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/jsoninfo/ data-title=\"Python 如何操作 Json？\" data-hashtags=Python,JSON,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/jsoninfo/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/jsoninfo/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/jsoninfo/ data-title=\"Python 如何操作 Json？\" data-image=/posts/jsoninfo/images/1.jpg data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/jsoninfo/ data-title=\"Python 如何操作 Json？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/json/ class=post-tag title=\"标签 - JSON\">JSON</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/posttest/ class=post-nav-item rel=prev title=\"Python 发送 Post 请求进行简单的接口测试\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 发送 Post 请求进行简单的接口测试</a><a href=/posts/singlethreaddown/ class=post-nav-item rel=next title=\"Java 实现一个单线程的资源下载器\">Java 实现一个单线程的资源下载器<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#json-的数据格式>json 的数据格式</a></li><li><a href=#jsondumps>json.dumps()</a></li><li><a href=#jsonloads>json.loads()</a></li><li><a href=#jsondump-和-jsonload>json.dump() 和 json.load()</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a5c446f7a06efadb1547b74b2a74befd.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a5c446f7a06efadb1547b74b2a74befd.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/jsoninfo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/jsoninfo/index.md",
    "content": "# Python 如何操作 Json？\n\n\n> Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\n\n<!--more-->\n\n## json 的数据格式\n\n在 json 中，遵循“键值对”的这样一种方式，比如：“{\"name\":\"tom\"}”, 就是一个 json 格式的数据，json 的格式归纳下来，一般有以下几点：\n\n- 对象通过键值对表现；\n- 键通过双引号包裹，后面跟冒号“:”，然后跟该键的值；\n- 值可以是字符串、数字、数组等数据类型；\n- 对象与对象之间用逗号隔开；\n- “{}”用来表达对象；\n- “[]”用来表达数组；\n\n我们看一个略为复杂一点的例子：\n\n![](images/2.jpg)\n\n上例则是一个典型的 json 格式的数据，强大的 Python 提供了一个“json”模块，可以方便的将各种零散的数据通过模块的内置函数编码形成一个 json 格式的数据，也可以将一个 json 格式的数据解码形成自己需要的数据，非常好用，下面我们就来介绍一下。\n\n## json.dumps()\n\njson 模块里的 dumps 函数是对数据进行编码，形成 json 格式的数据，我们看一下下面的例子：\n\n![](images/3.jpg)\n\n通过输出的结果很容易看出，通过 dumps 方法使字典转换成为了 json 格式，虽然它们非常相似。其中，在 dumps 里的参数“sort_keys=True”，使得输出 json 后对 key 和 value 进行 0~9、a~ z 的顺序排序，如果不填，则按照无序排列。有时候，通过排序可以方便地比较 json 中的数据，因此，适当的排序是很有必要的。\n\n此外，“Indent”参数表示缩进的意思，它可以使得输出的 Json 看起来更加整齐好看，可读性更强，例如：\n\n![](images/4.jpg)\n\n下面列举一下 dumps（）的可填参数：\n\n- skipkey：默认为 False，当 dict 对象里的数据不是 Python 的基本数据类型；（str,unicode,int,long,float,bool,None）时，当 skipkey 为 False，就会报错，如果 skipkey 为 True，则可以跳过这类 key；\n- indent：如果填 0 或者不填，则按照一行进行打印，否则按照 indent 的数值显示前面的空格（正整数形式）；\n- separators：分隔符，默认为“(',',':')”，它表示 key 之间用“,”隔开，key 和 value 之间用“:”隔开；\n- encoding：编码格式，默认值是 UTF-8；\n- sort_keys：对 key、value 进行排序，默认值是 False，即不排序；\n- ensure_ascii：默认为 True，如果 dict 对象里含有 none-ASCII 的字符，则显示、uXX 的格式，如果为 False，则能正常显示出来；\n\n## json.loads()\n\n和 dumps 相反，loads 函数则是将 json 格式的数据解码，转换为 Python 字典，我们看一下下面的例子：\n\n![](images/5.jpg)\n\n有时候，输出结果遇到中文的时候，会出现编码格式不一样的情况，显示出为 Unicode 的编码格式，使得不易读懂，解决办法是添加参数“encoding”参数，即上面的改写成这样：d1 = json.loads(data1,encoding='utf-8') 即可。\n\n## json.dump() 和 json.load()\n\n相对于上面所讲的 dumps 和 loads 来说，dump 和 load 函数的功能类似，只不过前者是用来处理字符串类型的，而后者是用于处理文件类型的，如下所示：\n\n![](images/6.jpg)\n\n上例列举出了 json 的四个方法：dumps（）和 dump（）、loads（）和 load（）的简单使用方法，可见，Python 对于 json 的处理相当方便，不像 c++那样（谁用谁知道）。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/jsoninfo/  \n> 转载 URL: https://baijiahao.baidu.com/s?id=1608659655547720220&wfr=spider&for=pc\n"
  },
  {
    "path": "posts/judgetriangle/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>判断三角形的黑盒测试 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\n\"><meta name=keywords content='黑盒测试,C'><meta itemprop=name content=\"判断三角形的黑盒测试\"><meta itemprop=description content=\"黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\"><meta itemprop=datePublished content=\"2019-05-26T18:50:53+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"749\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"黑盒测试,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/judgetriangle/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"判断三角形的黑盒测试\"><meta property=\"og:description\" content=\"黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-26T18:50:53+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"黑盒测试\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"判断三角形的黑盒测试\"><meta name=twitter:description content=\"黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/judgetriangle/ title=\"判断三角形的黑盒测试 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hustoj/ title=\"HustOJ 基础搭建教程\"><link rel=next type=text/html href=https://lruihao.cn/posts/pysx1/ title=\"python 实训总结Ⅰ\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/judgetriangle/index.md title=\"判断三角形的黑盒测试 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"判断三角形的黑盒测试\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/judgetriangle\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"黑盒测试, C\",\"wordcount\":749,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/judgetriangle\\/\",\"datePublished\":\"2019-05-26T18:50:53+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/judgetriangle/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>判断三角形的黑盒测试</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>判断三角形的黑盒测试</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-26 18:50:53\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-26>2019-05-26</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"749 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=判断三角形的黑盒测试><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#程序>程序</a></li><li><a href=#测试>测试</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。<br>白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。</p></blockquote><h2 class=heading-element id=程序><span>1 程序</span>\n<a href=#%e7%a8%8b%e5%ba%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;stdlib.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#define N 2&lt;&lt;25\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=o>=</span><span class=n>N</span><span class=p>,</span><span class=n>b</span><span class=o>=</span><span class=n>N</span><span class=p>,</span><span class=n>c</span><span class=o>=</span><span class=n>N</span><span class=p>,</span><span class=n>d</span><span class=o>=</span><span class=n>N</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>shuru</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>panduan</span><span class=p>(</span><span class=kt>int</span> <span class=n>a1</span><span class=p>,</span><span class=kt>int</span> <span class=n>b1</span><span class=p>,</span><span class=kt>int</span> <span class=n>c1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>char</span> <span class=n>se</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>shuru</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=n>panduan</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;是否要继续 y or n :&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%c&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>se</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>se</span><span class=o>==</span><span class=sc>&#39;\\n&#39;</span><span class=p>)</span> <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%c&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>se</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>switch</span><span class=p>(</span><span class=n>se</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>case</span> <span class=sc>&#39;y&#39;</span><span class=o>:</span>\n</span></span><span class=line><span class=cl>          <span class=n>shuru</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>          <span class=n>panduan</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=k>break</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>case</span> <span class=sc>&#39;n&#39;</span><span class=o>:</span>\n</span></span><span class=line><span class=cl>          <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>shuru</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Please enter 三角形三边 (a,b,c)</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d,%d,%d,%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>c</span><span class=p>,</span><span class=o>&amp;</span><span class=n>d</span><span class=p>)){</span><span class=c1>//判断非数字字符\n</span></span></span><span class=line><span class=cl>        <span class=n>fflush</span><span class=p>(</span><span class=n>stdin</span><span class=p>);</span><span class=c1>//清理缓存\n</span></span></span><span class=line><span class=cl>        <span class=n>a</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>b</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>c</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>d</span><span class=o>=</span><span class=n>N</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;输入错误、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>fflush</span><span class=p>(</span><span class=n>stdin</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>((</span><span class=n>a</span><span class=o>&lt;</span><span class=mi>1</span><span class=o>||</span><span class=n>a</span><span class=o>&gt;</span><span class=mi>100</span><span class=p>)</span><span class=o>||</span><span class=p>(</span><span class=n>b</span><span class=o>&lt;</span><span class=mi>1</span><span class=o>||</span><span class=n>b</span><span class=o>&gt;</span><span class=mi>100</span><span class=p>)</span><span class=o>||</span><span class=p>(</span><span class=n>c</span><span class=o>&lt;</span><span class=mi>1</span><span class=o>||</span><span class=n>c</span><span class=o>&gt;</span><span class=mi>100</span><span class=p>)</span><span class=o>||</span><span class=n>d</span><span class=o>!=</span><span class=n>N</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=o>==</span><span class=n>N</span><span class=o>||</span><span class=n>c</span><span class=o>==</span><span class=n>N</span><span class=o>||</span><span class=n>d</span><span class=o>!=</span><span class=n>N</span><span class=p>)</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;输入错误、n&#34;</span><span class=p>);</span><span class=c1>//边数为 1、2、4 条\n</span></span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>==</span><span class=mi>0</span><span class=o>||</span><span class=n>b</span><span class=o>==</span><span class=mi>0</span><span class=o>||</span><span class=n>c</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;边长不能为 0</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>&lt;</span><span class=mi>0</span><span class=o>||</span><span class=n>b</span><span class=o>&lt;</span><span class=mi>0</span><span class=o>||</span><span class=n>c</span><span class=o>&lt;</span><span class=mi>0</span><span class=p>)</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;边长不能为负、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Please enter 1-100 之间的整数、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>a</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>b</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>c</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>d</span><span class=o>=</span><span class=n>N</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d,%d,%d,%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>c</span><span class=p>,</span><span class=o>&amp;</span><span class=n>d</span><span class=p>)){</span><span class=c1>//判断非数字字符\n</span></span></span><span class=line><span class=cl>            <span class=n>fflush</span><span class=p>(</span><span class=n>stdin</span><span class=p>);</span><span class=c1>//清理缓存\n</span></span></span><span class=line><span class=cl>            <span class=n>a</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>b</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>c</span><span class=o>=</span><span class=n>N</span><span class=p>;</span><span class=n>d</span><span class=o>=</span><span class=n>N</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;输入错误、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>fflush</span><span class=p>(</span><span class=n>stdin</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>panduan</span><span class=p>(</span><span class=kt>int</span> <span class=n>a1</span><span class=p>,</span><span class=kt>int</span> <span class=n>b1</span><span class=p>,</span><span class=kt>int</span> <span class=n>c1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>a1</span><span class=o>+</span><span class=n>b1</span><span class=o>&gt;</span><span class=n>c1</span><span class=o>&amp;&amp;</span><span class=n>b1</span><span class=o>+</span><span class=n>c1</span><span class=o>&gt;</span><span class=n>a1</span><span class=o>&amp;&amp;</span><span class=n>a1</span><span class=o>+</span><span class=n>c1</span><span class=o>&gt;</span><span class=n>b1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a1</span><span class=o>==</span><span class=n>b1</span><span class=o>&amp;&amp;</span><span class=n>a1</span><span class=o>==</span><span class=n>c1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;等边三角形、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>a1</span><span class=o>==</span><span class=n>b1</span><span class=o>||</span><span class=n>a1</span><span class=o>==</span><span class=n>c1</span><span class=o>||</span><span class=n>b1</span><span class=o>==</span><span class=n>c1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;等腰三角形、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;一般三角形、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;非三角形、n&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=测试><span>2 测试</span>\n<a href=#%e6%b5%8b%e8%af%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/judgetriangle/images/1.png title=\"测试 1\" data-thumbnail=/posts/judgetriangle/images/1.png data-sub-html=\"<h2>测试 1</h2><p>测试 1</p>\"><img loading=lazy src=/posts/judgetriangle/images/1.png alt=\"测试 1\" height=687 width=734></a><figcaption class=image-caption>测试 1</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/judgetriangle/images/2.png title=\"测试 2\" data-thumbnail=/posts/judgetriangle/images/2.png data-sub-html=\"<h2>测试 2</h2><p>测试 2</p>\"><img loading=lazy src=/posts/judgetriangle/images/2.png alt=\"测试 2\" height=639 width=1056></a><figcaption class=image-caption>测试 2</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/judgetriangle/images/3.png title=\"测试 3\" data-thumbnail=/posts/judgetriangle/images/3.png data-sub-html=\"<h2>测试 3</h2><p>测试 3</p>\"><img loading=lazy src=/posts/judgetriangle/images/3.png alt=\"测试 3\" height=639 width=997></a><figcaption class=image-caption>测试 3</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/judgetriangle/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/judgetriangle/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/judgetriangle/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%88%A4%E6%96%AD%E4%B8%89%E8%A7%92%E5%BD%A2%E7%9A%84%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%88%A4%E6%96%AD%E4%B8%89%E8%A7%92%E5%BD%A2%E7%9A%84%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/judgetriangle/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/judgetriangle/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/judgetriangle/ data-title=判断三角形的黑盒测试 data-hashtags=黑盒测试,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/judgetriangle/ data-hashtag=黑盒测试><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/judgetriangle/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/judgetriangle/ data-title=判断三角形的黑盒测试 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/judgetriangle/ data-title=判断三角形的黑盒测试><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/ class=post-tag title=\"标签 - 黑盒测试\">黑盒测试</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hustoj/ class=post-nav-item rel=prev title=\"HustOJ 基础搭建教程\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>HustOJ 基础搭建教程</a><a href=/posts/pysx1/ class=post-nav-item rel=next title=\"Python 实训总结Ⅰ\">Python 实训总结Ⅰ<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#程序>程序</a></li><li><a href=#测试>测试</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/32cb17f0202794769e79771235ba6bec.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/32cb17f0202794769e79771235ba6bec.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/judgetriangle/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/judgetriangle/index.md",
    "content": "# 判断三角形的黑盒测试\n\n\n> 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。  \n> 白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\n\n<!--more-->\n\n## 程序\n\n```cpp\n#include<stdio.h>\n#include<stdlib.h>\n#define N 2<<25\n\nint a=N,b=N,c=N,d=N;\nvoid shuru();\nvoid panduan(int a1,int b1,int c1);\nint main()\n{\n    char se;\n    shuru();\n    panduan(a,b,c);\n    while(1)\n    {\n        printf(\"是否要继续 y or n :\");\n        scanf(\"%c\",&se);\n        if(se=='\\n') scanf(\"%c\",&se);\n        switch(se)\n        {\n        case 'y':\n          shuru();\n          panduan(a,b,c);\n          break;\n        case 'n':\n          return 0;\n        }\n    }\n}\nvoid shuru()\n{\n    printf(\"Please enter 三角形三边 (a,b,c)\\n\");\n    while(!scanf(\"%d,%d,%d,%d\",&a,&b,&c,&d)){//判断非数字字符\n        fflush(stdin);//清理缓存\n        a=N;b=N;c=N;d=N;\n        printf(\"输入错误、n\");\n    }\n    fflush(stdin);\n    while((a<1||a>100)||(b<1||b>100)||(c<1||c>100)||d!=N)\n    {\n        if(b==N||c==N||d!=N) printf(\"输入错误、n\");//边数为 1、2、4 条\n        else if(a==0||b==0||c==0) printf(\"边长不能为 0\\n\");\n        else if(a<0||b<0||c<0) printf(\"边长不能为负、n\");\n        else printf(\"Please enter 1-100 之间的整数、n\");\n        a=N;b=N;c=N;d=N;\n        while(!scanf(\"%d,%d,%d,%d\",&a,&b,&c,&d)){//判断非数字字符\n            fflush(stdin);//清理缓存\n            a=N;b=N;c=N;d=N;\n            printf(\"输入错误、n\");\n        }\n        fflush(stdin);\n    }\n}\nvoid panduan(int a1,int b1,int c1)\n{\n    if(a1+b1>c1&&b1+c1>a1&&a1+c1>b1)\n    {\n        if(a1==b1&&a1==c1)\n            printf(\"等边三角形、n\");\n        else if(a1==b1||a1==c1||b1==c1)\n            printf(\"等腰三角形、n\");\n        else\n            printf(\"一般三角形、n\");\n    }\n    else\n        printf(\"非三角形、n\");\n}\n```\n\n## 测试\n\n![测试 1](images/1.png '测试 1')  \n![测试 2](images/2.png '测试 2')  \n![测试 3](images/3.png '测试 3')\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/judgetriangle/  \n\n"
  },
  {
    "path": "posts/k-2018/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>K.2018 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\n\"><meta name=keywords content='2018 湘潭邀请赛,ACM,C++'><meta itemprop=name content=\"K.2018\"><meta itemprop=description content=\"1 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\"><meta itemprop=datePublished content=\"2018-06-14T22:48:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"446\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"2018 湘潭邀请赛,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/k-2018/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"K.2018\"><meta property=\"og:description\" content=\"1 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T22:48:16+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"2018 湘潭邀请赛\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"K.2018\"><meta name=twitter:description content=\"1 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/k-2018/ title=\"K.2018 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/b-higher/ title=\"B.Higher h-index\"><link rel=next type=text/html href=https://lruihao.cn/posts/f-sorting/ title=F.sorting><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/k-2018/index.md title=\"K.2018 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"K.2018\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/k-2018\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"2018 湘潭邀请赛, ACM, C\\u002b\\u002b\",\"wordcount\":446,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/k-2018\\/\",\"datePublished\":\"2018-06-14T22:48:16+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/k-2018/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>K.2018</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>K.2018</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 22:48:16\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"446 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=K.2018><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#k-2018>K. 2018</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=k-2018><span>1 K. 2018</span>\n<a href=#k-2018 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.</p><h3 class=heading-element id=input><span>1.1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The input consists of several test cases and is terminated by end-of-ﬁle.<br>Each test case contains four integers a,b,c,d.</p><h3 class=heading-element id=output><span>1.2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For each test case, print an integer which denotes the result.</p><h3 class=heading-element id=constraint><span>1.3 Constraint</span>\n<a href=#constraint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>• 1≤ a ≤ b ≤109,1≤ c ≤ d ≤109<br>• The number of tests cases does not exceed 104.</p><h3 class=heading-element id=sample-input><span>1.4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>1 2 1 2018\n1 2018 1 2018\n1 1000000000 1 1000000000\n</code></pre><h3 class=heading-element id=sample-output><span>1.5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>3\n6051\n1485883320325200\n</code></pre><p>题意：给定区间 [a,b]、[c,d]，问有多少对有序数组 (x,y)(x∈[a,b],y∈[c,d]) 使得 x<em>y 是 2018 的倍数<br>思路：2018=2</em>1009（分解质因数），则对 x 分类讨论：1) 仅为 2 的倍数；2）仅为 1009 的倍数；3）即为 2 又为 1009 的倍数；4）既不为 2 又不为 1009 的倍数<br>等价于如下分类讨论：</p><ol><li>若 x 是偶数：1）若 x 是 1009 的倍数，则 y 可为 [c,d] 中任意数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 1009 的倍数</li><li>若 x 是奇数：1）若 x 是 1009 的倍数，则 y 必定为 [c,d] 中 2 的倍数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 2018 的倍数</li></ol><p>后 AC 代码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;cstdio&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;iostream&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=kt>unsigned</span> <span class=kt>long</span> <span class=kt>long</span> <span class=n>ll</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>   <span class=n>ll</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>c</span><span class=p>,</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=o>&gt;&gt;</span><span class=n>c</span><span class=o>&gt;&gt;</span><span class=n>d</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_all_1009</span><span class=o>=</span><span class=n>b</span><span class=o>/</span><span class=mi>1009</span><span class=o>-</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>1009</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_even</span><span class=o>=</span><span class=n>b</span><span class=o>/</span><span class=mi>2</span><span class=o>-</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_1009_in_even</span><span class=o>=</span><span class=n>b</span><span class=o>/</span><span class=mi>2018</span><span class=o>-</span><span class=p>(</span><span class=n>a</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>2018</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_rest_in_even</span><span class=o>=</span><span class=n>num1_even</span><span class=o>-</span><span class=n>num1_1009_in_even</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_odd</span><span class=o>=</span><span class=p>(</span><span class=n>b</span><span class=o>-</span><span class=n>a</span><span class=o>+</span><span class=mi>1</span><span class=p>)</span><span class=o>-</span><span class=n>num1_even</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_1009_in_odd</span><span class=o>=</span><span class=n>num1_all_1009</span><span class=o>-</span><span class=n>num1_1009_in_even</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num1_rest_in_odd</span><span class=o>=</span><span class=n>num1_odd</span><span class=o>-</span><span class=n>num1_1009_in_odd</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>ans</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ans</span><span class=o>+=</span><span class=n>num1_1009_in_even</span><span class=o>*</span><span class=p>(</span><span class=n>d</span><span class=o>-</span><span class=n>c</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num2_all_1009</span><span class=o>=</span><span class=n>d</span><span class=o>/</span><span class=mi>1009</span><span class=o>-</span><span class=p>(</span><span class=n>c</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>1009</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ans</span><span class=o>+=</span><span class=n>num1_rest_in_even</span><span class=o>*</span><span class=n>num2_all_1009</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num2_even</span><span class=o>=</span><span class=n>d</span><span class=o>/</span><span class=mi>2</span><span class=o>-</span><span class=p>(</span><span class=n>c</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ans</span><span class=o>+=</span><span class=n>num1_1009_in_odd</span><span class=o>*</span><span class=n>num2_even</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>ll</span> <span class=n>num2_all_2018</span><span class=o>=</span><span class=n>d</span><span class=o>/</span><span class=mi>2018</span><span class=o>-</span><span class=p>(</span><span class=n>c</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>/</span><span class=mi>2018</span><span class=p>;</span> <span class=n>ans</span><span class=o>+=</span><span class=n>num1_rest_in_odd</span><span class=o>*</span><span class=n>num2_all_2018</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>     <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>ans</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=p>}</span>\n</span></span><span class=line><span class=cl>   <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/k-2018/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/k-2018.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/k-2018.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20K.2018&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cK.2018%7c%0A%7cURL%7chttps://lruihao.cn/posts/k-2018/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/k-2018.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/k-2018/ data-title=K.2018 data-hashtags=\"2018 湘潭邀请赛,ACM,C++\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/k-2018/ data-hashtag=\"2018 湘潭邀请赛\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/k-2018/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/k-2018/ data-title=K.2018 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/k-2018/ data-title=K.2018><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=post-tag title=\"标签 - 2018 湘潭邀请赛\">2018 湘潭邀请赛</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/b-higher/ class=post-nav-item rel=prev title=\"B.Higher H-Index\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>B.Higher H-Index</a><a href=/posts/f-sorting/ class=post-nav-item rel=next title=F.sorting>F.sorting<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#k-2018>K. 2018</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#constraint>Constraint</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/62275962ff6d2a8c47a9328a03d0fea6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/62275962ff6d2a8c47a9328a03d0fea6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/k-2018/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/k-2018/index.md",
    "content": "# K.2018\n\n\n## K. 2018\n\nGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\n\n<!--more-->\n\n### Input\n\nThe input consists of several test cases and is terminated by end-of-ﬁle.  \nEach test case contains four integers a,b,c,d.\n\n### Output\n\nFor each test case, print an integer which denotes the result.\n\n### Constraint\n\n• 1≤ a ≤ b ≤109,1≤ c ≤ d ≤109  \n • The number of tests cases does not exceed 104.\n\n### Sample Input\n\n    1 2 1 2018\n    1 2018 1 2018\n    1 1000000000 1 1000000000\n\n### Sample Output\n\n    3\n    6051\n    1485883320325200\n\n题意：给定区间 [a,b]、[c,d]，问有多少对有序数组 (x,y)(x∈[a,b],y∈[c,d]) 使得 x*y 是 2018 的倍数  \n思路：2018=2*1009（分解质因数），则对 x 分类讨论：1) 仅为 2 的倍数；2）仅为 1009 的倍数；3）即为 2 又为 1009 的倍数；4）既不为 2 又不为 1009 的倍数  \n等价于如下分类讨论：\n\n1. 若 x 是偶数：1）若 x 是 1009 的倍数，则 y 可为 [c,d] 中任意数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 1009 的倍数\n2. 若 x 是奇数：1）若 x 是 1009 的倍数，则 y 必定为 [c,d] 中 2 的倍数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 2018 的倍数\n\n后 AC 代码\n\n```c\n#include<cstdio>\n#include<iostream>\ntypedef unsigned long long ll;\nusing namespace std;\n\nint main(){\n   ll a,b,c,d;\n   while(cin>>a>>b>>c>>d){\n     ll num1_all_1009=b/1009-(a-1)/1009;\n     ll num1_even=b/2-(a-1)/2;\n     ll num1_1009_in_even=b/2018-(a-1)/2018;\n     ll num1_rest_in_even=num1_even-num1_1009_in_even;\n     ll num1_odd=(b-a+1)-num1_even;\n     ll num1_1009_in_odd=num1_all_1009-num1_1009_in_even;\n     ll num1_rest_in_odd=num1_odd-num1_1009_in_odd;\n     ll ans=0;\n     ans+=num1_1009_in_even*(d-c+1);\n     ll num2_all_1009=d/1009-(c-1)/1009;\n     ans+=num1_rest_in_even*num2_all_1009;\n     ll num2_even=d/2-(c-1)/2;\n     ans+=num1_1009_in_odd*num2_even;\n     ll num2_all_2018=d/2018-(c-1)/2018; ans+=num1_rest_in_odd*num2_all_2018;\n     cout<<ans<<endl;\n   }\n   return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/k-2018/  \n\n"
  },
  {
    "path": "posts/less-sass-scss/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Less&amp;sass&amp;scss | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\n\"><meta name=keywords content='Less,Sass,Scss'><meta itemprop=name content=\"less&sass&scss\"><meta itemprop=description content=\"Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\"><meta itemprop=datePublished content=\"2021-06-22T16:39:47+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1170\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Less,Sass,Scss\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/less-sass-scss/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"less&sass&scss\"><meta property=\"og:description\" content=\"Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-06-22T16:39:47+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Less\"><meta property=\"article:tag\" content=\"Sass\"><meta property=\"article:tag\" content=\"Scss\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"less&sass&scss\"><meta name=twitter:description content=\"Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/less-sass-scss/ title=\"less&amp;sass&amp;scss | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/lightbox/ title=Lightbox><link rel=next type=text/html href=https://lruihao.cn/about/ title=关于><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/less-sass-scss/index.md title=\"less&sass&scss | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"less\\u0026sass\\u0026scss\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/less-sass-scss\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Less, Sass, Scss\",\"wordcount\":1170,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/less-sass-scss\\/\",\"datePublished\":\"2021-06-22T16:39:47+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/less-sass-scss/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Less&amp;sass&amp;scss</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Less&amp;sass&amp;scss</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2021-06-22 16:39:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-06-22>2021-06-22</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1170 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=Less&amp;sass&amp;scss><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#為什麼什麼時候要使用-css-前置處理器-why-when>為什麼，什麼時候要使用 CSS 前置處理器？ (Why, When)</a></li><li><a href=#lesssassscss-是什麼-what>Less、Sass/Scss 是什麼？ (What)</a><ol><li><a href=#less>Less</a></li><li><a href=#sass>Sass</a></li><li><a href=#sass-與-scss-的關係>Sass 與 Scss 的關係</a></li></ol></li><li><a href=#sass-和-less-的比較>Sass 和 Less 的比較</a><ol><li><a href=#相同點>相同點</a></li><li><a href=#不同點>不同點</a></li></ol></li><li><a href=#選用-less-還是-sass->選用 Less 還是 Sass ?</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>Sass 和 Less 都屬於 <strong>CSS 前置處理器</strong>，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。<br>轉化成通俗易懂的話來說就是 <strong>“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。</strong></p></blockquote><h2 class=heading-element id=為什麼什麼時候要使用-css-前置處理器-why-when><span>1 為什麼，什麼時候要使用 CSS 前置處理器？ (Why, When)</span>\n<a href=#%e7%82%ba%e4%bb%80%e9%ba%bc%e4%bb%80%e9%ba%bc%e6%99%82%e5%80%99%e8%a6%81%e4%bd%bf%e7%94%a8-css-%e5%89%8d%e7%bd%ae%e8%99%95%e7%90%86%e5%99%a8-why-when class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><strong>CSS 有具體以下幾個缺點：</strong></p><ul><li>語法不夠強大，比如無法嵌套書寫，導致模組化開發中需要書寫很多重複的選擇器</li><li>沒有變數和合理的樣式複用機制，使得邏輯上相關的屬性值必須以字面量的形式重複輸出，導致難以維護</li></ul><p>這就導致了我們在工作中無端增加了許多工作量。<strong>而使用 CSS 前置處理器可大大提高了我們的開發效率：</strong></p><ul><li>提供 CSS 缺失的樣式層複用機制</li><li>減少冗餘碼</li><li>提高樣式代碼的可維護性。</li></ul><p>但是，CSS 的好處在於簡便、隨時隨地被使用和調試。<strong>這就使得預編譯 CSS 步驟的加入具有以下缺點：</strong></p><ul><li>開發工作流中多了一個環節，調試也變得更麻煩</li><li>預編譯很容易造成後代選擇器的濫用</li></ul><p>所以我們在實際項目中衡量預編譯方案時，還是得想想，比起帶來的額外維護開銷，CSS 前置處理器有沒有解決更大的麻煩。</p><ul><li>系統級框架開發（大型複雜的樣式設計）</li><li>持續維護</li></ul><h2 class=heading-element id=lesssassscss-是什麼-what><span>2 Less、Sass/Scss 是什麼？ (What)</span>\n<a href=#lesssassscss-%e6%98%af%e4%bb%80%e9%ba%bc-what class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=less><span>2.1 Less</span>\n<a href=#less class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>是一種動態樣式語言。對 CSS 賦予了動態語言的特性，如變數、繼承、運算、函數。<br>Less 既可以在用戶端上運行（支援 IE 6+, Webkit, Firefox)，也可在服務端運行。</p><h3 class=heading-element id=sass><span>2.2 Sass</span>\n<a href=#sass class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>是一種動態樣式語言，Sass 語法屬於縮排語法，<br>比 CSS 比多出好些功能（如變數、嵌套、運算，混入 (Mixin)、繼承、顏色處理，函數等），更容易閱讀。</p><h3 class=heading-element id=sass-與-scss-的關係><span>2.3 Sass 與 Scss 的關係</span>\n<a href=#sass-%e8%88%87-scss-%e7%9a%84%e9%97%9c%e4%bf%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Sass 的縮排語法，對於寫慣 CSS 的前端開發者來說很不直觀，也不能將 CSS 代碼加入到 Sass 裡面，因此 Sass 語法進行了改良，Sass 3 就變成了 Scss(Sassy CSS)。與原來的語法相容，只是用<code>{}</code>取代了原來的縮進。Sass 相當於 Scss 的嚴格模式。</p><h2 class=heading-element id=sass-和-less-的比較><span>3 Sass 和 Less 的比較</span>\n<a href=#sass-%e5%92%8c-less-%e7%9a%84%e6%af%94%e8%bc%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=相同點><span>3.1 相同點</span>\n<a href=#%e7%9b%b8%e5%90%8c%e9%bb%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Less 和 Sass 在語法上有些共性，比如下面這些：</p><ol><li>混入 (Mixins)——class 中的 class</li><li>參數混入——可以傳遞參數的 class，就像函數一樣</li><li>嵌套規則——Class 中嵌套 class，從而減少重複的代碼</li><li>運算——CSS 中用上數學</li><li>顏色功能——可以編輯顏色</li><li>名字空間 (namespace)——分組樣式，從而可以被調用</li><li>作用域——局部修改樣式</li><li>JavaScript 賦值——在 CSS 中使用 JavaScript 運算式賦值</li></ol><h3 class=heading-element id=不同點><span>3.2 不同點</span>\n<a href=#%e4%b8%8d%e5%90%8c%e9%bb%9e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>實現方式</li></ol><ul><li>Less 是基於 JavaScript，是在用戶端處理的</li><li>Sass 是基於 Ruby 的，是在伺服器端處理的</li></ul><ol start=2><li>關於變數在 Less 和 Sass 中的唯一區別就是 Less 用<code>@</code>，Sass 用<code>$</code></li><li>less 中的變量運算可帶、可不帶單位，Sass 需要帶單位元</li><li>語法不同，請詳見 Less、Sass 官網</li></ol><h2 class=heading-element id=選用-less-還是-sass-><span>4 選用 Less 還是 Sass ?</span>\n<a href=#%e9%81%b8%e7%94%a8-less-%e9%82%84%e6%98%af-sass- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>無論是學習資料，討論情況，以及項目使用情況 Sass/Scss 都優於 Less，比如 Bootstrap 4 就使用的 Sass, 但是 Less 的使用更加簡單，使用門檻也較低，內網開發的情況，Less 則更加適合。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/less-sass-scss/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/less-sass-scss.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/less-sass-scss.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20less%26sass%26scss&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cless%26sass%26scss%7c%0A%7cURL%7chttps://lruihao.cn/posts/less-sass-scss/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/less-sass-scss.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/less-sass-scss/ data-title=Less&amp;sass&amp;scss data-hashtags=Less,Sass,Scss><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/less-sass-scss/ data-hashtag=Less><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/less-sass-scss/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/less-sass-scss/ data-title=Less&amp;sass&amp;scss data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/less-sass-scss/ data-title=Less&amp;sass&amp;scss><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/less/ class=post-tag title=\"标签 - Less\">Less</a><a href=/tags/sass/ class=post-tag title=\"标签 - Sass\">Sass</a><a href=/tags/scss/ class=post-tag title=\"标签 - Scss\">Scss</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/lightbox/ class=post-nav-item rel=prev title=Lightbox><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lightbox</a><a href=/projects/lruihao/hugo-blog/ class=post-nav-item rel=next title=Lruihao/hugo-blog>Lruihao/hugo-blog<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#為什麼什麼時候要使用-css-前置處理器-why-when>為什麼，什麼時候要使用 CSS 前置處理器？ (Why, When)</a></li><li><a href=#lesssassscss-是什麼-what>Less、Sass/Scss 是什麼？ (What)</a><ol><li><a href=#less>Less</a></li><li><a href=#sass>Sass</a></li><li><a href=#sass-與-scss-的關係>Sass 與 Scss 的關係</a></li></ol></li><li><a href=#sass-和-less-的比較>Sass 和 Less 的比較</a><ol><li><a href=#相同點>相同點</a></li><li><a href=#不同點>不同點</a></li></ol></li><li><a href=#選用-less-還是-sass->選用 Less 還是 Sass ?</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/9496ca8909ce2321bfc35cbe13d9d281.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/9496ca8909ce2321bfc35cbe13d9d281.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/less-sass-scss/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/less-sass-scss/index.md",
    "content": "# Less&sass&scss\n\n\n> Sass 和 Less 都屬於 **CSS 前置處理器**，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。  \n> 轉化成通俗易懂的話來說就是 **“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。**\n\n<!--more-->\n\n## 為什麼，什麼時候要使用 CSS 前置處理器？ (Why, When)\n\n**CSS 有具體以下幾個缺點：**\n\n- 語法不夠強大，比如無法嵌套書寫，導致模組化開發中需要書寫很多重複的選擇器\n- 沒有變數和合理的樣式複用機制，使得邏輯上相關的屬性值必須以字面量的形式重複輸出，導致難以維護\n\n這就導致了我們在工作中無端增加了許多工作量。**而使用 CSS 前置處理器可大大提高了我們的開發效率：**\n\n- 提供 CSS 缺失的樣式層複用機制\n- 減少冗餘碼\n- 提高樣式代碼的可維護性。\n\n但是，CSS 的好處在於簡便、隨時隨地被使用和調試。**這就使得預編譯 CSS 步驟的加入具有以下缺點：**\n\n- 開發工作流中多了一個環節，調試也變得更麻煩\n- 預編譯很容易造成後代選擇器的濫用\n\n所以我們在實際項目中衡量預編譯方案時，還是得想想，比起帶來的額外維護開銷，CSS 前置處理器有沒有解決更大的麻煩。\n\n- 系統級框架開發（大型複雜的樣式設計）\n- 持續維護\n\n## Less、Sass/Scss 是什麼？ (What)\n\n### Less\n\n是一種動態樣式語言。對 CSS 賦予了動態語言的特性，如變數、繼承、運算、函數。  \nLess 既可以在用戶端上運行（支援 IE 6+, Webkit, Firefox)，也可在服務端運行。\n\n### Sass\n\n是一種動態樣式語言，Sass 語法屬於縮排語法，  \n比 CSS 比多出好些功能（如變數、嵌套、運算，混入 (Mixin)、繼承、顏色處理，函數等），更容易閱讀。\n\n### Sass 與 Scss 的關係\n\nSass 的縮排語法，對於寫慣 CSS 的前端開發者來說很不直觀，也不能將 CSS 代碼加入到 Sass 裡面，因此 Sass 語法進行了改良，Sass 3 就變成了 Scss(Sassy CSS)。與原來的語法相容，只是用`{}`取代了原來的縮進。Sass 相當於 Scss 的嚴格模式。\n\n## Sass 和 Less 的比較\n\n### 相同點\n\nLess 和 Sass 在語法上有些共性，比如下面這些：\n\n1. 混入 (Mixins)——class 中的 class\n2. 參數混入——可以傳遞參數的 class，就像函數一樣\n3. 嵌套規則——Class 中嵌套 class，從而減少重複的代碼\n4. 運算——CSS 中用上數學\n5. 顏色功能——可以編輯顏色\n6. 名字空間 (namespace)——分組樣式，從而可以被調用\n7. 作用域——局部修改樣式\n8. JavaScript 賦值——在 CSS 中使用 JavaScript 運算式賦值\n\n### 不同點\n\n1. 實現方式\n\n- Less 是基於 JavaScript，是在用戶端處理的\n- Sass 是基於 Ruby 的，是在伺服器端處理的\n\n2. 關於變數在 Less 和 Sass 中的唯一區別就是 Less 用`@`，Sass 用`$`\n3. less 中的變量運算可帶、可不帶單位，Sass 需要帶單位元\n4. 語法不同，請詳見 Less、Sass 官網\n\n## 選用 Less 還是 Sass ?\n\n無論是學習資料，討論情況，以及項目使用情況 Sass/Scss 都優於 Less，比如 Bootstrap 4 就使用的 Sass, 但是 Less 的使用更加簡單，使用門檻也較低，內網開發的情況，Less 則更加適合。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/less-sass-scss/  \n\n"
  },
  {
    "path": "posts/lightbox/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Lightbox | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\n\"><meta name=keywords content='Lightbox,JavaScript'><meta itemprop=name content=\"Lightbox\"><meta itemprop=description content=\"1 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\"><meta itemprop=datePublished content=\"2021-06-21T16:18:04+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1181\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Lightbox,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/lightbox/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Lightbox\"><meta property=\"og:description\" content=\"1 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-06-21T16:18:04+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Lightbox\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Lightbox\"><meta name=twitter:description content=\"1 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/lightbox/ title=\"Lightbox | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/years/2020-2021/ title=\"2020&amp;2021 總結\"><link rel=next type=text/html href=https://lruihao.cn/posts/less-sass-scss/ title=less&amp;sass&amp;scss><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/lightbox/index.md title=\"Lightbox | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Lightbox\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/lightbox\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Lightbox, JavaScript\",\"wordcount\":1181,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/lightbox\\/\",\"datePublished\":\"2021-06-21T16:18:04+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/lightbox/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lightbox</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Lightbox</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2021-06-21 16:18:04\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-06-21>2021-06-21</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1181 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=Lightbox><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#簡介>簡介</a></li><li><a href=#實現思路>實現思路</a></li><li><a href=#fancybox>fancybox</a><ol><li><a href=#quick-start>Quick start</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=簡介><span>1 簡介</span>\n<a href=#%e7%b0%a1%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。</p><p>一般的網頁，圖片是使用 img 標籤寫在 HTML 頁面中，圖片點擊并不會放大，想放大看圖片要麼方法整個網頁，要麼複製圖片鏈接新開窗口，操作繁瑣，而使用 Lightbox 的網站可以点击缩略图浮层显示大图，放大後可点击键盘 ←、→ 键切换图片，也可以鼠标点击左右箭头切换。按下键盘 Esc 键或者点击关闭按钮可輕鬆關閉圖層，圖片流覽的體驗度是遠遠大於未使用的 Lightbox 的網站。</p><h2 class=heading-element id=實現思路><span>2 實現思路</span>\n<a href=#%e5%af%a6%e7%8f%be%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>大概思路就在每个图片的点击事件中添加图层与图片副本。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span><span class=lnt>132\n</span><span class=lnt>133\n</span><span class=lnt>134\n</span><span class=lnt>135\n</span><span class=lnt>136\n</span><span class=lnt>137\n</span><span class=lnt>138\n</span><span class=lnt>139\n</span><span class=lnt>140\n</span><span class=lnt>141\n</span><span class=lnt>142\n</span><span class=lnt>143\n</span><span class=lnt>144\n</span><span class=lnt>145\n</span><span class=lnt>146\n</span><span class=lnt>147\n</span><span class=lnt>148\n</span><span class=lnt>149\n</span><span class=lnt>150\n</span><span class=lnt>151\n</span><span class=lnt>152\n</span><span class=lnt>153\n</span><span class=lnt>154\n</span><span class=lnt>155\n</span><span class=lnt>156\n</span><span class=lnt>157\n</span><span class=lnt>158\n</span><span class=lnt>159\n</span><span class=lnt>160\n</span><span class=lnt>161\n</span><span class=lnt>162\n</span><span class=lnt>163\n</span><span class=lnt>164\n</span><span class=lnt>165\n</span><span class=lnt>166\n</span><span class=lnt>167\n</span><span class=lnt>168\n</span><span class=lnt>169\n</span><span class=lnt>170\n</span><span class=lnt>171\n</span><span class=lnt>172\n</span><span class=lnt>173\n</span><span class=lnt>174\n</span><span class=lnt>175\n</span><span class=lnt>176\n</span><span class=lnt>177\n</span><span class=lnt>178\n</span><span class=lnt>179\n</span><span class=lnt>180\n</span><span class=lnt>181\n</span><span class=lnt>182\n</span><span class=lnt>183\n</span><span class=lnt>184\n</span><span class=lnt>185\n</span><span class=lnt>186\n</span><span class=lnt>187\n</span><span class=lnt>188\n</span><span class=lnt>189\n</span><span class=lnt>190\n</span><span class=lnt>191\n</span><span class=lnt>192\n</span><span class=lnt>193\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * @author github.com@flymysql\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>container</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span> <span class=o>||</span> <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>img</span><span class=p>,</span> <span class=nx>div</span><span class=p>,</span> <span class=nx>src</span><span class=p>,</span> <span class=nx>btnleft</span><span class=p>,</span> <span class=nx>btnright</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>imgid</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>x</span><span class=p>,</span> <span class=nx>y</span><span class=p>,</span> <span class=nx>w</span><span class=p>,</span> <span class=nx>h</span><span class=p>,</span> <span class=nx>tx</span><span class=p>,</span> <span class=nx>ty</span><span class=p>,</span> <span class=nx>tw</span><span class=p>,</span> <span class=nx>th</span><span class=p>,</span> <span class=nx>ww</span><span class=p>,</span> <span class=nx>wh</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>closeMove</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>div</span> <span class=o>==</span> <span class=kc>undefined</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>opacity</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>height</span> <span class=o>=</span> <span class=nx>h</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>width</span> <span class=o>=</span> <span class=nx>w</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>left</span> <span class=o>=</span> <span class=nx>x</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>top</span> <span class=o>=</span> <span class=nx>y</span> <span class=o>-</span> <span class=nx>container</span><span class=p>.</span><span class=nx>scrollTop</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 延迟移除 dom\n</span></span></span><span class=line><span class=cl>  <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>div</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>img</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>btnright</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>btnleft</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span> <span class=mi>100</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>closeFade</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>div</span> <span class=o>==</span> <span class=kc>undefined</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>opacity</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>opacity</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 延迟移除 dom\n</span></span></span><span class=line><span class=cl>  <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>div</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>img</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>btnright</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nx>btnleft</span><span class=p>.</span><span class=nx>remove</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span> <span class=mi>100</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>style</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>btnleft</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>cssText</span> <span class=o>=</span> <span class=sb>`\n</span></span></span><span class=line><span class=cl><span class=sb>    position:fixed;\n</span></span></span><span class=line><span class=cl><span class=sb>    border-radius: 50%;;\n</span></span></span><span class=line><span class=cl><span class=sb>    left:</span><span class=si>${</span><span class=nx>x</span> <span class=o>-</span> <span class=mi>20</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    top:</span><span class=si>${</span><span class=nx>y</span> <span class=o>-</span> <span class=nx>container</span><span class=p>.</span><span class=nx>scrollTop</span> <span class=o>+</span> <span class=nx>h</span> <span class=o>/</span> <span class=mi>2</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    width:50px;\n</span></span></span><span class=line><span class=cl><span class=sb>    height:50px;\n</span></span></span><span class=line><span class=cl><span class=sb>    border: 0px;\n</span></span></span><span class=line><span class=cl><span class=sb>    background-color: rgba(200,200,200,0.8);\n</span></span></span><span class=line><span class=cl><span class=sb>    font-size: 20px;\n</span></span></span><span class=line><span class=cl><span class=sb>    z-index: 999999999;\n</span></span></span><span class=line><span class=cl><span class=sb>    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n</span></span></span><span class=line><span class=cl><span class=sb>`</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>btnright</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>cssText</span> <span class=o>=</span> <span class=sb>`\n</span></span></span><span class=line><span class=cl><span class=sb>    position:fixed;\n</span></span></span><span class=line><span class=cl><span class=sb>    border-radius: 50%;\n</span></span></span><span class=line><span class=cl><span class=sb>    left:</span><span class=si>${</span><span class=nx>x</span> <span class=o>+</span> <span class=nx>w</span> <span class=o>+</span> <span class=mi>20</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    top:</span><span class=si>${</span><span class=nx>y</span> <span class=o>-</span> <span class=nx>container</span><span class=p>.</span><span class=nx>scrollTop</span> <span class=o>+</span> <span class=nx>h</span> <span class=o>/</span> <span class=mi>2</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    width:50px;\n</span></span></span><span class=line><span class=cl><span class=sb>    border: 0px;\n</span></span></span><span class=line><span class=cl><span class=sb>    height:50px;\n</span></span></span><span class=line><span class=cl><span class=sb>    font-size: 20px;\n</span></span></span><span class=line><span class=cl><span class=sb>    background-color: rgba(200,200,200,0.8);\n</span></span></span><span class=line><span class=cl><span class=sb>    z-index: 999999999;\n</span></span></span><span class=line><span class=cl><span class=sb>    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n</span></span></span><span class=line><span class=cl><span class=sb>`</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>btnleft</span><span class=p>.</span><span class=nx>innerText</span> <span class=o>=</span> <span class=s1>&#39;&lt;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>btnright</span><span class=p>.</span><span class=nx>innerText</span> <span class=o>=</span> <span class=s1>&#39;&gt;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>cssText</span> <span class=o>=</span> <span class=sb>`\n</span></span></span><span class=line><span class=cl><span class=sb>    position:fixed;\n</span></span></span><span class=line><span class=cl><span class=sb>    border-radius: 12px;\n</span></span></span><span class=line><span class=cl><span class=sb>    left:</span><span class=si>${</span><span class=nx>x</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    top:</span><span class=si>${</span><span class=nx>y</span> <span class=o>-</span> <span class=nx>container</span><span class=p>.</span><span class=nx>scrollTop</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    width:</span><span class=si>${</span><span class=nx>w</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    height:</span><span class=si>${</span><span class=nx>h</span><span class=si>}</span><span class=sb>px;\n</span></span></span><span class=line><span class=cl><span class=sb>    z-index: 999999999;\n</span></span></span><span class=line><span class=cl><span class=sb>    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n</span></span></span><span class=line><span class=cl><span class=sb>    opacity:0;\n</span></span></span><span class=line><span class=cl><span class=sb>`</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 监听滚动关闭层\n</span></span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;scroll&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>closeFade</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>querySelectorAll</span><span class=p>(</span><span class=s1>&#39;img&#39;</span><span class=p>).</span><span class=nx>forEach</span><span class=p>((</span><span class=nx>v</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>v</span><span class=p>.</span><span class=nx>parentNode</span><span class=p>.</span><span class=nx>localName</span> <span class=o>!=</span> <span class=s1>&#39;a&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>v</span><span class=p>.</span><span class=nx>id</span> <span class=o>=</span> <span class=nx>imgid</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>imgid</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>v</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;click&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>e</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 注册事件\n</span></span></span><span class=line><span class=cl>      <span class=c1>// 记录小图的位置个大小\n</span></span></span><span class=line><span class=cl>      <span class=nx>x</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>offsetLeft</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>y</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>offsetTop</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>w</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>offsetWidth</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>h</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>offsetHeight</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>src</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>src</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>id</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>target</span><span class=p>.</span><span class=nx>id</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 创建遮罩层\n</span></span></span><span class=line><span class=cl>      <span class=nx>div</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;div&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>cssText</span> <span class=o>=</span> <span class=sb>`\n</span></span></span><span class=line><span class=cl><span class=sb>              position:fixed;\n</span></span></span><span class=line><span class=cl><span class=sb>              left:0;\n</span></span></span><span class=line><span class=cl><span class=sb>              top:0;\n</span></span></span><span class=line><span class=cl><span class=sb>              bottom:0;\n</span></span></span><span class=line><span class=cl><span class=sb>              right:0;\n</span></span></span><span class=line><span class=cl><span class=sb>              background-color: rgba(25,25,25,0.8);\n</span></span></span><span class=line><span class=cl><span class=sb>              z-index:99999999;\n</span></span></span><span class=line><span class=cl><span class=sb>              transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n</span></span></span><span class=line><span class=cl><span class=sb>          `</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>div</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>opacity</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span> <span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// （此处可以加 loading)\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=c1>// 创建副本\n</span></span></span><span class=line><span class=cl>      <span class=nx>img</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Image</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>      <span class=nx>btnright</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;button&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>btnleft</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;button&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>img</span><span class=p>.</span><span class=nx>src</span> <span class=o>=</span> <span class=nx>src</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>style</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=nx>btnleft</span><span class=p>.</span><span class=nx>onclick</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>id</span> <span class=o>===</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;已经是第一张了！&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>left</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=nx>id</span> <span class=o>-</span> <span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nx>img</span><span class=p>.</span><span class=nx>src</span> <span class=o>=</span> <span class=nx>left</span><span class=p>.</span><span class=nx>src</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>x</span> <span class=o>=</span> <span class=nx>left</span><span class=p>.</span><span class=nx>offsetLeft</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>y</span> <span class=o>=</span> <span class=nx>left</span><span class=p>.</span><span class=nx>offsetTop</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>w</span> <span class=o>=</span> <span class=nx>left</span><span class=p>.</span><span class=nx>offsetWidth</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>h</span> <span class=o>=</span> <span class=nx>left</span><span class=p>.</span><span class=nx>offsetHeight</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>style</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=nx>id</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>};</span>\n</span></span><span class=line><span class=cl>      <span class=nx>btnright</span><span class=p>.</span><span class=nx>onclick</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>id</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>id</span> <span class=o>&gt;=</span> <span class=nx>imgid</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;已经是最后一张了！&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=kd>var</span> <span class=nx>right</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=nx>id</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nx>img</span><span class=p>.</span><span class=nx>src</span> <span class=o>=</span> <span class=nx>right</span><span class=p>.</span><span class=nx>src</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>x</span> <span class=o>=</span> <span class=nx>right</span><span class=p>.</span><span class=nx>offsetLeft</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>y</span> <span class=o>=</span> <span class=nx>right</span><span class=p>.</span><span class=nx>offsetTop</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>w</span> <span class=o>=</span> <span class=nx>right</span><span class=p>.</span><span class=nx>offsetWidth</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>h</span> <span class=o>=</span> <span class=nx>right</span><span class=p>.</span><span class=nx>offsetHeight</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>style</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>      <span class=p>};</span>\n</span></span><span class=line><span class=cl>      <span class=nx>img</span><span class=p>.</span><span class=nx>onload</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>img</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>btnright</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>btnleft</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>// 浏览器宽高\n</span></span></span><span class=line><span class=cl>        <span class=nx>wh</span> <span class=o>=</span> <span class=nb>window</span><span class=p>.</span><span class=nx>innerHeight</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nx>ww</span> <span class=o>=</span> <span class=nb>window</span><span class=p>.</span><span class=nx>innerWidth</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>// 目标宽高和坐标\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>w</span> <span class=o>/</span> <span class=nx>h</span> <span class=o>&lt;</span> <span class=nx>ww</span> <span class=o>/</span> <span class=nx>wh</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>th</span> <span class=o>=</span> <span class=nx>wh</span> <span class=o>-</span> <span class=mi>80</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>tw</span> <span class=o>=</span> <span class=p>((</span><span class=nx>w</span> <span class=o>/</span> <span class=nx>h</span><span class=p>)</span> <span class=o>*</span> <span class=nx>th</span><span class=p>)</span> <span class=o>&gt;&gt;</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>tx</span> <span class=o>=</span> <span class=p>(</span><span class=nx>ww</span> <span class=o>-</span> <span class=nx>tw</span><span class=p>)</span> <span class=o>/</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>ty</span> <span class=o>=</span> <span class=mi>40</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>tw</span> <span class=o>=</span> <span class=nx>ww</span> <span class=o>*</span> <span class=mf>0.8</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>th</span> <span class=o>=</span> <span class=p>((</span><span class=nx>h</span> <span class=o>/</span> <span class=nx>w</span><span class=p>)</span> <span class=o>*</span> <span class=nx>tw</span><span class=p>)</span> <span class=o>&gt;&gt;</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>tx</span> <span class=o>=</span> <span class=nx>ww</span> <span class=o>*</span> <span class=mf>0.1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>ty</span> <span class=o>=</span> <span class=p>(</span><span class=nx>wh</span> <span class=o>-</span> <span class=nx>th</span><span class=p>)</span> <span class=o>/</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>// 延迟写入否则不会有动画\n</span></span></span><span class=line><span class=cl>        <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>opacity</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>height</span> <span class=o>=</span> <span class=nx>th</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>width</span> <span class=o>=</span> <span class=nx>tw</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>left</span> <span class=o>=</span> <span class=nx>tx</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>img</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>top</span> <span class=o>=</span> <span class=nx>ty</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>btnleft</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>left</span> <span class=o>=</span> <span class=nx>tx</span> <span class=o>-</span> <span class=mi>90</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>btnleft</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>top</span> <span class=o>=</span> <span class=nx>ty</span> <span class=o>+</span> <span class=nx>th</span> <span class=o>/</span> <span class=mi>2</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>btnright</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>left</span> <span class=o>=</span> <span class=nx>tx</span> <span class=o>+</span> <span class=nx>tw</span> <span class=o>+</span> <span class=mi>40</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=nx>btnright</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>top</span> <span class=o>=</span> <span class=nx>ty</span> <span class=o>+</span> <span class=nx>th</span> <span class=o>/</span> <span class=mi>2</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=c1>// 点击隐藏\n</span></span></span><span class=line><span class=cl>          <span class=nx>div</span><span class=p>.</span><span class=nx>onclick</span> <span class=o>=</span> <span class=nx>img</span><span class=p>.</span><span class=nx>onclick</span> <span class=o>=</span> <span class=nx>closeMove</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>},</span> <span class=mi>10</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=p>};</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span> <span class=c1>//end event\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>});</span> <span class=c1>//end forEach\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=fancybox><span>3 fancybox</span>\n<a href=#fancybox class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/fancyapps/fancybox target=_blank rel=\"external nofollow noopener noreferrer\">fancybox<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是一個完善的 lightbox 插件<br>jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable.</p><h3 class=heading-element id=quick-start><span>3.1 Quick start</span>\n<a href=#quick-start class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>Add latest jQuery and fancyBox files</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://code.jquery.com/jquery-3.3.1.min.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>link</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;/path/to/jquery.fancybox.min.css&#34;</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;/path/to/jquery.fancybox.min.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><ol start=2><li>Create links</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>a</span> <span class=na>data-fancybox</span><span class=o>=</span><span class=s>&#34;gallery&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;big_1.jpg&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>img</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;small_1.jpg&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>a</span> <span class=na>data-fancybox</span><span class=o>=</span><span class=s>&#34;gallery&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;big_2.jpg&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>img</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;small_2.jpg&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><ol start=3><li>Enjoy!</li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/lightbox/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/lightbox.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/lightbox.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Lightbox&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cLightbox%7c%0A%7cURL%7chttps://lruihao.cn/posts/lightbox/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/lightbox.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/lightbox/ data-title=Lightbox data-hashtags=Lightbox,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/lightbox/ data-hashtag=Lightbox><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/lightbox/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/lightbox/ data-title=Lightbox data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/lightbox/ data-title=Lightbox><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/lightbox/ class=post-tag title=\"标签 - Lightbox\">Lightbox</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/years/2020-2021/ class=post-nav-item rel=prev title=\"2020&amp;2021 總結\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>2020&amp;2021 總結</a><a href=/posts/less-sass-scss/ class=post-nav-item rel=next title=Less&amp;sass&amp;scss>Less&amp;sass&amp;scss<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#簡介>簡介</a></li><li><a href=#實現思路>實現思路</a></li><li><a href=#fancybox>fancybox</a><ol><li><a href=#quick-start>Quick start</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f8b50c62d1562efacbe486fb5ed8bd87.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f8b50c62d1562efacbe486fb5ed8bd87.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/lightbox/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/lightbox/index.md",
    "content": "# Lightbox\n\n\n## 簡介\n\nLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\n\n一般的網頁，圖片是使用 img 標籤寫在 HTML 頁面中，圖片點擊并不會放大，想放大看圖片要麼方法整個網頁，要麼複製圖片鏈接新開窗口，操作繁瑣，而使用 Lightbox 的網站可以点击缩略图浮层显示大图，放大後可点击键盘 ←、→ 键切换图片，也可以鼠标点击左右箭头切换。按下键盘 Esc 键或者点击关闭按钮可輕鬆關閉圖層，圖片流覽的體驗度是遠遠大於未使用的 Lightbox 的網站。\n\n## 實現思路\n\n大概思路就在每个图片的点击事件中添加图层与图片副本。\n\n```js\n/**\n * @author github.com@flymysql\n */\nlet container = document.documentElement || document.body;\nlet img, div, src, btnleft, btnright;\nvar imgid = 0;\nlet x, y, w, h, tx, ty, tw, th, ww, wh;\nlet closeMove = function () {\n  if (div == undefined) {\n    return false;\n  }\n  div.style.opacity = 0;\n  img.style.height = h + 'px';\n  img.style.width = w + 'px';\n  img.style.left = x + 'px';\n  img.style.top = y - container.scrollTop + 'px';\n  // 延迟移除 dom\n  setTimeout(function () {\n    div.remove();\n    img.remove();\n    btnright.remove();\n    btnleft.remove();\n  }, 100);\n};\n\nlet closeFade = function () {\n  if (div == undefined) {\n    return false;\n  }\n  div.style.opacity = 0;\n  img.style.opacity = 0;\n  // 延迟移除 dom\n  setTimeout(function () {\n    div.remove();\n    img.remove();\n    btnright.remove();\n    btnleft.remove();\n  }, 100);\n};\n\nlet style = function () {\n  btnleft.style.cssText = `\n    position:fixed;\n    border-radius: 50%;;\n    left:${x - 20}px;\n    top:${y - container.scrollTop + h / 2}px;\n    width:50px;\n    height:50px;\n    border: 0px;\n    background-color: rgba(200,200,200,0.8);\n    font-size: 20px;\n    z-index: 999999999;\n    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n`;\n  btnright.style.cssText = `\n    position:fixed;\n    border-radius: 50%;\n    left:${x + w + 20}px;\n    top:${y - container.scrollTop + h / 2}px;\n    width:50px;\n    border: 0px;\n    height:50px;\n    font-size: 20px;\n    background-color: rgba(200,200,200,0.8);\n    z-index: 999999999;\n    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n`;\n  btnleft.innerText = '<';\n  btnright.innerText = '>';\n\n  img.style.cssText = `\n    position:fixed;\n    border-radius: 12px;\n    left:${x}px;\n    top:${y - container.scrollTop}px;\n    width:${w}px;\n    height:${h}px;\n    z-index: 999999999;\n    transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n    opacity:0;\n`;\n};\n\n// 监听滚动关闭层\ndocument.addEventListener('scroll', function () {\n  closeFade();\n});\ndocument.querySelectorAll('img').forEach((v) => {\n  if (v.parentNode.localName != 'a') {\n    v.id = imgid;\n    imgid++;\n    v.addEventListener('click', function (e) {\n      // 注册事件\n      // 记录小图的位置个大小\n      x = e.target.offsetLeft;\n      y = e.target.offsetTop;\n      w = e.target.offsetWidth;\n      h = e.target.offsetHeight;\n      src = e.target.src;\n      id = e.target.id;\n      // 创建遮罩层\n      div = document.createElement('div');\n      div.style.cssText = `\n              position:fixed;\n              left:0;\n              top:0;\n              bottom:0;\n              right:0;\n              background-color: rgba(25,25,25,0.8);\n              z-index:99999999;\n              transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1);\n          `;\n      document.body.appendChild(div);\n      setTimeout(function () {\n        div.style.opacity = 1;\n      }, 0);\n      // （此处可以加 loading)\n\n      // 创建副本\n      img = new Image();\n      btnright = document.createElement('button');\n      btnleft = document.createElement('button');\n      img.src = src;\n      style();\n\n      btnleft.onclick = function () {\n        if (id === 0) {\n          alert('已经是第一张了！');\n          return;\n        }\n        var left = document.getElementById(id - 1);\n        img.src = left.src;\n        x = left.offsetLeft;\n        y = left.offsetTop;\n        w = left.offsetWidth;\n        h = left.offsetHeight;\n        style();\n        id--;\n      };\n      btnright.onclick = function () {\n        id++;\n        if (id >= imgid) {\n          alert('已经是最后一张了！');\n          return;\n        }\n        var right = document.getElementById(id);\n        img.src = right.src;\n        x = right.offsetLeft;\n        y = right.offsetTop;\n        w = right.offsetWidth;\n        h = right.offsetHeight;\n        style();\n      };\n      img.onload = function () {\n        document.body.appendChild(img);\n        document.body.appendChild(btnright);\n        document.body.appendChild(btnleft);\n\n        // 浏览器宽高\n        wh = window.innerHeight;\n        ww = window.innerWidth;\n\n        // 目标宽高和坐标\n        if (w / h < ww / wh) {\n          th = wh - 80;\n          tw = ((w / h) * th) >> 0;\n          tx = (ww - tw) / 2;\n          ty = 40;\n        } else {\n          tw = ww * 0.8;\n          th = ((h / w) * tw) >> 0;\n          tx = ww * 0.1;\n          ty = (wh - th) / 2;\n        }\n\n        // 延迟写入否则不会有动画\n        setTimeout(function () {\n          img.style.opacity = 1;\n          img.style.height = th + 'px';\n          img.style.width = tw + 'px';\n          img.style.left = tx + 'px';\n          img.style.top = ty + 'px';\n          btnleft.style.left = tx - 90 + 'px';\n          btnleft.style.top = ty + th / 2 + 'px';\n          btnright.style.left = tx + tw + 40 + 'px';\n          btnright.style.top = ty + th / 2 + 'px';\n          // 点击隐藏\n          div.onclick = img.onclick = closeMove;\n        }, 10);\n      };\n    }); //end event\n  }\n}); //end forEach\n```\n\n## fancybox\n\n[fancybox](https://github.com/fancyapps/fancybox) 是一個完善的 lightbox 插件  \njQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable.\n\n### Quick start\n\n1. Add latest jQuery and fancyBox files\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n\n<link href=\"/path/to/jquery.fancybox.min.css\" rel=\"stylesheet\" />\n<script src=\"/path/to/jquery.fancybox.min.js\"></script>\n```\n\n2. Create links\n\n```html\n<a data-fancybox=\"gallery\" href=\"big_1.jpg\">\n  <img src=\"small_1.jpg\" />\n</a>\n\n<a data-fancybox=\"gallery\" href=\"big_2.jpg\">\n  <img src=\"small_2.jpg\" />\n</a>\n```\n\n3. Enjoy!\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/lightbox/  \n\n"
  },
  {
    "path": "posts/lightoj1282/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Leading and Trailing-Lightoj1282（快速幂 + 对数运算） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题目链接 2 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n3 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\n\"><meta name=keywords content='数论,数学,快速幂,ACM,C'><meta itemprop=name content=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\"><meta itemprop=description content=\"1 题目链接 2 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n3 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\"><meta itemprop=datePublished content=\"2018-08-09T20:55:26+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"587\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数论,数学,快速幂,acm,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/lightoj1282/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\"><meta property=\"og:description\" content=\"1 题目链接 2 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n3 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-09T20:55:26+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"数论\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"快速幂\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\"><meta name=twitter:description content=\"1 题目链接 2 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n3 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/lightoj1282/ title=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cfcontest1017/ title=\"Codeforces Round 502(Div.1 + Div.2)\"><link rel=next type=text/html href=https://lruihao.cn/posts/euclid/ title=\"The equation-SGU106（扩展欧几里得）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/lightoj1282/index.md title=\"Leading and Trailing-lightoj1282（快速幂 + 对数运算） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/lightoj1282\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数论, 数学, 快速幂, ACM, C\",\"wordcount\":587,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/lightoj1282\\/\",\"datePublished\":\"2018-08-09T20:55:26+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/lightoj1282/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-09 20:55:26\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-09>2018-08-09</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"587 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目链接>题目链接</a></li><li><a href=#题目大意>题目大意</a></li><li><a href=#分析>分析</a></li><li><a href=#注>注</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题目链接><span>1 <a href=https://vjudge.net/contest/238979#problem/E target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=题目大意><span>2 题目大意</span>\n<a href=#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>给定两个数 n,k 求 n^k 的前三位和最后三位。</p><h2 class=heading-element id=分析><span>3 分析</span>\n<a href=#%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>求后三位的话：直接快速幂，对 1000 取模就好了。<br>求前三位，对于给定的一个数 n, 它可以写成 n=10<sup>a, 其中这个 a 为浮点数，则<code>t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);</code>其中 x,y 分别是<code>a*k</code>的整数部分和小数部分，对于 t=n</sup>k 这个数，它的位数由 (10<sup>x) 决定，它的位数上的值则有 (10</sup>y) 决定，因此我们要求 t 的前三位，只需要将 10<sup>y 求出，在乘以 100，就得到了它的前三位。<br>分析完，我们再整体看，设 n</sup>k=10^z; 那么<code>z=k*log10(n)</code><br><code>fmod(z,1)</code>可以求出 x 的小数部分。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=c1>//再一次吐槽 lightoj 的头文件，让我不能用万能头&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;math.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=kt>long</span> <span class=kt>long</span> <span class=n>LL</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>quickpow</span> <span class=p>(</span><span class=kt>int</span> <span class=n>m</span><span class=p>,</span> <span class=kt>int</span> <span class=n>n</span><span class=p>,</span> <span class=kt>int</span> <span class=n>k</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>b</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=p>(</span><span class=n>n</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=n>n</span> <span class=o>&amp;</span> <span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>b</span> <span class=o>=</span> <span class=p>(</span><span class=n>b</span> <span class=o>*</span> <span class=n>m</span><span class=p>)</span> <span class=o>%</span> <span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span> <span class=o>&gt;&gt;=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>m</span> <span class=o>=</span> <span class=p>(</span><span class=n>m</span> <span class=o>*</span> <span class=n>m</span><span class=p>)</span> <span class=o>%</span> <span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>b</span><span class=o>%</span><span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>t</span><span class=p>,</span> <span class=n>flag</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nf>scanf</span> <span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>t</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=p>(</span><span class=n>t</span><span class=o>--</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>LL</span> <span class=n>n</span><span class=p>,</span> <span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=nf>scanf</span> <span class=p>(</span><span class=s>&#34;%lld %lld&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>n</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>k</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>first</span> <span class=o>=</span> <span class=nf>pow</span> <span class=p>(</span><span class=mf>10.0</span><span class=p>,</span> <span class=mf>2.0</span> <span class=o>+</span> <span class=nf>fmod</span> <span class=p>(</span><span class=n>k</span><span class=o>*</span><span class=nf>log10</span><span class=p>(</span><span class=n>n</span><span class=o>*</span><span class=mf>1.0</span><span class=p>),</span> <span class=mi>1</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>last</span> <span class=o>=</span> <span class=nf>quickpow</span> <span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>1000</span><span class=p>,</span> <span class=n>k</span><span class=p>,</span> <span class=mi>1000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span> <span class=p>(</span><span class=s>&#34;Case %d: %d %03d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>flag</span><span class=o>++</span><span class=p>,</span> <span class=n>first</span><span class=p>,</span> <span class=n>last</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=注><span>4 注</span>\n<a href=#%e6%b3%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>C 库函数 - fmod()<br>C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数。</p><ul><li>x — 代表分子的浮点值。</li><li>y — 代表分母的浮点值。\n该函数返回 x/y 的余数。</li></ul><p>下面的实例演示了 fmod() 函数的用法。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;math.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span> <span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>   <span class=kt>float</span> <span class=n>a</span><span class=p>,</span> <span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=kt>int</span> <span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=n>a</span> <span class=o>=</span> <span class=mf>9.2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=n>b</span> <span class=o>=</span> <span class=mf>3.7</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=n>c</span> <span class=o>=</span> <span class=mi>2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>   <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%f / %d 的余数是 %lf</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>a</span><span class=p>,</span> <span class=n>c</span><span class=p>,</span> <span class=nf>fmod</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>c</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>   <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%f / %f 的余数是 %lf</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>a</span><span class=p>,</span> <span class=n>b</span><span class=p>,</span> <span class=nf>fmod</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>   <span class=k>return</span><span class=p>(</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>结果：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>9.200000 / 2 的余数是 1.200000\n</span></span><span class=line><span class=cl>9.200000 / 3.700000 的余数是 1.800000</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/lightoj1282/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/lightoj1282.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/lightoj1282.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Leading+and+Trailing-lightoj1282%EF%BC%88%E5%BF%AB%E9%80%9F%E5%B9%82+%2B+%E5%AF%B9%E6%95%B0%E8%BF%90%E7%AE%97%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cLeading+and+Trailing-lightoj1282%EF%BC%88%E5%BF%AB%E9%80%9F%E5%B9%82+%2B+%E5%AF%B9%E6%95%B0%E8%BF%90%E7%AE%97%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/lightoj1282/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/lightoj1282.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/lightoj1282/ data-title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\" data-hashtags=数论,数学,快速幂,ACM,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/lightoj1282/ data-hashtag=数论><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/lightoj1282/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/lightoj1282/ data-title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/lightoj1282/ data-title=\"Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E8%AE%BA/ class=post-tag title=\"标签 - 数论\">数论</a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/ class=post-tag title=\"标签 - 快速幂\">快速幂</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cfcontest1017/ class=post-nav-item rel=prev title=\"Codeforces Round 502(Div.1 + Div.2)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Codeforces Round 502(Div.1 + Div.2)</a><a href=/posts/euclid/ class=post-nav-item rel=next title=\"The Equation-SGU106（扩展欧几里得）\">The Equation-SGU106（扩展欧几里得）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目链接>题目链接</a></li><li><a href=#题目大意>题目大意</a></li><li><a href=#分析>分析</a></li><li><a href=#注>注</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c01a69160f89b6f90a7b7ea438910e86.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c01a69160f89b6f90a7b7ea438910e86.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/lightoj1282/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/lightoj1282/index.md",
    "content": "# Leading and Trailing-Lightoj1282（快速幂 + 对数运算）\n\n\n## [题目链接](https://vjudge.net/contest/238979#problem/E)\n\n## 题目大意\n\n给定两个数 n,k 求 n^k 的前三位和最后三位。\n\n## 分析\n\n求后三位的话：直接快速幂，对 1000 取模就好了。  \n求前三位，对于给定的一个数 n, 它可以写成 n=10^a, 其中这个 a 为浮点数，则`t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);`其中 x,y 分别是`a*k`的整数部分和小数部分，对于 t=n^k 这个数，它的位数由 (10^x) 决定，它的位数上的值则有 (10^y) 决定，因此我们要求 t 的前三位，只需要将 10^y 求出，在乘以 100，就得到了它的前三位。  \n分析完，我们再整体看，设 n^k=10^z; 那么`z=k*log10(n)`  \n`fmod(z,1)`可以求出 x 的小数部分。\n\n<!--more-->\n\n```c\n//再一次吐槽 lightoj 的头文件，让我不能用万能头<bits/stdc++.h>\n#include<stdio.h>\n#include<math.h>\n\ntypedef long long LL;\n\nint quickpow (int m, int n, int k)\n{\n    int b = 1;\n    while (n > 0)\n    {\n        if (n & 1)\n            b = (b * m) % k;\n        n >>= 1;\n        m = (m * m) % k;\n    }\n    return b%k;\n}\n\nint main ()\n{\n    int t, flag = 1;\n    scanf (\"%d\", &t);\n\n    while (t--)\n    {\n        LL n, k;\n        scanf (\"%lld %lld\", &n, &k);\n\n        int first = pow (10.0, 2.0 + fmod (k*log10(n*1.0), 1));\n        int last = quickpow (n%1000, k, 1000);\n\n        printf (\"Case %d: %d %03d\\n\", flag++, first, last);\n    }\n    return 0;\n}\n```\n\n## 注\n\nC 库函数 - fmod()  \nC 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数。\n\n- x — 代表分子的浮点值。\n- y — 代表分母的浮点值。\n  该函数返回 x/y 的余数。\n\n下面的实例演示了 fmod() 函数的用法。\n\n```c\n#include <stdio.h>\n#include <math.h>\n\nint main ()\n{\n   float a, b;\n   int c;\n   a = 9.2;\n   b = 3.7;\n   c = 2;\n   printf(\"%f / %d 的余数是 %lf\\n\", a, c, fmod(a,c));\n   printf(\"%f / %f 的余数是 %lf\\n\", a, b, fmod(a,b));\n\n   return(0);\n}\n```\n\n结果：\n\n```plain\n9.200000 / 2 的余数是 1.200000\n9.200000 / 3.700000 的余数是 1.800000\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/lightoj1282/  \n\n"
  },
  {
    "path": "posts/linkcard/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>模仿知乎卡片式链接 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\n\"><meta name=keywords content='Hexo,JavaScript'><meta itemprop=name content=\"模仿知乎卡片式链接\"><meta itemprop=description content=\"模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\"><meta itemprop=datePublished content=\"2019-03-15T15:21:39+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"311\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/linkcard/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"模仿知乎卡片式链接\"><meta property=\"og:description\" content=\"模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-15T15:21:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"模仿知乎卡片式链接\"><meta name=twitter:description content=\"模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/linkcard/ title=\"模仿知乎卡片式链接 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ubuntutime/ title=\"win10,ubuntu 双系统时间不一致\"><link rel=next type=text/html href=https://lruihao.cn/posts/qframe/ title=匿名类在可视化界面中的应用><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/linkcard/index.md title=\"模仿知乎卡片式链接 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"模仿知乎卡片式链接\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/linkcard\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, JavaScript\",\"wordcount\":311,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/linkcard\\/\",\"datePublished\":\"2019-03-15T15:21:39+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/linkcard/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>模仿知乎卡片式链接</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>模仿知乎卡片式链接</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-15 15:21:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-15>2019-03-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"311 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=模仿知乎卡片式链接><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#源码>源码</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]</p></blockquote><h2 class=heading-element id=源码><span>1 源码</span>\n<a href=#%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p><strong>2021/10/2 1:29 更新</strong></p></blockquote><p>这是一种后加载，创建<code>linkcard.js</code>放到<code>source/js/src/</code>，然后在<code>next\\layout\\_macro\\post.swig</code>中引用</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>function</span> <span class=nx>cardLink</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>$cardLinks</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelectorAll</span><span class=p>(</span><span class=s1>&#39;.card-link&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>$cardLinks</span><span class=p>.</span><span class=nx>length</span> <span class=o>===</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//插入样式\n</span></span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>$linkStyle</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;style&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>$linkStyle</span><span class=p>.</span><span class=nx>innerHTML</span> <span class=o>=</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;color:inherit;text-decoration:none}.ztext{word-break:break-word;line-height:1.6}.card-link-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/images/card-link-bg.jpg);background-repeat:no-repeat;-webkit-filter:blur(20px);filter:blur(20px);background-size:cover;background-position:center}.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:inherit;background-color:rgba(246,246,246,0.88)}.card-link-text{overflow:hidden}.card-link-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:calc(16px * 1.25 * 2);font-size:16px;font-weight:500;line-height:1.25;color:#1a1a1a}.card-link-meta{display:flex;margin-top:4px;font-size:14px;line-height:20px;color:#999;white-space:nowrap}.card-link-url{display: inline-flex;align-items: center;}.card-link-imageCell{margin-left:8px;border-radius:6px}.card-link-image{display:block;width:60px;height:60px;border-radius:inherit}&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;body&#39;</span><span class=p>).</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>$linkStyle</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//渲染 DOM\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=kd>let</span> <span class=nx>$cardLink</span> <span class=k>of</span> <span class=nx>$cardLinks</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>$cardLink</span><span class=p>.</span><span class=nx>innerHTML</span> <span class=o>=</span> <span class=sb>`&lt;span class=&#39;card-link-backdrop&#39;&gt;&lt;/span&gt;&lt;span class=&#39;card-link-content&#39;&gt;&lt;span class=&#39;card-link-text&#39;&gt;&lt;span class=&#39;card-link-title&#39;&gt;</span><span class=si>${</span><span class=nx>$cardLink</span><span class=p>.</span><span class=nx>innerText</span><span class=si>}</span><span class=sb>&lt;/span&gt;&lt;span class=&#39;card-link-meta&#39;&gt;&lt;span class=&#39;card-link-url&#39;&gt;&lt;svg class=&#39;Zi Zi--InsertLink&#39; fill=&#39;currentColor&#39; viewBox=&#39;0 0 24 24&#39; width=&#39;17&#39; height=&#39;17&#39;&gt;&lt;path d=&#39;M6.77 17.23c-.905-.904-.94-2.333-.08-3.193l3.059-3.06-1.192-1.19-3.059 3.058c-1.489 1.489-1.427 3.954.138 5.519s4.03 1.627 5.519.138l3.059-3.059-1.192-1.192-3.059 3.06c-.86.86-2.289.824-3.193-.08zm3.016-8.673l1.192 1.192 3.059-3.06c.86-.86 2.289-.824 3.193.08.905.905.94 2.334.08 3.194l-3.059 3.06 1.192 1.19 3.059-3.058c1.489-1.489 1.427-3.954-.138-5.519s-4.03-1.627-5.519-.138L9.786 8.557zm-1.023 6.68c.33.33.863.343 1.177.029l5.34-5.34c.314-.314.3-.846-.03-1.176-.33-.33-.862-.344-1.176-.03l-5.34 5.34c-.314.314-.3.846.03 1.177z&#39; fill-rule=&#39;evenodd&#39;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;</span><span class=si>${</span><span class=nx>$cardLink</span><span class=p>.</span><span class=nx>href</span><span class=si>}</span><span class=sb>&lt;/span&gt;&lt;/span&gt;&lt;span class=&#39;card-link-imageCell&#39;&gt;&lt;img class=&#39;card-link-image&#39; alt=&#39;card-link icon&#39; src=&#39;/images/linkicon.png&#39;&gt;&lt;/span&gt;&lt;/span&gt;`</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>onload</span> <span class=o>=</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>cardLink</span><span class=p>();</span>\n</span></span><span class=line><span class=cl><span class=p>};</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用><span>2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=c>&lt;!--知乎卡片链接--&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;/js/src/card-link.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>html 链接写法，a 标签加上<code>class=\"card-link\"</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>a</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;https://github.com/Lruihao/lruihao.github.io&#34;</span> <span class=na>target</span><span class=o>=</span><span class=s>&#34;_blank&#34;</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;card-link&#34;</span><span class=p>&gt;</span>Lruihao 博客<span class=p>&lt;/</span><span class=nt>a</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><a href=https://github.com/Lruihao/lruihao.github.io target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>Lruihao 博客</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/lruihao.github.io</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/linkcard/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/linkcard.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/linkcard.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%A8%A1%E4%BB%BF%E7%9F%A5%E4%B9%8E%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%A8%A1%E4%BB%BF%E7%9F%A5%E4%B9%8E%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5%7c%0A%7cURL%7chttps://lruihao.cn/posts/linkcard/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/linkcard.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/linkcard/ data-title=模仿知乎卡片式链接 data-hashtags=Hexo,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/linkcard/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/linkcard/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/linkcard/ data-title=模仿知乎卡片式链接 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/linkcard/ data-title=模仿知乎卡片式链接><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ubuntutime/ class=post-nav-item rel=prev title=\"Win10,ubuntu 双系统时间不一致\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Win10,ubuntu 双系统时间不一致</a><a href=/posts/qframe/ class=post-nav-item rel=next title=匿名类在可视化界面中的应用>匿名类在可视化界面中的应用<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#源码>源码</a></li><li><a href=#使用>使用</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/4d0419f124a75d5a016ebe63f9010fa7.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/4d0419f124a75d5a016ebe63f9010fa7.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/linkcard/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/linkcard/index.md",
    "content": "# 模仿知乎卡片式链接\n\n\n> 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\n\n<!--more-->\n\n## 源码\n\n> **2021/10/2 1:29 更新**\n\n这是一种后加载，创建`linkcard.js`放到`source/js/src/`，然后在`next\\layout\\_macro\\post.swig`中引用\n\n```js\nfunction cardLink() {\n  let $cardLinks = document.querySelectorAll('.card-link');\n  if ($cardLinks.length === 0) {\n    return;\n  }\n  //插入样式\n  let $linkStyle = document.createElement('style');\n  $linkStyle.innerHTML =\n    '.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;color:inherit;text-decoration:none}.ztext{word-break:break-word;line-height:1.6}.card-link-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/images/card-link-bg.jpg);background-repeat:no-repeat;-webkit-filter:blur(20px);filter:blur(20px);background-size:cover;background-position:center}.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:inherit;background-color:rgba(246,246,246,0.88)}.card-link-text{overflow:hidden}.card-link-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:calc(16px * 1.25 * 2);font-size:16px;font-weight:500;line-height:1.25;color:#1a1a1a}.card-link-meta{display:flex;margin-top:4px;font-size:14px;line-height:20px;color:#999;white-space:nowrap}.card-link-url{display: inline-flex;align-items: center;}.card-link-imageCell{margin-left:8px;border-radius:6px}.card-link-image{display:block;width:60px;height:60px;border-radius:inherit}';\n  document.querySelector('body').appendChild($linkStyle);\n  //渲染 DOM\n  for (let $cardLink of $cardLinks) {\n    $cardLink.innerHTML = `<span class='card-link-backdrop'></span><span class='card-link-content'><span class='card-link-text'><span class='card-link-title'>${$cardLink.innerText}</span><span class='card-link-meta'><span class='card-link-url'><svg class='Zi Zi--InsertLink' fill='currentColor' viewBox='0 0 24 24' width='17' height='17'><path d='M6.77 17.23c-.905-.904-.94-2.333-.08-3.193l3.059-3.06-1.192-1.19-3.059 3.058c-1.489 1.489-1.427 3.954.138 5.519s4.03 1.627 5.519.138l3.059-3.059-1.192-1.192-3.059 3.06c-.86.86-2.289.824-3.193-.08zm3.016-8.673l1.192 1.192 3.059-3.06c.86-.86 2.289-.824 3.193.08.905.905.94 2.334.08 3.194l-3.059 3.06 1.192 1.19 3.059-3.058c1.489-1.489 1.427-3.954-.138-5.519s-4.03-1.627-5.519-.138L9.786 8.557zm-1.023 6.68c.33.33.863.343 1.177.029l5.34-5.34c.314-.314.3-.846-.03-1.176-.33-.33-.862-.344-1.176-.03l-5.34 5.34c-.314.314-.3.846.03 1.177z' fill-rule='evenodd'></path></svg></span>${$cardLink.href}</span></span><span class='card-link-imageCell'><img class='card-link-image' alt='card-link icon' src='/images/linkicon.png'></span></span>`;\n  }\n}\nwindow.onload = () => {\n  cardLink();\n};\n```\n\n## 使用\n\n```html 知乎卡片链接\n<!--知乎卡片链接-->\n<script type=\"text/javascript\" src=\"/js/src/card-link.js\"></script>\n```\n\nhtml 链接写法，a 标签加上`class=\"card-link\"`\n\n```html\n<a href=\"https://github.com/Lruihao/lruihao.github.io\" target=\"_blank\" class=\"card-link\">Lruihao 博客</a>\n```\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"https://github.com/Lruihao/lruihao.github.io\" content=\"Lruihao 博客\" card=true >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/linkcard/  \n\n"
  },
  {
    "path": "posts/links/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>各种 Links 汇总与分享 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\n\"><meta name=keywords content='ACM'><meta itemprop=name content=\"各种 Links 汇总与分享\"><meta itemprop=description content=\"2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\"><meta itemprop=datePublished content=\"2018-06-07T00:06:05+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"2449\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/links/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"各种 Links 汇总与分享\"><meta property=\"og:description\" content=\"2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-07T00:06:05+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"各种 Links 汇总与分享\"><meta name=twitter:description content=\"2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/links/ title=\"各种 Links 汇总与分享 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ title=戏子春秋><link rel=next type=text/html href=https://lruihao.cn/posts/c-with-stl/ title=\"C++ with STL\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/links/index.md title=\"各种 Links 汇总与分享 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"各种 Links 汇总与分享\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/links\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM\",\"wordcount\":2449,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/links\\/\",\"datePublished\":\"2018-06-07T00:06:05+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/links/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>各种 Links 汇总与分享</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>各种 Links 汇总与分享</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-07 00:06:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-07>2018-06-07</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"2449 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"各种 Links 汇总与分享\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#acm-相关>ACM 相关</a></li><li><a href=#编程学习>编程，学习</a></li><li><a href=#云服务及站长工具>云服务及站长工具</a></li><li><a href=#前端工具>前端工具</a></li><li><a href=#实用工具>实用工具</a></li><li><a href=#其他>其他</a></li><li><a href=#博客文章>博客文章</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>2021/10/1 更新<br>使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。</p><p>我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，</p></blockquote><h2 class=heading-element id=acm-相关><span>1 ACM 相关</span>\n<a href=#acm-%e7%9b%b8%e5%85%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=http://www.pythontip.com/acm/problemCategory target=_blank rel=\"external nofollow noopener noreferrer\">各大 OJ 题目分类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>各种算法分类，对应 OJ 题号超链接</td></tr><tr><td style=text-align:left><a href=https://blog.csdn.net/column/details/acm--acm-acm--1.html target=_blank rel=\"external nofollow noopener noreferrer\">ACM 题目分类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr><tr><td style=text-align:left><a href=https://codeforces.com target=_blank rel=\"external nofollow noopener noreferrer\">codeforces<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>俄国 CF 在线编程，一般比赛在晚上 9:30 和 11:00</td></tr><tr><td style=text-align:left><a href=https://www.nowcoder.com target=_blank rel=\"external nofollow noopener noreferrer\">牛客网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>国内求职学习网，有很多程序设计比赛</td></tr><tr><td style=text-align:left><a href=https://vjudge.net target=_blank rel=\"external nofollow noopener noreferrer\">vjudge<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>这个不用说了吧</td></tr><tr><td style=text-align:left><a href=https://hihocoder.com target=_blank rel=\"external nofollow noopener noreferrer\">hihocoder<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>打得少，感觉好多数据结构的题</td></tr><tr><td style=text-align:left><a href=http://bailian.openjudge.cn target=_blank rel=\"external nofollow noopener noreferrer\">百练<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>OpenJudge 的一个小组，很多题目来自 POJ；也是我 ACM 启蒙地</td></tr><tr><td style=text-align:left><a href=http://acm.hdu.edu.cn target=_blank rel=\"external nofollow noopener noreferrer\">HDUOJ<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>杭州电子科技大学 OJ</td></tr><tr><td style=text-align:left><a href=http://poj.org target=_blank rel=\"external nofollow noopener noreferrer\">POJ<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>北京大学 OJ</td></tr><tr><td style=text-align:left><a href=https://www.luogu.org target=_blank rel=\"external nofollow noopener noreferrer\">洛谷<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr><tr><td style=text-align:left><a href=https://www.lintcode.com/problem/ target=_blank rel=\"external nofollow noopener noreferrer\">lintcode<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>领扣（国外）</td></tr><tr><td style=text-align:left><a href=https://leetcode-cn.com/problemset/all/ target=_blank rel=\"external nofollow noopener noreferrer\">leedcode<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>力扣</td></tr><tr><td style=text-align:left><a href=https://www.codewars.com/kata/ target=_blank rel=\"external nofollow noopener noreferrer\">codewar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>国外</td></tr><tr><td style=text-align:left><a href=https://blog.csdn.net/tigerisland45/article/details/52134189 target=_blank rel=\"external nofollow noopener noreferrer\">更多 OJ，在线刷题网站 &mldr;<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr></tbody></table></div><h2 class=heading-element id=编程学习><span>2 编程，学习</span>\n<a href=#%e7%bc%96%e7%a8%8b%e5%ad%a6%e4%b9%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=https://visualgo.net target=_blank rel=\"external nofollow noopener noreferrer\">visualgo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>算法学习，数据结构和算法动态可视化</td></tr><tr><td style=text-align:left><a href=https://zh.cppreference.com target=_blank rel=\"external nofollow noopener noreferrer\">c,c++学习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>很详细的知识讲解</td></tr><tr><td style=text-align:left><a href=https://archive.apache.org/dist/tomcat/ target=_blank rel=\"external nofollow noopener noreferrer\">Tomcat 下载<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Tomcat 各版本下载，Tomcat 解压即安装；<code>\\bin</code>下可以启动和关闭服务器；可手动在<code>\\webapps</code>里创建 web 应用，也可以配合<code>Eclisp IDE for Java EE Developers</code>等 Java IDE 工具创建</td></tr><tr><td style=text-align:left><a href=http://www.w3school.com.cn target=_blank rel=\"external nofollow noopener noreferrer\">w3school<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>可在线测试，Web 技术教程，HTML, 浏览器脚本，服务器脚本，xml 教程等</td></tr><tr><td style=text-align:left><a href=https://www.w3cschool.cn target=_blank rel=\"external nofollow noopener noreferrer\">w3cschool<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>和上面不同哦，是不是和上面的很像哈哈哈！我估计是上一个网站的新版，功能更强大，内容更丰富，还有微信小程序教程等</td></tr><tr><td style=text-align:left><a href=https://www.runoob.com target=_blank rel=\"external nofollow noopener noreferrer\">菜鸟教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>和上面两个差不多，还有一些数据库、安卓的东西，git 学习</td></tr><tr><td style=text-align:left><a href=http://www.pythontip.com target=_blank rel=\"external nofollow noopener noreferrer\">python 学习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Python 库安装包下载，python,Django,HTML,ACM 学习</td></tr><tr><td style=text-align:left><a href=https://python123.io target=_blank rel=\"external nofollow noopener noreferrer\">python123<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Python123 是专注于为中国高等院校教学 Python 语言的而开发的一款学习工具网站 <a href=\"https://python123.io/index/notebooks/python_programming_basic_v2/%E6%BA%90%E4%BB%A3%E7%A0%81/2-1%20%E5%9F%BA%E6%9C%AC%E7%9A%84%E6%B8%A9%E5%BA%A6%E8%BD%AC%E6%8D%A2%E7%A8%8B%E5%BA%8F?from=Python%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80%28%E7%AC%AC2%E7%89%88%29\" target=_blank rel=\"external nofollow noopener noreferrer\">python 学习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=https://pypi.org/ target=_blank rel=\"external nofollow noopener noreferrer\">pypi<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Find, install and publish Python packages with the Python Package Index</td></tr><tr><td style=text-align:left><a href=https://uqer.io target=_blank rel=\"external nofollow noopener noreferrer\">优矿<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>python 在线测试，笔记</td></tr><tr><td style=text-align:left><a href=http://www.ruanyifeng.com/blog/ target=_blank rel=\"external nofollow noopener noreferrer\">阮一峰的网络日志<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>开发者手册，JavaScript 等等</td></tr><tr><td style=text-align:left><a href=https://www.liaoxuefeng.com target=_blank rel=\"external nofollow noopener noreferrer\">廖雪峰<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>git,python,javascript 学习</td></tr><tr><td style=text-align:left><a href=http://www.sioe.cn target=_blank rel=\"external nofollow noopener noreferrer\">新晴网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>PS 学习，摄影教程等</td></tr><tr><td style=text-align:left><a href=https://www.shiyanlou.com target=_blank rel=\"external nofollow noopener noreferrer\">实验楼<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>在线做实验，高效学编程</td></tr><tr><td style=text-align:left><a href=https://www.imooc.com target=_blank rel=\"external nofollow noopener noreferrer\">慕课网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>在线学习，免费，付费视频</td></tr><tr><td style=text-align:left><a href=https://wxpy.readthedocs.io target=_blank rel=\"external nofollow noopener noreferrer\">wxpy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一个 python 关于微信的库</td></tr><tr><td style=text-align:left><a href=http://so1n.me/links/ target=_blank rel=\"external nofollow noopener noreferrer\">So1n<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>python 学习</td></tr></tbody></table></div><h2 class=heading-element id=云服务及站长工具><span>3 云服务及站长工具</span>\n<a href=#%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%8f%8a%e7%ab%99%e9%95%bf%e5%b7%a5%e5%85%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=https://console.cloud.tencent.com target=_blank rel=\"external nofollow noopener noreferrer\">腾讯云<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>dnspod 解析新版入口，腾讯云控制台</td></tr><tr><td style=text-align:left><a href=https://www.dnspod.cn target=_blank rel=\"external nofollow noopener noreferrer\">dnspod 解析<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>域名解析，其他：阿里云等</td></tr><tr><td style=text-align:left><a href=https://www.cloudflare.com target=_blank rel=\"external nofollow noopener noreferrer\">cloudflare 解析<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>域名解析，https 解析，<a href=https://oliverqueen.cn/2018-01-25-%E5%8F%AF%E8%83%BD%E6%98%AF%E6%9C%80%E5%85%A8%E7%9A%84%E4%BD%BF%E7%94%A8HEXO%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B/ target=_blank rel=\"external nofollow noopener noreferrer\">介绍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=https://studio.dev.tencent.com/ target=_blank rel=\"external nofollow noopener noreferrer\">cloud studio<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>这是腾讯云和 coding 合作后的一个东西，简单来说就是云端开发环境。试了一下完全可以把 hexo 博客源码挂上面编辑。这也就不用只局限于一台电脑发布博客了。</td></tr><tr><td style=text-align:left><a href=https://cloud.tencent.com/developer/labs target=_blank rel=\"external nofollow noopener noreferrer\">腾讯云大学开放实验室<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>可以在线进行一些云服务应用搭建等的实验。与之对应的还有阿里云开放实验室</td></tr><tr><td style=text-align:left><a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=_blank rel=\"external nofollow noopener noreferrer\">宝塔面板<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>宝塔面板是一款使用方便、功能强大且终身免费的服务器管理软件，支持 Linux 与 Windows 系统。一键配置：LAMP/LNMP、网站、数据库、FTP、SSL，通过 Web 端轻松管理服务器。</td></tr><tr><td style=text-align:left><a href=https://leancloud.cn target=_blank rel=\"external nofollow noopener noreferrer\">leancloud<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一站式后端云服务</td></tr><tr><td style=text-align:left><a href=http://www.daovoice.io target=_blank rel=\"external nofollow noopener noreferrer\">daovoice<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>网站在线客服</td></tr><tr><td style=text-align:left><a href=https://ziyuan.baidu.com/linksubmit/url target=_blank rel=\"external nofollow noopener noreferrer\">百度网站收录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>网站 seo</td></tr><tr><td style=text-align:left><a href=https://www.bing.com/toolbox/webmaster target=_blank rel=\"external nofollow noopener noreferrer\">Bing 站长<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Bing 网站管理员工具</td></tr><tr><td style=text-align:left><a href=http://tool.chinaz.com target=_blank rel=\"external nofollow noopener noreferrer\">站长工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>网站信息查询，权重，seo，网站速度查询，ping 等</td></tr><tr><td style=text-align:left><a href=http://tool.lusongsong.com target=_blank rel=\"external nofollow noopener noreferrer\">站长工具大全<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>各种 seo 优化，工具等</td></tr></tbody></table></div><h2 class=heading-element id=前端工具><span>4 前端工具</span>\n<a href=#%e5%89%8d%e7%ab%af%e5%b7%a5%e5%85%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=http://www.jser.com/ target=_blank rel=\"external nofollow noopener noreferrer\">全栈开发者<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>顾名思义，有很多 web 开发的教程，也可以在线执行代码</td></tr><tr><td style=text-align:left><a href=http://www.jsfuck.com target=_blank rel=\"external nofollow noopener noreferrer\">JSFuck<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>JSFuck 是一种基于 JavaScript 原子部分的深奥教育编程风格。它只使用六个不同的字符来编写和执行代码。（代码极丑化）</td></tr><tr><td style=text-align:left><a href=https://www.bootcdn.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">BootCDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>稳定、快速、免费的前端开源项目 CDN 加速服务，共收录了 3441 个前端开源项目。比如<code>vue</code>,<code>fancybox</code>等</td></tr><tr><td style=text-align:left><a href=https://www.bootcss.com target=_blank rel=\"external nofollow noopener noreferrer\">bootstrap 中文网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>简洁、直观、强悍的前端开发框架，让 web 开发更迅速、简单。还有一些基于 bootstrap 开发或扩充的项目的 cdn，<code>BootCDN</code>也是在该网站旗下</td></tr><tr><td style=text-align:left><a href=\"https://fontawesome.com/icons?d=gallery\" target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome 图标库<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>hexo 指定图标库</td></tr><tr><td style=text-align:left><a href=http://www.iconfont.cn target=_blank rel=\"external nofollow noopener noreferrer\">iconfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>阿里巴巴矢量图标库</td></tr><tr><td style=text-align:left><a href=https://www.easyicon.net target=_blank rel=\"external nofollow noopener noreferrer\">easyicon 图标库<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>图标下载，格式转换，可外链</td></tr><tr><td style=text-align:left><a href=https://semantic-ui.com/elements/icon.html target=_blank rel=\"external nofollow noopener noreferrer\">semantic-ui.com 图标库<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>semantic-ui.com 还有很多前端样式对应代码</td></tr><tr><td style=text-align:left><a href=https://colorhunt.co/ target=_blank rel=\"external nofollow noopener noreferrer\">colorhunt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>配色方案推荐，调试</td></tr><tr><td style=text-align:left><a href=https://www.grabient.com target=_blank rel=\"external nofollow noopener noreferrer\">grabient 渐变色<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>渐变色调色</td></tr><tr><td style=text-align:left><a href=http://gradient.awesomes.cn target=_blank rel=\"external nofollow noopener noreferrer\">gradient 渐变色调色<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>渐变色调色，获取代码</td></tr><tr><td style=text-align:left><a href=https://encycolorpedia.cn target=_blank rel=\"external nofollow noopener noreferrer\">encycolorpedia<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>encycolorpedia 取色器</td></tr><tr><td style=text-align:left><a href=https://sc.youku.com/ target=_blank rel=\"external nofollow noopener noreferrer\">优酷视频上传<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>获取视频外链，其他：腾讯视频</td></tr><tr><td style=text-align:left><a href=https://sm.ms target=_blank rel=\"external nofollow noopener noreferrer\">sm.ms<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>非常好用的图床</td></tr><tr><td style=text-align:left><a href=https://imgurl.org/ target=_blank rel=\"external nofollow noopener noreferrer\">imgURL<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一个开源的图床，很不错，有兴趣的可以自己尝试搭建，比如 <a href=https://img.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">img.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=http://wl.uixsj.cn/index.php target=_blank rel=\"external nofollow noopener noreferrer\">现实君外链<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>支持多种文件外链，唯一不好的是 http</td></tr><tr><td style=text-align:left><a href=https://www.pexels.com target=_blank rel=\"external nofollow noopener noreferrer\">PEXELS 美图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>文章配图，无版权美图网，避免配图侵权</td></tr><tr><td style=text-align:left><a href=https://unsplash.com target=_blank rel=\"external nofollow noopener noreferrer\">unsplash 美图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left><a href=https://source.unsplash.com/ target=_blank rel=\"external nofollow noopener noreferrer\">API<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 还可以获取 <a href=https://source.unsplash.com/random/800x600 target=_blank rel=\"external nofollow noopener noreferrer\">随机图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=https://icon.wuruihong.com target=_blank rel=\"external nofollow noopener noreferrer\">图标工厂<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>移动应用图标生成工具，一键生成所有尺寸的应用图标</td></tr><tr><td style=text-align:left><a href=https://www.emojicopy.com target=_blank rel=\"external nofollow noopener noreferrer\">emoji 在线复制<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Simple emoji copy and paste</td></tr><tr><td style=text-align:left><a href=https://blog.csdn.net/u013778905/article/details/53177042 target=_blank rel=\"external nofollow noopener noreferrer\">HTML 字符实体<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>网页特殊符号大全</td></tr><tr><td style=text-align:left><a href=http://www.sioe.cn/yingyong target=_blank rel=\"external nofollow noopener noreferrer\">特效字转换工具集<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>各种特效字转换工具，彩虹字生成器，RGB 转 16 进制颜色等</td></tr><tr><td style=text-align:left><a href=https://www.yasuotu.com/ target=_blank rel=\"external nofollow noopener noreferrer\">压缩图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>在线 ps，图片去底，证件照换底等操作很方便的 web 图片处理工具</td></tr><tr><td style=text-align:left><a href=http://www.gaitubao.com target=_blank rel=\"external nofollow noopener noreferrer\">改图宝<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>在线改图压缩，加水印，生成二维码，印章制作等</td></tr><tr><td style=text-align:left><a href=https://tool.gifhome.com/ target=_blank rel=\"external nofollow noopener noreferrer\">GIF 之家<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一个压缩效果很好且免费的 gif 压缩工具</td></tr><tr><td style=text-align:left><a href=https://jiema.wwei.cn target=_blank rel=\"external nofollow noopener noreferrer\">二维码解码器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr><tr><td style=text-align:left><a href=https://mh.cli.im target=_blank rel=\"external nofollow noopener noreferrer\">草料二维码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left><a href=https://cli.im target=_blank rel=\"external nofollow noopener noreferrer\">https://cli.im<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=http://www.liantu.com/meihua target=_blank rel=\"external nofollow noopener noreferrer\">联图二维码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr><tr><td style=text-align:left><a href=https://www.9thws.com target=_blank rel=\"external nofollow noopener noreferrer\">第九工厂<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>死磕艺术二维码</td></tr><tr><td style=text-align:left><a href=https://www.mobanma.com target=_blank rel=\"external nofollow noopener noreferrer\">模板码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>动态二维码等</td></tr></tbody></table></div><h2 class=heading-element id=实用工具><span>5 实用工具</span>\n<a href=#%e5%ae%9e%e7%94%a8%e5%b7%a5%e5%85%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=https://learngitbranching.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Gearn Git Branching<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>通过游戏闯关的方式学习 git！</td></tr><tr><td style=text-align:left><a href=https://picgo.github.io/PicGo-Doc/zh/ target=_blank rel=\"external nofollow noopener noreferrer\">PicGo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一个很好的开源的图床管理桌面程序，图床神器支持微博图床、七牛图床、腾讯云 COS、又拍云、GitHub 图床、阿里云 OSS、Imgur 图床等等</td></tr><tr><td style=text-align:left><a href=https://github.com/proxyee-down-org/proxyee-down target=_blank rel=\"external nofollow noopener noreferrer\">Proxyee Down<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>百度云下载解决方案，满速下载，但不限于百度云的下载，感觉比迅雷还好用！</td></tr><tr><td style=text-align:left><a href=https://www.baiduwp.com/ target=_blank rel=\"external nofollow noopener noreferrer\">PanDownload<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>这是 pandownload 网页版，把需要下载的百度网盘链接<code>baidu</code>改成<code>baiduwp</code>即可加速，也有桌面版。</td></tr><tr><td style=text-align:left><a href=https://paste.ubuntu.com target=_blank rel=\"external nofollow noopener noreferrer\">ubuntu pastebin<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>代码展示托管，生成分享网址，防止代码直接分享缩进消失</td></tr><tr><td style=text-align:left><a href=https://picascii.com target=_blank rel=\"external nofollow noopener noreferrer\">图片转字符工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Img&ndash;>String</td></tr><tr><td style=text-align:left><a href=http://everyfont.enjoyfe.com target=_blank rel=\"external nofollow noopener noreferrer\">everyfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>中文字库在线压缩</td></tr><tr><td style=text-align:left><a href=http://font-spider.org target=_blank rel=\"external nofollow noopener noreferrer\">字蛛<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>font-spider 中文字库压缩</td></tr><tr><td style=text-align:left><a href=http://www.mdtr2pdf.com/index.html target=_blank rel=\"external nofollow noopener noreferrer\">mdtr2pdf<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>markdown 转 pdf</td></tr><tr><td style=text-align:left><a href=https://api.imjad.cn target=_blank rel=\"external nofollow noopener noreferrer\">AD&rsquo;s API<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>包括动态签名，网易音乐等</td></tr><tr><td style=text-align:left><a href=https://123.w3cschool.cn/webtools target=_blank rel=\"external nofollow noopener noreferrer\">在线工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>w3cschool 的在线工具集合</td></tr><tr><td style=text-align:left><a href=https://tool.oschina.net target=_blank rel=\"external nofollow noopener noreferrer\">在线工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>开源中国社区</td></tr><tr><td style=text-align:left><a href=https://c.runoob.com target=_blank rel=\"external nofollow noopener noreferrer\">菜鸟工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left><a href=https://www.runoob.com target=_blank rel=\"external nofollow noopener noreferrer\">菜鸟教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 在线工具，编译，加密，压缩代码等</td></tr><tr><td style=text-align:left><a href=http://msdn.itellyou.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">msdn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>windows 系统上 office 等软件下载（备用）</td></tr><tr><td style=text-align:left><a href=https://www.laomoit.com/ target=_blank rel=\"external nofollow noopener noreferrer\">老殁科技<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>Adobe 等各种绿色破解软件</td></tr><tr><td style=text-align:left><a href=\"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=\" target=_blank rel=\"external nofollow noopener noreferrer\">百度接口<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>百度搜索关键词接口</td></tr><tr><td style=text-align:left><a href=https://www.pdflibr.com/ target=_blank rel=\"external nofollow noopener noreferrer\">在线短信<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>不想泄露个人的电话号码，注册一些一次性网站可以用到</td></tr><tr><td style=text-align:left><a href=http://www.peiyinge.com/ target=_blank rel=\"external nofollow noopener noreferrer\">配音阁<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>文字转换语音/语音合成广告_叫卖录音_在线配音网络软件_促销宣传片配音 - 配音阁 - 配音阁，国内专业的广告配音平台</td></tr><tr><td style=text-align:left><a href=https://hacknical.com target=_blank rel=\"external nofollow noopener noreferrer\">hacknical<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>在线个性简历，个人 Github 总结分析</td></tr></tbody></table></div><h2 class=heading-element id=其他><span>6 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>链接</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><a href=https://chvin.github.io/react-tetris/ target=_blank rel=\"external nofollow noopener noreferrer\">俄罗斯方块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>这是一个开源的游戏，小白的我看来简直牛逼爆了，好逼真，刷新都不会打断游戏进度！！</td></tr><tr><td style=text-align:left><a href=http://nazo.one-story.cn target=_blank rel=\"external nofollow noopener noreferrer\">网址迷宫 nazo_game<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>一个程序员的网页游戏，我只玩到 12 关。</td></tr><tr><td style=text-align:left><a href=http://www.51ape.com target=_blank rel=\"external nofollow noopener noreferrer\">无损音乐下载<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left></td></tr><tr><td style=text-align:left><a href=http://www.flexifont.com/flexifont-chn/login/ target=_blank rel=\"external nofollow noopener noreferrer\">手写体制作<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>北京大学计算机科学技术研究所的一个项目<code>59.108.48.27</code> <del>（我的字体至今还未完成）</del></td></tr><tr><td style=text-align:left><a href=http://www.daxiangdaili.com target=_blank rel=\"external nofollow noopener noreferrer\">大象代理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>收费，口碑不错</td></tr><tr><td style=text-align:left><a href=https://www.pgyer.com target=_blank rel=\"external nofollow noopener noreferrer\">蒲公英<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>应用内测发布平台</td></tr></tbody></table></div><h2 class=heading-element id=博客文章><span>7 博客文章</span>\n<a href=#%e5%8d%9a%e5%ae%a2%e6%96%87%e7%ab%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>文章</th><th style=text-align:left>概括</th></tr></thead><tbody><tr><td style=text-align:left><a href=/posts/webbiji/>Web 笔记</a></td><td style=text-align:left>记录一下自己 web 相关学习的笔记</td></tr><tr><td style=text-align:left><a href=/posts/git/>Git 常用指令汇总</a></td><td style=text-align:left>可能用到按需自查</td></tr><tr><td style=text-align:left><a href=/posts/nextplugin/>hexo 插件及 next 内置样式集</a></td><td style=text-align:left>让文章写的好看又简洁又好用的插件！<a href=https://lruihao.cn/categories/hexo/ target=_blank rel=\"external nofollow noopener noreferrer\">hexo 更多请看分类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left><a href=/posts/hexo-theme-next/>hexo-theme-next @modified LRH</a></td><td style=text-align:left>对 next 主题的 DIY 设计记录日志</td></tr><tr><td style=text-align:left><a href=/posts/font-mmt/>一款自己写的字体 - 沐目体</a></td><td style=text-align:left>沐目体&ndash;release</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/links/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/links.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/links.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%90%84%E7%A7%8D+Links+%E6%B1%87%E6%80%BB%E4%B8%8E%E5%88%86%E4%BA%AB&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%90%84%E7%A7%8D+Links+%E6%B1%87%E6%80%BB%E4%B8%8E%E5%88%86%E4%BA%AB%7c%0A%7cURL%7chttps://lruihao.cn/posts/links/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/links.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/links/ data-title=\"各种 Links 汇总与分享\" data-hashtags=ACM><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/links/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/links/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/links/ data-title=\"各种 Links 汇总与分享\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/links/ data-title=\"各种 Links 汇总与分享\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=post-nav-item rel=prev title=戏子春秋><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>戏子春秋</a><a href=/posts/c-with-stl/ class=post-nav-item rel=next title=\"C++ With STL\">C++ With STL<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#acm-相关>ACM 相关</a></li><li><a href=#编程学习>编程，学习</a></li><li><a href=#云服务及站长工具>云服务及站长工具</a></li><li><a href=#前端工具>前端工具</a></li><li><a href=#实用工具>实用工具</a></li><li><a href=#其他>其他</a></li><li><a href=#博客文章>博客文章</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/10197f7436eae710bf968c3cba131875.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/10197f7436eae710bf968c3cba131875.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/links/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/links/index.md",
    "content": "# 各种 Links 汇总与分享\n\n\n> 2021/10/1 更新  \n> 使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\n>\n> 我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\n\n<!--more-->\n\n<!-- tab ACM 相关 -->\n\n## ACM 相关\n\n| 链接                                                                                      | 描述                                                      |\n| :---------------------------------------------------------------------------------------- | :-------------------------------------------------------- |\n| [各大 OJ 题目分类](http://www.pythontip.com/acm/problemCategory)                          | 各种算法分类，对应 OJ 题号超链接                          |\n| [ACM 题目分类](https://blog.csdn.net/column/details/acm--acm-acm--1.html)                 |                                                           |\n| [codeforces](https://codeforces.com)                                                      | 俄国 CF 在线编程，一般比赛在晚上 9:30 和 11:00           |\n| [牛客网](https://www.nowcoder.com)                                                        | 国内求职学习网，有很多程序设计比赛                        |\n| [vjudge](https://vjudge.net)                                                              | 这个不用说了吧                                            |\n| [hihocoder](https://hihocoder.com)                                                        | 打得少，感觉好多数据结构的题                              |\n| [百练](http://bailian.openjudge.cn)                                                       | OpenJudge 的一个小组，很多题目来自 POJ；也是我 ACM 启蒙地 |\n| [HDUOJ](http://acm.hdu.edu.cn)                                                            | 杭州电子科技大学 OJ                                       |\n| [POJ](http://poj.org)                                                                     | 北京大学 OJ                                               |\n| [洛谷](https://www.luogu.org)                                                             |                                                           |\n| [lintcode](https://www.lintcode.com/problem/)                                             | 领扣（国外）                                              |\n| [leedcode](https://leetcode-cn.com/problemset/all/)                                       | 力扣                                                      |\n| [codewar](https://www.codewars.com/kata/)                                                 | 国外                                                      |\n| [更多 OJ，在线刷题网站 ...](https://blog.csdn.net/tigerisland45/article/details/52134189) |                                                           |\n\n<!-- endtab -->\n\n<!-- tab 编程，学习 -->\n\n## 编程，学习\n\n| 链接                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                        |\n| :----------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| [visualgo](https://visualgo.net)                       | 算法学习，数据结构和算法动态可视化                                                                                                                                                                                                                                                                                                                                                          |\n| [c,c++学习](https://zh.cppreference.com)               | 很详细的知识讲解                                                                                                                                                                                                                                                                                                                                                                            |\n| [Tomcat 下载](https://archive.apache.org/dist/tomcat/) | Tomcat 各版本下载，Tomcat 解压即安装；`\\bin`下可以启动和关闭服务器；可手动在`\\webapps`里创建 web 应用，也可以配合`Eclisp IDE for Java EE Developers`等 Java IDE 工具创建                                                                                                                                                                                                                    |\n| [w3school](http://www.w3school.com.cn)                 | 可在线测试，Web 技术教程，HTML, 浏览器脚本，服务器脚本，xml 教程等                                                                                                                                                                                                                                                                                                                          |\n| [w3cschool](https://www.w3cschool.cn)                  | 和上面不同哦，是不是和上面的很像哈哈哈！我估计是上一个网站的新版，功能更强大，内容更丰富，还有微信小程序教程等                                                                                                                                                                                                                                                                              |\n| [菜鸟教程](https://www.runoob.com)                     | 和上面两个差不多，还有一些数据库、安卓的东西，git 学习                                                                                                                                                                                                                                                                                                                                      |\n| [python 学习](http://www.pythontip.com)                | Python 库安装包下载，python,Django,HTML,ACM 学习                                                                                                                                                                                                                                                                                                                                            |\n| [python123](https://python123.io)                      | Python123 是专注于为中国高等院校教学 Python 语言的而开发的一款学习工具网站 [python 学习](https://python123.io/index/notebooks/python_programming_basic_v2/%E6%BA%90%E4%BB%A3%E7%A0%81/2-1%20%E5%9F%BA%E6%9C%AC%E7%9A%84%E6%B8%A9%E5%BA%A6%E8%BD%AC%E6%8D%A2%E7%A8%8B%E5%BA%8F?from=Python%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80%28%E7%AC%AC2%E7%89%88%29) |\n| [pypi](https://pypi.org/)                              | Find, install and publish Python packages with the Python Package Index                                                                                                                                                                                                                                                                                                                     |\n| [优矿](https://uqer.io)                                | python 在线测试，笔记                                                                                                                                                                                                                                                                                                                                                                       |\n| [阮一峰的网络日志](http://www.ruanyifeng.com/blog/)    | 开发者手册，JavaScript 等等                                                                                                                                                                                                                                                                                                                                                                 |\n| [廖雪峰](https://www.liaoxuefeng.com)                  | git,python,javascript 学习                                                                                                                                                                                                                                                                                                                                                                  |\n| [新晴网](http://www.sioe.cn)                           | PS 学习，摄影教程等                                                                                                                                                                                                                                                                                                                                                                         |\n| [实验楼](https://www.shiyanlou.com)                    | 在线做实验，高效学编程                                                                                                                                                                                                                                                                                                                                                                      |\n| [慕课网](https://www.imooc.com)                        | 在线学习，免费，付费视频                                                                                                                                                                                                                                                                                                                                                                    |\n| [wxpy](https://wxpy.readthedocs.io)                    | 一个 python 关于微信的库                                                                                                                                                                                                                                                                                                                                                                    |\n| [So1n](http://so1n.me/links/)                          | python 学习                                                                                                                                                                                                                                                                                                                                                                                 |\n\n<!-- endtab -->\n\n<!-- tab 云服务及站长工具享 -->\n\n## 云服务及站长工具\n\n| 链接                                                             | 描述                                                                                                                                                             |\n| :--------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [腾讯云](https://console.cloud.tencent.com)                      | dnspod 解析新版入口，腾讯云控制台                                                                                                                                |\n| [dnspod 解析](https://www.dnspod.cn)                             | 域名解析，其他：阿里云等                                                                                                                                         |\n| [cloudflare 解析](https://www.cloudflare.com)                    | 域名解析，https 解析，[介绍](https://oliverqueen.cn/2018-01-25-%E5%8F%AF%E8%83%BD%E6%98%AF%E6%9C%80%E5%85%A8%E7%9A%84%E4%BD%BF%E7%94%A8HEXO%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B/)                                                           |\n| [cloud studio](https://studio.dev.tencent.com/)                  | 这是腾讯云和 coding 合作后的一个东西，简单来说就是云端开发环境。试了一下完全可以把 hexo 博客源码挂上面编辑。这也就不用只局限于一台电脑发布博客了。               |\n| [腾讯云大学开放实验室](https://cloud.tencent.com/developer/labs) | 可以在线进行一些云服务应用搭建等的实验。与之对应的还有阿里云开放实验室                                                                                           |\n| [宝塔面板](https://www.bt.cn/?invite_code=MV9sYXJnZHI=)          | 宝塔面板是一款使用方便、功能强大且终身免费的服务器管理软件，支持 Linux 与 Windows 系统。一键配置：LAMP/LNMP、网站、数据库、FTP、SSL，通过 Web 端轻松管理服务器。 |\n| [leancloud](https://leancloud.cn)                                | 一站式后端云服务                                                                                                                                                 |\n| [daovoice](http://www.daovoice.io)                               | 网站在线客服                                                                                                                                                     |\n| [百度网站收录](https://ziyuan.baidu.com/linksubmit/url)          | 网站 seo                                                                                                                                                         |\n| [Bing 站长](https://www.bing.com/toolbox/webmaster)              | Bing 网站管理员工具                                                                                                                                              |\n| [站长工具](http://tool.chinaz.com)                               | 网站信息查询，权重，seo，网站速度查询，ping 等                                                                                                                   |\n| [站长工具大全](http://tool.lusongsong.com)                       | 各种 seo 优化，工具等                                                                                                                                            |\n\n<!-- endtab -->\n\n<!-- tab 前端工具 -->\n\n## 前端工具\n\n| 链接                                                                       | 描述                                                                                                                              |\n| :------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |\n| [全栈开发者](http://www.jser.com/)                                         | 顾名思义，有很多 web 开发的教程，也可以在线执行代码                                                                               |\n| [JSFuck](http://www.jsfuck.com)                                            | JSFuck 是一种基于 JavaScript 原子部分的深奥教育编程风格。它只使用六个不同的字符来编写和执行代码。（代码极丑化）                   |\n| [BootCDN](https://www.bootcdn.cn/)                                         | 稳定、快速、免费的前端开源项目 CDN 加速服务，共收录了 3441 个前端开源项目。比如`vue`,`fancybox`等                                 |\n| [bootstrap 中文网](https://www.bootcss.com)                                | 简洁、直观、强悍的前端开发框架，让 web 开发更迅速、简单。还有一些基于 bootstrap 开发或扩充的项目的 cdn，`BootCDN`也是在该网站旗下 |\n| [Font Awesome 图标库](https://fontawesome.com/icons?d=gallery)             | hexo 指定图标库                                                                                                                   |\n| [iconfont](http://www.iconfont.cn)                                         | 阿里巴巴矢量图标库                                                                                                                |\n| [easyicon 图标库](https://www.easyicon.net)                                | 图标下载，格式转换，可外链                                                                                                        |\n| [semantic-ui.com 图标库](https://semantic-ui.com/elements/icon.html)       | semantic-ui.com 还有很多前端样式对应代码                                                                                          |\n| [colorhunt](https://colorhunt.co/)                                         | 配色方案推荐，调试                                                                                                                |\n| [grabient 渐变色](https://www.grabient.com)                                | 渐变色调色                                                                                                                        |\n| [gradient 渐变色调色](http://gradient.awesomes.cn)                         | 渐变色调色，获取代码                                                                                                              |\n| [encycolorpedia](https://encycolorpedia.cn)                                | encycolorpedia 取色器                                                                                                             |\n| [优酷视频上传](https://sc.youku.com/)                                      | 获取视频外链，其他：腾讯视频                                                                                                      |\n| [sm.ms](https://sm.ms)                                                     | 非常好用的图床                                                                                                                    |\n| [imgURL](https://imgurl.org/)                                              | 一个开源的图床，很不错，有兴趣的可以自己尝试搭建，比如 [img.lruihao.cn](https://img.lruihao.cn)                                   |\n| [现实君外链](http://wl.uixsj.cn/index.php)                                 | 支持多种文件外链，唯一不好的是 http                                                                                               |\n| [PEXELS 美图](https://www.pexels.com)                                      | 文章配图，无版权美图网，避免配图侵权                                                                                              |\n| [unsplash 美图](https://unsplash.com)                                      | [API](https://source.unsplash.com/) 还可以获取 [随机图](https://source.unsplash.com/random/800x600)                               |\n| [图标工厂](https://icon.wuruihong.com)                                     | 移动应用图标生成工具，一键生成所有尺寸的应用图标                                                                                  |\n| [emoji 在线复制](https://www.emojicopy.com)                                | Simple emoji copy and paste                                                                                                       |\n| [HTML 字符实体](https://blog.csdn.net/u013778905/article/details/53177042) | 网页特殊符号大全                                                                                                                  |\n| [特效字转换工具集](http://www.sioe.cn/yingyong)                            | 各种特效字转换工具，彩虹字生成器，RGB 转 16 进制颜色等                                                                            |\n| [压缩图](https://www.yasuotu.com/)                                         | 在线 ps，图片去底，证件照换底等操作很方便的 web 图片处理工具                                                                      |\n| [改图宝](http://www.gaitubao.com)                                          | 在线改图压缩，加水印，生成二维码，印章制作等                                                                                      |\n| [GIF 之家](https://tool.gifhome.com/)                                      | 一个压缩效果很好且免费的 gif 压缩工具                                                                                             |\n| [二维码解码器](https://jiema.wwei.cn)                                      |                                                                                                                                   |\n| [草料二维码](https://mh.cli.im)                                            | <https://cli.im>                                                                                                                  |\n| [联图二维码](http://www.liantu.com/meihua)                                 |                                                                                                                                   |\n| [第九工厂](https://www.9thws.com)                                          | 死磕艺术二维码                                                                                                                    |\n| [模板码](https://www.mobanma.com)                                          | 动态二维码等                                                                                                                      |\n\n<!-- endtab -->\n\n<!-- tab 实用工具 -->\n\n## 实用工具\n\n| 链接                                                                 | 描述                                                                                                                          |\n| :------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- |\n| [Gearn Git Branching](https://learngitbranching.js.org/)             | 通过游戏闯关的方式学习 git！                                                                                                  |\n| [PicGo](https://picgo.github.io/PicGo-Doc/zh/)                       | 一个很好的开源的图床管理桌面程序，图床神器支持微博图床、七牛图床、腾讯云 COS、又拍云、GitHub 图床、阿里云 OSS、Imgur 图床等等 |\n| [Proxyee Down](https://github.com/proxyee-down-org/proxyee-down)     | 百度云下载解决方案，满速下载，但不限于百度云的下载，感觉比迅雷还好用！                                                        |\n| [PanDownload](https://www.baiduwp.com/)                              | 这是 pandownload 网页版，把需要下载的百度网盘链接`baidu`改成`baiduwp`即可加速，也有桌面版。                                   |\n| [ubuntu pastebin](https://paste.ubuntu.com)                          | 代码展示托管，生成分享网址，防止代码直接分享缩进消失                                                                          |\n| [图片转字符工具](https://picascii.com)                               | Img-->String                                                                                                                  |\n| [everyfont](http://everyfont.enjoyfe.com)                            | 中文字库在线压缩                                                                                                              |\n| [字蛛](http://font-spider.org)                                       | font-spider 中文字库压缩                                                                                                      |\n| [mdtr2pdf](http://www.mdtr2pdf.com/index.html)                       | markdown 转 pdf                                                                                                               |\n| [AD's API](https://api.imjad.cn)                                     | 包括动态签名，网易音乐等                                                                                                      |\n| [在线工具](https://123.w3cschool.cn/webtools)                        | w3cschool 的在线工具集合                                                                                                      |\n| [在线工具](https://tool.oschina.net)                                 | 开源中国社区                                                                                                                  |\n| [菜鸟工具](https://c.runoob.com)                                     | [菜鸟教程](https://www.runoob.com) 在线工具，编译，加密，压缩代码等                                                           |\n| [msdn](http://msdn.itellyou.cn/)                                     | windows 系统上 office 等软件下载（备用）                                                                                      |\n| [老殁科技](https://www.laomoit.com/)                                 | Adobe 等各种绿色破解软件                                                                                                      |\n| [百度接口](https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=) | 百度搜索关键词接口                                                                                                            |\n| [在线短信](https://www.pdflibr.com/)                                 | 不想泄露个人的电话号码，注册一些一次性网站可以用到                                                                            |\n| [配音阁](http://www.peiyinge.com/)                                   | 文字转换语音/语音合成广告_叫卖录音_在线配音网络软件\\_促销宣传片配音 - 配音阁 - 配音阁，国内专业的广告配音平台                     |\n| [hacknical](https://hacknical.com)                                   | 在线个性简历，个人 Github 总结分析                                                                                            |\n\n<!-- endtab -->\n\n<!-- tab 其他 -->\n\n## 其他\n\n| 链接                                                        | 描述                                                                              |\n| :---------------------------------------------------------- | :-------------------------------------------------------------------------------- |\n| [俄罗斯方块](https://chvin.github.io/react-tetris/)         | 这是一个开源的游戏，小白的我看来简直牛逼爆了，好逼真，刷新都不会打断游戏进度！！  |\n| [网址迷宫 nazo_game](http://nazo.one-story.cn)              | 一个程序员的网页游戏，我只玩到 12 关。                                            |\n| [无损音乐下载](http://www.51ape.com)                        |                                                                                   |\n| [手写体制作](http://www.flexifont.com/flexifont-chn/login/) | 北京大学计算机科学技术研究所的一个项目`59.108.48.27` ~~（我的字体至今还未完成）~~ |\n| [大象代理](http://www.daxiangdaili.com)                     | 收费，口碑不错                                                                    |\n| [蒲公英](https://www.pgyer.com)                             | 应用内测发布平台                                                                  |\n\n<!-- endtab -->\n\n## 博客文章\n\n| 文章                                                     | 概括                                                                                       |\n| :------------------------------------------------------- | :----------------------------------------------------------------------------------------- |\n| [Web 笔记](/posts/webbiji/)                              | 记录一下自己 web 相关学习的笔记                                                            |\n| [Git 常用指令汇总](/posts/git/)                          | 可能用到按需自查                                                                           |\n| [hexo 插件及 next 内置样式集](/posts/nextplugin/)        | 让文章写的好看又简洁又好用的插件！[hexo 更多请看分类](https://lruihao.cn/categories/hexo/) |\n| [hexo-theme-next @modified LRH](/posts/hexo-theme-next/) | 对 next 主题的 DIY 设计记录日志                                                            |\n| [一款自己写的字体 - 沐目体](/posts/font-mmt/)            | 沐目体--release                                                                            |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/links/  \n\n"
  },
  {
    "path": "posts/linux-git/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Linux/Centos 下的安装 Git | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 下载 git 1 wget https://github.com/git/git/archive/v2.14.1.zip 0.2 安装依赖 1 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker 0.3 解压 git 1 unzip v2.14.1.zip 注： unzip 命令用不了，具体步骤如下：\n\"><meta name=keywords content='Git,linux'><meta itemprop=name content=\"linux/centos 下的安装 git\"><meta itemprop=description content=\"0.1 下载 git 1 wget https://github.com/git/git/archive/v2.14.1.zip 0.2 安装依赖 1 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker 0.3 解压 git 1 unzip v2.14.1.zip 注： unzip 命令用不了，具体步骤如下：\"><meta itemprop=datePublished content=\"2018-09-22T22:28:45+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"190\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,linux\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/linux-git/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"linux/centos 下的安装 git\"><meta property=\"og:description\" content=\"0.1 下载 git 1 wget https://github.com/git/git/archive/v2.14.1.zip 0.2 安装依赖 1 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker 0.3 解压 git 1 unzip v2.14.1.zip 注： unzip 命令用不了，具体步骤如下：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-09-22T22:28:45+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"linux/centos 下的安装 git\"><meta name=twitter:description content=\"0.1 下载 git 1 wget https://github.com/git/git/archive/v2.14.1.zip 0.2 安装依赖 1 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker 0.3 解压 git 1 unzip v2.14.1.zip 注： unzip 命令用不了，具体步骤如下：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/linux-git/ title=\"linux/centos 下的安装 git | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/mood/ title=每一个优秀的人，都有一段沉默的时光><link rel=next type=text/html href=https://lruihao.cn/posts/crash-cheat/ title=网页离开时改变标题“崩溃欺骗”><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/linux-git/index.md title=\"linux/centos 下的安装 git | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"linux/centos 下的安装 git\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-git\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, linux\",\"wordcount\":190,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-git\\/\",\"datePublished\":\"2018-09-22T22:28:45+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/linux-git/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Linux/Centos 下的安装 Git</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Linux/Centos 下的安装 Git</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-09-22 22:28:45\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-09-22>2018-09-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"190 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Linux/Centos 下的安装 Git\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#下载-git>下载 git</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#解压-git>解压 git</a></li><li><a href=#将-git-安装到usrlocal-上>将 git 安装到/usr/local 上</a></li><li><a href=#验证是否安装完成>验证是否安装完成</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=下载-git><span>0.1 下载 git</span>\n<a href=#%e4%b8%8b%e8%bd%bd-git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>wget https://github.com/git/git/archive/v2.14.1.zip</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=安装依赖><span>0.2 安装依赖</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=解压-git><span>0.3 解压 git</span>\n<a href=#%e8%a7%a3%e5%8e%8b-git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>unzip v2.14.1.zip</span></span></code></pre></td></tr></table></div></div></div><p>注：\nunzip 命令用不了，具体步骤如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>#yum list | grep zip/unzip \n</span></span><span class=line><span class=cl>#yum install zip\n</span></span><span class=line><span class=cl>#yum install unzip</span></span></code></pre></td></tr></table></div></div></div><p>基本完成，如果在编译的时候出现错误：<code>gcc : error trying to exec 'cc1plus': execvp : No sunch file or directory</code><br>可以用<code>gcc -v/g++ -v</code> 来查看 gcc 版本，会发现没有安装。安装如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>#yum list | grep gcc\n</span></span><span class=line><span class=cl>#yum install gcc-c++\n</span></span><span class=line><span class=cl>#yum install unzip</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=将-git-安装到usrlocal-上><span>0.4 将 git 安装到/usr/local 上</span>\n<a href=#%e5%b0%86-git-%e5%ae%89%e8%a3%85%e5%88%b0usrlocal-%e4%b8%8a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>先进入 git 文件夹<br>编译<br>安装</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>cd git-2.14.1\n</span></span><span class=line><span class=cl>make prefix=/usr/local all\n</span></span><span class=line><span class=cl>make prefix=/usr/local install</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=验证是否安装完成><span>0.5 验证是否安装完成</span>\n<a href=#%e9%aa%8c%e8%af%81%e6%98%af%e5%90%a6%e5%ae%89%e8%a3%85%e5%ae%8c%e6%88%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git --version</span></span></code></pre></td></tr></table></div></div></div><p>&mldr;</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/linux-git/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/linux-git.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/linux-git.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20linux%2Fcentos+%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85+git&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7clinux%2Fcentos+%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85+git%7c%0A%7cURL%7chttps://lruihao.cn/posts/linux-git/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/linux-git.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/linux-git/ data-title=\"Linux/Centos 下的安装 Git\" data-hashtags=Git,linux><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/linux-git/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/linux-git/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/linux-git/ data-title=\"Linux/Centos 下的安装 Git\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/linux-git/ data-title=\"Linux/Centos 下的安装 Git\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/mood/ class=post-nav-item rel=prev title=每一个优秀的人，都有一段沉默的时光><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>每一个优秀的人，都有一段沉默的时光</a><a href=/posts/crash-cheat/ class=post-nav-item rel=next title=网页离开时改变标题“崩溃欺骗”>网页离开时改变标题“崩溃欺骗”<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#下载-git>下载 git</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#解压-git>解压 git</a></li><li><a href=#将-git-安装到usrlocal-上>将 git 安装到/usr/local 上</a></li><li><a href=#验证是否安装完成>验证是否安装完成</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0fbd1de114dfdb73770a88111b5d4e31.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0fbd1de114dfdb73770a88111b5d4e31.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/linux-git/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/linux-git/index.md",
    "content": "# Linux/Centos 下的安装 Git\n\n\n### 下载 git\n\n```\nwget https://github.com/git/git/archive/v2.14.1.zip\n```\n\n### 安装依赖\n\n```\nsudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\n```\n\n### 解压 git\n\n```\nunzip v2.14.1.zip\n```\n\n注：\nunzip 命令用不了，具体步骤如下：\n\n```\n#yum list | grep zip/unzip \n#yum install zip\n#yum install unzip\n```\n\n基本完成，如果在编译的时候出现错误：`gcc : error trying to exec 'cc1plus': execvp : No sunch file or directory`  \n可以用`gcc -v/g++ -v` 来查看 gcc 版本，会发现没有安装。安装如下：\n\n```\n#yum list | grep gcc\n#yum install gcc-c++\n#yum install unzip\n```\n\n### 将 git 安装到/usr/local 上\n\n先进入 git 文件夹  \n编译  \n安装\n\n```\ncd git-2.14.1\nmake prefix=/usr/local all\nmake prefix=/usr/local install\n```\n\n### 验证是否安装完成\n\n```\ngit --version\n```\n\n...\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/linux-git/  \n\n"
  },
  {
    "path": "posts/linux-hello-c/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Linux 编程初体验 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 在 Linux 上编译 c 语言文件。\n0.1 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\n1 vim 0.2 编辑文件 打开文件编辑器之后编辑文件 \"><meta name=keywords content='linux,C'><meta itemprop=name content=\"linux 编程初体验\"><meta itemprop=description content=\"在 Linux 上编译 c 语言文件。\n0.1 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\n1 vim 0.2 编辑文件 打开文件编辑器之后编辑文件\"><meta itemprop=datePublished content=\"2018-10-15T21:19:27+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"136\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"linux,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/linux-hello-c/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"linux 编程初体验\"><meta property=\"og:description\" content=\"在 Linux 上编译 c 语言文件。\n0.1 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\n1 vim 0.2 编辑文件 打开文件编辑器之后编辑文件\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-15T21:19:27+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"linux 编程初体验\"><meta name=twitter:description content=\"在 Linux 上编译 c 语言文件。\n0.1 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\n1 vim 0.2 编辑文件 打开文件编辑器之后编辑文件\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/linux-hello-c/ title=\"linux 编程初体验 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/font-mmt/ title=沐目体><link rel=next type=text/html href=https://lruihao.cn/posts/web-font/ title=\"ttf 字体压缩\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/linux-hello-c/index.md title=\"linux 编程初体验 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"linux 编程初体验\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-hello-c\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"linux, C\",\"wordcount\":136,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-hello-c\\/\",\"datePublished\":\"2018-10-15T21:19:27+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/linux-hello-c/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Linux 编程初体验</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Linux 编程初体验</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-15 21:19:27\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-15>2018-10-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"136 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Linux 编程初体验\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#打开-vim-编辑器>打开 vim 编辑器</a></li><li><a href=#编辑文件>编辑文件</a></li><li><a href=#编译生成可执行文件并执行>编译生成可执行文件并执行</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>在 Linux 上编译 c 语言文件。</p></blockquote><h3 class=heading-element id=打开-vim-编辑器><span>0.1 打开 vim 编辑器</span>\n<a href=#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>（没有就用 vi, 或者先安装 vim<code>sudo apt-get install vim</code>)</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=编辑文件><span>0.2 编辑文件</span>\n<a href=#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>打开文件编辑器之后编辑文件\n<a class=lightgallery target=_blank href=/posts/linux-hello-c/images/ubuntu.png title=edit data-thumbnail=/posts/linux-hello-c/images/ubuntu.png data-sub-html=\"<h2>edit</h2>\"><img loading=lazy src=/posts/linux-hello-c/images/ubuntu.png alt=edit height=725 width=1191></a></p><p>首先按<code>Esc</code>再<code>:</code>进入末行命令<br>再保存为 hello.c 文件后退出</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>: w hello.c\n</span></span><span class=line><span class=cl>: q</span></span></code></pre></td></tr></table></div></div></div><p>打开目录看看生成的文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ls</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=编译生成可执行文件并执行><span>0.3 编译生成可执行文件并执行</span>\n<a href=#%e7%bc%96%e8%af%91%e7%94%9f%e6%88%90%e5%8f%af%e6%89%a7%e8%a1%8c%e6%96%87%e4%bb%b6%e5%b9%b6%e6%89%a7%e8%a1%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>gcc hello.c -o hello\n</span></span><span class=line><span class=cl>./hello</span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/linux-hello-c/images/hello.png title=hello data-thumbnail=/posts/linux-hello-c/images/hello.png data-sub-html=\"<h2>hello</h2>\"><img loading=lazy src=/posts/linux-hello-c/images/hello.png alt=hello height=298 width=1098></a></p><p>若权限不够则加可执行权限<code>chmod +x hello</code></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/linux-hello-c/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/linux-hello-c/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/linux-hello-c/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20linux+%E7%BC%96%E7%A8%8B%E5%88%9D%E4%BD%93%E9%AA%8C&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7clinux+%E7%BC%96%E7%A8%8B%E5%88%9D%E4%BD%93%E9%AA%8C%7c%0A%7cURL%7chttps://lruihao.cn/posts/linux-hello-c/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/linux-hello-c/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/linux-hello-c/ data-title=\"Linux 编程初体验\" data-hashtags=linux,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/linux-hello-c/ data-hashtag=linux><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/linux-hello-c/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/linux-hello-c/ data-title=\"Linux 编程初体验\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/linux-hello-c/ data-title=\"Linux 编程初体验\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/font-mmt/ class=post-nav-item rel=prev title=沐目体><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>沐目体</a><a href=/posts/web-font/ class=post-nav-item rel=next title=\"Ttf 字体压缩\">Ttf 字体压缩<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#打开-vim-编辑器>打开 vim 编辑器</a></li><li><a href=#编辑文件>编辑文件</a></li><li><a href=#编译生成可执行文件并执行>编译生成可执行文件并执行</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b30d1699a32476a23eb4a032f624f821.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b30d1699a32476a23eb4a032f624f821.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/linux-hello-c/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/linux-hello-c/index.md",
    "content": "# Linux 编程初体验\n\n\n> 在 Linux 上编译 c 语言文件。\n\n### 打开 vim 编辑器\n\n（没有就用 vi, 或者先安装 vim`sudo apt-get install vim`)\n\n```bash\nvim\n```\n\n### 编辑文件\n\n打开文件编辑器之后编辑文件\n![edit](images/ubuntu.png)\n\n首先按`Esc`再`:`进入末行命令  \n再保存为 hello.c 文件后退出\n\n```bash\n: w hello.c\n: q\n```\n\n打开目录看看生成的文件\n\n```bash\nls\n```\n\n### 编译生成可执行文件并执行\n\n```bash\ngcc hello.c -o hello\n./hello\n```\n\n![hello](images/hello.png)\n\n若权限不够则加可执行权限`chmod +x hello`\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/linux-hello-c/  \n\n"
  },
  {
    "path": "posts/linux-permission/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Linux 文件权限 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\n\"><meta name=keywords content='linux,Mac,他山之石'><meta itemprop=name content=\"linux 文件权限\"><meta itemprop=description content=\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\"><meta itemprop=datePublished content=\"2022-07-30T17:15:44+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"614\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"linux,Mac,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/linux-permission/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"linux 文件权限\"><meta property=\"og:description\" content=\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-07-30T17:15:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"Mac\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"linux 文件权限\"><meta name=twitter:description content=\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/linux-permission/ title=\"linux 文件权限 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/config4mac/ title=\"Mac 上的开发配置总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/ohmyzsh-custom/ title=\"自定义 ohmyzsh 主题\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/linux-permission/index.md title=\"linux 文件权限 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"linux 文件权限\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-permission\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"linux, Mac, 他山之石\",\"wordcount\":614,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/linux-permission\\/\",\"datePublished\":\"2022-07-30T17:15:44+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/linux-permission/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Linux 文件权限</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://blog.csdn.net/icanlove/article/details/39667265/ title=\"转载 -> https://blog.csdn.net/icanlove/article/details/39667265/\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>Linux 文件权限</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2022-07-30 17:15:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-07-30>2022-07-30</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"614 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Linux 文件权限\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#查看文件权限>查看文件权限</a></li><li><a href=#文件类型>文件类型</a></li><li><a href=#文件权限对应关系>文件权限对应关系</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>记录 linux 系统下文件权限相关的内容，Mac OS 下类似。</p><h2 class=heading-element id=查看文件权限><span>1 查看文件权限</span>\n<a href=#%e6%9f%a5%e7%9c%8b%e6%96%87%e4%bb%b6%e6%9d%83%e9%99%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>查看 linux 系统下的文件权限，可以使用 <code>ll</code> 命令或者 <code>ls</code> 命令 带 <code>-l</code>（长列表选项）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>➜  ~ ll\n</span></span><span class=line><span class=cl>total <span class=m>160</span>\n</span></span><span class=line><span class=cl>drwx------@  <span class=m>8</span> liruihao  staff   256B Jul  <span class=m>5</span> 14:47 Applications\n</span></span><span class=line><span class=cl>drwx------@ <span class=m>10</span> liruihao  staff   320B Jul <span class=m>27</span> 11:31 Desktop\n</span></span><span class=line><span class=cl>drwx------+  <span class=m>7</span> liruihao  staff   224B Jun <span class=m>17</span> 15:01 Documents\n</span></span><span class=line><span class=cl>drwx------@ <span class=m>22</span> liruihao  staff   704B Jul <span class=m>29</span> 16:35 Downloads\n</span></span><span class=line><span class=cl>drwx------@ <span class=m>94</span> liruihao  staff   2.9K Jul <span class=m>23</span> 19:02 Library\n</span></span><span class=line><span class=cl>drwx------   <span class=m>4</span> liruihao  staff   128B Nov <span class=m>13</span>  <span class=m>2021</span> Movies\n</span></span><span class=line><span class=cl>drwx------+  <span class=m>6</span> liruihao  staff   192B Nov <span class=m>18</span>  <span class=m>2021</span> Music\n</span></span><span class=line><span class=cl>drwx------+  <span class=m>9</span> liruihao  staff   288B Apr <span class=m>26</span> 10:25 Pictures\n</span></span><span class=line><span class=cl>drwxr-xr-x+  <span class=m>5</span> liruihao  staff   160B Nov <span class=m>14</span>  <span class=m>2021</span> Public\n</span></span><span class=line><span class=cl>drwxr-xr-x   <span class=m>5</span> liruihao  staff   160B Jul <span class=m>29</span> 17:48 file-share\n</span></span><span class=line><span class=cl>drwxr-xr-x   <span class=m>3</span> liruihao  staff    96B Jul <span class=m>26</span> 17:17 node_modules\n</span></span><span class=line><span class=cl>-rw-r--r--   <span class=m>1</span> liruihao  staff    27B Jun <span class=m>24</span> 13:47 package-lock.json\n</span></span><span class=line><span class=cl>drwxr-xr-x  <span class=m>20</span> liruihao  staff   640B Jul <span class=m>29</span> 22:20 workspace\n</span></span><span class=line><span class=cl>-rw-r--r--   <span class=m>1</span> liruihao  staff    86B Jul <span class=m>26</span> 17:17 yarn.lock</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>文件列表信息分为：文件类型、权限、链接数、所属用户、所属用户组、文件大小、最后修改时间、文件名。</p><h2 class=heading-element id=文件类型><span>2 文件类型</span>\n<a href=#%e6%96%87%e4%bb%b6%e7%b1%bb%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>linux 一共有 7 种文件类型，分别如下：</p><ul><li><p><code>-</code>: 普通文件</p></li><li><p><code>d</code>: 目录文件</p></li><li><p><code>l</code>: 链接文件</p></li><li><p><code>b</code>: 块设备文件</p></li><li><p><code>p</code>: 管道文件</p></li><li><p><code>c</code>: 字符设备文件</p></li><li><p><code>s</code>: 套接口文件/数据接口文件</p><p><em>后四种是特殊文件</em></p></li></ul><h2 class=heading-element id=文件权限对应关系><span>3 文件权限对应关系</span>\n<a href=#%e6%96%87%e4%bb%b6%e6%9d%83%e9%99%90%e5%af%b9%e5%ba%94%e5%85%b3%e7%b3%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>权限</th><th>含义</th><th>对应数字</th></tr></thead><tbody><tr><td>r</td><td>读权限</td><td>4</td></tr><tr><td>w</td><td>写权限</td><td>2</td></tr><tr><td>x</td><td>执行权限</td><td>1</td></tr></tbody></table></div><p>读、写、运行三项权限用数字表示就是 <strong>r=4,w=2,x=1</strong>。所以，<code>-rw-r--r--</code> 用数字表示成 644。</p><p>权限字段 <code>-rwxrwxrwx</code> 的内容总共会有 10 个 <code>-</code>，第一个表示文件类型，如该文件是<strong>文件 (-表示）</strong>，<strong>文件夹 (d 表示）</strong>, <strong>连接文件 (l 表示）</strong>，后面 9 个按照每三位为一组分。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>drwxr-xr-x   <span class=m>5</span> liruihao  staff   160B Jul <span class=m>29</span> 17:48 file-share</span></span></code></pre></td></tr></table></div></div></div><p><strong>d</strong>: 代表文件夹</p><p><strong>rwx</strong>: 代表文件所有者 (u 表示）权限，这里是 liruihao，liruihao 对该文件拥有读写执行权限。</p><p><strong>r-x</strong>: 代表所属（g 表示）的权限，这里同组用户拥有对该文件读和执行的权限。</p><p><strong>r-x</strong>: 代表其他用户（o 表示）的权限，这里和上面权限一样。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/linux-permission/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/linux-permission.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/linux-permission.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20linux+%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7clinux+%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%7c%0A%7cURL%7chttps://lruihao.cn/posts/linux-permission/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/linux-permission.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/linux-permission/ data-title=\"Linux 文件权限\" data-hashtags=linux,Mac,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/linux-permission/ data-hashtag=linux><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/linux-permission/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/linux-permission/ data-title=\"Linux 文件权限\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/linux-permission/ data-title=\"Linux 文件权限\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/mac/ class=post-tag title=\"标签 - Mac\">Mac</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/config4mac/ class=post-nav-item rel=prev title=\"Mac 上的开发配置总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Mac 上的开发配置总结</a><a href=/posts/ohmyzsh-custom/ class=post-nav-item rel=next title=\"自定义 Ohmyzsh 主题\">自定义 Ohmyzsh 主题<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#查看文件权限>查看文件权限</a></li><li><a href=#文件类型>文件类型</a></li><li><a href=#文件权限对应关系>文件权限对应关系</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/22b590af45577bcd6639362bda0ff70b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/22b590af45577bcd6639362bda0ff70b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/linux-permission/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/linux-permission/index.md",
    "content": "# Linux 文件权限\n\n\n记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\n\n<!--more-->\n\n## 查看文件权限\n\n查看 linux 系统下的文件权限，可以使用 `ll` 命令或者 `ls` 命令 带 `-l`（长列表选项）\n\n```bash\n➜  ~ ll\ntotal 160\ndrwx------@  8 liruihao  staff   256B Jul  5 14:47 Applications\ndrwx------@ 10 liruihao  staff   320B Jul 27 11:31 Desktop\ndrwx------+  7 liruihao  staff   224B Jun 17 15:01 Documents\ndrwx------@ 22 liruihao  staff   704B Jul 29 16:35 Downloads\ndrwx------@ 94 liruihao  staff   2.9K Jul 23 19:02 Library\ndrwx------   4 liruihao  staff   128B Nov 13  2021 Movies\ndrwx------+  6 liruihao  staff   192B Nov 18  2021 Music\ndrwx------+  9 liruihao  staff   288B Apr 26 10:25 Pictures\ndrwxr-xr-x+  5 liruihao  staff   160B Nov 14  2021 Public\ndrwxr-xr-x   5 liruihao  staff   160B Jul 29 17:48 file-share\ndrwxr-xr-x   3 liruihao  staff    96B Jul 26 17:17 node_modules\n-rw-r--r--   1 liruihao  staff    27B Jun 24 13:47 package-lock.json\ndrwxr-xr-x  20 liruihao  staff   640B Jul 29 22:20 workspace\n-rw-r--r--   1 liruihao  staff    86B Jul 26 17:17 yarn.lock\n```\n\n文件列表信息分为：文件类型、权限、链接数、所属用户、所属用户组、文件大小、最后修改时间、文件名。\n\n## 文件类型\n\nlinux 一共有 7 种文件类型，分别如下：\n\n- `-`: 普通文件\n- `d`: 目录文件\n- `l`: 链接文件\n- `b`: 块设备文件\n- `p`: 管道文件\n- `c`: 字符设备文件\n- `s`: 套接口文件/数据接口文件\n\n  _后四种是特殊文件_\n\n## 文件权限对应关系\n\n| 权限 | 含义     | 对应数字 |\n| ---- | -------- | -------- |\n| r    | 读权限   | 4        |\n| w    | 写权限   | 2        |\n| x    | 执行权限 | 1        |\n\n读、写、运行三项权限用数字表示就是 **r=4,w=2,x=1**。所以，`-rw-r--r--` 用数字表示成 644。\n\n权限字段 `-rwxrwxrwx` 的内容总共会有 10 个 `-`，第一个表示文件类型，如该文件是**文件 (-表示）**，**文件夹 (d 表示）**, **连接文件 (l 表示）**，后面 9 个按照每三位为一组分。\n\n```bash\ndrwxr-xr-x   5 liruihao  staff   160B Jul 29 17:48 file-share\n```\n\n**d**: 代表文件夹\n\n**rwx**: 代表文件所有者 (u 表示）权限，这里是 liruihao，liruihao 对该文件拥有读写执行权限。\n\n**r-x**: 代表所属（g 表示）的权限，这里同组用户拥有对该文件读和执行的权限。\n\n**r-x**: 代表其他用户（o 表示）的权限，这里和上面权限一样。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/linux-permission/  \n> 转载 URL: https://blog.csdn.net/icanlove/article/details/39667265/\n"
  },
  {
    "path": "posts/liushuixian/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>流水线 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\n\"><meta name=keywords content='流水线,计算机组成与体系结构'><meta itemprop=name content=\"流水线\"><meta itemprop=description content=\"1 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\"><meta itemprop=datePublished content=\"2018-10-09T16:21:04+08:00\"><meta itemprop=dateModified content=\"2018-10-09T16:21:04+08:00\"><meta itemprop=wordCount content=\"462\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"流水线,计算机组成与体系结构\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/liushuixian/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"流水线\"><meta property=\"og:description\" content=\"1 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-09T16:21:04+08:00\"><meta property=\"article:modified_time\" content=\"2018-10-09T16:21:04+08:00\"><meta property=\"article:tag\" content=\"流水线\"><meta property=\"article:tag\" content=\"计算机组成与体系结构\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"流水线\"><meta name=twitter:description content=\"1 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/liushuixian/ title=\"流水线 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/data/ title=计算机数据><link rel=next type=text/html href=https://lruihao.cn/projects/font-mmt/ title=沐目体><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/liushuixian/index.md title=\"流水线 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"流水线\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/liushuixian\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"流水线, 计算机组成与体系结构\",\"wordcount\":462,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/liushuixian\\/\",\"datePublished\":\"2018-10-09T16:21:04+08:00\",\"dateModified\":\"2018-10-09T16:21:04+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/liushuixian/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>流水线</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>流水线</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-09 16:21:04\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-09>2018-10-09</time></span>&nbsp;<span title=\"462 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=流水线><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#概念>概念</a></li><li><a href=#流水线计算公式>流水线计算公式</a></li><li><a href=#流水线吞吐率计算>流水线吞吐率计算</a></li><li><a href=#流水线加速比>流水线加速比</a></li><li><a href=#流水线的效率>流水线的效率</a></li><li><a href=#例题>例题</a></li><li><a href=#其他>其他</a><ol><li><a href=#主机>主机</a></li><li><a href=#cisc-和-risc>CISC 和 RISC</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=概念><span>1 概念</span>\n<a href=#%e6%a6%82%e5%bf%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。</p><div class=table-wrapper><table><thead><tr><th style=text-align:center>未使用流水线</th><th style=text-align:center>使用流水线</th></tr></thead><tbody><tr><td style=text-align:center><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png title=/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png data-thumbnail=/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png data-sub-html=\"<h2>/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png alt=/posts/liushuixian/images/%E6%9C%AA%E4%BD%BF%E7%94%A8.png height=360 width=576></a></td><td style=text-align:center><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png title=/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png data-thumbnail=/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png data-sub-html=\"<h2>/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png alt=/posts/liushuixian/images/%E4%BD%BF%E7%94%A8.png height=342 width=559></a></td></tr></tbody></table></div><p>流水线周期为执行时间最长的一段。</p><h2 class=heading-element id=流水线计算公式><span>2 流水线计算公式</span>\n<a href=#%e6%b5%81%e6%b0%b4%e7%ba%bf%e8%ae%a1%e7%ae%97%e5%85%ac%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png title=/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png data-thumbnail=/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png data-sub-html=\"<h2>/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png alt=/posts/liushuixian/images/%E5%85%AC%E5%BC%8F.png height=225 width=711></a></p><p>首先使用理论公式，没有答案用实践公式。</p><h2 class=heading-element id=流水线吞吐率计算><span>3 流水线吞吐率计算</span>\n<a href=#%e6%b5%81%e6%b0%b4%e7%ba%bf%e5%90%9e%e5%90%90%e7%8e%87%e8%ae%a1%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>流水线吞吐率是指单位时间内处理的任务的数量。</p><div class=table-wrapper><table><thead><tr><th style=text-align:center>基本公式</th><th style=text-align:center>最大吞吐率</th></tr></thead><tbody><tr><td style=text-align:center><a class=lightgallery target=_blank href=/posts/liushuixian/images/1.png title=/posts/liushuixian/images/1.png data-thumbnail=/posts/liushuixian/images/1.png data-sub-html=\"<h2>/posts/liushuixian/images/1.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/1.png alt=/posts/liushuixian/images/1.png height=169 width=607></a></td><td style=text-align:center><a class=lightgallery target=_blank href=/posts/liushuixian/images/max.png title=/posts/liushuixian/images/max.png data-thumbnail=/posts/liushuixian/images/max.png data-sub-html=\"<h2>/posts/liushuixian/images/max.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/max.png alt=/posts/liushuixian/images/max.png height=190 width=566></a></td></tr></tbody></table></div><h2 class=heading-element id=流水线加速比><span>4 流水线加速比</span>\n<a href=#%e6%b5%81%e6%b0%b4%e7%ba%bf%e5%8a%a0%e9%80%9f%e6%af%94 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>完成一批任务，不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。</p><p>公式：S=不使用流水线执行时间/使用流水线执行时间</p><p>流水线加速比越高越好，说明使用流水线的效果。</p><h2 class=heading-element id=流水线的效率><span>5 流水线的效率</span>\n<a href=#%e6%b5%81%e6%b0%b4%e7%ba%bf%e7%9a%84%e6%95%88%e7%8e%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E6%95%88%E7%8E%87.png title=/posts/liushuixian/images/%E6%95%88%E7%8E%87.png data-thumbnail=/posts/liushuixian/images/%E6%95%88%E7%8E%87.png data-sub-html=\"<h2>/posts/liushuixian/images/%E6%95%88%E7%8E%87.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E6%95%88%E7%8E%87.png alt=/posts/liushuixian/images/%E6%95%88%E7%8E%87.png height=705 width=1352></a></p><h2 class=heading-element id=例题><span>6 例题</span>\n<a href=#%e4%be%8b%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png title=/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png data-thumbnail=/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png data-sub-html=\"<h2>/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png alt=/posts/liushuixian/images/%E4%BE%8B%E9%A2%98.png height=190 width=1194></a></p><h2 class=heading-element id=其他><span>7 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=主机><span>7.1 主机</span>\n<a href=#%e4%b8%bb%e6%9c%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png title=/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png data-thumbnail=/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png data-sub-html=\"<h2>/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png</h2>\"><img loading=lazy src=/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png alt=/posts/liushuixian/images/%E4%B8%BB%E6%9C%BA.png height=608 width=1439></a></p><h3 class=heading-element id=cisc-和-risc><span>7.2 CISC 和 RISC</span>\n<a href=#cisc-%e5%92%8c-risc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:center>类型</th><th style=text-align:center>指令</th><th style=text-align:center>寻址方式</th><th style=text-align:center>实现方式</th><th style=text-align:center>其他</th></tr></thead><tbody><tr><td style=text-align:center>CISC（复杂指令集）</td><td style=text-align:center>数量多，使用频率差别大，可变长格式</td><td style=text-align:center>支持多种</td><td style=text-align:center>微程序控制技术（微码）</td><td style=text-align:center>研制周期长</td></tr><tr><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td><td style=text-align:center></td></tr><tr><td style=text-align:center>RISC（精简指令集）</td><td style=text-align:center>数量少，使用频率接近，定长格式，大部分为单周期指令，操作寄存器，只有 Load/Store 操作内存</td><td style=text-align:center>支持方式少</td><td style=text-align:center>增加了通用寄存器；硬布线逻辑控制为主；适合采用流水线</td><td style=text-align:center>优化编码，有效支持高级语言</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-10-09 16:21:04\">更新于 2018-10-09&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/liushuixian/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/liushuixian/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/liushuixian/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B5%81%E6%B0%B4%E7%BA%BF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B5%81%E6%B0%B4%E7%BA%BF%7c%0A%7cURL%7chttps://lruihao.cn/posts/liushuixian/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/liushuixian/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/liushuixian/ data-title=流水线 data-hashtags=流水线,计算机组成与体系结构><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/liushuixian/ data-hashtag=流水线><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/liushuixian/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/liushuixian/ data-title=流水线 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/liushuixian/ data-title=流水线><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/ class=post-tag title=\"标签 - 流水线\">流水线</a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ class=post-tag title=\"标签 - 计算机组成与体系结构\">计算机组成与体系结构</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/data/ class=post-nav-item rel=prev title=计算机数据><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>计算机数据</a><a href=/projects/font-mmt/ class=post-nav-item rel=next title=沐目体>沐目体<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#概念>概念</a></li><li><a href=#流水线计算公式>流水线计算公式</a></li><li><a href=#流水线吞吐率计算>流水线吞吐率计算</a></li><li><a href=#流水线加速比>流水线加速比</a></li><li><a href=#流水线的效率>流水线的效率</a></li><li><a href=#例题>例题</a></li><li><a href=#其他>其他</a><ol><li><a href=#主机>主机</a></li><li><a href=#cisc-和-risc>CISC 和 RISC</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3afb2cc93680553927e6cc9082224ee9.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3afb2cc93680553927e6cc9082224ee9.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/liushuixian/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/liushuixian/index.md",
    "content": "# 流水线\n\n\n## 概念\n\n流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\n\n|      未使用流水线      |      使用流水线      |\n| :--------------------: | :------------------: |\n| ![](images/未使用.png) | ![](images/使用.png) |\n\n流水线周期为执行时间最长的一段。\n\n## 流水线计算公式\n\n![](images/公式.png)\n\n首先使用理论公式，没有答案用实践公式。\n\n## 流水线吞吐率计算\n\n流水线吞吐率是指单位时间内处理的任务的数量。\n\n|     基本公式      |     最大吞吐率      |\n| :---------------: | :-----------------: |\n| ![](images/1.png) | ![](images/max.png) |\n\n## 流水线加速比\n\n完成一批任务，不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。\n\n公式：S=不使用流水线执行时间/使用流水线执行时间\n\n流水线加速比越高越好，说明使用流水线的效果。\n\n## 流水线的效率\n\n![](images/效率.png)\n\n## 例题\n\n![](images/例题.png)\n\n## 其他\n\n### 主机\n\n![](images/主机.png)\n\n### CISC 和 RISC\n\n|        类型        |                                           指令                                           | 寻址方式  |                       实现方式                       |            其他            |\n| :----------------: | :--------------------------------------------------------------------------------------: | :--------: | :--------------------------------------------------: | :------------------------: |\n| CISC（复杂指令集） |                            数量多，使用频率差别大，可变长格式                            | 支持多种  |                微程序控制技术（微码）                |         研制周期长         |\n|                    |                                                                                          |            |                                                      |                            |\n| RISC（精简指令集） | 数量少，使用频率接近，定长格式，大部分为单周期指令，操作寄存器，只有 Load/Store 操作内存 | 支持方式少 | 增加了通用寄存器；硬布线逻辑控制为主；适合采用流水线 | 优化编码，有效支持高级语言 |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/liushuixian/  \n\n"
  },
  {
    "path": "posts/markdownlint/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>给你的 Markdown 挑挑刺 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\n\"><meta name=keywords content='Markdown,markdownlint,pangu.js,AutoCorrect'><meta itemprop=name content=\"给你的 Markdown 挑挑刺\"><meta itemprop=description content=\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\"><meta itemprop=datePublished content=\"2023-10-11T14:26:48+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=wordCount content=\"2189\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Markdown,markdownlint,pangu.js,AutoCorrect\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/markdownlint/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"给你的 Markdown 挑挑刺\"><meta property=\"og:description\" content=\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-11T14:26:48+08:00\"><meta property=\"article:modified_time\" content=\"2024-08-06T14:11:51+08:00\"><meta property=\"article:tag\" content=\"Markdown\"><meta property=\"article:tag\" content=\"markdownlint\"><meta property=\"article:tag\" content=\"pangu.js\"><meta property=\"article:tag\" content=\"AutoCorrect\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"给你的 Markdown 挑挑刺\"><meta name=twitter:description content=\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/markdownlint/ title=\"给你的 Markdown 挑挑刺 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cognitive-complexity/ title=\"认知复杂度（Cognitive Complexity）\"><link rel=next type=text/html href=https://lruihao.cn/posts/dashboard-analysis/ title=\"拖拽式仪表盘 - 功能需求分析\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/markdownlint/index.md title=\"给你的 Markdown 挑挑刺 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"给你的 Markdown 挑挑刺\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/markdownlint\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Markdown, markdownlint, pangu.js, AutoCorrect\",\"wordcount\":2189,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/markdownlint\\/\",\"datePublished\":\"2023-10-11T14:26:48+08:00\",\"dateModified\":\"2024-08-06T14:11:51+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/markdownlint/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>给你的 Markdown 挑挑刺</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>给你的 Markdown 挑挑刺</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-11 14:26:48\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-11>2023-10-11</time></span>&nbsp;<span title=\"更新于 2024-08-06 14:11:51\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-08-06>2024-08-06</time></span>&nbsp;<span title=\"2189 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"给你的 Markdown 挑挑刺\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#引言>引言</a></li><li><a href=#示例>示例</a></li><li><a href=#引入-markdownlint>引入 markdownlint</a><ol><li><a href=#markdownlint-cli-历史>markdownlint cli 历史</a></li><li><a href=#安装-markdownlint-cli2>安装 markdownlint-cli2</a></li><li><a href=#安装-lint-staged>安装 lint-staged</a></li><li><a href=#安装-husky>安装 husky</a></li></ol></li><li><a href=#引入-autocorrect>引入 AutoCorrect</a><ol><li><a href=#盘古之白>盘古之白</a></li><li><a href=#pangujs>pangu.js</a></li><li><a href=#autocorrect>AutoCorrect</a></li><li><a href=#use-autocorrect-in-npm>Use AutoCorrect in NPM</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-08-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。</p><h2 class=heading-element id=引言><span>1 引言</span>\n<a href=#%e5%bc%95%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><strong>会写</strong> Markdown 的人很多，但<strong>写得好</strong> Markdown 的人却很少。这一方面是 Markdown 生态系统自身的问题：<a href=https://www.w3.org/community/markdown/wiki/MarkdownImplementations target=_blank rel=\"external nofollow noopener noreferrer\">语法变种和实现方式<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 五花八门，互不兼容甚至相互矛盾。</p><p>另一方面，也鲜有人愿意花时间去仔细阅读 Markdown 的技术规范；大多数人都只是读了一两篇「速成」，就自我批准出师了，对于一些细节问题并未关注；如果在写作中遇到，也是凭想象和直觉随意判断。</p><p>由此，就产生了大量语法天马行空、版面张牙舞爪，让读者和排版软件都困惑不已的 Markdown 文件。</p><p>既然 JavaScript 有 ESLint，Python 有 PyLint，是不是 Markdown 也有 markdownlint 呢？答案是肯定的！</p><h2 class=heading-element id=示例><span>2 示例</span>\n<a href=#%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本博客源码已引入 markdownlint 规范，可下载本博客源码查看配置。</p><a href=http://github.com/Lruihao/hugo-blog target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>Lruihao/hugo-blog</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/hugo-blog</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><h2 class=heading-element id=引入-markdownlint><span>3 引入 markdownlint</span>\n<a href=#%e5%bc%95%e5%85%a5-markdownlint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>markdownlint 是一个 Markdown 语法检查工具，它可以检查 Markdown 文件中的语法错误，以及一些不规范的写法，让 Markdown 干净又卫生。</p><p>markdownlint 有两个版本，分别是 <a href=https://github.com/mivok target=_blank rel=\"external nofollow noopener noreferrer\">Mark Harrison<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 基于 Ruby 的 <a href=https://github.com/markdownlint/markdownlint target=_blank rel=\"external nofollow noopener noreferrer\">原版<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/DavidAnson target=_blank rel=\"external nofollow noopener noreferrer\">David Anson<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 基于 Node.js 的 <a href=https://github.com/DavidAnson/markdownlint target=_blank rel=\"external nofollow noopener noreferrer\">移植版<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。Node.js 版在人气和活跃程度上后来居上，本文也以 Node.js 版为例。</p><p>markdownlint 可以在多个场景下使用，包括：</p><ul><li><a href=https://dlaa.me/markdownlint/ target=_blank rel=\"external nofollow noopener noreferrer\">在线版<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint\" target=_blank rel=\"external nofollow noopener noreferrer\">VSCode 扩展<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/igorshubovych/markdownlint-cli target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/DavidAnson/markdownlint-cli2 target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint-cli2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>本文主要的目的是介绍 markdownlint-cli2 的使用，因为它可以在项目中集成，方便团队协作。</p><h3 class=heading-element id=markdownlint-cli-历史><span>3.1 markdownlint cli 历史</span>\n<a href=#markdownlint-cli-%e5%8e%86%e5%8f%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>根据 David 的博客<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup>，在大约 2015 年左右 <a href=https://github.com/igorshubovych target=_blank rel=\"external nofollow noopener noreferrer\">Igor Shubovych<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和他探讨了开发 CLI 工具的想法，当时，David 还没做好准备，所以 Igor 独自开发了 <a href=https://github.com/igorshubovych/markdownlint-cli target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个 CLI 工具。</p><p>经过两年的发展，越来越多的人开始使用 markdownlint-cli，于是 David 开始给 markdownlint-cli 项目贡献代码，添加新功能，并在之后三年里成为了主要的维护人员。直到 2020 年，David 觉得在别人的项目中，很难改变一些事情（可能涉及向后兼容性的问题），因此他重新建立了一个名叫 <a href=https://github.com/DavidAnson/markdownlint-cli2 target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint-cli2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的项目，在 markdownlint-cli 的基础上进行了改进，使其具有更快的执行速度、更灵活的配置和更少的依赖等优点。</p><p>目前，这两个工具仍然随着 markdownlint 的更新而更新。如果已经在使用 markdownlint-cli 的旧项目，可以继续使用它，以避免出现未知的问题。而对于新引入的项目，可以考虑使用更强大的 markdownlint-cli2。</p><h3 class=heading-element id=安装-markdownlint-cli2><span>3.2 安装 markdownlint-cli2</span>\n<a href=#%e5%ae%89%e8%a3%85-markdownlint-cli2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install markdownlint-cli2 --save-dev</span></span></code></pre></td></tr></table></div></div></div><p>配置快捷命令：</p><json-viewer value='\"{\\n  \\\"scripts\\\": {\\n    \\\"lint:md\\\": \\\"markdownlint-cli2 \\\\\\\"content/**/*.md\\\\\\\"\\\",\\n    \\\"fix:md\\\": \\\"npm run lint:md -- --fix\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>安装 <code>markdownlint-rule-search-replace</code> 插件<sup id=fnref:2><a href=#fn:2 class=footnote-ref role=doc-noteref>2</a></sup>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install markdownlint-rule-search-replace --save-dev</span></span></code></pre></td></tr></table></div></div></div><p>在项目根目录下创建 <code>.markdownlint.jsonc</code> 文件，配置规则：</p><json-viewer value='\"// This file defines our configuration for Markdownlint. See\\n// https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md\\n// for more details on each rule.\\n{\\n  \\\"default\\\": true,\\n  \\\"ul-style\\\": {\\n    \\\"style\\\": \\\"dash\\\"\\n  },\\n  \\\"ul-indent\\\": {\\n    \\\"indent\\\": 2\\n  },\\n  \\\"no-hard-tabs\\\": {\\n    \\\"spaces_per_tab\\\": 2\\n  },\\n  \\\"line-length\\\": false,\\n  \\\"no-duplicate-header\\\": {\\n    \\\"allow_different_nesting\\\": true\\n  },\\n  \\\"single-title\\\": {\\n    \\\"front_matter_title\\\": \\\"^\\\\\\\\s*title\\\\\\\\s*[:=]\\\"\\n  },\\n  \\\"no-trailing-punctuation\\\": {\\n    \\\"punctuation\\\": \\\".,;:\\\"\\n  },\\n  // Consecutive Notes/Callouts currently don&#39;t conform with this rule\\n  \\\"no-blanks-blockquote\\\": false,\\n  // Force ordered numbering to catch accidental list ending from indenting\\n  \\\"ol-prefix\\\": {\\n    \\\"style\\\": \\\"ordered\\\"\\n  },\\n  \\\"no-inline-html\\\": {\\n    \\\"allowed_elements\\\": [\\n      \\\"br\\\",\\n      \\\"code\\\",\\n      \\\"details\\\",\\n      \\\"div\\\",\\n      \\\"img\\\",\\n      \\\"kbd\\\",\\n      \\\"p\\\",\\n      \\\"pre\\\",\\n      \\\"sub\\\",\\n      \\\"summary\\\",\\n      \\\"sup\\\",\\n      \\\"table\\\",\\n      \\\"tbody\\\",\\n      \\\"td\\\",\\n      \\\"tfoot\\\",\\n      \\\"th\\\",\\n      \\\"thead\\\",\\n      \\\"tr\\\",\\n      \\\"ul\\\",\\n      \\\"ol\\\",\\n      \\\"var\\\",\\n      \\\"ruby\\\",\\n      \\\"rp\\\",\\n      \\\"rt\\\",\\n      \\\"i\\\"\\n    ]\\n  },\\n  \\\"no-bare-urls\\\": false,\\n  // Produces too many false positives\\n  \\\"fenced-code-language\\\": false,\\n  \\\"code-block-style\\\": {\\n    \\\"style\\\": \\\"fenced\\\"\\n  },\\n  \\\"no-space-in-code\\\": false,\\n  \\\"emphasis-style\\\": {\\n    \\\"style\\\": \\\"underscore\\\"\\n  },\\n  \\\"strong-style\\\": {\\n    \\\"style\\\": \\\"asterisk\\\"\\n  },\\n  // https://github.com/OnkarRuikar/markdownlint-rule-search-replace\\n  \\\"search-replace\\\": {\\n    \\\"rules\\\": [\\n      {\\n        \\\"name\\\": \\\"nbsp\\\",\\n        \\\"message\\\": \\\"Don&#39;t use no-break spaces\\\",\\n        \\\"searchPattern\\\": \\\"/ /g\\\",\\n        \\\"replace\\\": \\\" \\\",\\n        \\\"searchScope\\\": \\\"all\\\"\\n      },\\n      {\\n        // zh-cn/zh-tw prefers double em-dash instead\\n        \\\"name\\\": \\\"em-dash\\\",\\n        \\\"message\\\": \\\"Don&#39;t use &#39;--&#39;. Use em-dash (—) instead\\\",\\n        \\\"search\\\": \\\" -- \\\",\\n        \\\"replace\\\": \\\" — \\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      },\\n      {\\n        \\\"name\\\": \\\"trailing-spaces\\\",\\n        \\\"message\\\": \\\"Avoid trailing spaces\\\",\\n        \\\"searchPattern\\\": \\\"/  +$/gm\\\",\\n        \\\"replace\\\": \\\"\\\",\\n        \\\"searchScope\\\": \\\"all\\\"\\n      },\\n      {\\n        \\\"name\\\": \\\"double-spaces\\\",\\n        \\\"message\\\": \\\"Avoid double spaces\\\",\\n        \\\"searchPattern\\\": \\\"/([^\\\\\\\\s\\u003e])  ([^\\\\\\\\s|])/g\\\",\\n        \\\"replace\\\": \\\"$1 $2\\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      },\\n      {\\n        \\\"name\\\": \\\"stuck-definition\\\",\\n        \\\"message\\\": \\\"Character is stuck to definition description marker\\\",\\n        \\\"searchPattern\\\": \\\"/- :(\\\\\\\\w)/g\\\",\\n        \\\"replace\\\": \\\"- : $1\\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      },\\n      {\\n        \\\"name\\\": \\\"localhost-links\\\",\\n        \\\"message\\\": \\\"Don&#39;t use localhost for links\\\",\\n        \\\"searchPattern\\\": \\\"/\\\\\\\\]\\\\\\\\(https?:\\\\\\\\/\\\\\\\\/localhost:\\\\\\\\d+\\\\\\\\//g\\\",\\n        \\\"replace\\\": \\\"](/\\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      },\\n      // zh-cn prefers rules\\n      {\\n        \\\"name\\\": \\\"double-em-dash\\\",\\n        \\\"message\\\": \\\"Don&#39;t use &#39;--&#39;. Use double em-dash (——) instead\\\",\\n        \\\"search\\\": \\\" -- \\\",\\n        \\\"replace\\\": \\\"——\\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      },\\n      {\\n        \\\"name\\\": \\\"force-pronoun\\\",\\n        \\\"message\\\": \\\"Consider using &#39;你&#39; instead of &#39;您&#39;\\\",\\n        \\\"searchPattern\\\": \\\"/您/g\\\",\\n        \\\"searchScope\\\": \\\"text\\\"\\n      }\\n    ]\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>在项目根目录下再创建 <code>.markdownlint-cli2.jsonc</code> 文件，配置规则：</p><json-viewer value='\"{\\n  \\\"config\\\": {\\n    \\\"extends\\\": \\\"./.markdownlint.jsonc\\\"\\n  },\\n  \\\"customRules\\\": [\\\"markdownlint-rule-search-replace\\\"],\\n  \\\"ignores\\\": [\\n    \\\"node_modules\\\",\\n    \\\".git\\\",\\n    \\\".github\\\",\\n    \\\"**/conflicting/**\\\",\\n    \\\"**/orphaned/**\\\"\\n  ]\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><h3 class=heading-element id=安装-lint-staged><span>3.3 安装 lint-staged</span>\n<a href=#%e5%ae%89%e8%a3%85-lint-staged class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install lint-staged --save-dev</span></span></code></pre></td></tr></table></div></div></div><p>配置 <code>.lintstagedrc.json</code>：</p><json-viewer value='\"{\\n  \\\"content/**/*.md\\\": \\\"markdownlint-cli2 --fix\\\"\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><h3 class=heading-element id=安装-husky><span>3.4 安装 husky</span>\n<a href=#%e5%ae%89%e8%a3%85-husky class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>本教程基于 husky 8 版本，最新版本方式以 husky 官网教程为准。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npx husky-init <span class=o>&amp;&amp;</span> npm install</span></span></code></pre></td></tr></table></div></div></div><p>配置 <code>.husky/pre-commit</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=cp>#!/usr/bin/env sh\n</span></span></span><span class=line><span class=cl>. <span class=s2>&#34;</span><span class=k>$(</span>dirname -- <span class=s2>&#34;</span><span class=nv>$0</span><span class=s2>&#34;</span><span class=k>)</span><span class=s2>/_/husky.sh&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>npx lint-staged</span></span></code></pre></td></tr></table></div></div></div><p>这样每次提交代码时，就会自动检查并修复 content 目录下的所有 Markdown 文件中的语法错误。</p><h2 class=heading-element id=引入-autocorrect><span>4 引入 AutoCorrect</span>\n<a href=#%e5%bc%95%e5%85%a5-autocorrect class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=盘古之白><span>4.1 盘古之白</span>\n<a href=#%e7%9b%98%e5%8f%a4%e4%b9%8b%e7%99%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在很多中文社区，中英文之间要手动加空格，俗称「盘古之白」，都是不成文的风格要求。这项要求是否合理、又该如何满足，是很有价值的话题，但超出了本文的讨论范围<sup id=fnref:3><a href=#fn:3 class=footnote-ref role=doc-noteref>3</a></sup>。</p><p>这里，只简单概括通说：中英文之间加入空隙，是为了实现视觉上的区隔，更加美观和易读。理想情况下，这种「空隙」应当由排版引擎自动加入，宽度宜为 1/4 个全角空格（em）。但由于数字排版环境复杂多变，在大多数时候（包括最常见的网页环境）不能指望排版引擎有这种能力，因此只能退而求其次，手动插入一个半角空格（因其宽度<strong>通常</strong>接近于 1/4 em），达到类似效果。</p><p>如果想要在中英文之间手动加空格，有什么自动检查和补全的方法吗？</p><p>答案是当然有，而且选择也不止一个。</p><h3 class=heading-element id=pangujs><span>4.2 pangu.js</span>\n<a href=#pangujs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>其中，最著名的可能是 <a href=https://github.com/vinta/pangu.js/ target=_blank rel=\"external nofollow noopener noreferrer\">pangu.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 项目。如果你用过一个叫做「<a href=\"https://chrome.google.com/webstore/detail/%e7%82%ba%e4%bb%80%e9%ba%bc%e4%bd%a0%e5%80%91%e5%b0%b1%e6%98%af%e4%b8%8d%e8%83%bd%e5%8a%a0%e5%80%8b%e7%a9%ba%e6%a0%bc%e5%91%a2%ef%bc%9f/paphcfdffjnbcgkokihcdjliihicmbpd?hl=zh-CN\" target=_blank rel=\"external nofollow noopener noreferrer\">为什么你们就是不能加个空格呢？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>」的浏览器插件，那你也就用过 pangu.js —— 它正是出自同一位作者之手、以 pangu.js 为底层支撑的。Hugo FixIt 主题也内置了 pangu.js 以自动优化博客文章内容中西混排。</p><h3 class=heading-element id=autocorrect><span>4.3 AutoCorrect</span>\n<a href=#autocorrect class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>另一个选择是 <a href=https://github.com/huacnlee/autocorrect target=_blank rel=\"external nofollow noopener noreferrer\">AutoCorrect<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。与主要关注文本内容的 pangu.js 相比，AutoCorrect 出生于 Ruby 语言的中文社区，因此从一开始就考虑到了编程代码中的中英混排场景（可以参见该项目的 <a href=https://github.com/huacnlee/autocorrect/tree/main/tests/fixtures target=_blank rel=\"external nofollow noopener noreferrer\">测试文件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>），通用性更强。</p><p>pangu.js 和 AutoCorrect 的对比：</p><div class=table-wrapper><table><thead><tr><th>项目</th><th>在线版</th><th>VSCode 扩展</th><th>命令行工具</th></tr></thead><tbody><tr><td>pangu.js</td><td>❌</td><td>❌</td><td>✅</td></tr><tr><td>AutoCorrect</td><td><a href=https://huacnlee.github.io/autocorrect/editor target=_blank rel=\"external nofollow noopener noreferrer\">AutoCorrect Editor<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td><a href=\"https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect\" target=_blank rel=\"external nofollow noopener noreferrer\">AutoCorrect<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>✅</td></tr></tbody></table></div><ul><li>pangu.js 没有官方 VSCode 插件，使用较多的是 xlthu 开发的 <a href=\"https://marketplace.visualstudio.com/items?itemName=xlthu.Pangu-Markdown\" target=_blank rel=\"external nofollow noopener noreferrer\">Pangu-Markdown<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 第三方移植版</li><li>pangu.js 的命令行工具受限于 Node.js，需要通过 npm 安装：<code>npm i pangu</code></li><li>AutoCorrect 的命令行工具则可独立安装，同时也有 Rust、Node.js 等更多<a href=https://github.com/huacnlee/autocorrect#use-for-programming target=_blank rel=\"external nofollow noopener noreferrer\">语言版本<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>我在博客、VSCode、浏览器插件中都使用了 pangu.js，长期以来，就会发现很多问题，它的便捷同时也带来了“暴力”，处理规则不可控，这一直让我很头疼，所以本文尝试使用 AutoCorrect 替代 pangu.js。事实上，AutoCorrect 的效果确实更好。</p><h3 class=heading-element id=use-autocorrect-in-npm><span>4.4 Use AutoCorrect in NPM</span>\n<a href=#use-autocorrect-in-npm class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>安装 <code>autocorrect-node</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install autocorrect-node --save-dev</span></span></code></pre></td></tr></table></div></div></div><p>修改快捷命令：</p><json-viewer value='\"{\\n  \\\"scripts\\\": {\\n    \\\"fix:md\\\": \\\"autocorrect content --fix \\u0026\\u0026 markdownlint-cli2 \\\\\\\"content/**/*.md\\\\\\\" --fix\\\",\\n    \\\"lint:md\\\": \\\"autocorrect content --lint \\u0026\\u0026 markdownlint-cli2 \\\\\\\"content/**/*.md\\\\\\\"\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>修改 <code>.lintstagedrc.json</code>：</p><json-viewer value='\"{\\n  \\\"content/**/*.md\\\": [\\n    \\\"autocorrect --fix\\\",\\n    \\\"markdownlint-cli2 --fix\\\"\\n  ]\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>新增 <code>.autocorrectignore</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># AutoCorrect Link ignore rules.</span>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/huacnlee/autocorrect</span>\n</span></span><span class=line><span class=cl><span class=c1>#</span>\n</span></span><span class=line><span class=cl><span class=c1># Like `.gitignore`, this file to tell AutoCorrect which files need to check, some need to ignore.</span>\n</span></span><span class=line><span class=cl>node_modules/\n</span></span><span class=line><span class=cl>build/\n</span></span><span class=line><span class=cl>public/\n</span></span><span class=line><span class=cl>resources/</span></span></code></pre></td></tr></table></div></div></div><p>执行 <code>npx autocorrect init</code> 拉取默认 <code>.autocorrectrc</code> 配置，然后添加一条规则：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yml data-lang=yml><span class=line><span class=cl><span class=nt>textRules</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c># sorted by `LC_ALL=C sort` command</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>一二三,四五六.七八九</span><span class=p>:</span><span class=w> </span><span class=m>0</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=总结><span>5 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本文主要介绍了 markdownlint-cli2 和 AutoCorrect 两个工具，前者用于检查 Markdown 语法和风格，后者用于自动补齐中英文之间的「盘古之白」。这两个工具都可以在项目中集成，方便统一规范、团队协作。</p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p><a href=https://dlaa.me/blog/post/markdownlintcli2 target=_blank rel=\"external nofollow noopener noreferrer\">If one is good, two must be better [markdownlint-cli2 is a new kind of command-line interface for markdownlint]<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li><li id=fn:2><p><a href=https://github.com/OnkarRuikar/markdownlint-rule-search-replace target=_blank rel=\"external nofollow noopener noreferrer\">markdownlint-rule-search-replace<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 用于搜索和替换模式的自定义 markdownlint 规则&#160;<a href=#fnref:2 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li><li id=fn:3><p>如果有进一步兴趣，请阅读知乎讨论「<a href=https://www.zhihu.com/question/19587406 target=_blank rel=\"external nofollow noopener noreferrer\">中英文混排时中文与英文之间是否要有空格？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>」，W3C 标准草案《中文排版需求》<a href=https://www.w3.org/TR/clreq/#mixed_text_composition_in_horizontal_writing_mode target=_blank rel=\"external nofollow noopener noreferrer\">§3.2.2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，以及收听《字谈字畅》播客 <a href=https://www.thetype.com/typechat/ep-014/ target=_blank rel=\"external nofollow noopener noreferrer\">第 14 期<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。&#160;<a href=#fnref:3 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-08-06 14:11:51\">更新于 2024-08-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7b7c5f9349e794b0485a6745ac25cee124689342 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 更新 husky 和 lint-staged 版本&#10&#10Commit: 7b7c5f9349e794b0485a6745ac25cee124689342 [7b7c5f9]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-08-06 14:11:51&#10Commit Date: 2024-08-06 14:14:57\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7b7c5f9</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/markdownlint/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/markdownlint.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/markdownlint.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%BB%99%E4%BD%A0%E7%9A%84+Markdown+%E6%8C%91%E6%8C%91%E5%88%BA&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%BB%99%E4%BD%A0%E7%9A%84+Markdown+%E6%8C%91%E6%8C%91%E5%88%BA%7c%0A%7cURL%7chttps://lruihao.cn/posts/markdownlint/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/markdownlint.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/markdownlint/ data-title=\"给你的 Markdown 挑挑刺\" data-hashtags=Markdown,markdownlint,pangu.js,AutoCorrect><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/markdownlint/ data-hashtag=Markdown><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/markdownlint/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/markdownlint/ data-title=\"给你的 Markdown 挑挑刺\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/markdownlint/ data-title=\"给你的 Markdown 挑挑刺\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/markdown/ class=post-tag title=\"标签 - Markdown\">Markdown</a><a href=/tags/markdownlint/ class=post-tag title=\"标签 - markdownlint\">markdownlint</a><a href=/tags/pangu.js/ class=post-tag title=\"标签 - pangu.js\">pangu.js</a><a href=/tags/autocorrect/ class=post-tag title=\"标签 - AutoCorrect\">AutoCorrect</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cognitive-complexity/ class=post-nav-item rel=prev title=\"认知复杂度（Cognitive Complexity）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>认知复杂度（Cognitive Complexity）</a><a href=/posts/dashboard-analysis/ class=post-nav-item rel=next title=\"拖拽式仪表盘 - 功能需求分析\">拖拽式仪表盘 - 功能需求分析<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#引言>引言</a></li><li><a href=#示例>示例</a></li><li><a href=#引入-markdownlint>引入 markdownlint</a><ol><li><a href=#markdownlint-cli-历史>markdownlint cli 历史</a></li><li><a href=#安装-markdownlint-cli2>安装 markdownlint-cli2</a></li><li><a href=#安装-lint-staged>安装 lint-staged</a></li><li><a href=#安装-husky>安装 husky</a></li></ol></li><li><a href=#引入-autocorrect>引入 AutoCorrect</a><ol><li><a href=#盘古之白>盘古之白</a></li><li><a href=#pangujs>pangu.js</a></li><li><a href=#autocorrect>AutoCorrect</a></li><li><a href=#use-autocorrect-in-npm>Use AutoCorrect in NPM</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/79c7dd05726956976d682d1ae0b5d84d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/79c7dd05726956976d682d1ae0b5d84d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/markdownlint/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/markdownlint/index.md",
    "content": "# 给你的 Markdown 挑挑刺\n\n\n会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\n\n<!--more-->\n\n## 引言\n\n**会写** Markdown 的人很多，但**写得好** Markdown 的人却很少。这一方面是 Markdown 生态系统自身的问题：[语法变种和实现方式](https://www.w3.org/community/markdown/wiki/MarkdownImplementations) 五花八门，互不兼容甚至相互矛盾。\n\n另一方面，也鲜有人愿意花时间去仔细阅读 Markdown 的技术规范；大多数人都只是读了一两篇「速成」，就自我批准出师了，对于一些细节问题并未关注；如果在写作中遇到，也是凭想象和直觉随意判断。\n\n由此，就产生了大量语法天马行空、版面张牙舞爪，让读者和排版软件都困惑不已的 Markdown 文件。\n\n既然 JavaScript 有 ESLint，Python 有 PyLint，是不是 Markdown 也有 markdownlint 呢？答案是肯定的！\n\n## 示例\n\n本博客源码已引入 markdownlint 规范，可下载本博客源码查看配置。\n\n{{< link href=\"http://github.com/Lruihao/hugo-blog\" content=\"Lruihao/hugo-blog\" card=true >}}\n\n## 引入 markdownlint\n\nmarkdownlint 是一个 Markdown 语法检查工具，它可以检查 Markdown 文件中的语法错误，以及一些不规范的写法，让 Markdown 干净又卫生。\n\nmarkdownlint 有两个版本，分别是 [Mark Harrison](https://github.com/mivok) 基于 Ruby 的 [原版](https://github.com/markdownlint/markdownlint) 和 [David Anson](https://github.com/DavidAnson) 基于 Node.js 的 [移植版](https://github.com/DavidAnson/markdownlint)。Node.js 版在人气和活跃程度上后来居上，本文也以 Node.js 版为例。\n\nmarkdownlint 可以在多个场景下使用，包括：\n\n- [在线版](https://dlaa.me/markdownlint/)\n- [VSCode 扩展](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint)\n- [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) 和 [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2)\n\n本文主要的目的是介绍 markdownlint-cli2 的使用，因为它可以在项目中集成，方便团队协作。\n\n### markdownlint cli 历史\n\n根据 David 的博客[^1]，在大约 2015 年左右 [Igor Shubovych](https://github.com/igorshubovych) 和他探讨了开发 CLI 工具的想法，当时，David 还没做好准备，所以 Igor 独自开发了 [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) 这个 CLI 工具。\n\n经过两年的发展，越来越多的人开始使用 markdownlint-cli，于是 David 开始给 markdownlint-cli 项目贡献代码，添加新功能，并在之后三年里成为了主要的维护人员。直到 2020 年，David 觉得在别人的项目中，很难改变一些事情（可能涉及向后兼容性的问题），因此他重新建立了一个名叫 [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) 的项目，在 markdownlint-cli 的基础上进行了改进，使其具有更快的执行速度、更灵活的配置和更少的依赖等优点。\n\n目前，这两个工具仍然随着 markdownlint 的更新而更新。如果已经在使用 markdownlint-cli 的旧项目，可以继续使用它，以避免出现未知的问题。而对于新引入的项目，可以考虑使用更强大的 markdownlint-cli2。\n\n### 安装 markdownlint-cli2\n\n```bash\nnpm install markdownlint-cli2 --save-dev\n```\n\n配置快捷命令：\n\n```json\n{\n  \"scripts\": {\n    \"lint:md\": \"markdownlint-cli2 \\\"content/**/*.md\\\"\",\n    \"fix:md\": \"npm run lint:md -- --fix\"\n  }\n}\n```\n\n安装 `markdownlint-rule-search-replace` 插件[^2]：\n\n```bash\nnpm install markdownlint-rule-search-replace --save-dev\n```\n\n在项目根目录下创建 `.markdownlint.jsonc` 文件，配置规则：\n\n```json\n// This file defines our configuration for Markdownlint. See\n// https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md\n// for more details on each rule.\n{\n  \"default\": true,\n  \"ul-style\": {\n    \"style\": \"dash\"\n  },\n  \"ul-indent\": {\n    \"indent\": 2\n  },\n  \"no-hard-tabs\": {\n    \"spaces_per_tab\": 2\n  },\n  \"line-length\": false,\n  \"no-duplicate-header\": {\n    \"allow_different_nesting\": true\n  },\n  \"single-title\": {\n    \"front_matter_title\": \"^\\\\s*title\\\\s*[:=]\"\n  },\n  \"no-trailing-punctuation\": {\n    \"punctuation\": \".,;:\"\n  },\n  // Consecutive Notes/Callouts currently don't conform with this rule\n  \"no-blanks-blockquote\": false,\n  // Force ordered numbering to catch accidental list ending from indenting\n  \"ol-prefix\": {\n    \"style\": \"ordered\"\n  },\n  \"no-inline-html\": {\n    \"allowed_elements\": [\n      \"br\",\n      \"code\",\n      \"details\",\n      \"div\",\n      \"img\",\n      \"kbd\",\n      \"p\",\n      \"pre\",\n      \"sub\",\n      \"summary\",\n      \"sup\",\n      \"table\",\n      \"tbody\",\n      \"td\",\n      \"tfoot\",\n      \"th\",\n      \"thead\",\n      \"tr\",\n      \"ul\",\n      \"ol\",\n      \"var\",\n      \"ruby\",\n      \"rp\",\n      \"rt\",\n      \"i\"\n    ]\n  },\n  \"no-bare-urls\": false,\n  // Produces too many false positives\n  \"fenced-code-language\": false,\n  \"code-block-style\": {\n    \"style\": \"fenced\"\n  },\n  \"no-space-in-code\": false,\n  \"emphasis-style\": {\n    \"style\": \"underscore\"\n  },\n  \"strong-style\": {\n    \"style\": \"asterisk\"\n  },\n  // https://github.com/OnkarRuikar/markdownlint-rule-search-replace\n  \"search-replace\": {\n    \"rules\": [\n      {\n        \"name\": \"nbsp\",\n        \"message\": \"Don't use no-break spaces\",\n        \"searchPattern\": \"/ /g\",\n        \"replace\": \" \",\n        \"searchScope\": \"all\"\n      },\n      {\n        // zh-cn/zh-tw prefers double em-dash instead\n        \"name\": \"em-dash\",\n        \"message\": \"Don't use '--'. Use em-dash (—) instead\",\n        \"search\": \" -- \",\n        \"replace\": \" — \",\n        \"searchScope\": \"text\"\n      },\n      {\n        \"name\": \"trailing-spaces\",\n        \"message\": \"Avoid trailing spaces\",\n        \"searchPattern\": \"/  +$/gm\",\n        \"replace\": \"\",\n        \"searchScope\": \"all\"\n      },\n      {\n        \"name\": \"double-spaces\",\n        \"message\": \"Avoid double spaces\",\n        \"searchPattern\": \"/([^\\\\s>])  ([^\\\\s|])/g\",\n        \"replace\": \"$1 $2\",\n        \"searchScope\": \"text\"\n      },\n      {\n        \"name\": \"stuck-definition\",\n        \"message\": \"Character is stuck to definition description marker\",\n        \"searchPattern\": \"/- :(\\\\w)/g\",\n        \"replace\": \"- : $1\",\n        \"searchScope\": \"text\"\n      },\n      {\n        \"name\": \"localhost-links\",\n        \"message\": \"Don't use localhost for links\",\n        \"searchPattern\": \"/\\\\]\\\\(https?:\\\\/\\\\/localhost:\\\\d+\\\\//g\",\n        \"replace\": \"](/\",\n        \"searchScope\": \"text\"\n      },\n      // zh-cn prefers rules\n      {\n        \"name\": \"double-em-dash\",\n        \"message\": \"Don't use '--'. Use double em-dash (——) instead\",\n        \"search\": \" -- \",\n        \"replace\": \"——\",\n        \"searchScope\": \"text\"\n      },\n      {\n        \"name\": \"force-pronoun\",\n        \"message\": \"Consider using '你' instead of '您'\",\n        \"searchPattern\": \"/您/g\",\n        \"searchScope\": \"text\"\n      }\n    ]\n  }\n}\n```\n\n在项目根目录下再创建 `.markdownlint-cli2.jsonc` 文件，配置规则：\n\n```json\n{\n  \"config\": {\n    \"extends\": \"./.markdownlint.jsonc\"\n  },\n  \"customRules\": [\"markdownlint-rule-search-replace\"],\n  \"ignores\": [\n    \"node_modules\",\n    \".git\",\n    \".github\",\n    \"**/conflicting/**\",\n    \"**/orphaned/**\"\n  ]\n}\n```\n\n### 安装 lint-staged\n\n```bash\nnpm install lint-staged --save-dev\n```\n\n配置 `.lintstagedrc.json`：\n\n```json\n{\n  \"content/**/*.md\": \"markdownlint-cli2 --fix\"\n}\n```\n\n### 安装 husky\n\n> 本教程基于 husky 8 版本，最新版本方式以 husky 官网教程为准。\n\n```bash\nnpx husky-init && npm install\n```\n\n配置 `.husky/pre-commit`\n\n```bash\n#!/usr/bin/env sh\n. \"$(dirname -- \"$0\")/_/husky.sh\"\n\nnpx lint-staged\n```\n\n这样每次提交代码时，就会自动检查并修复 content 目录下的所有 Markdown 文件中的语法错误。\n\n## 引入 AutoCorrect\n\n### 盘古之白\n\n在很多中文社区，中英文之间要手动加空格，俗称「盘古之白」，都是不成文的风格要求。这项要求是否合理、又该如何满足，是很有价值的话题，但超出了本文的讨论范围[^3]。\n\n这里，只简单概括通说：中英文之间加入空隙，是为了实现视觉上的区隔，更加美观和易读。理想情况下，这种「空隙」应当由排版引擎自动加入，宽度宜为 1/4 个全角空格（em）。但由于数字排版环境复杂多变，在大多数时候（包括最常见的网页环境）不能指望排版引擎有这种能力，因此只能退而求其次，手动插入一个半角空格（因其宽度**通常**接近于 1/4 em），达到类似效果。\n\n如果想要在中英文之间手动加空格，有什么自动检查和补全的方法吗？\n\n答案是当然有，而且选择也不止一个。\n\n### pangu.js\n\n其中，最著名的可能是 [pangu.js](https://github.com/vinta/pangu.js/) 项目。如果你用过一个叫做「[为什么你们就是不能加个空格呢？](https://chrome.google.com/webstore/detail/為什麼你們就是不能加個空格呢？/paphcfdffjnbcgkokihcdjliihicmbpd?hl=zh-CN)」的浏览器插件，那你也就用过 pangu.js —— 它正是出自同一位作者之手、以 pangu.js 为底层支撑的。Hugo FixIt 主题也内置了 pangu.js 以自动优化博客文章内容中西混排。\n\n### AutoCorrect\n\n另一个选择是 [AutoCorrect](https://github.com/huacnlee/autocorrect)。与主要关注文本内容的 pangu.js 相比，AutoCorrect 出生于 Ruby 语言的中文社区，因此从一开始就考虑到了编程代码中的中英混排场景（可以参见该项目的 [测试文件](https://github.com/huacnlee/autocorrect/tree/main/tests/fixtures)），通用性更强。\n\npangu.js 和 AutoCorrect 的对比：\n\n| 项目        | 在线版                                   | VSCode 扩展                       | 命令行工具 |\n| ----------- | ---------------------------------------- | --------------------------------- | ---------- |\n| pangu.js    | ❌                                       | ❌                                | ✅         |\n| AutoCorrect | [AutoCorrect Editor][autocorrect-editor] | [AutoCorrect][autocorrect-vscode] | ✅         |\n\n<!-- link reference definition -->\n[autocorrect-editor]: <https://huacnlee.github.io/autocorrect/editor>\n[autocorrect-vscode]: <https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect>\n\n- pangu.js 没有官方 VSCode 插件，使用较多的是 xlthu 开发的 [Pangu-Markdown](https://marketplace.visualstudio.com/items?itemName=xlthu.Pangu-Markdown) 第三方移植版\n- pangu.js 的命令行工具受限于 Node.js，需要通过 npm 安装：`npm i pangu`\n- AutoCorrect 的命令行工具则可独立安装，同时也有 Rust、Node.js 等更多[语言版本](https://github.com/huacnlee/autocorrect#use-for-programming)\n\n我在博客、VSCode、浏览器插件中都使用了 pangu.js，长期以来，就会发现很多问题，它的便捷同时也带来了“暴力”，处理规则不可控，这一直让我很头疼，所以本文尝试使用 AutoCorrect 替代 pangu.js。事实上，AutoCorrect 的效果确实更好。\n\n### Use AutoCorrect in NPM\n\n安装 `autocorrect-node`：\n\n```bash\nnpm install autocorrect-node --save-dev\n```\n\n修改快捷命令：\n\n```json\n{\n  \"scripts\": {\n    \"fix:md\": \"autocorrect content --fix && markdownlint-cli2 \\\"content/**/*.md\\\" --fix\",\n    \"lint:md\": \"autocorrect content --lint && markdownlint-cli2 \\\"content/**/*.md\\\"\"\n  }\n}\n```\n\n修改 `.lintstagedrc.json`：\n\n```json\n{\n  \"content/**/*.md\": [\n    \"autocorrect --fix\",\n    \"markdownlint-cli2 --fix\"\n  ]\n}\n```\n\n新增 `.autocorrectignore`：\n\n```bash\n# AutoCorrect Link ignore rules.\n# https://github.com/huacnlee/autocorrect\n#\n# Like `.gitignore`, this file to tell AutoCorrect which files need to check, some need to ignore.\nnode_modules/\nbuild/\npublic/\nresources/\n```\n\n执行 `npx autocorrect init` 拉取默认 `.autocorrectrc` 配置，然后添加一条规则：\n\n```yml\ntextRules:\n  # sorted by `LC_ALL=C sort` command\n  一二三,四五六.七八九: 0\n```\n\n## 总结\n\n本文主要介绍了 markdownlint-cli2 和 AutoCorrect 两个工具，前者用于检查 Markdown 语法和风格，后者用于自动补齐中英文之间的「盘古之白」。这两个工具都可以在项目中集成，方便统一规范、团队协作。\n\n<!-- footnote reference definition -->\n[^1]: [If one is good, two must be better [markdownlint-cli2 is a new kind of command-line interface for markdownlint]](https://dlaa.me/blog/post/markdownlintcli2)\n[^2]: [markdownlint-rule-search-replace](https://github.com/OnkarRuikar/markdownlint-rule-search-replace) 用于搜索和替换模式的自定义 markdownlint 规则\n[^3]: 如果有进一步兴趣，请阅读知乎讨论「[中英文混排时中文与英文之间是否要有空格？](https://www.zhihu.com/question/19587406)」，W3C 标准草案《中文排版需求》[§3.2.2](https://www.w3.org/TR/clreq/#mixed_text_composition_in_horizontal_writing_mode)，以及收听《字谈字畅》播客 [第 14 期](https://www.thetype.com/typechat/ep-014/)。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/markdownlint/  \n\n"
  },
  {
    "path": "posts/mathclass/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 猜数字小游戏（Math 类） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 \"><meta name=keywords content='Java'><meta itemprop=name content=\"java 猜数字小游戏（Math 类）\"><meta itemprop=description content=\"大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例\"><meta itemprop=datePublished content=\"2019-01-15T17:33:28+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"737\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/mathclass/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 猜数字小游戏（Math 类）\"><meta property=\"og:description\" content=\"大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-15T17:33:28+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 猜数字小游戏（Math 类）\"><meta name=twitter:description content=\"大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/mathclass/ title=\"java 猜数字小游戏（Math 类） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/duixiang/ title=面向对象基础知识总结><link rel=next type=text/html href=https://lruihao.cn/posts/recent-posts/ title=在搜索、文章底部、侧栏添加最近文章模块><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/mathclass/index.md title=\"java 猜数字小游戏（Math 类） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 猜数字小游戏（Math 类）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/mathclass\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":737,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mathclass\\/\",\"datePublished\":\"2019-01-15T17:33:28+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/mathclass/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 猜数字小游戏（Math 类）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 猜数字小游戏（Math 类）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-15 17:33:28\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-15>2019-01-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"737 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 猜数字小游戏（Math 类）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#小游戏>小游戏</a></li><li><a href=#一次游戏过程>一次游戏过程</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>大一刚学 c 的时候以前写过 <a href=https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B target=_blank rel=\"external nofollow noopener noreferrer\">c 语言版<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的。</p></blockquote><ol><li>Math: 针对数学进行运算的类</li><li>特点：没有构造方法，因为它的成员都是静态的</li><li>产生随机数：\npublic static double random(): 产生随机数，范围 [0.0,1.0)</li><li>产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;</li><li>猜数字小游戏案例</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>class</span> <span class=nc>MathDemo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//获取随机数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//double d = Math.random();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//System.out.println(d);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>    for(int x=0; x&lt;10; x++) {\n</span></span></span><span class=line><span class=cl><span class=cm>      //System.out.println(Math.random());\n</span></span></span><span class=line><span class=cl><span class=cm>      System.out.println(Math.random()*100);\n</span></span></span><span class=line><span class=cl><span class=cm>    }\n</span></span></span><span class=line><span class=cl><span class=cm>    */</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//我们如何获取 1-100 之间的随机数呢？</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>&lt;</span><span class=n>100</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=kt>int</span><span class=w> </span><span class=n>number</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=kt>int</span><span class=p>)(</span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>()</span><span class=o>*</span><span class=n>100</span><span class=p>)</span><span class=o>+</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>number</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=小游戏><span>0.1 小游戏</span>\n<a href=#%e5%b0%8f%e6%b8%b8%e6%88%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>该游戏可以由程序随机产生或由用户输入四个 0 到 9 之间的数字，且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A 表示位置正确且数字正确，B 表示数字正确而位置不正确。<br>算法： 可以直接算出 A 类的数目，但是 B 类的数目直接算出或许会很麻烦，正好我们可以先算出 C 类数目恰好减去 A 类就是 B 类了。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>caishuzi</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.util.Scanner</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Num</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=n>a</span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Num</span><span class=p>()</span><span class=w> </span><span class=p>{}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>setx</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=cm>/*for(int i=0;i&lt;4;i++) {\n</span></span></span><span class=line><span class=cl><span class=cm>      a[i]=(int)(Math.random()*10);\n</span></span></span><span class=line><span class=cl><span class=cm>    }*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c1>//为了四个互不相同的随机数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>a</span><span class=o>[</span><span class=n>0</span><span class=o>]=</span><span class=p>(</span><span class=kt>int</span><span class=p>)</span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>()</span><span class=o>*</span><span class=n>10</span><span class=o>+</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=kt>int</span><span class=w> </span><span class=n>t</span><span class=o>=</span><span class=p>(</span><span class=kt>int</span><span class=p>)(</span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>()</span><span class=o>*</span><span class=n>10</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=n>i</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=o>==</span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>t</span><span class=o>=</span><span class=p>(</span><span class=kt>int</span><span class=p>)(</span><span class=n>Math</span><span class=p>.</span><span class=na>random</span><span class=p>()</span><span class=o>*</span><span class=n>10</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>j</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>a</span><span class=o>[</span><span class=n>i</span><span class=o>]=</span><span class=n>t</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=nf>getx</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>return</span><span class=w> </span><span class=n>a</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>show</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>print</span><span class=p>(</span><span class=n>a</span><span class=o>[</span><span class=n>i</span><span class=o>]+</span><span class=s>&#34; &#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>caishuzi</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>agrs</span><span class=o>[]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=o>[]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>},</span><span class=n>b</span><span class=o>[]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>{</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>0</span><span class=p>};</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;* * * *\\n 请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Scanner</span><span class=w> </span><span class=n>sc</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Scanner</span><span class=p>(</span><span class=n>System</span><span class=p>.</span><span class=na>in</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Num</span><span class=w> </span><span class=n>n</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>Num</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>n</span><span class=p>.</span><span class=na>setx</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>a</span><span class=o>=</span><span class=n>n</span><span class=p>.</span><span class=na>getx</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=cm>/*for(int i=0;i&lt;4;i++)\n</span></span></span><span class=line><span class=cl><span class=cm>      System.out.print(a[i]+&#34; &#34;);\n</span></span></span><span class=line><span class=cl><span class=cm>    n.show();*/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>k</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>k</span><span class=o>&lt;</span><span class=n>10</span><span class=p>;</span><span class=n>k</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=c1>//猜测次数</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=kt>int</span><span class=w> </span><span class=n>A</span><span class=o>=</span><span class=n>0</span><span class=p>,</span><span class=n>B</span><span class=o>=</span><span class=n>0</span><span class=p>,</span><span class=n>C</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]=</span><span class=n>sc</span><span class=p>.</span><span class=na>nextInt</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>sc</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]==</span><span class=n>a</span><span class=o>[</span><span class=n>i</span><span class=o>]</span><span class=p>)</span><span class=n>A</span><span class=o>++</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>j</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=n>4</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>C</span><span class=o>=</span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]==</span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]?++</span><span class=n>C</span><span class=p>:</span><span class=n>C</span><span class=p>;</span><span class=c1>//C 表示猜测数内和随机数中 A 类和 B 类数的数目</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=k>if</span><span class=w> </span><span class=p>(</span><span class=n>b</span><span class=o>[</span><span class=n>i</span><span class=o>]==</span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]</span><span class=p>)</span><span class=k>break</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>B</span><span class=o>=</span><span class=n>C</span><span class=o>-</span><span class=n>A</span><span class=p>;</span><span class=c1>// 关键算法（感叹数学魅力）</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>if</span><span class=p>(</span><span class=n>A</span><span class=o>==</span><span class=n>4</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;恭喜猜对啦！&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>A</span><span class=o>+</span><span class=s>&#34;A&#34;</span><span class=o>+</span><span class=n>B</span><span class=o>+</span><span class=s>&#34;B&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=一次游戏过程><span>0.2 一次游戏过程</span>\n<a href=#%e4%b8%80%e6%ac%a1%e6%b8%b8%e6%88%8f%e8%bf%87%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>* * * *\n</span></span><span class=line><span class=cl>请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。\n</span></span><span class=line><span class=cl>0 1 2 3\n</span></span><span class=line><span class=cl>0A1B\n</span></span><span class=line><span class=cl>0 1 2 4\n</span></span><span class=line><span class=cl>0A1B\n</span></span><span class=line><span class=cl>0 1 2 5\n</span></span><span class=line><span class=cl>1A1B\n</span></span><span class=line><span class=cl>6 1 2 5\n</span></span><span class=line><span class=cl>1A2B\n</span></span><span class=line><span class=cl>1 6 2 5\n</span></span><span class=line><span class=cl>3A0B\n</span></span><span class=line><span class=cl>1 6 7 5\n</span></span><span class=line><span class=cl>恭喜猜对啦！</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/mathclass/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/mathclass.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/mathclass.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E7%8C%9C%E6%95%B0%E5%AD%97%E5%B0%8F%E6%B8%B8%E6%88%8F%EF%BC%88Math+%E7%B1%BB%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E7%8C%9C%E6%95%B0%E5%AD%97%E5%B0%8F%E6%B8%B8%E6%88%8F%EF%BC%88Math+%E7%B1%BB%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/mathclass/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/mathclass.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/mathclass/ data-title=\"Java 猜数字小游戏（Math 类）\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/mathclass/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/mathclass/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/mathclass/ data-title=\"Java 猜数字小游戏（Math 类）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/mathclass/ data-title=\"Java 猜数字小游戏（Math 类）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/duixiang/ class=post-nav-item rel=prev title=面向对象基础知识总结><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>面向对象基础知识总结</a><a href=/posts/recent-posts/ class=post-nav-item rel=next title=在搜索、文章底部、侧栏添加最近文章模块>在搜索、文章底部、侧栏添加最近文章模块<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#小游戏>小游戏</a></li><li><a href=#一次游戏过程>一次游戏过程</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c4e0e052b26014b958361ca24591e880.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c4e0e052b26014b958361ca24591e880.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/mathclass/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/mathclass/index.md",
    "content": "# Java 猜数字小游戏（Math 类）\n\n\n> 大一刚学 c 的时候以前写过 [c 语言版](https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B) 的。\n\n1. Math: 针对数学进行运算的类\n2. 特点：没有构造方法，因为它的成员都是静态的\n3. 产生随机数：\n   public static double random(): 产生随机数，范围 [0.0,1.0)\n4. 产生 1-100 之间的随机数\n   int number = (int)(Math.random()\\*100)+1;\n5. 猜数字小游戏案例\n\n<!--more-->\n\n```java\nclass MathDemo {\n  public static void main(String[] args) {\n    //获取随机数\n    //double d = Math.random();\n    //System.out.println(d);\n\n    /*\n    for(int x=0; x<10; x++) {\n      //System.out.println(Math.random());\n      System.out.println(Math.random()*100);\n    }\n    */\n\n    //我们如何获取 1-100 之间的随机数呢？\n    for(int x=0; x<100; x++) {\n      int number = (int)(Math.random()*100)+1;\n      System.out.println(number);\n    }\n  }\n}\n```\n\n### 小游戏\n\n> 该游戏可以由程序随机产生或由用户输入四个 0 到 9 之间的数字，且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A 表示位置正确且数字正确，B 表示数字正确而位置不正确。  \n> 算法： 可以直接算出 A 类的数目，但是 B 类的数目直接算出或许会很麻烦，正好我们可以先算出 C 类数目恰好减去 A 类就是 B 类了。\n\n```java\npackage caishuzi;\n\nimport java.util.Scanner;\n\nclass Num {\n  private int[] a= {0,0,0,0};\n\n  public Num() {}\n\n  public void setx() {\n    /*for(int i=0;i<4;i++) {\n      a[i]=(int)(Math.random()*10);\n    }*/\n    //为了四个互不相同的随机数\n    a[0]=(int)Math.random()*10+1;\n    for(int i=1;i<4;i++) {\n      int t=(int)(Math.random()*10);\n      for(int j=0;j<i;j++) {\n        if(t==a[j]) {\n          t=(int)(Math.random()*10);\n          j=0;\n        }\n      }\n      a[i]=t;\n    }\n  }\n  public int[] getx() {\n    return a;\n  }\n  public void show() {\n    System.out.println();\n    for(int i=0;i<4;i++)\n      System.out.print(a[i]+\" \");\n    System.out.println();\n  }\n\n}\n\npublic class caishuzi {\n\n  public static void main(String agrs[]) {\n    int a[] = {0,0,0,0},b[] = {0,0,0,0};\n    System.out.println(\"* * * *\\n 请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。\");\n    Scanner sc=new Scanner(System.in);\n    Num n=new Num();\n    n.setx();\n    a=n.getx();\n    /*for(int i=0;i<4;i++)\n      System.out.print(a[i]+\" \");\n    n.show();*/\n    for(int k=0;k<10;k++) {//猜测次数\n      int A=0,B=0,C=0;\n      for(int i=0;i<4;i++) {\n        b[i]=sc.nextInt();\n      }\n      sc.close();\n      for(int i=0;i<4;i++){\n        if (b[i]==a[i])A++;\n        for(int j=0;j<4;j++){\n          C=b[i]==a[j]?++C:C;//C 表示猜测数内和随机数中 A 类和 B 类数的数目\n          if (b[i]==a[j])break;\n        }\n      }\n      B=C-A;// 关键算法（感叹数学魅力）\n      if(A==4) {\n        System.out.println(\"恭喜猜对啦！\");\n      }else {\n        System.out.println(A+\"A\"+B+\"B\");\n      }\n    }\n\n  }\n\n}\n```\n\n### 一次游戏过程\n\n```plain\n* * * *\n请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。\n0 1 2 3\n0A1B\n0 1 2 4\n0A1B\n0 1 2 5\n1A1B\n6 1 2 5\n1A2B\n1 6 2 5\n3A0B\n1 6 7 5\n恭喜猜对啦！\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/mathclass/  \n\n"
  },
  {
    "path": "posts/mermaid-theming/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>让 Mermaid 图表自动跟随系统深浅色 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\n\"><meta name=keywords content='invert filter,Mermaid,prefers-color-scheme,FixIt'><meta itemprop=name content=\"让 Mermaid 图表自动跟随系统深浅色\"><meta itemprop=description content=\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=wordCount content=\"2507\"><meta itemprop=image content=\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\"><meta itemprop=keywords content=\"invert filter,Mermaid,prefers-color-scheme,FixIt\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/mermaid-theming/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"让 Mermaid 图表自动跟随系统深浅色\"><meta property=\"og:description\" content=\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-08-16T12:37:49+08:00\"><meta property=\"article:modified_time\" content=\"2025-08-16T14:56:28+08:00\"><meta property=\"article:tag\" content=\"invert filter\"><meta property=\"article:tag\" content=\"Mermaid\"><meta property=\"article:tag\" content=\"prefers-color-scheme\"><meta property=\"article:tag\" content=\"FixIt\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\"><meta name=twitter:title content=\"让 Mermaid 图表自动跟随系统深浅色\"><meta name=twitter:description content=\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/mermaid-theming/ title=\"让 Mermaid 图表自动跟随系统深浅色 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wc-01-prologue/ title=黑盒出关・三把钥匙定江湖><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ title=\"Command line tool for generating a changelog from git tags and commit history\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/mermaid-theming/index.md title=\"让 Mermaid 图表自动跟随系统深浅色 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"让 Mermaid 图表自动跟随系统深浅色\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/mermaid-theming\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mermaid-theming\\/featured-image.webp\",\"width\":1720,\"height\":722}],\"genre\":\"posts\",\"keywords\":\"invert filter, Mermaid, prefers-color-scheme, FixIt\",\"wordcount\":2507,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mermaid-theming\\/\",\"datePublished\":\"2025-08-16T12:37:49+08:00\",\"dateModified\":\"2025-08-16T14:56:28+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/mermaid-theming/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>让 Mermaid 图表自动跟随系统深浅色</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>让 Mermaid 图表自动跟随系统深浅色</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">一份现阶段可行方案全梳理</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a>&ensp;<a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2025-08-16 12:37:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-08-16>2025-08-16</time></span>&nbsp;<span title=\"更新于 2025-08-16 14:56:28\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-08-16>2025-08-16</time></span>&nbsp;<span title=\"2507 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 6 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"让 Mermaid 图表自动跟随系统深浅色\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/mermaid-theming/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/mermaid-theming/featured-image.webp height=722 width=1720></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#背景mermaid-主题机制与痛点>背景：Mermaid 主题机制与痛点</a></li><li><a href=#方案-1-reinitialize>方案 1️⃣ Reinitialize</a></li><li><a href=#方案-2-css-滤镜>方案 2️⃣ CSS 滤镜</a></li><li><a href=#方案-3-配置热替换>方案 3️⃣ 配置热替换</a></li><li><a href=#方案-4-reinitialize--css-结合>方案 4️⃣ Reinitialize + CSS 结合</a></li><li><a href=#小结与选型建议>小结与选型建议</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-08-16，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。<br>不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。</p><h2 class=heading-element id=背景mermaid-主题机制与痛点><span>背景：Mermaid 主题机制与痛点</span>\n<a href=#%e8%83%8c%e6%99%afmermaid-%e4%b8%bb%e9%a2%98%e6%9c%ba%e5%88%b6%e4%b8%8e%e7%97%9b%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=diagram-container><pre class=mermaid>flowchart LR\n  A([\"Start\"])\n  A --> B{\"Decision\"}\n  B -->|Yes| C[\"Option A\"]\n  B -->|No| D[\"Option B\"]</pre><pre class=mermaid-dark>flowchart LR\n  A([\"Start\"])\n  A --> B{\"Decision\"}\n  B -->|Yes| C[\"Option A\"]\n  B -->|No| D[\"Option B\"]</pre><pre class=mermaid-neutral>flowchart LR\n  A([\"Start\"])\n  A --> B{\"Decision\"}\n  B -->|Yes| C[\"Option A\"]\n  B -->|No| D[\"Option B\"]</pre><div class=diagram-copy-btn aria-label=\"Copy Mermaid code\" role=button><i class=\"fa-regular fa-clone fa-width-auto\" aria-hidden=true></i></div><template><pre>flowchart LR\n  A([\"Start\"])\n  A --> B{\"Decision\"}\n  B -->|Yes| C[\"Option A\"]\n  B -->|No| D[\"Option B\"]</pre></template></div><p>Mermaid 在初始化时通过 <code>theme</code> 字段选定配色，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>mermaid</span><span class=p>.</span><span class=nx>initialize</span><span class=p>({</span> <span class=nx>theme</span><span class=o>:</span> <span class=s1>&#39;dark&#39;</span> <span class=p>});</span></span></span></code></pre></td></tr></table></div></div></div><p>但这条配置 <strong>只在首次渲染时生效</strong>。当用户在操作系统层面切到 Light/Dark，或者网页本身提供手动开关时，Mermaid 并不会自动重绘。这就导致：</p><ul><li>暗黑系统 + 浅色图表 ⇒ 刺眼</li><li>浅色系统 + 暗黑图表 ⇒ 同样刺眼</li></ul><p>社区 Issue <a href=https://github.com/mermaid-js/mermaid/issues/2644 target=_blank rel=\"external nofollow noopener noreferrer\">#2644<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 早在 2022 年就提出希望官方支持 <code>prefers-color-scheme</code>，但至今（2025-08）仍未合入主干。</p><p>顺便提一下，主题的切换一般都有两种主流方式：</p><ol><li>利用 <code>prefers-color-scheme</code> 感知系统级别主题变化，<code>matchMedia('(prefers-color-scheme: dark)')</code> 的 <code>change</code> 事件。</li><li>通过 <code>dark</code> class 手动切换，这种方式通常会在 html/body 上设置一个 <code>class</code> 或者 <code>data-theme=\"dark\"</code> 这样。</li></ol><h2 class=heading-element id=方案-1-reinitialize><span>方案 1️⃣ Reinitialize</span>\n<a href=#%e6%96%b9%e6%a1%88-1-reinitialize class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>切换主题，重新 <code>initialize</code> + 重绘，这是目前来看大多数人的做法。</p><p>思路：</p><ol><li>备份原始的 Mermaid code</li><li>设置 <code>startOnLoad: false</code> 避免 Mermaid 自动渲染，然后使用 <code>mermaid.initialize({ theme: theme })</code> + <code>mermaid.run()</code> 完成初始化。</li><li>重新渲染时移除 <code>data-processed</code>，替换 <code>.mermaid</code> 的内容为原始 Mermaid code，使用 <code>mermaid.initialize({ theme: newTheme })</code> + <code>mermaid.run()</code> 重新渲染</li></ol><p>这份做法在 Issue <a href=https://github.com/mermaid-js/mermaid/issues/1945#issuecomment-1661264708 target=_blank rel=\"external nofollow noopener noreferrer\">#1945<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 里有完整代码，下面给出精简版：</p><p>优点是：</p><ul><li>利用现有官方 API</li></ul><p>缺点是：</p><ul><li>每次切换都需要重新渲染，大图会闪一下</li><li>如果页面里图表很多，性能损耗不可忽视</li><li>还有异步处理带来的一系列问题</li></ul><h2 class=heading-element id=方案-2-css-滤镜><span>方案 2️⃣ CSS 滤镜</span>\n<a href=#%e6%96%b9%e6%a1%88-2-css-%e6%bb%a4%e9%95%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>作为支持 <code>prefers-color-scheme</code> 和手动切换的一种简单的解决方案，可以使用 CSS 反转滤镜（<code>invert</code>、<code>hue-rotate</code> 等）来实现。</p><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=o>[</span><span class=nt>data-theme</span><span class=o>=</span><span class=s1>&#39;dark&#39;</span><span class=o>]</span> <span class=p>.</span><span class=nc>mermaid</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>filter</span><span class=p>:</span> <span class=nb>invert</span><span class=p>(</span><span class=mf>0.88</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>media</span> <span class=o>(</span><span class=nt>prefers-color-scheme</span><span class=o>:</span> <span class=nt>dark</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=p>:</span><span class=nd>root</span><span class=p>:</span><span class=nd>not</span><span class=o>([</span><span class=nt>data-theme</span><span class=o>=</span><span class=s1>&#39;light&#39;</span><span class=o>])</span> <span class=p>.</span><span class=nc>mermaid</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>filter</span><span class=p>:</span> <span class=nb>invert</span><span class=p>(</span><span class=mf>0.88</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>这条技巧是我在 Issue <a href=https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-2313201033 target=_blank rel=\"external nofollow noopener noreferrer\">#2644<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中看到的。</p><p>优点是：</p><ul><li>一行 CSS，无 JS</li><li>不重新渲染，零延迟</li></ul><p>缺点是：</p><ul><li>只是「反色」，并非官方暗黑主题</li><li>对于红色、绿色等语义色会完全失真</li><li>如果背景不是纯黑纯白，观感会很奇怪</li></ul><p>由于太过简单，效果也很粗糙，适合做 Demo 或内部工具，不建议面向终端用户。</p><h2 class=heading-element id=方案-3-配置热替换><span>方案 3️⃣ 配置热替换</span>\n<a href=#%e6%96%b9%e6%a1%88-3-%e9%85%8d%e7%bd%ae%e7%83%ad%e6%9b%bf%e6%8d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>mermaid.live 站点能在用户切主题时瞬间完成切换，且颜色完全与官方暗黑主题对齐。从 <a href=https://github.com/mermaid-js/mermaid-live-editor target=_blank rel=\"external nofollow noopener noreferrer\">源码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 DevTools 推测，它大概做了三件事：</p><ol><li>自己维护一份 <code>themeCSS</code> 字符串（而非仅用名字 <code>'dark'</code>）</li><li>在 <code>prefers-color-scheme</code> 变化时，直接把新的 CSS 注入到 <code>&lt;svg></code> 里的 <code>&lt;style></code> 节点</li><li>通过 <code>mermaid.render('id', code)</code> 拿到 SVG string 后，用正则替换掉旧 <code>&lt;style></code>，再 <code>DOMParser</code> 塞回页面</li></ol><p>Issue <a href=https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289 target=_blank rel=\"external nofollow noopener noreferrer\">#2644<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中有提到，在 mermaid.live 中，目前是根据配色方案在配置中切换主题。</p><p>优点：</p><ul><li>无闪烁</li><li>完全复用官方配色</li></ul><p>缺点：</p><ul><li>需要内部维护主题 CSS，Mermaid 每升级一次都要同步</li><li>实现细节依赖私有 API，官方一旦改动就会崩</li></ul><p>如果你极度追求体验，可以照着源码抄一份，但要做好长期维护的心理准备。</p><p><a href=https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289 target=_blank rel=\"external nofollow noopener noreferrer\">#2644<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中提到，在 mermaid.live 中，目前正在根据配色方案在配置中切换主题。这种方案暂时未找到更多的细节披露。我又懒得去深扒 mermaid.live 的实现细节。</p><h2 class=heading-element id=方案-4-reinitialize--css-结合><span>方案 4️⃣ Reinitialize + CSS 结合</span>\n<a href=#%e6%96%b9%e6%a1%88-4-reinitialize--css-%e7%bb%93%e5%90%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在我的实践中，<a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是通过 <code>data-theme</code> 的方式手动切换网站主题的，我一开始走的思路和方案 1️⃣总体一致，为了处理这个方案的缺点，我多次迭代，有了最终的版本：</p><p>首先通过 <code>type=module</code> 引入 Mermaid：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>mermaid</span> <span class=nx>from</span> <span class=s1>&#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.js&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>zenuml</span> <span class=nx>from</span> <span class=s1>&#39;https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>await</span> <span class=nx>mermaid</span><span class=p>.</span><span class=nx>registerExternalDiagrams</span><span class=p>([</span><span class=nx>zenuml</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl><span class=nx>mermaid</span><span class=p>.</span><span class=nx>startOnLoad</span> <span class=o>=</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>mermaid</span> <span class=o>=</span> <span class=nx>mermaid</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><p>然后在主题的切换逻辑中处理：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>initMermaid</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>)</span> <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>themes</span> <span class=o>=</span> <span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>themes</span> <span class=o>??</span> <span class=p>[</span><span class=s1>&#39;default&#39;</span><span class=p>,</span> <span class=s1>&#39;dark&#39;</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>processing</span> <span class=o>=</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>delayTask</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>loadMermaid</span> <span class=o>=</span> <span class=kr>async</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>processing</span> <span class=o>=</span> <span class=kc>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// https://mermaid.js.org/config/schema-docs/config.html\n</span></span></span><span class=line><span class=cl>    <span class=nb>window</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>initialize</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>      <span class=nx>startOnLoad</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>darkMode</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>isDark</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>theme</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>isDark</span> <span class=o>?</span> <span class=nx>themes</span><span class=p>[</span><span class=mi>1</span><span class=p>]</span> <span class=o>:</span> <span class=nx>themes</span><span class=p>[</span><span class=mi>0</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>      <span class=nx>securityLevel</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>securityLevel</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>look</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>look</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>fontFamily</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>fontFamily</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>altFontFamily</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>config</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>fontFamily</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=kr>await</span> <span class=nb>window</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>run</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>      <span class=nx>querySelector</span><span class=o>:</span> <span class=s1>&#39;.mermaid&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>suppressErrors</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=nx>processing</span> <span class=o>=</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>delayTask</span> <span class=o>&amp;&amp;</span> <span class=k>typeof</span> <span class=nx>delayTask</span> <span class=o>===</span> <span class=s1>&#39;function&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>delayTask</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>      <span class=nx>delayTask</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// console.log(&#39;Delayed task executed&#39;);\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>reloadMermaid</span> <span class=o>=</span> <span class=kr>async</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kr>await</span> <span class=k>this</span><span class=p>.</span><span class=nx>util</span><span class=p>.</span><span class=nx>forEach</span><span class=p>(</span><span class=nb>document</span><span class=p>.</span><span class=nx>querySelectorAll</span><span class=p>(</span><span class=s1>&#39;.mermaid[data-processed]&#39;</span><span class=p>),</span> <span class=p>(</span><span class=nx>el</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>el</span><span class=p>.</span><span class=nx>removeAttribute</span><span class=p>(</span><span class=s1>&#39;data-processed&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=nx>el</span><span class=p>.</span><span class=nx>parentElement</span><span class=p>.</span><span class=nx>replaceChild</span><span class=p>(</span><span class=nx>el</span><span class=p>.</span><span class=nx>nextElementSibling</span><span class=p>.</span><span class=nx>content</span><span class=p>.</span><span class=nx>cloneNode</span><span class=p>(</span><span class=kc>true</span><span class=p>),</span> <span class=nx>el</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=kr>await</span> <span class=nx>loadMermaid</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>waitForMermaid</span> <span class=o>=</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=k>new</span> <span class=nb>Promise</span><span class=p>((</span><span class=nx>resolve</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>timer</span> <span class=o>=</span> <span class=nx>setInterval</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nb>window</span><span class=p>.</span><span class=nx>mermaid</span> <span class=o>&amp;&amp;</span> <span class=nb>window</span><span class=p>.</span><span class=nx>mermaid</span><span class=p>.</span><span class=nx>initialize</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>clearInterval</span><span class=p>(</span><span class=nx>timer</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>          <span class=nx>resolve</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span> <span class=mi>100</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>waitForMermaid</span><span class=p>().</span><span class=nx>then</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>loadMermaid</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>switchThemeEventSet</span><span class=p>.</span><span class=nx>add</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=nx>processing</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>console</span><span class=p>.</span><span class=nx>warn</span><span class=p>(</span><span class=s1>&#39;Mermaid is still processing, delaying the reload.&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nx>delayTask</span> <span class=o>=</span> <span class=nx>reloadMermaid</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// console.log(&#39;reload immediately&#39;);\n</span></span></span><span class=line><span class=cl>      <span class=nx>reloadMermaid</span><span class=p>().</span><span class=k>catch</span><span class=p>(</span><span class=nx>console</span><span class=p>.</span><span class=nx>error</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>this</span><span class=p>.</span><span class=nx>beforeprintEventSet</span><span class=p>.</span><span class=nx>add</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// Optionally set theme to &#39;neutral&#39; for printing if required\n</span></span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=p>})</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>为了缓解闪屏问题，利用 CSS 增加一个 Loading 效果，过度一下。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true data-open=false><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nc>.mermaid</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=na>position</span><span class=o>:</span> <span class=ni>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=na>overflow</span><span class=o>:</span> <span class=ni>hidden</span> <span class=k>!important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=o>[</span><span class=nt>data-processed</span><span class=o>]</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>text-align</span><span class=o>:</span> <span class=ni>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=nd>:not</span><span class=o>([</span><span class=nt>data-processed</span><span class=o>])</span><span class=nd>::before</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>content</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>position</span><span class=o>:</span> <span class=ni>absolute</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>top</span><span class=o>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>left</span><span class=o>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>height</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>backdrop-filter</span><span class=o>:</span> <span class=nf>blur</span><span class=p>(</span><span class=mi>0</span><span class=mf>.5</span><span class=kt>rem</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-position</span><span class=o>:</span> <span class=ni>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-repeat</span><span class=o>:</span> <span class=ni>no-repeat</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=nf>var</span><span class=p>(</span><span class=si>#{</span><span class=nv>$rootPrefix</span><span class=si>}</span><span class=n>loading-img</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-size</span><span class=o>:</span> <span class=mi>60</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nt>svg</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>max-width</span><span class=o>:</span> <span class=mi>100</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=na>height</span><span class=o>:</span> <span class=ni>auto</span><span class=p>;</span> \n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>说实话，虽然勉强达到了目的，这里的 <code>delayTask</code> 和 <code>waitForMermaid()</code> 算得上妥妥的 Dirty Hack。也属实是无奈之举。</p><hr class=awesome-hr><p>睡觉前我灵光乍现，为了避免每次切换主题时都要重新渲染 Mermaid 图表，我尝试一开始直接把 Mermaid 的 Light 和 Dark 主题的两个图都渲染了，然后由 <code>data-theme</code> 控制显示哪个图表。</p><p>尝试后发现 Mermaid 在渲染图时，如果这个元素是 <code>display: none;</code> 则会报错。</p><p>于是，我改成初始化时只渲染 Light/Dark SVG，等到主题切换时才渲染 Dark/Light SVG，并隐藏另一个 SVG。</p><p>这样同一个图只需要渲染两次，后续多次主题切换，就能够通过 CSS 非常丝滑的控制切换了，<a href=https://lruihao.github.io/html-demo/mermaid.html target=_blank rel=\"external nofollow noopener noreferrer\">狠狠戳这里查看效果<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=cp>&lt;!DOCTYPE html&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>html</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;en&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>charset</span><span class=o>=</span><span class=s>&#34;UTF-8&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;viewport&#34;</span> <span class=na>content</span><span class=o>=</span><span class=s>&#34;width=device-width, initial-scale=1.0&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>title</span><span class=p>&gt;</span>Mermaid Light/Dark Mode switching<span class=p>&lt;/</span><span class=nt>title</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nc>diagrams-container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>justify-content</span><span class=p>:</span> <span class=kc>space</span><span class=o>-</span><span class=n>evenly</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nc>mermaid-container</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=err>.mermaid-dark</span> <span class=err>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>display</span><span class=p>:</span> <span class=kc>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>      <span class=o>[</span><span class=nt>data-theme</span><span class=o>=</span><span class=s2>&#34;dark&#34;</span><span class=o>]</span> <span class=o>&amp;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=err>.mermaid</span> <span class=err>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>display</span><span class=p>:</span> <span class=kc>none</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>.</span><span class=nc>mermaid-dark</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>display</span><span class=p>:</span> <span class=kc>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=err>}</span>\n</span></span><span class=line><span class=cl>    <span class=err>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=kd>function</span> <span class=nx>toggleTheme</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>currentTheme</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>theme</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>newTheme</span> <span class=o>=</span> <span class=nx>currentTheme</span> <span class=o>===</span> <span class=s1>&#39;dark&#39;</span> <span class=o>?</span> <span class=s1>&#39;default&#39;</span> <span class=o>:</span> <span class=s1>&#39;dark&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>theme</span> <span class=o>=</span> <span class=nx>newTheme</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>button</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;toggler&#34;</span><span class=p>&gt;</span>切换主题<span class=p>&lt;/</span><span class=nt>button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;diagrams-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;mermaid-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>pre</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;mermaid&#34;</span><span class=p>&gt;</span>graph TD;\n</span></span><span class=line><span class=cl>    A[开始] --&gt; B{是否完成？};\n</span></span><span class=line><span class=cl>    B -- 是 --&gt; C[结束];\n</span></span><span class=line><span class=cl>    B -- 否 --&gt; D[继续];\n</span></span><span class=line><span class=cl>    D --&gt; B;\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>pre</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>pre</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;mermaid-dark&#34;</span><span class=p>&gt;</span>graph TD;\n</span></span><span class=line><span class=cl>    A[开始] --&gt; B{是否完成？};\n</span></span><span class=line><span class=cl>    B -- 是 --&gt; C[结束];\n</span></span><span class=line><span class=cl>    B -- 否 --&gt; D[继续];\n</span></span><span class=line><span class=cl>    D --&gt; B;\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>pre</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;module&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=kr>import</span> <span class=nx>mermaid</span> <span class=nx>from</span> <span class=s1>&#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kr>async</span> <span class=kd>function</span> <span class=nx>loadMermaid</span><span class=p>(</span><span class=nx>theme</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>isDark</span> <span class=o>=</span> <span class=nx>theme</span> <span class=o>===</span> <span class=s1>&#39;dark&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>querySelector</span> <span class=o>=</span> <span class=nx>isDark</span> <span class=o>?</span> <span class=s1>&#39;.mermaid-dark&#39;</span> <span class=o>:</span> <span class=s1>&#39;.mermaid&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>mermaid</span><span class=p>.</span><span class=nx>initialize</span><span class=p>({</span> <span class=nx>startOnLoad</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span> <span class=nx>darkMode</span><span class=o>:</span> <span class=nx>isDark</span><span class=p>,</span> <span class=nx>theme</span> <span class=p>});</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// Mermaid run 函数内部会跳过 data-processed 的元素，所以这样不会重复渲染\n</span></span></span><span class=line><span class=cl>      <span class=kr>await</span> <span class=nx>mermaid</span><span class=p>.</span><span class=nx>run</span><span class=p>({</span> <span class=nx>querySelector</span> <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kr>await</span> <span class=nx>loadMermaid</span><span class=p>(</span><span class=s1>&#39;default&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;toggler&#39;</span><span class=p>).</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;click&#39;</span><span class=p>,</span> <span class=p>()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>currentTheme</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>theme</span> <span class=o>||</span> <span class=s1>&#39;default&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=kr>const</span> <span class=nx>newTheme</span> <span class=o>=</span> <span class=nx>currentTheme</span> <span class=o>===</span> <span class=s1>&#39;dark&#39;</span> <span class=o>?</span> <span class=s1>&#39;default&#39;</span> <span class=o>:</span> <span class=s1>&#39;dark&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>dataset</span><span class=p>.</span><span class=nx>theme</span> <span class=o>=</span> <span class=nx>newTheme</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>loadMermaid</span><span class=p>(</span><span class=nx>newTheme</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>html</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=小结与选型建议><span>小结与选型建议</span>\n<a href=#%e5%b0%8f%e7%bb%93%e4%b8%8e%e9%80%89%e5%9e%8b%e5%bb%ba%e8%ae%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>毋庸置疑，想要完美的体验，<strong>方案 3️⃣</strong> 是最优选择， <strong>方案 4️⃣</strong> 作为方案 1️⃣ 的升级版，整体体验也相对较好。</p><div class=table-wrapper><table><thead><tr><th>方案</th><th>实现成本</th><th>体验</th><th>是否官方可维护</th></tr></thead><tbody><tr><td>Reinitialize</td><td>低</td><td>中等（闪屏）</td><td>✅</td></tr><tr><td>CSS invert</td><td>极低</td><td>差</td><td>✅</td></tr><tr><td>mermaid.live 热替换</td><td>高</td><td>极佳</td><td>❌</td></tr><tr><td>Reinitialize + CSS</td><td>中</td><td>较好</td><td>✅</td></tr></tbody></table></div><ul><li><strong>内部文档 / 博客 / 小工具</strong> ⇒ 方案 4️⃣</li><li><strong>赶时间的 MVP</strong> ⇒ 方案 2️⃣</li><li><strong>面向 C 端、对体验极端敏感</strong> ⇒ 方案 3️⃣，但要准备长期跟进</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-08-16 14:56:28\">更新于 2025-08-16&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/429eb0297752c7ee0f47c529cb6b835e8f6a0be0 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 让 Mermaid 图表自动跟随系统深浅色&#10&#10Commit: 429eb0297752c7ee0f47c529cb6b835e8f6a0be0 [429eb02]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-08-16 14:56:28&#10Commit Date: 2025-08-17 14:36:08\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>429eb02</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/mermaid-theming/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/mermaid-theming/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/mermaid-theming/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AE%A9+Mermaid+%E5%9B%BE%E8%A1%A8%E8%87%AA%E5%8A%A8%E8%B7%9F%E9%9A%8F%E7%B3%BB%E7%BB%9F%E6%B7%B1%E6%B5%85%E8%89%B2&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AE%A9+Mermaid+%E5%9B%BE%E8%A1%A8%E8%87%AA%E5%8A%A8%E8%B7%9F%E9%9A%8F%E7%B3%BB%E7%BB%9F%E6%B7%B1%E6%B5%85%E8%89%B2%7c%0A%7cURL%7chttps://lruihao.cn/posts/mermaid-theming/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/mermaid-theming/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/mermaid-theming/ data-title=\"让 Mermaid 图表自动跟随系统深浅色\" data-hashtags=\"invert filter,Mermaid,prefers-color-scheme,FixIt\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/mermaid-theming/ data-hashtag=\"invert filter\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/mermaid-theming/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/mermaid-theming/ data-title=\"让 Mermaid 图表自动跟随系统深浅色\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/mermaid-theming/ data-title=\"让 Mermaid 图表自动跟随系统深浅色\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/invert-filter/ class=post-tag title=\"标签 - invert filter\">invert filter</a><a href=/tags/mermaid/ class=post-tag title=\"标签 - Mermaid\">Mermaid</a><a href=/tags/prefers-color-scheme/ class=post-tag title=\"标签 - prefers-color-scheme\">prefers-color-scheme</a><a href=/tags/fixit/ class=post-tag title=\"标签 - FixIt\">FixIt</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wc-01-prologue/ class=post-nav-item rel=prev title=黑盒出关・三把钥匙定江湖><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>黑盒出关・三把钥匙定江湖</a><a href=/projects/lruihao/auto-changelog-plus/ class=post-nav-item rel=next title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#背景mermaid-主题机制与痛点>背景：Mermaid 主题机制与痛点</a></li><li><a href=#方案-1-reinitialize>方案 1️⃣ Reinitialize</a></li><li><a href=#方案-2-css-滤镜>方案 2️⃣ CSS 滤镜</a></li><li><a href=#方案-3-配置热替换>方案 3️⃣ 配置热替换</a></li><li><a href=#方案-4-reinitialize--css-结合>方案 4️⃣ Reinitialize + CSS 结合</a></li><li><a href=#小结与选型建议>小结与选型建议</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f4a09c8a767f701b81df89c1ef7b3512.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f4a09c8a767f701b81df89c1ef7b3512.js defer></script><script src=/js/lib/mermaid.min.js type=module></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/mermaid-theming/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/mermaid-theming/index.md",
    "content": "# 让 Mermaid 图表自动跟随系统深浅色\n\n\nMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。  \n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\n\n<!--more-->\n\n## 背景：Mermaid 主题机制与痛点\n\n```mermaid\nflowchart LR\n  A([\"Start\"])\n  A --> B{\"Decision\"}\n  B -->|Yes| C[\"Option A\"]\n  B -->|No| D[\"Option B\"]\n```\n\nMermaid 在初始化时通过 `theme` 字段选定配色，例如：\n\n```js\nmermaid.initialize({ theme: 'dark' });\n```\n\n但这条配置 **只在首次渲染时生效**。当用户在操作系统层面切到 Light/Dark，或者网页本身提供手动开关时，Mermaid 并不会自动重绘。这就导致：\n\n- 暗黑系统 + 浅色图表 ⇒ 刺眼  \n- 浅色系统 + 暗黑图表 ⇒ 同样刺眼  \n\n社区 Issue [#2644](https://github.com/mermaid-js/mermaid/issues/2644) 早在 2022 年就提出希望官方支持 `prefers-color-scheme`，但至今（2025-08）仍未合入主干。\n\n顺便提一下，主题的切换一般都有两种主流方式：\n\n1. 利用 `prefers-color-scheme` 感知系统级别主题变化，`matchMedia('(prefers-color-scheme: dark)')` 的 `change` 事件。\n2. 通过 `dark` class 手动切换，这种方式通常会在 html/body 上设置一个 `class` 或者 `data-theme=\"dark\"` 这样。\n\n## 方案 1️⃣ Reinitialize\n\n切换主题，重新 `initialize` + 重绘，这是目前来看大多数人的做法。\n\n思路：\n\n1. 备份原始的 Mermaid code\n2. 设置 `startOnLoad: false` 避免 Mermaid 自动渲染，然后使用 `mermaid.initialize({ theme: theme })` + `mermaid.run()` 完成初始化。\n3. 重新渲染时移除 `data-processed`，替换 `.mermaid` 的内容为原始 Mermaid code，使用 `mermaid.initialize({ theme: newTheme })` + `mermaid.run()` 重新渲染\n\n这份做法在 Issue [#1945](https://github.com/mermaid-js/mermaid/issues/1945#issuecomment-1661264708) 里有完整代码，下面给出精简版：\n\n优点是：\n\n- 利用现有官方 API\n\n缺点是：\n\n- 每次切换都需要重新渲染，大图会闪一下\n- 如果页面里图表很多，性能损耗不可忽视\n- 还有异步处理带来的一系列问题\n\n## 方案 2️⃣ CSS 滤镜\n\n作为支持 `prefers-color-scheme` 和手动切换的一种简单的解决方案，可以使用 CSS 反转滤镜（`invert`、`hue-rotate` 等）来实现。\n\n例如：\n\n```css\n[data-theme='dark'] .mermaid {\n  filter: invert(0.88);\n}\n\n@media (prefers-color-scheme: dark) {\n  :root:not([data-theme='light']) .mermaid {\n    filter: invert(0.88);\n  }\n}\n```\n\n这条技巧是我在 Issue [#2644](https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-2313201033) 中看到的。\n\n优点是：\n\n- 一行 CSS，无 JS\n- 不重新渲染，零延迟\n\n缺点是：\n\n- 只是「反色」，并非官方暗黑主题\n- 对于红色、绿色等语义色会完全失真\n- 如果背景不是纯黑纯白，观感会很奇怪\n\n由于太过简单，效果也很粗糙，适合做 Demo 或内部工具，不建议面向终端用户。\n\n## 方案 3️⃣ 配置热替换\n\nmermaid.live 站点能在用户切主题时瞬间完成切换，且颜色完全与官方暗黑主题对齐。从 [源码](https://github.com/mermaid-js/mermaid-live-editor) 和 DevTools 推测，它大概做了三件事：\n\n1. 自己维护一份 `themeCSS` 字符串（而非仅用名字 `'dark'`）\n2. 在 `prefers-color-scheme` 变化时，直接把新的 CSS 注入到 `<svg>` 里的 `<style>` 节点\n3. 通过 `mermaid.render('id', code)` 拿到 SVG string 后，用正则替换掉旧 `<style>`，再 `DOMParser` 塞回页面\n\nIssue [#2644](https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289) 中有提到，在 mermaid.live 中，目前是根据配色方案在配置中切换主题。\n\n优点：  \n\n- 无闪烁\n- 完全复用官方配色\n\n缺点：  \n\n- 需要内部维护主题 CSS，Mermaid 每升级一次都要同步\n- 实现细节依赖私有 API，官方一旦改动就会崩\n\n如果你极度追求体验，可以照着源码抄一份，但要做好长期维护的心理准备。\n\n[#2644](https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289) 中提到，在 mermaid.live 中，目前正在根据配色方案在配置中切换主题。这种方案暂时未找到更多的细节披露。我又懒得去深扒 mermaid.live 的实现细节。\n\n## 方案 4️⃣ Reinitialize + CSS 结合\n\n在我的实践中，[FixIt 主题](https://github.com/hugo-fixit/FixIt) 是通过 `data-theme` 的方式手动切换网站主题的，我一开始走的思路和方案 1️⃣总体一致，为了处理这个方案的缺点，我多次迭代，有了最终的版本：\n\n首先通过 `type=module` 引入 Mermaid：\n\n```js\nimport mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.js';\nimport zenuml from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs';\nawait mermaid.registerExternalDiagrams([zenuml]);\nmermaid.startOnLoad = false;\nwindow.mermaid = mermaid;\n```\n\n然后在主题的切换逻辑中处理：\n\n```js\ninitMermaid() {\n  if (!this.config.mermaid) return;\n\n  const themes = this.config.mermaid.themes ?? ['default', 'dark'];\n  let processing = false;\n  let delayTask = null;\n\n  const loadMermaid = async () => {\n    processing = true;\n    // https://mermaid.js.org/config/schema-docs/config.html\n    window.mermaid.initialize({\n      startOnLoad: false,\n      darkMode: this.isDark,\n      theme: this.isDark ? themes[1] : themes[0],\n      securityLevel: this.config.mermaid.securityLevel,\n      look: this.config.mermaid.look,\n      fontFamily: this.config.mermaid.fontFamily,\n      altFontFamily: this.config.mermaid.fontFamily\n    });\n    await window.mermaid.run({\n      querySelector: '.mermaid',\n      suppressErrors: true,\n    });\n    processing = false;\n    if (delayTask && typeof delayTask === 'function') {\n      delayTask();\n      delayTask = null;\n      // console.log('Delayed task executed');\n    }\n  };\n\n  const reloadMermaid = async () => {\n    await this.util.forEach(document.querySelectorAll('.mermaid[data-processed]'), (el) => {\n      el.removeAttribute('data-processed');\n      el.parentElement.replaceChild(el.nextElementSibling.content.cloneNode(true), el);\n    });\n    await loadMermaid();\n  };\n\n  const waitForMermaid = () => {\n    return new Promise((resolve) => {\n      const timer = setInterval(() => {\n        if (window.mermaid && window.mermaid.initialize) {\n          clearInterval(timer);\n          resolve();\n        }\n      }, 100);\n    });\n  };\n\n  waitForMermaid().then(() => {\n    loadMermaid();\n    this.switchThemeEventSet.add(() => {\n      if (processing) {\n        console.warn('Mermaid is still processing, delaying the reload.');\n        delayTask = reloadMermaid;\n        return;\n      }\n      // console.log('reload immediately');\n      reloadMermaid().catch(console.error);\n    });\n\n    this.beforeprintEventSet.add(() => {\n      // Optionally set theme to 'neutral' for printing if required\n    });\n  })\n}\n```\n\n为了缓解闪屏问题，利用 CSS 增加一个 Loading 效果，过度一下。\n\n```scss {data-open=false}\n.mermaid {\n  position: relative;\n  overflow: hidden !important;\n\n  &[data-processed] {\n    text-align: center;\n  }\n\n  &:not([data-processed])::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    backdrop-filter: blur(0.5rem);\n    background-position: center;\n    background-repeat: no-repeat;\n    background-image: var(#{$rootPrefix}loading-img);\n    background-size: 60px;\n  }\n\n  svg {\n    max-width: 100%;\n    height: auto; \n  }\n}\n```\n\n说实话，虽然勉强达到了目的，这里的 `delayTask` 和 `waitForMermaid()` 算得上妥妥的 Dirty Hack。也属实是无奈之举。\n\n---\n{.awesome-hr}\n\n睡觉前我灵光乍现，为了避免每次切换主题时都要重新渲染 Mermaid 图表，我尝试一开始直接把 Mermaid 的 Light 和 Dark 主题的两个图都渲染了，然后由 `data-theme` 控制显示哪个图表。\n\n尝试后发现 Mermaid 在渲染图时，如果这个元素是 `display: none;` 则会报错。\n\n于是，我改成初始化时只渲染 Light/Dark SVG，等到主题切换时才渲染 Dark/Light SVG，并隐藏另一个 SVG。\n\n这样同一个图只需要渲染两次，后续多次主题切换，就能够通过 CSS 非常丝滑的控制切换了，[狠狠戳这里查看效果](https://lruihao.github.io/html-demo/mermaid.html)。\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Mermaid Light/Dark Mode switching</title>\n  <style>\n    .diagrams-container {\n      display: flex;\n      justify-content: space-evenly;\n    }\n    .mermaid-container {\n      .mermaid-dark {\n        display: none;\n      }\n\n      [data-theme=\"dark\"] & {\n        .mermaid {\n          display: none;\n        }\n        .mermaid-dark {\n          display: block;\n        }\n      }\n    }\n  </style>\n</head>\n<body>\n  <script>\n    function toggleTheme() {\n      const currentTheme = document.body.dataset.theme;\n      const newTheme = currentTheme === 'dark' ? 'default' : 'dark';\n      document.body.dataset.theme = newTheme;\n    }\n  </script>\n  <button id=\"toggler\">切换主题</button>\n  <div class=\"diagrams-container\">\n    <div class=\"mermaid-container\">\n    <pre class=\"mermaid\">graph TD;\n    A[开始] --> B{是否完成？};\n    B -- 是 --> C[结束];\n    B -- 否 --> D[继续];\n    D --> B;\n    </pre>\n    <pre class=\"mermaid-dark\">graph TD;\n    A[开始] --> B{是否完成？};\n    B -- 是 --> C[结束];\n    B -- 否 --> D[继续];\n    D --> B;\n    </pre>\n    </div>\n  </div>\n\n  <script type=\"module\">\n    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';\n\n    async function loadMermaid(theme) {\n      const isDark = theme === 'dark';\n      const querySelector = isDark ? '.mermaid-dark' : '.mermaid';\n      mermaid.initialize({ startOnLoad: false, darkMode: isDark, theme });\n      // Mermaid run 函数内部会跳过 data-processed 的元素，所以这样不会重复渲染\n      await mermaid.run({ querySelector });\n    }\n\n    await loadMermaid('default')\n\n    document.getElementById('toggler').addEventListener('click', () => {\n      const currentTheme = document.body.dataset.theme || 'default';\n      const newTheme = currentTheme === 'dark' ? 'default' : 'dark';\n      document.body.dataset.theme = newTheme;\n      loadMermaid(newTheme);\n    });\n  </script>\n</body>\n</html>\n```\n\n## 小结与选型建议\n\n毋庸置疑，想要完美的体验，**方案 3️⃣** 是最优选择， **方案 4️⃣** 作为方案 1️⃣ 的升级版，整体体验也相对较好。\n\n| 方案                | 实现成本 | 体验         | 是否官方可维护 |\n| ------------------- | -------- | ------------ | -------------- |\n| Reinitialize        | 低       | 中等（闪屏） | ✅             |\n| CSS invert          | 极低     | 差           | ✅             |\n| mermaid.live 热替换 | 高       | 极佳         | ❌             |\n| Reinitialize + CSS  | 中       | 较好         | ✅             |\n\n- **内部文档 / 博客 / 小工具** ⇒ 方案 4️⃣\n- **赶时间的 MVP** ⇒ 方案 2️⃣\n- **面向 C 端、对体验极端敏感** ⇒ 方案 3️⃣，但要准备长期跟进\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/mermaid-theming/  \n\n"
  },
  {
    "path": "posts/mmtimgpy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 爬取网站图片（图片链接相似） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\n\"><meta name=keywords content='Python'><meta itemprop=name content=\"python 爬取网站图片（图片链接相似）\"><meta itemprop=description content=\"以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\"><meta itemprop=datePublished content=\"2019-04-22T12:46:34+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1493\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/mmtimgpy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 爬取网站图片（图片链接相似）\"><meta property=\"og:description\" content=\"以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-22T12:46:34+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 爬取网站图片（图片链接相似）\"><meta name=twitter:description content=\"以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/mmtimgpy/ title=\"python 爬取网站图片（图片链接相似） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wxpy1/ title=\"python 玩微信：初探 wxpy\"><link rel=next type=text/html href=https://lruihao.cn/posts/1thintervivew/ title=第一次面试经历><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/mmtimgpy/index.md title=\"python 爬取网站图片（图片链接相似） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 爬取网站图片（图片链接相似）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/mmtimgpy\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python\",\"wordcount\":1493,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mmtimgpy\\/\",\"datePublished\":\"2019-04-22T12:46:34+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/mmtimgpy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 爬取网站图片（图片链接相似）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 爬取网站图片（图片链接相似）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-22 12:46:34\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-22>2019-04-22</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1493 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 爬取网站图片（图片链接相似）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#思路设计>思路设计</a></li><li><a href=#源码设计>源码设计</a></li><li><a href=#爬取过程及结果>爬取过程及结果</a></li><li><a href=#其他思路>其他思路</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>以下程序对 <a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-&amp;share=1&amp;from=singlemessage\" target=_blank rel=\"external nofollow noopener noreferrer\">该网址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。<a href=/projects/font-mmt/>字体效果查看</a></p></blockquote><h2 class=heading-element id=思路设计><span>1 思路设计</span>\n<a href=#%e6%80%9d%e8%b7%af%e8%ae%be%e8%ae%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>通过观察目标网页中字符图片的链接，很容易发现每个字符图片的直链是由两部分组成。</p></blockquote><ul><li>固定链接</li><li>图片文件编号</li></ul><blockquote><p>其中固定连接为<code>https://image.xiezixiansheng.com/users/2010/700/unzip/579767/</code>, 图片文件为<code>xxxxx.png@50q</code>，如果去掉@50q，获取到的图片就是透明背景的不然就是白色背景。然后发现编号大多是 5 位数的形式，但是还有一些是 4 位的，甚至还有 2-3 位的数字。仔细看看 127 前的编号都是一些国际符号诸如英文和数字等。比对一下发现正是 ASCII 码对应的命名方式。可想而知中文自然也是通过编码来命名的。一个标准的字库文件至少包含 6763 个汉字，也就是我书写的这个<code>GB2312-80</code>, 范围： <code>0xA1A1 - 0xFEFE</code>，其中汉字范围： <code>0xB0A1 - 0xF7FE</code>。两个 16 进制位对应一个字节，一个汉字至少由两个字节组成，这样理解，范围自然是 4 个 16 进制位。所以转换成 10 进制，范围大致在 65278 以下。要了解更加具体一点的范围还需要去查一下汉字编码的分区等。这里暂时不必了解，因为本来就打算暴力下载。</p><p><strong>说了这么多，既然图片链接这么简单，所以我是想暴力遍历，搜索图片，判断链接状态码，然后下载图片。</strong></p></blockquote><h2 class=heading-element id=源码设计><span>2 源码设计</span>\n<a href=#%e6%ba%90%e7%a0%81%e8%ae%be%e8%ae%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>大致分为三个范围吧</p><ul><li>英文字符</li><li>中文符号</li><li>汉字范围</li></ul><blockquote><p>我主要分这几个区间查找</p></blockquote><ul><li>33 ~ 126</li><li>8212 ~ 8243</li><li>12289 ~ 12305</li><li>19968 ~ 40864</li><li>65281 ~ 65509</li></ul><p>磨刀不误砍柴工，分析观察了这么久，终于可以运行程序了，F5 后就静静等待吧，可以去看看 java，或者打一把王者 hhhhh!</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>requests</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>path</span><span class=o>=</span><span class=s2>&#34;C:</span><span class=se>\\\\</span><span class=s2>Users</span><span class=se>\\\\</span><span class=s2>李瑞豪、\\Desktop</span><span class=se>\\\\</span><span class=s2>MMT_images</span><span class=se>\\\\</span><span class=s2>&#34;</span> <span class=c1>#下载路径：绝对或者相对路径比如。/image/</span>\n</span></span><span class=line><span class=cl><span class=n>os</span><span class=o>.</span><span class=n>makedirs</span><span class=p>(</span><span class=n>path</span><span class=o>+</span><span class=s2>&#34;0</span><span class=se>\\\\</span><span class=s2>&#34;</span><span class=p>,</span> <span class=n>exist_ok</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span> <span class=c1>## 创建文件夹</span>\n</span></span><span class=line><span class=cl><span class=n>os</span><span class=o>.</span><span class=n>makedirs</span><span class=p>(</span><span class=n>path</span><span class=o>+</span><span class=s2>&#34;1</span><span class=se>\\\\</span><span class=s2>&#34;</span><span class=p>,</span> <span class=n>exist_ok</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 下载图片</span>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>urllib_download</span><span class=p>(</span><span class=n>url</span><span class=p>,</span><span class=n>num</span><span class=p>):</span>  <span class=c1>## （下载链接，图片编号）</span>\n</span></span><span class=line><span class=cl>    <span class=kn>from</span> <span class=nn>urllib.request</span> <span class=kn>import</span> <span class=n>urlretrieve</span>\n</span></span><span class=line><span class=cl>    <span class=n>urlretrieve</span><span class=p>(</span><span class=n>url</span><span class=p>,</span><span class=n>path</span><span class=o>+</span><span class=n>num</span><span class=o>+</span><span class=s2>&#34;.png&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 判断状态码</span>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>get_status</span><span class=p>(</span><span class=n>url</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>r</span> <span class=o>=</span> <span class=n>requests</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=n>url</span><span class=p>,</span> <span class=n>allow_redirects</span> <span class=o>=</span> <span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>r</span><span class=o>.</span><span class=n>status_code</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>main</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>  <span class=n>BASE_URL</span> <span class=o>=</span> <span class=s2>&#34;https://image.xiezixiansheng.com/users/2010/700/unzip/579767/&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=n>n</span><span class=o>=</span><span class=mi>33</span>\n</span></span><span class=line><span class=cl>  <span class=n>total</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;正在爬取第 1 张图片！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=n>n</span> <span class=o>&lt;</span> <span class=mi>65510</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=c1>#分段爬取，不然会超时！！！## 33 ~ 126 ## 8212 ~ 8243 ## 12289 ~ 12305 ## 19968 ~ 40864 ## 65281 ~ 65509</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>n</span> <span class=o>==</span> <span class=mi>127</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>n</span> <span class=o>=</span> <span class=mi>8212</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>n</span> <span class=o>==</span> <span class=mi>8244</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>n</span> <span class=o>=</span> <span class=mi>12289</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>n</span> <span class=o>==</span><span class=mi>12306</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>n</span> <span class=o>=</span> <span class=mi>19968</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>n</span> <span class=o>==</span> <span class=mi>40865</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>n</span> <span class=o>=</span> <span class=mi>65281</span>\n</span></span><span class=line><span class=cl>      <span class=k>continue</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>## for n in range(37341,40865):</span>\n</span></span><span class=line><span class=cl>    <span class=n>num</span> <span class=o>=</span> <span class=nb>str</span><span class=p>(</span><span class=n>n</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>IMAGE_URL</span> <span class=o>=</span> <span class=n>BASE_URL</span><span class=o>+</span><span class=n>num</span><span class=o>+</span><span class=s2>&#34;.png&#34;</span> <span class=c1>## xxx.png 是透明背景，xxx.png@50q 是白色背景，分别存放在 0，1 文件夹 p 是中小 w 是小图</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>get_status</span><span class=p>(</span><span class=n>IMAGE_URL</span><span class=p>)</span><span class=o>==</span><span class=mi>200</span><span class=p>):</span> <span class=c1>## 同时下载透明和白色背景的图片</span>\n</span></span><span class=line><span class=cl>      <span class=n>total</span><span class=o>+=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>      <span class=n>urllib_download</span><span class=p>(</span><span class=n>IMAGE_URL</span><span class=p>,</span><span class=s2>&#34;0</span><span class=se>\\\\</span><span class=s2>&#34;</span><span class=o>+</span><span class=n>num</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>IMAGE_URL</span> <span class=o>+=</span> <span class=s2>&#34;@50q&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=n>urllib_download</span><span class=p>(</span><span class=n>IMAGE_URL</span><span class=p>,</span><span class=s2>&#34;1</span><span class=se>\\\\</span><span class=s2>&#34;</span><span class=o>+</span><span class=n>num</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;Downloaded &#34;</span><span class=o>+</span><span class=n>num</span><span class=o>+</span><span class=s2>&#34;.png&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;正在爬取第&#34;</span><span class=p>,</span><span class=n>total</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;张图片！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>n</span><span class=o>+=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 爬取完毕！共爬取&#34;</span><span class=p>,</span><span class=n>total</span><span class=p>,</span><span class=s2>&#34;张图片！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;图片存放路径：&#34;</span><span class=o>+</span><span class=n>path</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;作者博客：lruihao.cn&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span><span class=o>==</span><span class=s2>&#34;__main__&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>main</span><span class=p>();</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=爬取过程及结果><span>3 爬取过程及结果</span>\n<a href=#%e7%88%ac%e5%8f%96%e8%bf%87%e7%a8%8b%e5%8f%8a%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>文件夹左下角数目变化</p></blockquote><p><figure><a class=lightgallery target=_blank href=/posts/mmtimgpy/images/mmtpy.gif title=爬取过程 data-thumbnail=/posts/mmtimgpy/images/mmtpy.gif data-sub-html=\"<h2>爬取过程</h2><p>爬取过程</p>\"><img loading=lazy src=/posts/mmtimgpy/images/mmtpy.gif alt=爬取过程 height=740 width=672></a><figcaption class=image-caption>爬取过程</figcaption></figure></p><div class=\"details admonition danger open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-bolt\" aria-hidden=true></i>危险<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>说实话看着控制台不停地输出提示信息有没有很爽，对于强迫症来说真的是很治愈了！但是爬取第 6042 张图片的时候，我打开了一下目标网页发现无法加载图片了，就想这应该也算是一次 Dos 攻击了吧！打开控制台果然停了，相当于访问了近两万次！唉，还是太暴力了！！还差 800 多张，只好又重新接着写上次的位置爬！不慎造成目标网站服务器压力，实在对不起！</div></div></div><p><figure><a class=lightgallery target=_blank href=/posts/mmtimgpy/images/error.png title=错误提示 data-thumbnail=/posts/mmtimgpy/images/error.png data-sub-html=\"<h2>错误提示</h2><p>错误提示</p>\"><img loading=lazy src=/posts/mmtimgpy/images/error.png alt=错误提示 height=475 width=653></a><figcaption class=image-caption>错误提示</figcaption></figure></p><blockquote><p>一个半小时左右后终于下载完了，一共是 6886 张；程序是同时下载了透明和白色背景的图片的！分别在 0,1 子文件夹！</p></blockquote><p><figure><a class=lightgallery target=_blank href=/posts/mmtimgpy/images/jieguo.png title=爬取完毕 data-thumbnail=/posts/mmtimgpy/images/jieguo.png data-sub-html=\"<h2>爬取完毕</h2><p>爬取完毕</p>\"><img loading=lazy src=/posts/mmtimgpy/images/jieguo.png alt=爬取完毕 height=745 width=738></a><figcaption class=image-caption>爬取完毕</figcaption></figure></p><h2 class=heading-element id=其他思路><span>4 其他思路</span>\n<a href=#%e5%85%b6%e4%bb%96%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>模拟浏览器载入 html 文件，获取源码，查找到所有<code>&lt;img></code>标签内链接，必要时配合正则表达式，然后下载图片。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/mmtimgpy/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/mmtimgpy/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/mmtimgpy/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E7%88%AC%E5%8F%96%E7%BD%91%E7%AB%99%E5%9B%BE%E7%89%87%EF%BC%88%E5%9B%BE%E7%89%87%E9%93%BE%E6%8E%A5%E7%9B%B8%E4%BC%BC%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E7%88%AC%E5%8F%96%E7%BD%91%E7%AB%99%E5%9B%BE%E7%89%87%EF%BC%88%E5%9B%BE%E7%89%87%E9%93%BE%E6%8E%A5%E7%9B%B8%E4%BC%BC%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/mmtimgpy/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/mmtimgpy/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/mmtimgpy/ data-title=\"Python 爬取网站图片（图片链接相似）\" data-hashtags=Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/mmtimgpy/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/mmtimgpy/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/mmtimgpy/ data-title=\"Python 爬取网站图片（图片链接相似）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/mmtimgpy/ data-title=\"Python 爬取网站图片（图片链接相似）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wxpy1/ class=post-nav-item rel=prev title=\"Python 玩微信：初探 Wxpy\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 玩微信：初探 Wxpy</a><a href=/posts/1thintervivew/ class=post-nav-item rel=next title=第一次面试经历>第一次面试经历<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#思路设计>思路设计</a></li><li><a href=#源码设计>源码设计</a></li><li><a href=#爬取过程及结果>爬取过程及结果</a></li><li><a href=#其他思路>其他思路</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/679d541d97dada7b64e8d7791dacd6ba.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/679d541d97dada7b64e8d7791dacd6ba.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/mmtimgpy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/mmtimgpy/index.md",
    "content": "# Python 爬取网站图片（图片链接相似）\n\n\n> 以下程序对 [该网址](https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&a=fontshowPics&u=qbfRl8gPF2s-&z=Kqz%2FRroVGYc-&share=1&from=singlemessage) 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。[字体效果查看](/projects/font-mmt/)\n\n<!--more-->\n\n## 思路设计\n\n> 通过观察目标网页中字符图片的链接，很容易发现每个字符图片的直链是由两部分组成。\n\n- 固定链接\n- 图片文件编号\n\n> 其中固定连接为`https://image.xiezixiansheng.com/users/2010/700/unzip/579767/`, 图片文件为`xxxxx.png@50q`，如果去掉@50q，获取到的图片就是透明背景的不然就是白色背景。然后发现编号大多是 5 位数的形式，但是还有一些是 4 位的，甚至还有 2-3 位的数字。仔细看看 127 前的编号都是一些国际符号诸如英文和数字等。比对一下发现正是 ASCII 码对应的命名方式。可想而知中文自然也是通过编码来命名的。一个标准的字库文件至少包含 6763 个汉字，也就是我书写的这个`GB2312-80`, 范围： `0xA1A1 - 0xFEFE`，其中汉字范围： `0xB0A1 - 0xF7FE`。两个 16 进制位对应一个字节，一个汉字至少由两个字节组成，这样理解，范围自然是 4 个 16 进制位。所以转换成 10 进制，范围大致在 65278 以下。要了解更加具体一点的范围还需要去查一下汉字编码的分区等。这里暂时不必了解，因为本来就打算暴力下载。\n>\n> **说了这么多，既然图片链接这么简单，所以我是想暴力遍历，搜索图片，判断链接状态码，然后下载图片。**\n\n## 源码设计\n\n大致分为三个范围吧\n\n- 英文字符\n- 中文符号\n- 汉字范围\n\n> 我主要分这几个区间查找\n\n- 33 ~ 126\n- 8212 ~ 8243\n- 12289 ~ 12305\n- 19968 ~ 40864\n- 65281 ~ 65509\n\n磨刀不误砍柴工，分析观察了这么久，终于可以运行程序了，F5 后就静静等待吧，可以去看看 java，或者打一把王者 hhhhh!\n\n```python\nimport os\nimport requests\n\npath=\"C:\\\\Users\\\\李瑞豪、\\Desktop\\\\MMT_images\\\\\" #下载路径：绝对或者相对路径比如。/image/\nos.makedirs(path+\"0\\\\\", exist_ok=True) ## 创建文件夹\nos.makedirs(path+\"1\\\\\", exist_ok=True)\n\n## 下载图片\ndef urllib_download(url,num):  ## （下载链接，图片编号）\n    from urllib.request import urlretrieve\n    urlretrieve(url,path+num+\".png\")\n\n## 判断状态码\ndef get_status(url):\n    r = requests.get(url, allow_redirects = False)\n    return r.status_code\n\ndef main():\n  BASE_URL = \"https://image.xiezixiansheng.com/users/2010/700/unzip/579767/\"\n  n=33\n  total=0\n  print(\"正在爬取第 1 张图片！\")\n\n  while n < 65510:\n    #分段爬取，不然会超时！！！## 33 ~ 126 ## 8212 ~ 8243 ## 12289 ~ 12305 ## 19968 ~ 40864 ## 65281 ~ 65509\n    if n == 127:\n      n = 8212\n      continue\n    elif n == 8244:\n      n = 12289\n      continue\n    elif n ==12306:\n      n = 19968\n      continue\n    elif n == 40865:\n      n = 65281\n      continue\n\n  ## for n in range(37341,40865):\n    num = str(n)\n    IMAGE_URL = BASE_URL+num+\".png\" ## xxx.png 是透明背景，xxx.png@50q 是白色背景，分别存放在 0，1 文件夹 p 是中小 w 是小图\n    if(get_status(IMAGE_URL)==200): ## 同时下载透明和白色背景的图片\n      total+=1\n      urllib_download(IMAGE_URL,\"0\\\\\"+num)\n      IMAGE_URL += \"@50q\"\n      urllib_download(IMAGE_URL,\"1\\\\\"+num)\n      print(\"Downloaded \"+num+\".png\")\n      print(\"正在爬取第\",total+1,\"张图片！\")\n    n+=1\n\n  print(\"\\n 爬取完毕！共爬取\",total,\"张图片！\")\n  print(\"图片存放路径：\"+path)\n  print(\"作者博客：lruihao.cn\")\n\nif __name__==\"__main__\":\n    main();\n```\n\n## 爬取过程及结果\n\n> 文件夹左下角数目变化\n\n![爬取过程](images/mmtpy.gif '爬取过程')\n\n{{< admonition danger >}}\n说实话看着控制台不停地输出提示信息有没有很爽，对于强迫症来说真的是很治愈了！但是爬取第 6042 张图片的时候，我打开了一下目标网页发现无法加载图片了，就想这应该也算是一次 Dos 攻击了吧！打开控制台果然停了，相当于访问了近两万次！唉，还是太暴力了！！还差 800 多张，只好又重新接着写上次的位置爬！不慎造成目标网站服务器压力，实在对不起！\n{{< /admonition >}}\n\n![错误提示](images/error.png '错误提示')\n\n> 一个半小时左右后终于下载完了，一共是 6886 张；程序是同时下载了透明和白色背景的图片的！分别在 0,1 子文件夹！\n\n![爬取完毕](images/jieguo.png '爬取完毕')\n\n## 其他思路\n\n模拟浏览器载入 html 文件，获取源码，查找到所有`<img>`标签内链接，必要时配合正则表达式，然后下载图片。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/mmtimgpy/  \n\n"
  },
  {
    "path": "posts/mood/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>每一个优秀的人，都有一段沉默的时光 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 手机便签里保存的一段话，也记不得在哪看到的了。\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\n\"><meta name=keywords content='随笔'><meta itemprop=name content=\"每一个优秀的人，都有一段沉默的时光\"><meta itemprop=description content=\"手机便签里保存的一段话，也记不得在哪看到的了。\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\"><meta itemprop=datePublished content=\"2018-09-21T21:11:25+08:00\"><meta itemprop=dateModified content=\"2018-09-21T21:11:25+08:00\"><meta itemprop=wordCount content=\"734\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/mood/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"每一个优秀的人，都有一段沉默的时光\"><meta property=\"og:description\" content=\"手机便签里保存的一段话，也记不得在哪看到的了。\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-09-21T21:11:25+08:00\"><meta property=\"article:modified_time\" content=\"2018-09-21T21:11:25+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"每一个优秀的人，都有一段沉默的时光\"><meta name=twitter:description content=\"手机便签里保存的一段话，也记不得在哪看到的了。\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/mood/ title=\"每一个优秀的人，都有一段沉默的时光 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vim/ title=\"Vim 速查表\"><link rel=next type=text/html href=https://lruihao.cn/posts/linux-git/ title=\"linux/centos 下的安装 git\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/mood/index.md title=\"每一个优秀的人，都有一段沉默的时光 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"每一个优秀的人，都有一段沉默的时光\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/mood\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔\",\"wordcount\":734,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mood\\/\",\"datePublished\":\"2018-09-21T21:11:25+08:00\",\"dateModified\":\"2018-09-21T21:11:25+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script><link rel=stylesheet href=https://unpkg.com/mmt-webfont/dist/result.css></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=MMT><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/mood/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>每一个优秀的人，都有一段沉默的时光</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>每一个优秀的人，都有一段沉默的时光</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-09-21 21:11:25\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-09-21>2018-09-21</time></span>&nbsp;<span title=\"734 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=每一个优秀的人，都有一段沉默的时光><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>手机便签里保存的一段话，也记不得在哪看到的了。</p></blockquote><p>每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。<br>什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。</p><p>人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。<br>自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。</p><p>我从不担心我努力了不优秀，只担心优秀的人都比我更努力。<br>决定你高度的是你对自己的要求。</p><p>以前的我，常常担心、常常犹豫，可现在我发现，人生的每一个阶段，都需要我们有一种能力同一时间完成很多重要的事情。<br>学习的时候，我们要谈谈恋爱。工作的时候，我们要担心家庭。所以，这是一种平衡的能力。<br>相信我，你做得到。因为，那么那么多学长学姐都走过来了，所以不用怕不用怕，你从来都不是一个人。</p><p>不要抱怨，抱怨永远只能显示你没本事。因为如果你有本事，就可以改变现状，而不只是忍受。\n既然改变不了，又不够走开，那么就沉默地接受现实。<br>隐忍，是我们抵抗世界的力量，当你拥有，你才有资格自由。</p><p>我们做的每一个决定，都是由自己来买单。<br>而当你可以把自己不喜欢的东西都做好的时候，相信你一定可以把自己喜欢的东西做的更好！\n努力和效果之间，永远有这样一段距离。成功和失败的唯一区别是，你能不能坚持挺过这段无法估计的距离。</p><p>你可以试试？<br>坚持做一件事情，坚持下去。不管它是什么。<br>选择本身，就是放弃另一种跋涉的可能。尝试倾听自己内心的声音，而不是外在的掌声。<br>尝试选择适合自己的，而不是别人眼里最好的。尝试决定我们的决定，不是因为选项表面的光鲜亮丽。<br>所以，每当我们每做一个选择的时候，总记得兑现心中的对自己的承诺。</p><blockquote><p>不要想得到一切，对生活对自己都慷慨一些。</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-09-21 21:11:25\">更新于 2018-09-21&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b8527c18cc53440f916d89250c34eb06ededa47a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 增加自定义字体 pageStyle&#10&#10Commit: b8527c18cc53440f916d89250c34eb06ededa47a [b8527c1]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-04-21 11:25:55&#10Commit Date: 2025-04-21 11:34:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b8527c1</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/mood/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/mood.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/mood.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%AF%8F%E4%B8%80%E4%B8%AA%E4%BC%98%E7%A7%80%E7%9A%84%E4%BA%BA%EF%BC%8C%E9%83%BD%E6%9C%89%E4%B8%80%E6%AE%B5%E6%B2%89%E9%BB%98%E7%9A%84%E6%97%B6%E5%85%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%AF%8F%E4%B8%80%E4%B8%AA%E4%BC%98%E7%A7%80%E7%9A%84%E4%BA%BA%EF%BC%8C%E9%83%BD%E6%9C%89%E4%B8%80%E6%AE%B5%E6%B2%89%E9%BB%98%E7%9A%84%E6%97%B6%E5%85%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/mood/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/mood.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/mood/ data-title=每一个优秀的人，都有一段沉默的时光 data-hashtags=随笔><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/mood/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/mood/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/mood/ data-title=每一个优秀的人，都有一段沉默的时光 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/mood/ data-title=每一个优秀的人，都有一段沉默的时光><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vim/ class=post-nav-item rel=prev title=\"Vim 速查表\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Vim 速查表</a><a href=/posts/linux-git/ class=post-nav-item rel=next title=\"Linux/Centos 下的安装 Git\">Linux/Centos 下的安装 Git<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/dc102bb51e198559d7bde12f6293456e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/dc102bb51e198559d7bde12f6293456e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/mood/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/mood/index.md",
    "content": "# 每一个优秀的人，都有一段沉默的时光\n\n\n> 手机便签里保存的一段话，也记不得在哪看到的了。\n\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。  \n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\n\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。  \n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\n\n我从不担心我努力了不优秀，只担心优秀的人都比我更努力。  \n决定你高度的是你对自己的要求。\n\n以前的我，常常担心、常常犹豫，可现在我发现，人生的每一个阶段，都需要我们有一种能力同一时间完成很多重要的事情。  \n学习的时候，我们要谈谈恋爱。工作的时候，我们要担心家庭。所以，这是一种平衡的能力。  \n相信我，你做得到。因为，那么那么多学长学姐都走过来了，所以不用怕不用怕，你从来都不是一个人。\n\n不要抱怨，抱怨永远只能显示你没本事。因为如果你有本事，就可以改变现状，而不只是忍受。\n既然改变不了，又不够走开，那么就沉默地接受现实。  \n隐忍，是我们抵抗世界的力量，当你拥有，你才有资格自由。\n\n我们做的每一个决定，都是由自己来买单。  \n而当你可以把自己不喜欢的东西都做好的时候，相信你一定可以把自己喜欢的东西做的更好！\n努力和效果之间，永远有这样一段距离。成功和失败的唯一区别是，你能不能坚持挺过这段无法估计的距离。\n\n你可以试试？  \n坚持做一件事情，坚持下去。不管它是什么。  \n选择本身，就是放弃另一种跋涉的可能。尝试倾听自己内心的声音，而不是外在的掌声。  \n尝试选择适合自己的，而不是别人眼里最好的。尝试决定我们的决定，不是因为选项表面的光鲜亮丽。  \n所以，每当我们每做一个选择的时候，总记得兑现心中的对自己的承诺。\n\n> 不要想得到一切，对生活对自己都慷慨一些。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/mood/  \n\n"
  },
  {
    "path": "posts/ms-html-css/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>前端面试题 - HTML+CSS | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 原文链接\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\n\"><meta name=keywords content='HTML,CSS'><meta itemprop=name content=\"前端面试题 - HTML+CSS\"><meta itemprop=description content=\"原文链接\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\"><meta itemprop=datePublished content=\"2019-03-30T22:58:39+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"3592\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"HTML,CSS\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ms-html-css/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"前端面试题 - HTML+CSS\"><meta property=\"og:description\" content=\"原文链接\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-30T22:58:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"前端面试题 - HTML+CSS\"><meta name=twitter:description content=\"原文链接\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ms-html-css/ title=\"前端面试题 - HTML+CSS | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/bqbj/ title=百钱百鸡（枚举法）><link rel=next type=text/html href=https://lruihao.cn/posts/ngrok/ title=本地搭建网站服务器并穿透内网><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ms-html-css/index.md title=\"前端面试题 - HTML+CSS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"前端面试题 - HTML+CSS\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ms-html-css\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"HTML, CSS\",\"wordcount\":3592,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ms-html-css\\/\",\"datePublished\":\"2019-03-30T22:58:39+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ms-html-css/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>前端面试题 - HTML+CSS</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>前端面试题 - HTML+CSS</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-30 22:58:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-30>2019-03-30</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"3592 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 3600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 8 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"前端面试题 - HTML+CSS\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#html>HTML</a><ol><li><a href=#1-doctype-作用html5-为什么只需要写-doctype-html>1. Doctype 作用，HTML5 为什么只需要写</a></li><li><a href=#2-行内元素有哪些块级元素有哪些空-void-元素有那些>2. 行内元素有哪些，块级元素有哪些，空 (void) 元素有那些</a></li><li><a href=#3-简述一下你对-html-语义化的理解>3. 简述一下你对 HTML 语义化的理解</a></li><li><a href=#4-常见的浏览器内核有哪些介绍一下你对浏览器内核的理解>4. 常见的浏览器内核有哪些，介绍一下你对浏览器内核的理解</a></li><li><a href=#5-html5-有哪些新特性>5. html5 有哪些新特性</a></li><li><a href=#6-描述一下-cookiesessionstorage-和-localstorage-的区别>6. 描述一下 cookie，sessionStorage 和 localStorage 的区别</a></li><li><a href=#7-如何实现浏览器内多个标签页之间的通信>7. 如何实现浏览器内多个标签页之间的通信</a></li><li><a href=#8-html5-的离线存储怎么使用解释一下工作原理>8. HTML5 的离线存储怎么使用，解释一下工作原理</a></li><li><a href=#9-src-与-href-的区别>9. src 与 href 的区别</a></li><li><a href=#10-表单提交中-get-和-post-方式的区别>10. 表单提交中 Get 和 Post 方式的区别</a></li></ol></li><li><a href=#css>CSS</a><ol><li><a href=#1-css-盒子模型box-sizing-属性的理解>1. css 盒子模型，box-sizing 属性的理解</a></li><li><a href=#2-清除浮动什么时候需要清除浮动清除浮动都有哪些方法>2. 清除浮动，什么时候需要清除浮动，清除浮动都有哪些方法</a></li><li><a href=#3-如何让一个不定宽高的盒子水平垂直居中>3. 如何让一个不定宽高的盒子水平垂直居中</a></li><li><a href=#4-px-和-em-和-rem-的区别>4. px 和 em 和 rem 的区别</a></li><li><a href=#5-position-的值有哪些>5. position 的值有哪些</a></li><li><a href=#6-displaynone-与-visibilityhidden-的区别>6. display:none 与 visibility：hidden 的区别</a></li><li><a href=#7-css-中-link-和import-的区别>7. CSS 中 link 和@import 的区别</a></li><li><a href=#8-什么是响应式设计响应式设计的基本原理是什么>8. 什么是响应式设计，响应式设计的基本原理是什么</a></li><li><a href=#9-为什么要初始化-css-样式>9. 为什么要初始化 CSS 样式</a></li><li><a href=#10-css3-有哪些新特性>10. CSS3 有哪些新特性</a></li><li><a href=#11-before-和-after-中双冒号和单冒号有什么区别解释一下这-2-个伪元素的作用>11. ::before 和 :after 中双冒号和单冒号有什么区别？解释一下这 2 个伪元素的作用</a></li><li><a href=#12-css-优化提高性能的方法有哪些>12. CSS 优化、提高性能的方法有哪些</a></li><li><a href=#13-重绘和回流>13. 重绘和回流</a></li><li><a href=#14-flex-布局>14. flex 布局</a></li><li><a href=#15-css-预处理器>15. css 预处理器</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><a href=https://github.com/ltadpoles/web-document/tree/master/Other target=_blank rel=\"external nofollow noopener noreferrer\">原文链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。</p></blockquote><p>如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过</p><h2 class=heading-element id=html><span>1 HTML</span>\n<a href=#html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=1-doctype-作用html5-为什么只需要写-doctype-html><span>1.1 1. Doctype 作用，HTML5 为什么只需要写 <!doctype html></span><a href=#1-doctype-%e4%bd%9c%e7%94%a8html5-%e4%b8%ba%e4%bb%80%e4%b9%88%e5%8f%aa%e9%9c%80%e8%a6%81%e5%86%99-doctype-html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>doctype 是一种标准通用标记语言的文档类型声明，目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义（DTD）来解析文档。<code>&lt;!DOCTYPE></code>声明必须是 HTML 文档的第一行，位于 html 标签之前</p></blockquote><blockquote><p>HTML5 不基于 SGML，所以不需要引用 DTD。在 HTML5 中<!doctype html>只有一种</p></blockquote><blockquote><p>SGML: 标准通用标记语言，是现时常用的超文本格式的最高层次标准</p></blockquote><h3 class=heading-element id=2-行内元素有哪些块级元素有哪些空-void-元素有那些><span>1.2 2. 行内元素有哪些，块级元素有哪些，空 (void) 元素有那些</span>\n<a href=#2-%e8%a1%8c%e5%86%85%e5%85%83%e7%b4%a0%e6%9c%89%e5%93%aa%e4%ba%9b%e5%9d%97%e7%ba%a7%e5%85%83%e7%b4%a0%e6%9c%89%e5%93%aa%e4%ba%9b%e7%a9%ba-void-%e5%85%83%e7%b4%a0%e6%9c%89%e9%82%a3%e4%ba%9b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>行内元素：<code>a</code> <code>span</code> <code>i</code> <code>img</code> <code>input</code> <code>select</code> <code>b</code> 等</p><p>块级元素：<code>div</code> <code>ul</code> <code>ol</code> <code>li</code> <code>h1~h6</code> <code>p</code> <code>table</code> 等</p><p>空元素：<code>br</code> <code>hr</code> <code>link</code> 等</p><h3 class=heading-element id=3-简述一下你对-html-语义化的理解><span>1.3 3. 简述一下你对 HTML 语义化的理解</span>\n<a href=#3-%e7%ae%80%e8%bf%b0%e4%b8%80%e4%b8%8b%e4%bd%a0%e5%af%b9-html-%e8%af%ad%e4%b9%89%e5%8c%96%e7%9a%84%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>简单来说，就是合适的标签做合适的事情，这样具有以下好处：</p><ul><li>有助于构架良好的 HTML 结构，有利于搜索引擎的建立索引、抓取，利于 SEO</li><li>有利于不同设备的解析</li><li>有利于构建清晰的机构，有利于团队的开发、维护</li></ul><h3 class=heading-element id=4-常见的浏览器内核有哪些介绍一下你对浏览器内核的理解><span>1.4 4. 常见的浏览器内核有哪些，介绍一下你对浏览器内核的理解</h5></span><a href=#4-%e5%b8%b8%e8%a7%81%e7%9a%84%e6%b5%8f%e8%a7%88%e5%99%a8%e5%86%85%e6%a0%b8%e6%9c%89%e5%93%aa%e4%ba%9b%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%8b%e4%bd%a0%e5%af%b9%e6%b5%8f%e8%a7%88%e5%99%a8%e5%86%85%e6%a0%b8%e7%9a%84%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Trident 内核：IE</p></blockquote><blockquote><p>Gecko 内核：NETSCAPE6 及以上版本，火狐</p></blockquote><blockquote><p>Presto 内核：Opera7 及以上。[Opera 内核原为：Presto，现为：Blink;]</p></blockquote><blockquote><p>Webkit 内核：Safari，Chrome 等。[Chrome 的：Blink（WebKit 的分支）]</p></blockquote><p>浏览器内核又可以分成两部分：<strong>渲染引擎和 JS 引擎。</strong> 渲染引擎主要负责取得网页的内容、整理讯息、计算网页的显示方式等，JS 引擎则是解析 Javascript 语言，执行 javascript 语言来实现网页的动态效果。</p><h3 class=heading-element id=5-html5-有哪些新特性><span>1.5 5. html5 有哪些新特性</span>\n<a href=#5-html5-%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b0%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>语义化标签：<code>header</code> <code>footer</code> <code>nav</code> <code>section</code> <code>article</code> <code>aside</code> 等</li><li>增强型表单：<code>date</code>（从一个日期选择器选择一个日期） <code>email</code>（包含 e-mail 地址的输入域） <code>number</code>（数值的输入域） <code>range</code>（一定范围内数字值的输入域） <code>search</code>（用于搜索域） <code>tel</code>（定义输入电话号码字段）等</li><li>视频和音频：<code>audio</code> <code>video</code></li><li>Canvas 绘图 SVG 绘图</li><li>地理定位：<code>Geolocation</code></li><li>拖放 API：<code>drag</code></li><li>web worker：是运行在后台的 JavaScript，独立于其他脚本，不会影响页面的性能</li><li>web storage: <code>localStorage</code> <code>sessionStorage</code></li><li>WebSocket: HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议</li></ul><h3 class=heading-element id=6-描述一下-cookiesessionstorage-和-localstorage-的区别><span>1.6 6. 描述一下 cookie，sessionStorage 和 localStorage 的区别</span>\n<a href=#6-%e6%8f%8f%e8%bf%b0%e4%b8%80%e4%b8%8b-cookiesessionstorage-%e5%92%8c-localstorage-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:left>特性</th><th style=text-align:left>Cookie</th><th style=text-align:left>localStorage</th><th style=text-align:left>sessionStorage</th></tr></thead><tbody><tr><td style=text-align:left>生命周期</td><td style=text-align:left>可设置失效时间，没有设置的话，默认是关闭浏览器后失效</td><td style=text-align:left>除非被手动清除，否则将会永久保存</td><td style=text-align:left>仅在当前网页会话下有效，关闭页面或浏览器后就会被清除</td></tr><tr><td style=text-align:left>存放数据大小</td><td style=text-align:left>4KB 左右</td><td style=text-align:left>可以保存 5MB 的信息</td><td style=text-align:left>可以保存 5MB 的信息</td></tr><tr><td style=text-align:left>http 请求</td><td style=text-align:left>每次都会携带在 HTTP 头中，如果使用 cookie 保存过多数据会带来性能问题</td><td style=text-align:left>仅在客户端（即浏览器）中保存，不参与和服务器的通信</td><td style=text-align:left>仅在客户端（即浏览器）中保存，不参与和服务器的通信</td></tr></tbody></table></div><h3 class=heading-element id=7-如何实现浏览器内多个标签页之间的通信><span>1.7 7. 如何实现浏览器内多个标签页之间的通信</span>\n<a href=#7-%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e6%b5%8f%e8%a7%88%e5%99%a8%e5%86%85%e5%a4%9a%e4%b8%aa%e6%a0%87%e7%ad%be%e9%a1%b5%e4%b9%8b%e9%97%b4%e7%9a%84%e9%80%9a%e4%bf%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>使用 localStorage: <code>localStorage.setItem(key,value)</code>、<code>localStorage.getItem(key)</code></li><li>websocket 协议</li><li>webworker</li></ul><p><a href=https://juejin.im/post/5acdba01f265da23826e5633 target=_blank rel=\"external nofollow noopener noreferrer\">多个标签页之间的通信<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=8-html5-的离线存储怎么使用解释一下工作原理><span>1.8 8. HTML5 的离线存储怎么使用，解释一下工作原理</span>\n<a href=#8-html5-%e7%9a%84%e7%a6%bb%e7%ba%bf%e5%ad%98%e5%82%a8%e6%80%8e%e4%b9%88%e4%bd%bf%e7%94%a8%e8%a7%a3%e9%87%8a%e4%b8%80%e4%b8%8b%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://segmentfault.com/a/1190000006984353 target=_blank rel=\"external nofollow noopener noreferrer\">HTML5 的离线存储<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=9-src-与-href-的区别><span>1.9 9. src 与 href 的区别</span>\n<a href=#9-src-%e4%b8%8e-href-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>区别：src 用于替代这个元素，而 href 用于建立这个标签与外部资源之间的关系</p><p><code>&lt;link href=\"style.css\" rel=\"stylesheet\" /></code>浏览器加载到这里的时候，html 的渲染和解析不会暂停，css 文件的加载是同时进行的</p><p><code>&lt;script src=\"script.js\">&lt;/script></code>当浏览器解析到这句代码时，页面的加载和解析都会暂停直到浏览器拿到并执行完这个 js 文件</p><h3 class=heading-element id=10-表单提交中-get-和-post-方式的区别><span>1.10 10. 表单提交中 Get 和 Post 方式的区别</span>\n<a href=#10-%e8%a1%a8%e5%8d%95%e6%8f%90%e4%ba%a4%e4%b8%ad-get-%e5%92%8c-post-%e6%96%b9%e5%bc%8f%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>Get 一般用于从服务器上获取数据，Post 向服务器传送数据</li><li>Get 传输的数据是拼接在 Url 之后的，对用户是可见的；Post 的传输数据对用户是不可见的</li><li>Get 传送的数据量较小，不能大于 2KB。Post 传送的数据量较大，一般被默认为不受限制</li><li>Get 安全性非常低，Post 安全性较高</li><li>在 FORM 提交的时候，如果不指定 Method，则默认为 Get 请求</li></ul><h2 class=heading-element id=css><span>2 CSS</span>\n<a href=#css class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=1-css-盒子模型box-sizing-属性的理解><span>2.1 1. css 盒子模型，box-sizing 属性的理解</span>\n<a href=#1-css-%e7%9b%92%e5%ad%90%e6%a8%a1%e5%9e%8bbox-sizing-%e5%b1%9e%e6%80%a7%e7%9a%84%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>css 的盒模型由 content（内容）、padding（内边距）、border（边框）、margin（外边距）组成。但盒子的大小由 content+padding+border 这几部分决定</p><p>box-sizing 是一个 CSS3 属性，与盒子模型有着密切联系。即决定元素的宽高如何计算，box-sizing 有三个属性：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>box-sizing</span><span class=o>:</span> <span class=nt>content-box</span><span class=o>|</span><span class=nt>border-box</span><span class=o>|</span><span class=nt>inherit</span><span class=o>:</span></span></span></code></pre></td></tr></table></div></div></div><ul><li>content-box 使得元素的宽高即为内容区的宽高（默认模式）</li><li>border-box: 计算方式 content + padding + border = 本身元素大小，即缩小了 content 大小</li><li>inherit 指定 box-sizing 属性的值，应该从父元素继承</li></ul><h3 class=heading-element id=2-清除浮动什么时候需要清除浮动清除浮动都有哪些方法><span>2.2 2. 清除浮动，什么时候需要清除浮动，清除浮动都有哪些方法</span>\n<a href=#2-%e6%b8%85%e9%99%a4%e6%b5%ae%e5%8a%a8%e4%bb%80%e4%b9%88%e6%97%b6%e5%80%99%e9%9c%80%e8%a6%81%e6%b8%85%e9%99%a4%e6%b5%ae%e5%8a%a8%e6%b8%85%e9%99%a4%e6%b5%ae%e5%8a%a8%e9%83%bd%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>浮动的元素是脱离文档标准流的，如果我们不清楚浮动，那么就会造成<strong>父元素高度塌陷</strong>，影响页面布局。</p><p>清除浮动的方式：</p><ul><li>为父元素设置高度</li><li>为父元素添加<code>overflow:hidden</code></li><li>伪元素</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>fix</span><span class=p>::</span><span class=nd>after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>content</span><span class=p>:</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>clear</span><span class=p>:</span> <span class=kc>both</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>使用伪元素的好处：不增加冗余的 DOM 节点，符合语义化</p><blockquote><p>overflow:hidden 可以触发 BFC 机制。BFC：块级格式化上下文，创建了 BFC 的元素就是一个独立的盒子，它规定了内部如何布局，并且与这个独立盒子里的布局不受外部影响，当然它也不会影响到外面的元素，<strong>计算 BFC 的高度时，浮动元素也参与计算</strong></p></blockquote><h3 class=heading-element id=3-如何让一个不定宽高的盒子水平垂直居中><span>2.3 3. 如何让一个不定宽高的盒子水平垂直居中</span>\n<a href=#3-%e5%a6%82%e4%bd%95%e8%ae%a9%e4%b8%80%e4%b8%aa%e4%b8%8d%e5%ae%9a%e5%ae%bd%e9%ab%98%e7%9a%84%e7%9b%92%e5%ad%90%e6%b0%b4%e5%b9%b3%e5%9e%82%e7%9b%b4%e5%b1%85%e4%b8%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>定位的方式</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>father</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>position</span><span class=p>:</span> <span class=kc>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>son</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>position</span><span class=p>:</span> <span class=kc>absolute</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>top</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>right</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>bottom</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>left</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>margin</span><span class=p>:</span> <span class=kc>auto</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>css3 属性</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>father</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>position</span><span class=p>:</span> <span class=kc>relative</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>son</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>position</span><span class=p>:</span> <span class=kc>absolute</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>top</span><span class=p>:</span> <span class=mi>50</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>left</span><span class=p>:</span> <span class=mi>50</span><span class=kt>%</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>transform</span><span class=p>:</span> <span class=nb>translate</span><span class=p>(</span><span class=mi>-50</span><span class=kt>%</span><span class=p>,</span> <span class=mi>-50</span><span class=kt>%</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>flex 布局</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>father</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>display</span><span class=p>:</span> <span class=kc>flex</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>justify-content</span><span class=p>:</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>align-items</span><span class=p>:</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=4-px-和-em-和-rem-的区别><span>2.4 4. px 和 em 和 rem 的区别</span>\n<a href=#4-px-%e5%92%8c-em-%e5%92%8c-rem-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><code>px</code>: 像素，相对长度单位。像素<code>px</code>是相对于显示器屏幕分辨率而言的</p></blockquote><blockquote><p><code>em</code>的值并不是固定的，会继承父级元素的字体大小，代表倍数</p></blockquote><blockquote><p><code>rem</code>的值并不是固定的，始终是基于根元素 <code>&lt;html></code> 的，也代表倍数</p></blockquote><h3 class=heading-element id=5-position-的值有哪些><span>2.5 5. position 的值有哪些</span>\n<a href=#5-position-%e7%9a%84%e5%80%bc%e6%9c%89%e5%93%aa%e4%ba%9b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>static：默认值。没有定位，元素出现在正常的流中</p></blockquote><blockquote><p>relative（相对定位）：生成相对定位的元素，相对于其正常（原先本身）位置进行定位</p></blockquote><blockquote><p>absolute（绝对定位）：生成绝对定位的元素，相对于 static 定位以外的第一个父元素进行定位</p></blockquote><blockquote><p>fixed（固定定位）：生成绝对定位的元素，相对于浏览器窗口进行定位</p></blockquote><h3 class=heading-element id=6-displaynone-与-visibilityhidden-的区别><span>2.6 6. display:none 与 visibility：hidden 的区别</span>\n<a href=#6-displaynone-%e4%b8%8e-visibilityhidden-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>区别</th><th>display:none</th><th>visibility：hidden 的</th></tr></thead><tbody><tr><td>是否占据空间</td><td>不占据任何空间，在文档渲染时，该元素如同不存在（但依然存在文档对象模型树中）</td><td>该元素空间依旧存在</td></tr><tr><td>是否渲染</td><td>会触发 reflow（回流），进行渲染</td><td>只会触发 repaint（重绘），因为没有发现位置变化，不进行渲染</td></tr><tr><td>是否是继承属性</td><td>不是继承属性，元素及其子元素都会消失</td><td>是继承属性，若子元素使用了 visibility:visible，则不继承，这个子孙元素又会显现出</td></tr></tbody></table></div><h3 class=heading-element id=7-css-中-link-和import-的区别><span>2.7 7. CSS 中 link 和@import 的区别</span>\n<a href=#7-css-%e4%b8%ad-link-%e5%92%8cimport-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>link 属于 XHTML 标签，@import 完全是 CSS 提供的一种方式，只能加载 CSS</p></blockquote><blockquote><p>加载顺序的差别，当一个页面被加载的时候，link 引用的 CSS 会同时被加载，而@import 引用的 CSS 会等到页面全部被下载完再被加载</p></blockquote><blockquote><p>兼容性的差别。由于@import 是 CSS2.1 提出的所以老的浏览器不支持，而 link 标签无此问题</p></blockquote><blockquote><p>当使用 javascript 控制 dom 去改变样式的时候，只能使用 link 标签，因为@import 不是 dom 可以控制的</p></blockquote><h3 class=heading-element id=8-什么是响应式设计响应式设计的基本原理是什么><span>2.8 8. 什么是响应式设计，响应式设计的基本原理是什么</span>\n<a href=#8-%e4%bb%80%e4%b9%88%e6%98%af%e5%93%8d%e5%ba%94%e5%bc%8f%e8%ae%be%e8%ae%a1%e5%93%8d%e5%ba%94%e5%bc%8f%e8%ae%be%e8%ae%a1%e7%9a%84%e5%9f%ba%e6%9c%ac%e5%8e%9f%e7%90%86%e6%98%af%e4%bb%80%e4%b9%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>响应式网站设计是一个网站能够兼容多个终端，而不是为每一个终端做一个特定的版本。基本原理是通过媒体查询检测不同的设备屏幕尺寸做处理</p></blockquote><h3 class=heading-element id=9-为什么要初始化-css-样式><span>2.9 9. 为什么要初始化 CSS 样式</span>\n<a href=#9-%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e5%88%9d%e5%a7%8b%e5%8c%96-css-%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>因为浏览器的兼容问题，不同浏览器对有些标签的默认值是不同的，如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异</p></blockquote><blockquote><p>初始化样式会对 SEO 有一定的影响</p></blockquote><h3 class=heading-element id=10-css3-有哪些新特性><span>2.10 10. CSS3 有哪些新特性</span>\n<a href=#10-css3-%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b0%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>实现圆角<code>border-radius</code>，阴影<code>box-shadow</code>，边框图片<code>border-image</code></li><li>对文字加特效<code>text-shadow</code>，强制文本换行<code>word-wrap</code>，线性渐变<code>linear-gradient</code></li><li>实现旋转<code>transform:rotate(90deg)</code>, 缩放<code>scale(0.85,0.90)</code>,<code>translate(0px,-30px)</code>定位，倾斜<code>skew(-9deg,0deg)</code>;</li><li>增加了更多的 CSS 选择器、多背景、<code>rgba()</code></li><li>唯一引入的伪元素是<code>::selection</code>；</li><li>实现媒体查询<code>@media</code>，多栏布局<code>flex</code></li><li>过渡<code>transition</code> 动画<code>animation</code></li></ul><h3 class=heading-element id=11-before-和-after-中双冒号和单冒号有什么区别解释一下这-2-个伪元素的作用><span>2.11 11. ::before 和 :after 中双冒号和单冒号有什么区别？解释一下这 2 个伪元素的作用</span>\n<a href=#11-before-%e5%92%8c-after-%e4%b8%ad%e5%8f%8c%e5%86%92%e5%8f%b7%e5%92%8c%e5%8d%95%e5%86%92%e5%8f%b7%e6%9c%89%e4%bb%80%e4%b9%88%e5%8c%ba%e5%88%ab%e8%a7%a3%e9%87%8a%e4%b8%80%e4%b8%8b%e8%bf%99-2-%e4%b8%aa%e4%bc%aa%e5%85%83%e7%b4%a0%e7%9a%84%e4%bd%9c%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>单冒号 (:) 用于 CSS3 伪类，双冒号 (::) 用于 CSS3 伪元素。（伪元素由双冒号和伪元素名称组成）, 双冒号是在当前规范中引入的，用于区分伪类和伪元素</p></blockquote><h3 class=heading-element id=12-css-优化提高性能的方法有哪些><span>2.12 12. CSS 优化、提高性能的方法有哪些</span>\n<a href=#12-css-%e4%bc%98%e5%8c%96%e6%8f%90%e9%ab%98%e6%80%a7%e8%83%bd%e7%9a%84%e6%96%b9%e6%b3%95%e6%9c%89%e5%93%aa%e4%ba%9b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>移除空的 css 规则（Remove empty rules）</li><li>正确使用 display 的属性</li><li>不滥用浮动、web 字体</li><li>不声明过多的 font-size</li><li>不在选择符中使用 ID 标识符</li><li>遵守盒模型规则</li><li>尽量减少页面重排、重绘</li><li>抽象提取公共样式，减少代码量</li></ul><h3 class=heading-element id=13-重绘和回流><span>2.13 13. 重绘和回流</span>\n<a href=#13-%e9%87%8d%e7%bb%98%e5%92%8c%e5%9b%9e%e6%b5%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://juejin.im/post/5a9923e9518825558251c96a target=_blank rel=\"external nofollow noopener noreferrer\">重绘和回流<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=14-flex-布局><span>2.14 14. flex 布局</span>\n<a href=#14-flex-%e5%b8%83%e5%b1%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html target=_blank rel=\"external nofollow noopener noreferrer\">flex 布局教程&ndash;阮一峰<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=15-css-预处理器><span>2.15 15. css 预处理器</span>\n<a href=#15-css-%e9%a2%84%e5%a4%84%e7%90%86%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>提供了一种 css 的书写方式，常见的就是 <a href=http://sass.bootcss.com/docs/sass-reference/ target=_blank rel=\"external nofollow noopener noreferrer\">SAAS 文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://less.bootcss.com/ target=_blank rel=\"external nofollow noopener noreferrer\">LESS 文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ms-html-css/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/ms-html-css.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/ms-html-css.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%A2%98+-+HTML%2BCSS&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95%E9%A2%98+-+HTML%2BCSS%7c%0A%7cURL%7chttps://lruihao.cn/posts/ms-html-css/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/ms-html-css.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ms-html-css/ data-title=\"前端面试题 - HTML+CSS\" data-hashtags=HTML,CSS><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ms-html-css/ data-hashtag=HTML><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ms-html-css/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ms-html-css/ data-title=\"前端面试题 - HTML+CSS\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ms-html-css/ data-title=\"前端面试题 - HTML+CSS\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/bqbj/ class=post-nav-item rel=prev title=百钱百鸡（枚举法）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>百钱百鸡（枚举法）</a><a href=/posts/ngrok/ class=post-nav-item rel=next title=本地搭建网站服务器并穿透内网>本地搭建网站服务器并穿透内网<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#html>HTML</a><ol><li><a href=#1-doctype-作用html5-为什么只需要写-doctype-html>1. Doctype 作用，HTML5 为什么只需要写</a></li><li><a href=#2-行内元素有哪些块级元素有哪些空-void-元素有那些>2. 行内元素有哪些，块级元素有哪些，空 (void) 元素有那些</a></li><li><a href=#3-简述一下你对-html-语义化的理解>3. 简述一下你对 HTML 语义化的理解</a></li><li><a href=#4-常见的浏览器内核有哪些介绍一下你对浏览器内核的理解>4. 常见的浏览器内核有哪些，介绍一下你对浏览器内核的理解</a></li><li><a href=#5-html5-有哪些新特性>5. html5 有哪些新特性</a></li><li><a href=#6-描述一下-cookiesessionstorage-和-localstorage-的区别>6. 描述一下 cookie，sessionStorage 和 localStorage 的区别</a></li><li><a href=#7-如何实现浏览器内多个标签页之间的通信>7. 如何实现浏览器内多个标签页之间的通信</a></li><li><a href=#8-html5-的离线存储怎么使用解释一下工作原理>8. HTML5 的离线存储怎么使用，解释一下工作原理</a></li><li><a href=#9-src-与-href-的区别>9. src 与 href 的区别</a></li><li><a href=#10-表单提交中-get-和-post-方式的区别>10. 表单提交中 Get 和 Post 方式的区别</a></li></ol></li><li><a href=#css>CSS</a><ol><li><a href=#1-css-盒子模型box-sizing-属性的理解>1. css 盒子模型，box-sizing 属性的理解</a></li><li><a href=#2-清除浮动什么时候需要清除浮动清除浮动都有哪些方法>2. 清除浮动，什么时候需要清除浮动，清除浮动都有哪些方法</a></li><li><a href=#3-如何让一个不定宽高的盒子水平垂直居中>3. 如何让一个不定宽高的盒子水平垂直居中</a></li><li><a href=#4-px-和-em-和-rem-的区别>4. px 和 em 和 rem 的区别</a></li><li><a href=#5-position-的值有哪些>5. position 的值有哪些</a></li><li><a href=#6-displaynone-与-visibilityhidden-的区别>6. display:none 与 visibility：hidden 的区别</a></li><li><a href=#7-css-中-link-和import-的区别>7. CSS 中 link 和@import 的区别</a></li><li><a href=#8-什么是响应式设计响应式设计的基本原理是什么>8. 什么是响应式设计，响应式设计的基本原理是什么</a></li><li><a href=#9-为什么要初始化-css-样式>9. 为什么要初始化 CSS 样式</a></li><li><a href=#10-css3-有哪些新特性>10. CSS3 有哪些新特性</a></li><li><a href=#11-before-和-after-中双冒号和单冒号有什么区别解释一下这-2-个伪元素的作用>11. ::before 和 :after 中双冒号和单冒号有什么区别？解释一下这 2 个伪元素的作用</a></li><li><a href=#12-css-优化提高性能的方法有哪些>12. CSS 优化、提高性能的方法有哪些</a></li><li><a href=#13-重绘和回流>13. 重绘和回流</a></li><li><a href=#14-flex-布局>14. flex 布局</a></li><li><a href=#15-css-预处理器>15. css 预处理器</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2d9c54e40775802a74cf79fe7d2e5158.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2d9c54e40775802a74cf79fe7d2e5158.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ms-html-css/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ms-html-css/index.md",
    "content": "# 前端面试题 - HTML+CSS\n\n\n> [原文链接](https://github.com/ltadpoles/web-document/tree/master/Other)  \n> “卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\n\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\n\n<!--more-->\n\n## HTML\n\n### 1. Doctype 作用，HTML5 为什么只需要写 <!DOCTYPE HTML>\n\n> doctype 是一种标准通用标记语言的文档类型声明，目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义（DTD）来解析文档。`<!DOCTYPE>`声明必须是 HTML 文档的第一行，位于 html 标签之前\n\n> HTML5 不基于 SGML，所以不需要引用 DTD。在 HTML5 中<!DOCTYPE>只有一种\n\n> SGML: 标准通用标记语言，是现时常用的超文本格式的最高层次标准\n\n### 2. 行内元素有哪些，块级元素有哪些，空 (void) 元素有那些\n\n行内元素：`a` `span` `i` `img` `input` `select` `b` 等\n\n块级元素：`div` `ul` `ol` `li` `h1~h6` `p` `table` 等\n\n空元素：`br` `hr` `link` 等\n\n### 3. 简述一下你对 HTML 语义化的理解\n\n简单来说，就是合适的标签做合适的事情，这样具有以下好处：\n\n- 有助于构架良好的 HTML 结构，有利于搜索引擎的建立索引、抓取，利于 SEO\n- 有利于不同设备的解析\n- 有利于构建清晰的机构，有利于团队的开发、维护\n\n### 4. 常见的浏览器内核有哪些，介绍一下你对浏览器内核的理解</h5>\n\n> Trident 内核：IE\n\n> Gecko 内核：NETSCAPE6 及以上版本，火狐\n\n> Presto 内核：Opera7 及以上。[Opera 内核原为：Presto，现为：Blink;]\n\n> Webkit 内核：Safari，Chrome 等。[Chrome 的：Blink（WebKit 的分支）]\n\n浏览器内核又可以分成两部分：**渲染引擎和 JS 引擎。** 渲染引擎主要负责取得网页的内容、整理讯息、计算网页的显示方式等，JS 引擎则是解析 Javascript 语言，执行 javascript 语言来实现网页的动态效果。\n\n### 5. html5 有哪些新特性\n\n- 语义化标签：`header` `footer` `nav` `section` `article` `aside` 等\n- 增强型表单：`date`（从一个日期选择器选择一个日期） `email`（包含 e-mail 地址的输入域） `number`（数值的输入域） `range`（一定范围内数字值的输入域） `search`（用于搜索域） `tel`（定义输入电话号码字段）等\n- 视频和音频：`audio` `video`\n- Canvas 绘图 SVG 绘图\n- 地理定位：`Geolocation`\n- 拖放 API：`drag`\n- web worker：是运行在后台的 JavaScript，独立于其他脚本，不会影响页面的性能\n- web storage: `localStorage` `sessionStorage`\n- WebSocket: HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议\n\n### 6. 描述一下 cookie，sessionStorage 和 localStorage 的区别\n\n| 特性         | Cookie                                                               | localStorage                                       | sessionStorage                                       |\n| :----------- | :------------------------------------------------------------------- | :------------------------------------------------- | :--------------------------------------------------- |\n| 生命周期     | 可设置失效时间，没有设置的话，默认是关闭浏览器后失效                 | 除非被手动清除，否则将会永久保存                   | 仅在当前网页会话下有效，关闭页面或浏览器后就会被清除 |\n| 存放数据大小 | 4KB 左右                                                             | 可以保存 5MB 的信息                                | 可以保存 5MB 的信息                                  |\n| http 请求    | 每次都会携带在 HTTP 头中，如果使用 cookie 保存过多数据会带来性能问题 | 仅在客户端（即浏览器）中保存，不参与和服务器的通信 | 仅在客户端（即浏览器）中保存，不参与和服务器的通信   |\n\n### 7. 如何实现浏览器内多个标签页之间的通信\n\n- 使用 localStorage: `localStorage.setItem(key,value)`、`localStorage.getItem(key)`\n- websocket 协议\n- webworker\n\n[多个标签页之间的通信](https://juejin.im/post/5acdba01f265da23826e5633)\n\n### 8. HTML5 的离线存储怎么使用，解释一下工作原理\n\n[HTML5 的离线存储](https://segmentfault.com/a/1190000006984353)\n\n### 9. src 与 href 的区别\n\n区别：src 用于替代这个元素，而 href 用于建立这个标签与外部资源之间的关系\n\n`<link href=\"style.css\" rel=\"stylesheet\" />`浏览器加载到这里的时候，html 的渲染和解析不会暂停，css 文件的加载是同时进行的\n\n`<script src=\"script.js\"></script>`当浏览器解析到这句代码时，页面的加载和解析都会暂停直到浏览器拿到并执行完这个 js 文件\n\n### 10. 表单提交中 Get 和 Post 方式的区别\n\n- Get 一般用于从服务器上获取数据，Post 向服务器传送数据\n- Get 传输的数据是拼接在 Url 之后的，对用户是可见的；Post 的传输数据对用户是不可见的\n- Get 传送的数据量较小，不能大于 2KB。Post 传送的数据量较大，一般被默认为不受限制\n- Get 安全性非常低，Post 安全性较高\n- 在 FORM 提交的时候，如果不指定 Method，则默认为 Get 请求\n\n## CSS\n\n### 1. css 盒子模型，box-sizing 属性的理解\n\ncss 的盒模型由 content（内容）、padding（内边距）、border（边框）、margin（外边距）组成。但盒子的大小由 content+padding+border 这几部分决定\n\nbox-sizing 是一个 CSS3 属性，与盒子模型有着密切联系。即决定元素的宽高如何计算，box-sizing 有三个属性：\n\n```css\nbox-sizing: content-box|border-box|inherit:\n```\n\n- content-box 使得元素的宽高即为内容区的宽高（默认模式）\n- border-box: 计算方式 content + padding + border = 本身元素大小，即缩小了 content 大小\n- inherit 指定 box-sizing 属性的值，应该从父元素继承\n\n### 2. 清除浮动，什么时候需要清除浮动，清除浮动都有哪些方法\n\n浮动的元素是脱离文档标准流的，如果我们不清楚浮动，那么就会造成**父元素高度塌陷**，影响页面布局。\n\n清除浮动的方式：\n\n- 为父元素设置高度\n- 为父元素添加`overflow:hidden`\n- 伪元素\n\n```css\n.fix::after {\n  content: '';\n  display: block;\n  clear: both;\n}\n```\n\n使用伪元素的好处：不增加冗余的 DOM 节点，符合语义化\n\n> overflow:hidden 可以触发 BFC 机制。BFC：块级格式化上下文，创建了 BFC 的元素就是一个独立的盒子，它规定了内部如何布局，并且与这个独立盒子里的布局不受外部影响，当然它也不会影响到外面的元素，**计算 BFC 的高度时，浮动元素也参与计算**\n\n### 3. 如何让一个不定宽高的盒子水平垂直居中\n\n> 定位的方式\n\n```css\n.father {\n  position: relative;\n}\n.son {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  margin: auto;\n}\n```\n\n> css3 属性\n\n```css\n.father {\n  position: relative;\n}\n.son {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n```\n\n> flex 布局\n\n```css\n.father {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n```\n\n### 4. px 和 em 和 rem 的区别\n\n> `px`: 像素，相对长度单位。像素`px`是相对于显示器屏幕分辨率而言的\n\n> `em`的值并不是固定的，会继承父级元素的字体大小，代表倍数\n\n> `rem`的值并不是固定的，始终是基于根元素 `<html>` 的，也代表倍数\n\n### 5. position 的值有哪些\n\n> static：默认值。没有定位，元素出现在正常的流中\n\n> relative（相对定位）：生成相对定位的元素，相对于其正常（原先本身）位置进行定位\n\n> absolute（绝对定位）：生成绝对定位的元素，相对于 static 定位以外的第一个父元素进行定位\n\n> fixed（固定定位）：生成绝对定位的元素，相对于浏览器窗口进行定位\n\n### 6. display:none 与 visibility：hidden 的区别\n\n| 区别           | display:none                                                                 | visibility：hidden 的                                                           |\n| -------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |\n| 是否占据空间   | 不占据任何空间，在文档渲染时，该元素如同不存在（但依然存在文档对象模型树中） | 该元素空间依旧存在                                                              |\n| 是否渲染       | 会触发 reflow（回流），进行渲染                                              | 只会触发 repaint（重绘），因为没有发现位置变化，不进行渲染                      |\n| 是否是继承属性 | 不是继承属性，元素及其子元素都会消失                                         | 是继承属性，若子元素使用了 visibility:visible，则不继承，这个子孙元素又会显现出 |\n\n### 7. CSS 中 link 和@import 的区别\n\n> link 属于 XHTML 标签，@import 完全是 CSS 提供的一种方式，只能加载 CSS\n\n> 加载顺序的差别，当一个页面被加载的时候，link 引用的 CSS 会同时被加载，而@import 引用的 CSS 会等到页面全部被下载完再被加载\n\n> 兼容性的差别。由于@import 是 CSS2.1 提出的所以老的浏览器不支持，而 link 标签无此问题\n\n> 当使用 javascript 控制 dom 去改变样式的时候，只能使用 link 标签，因为@import 不是 dom 可以控制的\n\n### 8. 什么是响应式设计，响应式设计的基本原理是什么\n\n> 响应式网站设计是一个网站能够兼容多个终端，而不是为每一个终端做一个特定的版本。基本原理是通过媒体查询检测不同的设备屏幕尺寸做处理\n\n### 9. 为什么要初始化 CSS 样式\n\n> 因为浏览器的兼容问题，不同浏览器对有些标签的默认值是不同的，如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异\n\n> 初始化样式会对 SEO 有一定的影响\n\n### 10. CSS3 有哪些新特性\n\n- 实现圆角`border-radius`，阴影`box-shadow`，边框图片`border-image`\n- 对文字加特效`text-shadow`，强制文本换行`word-wrap`，线性渐变`linear-gradient`\n- 实现旋转`transform:rotate(90deg)`, 缩放`scale(0.85,0.90)`,`translate(0px,-30px)`定位，倾斜`skew(-9deg,0deg)`;\n- 增加了更多的 CSS 选择器、多背景、`rgba()`\n- 唯一引入的伪元素是`::selection`；\n- 实现媒体查询`@media`，多栏布局`flex`\n- 过渡`transition` 动画`animation`\n\n### 11. ::before 和 :after 中双冒号和单冒号有什么区别？解释一下这 2 个伪元素的作用\n\n> 单冒号 (:) 用于 CSS3 伪类，双冒号 (::) 用于 CSS3 伪元素。（伪元素由双冒号和伪元素名称组成）, 双冒号是在当前规范中引入的，用于区分伪类和伪元素\n\n### 12. CSS 优化、提高性能的方法有哪些\n\n- 移除空的 css 规则（Remove empty rules）\n- 正确使用 display 的属性\n- 不滥用浮动、web 字体\n- 不声明过多的 font-size\n- 不在选择符中使用 ID 标识符\n- 遵守盒模型规则\n- 尽量减少页面重排、重绘\n- 抽象提取公共样式，减少代码量\n\n### 13. 重绘和回流\n\n[重绘和回流](https://juejin.im/post/5a9923e9518825558251c96a)\n\n### 14. flex 布局\n\n[flex 布局教程--阮一峰](http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)\n\n### 15. css 预处理器\n\n提供了一种 css 的书写方式，常见的就是 [SAAS 文档](http://sass.bootcss.com/docs/sass-reference/) 和 [LESS 文档](https://less.bootcss.com/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ms-html-css/  \n\n"
  },
  {
    "path": "posts/mx2wx/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\n\"><meta name=keywords content='Python,wxpy,pyinstaller,HTTP,JSON,Cron'><meta itemprop=name content=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\"><meta itemprop=description content=\"用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\"><meta itemprop=datePublished content=\"2019-05-11T17:02:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"2087\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python,wxpy,pyinstaller,HTTP,JSON,Cron\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/mx2wx/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\"><meta property=\"og:description\" content=\"用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-11T17:02:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"wxpy\"><meta property=\"article:tag\" content=\"pyinstaller\"><meta property=\"article:tag\" content=\"HTTP\"><meta property=\"article:tag\" content=\"JSON\"><meta property=\"article:tag\" content=\"Cron\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\"><meta name=twitter:description content=\"用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/mx2wx/ title=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ifzhushi/ title=\"条件注释判断浏览器版本<!--[if lt IE 9]>;\"><link rel=next type=text/html href=https://lruihao.cn/posts/imgurl/ title=\"宝塔面板安装 ImgURL 图床\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/mx2wx/index.md title=\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/mx2wx\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, wxpy, pyinstaller, HTTP, JSON, Cron\",\"wordcount\":2087,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/mx2wx\\/\",\"datePublished\":\"2019-05-11T17:02:31+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/mx2wx/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-11 17:02:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-11>2019-05-11</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"2087 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#背景>背景</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#测试结果>测试结果</a></li><li><a href=#程序打包>程序打包</a></li><li><a href=#收获>收获</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。<br>要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。</p></blockquote><h2 class=heading-element id=背景><span>1 背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>麻小科技：<br>麻小科技全名深圳市麻小科技有限公司，成立于 2017 年 1 月。是我高一的时候参加<code>Peer 夏令营</code>带我们一个玩的“老师”和他的朋友的创业公司，说老师有点奇怪，我们都是直接叫名字的，比如大家都叫我瑞豪，我也就叫他文捷哥，简称捷哥吧。他们公司主要的开发模式是，小程序前端+php 后端，然后做的是酒店小程序，为每个酒店定制小程序。这些小程序可以贴在客房中给访客提供一些服务，大大节省了成本也提高了效率。<br>然后每个酒店小程序都有独立的后台，后台会记录一些点击需求的数据。现在他们有一个需求需要把每个酒店小程序后台的数据在每天早上 9 点发送至对应酒店的微信群。</p></blockquote><h2 class=heading-element id=实现代码><span>2 实现代码</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>缓存登录信息，短时间类无需重复登录，仅第一次需要扫码登录（相当于微信网页版），后面的登录只需在手机上确认登录信息。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=ch>#!/usr/bin/python</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>requests</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>json</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>time</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>wxpy</span> <span class=kn>import</span> <span class=o>*</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 基本信息填写：</span>\n</span></span><span class=line><span class=cl><span class=c1>## 酒店 id，酒店名称及群名列表数据，格式：[&#34;xxx&#34;,&#34;xxx&#34;,&#34;xxx&#34;]</span>\n</span></span><span class=line><span class=cl><span class=c1>## 使用时请将以下三个列表一一对应</span>\n</span></span><span class=line><span class=cl><span class=n>hotel</span><span class=o>=</span><span class=p>[</span><span class=s2>&#34;xxxx&#34;</span><span class=p>,</span><span class=s2>&#34;xxxx&#34;</span><span class=p>]</span> <span class=c1>## 酒店后台数据接口二级域名，已匿名</span>\n</span></span><span class=line><span class=cl><span class=n>hotel_name</span><span class=o>=</span><span class=p>[</span><span class=s2>&#34;增城宾馆&#34;</span><span class=p>,</span><span class=s2>&#34;百丽酒店&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=n>grouplist</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;麻小&#34;</span><span class=p>,</span><span class=s2>&#34;富强民主文明和谐自由平等公正法治&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## post 请求发送的数据</span>\n</span></span><span class=line><span class=cl><span class=n>postData</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## &#39;username&#39;:&#39;test&#39;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## &#39;password&#39;:&#39;123456&#39;,</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>get_data</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>  <span class=n>result</span> <span class=o>=</span> <span class=p>[]</span> <span class=c1>#结果列表</span>\n</span></span><span class=line><span class=cl>  <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span> <span class=c1>#计数器</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=n>each</span> <span class=ow>in</span> <span class=n>hotel</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>url</span><span class=o>=</span><span class=s2>&#34;http://&#34;</span><span class=o>+</span><span class=n>each</span><span class=o>+</span><span class=s2>&#34;.maxiaokeji.com/xxx/xxxxxxx/xxx&#34;</span> <span class=c1>## 为保护隐私及权益，这里不提供接口</span>\n</span></span><span class=line><span class=cl>    <span class=n>r</span> <span class=o>=</span> <span class=n>requests</span><span class=o>.</span><span class=n>post</span><span class=p>(</span><span class=n>url</span><span class=p>,</span><span class=n>data</span><span class=o>=</span><span class=n>postData</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## print(r.text)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>## 把结果转化为 json 字符串</span>\n</span></span><span class=line><span class=cl>    <span class=n>response</span><span class=o>=</span><span class=n>json</span><span class=o>.</span><span class=n>dumps</span><span class=p>(</span><span class=n>r</span><span class=o>.</span><span class=n>json</span><span class=p>(),</span><span class=n>indent</span><span class=o>=</span><span class=mi>4</span><span class=p>,</span><span class=n>ensure_ascii</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span> <span class=c1>#sort_keys=True</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>## 把 json 转换为 dict 字典作为中间结果，再取出昨日数据</span>\n</span></span><span class=line><span class=cl>    <span class=n>midresult</span><span class=o>=</span><span class=n>json</span><span class=o>.</span><span class=n>loads</span><span class=p>(</span><span class=n>response</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>result</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=s2>&#34;早上好！&#34;</span><span class=o>+</span><span class=n>hotel_name</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>+</span><span class=s2>&#34;小程序昨日数据如下：</span><span class=se>\\n</span><span class=s2> 访问数：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>midresult</span><span class=p>[</span><span class=s2>&#34;data&#34;</span><span class=p>][</span><span class=s2>&#34;yesterday_data&#34;</span><span class=p>][</span><span class=s2>&#34;type1&#34;</span><span class=p>])</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 房间数：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>midresult</span><span class=p>[</span><span class=s2>&#34;data&#34;</span><span class=p>][</span><span class=s2>&#34;yesterday_data&#34;</span><span class=p>][</span><span class=s2>&#34;type2&#34;</span><span class=p>])</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 需求量：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>midresult</span><span class=p>[</span><span class=s2>&#34;data&#34;</span><span class=p>][</span><span class=s2>&#34;yesterday_data&#34;</span><span class=p>][</span><span class=s2>&#34;type3&#34;</span><span class=p>])</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 商品点击量：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>midresult</span><span class=p>[</span><span class=s2>&#34;data&#34;</span><span class=p>][</span><span class=s2>&#34;yesterday_data&#34;</span><span class=p>][</span><span class=s2>&#34;type4&#34;</span><span class=p>]))</span>\n</span></span><span class=line><span class=cl>    <span class=n>i</span><span class=o>+=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>  <span class=c1>## print(result)</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=n>result</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>wechat_send</span><span class=p>(</span><span class=n>bot</span><span class=p>,</span><span class=n>result</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>  <span class=c1>## my_friend = bot.friends().search(&#39;lrh&#39;)[0]</span>\n</span></span><span class=line><span class=cl>  <span class=c1>## my_friend.send(result)</span>\n</span></span><span class=line><span class=cl>  <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span> <span class=c1>## 计数器</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=n>group</span> <span class=ow>in</span> <span class=n>grouplist</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>my_group</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>groups</span><span class=p>()</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=n>group</span><span class=p>)[</span><span class=mi>0</span><span class=p>]</span> <span class=c1>#依次搜索每一个群名称，每次一个</span>\n</span></span><span class=line><span class=cl>    <span class=n>my_group</span><span class=o>.</span><span class=n>send</span><span class=p>(</span><span class=n>result</span><span class=p>[</span><span class=n>i</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>result</span><span class=p>[</span><span class=n>i</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;已发送至群：&#34;</span><span class=o>+</span><span class=n>group</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>i</span><span class=o>+=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>main</span><span class=p>(</span><span class=n>bot</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>  <span class=c1>## 设置最大休眠时间，防止程序长时间占用系统资源</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span> <span class=kc>True</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_hour</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_min</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## 设置每天 8 点发送</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>now_hour</span> <span class=o>&lt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 软件将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后发送数据&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>&gt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span> <span class=o>+</span> <span class=mi>24</span>\n</span></span><span class=line><span class=cl>      <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 软件将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后发送数据&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>==</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;软件明天开始将在每天 8 点发送数据！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>result</span><span class=o>=</span><span class=n>get_data</span><span class=p>()</span> <span class=c1>## 获取数据</span>\n</span></span><span class=line><span class=cl>      <span class=n>wechat_send</span><span class=p>(</span><span class=n>bot</span><span class=p>,</span><span class=n>result</span><span class=p>)</span> <span class=c1>## 发送数据</span>\n</span></span><span class=line><span class=cl>      <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>86400</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>)</span><span class=o>*</span><span class=mi>60</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span><span class=o>==</span><span class=s2>&#34;__main__&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=n>bot</span> <span class=o>=</span> <span class=n>Bot</span><span class=p>(</span><span class=n>cache_path</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span> <span class=c1>## 初始化机器人，扫码登陆</span>\n</span></span><span class=line><span class=cl>  <span class=n>main</span><span class=p>(</span><span class=n>bot</span><span class=p>);</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=测试结果><span>3 测试结果</span>\n<a href=#%e6%b5%8b%e8%af%95%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/mx2wx/images/1.jpg title=发送测试 data-thumbnail=/posts/mx2wx/images/1.jpg data-sub-html=\"<h2>发送测试</h2>\"><img loading=lazy src=/posts/mx2wx/images/1.jpg alt=发送测试 height=1920 width=1080></a> <a class=lightgallery target=_blank href=/posts/mx2wx/images/2.png title=多数据发送 data-thumbnail=/posts/mx2wx/images/2.png data-sub-html=\"<h2>多数据发送</h2>\"><img loading=lazy src=/posts/mx2wx/images/2.png alt=多数据发送 height=490 width=559></a> <a class=lightgallery target=_blank href=/posts/mx2wx/images/3.png title=多群定时 data-thumbnail=/posts/mx2wx/images/3.png data-sub-html=\"<h2>多群定时</h2>\"><img loading=lazy src=/posts/mx2wx/images/3.png alt=多群定时 height=491 width=560></a></p><h2 class=heading-element id=程序打包><span>4 程序打包</span>\n<a href=#%e7%a8%8b%e5%ba%8f%e6%89%93%e5%8c%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>使用 pyinstaller 工具打包成可执行文件即可。（可执行文件不可跨平台运行，分平台打包）</p><blockquote><p>目前该程序已经上线测试中 &mldr; 暂未反馈问题</p></blockquote><h2 class=heading-element id=收获><span>5 收获</span>\n<a href=#%e6%94%b6%e8%8e%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>第一次参与实际公司的项目开发，虽然只是一个小的需求设计，但是我在这个过程中也学到了很多，比如通过实际一两周的编程对 Python 的熟悉度远远好过以前在实验室看的一个月视频。<br>还有就是在此次开发中，也感受到了实际项目开发的团队合作重要性，刚开始拿到这个需求，由于我对 python 和后台，以及数据接口这些基本的操作都不懂，就拿数据获取来说，我一开始一位要自己模拟登陆后台（已知密码），一顿操作、百度等等失败告终，后来涛哥给了一个数据接口，加上涛哥耐心指点，我才终于拿到了数据。<br>还有在多人合作的项目中，为保持代码的可读性，要尽量的多些注释，还有函数方法的命名尽量具备可读性。比如我代码中的<code>wechat_send()</code>，一开始的命名是<code>wxfs()</code>，经捷哥指正我才改过来的。</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/mx2wx/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/mx2wx/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/mx2wx/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E5%AE%9E%E6%88%98%EF%BC%9A%E6%A8%A1%E6%8B%9F+post+%E8%AF%B7%E6%B1%82%E5%AE%9A%E6%97%B6%E8%8E%B7%E5%8F%96%E5%90%8E%E5%8F%B0%E6%95%B0%E6%8D%AE%E5%B9%B6%E6%89%93%E5%8C%85%E5%8F%91%E9%80%81%E8%87%B3%E5%BE%AE%E4%BF%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E5%AE%9E%E6%88%98%EF%BC%9A%E6%A8%A1%E6%8B%9F+post+%E8%AF%B7%E6%B1%82%E5%AE%9A%E6%97%B6%E8%8E%B7%E5%8F%96%E5%90%8E%E5%8F%B0%E6%95%B0%E6%8D%AE%E5%B9%B6%E6%89%93%E5%8C%85%E5%8F%91%E9%80%81%E8%87%B3%E5%BE%AE%E4%BF%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/mx2wx/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/mx2wx/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/mx2wx/ data-title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\" data-hashtags=Python,wxpy,pyinstaller,HTTP,JSON,Cron><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/mx2wx/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/mx2wx/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/mx2wx/ data-title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/mx2wx/ data-title=\"Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/wxpy/ class=post-tag title=\"标签 - wxpy\">wxpy</a><a href=/tags/pyinstaller/ class=post-tag title=\"标签 - pyinstaller\">pyinstaller</a><a href=/tags/http/ class=post-tag title=\"标签 - HTTP\">HTTP</a><a href=/tags/json/ class=post-tag title=\"标签 - JSON\">JSON</a><a href=/tags/cron/ class=post-tag title=\"标签 - Cron\">Cron</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ifzhushi/ class=post-nav-item rel=prev title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a><a href=/posts/imgurl/ class=post-nav-item rel=next title=\"宝塔面板安装 ImgURL 图床\">宝塔面板安装 ImgURL 图床<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#背景>背景</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#测试结果>测试结果</a></li><li><a href=#程序打包>程序打包</a></li><li><a href=#收获>收获</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b8a3b8e54946b7da92cd6a554de14280.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b8a3b8e54946b7da92cd6a554de14280.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/mx2wx/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/mx2wx/index.md",
    "content": "# Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信\n\n\n> 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。  \n> 要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\n\n<!--more-->\n\n## 背景\n\n> 麻小科技：  \n> 麻小科技全名深圳市麻小科技有限公司，成立于 2017 年 1 月。是我高一的时候参加`Peer 夏令营`带我们一个玩的“老师”和他的朋友的创业公司，说老师有点奇怪，我们都是直接叫名字的，比如大家都叫我瑞豪，我也就叫他文捷哥，简称捷哥吧。他们公司主要的开发模式是，小程序前端+php 后端，然后做的是酒店小程序，为每个酒店定制小程序。这些小程序可以贴在客房中给访客提供一些服务，大大节省了成本也提高了效率。  \n> 然后每个酒店小程序都有独立的后台，后台会记录一些点击需求的数据。现在他们有一个需求需要把每个酒店小程序后台的数据在每天早上 9 点发送至对应酒店的微信群。\n\n## 实现代码\n\n> 缓存登录信息，短时间类无需重复登录，仅第一次需要扫码登录（相当于微信网页版），后面的登录只需在手机上确认登录信息。\n\n```python\n#!/usr/bin/python\nimport requests\nimport json\nimport time\nfrom wxpy import *\n\n## 基本信息填写：\n## 酒店 id，酒店名称及群名列表数据，格式：[\"xxx\",\"xxx\",\"xxx\"]\n## 使用时请将以下三个列表一一对应\nhotel=[\"xxxx\",\"xxxx\"] ## 酒店后台数据接口二级域名，已匿名\nhotel_name=[\"增城宾馆\",\"百丽酒店\"]\ngrouplist = [\"麻小\",\"富强民主文明和谐自由平等公正法治\"]\n\n## post 请求发送的数据\npostData = {\n    ## 'username':'test',\n    ## 'password':'123456',\n}\n\ndef get_data():\n  result = [] #结果列表\n  i = 0 #计数器\n  for each in hotel:\n    url=\"http://\"+each+\".maxiaokeji.com/xxx/xxxxxxx/xxx\" ## 为保护隐私及权益，这里不提供接口\n    r = requests.post(url,data=postData)\n    ## print(r.text)\n\n    ## 把结果转化为 json 字符串\n    response=json.dumps(r.json(),indent=4,ensure_ascii=False) #sort_keys=True\n\n    ## 把 json 转换为 dict 字典作为中间结果，再取出昨日数据\n    midresult=json.loads(response)\n    result.append(\"早上好！\"+hotel_name[i]+\"小程序昨日数据如下：\\n 访问数：\"+str(midresult[\"data\"][\"yesterday_data\"][\"type1\"])+\"\\n 房间数：\"+str(midresult[\"data\"][\"yesterday_data\"][\"type2\"])+\"\\n 需求量：\"+str(midresult[\"data\"][\"yesterday_data\"][\"type3\"])+\"\\n 商品点击量：\"+str(midresult[\"data\"][\"yesterday_data\"][\"type4\"]))\n    i+=1\n  ## print(result)\n  return result\n\ndef wechat_send(bot,result):\n  ## my_friend = bot.friends().search('lrh')[0]\n  ## my_friend.send(result)\n  i = 0 ## 计数器\n  for group in grouplist:\n    my_group = bot.groups().search(group)[0] #依次搜索每一个群名称，每次一个\n    my_group.send(result[i])\n    print(result[i])\n    print(\"已发送至群：\"+group)\n    i+=1\n\ndef main(bot):\n  ## 设置最大休眠时间，防止程序长时间占用系统资源\n  while True:\n    now_hour = time.strftime(\"%H\", time.localtime())\n    now_min = time.strftime(\"%M\", time.localtime())\n    ## 设置每天 8 点发送\n    if now_hour < \"08\":\n      rest = 8 - int(now_hour)\n      sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n      print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 软件将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后发送数据\")\n      time.sleep(sleeptime)\n    elif now_hour > \"08\":\n      rest = 8 - int(now_hour) + 24\n      sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n      print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 软件将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后发送数据\")\n      time.sleep(sleeptime)\n    elif now_hour == \"08\":\n      print(\"软件明天开始将在每天 8 点发送数据！\")\n      result=get_data() ## 获取数据\n      wechat_send(bot,result) ## 发送数据\n      time.sleep(86400-int(now_min)*60)\n\nif __name__==\"__main__\":\n  bot = Bot(cache_path=True) ## 初始化机器人，扫码登陆\n  main(bot);\n```\n\n## 测试结果\n\n![发送测试](images/1.jpg) ![多数据发送](images/2.png) ![多群定时](images/3.png)\n\n## 程序打包\n\n使用 pyinstaller 工具打包成可执行文件即可。（可执行文件不可跨平台运行，分平台打包）\n\n> 目前该程序已经上线测试中 ... 暂未反馈问题\n\n## 收获\n\n> 第一次参与实际公司的项目开发，虽然只是一个小的需求设计，但是我在这个过程中也学到了很多，比如通过实际一两周的编程对 Python 的熟悉度远远好过以前在实验室看的一个月视频。  \n> 还有就是在此次开发中，也感受到了实际项目开发的团队合作重要性，刚开始拿到这个需求，由于我对 python 和后台，以及数据接口这些基本的操作都不懂，就拿数据获取来说，我一开始一位要自己模拟登陆后台（已知密码），一顿操作、百度等等失败告终，后来涛哥给了一个数据接口，加上涛哥耐心指点，我才终于拿到了数据。  \n> 还有在多人合作的项目中，为保持代码的可读性，要尽量的多些注释，还有函数方法的命名尽量具备可读性。比如我代码中的`wechat_send()`，一开始的命名是`wxfs()`，经捷哥指正我才改过来的。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/mx2wx/  \n\n"
  },
  {
    "path": "posts/native-img-loading-lazy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>浏览器 IMG 图片原生懒加载 Loading=\"lazy\" | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"记录使用 HTML 原生方案实现图片的懒加载。\n\"><meta name=keywords content='HTML,eager,lazy,loading'><meta itemprop=name content='浏览器 IMG 图片原生懒加载 loading=\"lazy\"'><meta itemprop=description content=\"记录使用 HTML 原生方案实现图片的懒加载。\"><meta itemprop=datePublished content=\"2023-02-12T19:40:43+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"556\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"HTML,eager,lazy,loading\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/native-img-loading-lazy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content='浏览器 IMG 图片原生懒加载 loading=\"lazy\"'><meta property=\"og:description\" content=\"记录使用 HTML 原生方案实现图片的懒加载。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-02-12T19:40:43+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"HTML\"><meta property=\"article:tag\" content=\"eager\"><meta property=\"article:tag\" content=\"lazy\"><meta property=\"article:tag\" content=\"loading\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content='浏览器 IMG 图片原生懒加载 loading=\"lazy\"'><meta name=twitter:description content=\"记录使用 HTML 原生方案实现图片的懒加载。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/native-img-loading-lazy/ title='浏览器 IMG 图片原生懒加载 loading=\"lazy\" | 菠菜眾長'><link rel=prev type=text/html href=https://lruihao.cn/posts/browser-rendering/ title=浏览器渲染原理><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/native-img-loading-lazy/index.md title=\"浏览器 IMG 图片原生懒加载 loading=\\\" lazy\\\" | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/native-img-loading-lazy\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"HTML, eager, lazy, loading\",\"wordcount\":556,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/native-img-loading-lazy\\/\",\"datePublished\":\"2023-02-12T19:40:43+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/native-img-loading-lazy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a></span></div><div class=post-meta-line><span title=\"发布于 2023-02-12 19:40:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-02-12>2023-02-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"556 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"'><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#语法规范>语法规范</a></li><li><a href=#实际应用>实际应用</a></li><li><a href=#懒加载特性的研究>懒加载特性的研究</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>记录使用 HTML 原生方案实现图片的懒加载。</p><h2 class=heading-element id=语法规范><span>1 语法规范</span>\n<a href=#%e8%af%ad%e6%b3%95%e8%a7%84%e8%8c%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>HTML <code>loading</code> 属性适用于 <code>img</code> 和 <code>iframe</code>，语法规范见 <a href=https://html.spec.whatwg.org/multipage/urls-and-fetching.html#lazy-loading-attributes target=_blank rel=\"external nofollow noopener noreferrer\">HTML Standard - Lazy loading attributes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=table-wrapper><table><thead><tr><th style=text-align:center>关键词</th><th style=text-align:center>状态</th><th>描述</th></tr></thead><tbody><tr><td style=text-align:center><code>lazy</code></td><td style=text-align:center>懒惰的</td><td>用于延迟获取资源，直到满足某些条件。</td></tr><tr><td style=text-align:center><code>eager</code></td><td style=text-align:center>渴望的</td><td>用于立即获取资源；默认状态。</td></tr></tbody></table></div><p>属性的 <em><a href=https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#missing-value-default target=_blank rel=\"external nofollow noopener noreferrer\">缺失值默认值<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></em> 和 <em><a href=https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#invalid-value-default target=_blank rel=\"external nofollow noopener noreferrer\">无效值默认值<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></em> 都是 <a href=https://html.spec.whatwg.org/multipage/urls-and-fetching.html#attr-loading-eager-state target=_blank rel=\"external nofollow noopener noreferrer\">Eager<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>状态。</p><h2 class=heading-element id=实际应用><span>2 实际应用</span>\n<a href=#%e5%ae%9e%e9%99%85%e5%ba%94%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>基于 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 版本大于 v0.2.18 的博客网站使用就是原生的懒加载方案，大致如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>img</span>\n</span></span><span class=line><span class=cl>  <span class=na>loading</span><span class=o>=</span><span class=s>&#34;lazy&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>src</span><span class=o>=</span><span class=s>&#34;./example.jpg&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-title</span><span class=o>=</span><span class=s>&#34;title text&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-alt</span><span class=o>=</span><span class=s>&#34;alt text&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>onload</span><span class=o>=</span><span class=s>&#34;this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of [&#39;data-title&#39;,&#39;data-alt&#39;,&#39;onerror&#39;,&#39;onload&#39;]){this.removeAttribute(a);}this.dataset.lazyloaded=&#39;&#39;;&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>onerror</span><span class=o>=</span><span class=s>&#34;this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of [&#39;data-title&#39;,&#39;data-alt&#39;,&#39;onerror&#39;,&#39;onload&#39;]){this.removeAttribute(a);}&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>/&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>为了达到 loading 的效果，以上代码中在 <code>onload</code> 后会给图片加上一个 <code>data-lazyloaded</code> 属性，所以我们可以这样来写 css 以达到显示 loading 图标的效果：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>img</span><span class=o>[</span><span class=nt>loading</span><span class=o>=</span><span class=s1>&#39;lazy&#39;</span><span class=o>]</span><span class=p>:</span><span class=nd>not</span><span class=o>([</span><span class=nt>data-lazyloaded</span><span class=o>])</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background</span><span class=p>:</span> <span class=nb>url</span><span class=p>(</span><span class=sx>loading.svg</span><span class=p>)</span> <span class=kc>no-repeat</span> <span class=kc>center</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>设置 <code>data-title</code> 和 <code>data-alt</code> 是因为移动浏览器大多数只要有 <code>title</code> 或 <code>alt</code> 就会显示图片的替代字符，所以等到图片加载完或加载失败后再回填。</p><h2 class=heading-element id=懒加载特性的研究><span>3 懒加载特性的研究</span>\n<a href=#%e6%87%92%e5%8a%a0%e8%bd%bd%e7%89%b9%e6%80%a7%e7%9a%84%e7%a0%94%e7%a9%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>以下结论来自 <a href=https://www.zhangxinxu.com/wordpress/2019/09/native-img-loading-lazy/ target=_blank rel=\"external nofollow noopener noreferrer\">浏览器 IMG 图片原生懒加载 loading=”lazy”实践指南 « 张鑫旭 - 鑫空间 - 鑫生活<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 总结部分。</p></blockquote><ol><li>Lazy loading 加载数量与屏幕高度有关，高度越小加载数量越少，但并不是线性关系。</li><li>Lazy loading 加载数量与网速有关，网速越慢，加载数量越多，但并不是线性关系。</li><li>Lazy loading 加载没有缓冲，滚动即会触发新的图片资源加载。</li><li>Lazy loading 加载在窗口 resize 尺寸变化时候也会触发，例如屏幕高度从小变大的时候。</li><li>Lazy loading 加载也有可能会先加载后面的图片资源，例如页面加载时滚动高度很高的时候。</li></ol><h2 class=heading-element id=参考链接><span>4 参考链接</span>\n<a href=#%e5%8f%82%e8%80%83%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://developer.mozilla.org/zh-CN/docs/Web/Performance/Lazy_loading target=_blank rel=\"external nofollow noopener noreferrer\">Lazy loading - Web 性能 | MDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://caniuse.com/loading-lazy-attr target=_blank rel=\"external nofollow noopener noreferrer\">Lazy loading via attribute for images & iframes 兼容性<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/native-img-loading-lazy/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_html/native-img-loading-lazy.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_html/native-img-loading-lazy.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B5%8F%E8%A7%88%E5%99%A8+IMG+%E5%9B%BE%E7%89%87%E5%8E%9F%E7%94%9F%E6%87%92%E5%8A%A0%E8%BD%BD+loading%3D%22lazy%22&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B5%8F%E8%A7%88%E5%99%A8+IMG+%E5%9B%BE%E7%89%87%E5%8E%9F%E7%94%9F%E6%87%92%E5%8A%A0%E8%BD%BD+loading%3D%22lazy%22%7c%0A%7cURL%7chttps://lruihao.cn/posts/native-img-loading-lazy/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_html/native-img-loading-lazy.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/native-img-loading-lazy/ data-title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"' data-hashtags=HTML,eager,lazy,loading><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/native-img-loading-lazy/ data-hashtag=HTML><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/native-img-loading-lazy/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/native-img-loading-lazy/ data-title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"' data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/native-img-loading-lazy/ data-title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"'><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html/ class=post-tag title=\"标签 - HTML\">HTML</a><a href=/tags/eager/ class=post-tag title=\"标签 - eager\">eager</a><a href=/tags/lazy/ class=post-tag title=\"标签 - lazy\">lazy</a><a href=/tags/loading/ class=post-tag title=\"标签 - loading\">loading</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/browser-rendering/ class=post-nav-item rel=prev title=浏览器渲染原理><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>浏览器渲染原理</a><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=post-nav-item rel=next title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#语法规范>语法规范</a></li><li><a href=#实际应用>实际应用</a></li><li><a href=#懒加载特性的研究>懒加载特性的研究</a></li><li><a href=#参考链接>参考链接</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e543db54fa740737bf75fb6493e830ed.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e543db54fa740737bf75fb6493e830ed.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/native-img-loading-lazy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/native-img-loading-lazy/index.md",
    "content": "# 浏览器 IMG 图片原生懒加载 Loading=\"lazy\"\n\n\n记录使用 HTML 原生方案实现图片的懒加载。\n\n<!--more-->\n\n## 语法规范\n\nHTML `loading` 属性适用于 `img` 和 `iframe`，语法规范见 [HTML Standard - Lazy loading attributes](https://html.spec.whatwg.org/multipage/urls-and-fetching.html#lazy-loading-attributes)。\n\n| 关键词  | 状态  | 描述                                 |\n| :-----: | :----: | ------------------------------------ |\n| `lazy`  | 懒惰的 | 用于延迟获取资源，直到满足某些条件。 |\n| `eager` | 渴望的 | 用于立即获取资源；默认状态。         |\n\n属性的 _[缺失值默认值](https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#missing-value-default)_ 和 _[无效值默认值](https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#invalid-value-default)_ 都是 [Eager](https://html.spec.whatwg.org/multipage/urls-and-fetching.html#attr-loading-eager-state)状态。\n\n## 实际应用\n\n基于 [FixIt 主题](https://github.com/hugo-fixit/FixIt) 版本大于 v0.2.18 的博客网站使用就是原生的懒加载方案，大致如下：\n\n```html\n<img\n  loading=\"lazy\"\n  src=\"./example.jpg\"\n  data-title=\"title text\"\n  data-alt=\"alt text\"\n  onload=\"this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of ['data-title','data-alt','onerror','onload']){this.removeAttribute(a);}this.dataset.lazyloaded='';\"\n  onerror=\"this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of ['data-title','data-alt','onerror','onload']){this.removeAttribute(a);}\"\n/>\n```\n\n为了达到 loading 的效果，以上代码中在 `onload` 后会给图片加上一个 `data-lazyloaded` 属性，所以我们可以这样来写 css 以达到显示 loading 图标的效果：\n\n```css\nimg[loading='lazy']:not([data-lazyloaded]) {\n  background: url(loading.svg) no-repeat center;\n}\n```\n\n设置 `data-title` 和 `data-alt` 是因为移动浏览器大多数只要有 `title` 或 `alt` 就会显示图片的替代字符，所以等到图片加载完或加载失败后再回填。\n\n## 懒加载特性的研究\n\n> 以下结论来自 [浏览器 IMG 图片原生懒加载 loading=”lazy”实践指南 « 张鑫旭 - 鑫空间 - 鑫生活](https://www.zhangxinxu.com/wordpress/2019/09/native-img-loading-lazy/) 总结部分。\n\n1. Lazy loading 加载数量与屏幕高度有关，高度越小加载数量越少，但并不是线性关系。\n2. Lazy loading 加载数量与网速有关，网速越慢，加载数量越多，但并不是线性关系。\n3. Lazy loading 加载没有缓冲，滚动即会触发新的图片资源加载。\n4. Lazy loading 加载在窗口 resize 尺寸变化时候也会触发，例如屏幕高度从小变大的时候。\n5. Lazy loading 加载也有可能会先加载后面的图片资源，例如页面加载时滚动高度很高的时候。\n\n## 参考链接\n\n- [Lazy loading - Web 性能 | MDN](https://developer.mozilla.org/zh-CN/docs/Web/Performance/Lazy_loading)\n- [Lazy loading via attribute for images & iframes 兼容性](https://caniuse.com/loading-lazy-attr)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/native-img-loading-lazy/  \n\n"
  },
  {
    "path": "posts/netbeans/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>NetBeans IDE 开发设置 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 安裝 官方下載點\n2 擴充功能 2.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 2.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 2.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 3 常用設定 3.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\n\"><meta name=keywords content='NetBeans,PHP'><meta itemprop=name content=\"NetBeans IDE 开发设置\"><meta itemprop=description content=\"1 安裝 官方下載點\n2 擴充功能 2.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 2.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 2.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 3 常用設定 3.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\"><meta itemprop=datePublished content=\"2019-08-15T18:36:15+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1554\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"NetBeans,PHP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/netbeans/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"NetBeans IDE 开发设置\"><meta property=\"og:description\" content=\"1 安裝 官方下載點\n2 擴充功能 2.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 2.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 2.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 3 常用設定 3.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-08-15T18:36:15+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"NetBeans\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"NetBeans IDE 开发设置\"><meta name=twitter:description content=\"1 安裝 官方下載點\n2 擴充功能 2.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 2.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 2.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 3 常用設定 3.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/netbeans/ title=\"NetBeans IDE 开发设置 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dev-rules/ title=\"Web 开发规则，代码规范\"><link rel=next type=text/html href=https://lruihao.cn/posts/sublime-text3/ title=\"Sublime Text3 快捷键大全\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/netbeans/index.md title=\"NetBeans IDE 开发设置 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"NetBeans IDE 开发设置\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/netbeans\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"NetBeans, PHP\",\"wordcount\":1554,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/netbeans\\/\",\"datePublished\":\"2019-08-15T18:36:15+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/netbeans/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>NetBeans IDE 开发设置</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>NetBeans IDE 开发设置</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-08-15 18:36:15\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-08-15>2019-08-15</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1554 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"NetBeans IDE 开发设置\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安裝>安裝</a></li><li><a href=#擴充功能>擴充功能</a><ol><li><a href=#安裝擴充功能>安裝擴充功能</a></li><li><a href=#啟用已安裝的擴充功能>啟用已安裝的擴充功能</a></li><li><a href=#匯入設定>匯入設定</a></li></ol></li><li><a href=#常用設定>常用設定</a><ol><li><a href=#程式碼排版>程式碼排版</a></li><li><a href=#程式碼樣板>程式碼樣板</a></li><li><a href=#前端壓縮>前端壓縮</a></li><li><a href=#快捷鍵>快捷鍵</a></li><li><a href=#遠程開發-ftp>遠程開發 (FTP)</a></li><li><a href=#chrome-with-netneans-connector>Chrome with NetNeans Connector</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=安裝><span>1 安裝</span>\n<a href=#%e5%ae%89%e8%a3%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://netbeans.org/ target=_blank rel=\"external nofollow noopener noreferrer\">官方下載點<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=擴充功能><span>2 擴充功能</span>\n<a href=#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=安裝擴充功能><span>2.1 安裝擴充功能</span>\n<a href=#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>下載擴充套件包<ul><li><a href=http://plugins.netbeans.org/PluginPortal/ target=_blank rel=\"external nofollow noopener noreferrer\">官方套件庫<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>或者在 NetBeans IDE 裏面下載插件（方便）</li></ul></li><li>開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins</li><li>選擇要安裝的擴充套件包</li></ol><h3 class=heading-element id=啟用已安裝的擴充功能><span>2.2 啟用已安裝的擴充功能</span>\n<a href=#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>開啟 NetBeans→Tools→Plugins→Installed</li><li>選擇要啟用的套件 (*.npm)</li><li>點擊 Activate</li></ol><h3 class=heading-element id=匯入設定><span>2.3 匯入設定</span>\n<a href=#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>開啟 NetBeans→Tools→Options</li><li>點擊 Import 匯入設定</li><li>選擇要匯入的套件包 (*.zip)</li></ol><h2 class=heading-element id=常用設定><span>3 常用設定</span>\n<a href=#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=程式碼排版><span>3.1 程式碼排版</span>\n<a href=#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。</p></blockquote><p>在 NetBeans 中設置程式碼排版</p><ol><li>打開 NetBeans->Tools->Options->Editor->Formatting；</li><li>Language 選擇 All Languages，勾選\"Expand Tabs to Spaces\", 用兩個空格鍵代替 Tab 鍵，首行留兩個 Tab 鍵。</li><li>點擊 Apply 或 Ok 完成設置。具體設置及效果如下圖所示：</li></ol><p><a class=lightgallery target=_blank href=/posts/netbeans/images/Formatting.png title=\"Formatting 设置\" data-thumbnail=/posts/netbeans/images/Formatting.png data-sub-html=\"<h2>Formatting 设置</h2>\"><img loading=lazy src=/posts/netbeans/images/Formatting.png alt=\"Formatting 设置\" height=608 width=1075></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/Javascript.png title=Javascript data-thumbnail=/posts/netbeans/images/Javascript.png data-sub-html=\"<h2>Javascript</h2>\"><img loading=lazy src=/posts/netbeans/images/Javascript.png alt=Javascript height=393 width=499></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/Php.png title=Php data-thumbnail=/posts/netbeans/images/Php.png data-sub-html=\"<h2>Php</h2>\"><img loading=lazy src=/posts/netbeans/images/Php.png alt=Php height=479 width=559></a></p><h3 class=heading-element id=程式碼樣板><span>3.2 程式碼樣板</span>\n<a href=#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%a8%a3%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>程式碼樣板可以幫助你快速書寫程序，不必繁瑣地聲明函數或其他代碼塊，更專注與邏輯的書寫。</p></blockquote><p>在 NetBeans 中設置程式碼樣板</p><ol><li>打開 NetBeans→Tools→Options→Editor→Code Templates；</li><li>選擇你所用的語言（這裡以 JavaScript 為例）；</li><li>點擊\"New\"新建屬於你的或修改原有的程式碼樣板（例子僅為演示）；</li><li>在編程中應用它。</li></ol><p><a class=lightgallery target=_blank href=/posts/netbeans/images/FindTemplate.png title=FindTemplate data-thumbnail=/posts/netbeans/images/FindTemplate.png data-sub-html=\"<h2>FindTemplate</h2>\"><img loading=lazy src=/posts/netbeans/images/FindTemplate.png alt=FindTemplate height=710 width=858></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/BeforeEdit.png title=BeforeEdit data-thumbnail=/posts/netbeans/images/BeforeEdit.png data-sub-html=\"<h2>BeforeEdit</h2>\"><img loading=lazy src=/posts/netbeans/images/BeforeEdit.png alt=BeforeEdit height=364 width=821></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/OpenInEditor.png title=OpenInEditor data-thumbnail=/posts/netbeans/images/OpenInEditor.png data-sub-html=\"<h2>OpenInEditor</h2>\"><img loading=lazy src=/posts/netbeans/images/OpenInEditor.png alt=OpenInEditor height=385 width=832></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/AfterEdit.png title=AfterEdit data-thumbnail=/posts/netbeans/images/AfterEdit.png data-sub-html=\"<h2>AfterEdit</h2>\"><img loading=lazy src=/posts/netbeans/images/AfterEdit.png alt=AfterEdit height=435 width=638></a></p><h3 class=heading-element id=前端壓縮><span>3.3 前端壓縮</span>\n<a href=#%e5%89%8d%e7%ab%af%e5%a3%93%e7%b8%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>下載擴充套件<code>netbeans minify</code> 或者 <code>minifierBeans</code></p><ol><li>開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins</li><li>選擇你下載的擴充套件開啟</li><li>開啟 NetBeans→Tools→options</li></ol><p><a class=lightgallery target=_blank href=/posts/netbeans/images/Example1.png title=Example1 data-thumbnail=/posts/netbeans/images/Example1.png data-sub-html=\"<h2>Example1</h2>\"><img loading=lazy src=/posts/netbeans/images/Example1.png alt=Example1 height=665 width=864></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/Example2.png title=Example2 data-thumbnail=/posts/netbeans/images/Example2.png data-sub-html=\"<h2>Example2</h2>\"><img loading=lazy src=/posts/netbeans/images/Example2.png alt=Example2 height=200 width=193></a></p><h3 class=heading-element id=快捷鍵><span>3.4 快捷鍵</span>\n<a href=#%e5%bf%ab%e6%8d%b7%e9%8d%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:left>键位</th><th style=text-align:left>作用</th></tr></thead><tbody><tr><td style=text-align:left>Ctrl+/</td><td style=text-align:left>注释一行（或选中部分）</td></tr><tr><td style=text-align:left>Ctrl+X</td><td style=text-align:left>剪切一行（或选中部分）</td></tr><tr><td style=text-align:left>Ctrl+E</td><td style=text-align:left>删除一行（或选中部分）</td></tr><tr><td style=text-align:left>Shift+Alt+上下方向键</td><td style=text-align:left>移动当前行</td></tr><tr><td style=text-align:left>Ctrl+Shift+上下方向键</td><td style=text-align:left>复制当前行（该操作并非复制到粘贴板）</td></tr><tr><td style=text-align:left>Shift+Alt+F</td><td style=text-align:left>整理代码</td></tr><tr><td style=text-align:left>TAB</td><td style=text-align:left>代碼自動補全/缩进/選中文字同時缩进</td></tr><tr><td style=text-align:left>Shift+TAB</td><td style=text-align:left>選中文字同時取消缩进</td></tr><tr><td style=text-align:left>Ctrl+F</td><td style=text-align:left>查找某个字</td></tr><tr><td style=text-align:left>Ctrl+Shift+F</td><td style=text-align:left>整个项目中查找某个字</td></tr><tr><td style=text-align:left>Ctrl+H</td><td style=text-align:left>替换某个字</td></tr><tr><td style=text-align:left>Ctrl+Enter</td><td style=text-align:left>增加空白行，光标不动。</td></tr><tr><td style=text-align:left>Ctrl+(0~7)</td><td style=text-align:left>打开各种小窗口</td></tr><tr><td style=text-align:left>Shift+方向键</td><td style=text-align:left>選中文字</td></tr><tr><td style=text-align:left>Ctrl+Alt+Space</td><td style=text-align:left>代码输入提示，不习惯的可以设置为 (Alt+/)，超级好用！！！</td></tr><tr><td style=text-align:left>Ctrl+Shift+F5</td><td style=text-align:left>调试当前程序</td></tr><tr><td style=text-align:left>Shift+F6</td><td style=text-align:left>运行当前程序</td></tr><tr><td style=text-align:left>F6</td><td style=text-align:left>运行主程序</td></tr><tr><td style=text-align:left>Alt+Enter</td><td style=text-align:left>显示程式 bug 建议或者警示等</td></tr></tbody></table></div><ul><li>NetBeans 中常用的快捷鍵 ↑：</li><li>三種複製行方法</li></ul><ol><li>复制一行：Ctrl + Shift + 上下方向键（该操作并非复制到粘贴板）；</li><li>复制一行：在该行任何地方连续三击选中一样，然后 Ctrl + C 即可复制一行。；</li><li>复制一行（使用宏）: 编辑 - 开始录制宏 (Home,Shift + End,Ctrl + C)-停止录制宏 - 设置宏名称（如 select-entire-line)-设置快捷键（如 Ctrl + Alt + C)；</li></ol><ul><li>也可自己修改快捷鍵 (Tools→Options→Keympa), 如下圖</li></ul><p>{% asset_img quickkey.png quickkey %}</p><h3 class=heading-element id=遠程開發-ftp><span>3.5 遠程開發 (FTP)</span>\n<a href=#%e9%81%a0%e7%a8%8b%e9%96%8b%e7%99%bc-ftp class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>工作为例</p></blockquote><ol><li>新建项目<ol><li>打开软件，进入新建项目页面（File-New Project），新建 php 项目，选择第一个（PHP-PHP Application）</li><li>项目名和地址自己选择（注意，选择地址后需在地址最后面加上\"/项目名\"）</li></ol></li><li>FTP 设置<ol><li>点击下一步，进入 FTP 设置，Run As 选择 Remote Web Site(FTP,SFTP)</li><li>Project URL 填写<code>http://127.0.0.1/training/工号</code></li></ol></li><li>Manage 设置<ol><li>点击 Manage, 进入页面。名字自取。Host Name 填写：127.0.0.1</li><li>Encryption 选择 Pure FTP,User Name 和 Password（填写工号/课务系统登录密码）</li><li>Initial Directory 填写_training</li><li>点击 Test Connection 测试是否连接成功</li></ol></li><li>其他设置<ol><li>Upload Directory, 上传目录不填，直接上传至个人根目录</li><li>Upload File 改为保存时上传文件（On Save）</li></ol></li></ol><h3 class=heading-element id=chrome-with-netneans-connector><span>3.6 Chrome with NetNeans Connector</span>\n<a href=#chrome-with-netneans-connector class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>打開 chrome 中的應用程式商店（使用 chrome 瀏覽器點擊下方鏈接即可）<br><a href=\"https://chrome.google.com/webstore/category/themes?hl=en-US/\" target=_blank rel=\"external nofollow noopener noreferrer\">chrome 應用程式商店<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>在搜索框中輸入 NetNeans Connector 后搜索，然後點擊右邊的加到 Chrome 即可，安裝成功后右上角會顯示 NetBeans 圖標。</li><li>開啟 netbeans 選擇 Run→Set Project Browser→ 選中 Chrome with NetBeans Connector</li><li>選擇 default 下的 Customize → 選擇 Browser → 選擇 Browser 下 Chrome with NetBeans Connector 即可</li></ol><p><a class=lightgallery target=_blank href=/posts/netbeans/images/01.png title=第一步 data-thumbnail=/posts/netbeans/images/01.png data-sub-html=\"<h2>第一步</h2>\"><img loading=lazy src=/posts/netbeans/images/01.png alt=第一步 height=417 width=1271></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/02.png title=第二步 data-thumbnail=/posts/netbeans/images/02.png data-sub-html=\"<h2>第二步</h2>\"><img loading=lazy src=/posts/netbeans/images/02.png alt=第二步 height=529 width=1338></a>\n<a class=lightgallery target=_blank href=/posts/netbeans/images/03.png title=第三步 data-thumbnail=/posts/netbeans/images/03.png data-sub-html=\"<h2>第三步</h2>\"><img loading=lazy src=/posts/netbeans/images/03.png alt=第三步 height=515 width=1341></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/netbeans/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/netbeans/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/netbeans/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20NetBeans+IDE+%E5%BC%80%E5%8F%91%E8%AE%BE%E7%BD%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cNetBeans+IDE+%E5%BC%80%E5%8F%91%E8%AE%BE%E7%BD%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/netbeans/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/netbeans/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/netbeans/ data-title=\"NetBeans IDE 开发设置\" data-hashtags=NetBeans,PHP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/netbeans/ data-hashtag=NetBeans><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/netbeans/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/netbeans/ data-title=\"NetBeans IDE 开发设置\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/netbeans/ data-title=\"NetBeans IDE 开发设置\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/netbeans/ class=post-tag title=\"标签 - NetBeans\">NetBeans</a><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dev-rules/ class=post-nav-item rel=prev title=\"Web 开发规则，代码规范\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Web 开发规则，代码规范</a><a href=/posts/sublime-text3/ class=post-nav-item rel=next title=\"Sublime Text3 快捷键大全\">Sublime Text3 快捷键大全<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安裝>安裝</a></li><li><a href=#擴充功能>擴充功能</a><ol><li><a href=#安裝擴充功能>安裝擴充功能</a></li><li><a href=#啟用已安裝的擴充功能>啟用已安裝的擴充功能</a></li><li><a href=#匯入設定>匯入設定</a></li></ol></li><li><a href=#常用設定>常用設定</a><ol><li><a href=#程式碼排版>程式碼排版</a></li><li><a href=#程式碼樣板>程式碼樣板</a></li><li><a href=#前端壓縮>前端壓縮</a></li><li><a href=#快捷鍵>快捷鍵</a></li><li><a href=#遠程開發-ftp>遠程開發 (FTP)</a></li><li><a href=#chrome-with-netneans-connector>Chrome with NetNeans Connector</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89128e9368d37da24f50b69f56d541fe.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89128e9368d37da24f50b69f56d541fe.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/netbeans/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/netbeans/index.md",
    "content": "# NetBeans IDE 开发设置\n\n\n## 安裝\n\n[官方下載點](https://netbeans.org/)\n\n## 擴充功能\n\n### 安裝擴充功能\n\n1. 下載擴充套件包\n   - [官方套件庫](http://plugins.netbeans.org/PluginPortal/)\n   - 或者在 NetBeans IDE 裏面下載插件（方便）\n2. 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\n3. 選擇要安裝的擴充套件包\n\n### 啟用已安裝的擴充功能\n\n1. 開啟 NetBeans→Tools→Plugins→Installed\n2. 選擇要啟用的套件 (\\*.npm)\n3. 點擊 Activate\n\n### 匯入設定\n\n1. 開啟 NetBeans→Tools→Options\n2. 點擊 Import 匯入設定\n3. 選擇要匯入的套件包 (\\*.zip)\n\n## 常用設定\n\n### 程式碼排版\n\n> 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\n\n在 NetBeans 中設置程式碼排版\n\n1. 打開 NetBeans->Tools->Options->Editor->Formatting；\n2. Language 選擇 All Languages，勾選\"Expand Tabs to Spaces\", 用兩個空格鍵代替 Tab 鍵，首行留兩個 Tab 鍵。\n3. 點擊 Apply 或 Ok 完成設置。具體設置及效果如下圖所示：\n\n![Formatting 设置](images/Formatting.png)\n![Javascript](images/Javascript.png)\n![Php](images/Php.png)\n\n### 程式碼樣板\n\n> 程式碼樣板可以幫助你快速書寫程序，不必繁瑣地聲明函數或其他代碼塊，更專注與邏輯的書寫。\n\n在 NetBeans 中設置程式碼樣板\n\n1. 打開 NetBeans→Tools→Options→Editor→Code Templates；\n2. 選擇你所用的語言（這裡以 JavaScript 為例）；\n3. 點擊\"New\"新建屬於你的或修改原有的程式碼樣板（例子僅為演示）；\n4. 在編程中應用它。\n\n![FindTemplate](images/FindTemplate.png)\n![BeforeEdit](images/BeforeEdit.png)\n![OpenInEditor](images/OpenInEditor.png)\n![AfterEdit](images/AfterEdit.png)\n\n### 前端壓縮\n\n下載擴充套件`netbeans minify` 或者 `minifierBeans`\n\n1. 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\n2. 選擇你下載的擴充套件開啟\n3. 開啟 NetBeans→Tools→options\n\n![Example1](images/Example1.png)\n![Example2](images/Example2.png)\n\n### 快捷鍵\n\n| 键位                  | 作用                                                     |\n| :-------------------- | :------------------------------------------------------- |\n| Ctrl+/                | 注释一行（或选中部分）                                   |\n| Ctrl+X                | 剪切一行（或选中部分）                                   |\n| Ctrl+E                | 删除一行（或选中部分）                                   |\n| Shift+Alt+上下方向键  | 移动当前行                                               |\n| Ctrl+Shift+上下方向键 | 复制当前行（该操作并非复制到粘贴板）                     |\n| Shift+Alt+F           | 整理代码                                                 |\n| TAB                   | 代碼自動補全/缩进/選中文字同時缩进                       |\n| Shift+TAB             | 選中文字同時取消缩进                                     |\n| Ctrl+F                | 查找某个字                                               |\n| Ctrl+Shift+F          | 整个项目中查找某个字                                     |\n| Ctrl+H                | 替换某个字                                               |\n| Ctrl+Enter            | 增加空白行，光标不动。                                   |\n| Ctrl+(0~7)            | 打开各种小窗口                                           |\n| Shift+方向键          | 選中文字                                                 |\n| Ctrl+Alt+Space        | 代码输入提示，不习惯的可以设置为 (Alt+/)，超级好用！！！ |\n| Ctrl+Shift+F5         | 调试当前程序                                             |\n| Shift+F6              | 运行当前程序                                             |\n| F6                    | 运行主程序                                               |\n| Alt+Enter             | 显示程式 bug 建议或者警示等                              |\n\n- NetBeans 中常用的快捷鍵 ↑：\n- 三種複製行方法\n\n1. 复制一行：Ctrl + Shift + 上下方向键（该操作并非复制到粘贴板）；\n2. 复制一行：在该行任何地方连续三击选中一样，然后 Ctrl + C 即可复制一行。；\n3. 复制一行（使用宏）: 编辑 - 开始录制宏 (Home,Shift + End,Ctrl + C)-停止录制宏 - 设置宏名称（如 select-entire-line)-设置快捷键（如 Ctrl + Alt + C)；\n\n- 也可自己修改快捷鍵 (Tools→Options→Keympa), 如下圖\n\n{% asset_img quickkey.png quickkey %}\n\n### 遠程開發 (FTP)\n\n> 工作为例\n\n1. 新建项目\n   1. 打开软件，进入新建项目页面（File-New Project），新建 php 项目，选择第一个（PHP-PHP Application）\n   2. 项目名和地址自己选择（注意，选择地址后需在地址最后面加上\"/项目名\"）\n2. FTP 设置\n   1. 点击下一步，进入 FTP 设置，Run As 选择 Remote Web Site(FTP,SFTP)\n   2. Project URL 填写`http://127.0.0.1/training/工号`\n3. Manage 设置\n   1. 点击 Manage, 进入页面。名字自取。Host Name 填写：127.0.0.1\n   2. Encryption 选择 Pure FTP,User Name 和 Password（填写工号/课务系统登录密码）\n   3. Initial Directory 填写\\_training\n   4. 点击 Test Connection 测试是否连接成功\n4. 其他设置\n   1. Upload Directory, 上传目录不填，直接上传至个人根目录\n   2. Upload File 改为保存时上传文件（On Save）\n\n### Chrome with NetNeans Connector\n\n1. 打開 chrome 中的應用程式商店（使用 chrome 瀏覽器點擊下方鏈接即可）  \n   [chrome 應用程式商店](https://chrome.google.com/webstore/category/themes?hl=en-US/)\n2. 在搜索框中輸入 NetNeans Connector 后搜索，然後點擊右邊的加到 Chrome 即可，安裝成功后右上角會顯示 NetBeans 圖標。\n3. 開啟 netbeans 選擇 Run→Set Project Browser→ 選中 Chrome with NetBeans Connector\n4. 選擇 default 下的 Customize → 選擇 Browser → 選擇 Browser 下 Chrome with NetBeans Connector 即可\n\n![第一步](images/01.png)\n![第二步](images/02.png)\n![第三步](images/03.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/netbeans/  \n\n"
  },
  {
    "path": "posts/newline/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>不同系统的换行符的差异 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\n\"><meta name=keywords content='newline'><meta itemprop=name content=\"不同系统的换行符的差异\"><meta itemprop=description content=\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\"><meta itemprop=datePublished content=\"2022-08-07T00:10:30+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"541\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"newline\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/newline/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"不同系统的换行符的差异\"><meta property=\"og:description\" content=\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-07T00:10:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"newline\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"不同系统的换行符的差异\"><meta name=twitter:description content=\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/newline/ title=\"不同系统的换行符的差异 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ohmyzsh-custom/ title=\"自定义 ohmyzsh 主题\"><link rel=next type=text/html href=https://lruihao.cn/posts/qcloudcdn/ title=\"Node.js + GitHub Actions 自动刷新 CDN\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/newline/index.md title=\"不同系统的换行符的差异 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"不同系统的换行符的差异\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/newline\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"newline\",\"wordcount\":541,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/newline\\/\",\"datePublished\":\"2022-08-07T00:10:30+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/newline/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>不同系统的换行符的差异</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>不同系统的换行符的差异</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-07 00:10:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-07>2022-08-07</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"541 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=不同系统的换行符的差异><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#历史>历史</a></li><li><a href=#表示>表示</a></li><li><a href=#问题>问题</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。</p><p>周五下班的时候想在 windows 电脑上跑一下 FixIt 看看有没有什么 bug, 然后就发现了 typyit shortcode 开头多出一行空行，mermaid shortcode 则直接语法报错了。</p><p>看了一下代码明明有 trim <code>\\n</code> 处理，而且 Vercel 打包和 Mac 上运行打包都没问题。debug 了一下才发现 Windows 系统上的换行是 <code>\\r\\n</code>, 而 Mac 系统上的换行是 <code>\\n</code>。于是查了一下不同系统的换行符的差异问题。</p><h2 class=heading-element id=历史><span>1 历史</span>\n<a href=#%e5%8e%86%e5%8f%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>简单来说，回车换行这些说法是从打字机那个时代开始叫的，然后在不同的标准下换行符有不同的表现符号。</p><p>Windows 系统设计遵循了 <code>CR + LF</code> 的约定，而 Unix 系统则遵循了 <code>LF</code> 的约定，之后的 类 Unix (Linux, macOS) 系统也遵循了 <code>LF</code> 的约定。</p><p>当然也有异类，老版的 mac 系统使用 <code>CR</code> 作为换行符。</p><h2 class=heading-element id=表示><span>2 表示</span>\n<a href=#%e8%a1%a8%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>CR</code> 回车：<code>\\r</code></li><li><code>LF</code> 换行：<code>\\n</code></li></ul><div class=table-wrapper><table><thead><tr><th>操作系统</th><th>换行符号</th></tr></thead><tbody><tr><td>Windows</td><td><code>\\r\\n</code></td></tr><tr><td>Unix、Linux、MacOS</td><td><code>\\n</code></td></tr><tr><td>classic Mac OS</td><td><code>\\r</code></td></tr></tbody></table></div><h2 class=heading-element id=问题><span>3 问题</span>\n<a href=#%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>由于这个差异，会导致文本类的文件在跨系统浏览时会产生一些差异，比如说，Mac 的文本文件在 Windows 打开会全部挤在一行等等。</p><p>对于开发人员来说，这很有可能导致某些程序失效，比如正则去除空行等等。</p><p>甚至因此，Linux 系统下提供有两个命令用来进行 Windows 和 Unix 文件的转化：<code>dos2unix</code>和 <code>unix2dos</code>。</p><h2 class=heading-element id=参考><span>4 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://en.wikipedia.org/wiki/Newline target=_blank rel=\"external nofollow noopener noreferrer\">Newline<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/newline/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/newline.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/newline.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%8D%E5%90%8C%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%8D%A2%E8%A1%8C%E7%AC%A6%E7%9A%84%E5%B7%AE%E5%BC%82&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%8D%E5%90%8C%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%8D%A2%E8%A1%8C%E7%AC%A6%E7%9A%84%E5%B7%AE%E5%BC%82%7c%0A%7cURL%7chttps://lruihao.cn/posts/newline/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/newline.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/newline/ data-title=不同系统的换行符的差异 data-hashtags=newline><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/newline/ data-hashtag=newline><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/newline/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/newline/ data-title=不同系统的换行符的差异 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/newline/ data-title=不同系统的换行符的差异><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/newline/ class=post-tag title=\"标签 - newline\">newline</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ohmyzsh-custom/ class=post-nav-item rel=prev title=\"自定义 Ohmyzsh 主题\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>自定义 Ohmyzsh 主题</a><a href=/posts/qcloudcdn/ class=post-nav-item rel=next title=\"Node.js + GitHub Actions 自动刷新 CDN\">Node.js + GitHub Actions 自动刷新 CDN<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#历史>历史</a></li><li><a href=#表示>表示</a></li><li><a href=#问题>问题</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/newline/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/newline/index.md",
    "content": "# 不同系统的换行符的差异\n\n\n换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\n\n<!--more-->\n\n周五下班的时候想在 windows 电脑上跑一下 FixIt 看看有没有什么 bug, 然后就发现了 typyit shortcode 开头多出一行空行，mermaid shortcode 则直接语法报错了。\n\n看了一下代码明明有 trim `\\n` 处理，而且 Vercel 打包和 Mac 上运行打包都没问题。debug 了一下才发现 Windows 系统上的换行是 `\\r\\n`, 而 Mac 系统上的换行是 `\\n`。于是查了一下不同系统的换行符的差异问题。\n\n## 历史\n\n简单来说，回车换行这些说法是从打字机那个时代开始叫的，然后在不同的标准下换行符有不同的表现符号。\n\nWindows 系统设计遵循了 `CR + LF` 的约定，而 Unix 系统则遵循了 `LF` 的约定，之后的 类 Unix (Linux, macOS) 系统也遵循了 `LF` 的约定。\n\n当然也有异类，老版的 mac 系统使用 `CR` 作为换行符。\n\n## 表示\n\n- `CR` 回车：`\\r`\n- `LF` 换行：`\\n`\n\n| 操作系统           | 换行符号 |\n| ------------------ | -------- |\n| Windows            | `\\r\\n`   |\n| Unix、Linux、MacOS | `\\n`     |\n| classic Mac OS     | `\\r`     |\n\n## 问题\n\n由于这个差异，会导致文本类的文件在跨系统浏览时会产生一些差异，比如说，Mac 的文本文件在 Windows 打开会全部挤在一行等等。\n\n对于开发人员来说，这很有可能导致某些程序失效，比如正则去除空行等等。\n\n甚至因此，Linux 系统下提供有两个命令用来进行 Windows 和 Unix 文件的转化：`dos2unix`和 `unix2dos`。\n\n## 参考\n\n- [Newline](https://en.wikipedia.org/wiki/Newline)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/newline/  \n\n"
  },
  {
    "path": "posts/next-pdf/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Next 添加支持 Pdf | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=' 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\n1 iframe(推荐) 1 <iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe> 2 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\n'><meta name=keywords content='Hexo'><meta itemprop=name content=\"next 添加支持 pdf\"><meta itemprop=description content='最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\n1 iframe(推荐) 1 <iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe> 2 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。'><meta itemprop=datePublished content=\"2018-11-09T12:51:48+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"268\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/next-pdf/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"next 添加支持 pdf\"><meta property=\"og:description\" content='最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\n1 iframe(推荐) 1 <iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe> 2 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-09T12:51:48+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"next 添加支持 pdf\"><meta name=twitter:description content='最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\n1 iframe(推荐) 1 <iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe> 2 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/next-pdf/ title=\"next 添加支持 pdf | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/js-device/ title=\"js 判断用户设备类型及平台\"><link rel=next type=text/html href=https://lruihao.cn/posts/caddy-file/ title=caddy-两步搭建超简单云盘><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/next-pdf/index.md title=\"next 添加支持 pdf | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"next 添加支持 pdf\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/next-pdf\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo\",\"wordcount\":268,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/next-pdf\\/\",\"datePublished\":\"2018-11-09T12:51:48+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/next-pdf/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Next 添加支持 Pdf</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Next 添加支持 Pdf</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-09 12:51:48\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-09>2018-11-09</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"268 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Next 添加支持 Pdf\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#iframe推荐>iframe(推荐)</a></li><li><a href=#模板自带>模板自带</a></li><li><a href=#pdf-插件-推荐>pdf 插件 (推荐)</a><ol><li><a href=#安装>安装</a></li><li><a href=#使用>使用</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>最新的 next 主题已经更新了支持 PDF 功能，<del>写法也和链接写法一样</del>，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。</p></blockquote><h2 class=heading-element id=iframe推荐><span>1 iframe(推荐)</span>\n<a href=#iframe%e6%8e%a8%e8%8d%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;iframe</span> <span class=na>src=</span><span class=s>&#34;/posts/next-pdf/1.pdf&#34;</span> <span class=na>style=</span><span class=s>&#34;width: 100%;height: 800px;&#34;</span><span class=nt>&gt;&lt;/iframe&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=模板自带><span>2 模板自带</span>\n<a href=#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>&#39;use strict&#39;;\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>function pdf(args) {\n</span></span></span><span class=line><span class=cl><span class=cm>  return `&lt;div class=&#34;pdf&#34; target=&#34;${args[0]}&#34; height=&#34;${args[1] || &#39;&#39;}&#34;&gt;&lt;/div&gt;`;\n</span></span></span><span class=line><span class=cl><span class=cm>}\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>hexo.extend.tag.register(&#39;pdf&#39;, pdf, {ends: false});\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=pdf-插件-推荐><span>3 pdf 插件 (推荐)</span>\n<a href=#pdf-%e6%8f%92%e4%bb%b6-%e6%8e%a8%e8%8d%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=安装><span>3.1 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install --save hexo-pdf</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=使用><span>3.2 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% pdf url %}</span></span></code></pre></td></tr></table></div></div></div><p>比如本文</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% pdf /posts/next-pdf/1.pdf %}</span></span></code></pre></td></tr></table></div></div></div><iframe src=/posts/next-pdf/1.pdf style=width:100%;height:800px></iframe></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/next-pdf/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/next-pdf/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/next-pdf/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20next+%E6%B7%BB%E5%8A%A0%E6%94%AF%E6%8C%81+pdf&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cnext+%E6%B7%BB%E5%8A%A0%E6%94%AF%E6%8C%81+pdf%7c%0A%7cURL%7chttps://lruihao.cn/posts/next-pdf/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/next-pdf/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/next-pdf/ data-title=\"Next 添加支持 Pdf\" data-hashtags=Hexo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/next-pdf/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/next-pdf/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/next-pdf/ data-title=\"Next 添加支持 Pdf\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/next-pdf/ data-title=\"Next 添加支持 Pdf\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/js-device/ class=post-nav-item rel=prev title=\"Js 判断用户设备类型及平台\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Js 判断用户设备类型及平台</a><a href=/posts/caddy-file/ class=post-nav-item rel=next title=Caddy-两步搭建超简单云盘>Caddy-两步搭建超简单云盘<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#iframe推荐>iframe(推荐)</a></li><li><a href=#模板自带>模板自带</a></li><li><a href=#pdf-插件-推荐>pdf 插件 (推荐)</a><ol><li><a href=#安装>安装</a></li><li><a href=#使用>使用</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/990af5a53b5e9a8d890fd389c6e0cabf.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/990af5a53b5e9a8d890fd389c6e0cabf.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/next-pdf/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/next-pdf/index.md",
    "content": "# Next 添加支持 Pdf\n\n\n> 最新的 next 主题已经更新了支持 PDF 功能，~~写法也和链接写法一样~~，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\n\n## iframe(推荐)\n\n```xml\n<iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe>\n```\n\n## 模板自带\n\n> 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n> 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\n\n```js next\\scripts\\tags\\pdf.swig\n/*\n'use strict';\n\nfunction pdf(args) {\n  return `<div class=\"pdf\" target=\"${args[0]}\" height=\"${args[1] || ''}\"></div>`;\n}\n\nhexo.extend.tag.register('pdf', pdf, {ends: false});\n*/\n```\n\n## pdf 插件 (推荐)\n\n### 安装\n\n```bash\nnpm install --save hexo-pdf\n```\n\n### 使用\n\n```\n{% pdf url %}\n```\n\n比如本文\n\n```\n{% pdf /posts/next-pdf/1.pdf %}\n```\n\n<iframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"></iframe>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/next-pdf/  \n\n"
  },
  {
    "path": "posts/nextplugin/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo 插件及 Next 内置样式集 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用，已删除。\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\n\"><meta name=keywords content='Hexo'><meta itemprop=name content=\"hexo 插件及 next 内置样式集\"><meta itemprop=description content=\"2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用，已删除。\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\"><meta itemprop=datePublished content=\"2018-11-24T16:54:09+08:00\"><meta itemprop=dateModified content=\"2021-10-02T15:27:58+08:00\"><meta itemprop=wordCount content=\"2494\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/nextplugin/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo 插件及 next 内置样式集\"><meta property=\"og:description\" content=\"2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用，已删除。\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-11-24T16:54:09+08:00\"><meta property=\"article:modified_time\" content=\"2021-10-02T15:27:58+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo 插件及 next 内置样式集\"><meta name=twitter:description content=\"2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用，已删除。\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/nextplugin/ title=\"hexo 插件及 next 内置样式集 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/commit-bat/ title=\"通过 bat 批处理文件自动提交博客代码\"><link rel=next type=text/html href=https://lruihao.cn/posts/inversion-1/ title=英语语法--部分倒装><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/nextplugin/index.md title=\"hexo 插件及 next 内置样式集 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"hexo 插件及 next 内置样式集\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/nextplugin\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo\",\"wordcount\":2494,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/nextplugin\\/\",\"datePublished\":\"2018-11-24T16:54:09+08:00\",\"dateModified\":\"2021-10-02T15:27:58+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/nextplugin/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo 插件及 Next 内置样式集</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hexo 插件及 Next 内置样式集</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-11-24 16:54:09\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-11-24>2018-11-24</time></span>&nbsp;<span title=\"更新于 2021-10-02 15:27:58\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2021-10-02>2021-10-02</time></span>&nbsp;<span title=\"2494 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hexo 插件及 Next 内置样式集\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#hexo-插件>hexo 插件</a><ol><li><a href=#hexo-lazyload-image>hexo-lazyload-image</a></li><li><a href=#hexo-ruby-marks>hexo-ruby-marks</a></li><li><a href=#hexo-pwa>hexo-pwa</a></li><li><a href=#hexo-tag-dplayer>hexo-tag-dplayer</a></li><li><a href=#hexo-tag-aplayer>hexo-tag-aplayer</a></li><li><a href=#hexo-pdf>hexo-pdf</a></li><li><a href=#hexo-filter-flowchart流程图>hexo-filter-flowchart（流程图）</a></li><li><a href=#hexo-spoiler>hexo-spoiler</a></li></ol></li><li><a href=#宅音乐侧栏播放器插件>宅音乐侧栏播放器插件</a></li><li><a href=#caniuse>caniuse</a><ol><li><a href=#使用>使用</a></li><li><a href=#栗子>栗子</a></li></ol></li><li><a href=#include-raw>Include Raw</a></li><li><a href=#button>button</a></li><li><a href=#mermaid>Mermaid</a></li><li><a href=#video>video</a><ol><li><a href=#usage>Usage</a></li><li><a href=#examples>Examples</a></li></ol></li><li><a href=#tab-选项卡>tab 选项卡</a></li><li><a href=#note-便签>note 便签</a><ol><li><a href=#default>default</a></li><li><a href=#primary>primary</a></li><li><a href=#success>success</a></li><li><a href=#info>info</a></li><li><a href=#warning>warning</a></li><li><a href=#danger>danger</a></li><li><a href=#不填>不填</a></li><li><a href=#danger-no-icon>danger no-icon</a></li></ol></li><li><a href=#引用文本居中>引用（文本居中）</a></li><li><a href=#font-awesome-图标>Font Awesome 图标</a><ol><li><a href=#1国内推荐-cdn>1、国内推荐 CDN</a></li><li><a href=#2海外推荐-cdn>2、海外推荐 CDN</a></li></ol></li><li><a href=#代码块等>代码块等</a></li><li><a href=#todo-list>Todo list</a></li><li><a href=#label>Label</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2021-10-02，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>2021/10/2 更新<br>博客已迁移至 Hugo, 插件演示不适用，已删除。<br>让文章写的好看又简洁又好用的插件！<a href=https://hexo.io/zh-cn/docs/tag-plugins.html target=_blank rel=\"external nofollow noopener noreferrer\">hexo 完整的标签列表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://theme-next.org/docs/tag-plugins/ target=_blank rel=\"external nofollow noopener noreferrer\">next 插件列表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=hexo-插件><span>1 hexo 插件</span>\n<a href=#hexo-%e6%8f%92%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=hexo-lazyload-image><span>1.1 <a href=https://github.com/Troy-Yang/hexo-lazyload-image target=_blank rel=\"external nofollow noopener noreferrer\">hexo-lazyload-image<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#hexo-lazyload-image class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-lazyload-image --save</span></span></code></pre></td></tr></table></div></div></div><p>First add configuration in <code>_config.yml</code> from your hexo project.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>lazyload:\n</span></span><span class=line><span class=cl>  enable: true\n</span></span><span class=line><span class=cl>  onlypost: false\n</span></span><span class=line><span class=cl>  loadingImg: # eg ./images/loading.gif</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=hexo-ruby-marks><span>1.2 hexo-ruby-marks</span>\n<a href=#hexo-ruby-marks class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>不支持<code>ruby</code>新标签的浏览器将显示<code>rp</code>中的内容。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;ruby&gt;</span>博採眾長<span class=nt>&lt;rp&gt;</span>（<span class=nt>&lt;/rp&gt;</span> <span class=nt>&lt;rt&gt;</span>lruihao.cn<span class=nt>&lt;/rt&gt;&lt;rp&gt;</span>）<span class=nt>&lt;/rp&gt;&lt;/ruby&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p><ruby>博採眾長<rp>（</rp> <rt>lruihao.cn</rt><rp>）</rp></ruby></p><p>插件使用</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm i hexo-ruby-marks</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% ruby _**base**_|_**top text**_ %}</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=hexo-pwa><span>1.3 <a href=https://github.com/lavas-project/hexo-pwa target=_blank rel=\"external nofollow noopener noreferrer\">hexo-pwa<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#hexo-pwa class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>npm install --save hexo-pwa</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>You can configure this plugin in <code>_config.yml</code>.（配置完即可使用不许单独设置<code>manifest.json</code>文件及配置，插件生成）</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=n>pwa</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=n>manifest</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>path</span><span class=p>:</span> <span class=o>/</span><span class=n>manifest</span><span class=o>.</span><span class=n>json</span>\n</span></span><span class=line><span class=cl>    <span class=n>body</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>name</span><span class=p>:</span> <span class=n>hexo</span>\n</span></span><span class=line><span class=cl>      <span class=n>short_name</span><span class=p>:</span> <span class=n>hexo</span>\n</span></span><span class=line><span class=cl>      <span class=n>icons</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=o>-</span> <span class=n>src</span><span class=p>:</span> <span class=o>/</span><span class=n>images</span><span class=o>/</span><span class=n>android</span><span class=o>-</span><span class=n>chrome</span><span class=o>-</span><span class=mi>192</span><span class=n>x192</span><span class=o>.</span><span class=n>png</span>\n</span></span><span class=line><span class=cl>          <span class=n>sizes</span><span class=p>:</span> <span class=mi>192</span><span class=n>x192</span>\n</span></span><span class=line><span class=cl>          <span class=n>type</span><span class=p>:</span> <span class=n>image</span><span class=o>/</span><span class=n>png</span>\n</span></span><span class=line><span class=cl>        <span class=o>-</span> <span class=n>src</span><span class=p>:</span> <span class=o>/</span><span class=n>images</span><span class=o>/</span><span class=n>android</span><span class=o>-</span><span class=n>chrome</span><span class=o>-</span><span class=mi>512</span><span class=n>x512</span><span class=o>.</span><span class=n>png</span>\n</span></span><span class=line><span class=cl>          <span class=n>sizes</span><span class=p>:</span> <span class=mi>512</span><span class=n>x512</span>\n</span></span><span class=line><span class=cl>          <span class=n>type</span><span class=p>:</span> <span class=n>image</span><span class=o>/</span><span class=n>png</span>\n</span></span><span class=line><span class=cl>      <span class=n>start_url</span><span class=p>:</span> <span class=o>/</span><span class=n>index</span><span class=o>.</span><span class=n>html</span>\n</span></span><span class=line><span class=cl>      <span class=n>theme_color</span><span class=p>:</span> <span class=s1>&#39;#ffffff&#39;</span>\n</span></span><span class=line><span class=cl>      <span class=n>background_color</span><span class=p>:</span> <span class=s1>&#39;#ffffff&#39;</span>\n</span></span><span class=line><span class=cl>      <span class=n>display</span><span class=p>:</span> <span class=n>standalone</span>\n</span></span><span class=line><span class=cl>  <span class=n>serviceWorker</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>path</span><span class=p>:</span> <span class=o>/</span><span class=n>sw</span><span class=o>.</span><span class=n>js</span>\n</span></span><span class=line><span class=cl>    <span class=nb>preload</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>urls</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=o>-</span> <span class=o>/</span>\n</span></span><span class=line><span class=cl>      <span class=n>posts</span><span class=p>:</span> <span class=mi>5</span>\n</span></span><span class=line><span class=cl>    <span class=n>opts</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>networkTimeoutSeconds</span><span class=p>:</span> <span class=mi>5</span>\n</span></span><span class=line><span class=cl>    <span class=n>routes</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=o>-</span> <span class=n>pattern</span><span class=p>:</span> <span class=o>!!</span><span class=n>js</span><span class=o>/</span><span class=n>regexp</span> <span class=o>/</span><span class=n>hm</span><span class=o>.</span><span class=n>baidu</span><span class=o>.</span><span class=n>com</span><span class=o>/</span>\n</span></span><span class=line><span class=cl>        <span class=n>strategy</span><span class=p>:</span> <span class=n>networkOnly</span>\n</span></span><span class=line><span class=cl>      <span class=o>-</span> <span class=n>pattern</span><span class=p>:</span> <span class=o>!!</span><span class=n>js</span><span class=o>/</span><span class=n>regexp</span> <span class=o>/.*</span>\\<span class=o>.</span><span class=p>(</span><span class=n>js</span><span class=o>|</span><span class=n>css</span><span class=o>|</span><span class=n>jpg</span><span class=o>|</span><span class=n>jpeg</span><span class=o>|</span><span class=n>png</span><span class=o>|</span><span class=n>gif</span><span class=p>)</span><span class=o>$/</span>\n</span></span><span class=line><span class=cl>        <span class=n>strategy</span><span class=p>:</span> <span class=n>cacheFirst</span>\n</span></span><span class=line><span class=cl>      <span class=o>-</span> <span class=n>pattern</span><span class=p>:</span> <span class=o>!!</span><span class=n>js</span><span class=o>/</span><span class=n>regexp</span> <span class=o>/</span>\\<span class=o>//</span>\n</span></span><span class=line><span class=cl>        <span class=n>strategy</span><span class=p>:</span> <span class=n>networkFirst</span>\n</span></span><span class=line><span class=cl>  <span class=n>priority</span><span class=p>:</span> <span class=mi>5</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=hexo-tag-dplayer><span>1.4 hexo-tag-dplayer</span>\n<a href=#hexo-tag-dplayer class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://github.com/MoePlayer/hexo-tag-dplayer target=_blank rel=\"external nofollow noopener noreferrer\">hexo-tag-dplayer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-tag-dplayer --save</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% dplayer key=value ... %}</span></span></code></pre></td></tr></table></div></div></div><p>key can be</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>dplayer options:\n</span></span><span class=line><span class=cl>    &#39;autoplay&#39;, &#39;loop&#39;, &#39;screenshot&#39;, &#39;hotkey&#39;, &#39;mutex&#39;, &#39;dmunlimited&#39; : bool options, use &#34;yes&#34; &#34;y&#34; &#34;true&#34; &#34;1&#34; &#34;on&#34; or just without value to enable\n</span></span><span class=line><span class=cl>    &#39;preload&#39;, &#39;theme&#39;, &#39;lang&#39;, &#39;logo&#39;, &#39;url&#39;, &#39;pic&#39;, &#39;thumbnails&#39;, &#39;vidtype&#39;, &#39;suburl&#39;, &#39;subtype&#39;, &#39;subbottom&#39;, &#39;subcolor&#39;, &#39;subcolor&#39;, &#39;id&#39;, &#39;api&#39;, &#39;token&#39;, &#39;addition&#39;, &#39;dmuser&#39; : string arguments\n</span></span><span class=line><span class=cl>    &#39;volume&#39;, &#39;maximum&#39; : number arguments\n</span></span><span class=line><span class=cl>container options:\n</span></span><span class=line><span class=cl>    &#39;width&#39;, &#39;height&#39; : string, used in container element style\n</span></span><span class=line><span class=cl>other:\n</span></span><span class=line><span class=cl>    &#39;code&#39; : value of this key will be append to script tag</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% dplayer &#34;url=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4&#34; &#34;addition=https://dplayer.daoapp.io/bilibili?aid=4157142&#34; &#34;api=https://api.prprpr.me/dplayer/&#34; &#34;pic=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.jpg&#34; &#34;id=9E2E3368B56CDBB4&#34; &#34;loop=yes&#34; &#34;theme=#FADFA3&#34; &#34;autoplay=false&#34; &#34;token=tokendemo&#34; %}</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=hexo-tag-aplayer><span>1.5 hexo-tag-aplayer</span>\n<a href=#hexo-tag-aplayer class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://github.com/MoePlayer/hexo-tag-aplayer target=_blank rel=\"external nofollow noopener noreferrer\">more<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install --save hexo-tag-aplayer</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %}</span></span></code></pre></td></tr></table></div></div></div><p>标签参数</p><ul><li><code>title</code> : 曲目标题</li><li><code>author</code>: 曲目作者</li><li><code>url</code>: 音乐文件 URL 地址</li><li><code>picture_url</code>: （可选）音乐对应的图片地址</li><li><code>narrow</code>: （可选）播放器袖珍风格</li><li><code>autoplay</code>: （可选）自动播放，移动端浏览器暂时不支持此功能</li><li><code>width:xxx</code>: （可选）播放器宽度（默认：100%)</li><li><code>lrc:xxx</code>: （可选）歌词文件 URL 地址</li></ul><p>当开启 Hexo 的 <a href=https://hexo.io/zh-cn/docs/asset-folders.html#%E6%96%87%E7%AB%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E5%A4%B9 target=_blank rel=\"external nofollow noopener noreferrer\">文章资源文件夹<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 功能时，可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中，然后直接引用：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% aplayer &#34;Caffeine&#34; &#34;Jeff Williams&#34; &#34;caffeine.mp3&#34; &#34;picture.jpg&#34; &#34;lrc:caffeine.txt&#34; %}\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>{% aplayer &#34;你离开了南京，从此没人和我说话&#34; &#34;李志&#34; &#34;https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3&#34; &#34;https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300&#34; %}</span></span></code></pre></td></tr></table></div></div></div><meting-js url=https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3 name=李志 artist=你离开了南京，从此没人和我说话 cover=\"https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\" theme=#448aff></meting-js><h3 class=heading-element id=hexo-pdf><span>1.6 hexo-pdf</span>\n<a href=#hexo-pdf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://lruihao.cn/posts/next-pdf/ target=_blank rel=\"external nofollow noopener noreferrer\">pdf 传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=hexo-filter-flowchart流程图><span>1.7 hexo-filter-flowchart（流程图）</span>\n<a href=#hexo-filter-flowchart%e6%b5%81%e7%a8%8b%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://flowchart.js.org target=_blank rel=\"external nofollow noopener noreferrer\">语法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install --save hexo-filter-flowchart</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>```%flow #去掉%号\n</span></span><span class=line><span class=cl>st=&gt;start: Start|past:&gt;https://lruihao.cn[blank]\n</span></span><span class=line><span class=cl>e=&gt;end: End:&gt;https://www.lruihao.cn[blank]\n</span></span><span class=line><span class=cl>op1=&gt;operation: My Operation|past\n</span></span><span class=line><span class=cl>op2=&gt;operation: Stuff|current\n</span></span><span class=line><span class=cl>sub1=&gt;subroutine: My Subroutine|invalid\n</span></span><span class=line><span class=cl>cond=&gt;condition: Yes\n</span></span><span class=line><span class=cl>or No?|approved:&gt;/hexo/nextplugin.html\n</span></span><span class=line><span class=cl>c2=&gt;condition: Good idea|rejected\n</span></span><span class=line><span class=cl>io=&gt;inputoutput: catch something...|request\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>st-&gt;op1(right)-&gt;cond\n</span></span><span class=line><span class=cl>cond(yes, right)-&gt;c2\n</span></span><span class=line><span class=cl>cond(no)-&gt;sub1(left)-&gt;op1\n</span></span><span class=line><span class=cl>c2(yes)-&gt;io-&gt;e\n</span></span><span class=line><span class=cl>c2(no)-&gt;op2-&gt;e\n</span></span><span class=line><span class=cl>```</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=hexo-spoiler><span>1.8 hexo-spoiler</span>\n<a href=#hexo-spoiler class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-spoiler --save</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>If hexo can&rsquo;t detect this plugin automatically, you need to modify the <code>plugins</code> section of <code>[path_to_your_site]/_config.yml</code> manually, like:</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>plugins</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span>- <span class=l>hexo-spoiler</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>{% spoiler [text] %}</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>It will pixelate your text, and click to reveal. Click again to hide your text again.\nBut you need to add <code>&lt;br></code> manually if you want line breaks after/before it.</p></blockquote><p>When you writes:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>{% spoiler text %}\n</span></span><span class=line><span class=cl>{% spoiler ~~text~~ %}\n</span></span><span class=line><span class=cl>{% spoiler *text* %}\n</span></span><span class=line><span class=cl>{% spoiler **text** %}&lt;br&gt;\n</span></span><span class=line><span class=cl>{% spoiler **hello welcome to 博採眾長！** %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=宅音乐侧栏播放器插件><span>2 宅音乐侧栏播放器插件</span>\n<a href=#%e5%ae%85%e9%9f%b3%e4%b9%90%e4%be%a7%e6%a0%8f%e6%92%ad%e6%94%be%e5%99%a8%e6%8f%92%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://player.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\"><del>体验</del><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <a href=https://github.com/Lruihao/zhai-music target=_blank rel=\"external nofollow noopener noreferrer\">源码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>目前在 next 中可能引起部分 css 冲突，建议在 next 中使用在单个页面中。<br>依赖于 jQuery，一行 js 可以引入播放器插件。</p></blockquote><h2 class=heading-element id=caniuse><span>3 caniuse</span>\n<a href=#caniuse class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=使用><span>3.1 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% caniuse feature @ periods %}\n</span></span><span class=line><span class=cl>&lt;!-- Tag Alias --&gt;\n</span></span><span class=line><span class=cl>{% can feature @ periods %}\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>feature : Search for the feature you want on https://caniuse.com, then click on the hash sign to the left of the search result heading and you will get the unique name of this feature.\n</span></span><span class=line><span class=cl>periods : Select the browser versions to display. Supported values: past_1, past_2, past_3, past_4, past_5, current, future_3, future_2, future_1. If this value is empty, the default value &#39;current&#39; will be used.</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=栗子><span>3.2 栗子</span>\n<a href=#%e6%a0%97%e5%ad%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Caniuse without periods</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% caniuse fetch %}</span></span></code></pre></td></tr></table></div></div></div><p>Caniuse with current period</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% can sharedarraybuffer @ current %}</span></span></code></pre></td></tr></table></div></div></div><p>Caniuse with future periods</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% caniuse loading-lazy-attr @ future_3,future_2,future_1 %}</span></span></code></pre></td></tr></table></div></div></div><p>Caniuse with past periods</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% caniuse link-rel-modulepreload @ past_1,past_2,past_3,past_4,past_5 %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=include-raw><span>4 Include Raw</span>\n<a href=#include-raw class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>This tag include any raw content into your posts. Path is relative to your site source directory.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% include_raw &#39;_data/path/to/file.html&#39; %}</span></span></code></pre></td></tr></table></div></div></div><p>Let&rsquo;s create include-raw.html file in <code>_data</code> directory under site root directory with following content:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>Any &lt;strong&gt;raw content&lt;/strong&gt; may be included with this tag.</span></span></code></pre></td></tr></table></div></div></div><p>Then in any post we can use this content with include_raw tag:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% include_raw &#39;_data/path/to/include-raw.html&#39; %}</span></span></code></pre></td></tr></table></div></div></div><p>Any <strong>raw content</strong> may be included with this tag.</p><h2 class=heading-element id=button><span>5 button</span>\n<a href=#button class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://theme-next.org/docs/tag-plugins/button target=_blank rel=\"external nofollow noopener noreferrer\">more info<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% button url, text, icon [class], [title] %}\n</span></span><span class=line><span class=cl>&lt;!-- Tag Alias --&gt;\n</span></span><span class=line><span class=cl>{% btn url, text, icon [class], [title] %}\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>url     : Absolute or relative path to URL.\n</span></span><span class=line><span class=cl>text    : Button text. Required if no icon specified.\n</span></span><span class=line><span class=cl>icon    : FontAwesome icon name (without &#39;fa-&#39; at the begining). Required if no text specified.\n</span></span><span class=line><span class=cl>[class] : FontAwesome class(es): fa-fw | fa-lg | fa-2x | fa-3x | fa-4x | fa-5x\n</span></span><span class=line><span class=cl>          Optional parameter.\n</span></span><span class=line><span class=cl>[title] : Tooltip at mouseover.\n</span></span><span class=line><span class=cl>          Optional parameter.</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% btn #, Text &amp; Large Icon &amp; Title, home fa-fw fa-lg, Title %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=mermaid><span>6 Mermaid</span>\n<a href=#mermaid class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://theme-next.org/docs/tag-plugins/mermaid target=_blank rel=\"external nofollow noopener noreferrer\">more info<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>example</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% mermaid gitGraph: %}\n</span></span><span class=line><span class=cl>options\n</span></span><span class=line><span class=cl>{\n</span></span><span class=line><span class=cl>    &#34;nodeSpacing&#34;: 150,\n</span></span><span class=line><span class=cl>    &#34;nodeRadius&#34;: 10\n</span></span><span class=line><span class=cl>}\n</span></span><span class=line><span class=cl>end\n</span></span><span class=line><span class=cl>commit\n</span></span><span class=line><span class=cl>branch newbranch\n</span></span><span class=line><span class=cl>checkout newbranch\n</span></span><span class=line><span class=cl>commit\n</span></span><span class=line><span class=cl>checkout master\n</span></span><span class=line><span class=cl>commit\n</span></span><span class=line><span class=cl>merge newbranch\n</span></span><span class=line><span class=cl>{% endmermaid %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=video><span>7 video</span>\n<a href=#video class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=usage><span>7.1 Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% video url %}</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=examples><span>7.2 Examples</span>\n<a href=#examples class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% video https://example.com/sample.mp4 %}\n</span></span><span class=line><span class=cl>{% video /path/to/your/video.mp4 %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=tab-选项卡><span>8 tab 选项卡</span>\n<a href=#tab-%e9%80%89%e9%a1%b9%e5%8d%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>&ldquo;tab\"为选项卡的名称，可以自定义，数字是几表示从第几个选项卡开始。非必须，若数值为 -1 则隐藏选项卡内容。\n<a href=https://theme-next.org/docs/tag-plugins/tabs target=_blank rel=\"external nofollow noopener noreferrer\">查看更多<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% tabs Unique name, [index] %}\n</span></span><span class=line><span class=cl>&lt;!-- tab [Tab caption] [<span class=ni>@icon</span>] --&gt;\n</span></span><span class=line><span class=cl>Any content (support inline tags too).\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>{% endtabs %}\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Unique name   : Unique name of tabs block tag without comma.\n</span></span><span class=line><span class=cl>                Will be used in <span class=ni>#id</span>&#39;s as prefix for each tab with their index numbers.\n</span></span><span class=line><span class=cl>                If there are whitespaces in name, for generate <span class=ni>#id</span> all whitespaces will replaced by dashes.\n</span></span><span class=line><span class=cl>                Only for current url of post/page must be unique!\n</span></span><span class=line><span class=cl>[index]       : Index number of active tab.\n</span></span><span class=line><span class=cl>                If not specified, first tab (1) will be selected.\n</span></span><span class=line><span class=cl>                If index is -1, no tab will be selected. It&#39;s will be something like spoiler.\n</span></span><span class=line><span class=cl>                Optional parameter.\n</span></span><span class=line><span class=cl>[Tab caption] : Caption of current tab.\n</span></span><span class=line><span class=cl>                If not caption specified, unique name with tab index suffix will be used as caption of tab.\n</span></span><span class=line><span class=cl>                If not caption specified, but specified icon, caption will empty.\n</span></span><span class=line><span class=cl>                Optional parameter.\n</span></span><span class=line><span class=cl>[<span class=ni>@icon</span>]       : FontAwesome icon name (without &#39;fa-&#39; at the begining).\n</span></span><span class=line><span class=cl>                Can be specified with or without space; e.g. &#39;Tab caption <span class=ni>@icon</span>&#39; similar to &#39;Tab caption<span class=ni>@icon</span>&#39;.\n</span></span><span class=line><span class=cl>                Optional parameter.</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% tabs tab,2 %}\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl>this is tab1\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl>this is tab2\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl>this is tab3\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>{% endtabs %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>数值为 -1</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% tabs 选项，-1 %}\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**选项 1**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**选项 2**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**选项 3**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>{% endtabs %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>名字写在选项里面</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% tabs Fourth unique name %}\n</span></span><span class=line><span class=cl>&lt;!-- tab Solution 1 --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**This is Tab 1.**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab Solution 2 --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**This is Tab 2.**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- tab Solution 3 --&gt;\n</span></span><span class=line><span class=cl><span class=gs>**This is Tab 3.**</span>\n</span></span><span class=line><span class=cl>&lt;!-- endtab --&gt;\n</span></span><span class=line><span class=cl>{% endtabs %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=note-便签><span>9 note 便签</span>\n<a href=#note-%e4%be%bf%e7%ad%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>主题配置文件搜索 note, 可设置风格和图标是否显示。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl><span class=gh># Note tag (bs-callout).\n</span></span></span><span class=line><span class=cl>note:\n</span></span><span class=line><span class=cl>  # Note tag style values:\n</span></span><span class=line><span class=cl>  #  - simple    bs-callout old alert style. Default.\n</span></span><span class=line><span class=cl>  #  - modern    bs-callout new (v2-v3) alert style.\n</span></span><span class=line><span class=cl>  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.\n</span></span><span class=line><span class=cl>  #  - disabled  disable all CSS styles import of note tag.\n</span></span><span class=line><span class=cl>  style: flat\n</span></span><span class=line><span class=cl>  icons: true\n</span></span><span class=line><span class=cl>  border_radius: 15\n</span></span><span class=line><span class=cl>  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).\n</span></span><span class=line><span class=cl>  # Offset also applied to label tag variables. This option can work with disabled note tag.\n</span></span><span class=line><span class=cl>  light_bg_offset: 0</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>写法</p><p>{% note default %}</p><h3 class=heading-element id=default><span>9.1 default</span>\n<a href=#default class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>类型还有以下几种</p><p>{% endnote %}\n{% note primary %}</p><h3 class=heading-element id=primary><span>9.2 primary</span>\n<a href=#primary class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note success %}</p><h3 class=heading-element id=success><span>9.3 success</span>\n<a href=#success class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note info %}</p><h3 class=heading-element id=info><span>9.4 info</span>\n<a href=#info class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note warning %}</p><h3 class=heading-element id=warning><span>9.5 warning</span>\n<a href=#warning class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note danger %}</p><h3 class=heading-element id=danger><span>9.6 danger</span>\n<a href=#danger class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note %}</p><h3 class=heading-element id=不填><span>9.7 不填</span>\n<a href=#%e4%b8%8d%e5%a1%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}\n{% note danger no-icon %}</p><h3 class=heading-element id=danger-no-icon><span>9.8 danger no-icon</span>\n<a href=#danger-no-icon class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>内容\n{% endnote %}</p><h2 class=heading-element id=引用文本居中><span>10 引用（文本居中）</span>\n<a href=#%e5%bc%95%e7%94%a8%e6%96%87%e6%9c%ac%e5%b1%85%e4%b8%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% cq %}\n</span></span><span class=line><span class=cl><span class=gs>**there are test words**</span>\n</span></span><span class=line><span class=cl>{% endcq %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=font-awesome-图标><span>11 <a href=https://www.runoob.com/font-awesome/fontawesome-tutorial.html target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome 图标<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#font-awesome-%e5%9b%be%e6%a0%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Font Awesome 是一套绝佳的图标字体库和 CSS 框架。\nFont Awesome 字体为你提供可缩放矢量图标，它可以被定制大小、颜色、阴影以及任何可以用 CSS 的样式。\n要使用 Font Awesome 图标，请在 HTML 页面的 部分中添加以下行：</p></blockquote><h3 class=heading-element id=1国内推荐-cdn><span>11.1 1、国内推荐 CDN</span>\n<a href=#1%e5%9b%bd%e5%86%85%e6%8e%a8%e8%8d%90-cdn class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css&#34;&gt;</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=2海外推荐-cdn><span>11.2 2、海外推荐 CDN</span>\n<a href=#2%e6%b5%b7%e5%a4%96%e6%8e%a8%e8%8d%90-cdn class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css&#34;&gt;</span></span></code></pre></td></tr></table></div></div></div><p>next 已经引用了，可以直接用，比如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car&#34;</span> <span class=na>style</span><span class=o>=</span><span class=s>&#34;font-size:48px;&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car&#34;</span> <span class=na>style</span><span class=o>=</span><span class=s>&#34;font-size:60px;color:red;&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car fa-lg&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car fa-2x&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car fa-3x&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car fa-4x&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-car fa-5x&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p><i class=\"fa fa-car\"></i> <i class=\"fa fa-car\" style=font-size:48px></i> <i class=\"fa fa-car\" style=font-size:60px;color:red></i> <i class=\"fa fa-car fa-lg\"></i> <i class=\"fa fa-car fa-2x\"></i> <i class=\"fa fa-car fa-3x\"></i> <i class=\"fa fa-car fa-4x\"></i> <i class=\"fa fa-car fa-5x\"></i></p><p>动态图标</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-spinner fa-spin&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-circle-o-notch fa-spin&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-refresh fa-spin&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-cog fa-spin&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>i</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;fa fa-spinner fa-pulse&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>i</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p><i class=\"fa fa-spinner fa-spin\"></i> <i class=\"fa fa-circle-o-notch fa-spin\"></i> <i class=\"fa fa-refresh fa-spin\"></i> <i class=\"fa fa-cog fa-spin\"></i> <i class=\"fa fa-spinner fa-pulse\"></i></p><h2 class=heading-element id=代码块等><span>12 代码块等</span>\n<a href=#%e4%bb%a3%e7%a0%81%e5%9d%97%e7%ad%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=p>[</span><span class=n>language</span><span class=p>]</span> <span class=p>[</span><span class=n>title</span><span class=p>]</span> <span class=p>[</span><span class=n>url</span><span class=p>]</span> <span class=p>[</span><span class=n>link</span> <span class=n>text</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>code</span> <span class=n>snippet</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl><span class=gd>-  printf(&#34;Hello World!&#34;);\n</span></span></span><span class=line><span class=cl><span class=gi>+  printf(&#34;Hello_World!&#34;);\n</span></span></span></code></pre></td></tr></table></div></div></div><p><strong>iframe</strong>\n在文章中插入 iframe。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% iframe url [width] [height] %}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=todo-list><span>13 Todo list</span>\n<a href=#todo-list class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><i class=\"fa fa-check-square\"></i> 已完成</li><li><i class=\"fa fa-square\"></i> 未完成</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=err>&lt;ul&gt;\n</span></span></span><span class=line><span class=cl><span class=err>&lt;li&gt;&lt;i class=&#34;fa fa-check-square&#34;&gt;&lt;/i&gt; 已完成&lt;/li&gt;\n</span></span></span><span class=line><span class=cl><span class=err>&lt;li&gt;&lt;i class=&#34;fa fa-square&#34;&gt;&lt;/i&gt; 未完成&lt;/li&gt;\n</span></span></span><span class=line><span class=cl><span class=err>&lt;/ul&gt;\n</span></span></span><span class=line><span class=cl><span class=err>\n</span></span></span><span class=line><span class=cl><span class=err>&lt;!--或者--&gt;\n</span></span></span><span class=line><span class=cl><span class=err>\n</span></span></span><span class=line><span class=cl><span class=err>- &lt;i class=&#34;fa fa-check-square&#34;&gt;&lt;/i&gt; 已完成\n</span></span></span><span class=line><span class=cl><span class=err>- &lt;i class=&#34;fa fa-square&#34;&gt;&lt;/i&gt; 未完成</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=label><span>14 Label</span>\n<a href=#label class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>主题配置文件中打开</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl><span class=gh># Label tag.\n</span></span></span><span class=line><span class=cl>label: true</span></span></code></pre></td></tr></table></div></div></div><p><code>@</code>前面的是 label 的名字，后面的是要显示的文字</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>{% label default<span class=ni>@default</span> %}\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>primary success info warning danger</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=其他><span>15 <a href=http://www.mykernel.cn/my-hexo-next-1.html target=_blank rel=\"external nofollow noopener noreferrer\">其他<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>包括小色块、左侧色条、右侧色条、上方色条、数字色块（需要自定义样式）</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-10-02 15:27:58\">更新于 2021-10-02&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/nextplugin/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/nextplugin.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/nextplugin.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20hexo+%E6%8F%92%E4%BB%B6%E5%8F%8A+next+%E5%86%85%E7%BD%AE%E6%A0%B7%E5%BC%8F%E9%9B%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7chexo+%E6%8F%92%E4%BB%B6%E5%8F%8A+next+%E5%86%85%E7%BD%AE%E6%A0%B7%E5%BC%8F%E9%9B%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/nextplugin/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/nextplugin.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/nextplugin/ data-title=\"Hexo 插件及 Next 内置样式集\" data-hashtags=Hexo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/nextplugin/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/nextplugin/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/nextplugin/ data-title=\"Hexo 插件及 Next 内置样式集\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/nextplugin/ data-title=\"Hexo 插件及 Next 内置样式集\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/commit-bat/ class=post-nav-item rel=prev title=\"通过 Bat 批处理文件自动提交博客代码\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>通过 Bat 批处理文件自动提交博客代码</a><a href=/posts/inversion-1/ class=post-nav-item rel=next title=英语语法--部分倒装>英语语法--部分倒装<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#hexo-插件>hexo 插件</a><ol><li><a href=#hexo-lazyload-image>hexo-lazyload-image</a></li><li><a href=#hexo-ruby-marks>hexo-ruby-marks</a></li><li><a href=#hexo-pwa>hexo-pwa</a></li><li><a href=#hexo-tag-dplayer>hexo-tag-dplayer</a></li><li><a href=#hexo-tag-aplayer>hexo-tag-aplayer</a></li><li><a href=#hexo-pdf>hexo-pdf</a></li><li><a href=#hexo-filter-flowchart流程图>hexo-filter-flowchart（流程图）</a></li><li><a href=#hexo-spoiler>hexo-spoiler</a></li></ol></li><li><a href=#宅音乐侧栏播放器插件>宅音乐侧栏播放器插件</a></li><li><a href=#caniuse>caniuse</a><ol><li><a href=#使用>使用</a></li><li><a href=#栗子>栗子</a></li></ol></li><li><a href=#include-raw>Include Raw</a></li><li><a href=#button>button</a></li><li><a href=#mermaid>Mermaid</a></li><li><a href=#video>video</a><ol><li><a href=#usage>Usage</a></li><li><a href=#examples>Examples</a></li></ol></li><li><a href=#tab-选项卡>tab 选项卡</a></li><li><a href=#note-便签>note 便签</a><ol><li><a href=#default>default</a></li><li><a href=#primary>primary</a></li><li><a href=#success>success</a></li><li><a href=#info>info</a></li><li><a href=#warning>warning</a></li><li><a href=#danger>danger</a></li><li><a href=#不填>不填</a></li><li><a href=#danger-no-icon>danger no-icon</a></li></ol></li><li><a href=#引用文本居中>引用（文本居中）</a></li><li><a href=#font-awesome-图标>Font Awesome 图标</a><ol><li><a href=#1国内推荐-cdn>1、国内推荐 CDN</a></li><li><a href=#2海外推荐-cdn>2、海外推荐 CDN</a></li></ol></li><li><a href=#代码块等>代码块等</a></li><li><a href=#todo-list>Todo list</a></li><li><a href=#label>Label</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css></noscript><link rel=stylesheet href=/lib/aplayer/dark.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.js defer></script><script src=https://unpkg.com/meting@2.0.1/dist/Meting.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f517e60c538984f781281242bdbf8607.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f517e60c538984f781281242bdbf8607.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/nextplugin/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/nextplugin/index.md",
    "content": "# Hexo 插件及 Next 内置样式集\n\n\n> 2021/10/2 更新  \n> 博客已迁移至 Hugo, 插件演示不适用，已删除。  \n> 让文章写的好看又简洁又好用的插件！[hexo 完整的标签列表](https://hexo.io/zh-cn/docs/tag-plugins.html)，[next 插件列表](https://theme-next.org/docs/tag-plugins/)\n\n<!--more-->\n\n## hexo 插件\n\n### [hexo-lazyload-image](https://github.com/Troy-Yang/hexo-lazyload-image)\n\n```bash 安装\nnpm install hexo-lazyload-image --save\n```\n\nFirst add configuration in `_config.yml` from your hexo project.\n\n```xml 使用\nlazyload:\n  enable: true\n  onlypost: false\n  loadingImg: # eg ./images/loading.gif\n```\n\n### hexo-ruby-marks\n\n> 不支持`ruby`新标签的浏览器将显示`rp`中的内容。\n\n```xml HTML5 写法\n<ruby>博採眾長<rp>（</rp> <rt>lruihao.cn</rt><rp>）</rp></ruby>\n```\n<!-- markdownlint-disable MD033 -->\n\n<ruby>博採眾長<rp>（</rp> <rt>lruihao.cn</rt><rp>）</rp></ruby>\n\n插件使用\n\n```bash 安装\nnpm i hexo-ruby-marks\n```\n\n```xml 使用\n{% ruby _**base**_|_**top text**_ %}\n```\n\n### [hexo-pwa](https://github.com/lavas-project/hexo-pwa)\n\n```ball 安装\nnpm install --save hexo-pwa\n```\n\n> You can configure this plugin in `_config.yml`.（配置完即可使用不许单独设置`manifest.json`文件及配置，插件生成）\n\n```配置\npwa:\n  manifest:\n    path: /manifest.json\n    body:\n      name: hexo\n      short_name: hexo\n      icons:\n        - src: /images/android-chrome-192x192.png\n          sizes: 192x192\n          type: image/png\n        - src: /images/android-chrome-512x512.png\n          sizes: 512x512\n          type: image/png\n      start_url: /index.html\n      theme_color: '#ffffff'\n      background_color: '#ffffff'\n      display: standalone\n  serviceWorker:\n    path: /sw.js\n    preload:\n      urls:\n        - /\n      posts: 5\n    opts:\n      networkTimeoutSeconds: 5\n    routes:\n      - pattern: !!js/regexp /hm.baidu.com/\n        strategy: networkOnly\n      - pattern: !!js/regexp /.*\\.(js|css|jpg|jpeg|png|gif)$/\n        strategy: cacheFirst\n      - pattern: !!js/regexp /\\//\n        strategy: networkFirst\n  priority: 5\n```\n\n### hexo-tag-dplayer\n\n[hexo-tag-dplayer](https://github.com/MoePlayer/hexo-tag-dplayer)\n\n```bash install\nnpm install hexo-tag-dplayer --save\n```\n\n```xml Usage\n{% dplayer key=value ... %}\n```\n\nkey can be\n\n```plain\ndplayer options:\n    'autoplay', 'loop', 'screenshot', 'hotkey', 'mutex', 'dmunlimited' : bool options, use \"yes\" \"y\" \"true\" \"1\" \"on\" or just without value to enable\n    'preload', 'theme', 'lang', 'logo', 'url', 'pic', 'thumbnails', 'vidtype', 'suburl', 'subtype', 'subbottom', 'subcolor', 'subcolor', 'id', 'api', 'token', 'addition', 'dmuser' : string arguments\n    'volume', 'maximum' : number arguments\ncontainer options:\n    'width', 'height' : string, used in container element style\nother:\n    'code' : value of this key will be append to script tag\n```\n\n```xml example\n{% dplayer \"url=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4\" \"addition=https://dplayer.daoapp.io/bilibili?aid=4157142\" \"api=https://api.prprpr.me/dplayer/\" \"pic=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.jpg\" \"id=9E2E3368B56CDBB4\" \"loop=yes\" \"theme=#FADFA3\" \"autoplay=false\" \"token=tokendemo\" %}\n```\n\n### hexo-tag-aplayer\n\n[more](https://github.com/MoePlayer/hexo-tag-aplayer)\n\n```bash 安装\nnpm install --save hexo-tag-aplayer\n```\n\n```xml 使用\n{% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %}\n```\n\n标签参数\n\n- `title` : 曲目标题\n- `author`: 曲目作者\n- `url`: 音乐文件 URL 地址\n- `picture_url`: （可选）音乐对应的图片地址\n- `narrow`: （可选）播放器袖珍风格\n- `autoplay`: （可选）自动播放，移动端浏览器暂时不支持此功能\n- `width:xxx`: （可选）播放器宽度（默认：100%)\n- `lrc:xxx`: （可选）歌词文件 URL 地址\n\n当开启 Hexo 的 [文章资源文件夹](https://hexo.io/zh-cn/docs/asset-folders.html#%E6%96%87%E7%AB%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E5%A4%B9) 功能时，可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中，然后直接引用：\n\n```md\n{% aplayer \"Caffeine\" \"Jeff Williams\" \"caffeine.mp3\" \"picture.jpg\" \"lrc:caffeine.txt\" %}\n\n{% aplayer \"你离开了南京，从此没人和我说话\" \"李志\" \"https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3\" \"https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\" %}\n```\n\n<!-- markdownlint-disable MD034 -->\n\n{{< music url=\"https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3\" name=\"李志\" artist=\"你离开了南京，从此没人和我说话\" cover=\"https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\" >}}\n\n### hexo-pdf\n\n[pdf 传送门](https://lruihao.cn/posts/next-pdf/)\n\n### hexo-filter-flowchart（流程图）\n\n[语法](https://flowchart.js.org)\n\n```bash install\nnpm install --save hexo-filter-flowchart\n```\n\n````xml Usage\n```%flow #去掉%号\nst=>start: Start|past:>https://lruihao.cn[blank]\ne=>end: End:>https://www.lruihao.cn[blank]\nop1=>operation: My Operation|past\nop2=>operation: Stuff|current\nsub1=>subroutine: My Subroutine|invalid\ncond=>condition: Yes\nor No?|approved:>/hexo/nextplugin.html\nc2=>condition: Good idea|rejected\nio=>inputoutput: catch something...|request\n\nst->op1(right)->cond\ncond(yes, right)->c2\ncond(no)->sub1(left)->op1\nc2(yes)->io->e\nc2(no)->op2->e\n```\n````\n\n### hexo-spoiler\n\n```bash Install\nnpm install hexo-spoiler --save\n```\n\n> If hexo can't detect this plugin automatically, you need to modify the `plugins` section of `[path_to_your_site]/_config.yml` manually, like:\n\n```yaml\nplugins:\n  - hexo-spoiler\n```\n\n```plain Syntax\n{% spoiler [text] %}\n```\n\n> It will pixelate your text, and click to reveal. Click again to hide your text again.\n> But you need to add `<br>` manually if you want line breaks after/before it.\n\nWhen you writes:\n\n```plain Preview\n{% spoiler text %}\n{% spoiler ~~text~~ %}\n{% spoiler *text* %}\n{% spoiler **text** %}<br>\n{% spoiler **hello welcome to 博採眾長！** %}\n```\n\n## 宅音乐侧栏播放器插件\n\n[~~体验~~](https://player.lruihao.cn) [源码](https://github.com/Lruihao/zhai-music)\n\n> 目前在 next 中可能引起部分 css 冲突，建议在 next 中使用在单个页面中。  \n> 依赖于 jQuery，一行 js 可以引入播放器插件。\n\n## caniuse\n\n### 使用\n\n```md\n{% caniuse feature @ periods %}\n<!-- Tag Alias -->\n{% can feature @ periods %}\n\nfeature : Search for the feature you want on https://caniuse.com, then click on the hash sign to the left of the search result heading and you will get the unique name of this feature.\nperiods : Select the browser versions to display. Supported values: past_1, past_2, past_3, past_4, past_5, current, future_3, future_2, future_1. If this value is empty, the default value 'current' will be used.\n\n```\n\n### 栗子\n\nCaniuse without periods\n\n```md\n{% caniuse fetch %}\n```\n\nCaniuse with current period\n\n```md\n{% can sharedarraybuffer @ current %}\n```\n\nCaniuse with future periods\n\n```md\n{% caniuse loading-lazy-attr @ future_3,future_2,future_1 %}\n```\n\nCaniuse with past periods\n\n```md\n{% caniuse link-rel-modulepreload @ past_1,past_2,past_3,past_4,past_5 %}\n```\n\n## Include Raw\n\nThis tag include any raw content into your posts. Path is relative to your site source directory.\n\n```md\n{% include_raw '_data/path/to/file.html' %}\n```\n\nLet's create include-raw.html file in `_data` directory under site root directory with following content:\n\n```md\nAny <strong>raw content</strong> may be included with this tag.\n```\n\nThen in any post we can use this content with include_raw tag:\n\n```md\n{% include_raw '_data/path/to/include-raw.html' %}\n```\n\nAny **raw content** may be included with this tag.\n\n## button\n\n[more info](https://theme-next.org/docs/tag-plugins/button)\n\n```md\n{% button url, text, icon [class], [title] %}\n<!-- Tag Alias -->\n{% btn url, text, icon [class], [title] %}\n\nurl     : Absolute or relative path to URL.\ntext    : Button text. Required if no icon specified.\nicon    : FontAwesome icon name (without 'fa-' at the begining). Required if no text specified.\n[class] : FontAwesome class(es): fa-fw | fa-lg | fa-2x | fa-3x | fa-4x | fa-5x\n          Optional parameter.\n[title] : Tooltip at mouseover.\n          Optional parameter.\n```\n\n```md\n{% btn #, Text & Large Icon & Title, home fa-fw fa-lg, Title %}\n```\n\n## Mermaid\n\n[more info](https://theme-next.org/docs/tag-plugins/mermaid)\n\nexample\n\n```md\n{% mermaid gitGraph: %}\noptions\n{\n    \"nodeSpacing\": 150,\n    \"nodeRadius\": 10\n}\nend\ncommit\nbranch newbranch\ncheckout newbranch\ncommit\ncheckout master\ncommit\nmerge newbranch\n{% endmermaid %}\n```\n\n## video\n\n### Usage\n\n```xml video.js\n{% video url %}\n```\n\n### Examples\n\n```md\n{% video https://example.com/sample.mp4 %}\n{% video /path/to/your/video.mp4 %}\n```\n\n## tab 选项卡\n\n> \"tab\"为选项卡的名称，可以自定义，数字是几表示从第几个选项卡开始。非必须，若数值为 -1 则隐藏选项卡内容。\n> [查看更多](https://theme-next.org/docs/tag-plugins/tabs)\n\n```md\n{% tabs Unique name, [index] %}\n<!-- tab [Tab caption] [@icon] -->\nAny content (support inline tags too).\n<!-- endtab -->\n{% endtabs %}\n\nUnique name   : Unique name of tabs block tag without comma.\n                Will be used in #id's as prefix for each tab with their index numbers.\n                If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes.\n                Only for current url of post/page must be unique!\n[index]       : Index number of active tab.\n                If not specified, first tab (1) will be selected.\n                If index is -1, no tab will be selected. It's will be something like spoiler.\n                Optional parameter.\n[Tab caption] : Caption of current tab.\n                If not caption specified, unique name with tab index suffix will be used as caption of tab.\n                If not caption specified, but specified icon, caption will empty.\n                Optional parameter.\n[@icon]       : FontAwesome icon name (without 'fa-' at the begining).\n                Can be specified with or without space; e.g. 'Tab caption @icon' similar to 'Tab caption@icon'.\n                Optional parameter.\n```\n\n```md\n{% tabs tab,2 %}\n<!-- tab -->\nthis is tab1\n<!-- endtab -->\n<!-- tab -->\nthis is tab2\n<!-- endtab -->\n<!-- tab -->\nthis is tab3\n<!-- endtab -->\n{% endtabs %}\n```\n\n> 数值为 -1\n\n```md\n{% tabs 选项，-1 %}\n<!-- tab -->\n**选项 1**\n<!-- endtab -->\n<!-- tab -->\n**选项 2**\n<!-- endtab -->\n<!-- tab -->\n**选项 3**\n<!-- endtab -->\n{% endtabs %}\n```\n\n> 名字写在选项里面\n\n```md\n{% tabs Fourth unique name %}\n<!-- tab Solution 1 -->\n**This is Tab 1.**\n<!-- endtab -->\n<!-- tab Solution 2 -->\n**This is Tab 2.**\n<!-- endtab -->\n<!-- tab Solution 3 -->\n**This is Tab 3.**\n<!-- endtab -->\n{% endtabs %}\n```\n\n## note 便签\n\n> 主题配置文件搜索 note, 可设置风格和图标是否显示。\n\n```md\n# Note tag (bs-callout).\nnote:\n  # Note tag style values:\n  #  - simple    bs-callout old alert style. Default.\n  #  - modern    bs-callout new (v2-v3) alert style.\n  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.\n  #  - disabled  disable all CSS styles import of note tag.\n  style: flat\n  icons: true\n  border_radius: 15\n  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).\n  # Offset also applied to label tag variables. This option can work with disabled note tag.\n  light_bg_offset: 0\n```\n\n写法\n\n{% note default %}\n\n### default\n\n类型还有以下几种\n\n{% endnote %}\n{% note primary %}\n\n### primary\n\n内容\n{% endnote %}\n{% note success %}\n\n### success\n\n内容\n{% endnote %}\n{% note info %}\n\n### info\n\n内容\n{% endnote %}\n{% note warning %}\n\n### warning\n\n内容\n{% endnote %}\n{% note danger %}\n\n### danger\n\n内容\n{% endnote %}\n{% note %}\n\n### 不填\n\n内容\n{% endnote %}\n{% note danger no-icon %}\n\n### danger no-icon\n\n内容\n{% endnote %}\n\n## 引用（文本居中）\n\n```md\n{% cq %}\n**there are test words**\n{% endcq %}\n\n```\n\n## [Font Awesome 图标](https://www.runoob.com/font-awesome/fontawesome-tutorial.html)\n\n> Font Awesome 是一套绝佳的图标字体库和 CSS 框架。\n> Font Awesome 字体为你提供可缩放矢量图标，它可以被定制大小、颜色、阴影以及任何可以用 CSS 的样式。\n> 要使用 Font Awesome 图标，请在 HTML 页面的 部分中添加以下行：\n\n### 1、国内推荐 CDN\n\n```md\n<link rel=\"stylesheet\" href=\"https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css\">\n```\n\n### 2、海外推荐 CDN\n\n```md\n<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\">\n```\n\nnext 已经引用了，可以直接用，比如：\n\n```html\n<i class=\"fa fa-car\"></i>\n<i class=\"fa fa-car\" style=\"font-size:48px;\"></i>\n<i class=\"fa fa-car\" style=\"font-size:60px;color:red;\"></i>\n<i class=\"fa fa-car fa-lg\"></i>\n<i class=\"fa fa-car fa-2x\"></i>\n<i class=\"fa fa-car fa-3x\"></i>\n<i class=\"fa fa-car fa-4x\"></i>\n<i class=\"fa fa-car fa-5x\"></i>\n```\n\n<i class=\"fa fa-car\"></i> <i class=\"fa fa-car\" style=\"font-size:48px;\"></i> <i class=\"fa fa-car\" style=\"font-size:60px;color:red;\"></i> <i class=\"fa fa-car fa-lg\"></i> <i class=\"fa fa-car fa-2x\"></i> <i class=\"fa fa-car fa-3x\"></i> <i class=\"fa fa-car fa-4x\"></i> <i class=\"fa fa-car fa-5x\"></i>\n\n动态图标\n\n```html\n<i class=\"fa fa-spinner fa-spin\"></i>\n<i class=\"fa fa-circle-o-notch fa-spin\"></i>\n<i class=\"fa fa-refresh fa-spin\"></i>\n<i class=\"fa fa-cog fa-spin\"></i>\n<i class=\"fa fa-spinner fa-pulse\"></i>\n```\n\n<i class=\"fa fa-spinner fa-spin\"></i> <i class=\"fa fa-circle-o-notch fa-spin\"></i> <i class=\"fa fa-refresh fa-spin\"></i> <i class=\"fa fa-cog fa-spin\"></i> <i class=\"fa fa-spinner fa-pulse\"></i>\n\n## 代码块等\n\n```cpp 三个点后面的参数 https://lruihao.cn lruihao.cn\n[language] [title] [url] [link text]\n\ncode snippet\n\n```\n\n```diff diff\n-  printf(\"Hello World!\");\n+  printf(\"Hello_World!\");\n```\n\n**iframe**\n在文章中插入 iframe。\n\n```default iframe\n{% iframe url [width] [height] %}\n```\n\n## Todo list\n\n- <i class=\"fa fa-check-square\"></i> 已完成\n- <i class=\"fa fa-square\"></i> 未完成\n\n```http Todo list\n<ul>\n<li><i class=\"fa fa-check-square\"></i> 已完成</li>\n<li><i class=\"fa fa-square\"></i> 未完成</li>\n</ul>\n\n<!--或者-->\n\n- <i class=\"fa fa-check-square\"></i> 已完成\n- <i class=\"fa fa-square\"></i> 未完成\n```\n\n## Label\n\n主题配置文件中打开\n\n```md\n# Label tag.\nlabel: true\n```\n\n`@`前面的是 label 的名字，后面的是要显示的文字\n\n```md\n{% label default@default %}\n\nprimary success info warning danger\n```\n\n## [其他](http://www.mykernel.cn/my-hexo-next-1.html)\n\n> 包括小色块、左侧色条、右侧色条、上方色条、数字色块（需要自定义样式）\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/nextplugin/  \n\n"
  },
  {
    "path": "posts/ngrok/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>本地搭建网站服务器并穿透内网 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\n\"><meta name=keywords content='ngrok,linux,宝塔面板,server,ubuntu'><meta itemprop=name content=\"本地搭建网站服务器并穿透内网\"><meta itemprop=description content=\"一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\"><meta itemprop=datePublished content=\"2019-04-03T19:29:43+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"524\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"ngrok,linux,宝塔面板,server,ubuntu\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ngrok/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"本地搭建网站服务器并穿透内网\"><meta property=\"og:description\" content=\"一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-03T19:29:43+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"ngrok\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"宝塔面板\"><meta property=\"article:tag\" content=\"server\"><meta property=\"article:tag\" content=\"ubuntu\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"本地搭建网站服务器并穿透内网\"><meta name=twitter:description content=\"一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ngrok/ title=\"本地搭建网站服务器并穿透内网 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/ms-html-css/ title=\"前端面试题 - HTML+CSS\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu1009/ title=\"HDU 1009 FatMouse' Trade（贪心）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ngrok/index.md title=\"本地搭建网站服务器并穿透内网 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"本地搭建网站服务器并穿透内网\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ngrok\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ngrok, linux, 宝塔面板, server, ubuntu\",\"wordcount\":524,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ngrok\\/\",\"datePublished\":\"2019-04-03T19:29:43+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ngrok/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>本地搭建网站服务器并穿透内网</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>本地搭建网站服务器并穿透内网</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-03 19:29:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-03>2019-04-03</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"524 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=本地搭建网站服务器并穿透内网><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#搭建环境>搭建环境</a></li><li><a href=#ngrok-穿透>ngrok 穿透</a></li><li><a href=#搭建网站>搭建网站</a></li><li><a href=#注意>注意</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。</p></blockquote><h2 class=heading-element id=搭建环境><span>1 搭建环境</span>\n<a href=#%e6%90%ad%e5%bb%ba%e7%8e%af%e5%a2%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我的电脑是<code>ubuntu+windows</code>双系统的，所以我先在 ubuntu 上面装了一个宝塔面板，方便通过 web 管理电脑，宝塔安装好后安装相关的环境<code>mysql,php,nginx</code>等。我们现在只能通过本地 ip<code>127.0.0.1:8888</code>访问面板。</p><h2 class=heading-element id=ngrok-穿透><span>2 ngrok 穿透</span>\n<a href=#ngrok-%e7%a9%bf%e9%80%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>去 ngrok 注册登录，购买隧道（有免费的），然后绑定端口，绑定域名，这里我们拿端口<code>8888</code>和域名<code>test.lruihao.cn</code>做实验，也就是宝塔面板的端口，这样我们就可以透过域名远程访问本地服务器，这样是不是开始有云服务器的感觉了。然后宝塔面板设置也绑定好域名<code>test.lruihao.cn</code>,dns 服务商那里做好相应的解析。<br>然后在 ngrok 那里下载 sunny 客户端文件，我们是 ubuntu 选择<code>linux-64bits</code>版本。解压后在 ubuntu 打开终端进入 sunny 文件目录，权限给到 755，运行命令<code>./sunny clientid xxxxxxx</code> 后面的你的隧道订单的 id。</p><p>现在就可以通过互联网访问我的 ubuntu 服务器了。</p><h2 class=heading-element id=搭建网站><span>3 搭建网站</span>\n<a href=#%e6%90%ad%e5%bb%ba%e7%bd%91%e7%ab%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>前面两步搞定，搭建网站就没问题了。<br>我们只要把网站的端口按第二步的在 ngrok 设置好就可以穿透了。</p><h2 class=heading-element id=注意><span>4 注意</span>\n<a href=#%e6%b3%a8%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>访问本地网站的必要条件是你的电脑得是开机状态而且有网络。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ngrok/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ngrok.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/ngrok.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E7%BD%91%E7%AB%99%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B9%B6%E7%A9%BF%E9%80%8F%E5%86%85%E7%BD%91&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E7%BD%91%E7%AB%99%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%B9%B6%E7%A9%BF%E9%80%8F%E5%86%85%E7%BD%91%7c%0A%7cURL%7chttps://lruihao.cn/posts/ngrok/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ngrok.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ngrok/ data-title=本地搭建网站服务器并穿透内网 data-hashtags=ngrok,linux,宝塔面板,server,ubuntu><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ngrok/ data-hashtag=ngrok><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ngrok/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ngrok/ data-title=本地搭建网站服务器并穿透内网 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ngrok/ data-title=本地搭建网站服务器并穿透内网><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ngrok/ class=post-tag title=\"标签 - ngrok\">ngrok</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=post-tag title=\"标签 - 宝塔面板\">宝塔面板</a><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a><a href=/tags/ubuntu/ class=post-tag title=\"标签 - ubuntu\">ubuntu</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/ms-html-css/ class=post-nav-item rel=prev title=\"前端面试题 - HTML+CSS\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>前端面试题 - HTML+CSS</a><a href=/posts/hdu1009/ class=post-nav-item rel=next title=\"HDU 1009 FatMouse' Trade（贪心）\">HDU 1009 FatMouse' Trade（贪心）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#搭建环境>搭建环境</a></li><li><a href=#ngrok-穿透>ngrok 穿透</a></li><li><a href=#搭建网站>搭建网站</a></li><li><a href=#注意>注意</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/fd69d6c6f08c01154641d96aacb5e893.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/fd69d6c6f08c01154641d96aacb5e893.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ngrok/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ngrok/index.md",
    "content": "# 本地搭建网站服务器并穿透内网\n\n\n> 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\n\n<!--more-->\n\n## 搭建环境\n\n我的电脑是`ubuntu+windows`双系统的，所以我先在 ubuntu 上面装了一个宝塔面板，方便通过 web 管理电脑，宝塔安装好后安装相关的环境`mysql,php,nginx`等。我们现在只能通过本地 ip`127.0.0.1:8888`访问面板。\n\n## ngrok 穿透\n\n去 ngrok 注册登录，购买隧道（有免费的），然后绑定端口，绑定域名，这里我们拿端口`8888`和域名`test.lruihao.cn`做实验，也就是宝塔面板的端口，这样我们就可以透过域名远程访问本地服务器，这样是不是开始有云服务器的感觉了。然后宝塔面板设置也绑定好域名`test.lruihao.cn`,dns 服务商那里做好相应的解析。  \n然后在 ngrok 那里下载 sunny 客户端文件，我们是 ubuntu 选择`linux-64bits`版本。解压后在 ubuntu 打开终端进入 sunny 文件目录，权限给到 755，运行命令`./sunny clientid xxxxxxx` 后面的你的隧道订单的 id。\n\n现在就可以通过互联网访问我的 ubuntu 服务器了。\n\n## 搭建网站\n\n前面两步搞定，搭建网站就没问题了。  \n我们只要把网站的端口按第二步的在 ngrok 设置好就可以穿透了。\n\n## 注意\n\n访问本地网站的必要条件是你的电脑得是开机状态而且有网络。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ngrok/  \n\n"
  },
  {
    "path": "posts/night/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>网页夜间效果 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\n\"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"网页夜间效果\"><meta itemprop=description content=\"这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\"><meta itemprop=datePublished content=\"2018-09-27T13:13:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"390\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/night/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"网页夜间效果\"><meta property=\"og:description\" content=\"这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-09-27T13:13:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"网页夜间效果\"><meta name=twitter:description content=\"这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/night/ title=\"网页夜间效果 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/crash-cheat/ title=网页离开时改变标题“崩溃欺骗”><link rel=next type=text/html href=https://lruihao.cn/posts/data/ title=计算机数据><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/night/index.md title=\"网页夜间效果 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"网页夜间效果\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/night\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":390,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/night\\/\",\"datePublished\":\"2018-09-27T13:13:31+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/night/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>网页夜间效果</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>网页夜间效果</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2018-09-27 13:13:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-09-27>2018-09-27</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"390 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=网页夜间效果><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#css-部分>css 部分</a></li><li><a href=#js-部分>js 部分</a></li><li><a href=#html-部分>html 部分</a></li><li><a href=#使用>使用</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。<code>css+js</code></p></blockquote><p>如何给 Web 页面增加夜间模式功能？其实所谓的夜间模式就是在页面上增加一个透明的遮罩层，但是遮罩层会挡住页面元素，解决方法是 添加 DIV，给 DIV 的 outline 属性一个很大的 outline-width 值，用 outline 的边框作为遮罩，这样既能正常点击页面元素，又能达到夜间模式的效果。</p><h3 class=heading-element id=css-部分><span>0.1 css 部分</span>\n<a href=#css-%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=o>&lt;</span><span class=nt>style</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nc>cover</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>position</span><span class=p>:</span><span class=kc>fixed</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>top</span><span class=p>:</span> <span class=mi>0</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>left</span><span class=p>:</span> <span class=mi>0</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>outline</span><span class=p>:</span><span class=mi>5000</span><span class=kt>px</span> <span class=kc>solid</span> <span class=nb>rgba</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=mi>0</span><span class=p>);</span><span class=err>//初始亮度</span>\n</span></span><span class=line><span class=cl>    <span class=k>z-index</span><span class=p>:</span> <span class=mi>99999</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;/</span><span class=nt>style</span><span class=o>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=js-部分><span>0.2 js 部分</span>\n<a href=#js-%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>brightness</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>//显示遮罩\n</span></span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>cover</span><span class=p>(</span><span class=nx>brightness</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=k>typeof</span><span class=p>(</span><span class=nx>div</span><span class=p>)</span> <span class=o>==</span> <span class=s1>&#39;undefined&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>div</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;div&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nx>div</span><span class=p>.</span><span class=nx>setAttribute</span><span class=p>(</span><span class=s1>&#39;style&#39;</span><span class=p>,</span> <span class=s1>&#39;position:fixed;top:0;left:0;outline:5000px solid;z-index:99999;&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>div</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>display</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nx>div</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>outlineColor</span> <span class=o>=</span> <span class=s1>&#39;rgba(0,0,0,&#39;</span> <span class=o>+</span> <span class=nx>brightness</span> <span class=o>+</span> <span class=s1>&#39;)&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=c1>//事件监听\n</span></span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;keydown&#39;</span><span class=p>,</span> <span class=kd>function</span><span class=p>(</span><span class=nx>e</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>e</span><span class=p>.</span><span class=nx>altKey</span> <span class=o>&amp;&amp;</span> <span class=nx>e</span><span class=p>.</span><span class=nx>keyCode</span> <span class=o>==</span> <span class=mi>90</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>cover</span><span class=p>(</span><span class=nx>brightness</span> <span class=o>=</span> <span class=mf>0.3</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>e</span><span class=p>.</span><span class=nx>altKey</span> <span class=o>&amp;&amp;</span> <span class=nx>e</span><span class=p>.</span><span class=nx>keyCode</span> <span class=o>==</span> <span class=mi>88</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>cover</span><span class=p>(</span><span class=nx>brightness</span> <span class=o>=</span> <span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>e</span><span class=p>.</span><span class=nx>altKey</span> <span class=o>&amp;&amp;</span> <span class=nx>e</span><span class=p>.</span><span class=nx>keyCode</span> <span class=o>==</span> <span class=mi>38</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>brightness</span> <span class=o>-</span> <span class=mf>0.05</span> <span class=o>&gt;</span> <span class=mf>0.05</span><span class=p>)</span> <span class=nx>cover</span><span class=p>(</span><span class=nx>brightness</span> <span class=o>-=</span> <span class=mf>0.05</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>e</span><span class=p>.</span><span class=nx>altKey</span> <span class=o>&amp;&amp;</span> <span class=nx>e</span><span class=p>.</span><span class=nx>keyCode</span> <span class=o>==</span> <span class=mi>40</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=p>(</span><span class=nx>brightness</span> <span class=o>+</span> <span class=mf>0.05</span> <span class=o>&lt;</span> <span class=mf>0.95</span><span class=p>)</span> <span class=nx>cover</span><span class=p>(</span><span class=nx>brightness</span> <span class=o>+=</span> <span class=mf>0.05</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>},</span> <span class=kc>false</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=html-部分><span>0.3 html 部分</span>\n<a href=#html-%e9%83%a8%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;div class=&#34;cover&#34;&gt;&lt;/div&gt;</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=使用><span>0.4 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>Alt+Z: 打开夜间模式</li><li>Alt+X: 关闭</li><li>Alt+↑: 增加亮度</li><li>Alt+↓: 降低亮度</li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/night/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/night.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/night.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%BD%91%E9%A1%B5%E5%A4%9C%E9%97%B4%E6%95%88%E6%9E%9C&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%BD%91%E9%A1%B5%E5%A4%9C%E9%97%B4%E6%95%88%E6%9E%9C%7c%0A%7cURL%7chttps://lruihao.cn/posts/night/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/night.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/night/ data-title=网页夜间效果 data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/night/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/night/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/night/ data-title=网页夜间效果 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/night/ data-title=网页夜间效果><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/crash-cheat/ class=post-nav-item rel=prev title=网页离开时改变标题“崩溃欺骗”><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>网页离开时改变标题“崩溃欺骗”</a><a href=/posts/data/ class=post-nav-item rel=next title=计算机数据>计算机数据<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#css-部分>css 部分</a></li><li><a href=#js-部分>js 部分</a></li><li><a href=#html-部分>html 部分</a></li><li><a href=#使用>使用</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/de4d95097fc8ff3a4e564ca1b1e5f106.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/de4d95097fc8ff3a4e564ca1b1e5f106.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/night/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/night/index.md",
    "content": "# 网页夜间效果\n\n\n> 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。`css+js`\n\n<!--more-->\n\n如何给 Web 页面增加夜间模式功能？其实所谓的夜间模式就是在页面上增加一个透明的遮罩层，但是遮罩层会挡住页面元素，解决方法是 添加 DIV，给 DIV 的 outline 属性一个很大的 outline-width 值，用 outline 的边框作为遮罩，这样既能正常点击页面元素，又能达到夜间模式的效果。\n\n### css 部分\n\n```css\n<style>\n.cover{\n    position:fixed;\n    top: 0px;\n    left: 0px;\n    outline:5000px solid rgba(0, 0, 0, 0);//初始亮度\n    z-index: 99999;\n}\n</style>\n```\n\n### js 部分\n\n```js\n<script>\nvar brightness;\n//显示遮罩\nfunction cover(brightness) {\n    if (typeof(div) == 'undefined') {\n        div = document.createElement('div');\n        div.setAttribute('style', 'position:fixed;top:0;left:0;outline:5000px solid;z-index:99999;');\n        document.body.appendChild(div);\n    } else {\n        div.style.display = '';\n    }\n    div.style.outlineColor = 'rgba(0,0,0,' + brightness + ')';\n}\n//事件监听\nwindow.addEventListener('keydown', function(e) {\n    if (e.altKey && e.keyCode == 90) {\n        cover(brightness = 0.3);\n    }\n    if (e.altKey && e.keyCode == 88) {\n        cover(brightness = 0);\n    }\n    if (e.altKey && e.keyCode == 38) {\n        if (brightness - 0.05 > 0.05) cover(brightness -= 0.05);\n    }\n    if (e.altKey && e.keyCode == 40) {\n        if (brightness + 0.05 < 0.95) cover(brightness += 0.05);\n    }\n}, false);\n</script>\n```\n\n### html 部分\n\n```\n<div class=\"cover\"></div>\n```\n\n### 使用\n\n1. Alt+Z: 打开夜间模式\n2. Alt+X: 关闭\n3. Alt+↑: 增加亮度\n4. Alt+↓: 降低亮度\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/night/  \n\n"
  },
  {
    "path": "posts/nowcoder157a/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>石子阵列（组合数学） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"链接：https://www.nowcoder.com/acm/contest/157/A\n来源：牛客网\n1 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\n\"><meta name=keywords content='数学,组合数学,ACM,Nowcoder,C++'><meta itemprop=name content=\"石子阵列（组合数学）\"><meta itemprop=description content=\"链接：https://www.nowcoder.com/acm/contest/157/A\n来源：牛客网\n1 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\"><meta itemprop=datePublished content=\"2018-08-10T22:11:00+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"281\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数学,组合数学,acm,Nowcoder,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/nowcoder157a/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"石子阵列（组合数学）\"><meta property=\"og:description\" content=\"链接：https://www.nowcoder.com/acm/contest/157/A\n来源：牛客网\n1 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-10T22:11:00+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"组合数学\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"石子阵列（组合数学）\"><meta name=twitter:description content=\"链接：https://www.nowcoder.com/acm/contest/157/A\n来源：牛客网\n1 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/nowcoder157a/ title=\"石子阵列（组合数学） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/codeforces476a/ title=\"Dreamoon and Stairs\"><link rel=next type=text/html href=https://lruihao.cn/posts/termux/ title=\"在 Android 上搭建 hexo 博客\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/nowcoder157a/index.md title=\"石子阵列（组合数学） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"石子阵列（组合数学）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/nowcoder157a\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数学, 组合数学, ACM, Nowcoder, C\\u002b\\u002b\",\"wordcount\":281,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/nowcoder157a\\/\",\"datePublished\":\"2018-08-10T22:11:00+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/nowcoder157a/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>石子阵列（组合数学）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>石子阵列（组合数学）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-10 22:11:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-10>2018-08-10</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"281 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=石子阵列（组合数学）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a></li><li><a href=#示例-2>示例 2</a></li><li><a href=#示例-3>示例 3</a></li><li><a href=#备注>备注</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>链接：<a href=https://www.nowcoder.com/acm/contest/157/A target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/157/A<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p><h2 class=heading-element id=题目描述><span>1 题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。</p><h2 class=heading-element id=输入描述><span>2 输入描述</span>\n<a href=#%e8%be%93%e5%85%a5%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>第一行有两个正整数 n，m。</p><h2 class=heading-element id=输出描述><span>3 输出描述</span>\n<a href=#%e8%be%93%e5%87%ba%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>第一行一个整数，表示在 m 种石子中取出 n 个的排列方案数模 1000000007 后的值。</p><h2 class=heading-element id=示例-1><span>4 示例 1</span>\n<a href=#%e7%a4%ba%e4%be%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入</p><pre><code>1 1\n</code></pre><p>输出</p><pre><code>1\n</code></pre><h2 class=heading-element id=示例-2><span>5 示例 2</span>\n<a href=#%e7%a4%ba%e4%be%8b-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入</p><pre><code>2 3\n</code></pre><p>输出</p><pre><code>6\n</code></pre><h2 class=heading-element id=示例-3><span>6 示例 3</span>\n<a href=#%e7%a4%ba%e4%be%8b-3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入</p><pre><code>3 3\n</code></pre><p>输出</p><pre><code>12\n</code></pre><h2 class=heading-element id=备注><span>7 备注</span>\n<a href=#%e5%a4%87%e6%b3%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于 100% 的测试数据：<br>1 ≤ n, m ≤ 1000<br>数据量较大，注意使用更快的输入输出方式。</p><p>水题。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%lld%lld&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>ans</span><span class=o>=</span><span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>ans</span><span class=o>=</span><span class=p>(</span><span class=n>ans</span><span class=o>*</span><span class=p>(</span><span class=n>m</span><span class=o>-</span><span class=mi>1</span><span class=p>))</span><span class=o>%</span><span class=mi>1000000007</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%lld</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/nowcoder157a/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/nowcoder157a.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/nowcoder157a.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%9F%B3%E5%AD%90%E9%98%B5%E5%88%97%EF%BC%88%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%9F%B3%E5%AD%90%E9%98%B5%E5%88%97%EF%BC%88%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/nowcoder157a/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/nowcoder157a.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/nowcoder157a/ data-title=石子阵列（组合数学） data-hashtags=数学,组合数学,ACM,Nowcoder,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/nowcoder157a/ data-hashtag=数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/nowcoder157a/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/nowcoder157a/ data-title=石子阵列（组合数学） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/nowcoder157a/ data-title=石子阵列（组合数学）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 组合数学\">组合数学</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/codeforces476a/ class=post-nav-item rel=prev title=\"Dreamoon and Stairs\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Dreamoon and Stairs</a><a href=/posts/termux/ class=post-nav-item rel=next title=\"在 Android 上搭建 Hexo 博客\">在 Android 上搭建 Hexo 博客<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a></li><li><a href=#示例-2>示例 2</a></li><li><a href=#示例-3>示例 3</a></li><li><a href=#备注>备注</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/380d79fcfd90b303a04a00efb9ed5ec0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/380d79fcfd90b303a04a00efb9ed5ec0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/nowcoder157a/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/nowcoder157a/index.md",
    "content": "# 石子阵列（组合数学）\n\n\n链接：<https://www.nowcoder.com/acm/contest/157/A>  \n来源：牛客网\n\n## 题目描述\n\nxb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\n\n## 输入描述\n\n第一行有两个正整数 n，m。\n\n## 输出描述\n\n第一行一个整数，表示在 m 种石子中取出 n 个的排列方案数模 1000000007 后的值。\n\n## 示例 1\n\n输入\n\n    1 1\n\n输出\n\n    1\n\n## 示例 2\n\n输入\n\n    2 3\n\n输出\n\n    6\n\n## 示例 3\n\n输入\n\n    3 3\n\n输出\n\n    12\n\n## 备注\n\n对于 100% 的测试数据：  \n1 ≤ n, m ≤ 1000  \n数据量较大，注意使用更快的输入输出方式。\n\n水题。\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    long long n,m,ans;\n    scanf(\"%lld%lld\",&n,&m);\n    ans=m;\n    for(int i=1;i<n;i++)\n        ans=(ans*(m-1))%1000000007;\n    printf(\"%lld\\n\",ans);\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/nowcoder157a/  \n\n"
  },
  {
    "path": "posts/nowcodersummer-5th/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>牛客暑假多校第五场 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接 密码：l9sn\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\n\"><meta name=keywords content='Nowcoder,ACM,C++'><meta itemprop=name content=\"牛客暑假多校第五场\"><meta itemprop=description content=\"题目链接 密码：l9sn\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\"><meta itemprop=datePublished content=\"2018-08-02T21:27:02+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"379\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Nowcoder,acm,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/nowcodersummer-5th/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"牛客暑假多校第五场\"><meta property=\"og:description\" content=\"题目链接 密码：l9sn\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-02T21:27:02+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"牛客暑假多校第五场\"><meta name=twitter:description content=\"题目链接 密码：l9sn\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/nowcodersummer-5th/ title=\"牛客暑假多校第五场 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj1182/ title=食物链-poj1182（带权并查集经典模板）><link rel=next type=text/html href=https://lruihao.cn/posts/zuiduanlu/ title=最短路入门><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/nowcodersummer-5th/index.md title=\"牛客暑假多校第五场 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"牛客暑假多校第五场\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/nowcodersummer-5th\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Nowcoder, ACM, C\\u002b\\u002b\",\"wordcount\":379,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/nowcodersummer-5th\\/\",\"datePublished\":\"2018-08-02T21:27:02+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/nowcodersummer-5th/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>牛客暑假多校第五场</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>牛客暑假多校第五场</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-02 21:27:02\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-02>2018-08-02</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"379 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=牛客暑假多校第五场><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#g-max>G-max</a></li><li><a href=#j-plan>J-plan</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA target=_blank rel=\"external nofollow noopener noreferrer\">题目链接 密码：l9sn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多</p><h2 class=heading-element id=g-max><span>1 G-max</span>\n<a href=#g-max class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>//wa\n</span></span></span><span class=line><span class=cl><span class=cm>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cm>using namespace std;\n</span></span></span><span class=line><span class=cl><span class=cm>\n</span></span></span><span class=line><span class=cl><span class=cm>int main(){\n</span></span></span><span class=line><span class=cl><span class=cm>    int n,c;//好像不会爆 int 吧，头晕\n</span></span></span><span class=line><span class=cl><span class=cm>    cin&gt;&gt;c&gt;&gt;n;\n</span></span></span><span class=line><span class=cl><span class=cm>    int t=n/c;\n</span></span></span><span class=line><span class=cl><span class=cm>    if(t&lt;1) cout&lt;&lt;&#34;-1\\n&#34;;//\n</span></span></span><span class=line><span class=cl><span class=cm>    else if(t==1) cout&lt;&lt;c*c&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl><span class=cm>    else cout&lt;&lt;(t*c)*((t-1)*c)&lt;&lt;endl;\n</span></span></span><span class=line><span class=cl><span class=cm>  return 0;\n</span></span></span><span class=line><span class=cl><span class=cm>}*/</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>//AC\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>n</span><span class=p>,</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>c</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>t</span><span class=o>=</span><span class=n>n</span><span class=o>/</span><span class=n>c</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=o>&lt;</span><span class=mi>1</span><span class=p>)</span> <span class=n>cout</span><span class=o>&lt;&lt;-</span><span class=mi>1</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>t</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>c</span><span class=o>*</span><span class=n>c</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=p>(</span><span class=n>t</span><span class=o>*</span><span class=n>c</span><span class=p>)</span><span class=o>*</span><span class=p>((</span><span class=n>t</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=n>c</span><span class=p>)</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=j-plan><span>2 J-plan</span>\n<a href=#j-plan class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cm>/*枚举所有情况\n</span></span></span><span class=line><span class=cl><span class=cm>全买双人 n%2  0 or 1//剩 1 个人的时候，可以多开一间房或者退一间 2 人房开一间 3 人房\n</span></span></span><span class=line><span class=cl><span class=cm>全买 3 人 n%3  0 or 1 or 2\n</span></span></span><span class=line><span class=cl><span class=cm>再比较大小\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span>\n</span></span><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#define INF 1&lt;&lt;20\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=kt>long</span> <span class=kt>long</span> <span class=n>ll</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>ll</span> <span class=nf>min</span><span class=p>(</span><span class=n>ll</span> <span class=n>a</span><span class=p>,</span><span class=n>ll</span> <span class=n>b</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>a</span><span class=o>&lt;</span><span class=n>b</span><span class=o>?</span><span class=nl>a</span><span class=p>:</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=n>ll</span> <span class=n>n</span><span class=p>,</span><span class=n>p2</span><span class=p>,</span><span class=n>p3</span><span class=p>,</span><span class=n>sum</span><span class=p>,</span><span class=n>sum1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>p2</span><span class=o>&gt;&gt;</span><span class=n>p3</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>2</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>sum</span><span class=o>=</span><span class=n>p2</span><span class=o>*</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=n>sum</span><span class=o>=</span><span class=n>p2</span><span class=o>*</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>2</span><span class=p>)</span><span class=o>+</span><span class=n>min</span><span class=p>(</span><span class=n>min</span><span class=p>(</span><span class=n>p2</span><span class=p>,</span><span class=n>p3</span><span class=p>),</span><span class=n>p3</span><span class=o>-</span><span class=n>p2</span><span class=p>);</span><span class=c1>//退二买三；\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>3</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>sum1</span><span class=o>=</span><span class=n>p3</span><span class=o>*</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>3</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>3</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>sum1</span><span class=o>=</span><span class=n>p3</span><span class=o>*</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>3</span><span class=p>)</span><span class=o>+</span><span class=n>min</span><span class=p>(</span><span class=n>min</span><span class=p>(</span><span class=n>p2</span><span class=p>,</span><span class=n>p3</span><span class=p>),</span><span class=mi>2</span><span class=o>*</span><span class=n>p2</span><span class=o>-</span><span class=n>p3</span><span class=p>);</span><span class=c1>//退 3 买 2*2\n</span></span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>%</span><span class=mi>3</span><span class=o>==</span><span class=mi>2</span><span class=p>)</span> <span class=n>sum1</span><span class=o>=</span><span class=n>p3</span><span class=o>*</span><span class=p>(</span><span class=n>n</span><span class=o>/</span><span class=mi>3</span><span class=p>)</span><span class=o>+</span><span class=n>min</span><span class=p>(</span><span class=n>p3</span><span class=p>,</span><span class=n>p2</span><span class=p>);</span><span class=c1>//退 3 买 3*2\n</span></span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>min</span><span class=p>(</span><span class=n>sum1</span><span class=p>,</span><span class=n>sum</span><span class=p>)</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/nowcodersummer-5th/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/nowcodersummer-5th.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/nowcodersummer-5th.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%89%9B%E5%AE%A2%E6%9A%91%E5%81%87%E5%A4%9A%E6%A0%A1%E7%AC%AC%E4%BA%94%E5%9C%BA&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%89%9B%E5%AE%A2%E6%9A%91%E5%81%87%E5%A4%9A%E6%A0%A1%E7%AC%AC%E4%BA%94%E5%9C%BA%7c%0A%7cURL%7chttps://lruihao.cn/posts/nowcodersummer-5th/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/nowcodersummer-5th.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/nowcodersummer-5th/ data-title=牛客暑假多校第五场 data-hashtags=Nowcoder,ACM,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/nowcodersummer-5th/ data-hashtag=Nowcoder><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/nowcodersummer-5th/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/nowcodersummer-5th/ data-title=牛客暑假多校第五场 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/nowcodersummer-5th/ data-title=牛客暑假多校第五场><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj1182/ class=post-nav-item rel=prev title=食物链-Poj1182（带权并查集经典模板）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>食物链-Poj1182（带权并查集经典模板）</a><a href=/posts/zuiduanlu/ class=post-nav-item rel=next title=最短路入门>最短路入门<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#g-max>G-max</a></li><li><a href=#j-plan>J-plan</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/06c7174af922cb41ac234199a8b4709d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/06c7174af922cb41ac234199a8b4709d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/nowcodersummer-5th/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/nowcodersummer-5th/index.md",
    "content": "# 牛客暑假多校第五场\n\n\n[题目链接 密码：l9sn](https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA)  \n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\n\n<!--more-->\n\n## G-max\n\n```cpp\n/*\n//wa\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int n,c;//好像不会爆 int 吧，头晕\n    cin>>c>>n;\n    int t=n/c;\n    if(t<1) cout<<\"-1\\n\";//\n    else if(t==1) cout<<c*c<<endl;\n    else cout<<(t*c)*((t-1)*c)<<endl;\n  return 0;\n}*/\n\n//AC\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    long long n,c;\n    cin>>c>>n;\n    long long t=n/c;\n    if(t<1) cout<<-1<<endl;\n    else if(t==1) cout<<c*c<<endl;\n    else cout<<(t*c)*((t-1)*c)<<endl;\n  return 0;\n}\n\n```\n\n## J-plan\n\n```cpp\n/*枚举所有情况\n全买双人 n%2  0 or 1//剩 1 个人的时候，可以多开一间房或者退一间 2 人房开一间 3 人房\n全买 3 人 n%3  0 or 1 or 2\n再比较大小\n*/\n#include<bits/stdc++.h>\n#define INF 1<<20\nusing namespace std;\ntypedef long long ll;\n\nll min(ll a,ll b){\n    return a<b?a:b;\n}\n\nint main(){\n    ll n,p2,p3,sum,sum1;\n    while(cin>>n>>p2>>p3){\n        if(n%2==0)\n            sum=p2*(n/2);\n        else sum=p2*(n/2)+min(min(p2,p3),p3-p2);//退二买三；\n\n        if(n%3==0)\n            sum1=p3*(n/3);\n        else if(n%3==1) sum1=p3*(n/3)+min(min(p2,p3),2*p2-p3);//退 3 买 2*2\n        else if(n%3==2) sum1=p3*(n/3)+min(p3,p2);//退 3 买 3*2\n        cout<<min(sum1,sum)<<endl;\n    }\n  return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/nowcodersummer-5th/  \n\n"
  },
  {
    "path": "posts/ohmyzsh-custom/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>自定义 Ohmyzsh 主题 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\n\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"自定义 ohmyzsh 主题\"><meta itemprop=description content=\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\"><meta itemprop=datePublished content=\"2022-07-31T13:54:14+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"157\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Grocery\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ohmyzsh-custom/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"自定义 ohmyzsh 主题\"><meta property=\"og:description\" content=\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-07-31T13:54:14+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"自定义 ohmyzsh 主题\"><meta name=twitter:description content=\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ohmyzsh-custom/ title=\"自定义 ohmyzsh 主题 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/linux-permission/ title=\"linux 文件权限\"><link rel=next type=text/html href=https://lruihao.cn/posts/newline/ title=不同系统的换行符的差异><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ohmyzsh-custom/index.md title=\"自定义 ohmyzsh 主题 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"自定义 ohmyzsh 主题\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ohmyzsh-custom\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":157,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ohmyzsh-custom\\/\",\"datePublished\":\"2022-07-31T13:54:14+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ohmyzsh-custom/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>自定义 Ohmyzsh 主题</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>自定义 Ohmyzsh 主题</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2022-07-31 13:54:14\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-07-31>2022-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"157 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"自定义 Ohmyzsh 主题\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#自定义主题>自定义主题</a></li><li><a href=#配置>配置</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。</p><h2 class=heading-element id=自定义主题><span>1 自定义主题</span>\n<a href=#%e8%87%aa%e5%ae%9a%e4%b9%89%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>复制默认主题，当作模板：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> ~/.oh-my-zsh\n</span></span><span class=line><span class=cl>cat themes/robbyrussell.zsh-theme &gt; custom/custom.zsh-theme\n</span></span><span class=line><span class=cl>vim custom/custom.zsh-theme</span></span></code></pre></td></tr></table></div></div></div><p>然后修改里面的内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=k>if</span> <span class=o>[[</span> -z <span class=nv>$ZSH_THEME_CUSTOM_PREFIX</span> <span class=o>]]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nv>ZSH_THEME_CUSTOM_PREFIX</span><span class=o>=</span><span class=s2>&#34;&gt;&#34;</span>\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nv>PROMPT</span><span class=o>=</span><span class=s2>&#34;%(?:%{</span><span class=nv>$fg_bold</span><span class=s2>[blue]%}</span><span class=nv>$ZSH_THEME_CUSTOM_PREFIX</span><span class=s2>:%{</span><span class=nv>$fg_bold</span><span class=s2>[red]%}</span><span class=nv>$ZSH_THEME_CUSTOM_PREFIX</span><span class=s2>)&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>PROMPT</span><span class=o>+=</span><span class=s1>&#39; %{$fg[blue]%}%c%{$reset_color%} $(git_prompt_info)&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nv>ZSH_THEME_GIT_PROMPT_PREFIX</span><span class=o>=</span><span class=s2>&#34;%{</span><span class=nv>$fg_bold</span><span class=s2>[green]%}git:(%{</span><span class=nv>$fg</span><span class=s2>[magenta]%}&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>ZSH_THEME_GIT_PROMPT_SUFFIX</span><span class=o>=</span><span class=s2>&#34;%{</span><span class=nv>$reset_color</span><span class=s2>%} &#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>ZSH_THEME_GIT_PROMPT_DIRTY</span><span class=o>=</span><span class=s2>&#34;%{</span><span class=nv>$fg</span><span class=s2>[green]%}) %{</span><span class=nv>$fg</span><span class=s2>[yellow]%}✗&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>ZSH_THEME_GIT_PROMPT_CLEAN</span><span class=o>=</span><span class=s2>&#34;%{</span><span class=nv>$fg</span><span class=s2>[green]%})&#34;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=配置><span>2 配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim ~/.zshrc</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nv>ZSH_THEME</span><span class=o>=</span>custom</span></span></code></pre></td></tr></table></div></div></div><p>然后重启终端即可。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ohmyzsh-custom/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ohmyzsh-custom.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/ohmyzsh-custom.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%87%AA%E5%AE%9A%E4%B9%89+ohmyzsh+%E4%B8%BB%E9%A2%98&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%87%AA%E5%AE%9A%E4%B9%89+ohmyzsh+%E4%B8%BB%E9%A2%98%7c%0A%7cURL%7chttps://lruihao.cn/posts/ohmyzsh-custom/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ohmyzsh-custom.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ohmyzsh-custom/ data-title=\"自定义 Ohmyzsh 主题\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ohmyzsh-custom/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ohmyzsh-custom/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ohmyzsh-custom/ data-title=\"自定义 Ohmyzsh 主题\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ohmyzsh-custom/ data-title=\"自定义 Ohmyzsh 主题\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/linux-permission/ class=post-nav-item rel=prev title=\"Linux 文件权限\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Linux 文件权限</a><a href=/posts/newline/ class=post-nav-item rel=next title=不同系统的换行符的差异>不同系统的换行符的差异<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#自定义主题>自定义主题</a></li><li><a href=#配置>配置</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/087fe8ea85659b55a7d545f2f69d6134.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/087fe8ea85659b55a7d545f2f69d6134.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ohmyzsh-custom/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ohmyzsh-custom/index.md",
    "content": "# 自定义 Ohmyzsh 主题\n\n\nohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。\n\n<!--more-->\n\n## 自定义主题\n\n复制默认主题，当作模板：\n\n```bash\ncd ~/.oh-my-zsh\ncat themes/robbyrussell.zsh-theme > custom/custom.zsh-theme\nvim custom/custom.zsh-theme\n```\n\n然后修改里面的内容：\n\n```bash\nif [[ -z $ZSH_THEME_CUSTOM_PREFIX ]]; then\n  ZSH_THEME_CUSTOM_PREFIX=\">\"\nfi\n\nPROMPT=\"%(?:%{$fg_bold[blue]%}$ZSH_THEME_CUSTOM_PREFIX:%{$fg_bold[red]%}$ZSH_THEME_CUSTOM_PREFIX)\"\nPROMPT+=' %{$fg[blue]%}%c%{$reset_color%} $(git_prompt_info)'\n\nZSH_THEME_GIT_PROMPT_PREFIX=\"%{$fg_bold[green]%}git:(%{$fg[magenta]%}\"\nZSH_THEME_GIT_PROMPT_SUFFIX=\"%{$reset_color%} \"\nZSH_THEME_GIT_PROMPT_DIRTY=\"%{$fg[green]%}) %{$fg[yellow]%}✗\"\nZSH_THEME_GIT_PROMPT_CLEAN=\"%{$fg[green]%})\"\n```\n\n## 配置\n\n```bash\nvim ~/.zshrc\n```\n\n```bash\nZSH_THEME=custom\n```\n\n然后重启终端即可。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ohmyzsh-custom/  \n\n"
  },
  {
    "path": "posts/overflow-tooltip/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>实现类似于 Element UI 表格的溢出文本提示功能 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\n\"><meta name=keywords content='Vue2'><meta itemprop=name content=\"实现类似于 Element UI 表格的溢出文本提示功能\"><meta itemprop=description content=\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\"><meta itemprop=datePublished content=\"2024-02-29T16:46:00+08:00\"><meta itemprop=dateModified content=\"2024-06-12T18:57:53+08:00\"><meta itemprop=wordCount content=\"1009\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/overflow-tooltip/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"实现类似于 Element UI 表格的溢出文本提示功能\"><meta property=\"og:description\" content=\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-02-29T16:46:00+08:00\"><meta property=\"article:modified_time\" content=\"2024-06-12T18:57:53+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"实现类似于 Element UI 表格的溢出文本提示功能\"><meta name=twitter:description content=\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/overflow-tooltip/ title=\"实现类似于 Element UI 表格的溢出文本提示功能 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/auto-sizes/ title='聊聊 Chrome 新增的 sizes=\"auto\" 属性'><link rel=next type=text/html href=https://lruihao.cn/posts/c6bc2d5/ title=写文档时英文标题什么时候要大写？><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/overflow-tooltip/index.md title=\"实现类似于 Element UI 表格的溢出文本提示功能 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/overflow-tooltip\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2\",\"wordcount\":1009,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/overflow-tooltip\\/\",\"datePublished\":\"2024-02-29T16:46:00+08:00\",\"dateModified\":\"2024-06-12T18:57:53+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/overflow-tooltip/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>实现类似于 Element UI 表格的溢出文本提示功能</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>实现类似于 Element UI 表格的溢出文本提示功能</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2024-02-29 16:46:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-02-29>2024-02-29</time></span>&nbsp;<span title=\"更新于 2024-06-12 18:57:53\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-06-12>2024-06-12</time></span>&nbsp;<span title=\"1009 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"实现类似于 Element UI 表格的溢出文本提示功能\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#demo>Demo</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#实现原理>实现原理</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-06-12，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在 Element UI 的表格组件中，当表格列的内容过长时，设置 <code>show-overflow-tooltip</code> 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？</p><h2 class=heading-element id=demo><span>1 Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>先来看一下效果：<a href=http://lruihao.github.io/vue-el-demo/#/overflow-tooltip target=_blank rel=\"external nofollow noopener noreferrer\">demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=实现代码><span>2 实现代码</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>直接贴上完整的代码，通过一个自定义指定 <code>v-overflow-tooltip</code> 来实现：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>setTooltip</span> <span class=o>=</span> <span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 设置内容\n</span></span></span><span class=line><span class=cl>  <span class=nx>el</span><span class=p>.</span><span class=nx>innerText</span> <span class=o>=</span> <span class=nx>binding</span><span class=p>.</span><span class=nx>value</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>elComputed</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>defaultView</span><span class=p>.</span><span class=nx>getComputedStyle</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>padding</span> <span class=o>=</span> <span class=nb>parseInt</span><span class=p>(</span><span class=nx>elComputed</span><span class=p>.</span><span class=nx>paddingLeft</span><span class=p>.</span><span class=nx>replace</span><span class=p>(</span><span class=s1>&#39;px&#39;</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>))</span> <span class=o>+</span> <span class=nb>parseInt</span><span class=p>(</span><span class=nx>elComputed</span><span class=p>.</span><span class=nx>paddingRight</span><span class=p>.</span><span class=nx>replace</span><span class=p>(</span><span class=s1>&#39;px&#39;</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>range</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createRange</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=nx>range</span><span class=p>.</span><span class=nx>setStart</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=nx>range</span><span class=p>.</span><span class=nx>setEnd</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>el</span><span class=p>.</span><span class=nx>childNodes</span><span class=p>.</span><span class=nx>length</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>rangeWidth</span> <span class=o>=</span> <span class=nx>range</span><span class=p>.</span><span class=nx>getBoundingClientRect</span><span class=p>().</span><span class=nx>width</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>isEllipsis</span> <span class=o>=</span> <span class=nx>rangeWidth</span> <span class=o>+</span> <span class=nx>padding</span> <span class=o>&gt;</span> <span class=nx>el</span><span class=p>.</span><span class=nx>offsetWidth</span> <span class=o>||</span> <span class=nx>el</span><span class=p>.</span><span class=nx>scrollWidth</span> <span class=o>&gt;</span> <span class=nx>el</span><span class=p>.</span><span class=nx>offsetWidth</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>// 鼠标移入时，将浮层元素插入到 body 中\n</span></span></span><span class=line><span class=cl>  <span class=nx>el</span><span class=p>.</span><span class=nx>onmouseenter</span> <span class=o>=</span> <span class=kd>function</span><span class=p>(</span><span class=nx>e</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>isEllipsis</span><span class=p>)</span> <span class=p>{</span> <span class=k>return</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 创建浮层元素并设置样式\n</span></span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>vcTooltipDom</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createElement</span><span class=p>(</span><span class=s1>&#39;div&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>Object</span><span class=p>.</span><span class=nx>assign</span><span class=p>(</span><span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>style</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>position</span><span class=o>:</span> <span class=s1>&#39;absolute&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>background</span><span class=o>:</span> <span class=s1>&#39;#303133&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>color</span><span class=o>:</span> <span class=s1>&#39;#fff&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>fontSize</span><span class=o>:</span> <span class=s1>&#39;12px&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>zIndex</span><span class=o>:</span> <span class=s1>&#39;6000&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>padding</span><span class=o>:</span> <span class=s1>&#39;10px&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>borderRadius</span><span class=o>:</span> <span class=s1>&#39;4px&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>lineHeight</span><span class=o>:</span> <span class=mf>1.2</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>minHeight</span><span class=o>:</span> <span class=s1>&#39;10px&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>wordWrap</span><span class=o>:</span> <span class=s1>&#39;break-word&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>})</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 设置 id 方便寻找\n</span></span></span><span class=line><span class=cl>    <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>setAttribute</span><span class=p>(</span><span class=s1>&#39;id&#39;</span><span class=p>,</span> <span class=s1>&#39;vc-tooltip&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 将浮层插入到 body 中\n</span></span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>appendChild</span><span class=p>(</span><span class=nx>vcTooltipDom</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 浮层中的文字 通过属性值传递动态的显示文案\n</span></span></span><span class=line><span class=cl>    <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;vc-tooltip&#39;</span><span class=p>).</span><span class=nx>innerHTML</span> <span class=o>=</span> <span class=nx>binding</span><span class=p>.</span><span class=nx>value</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 鼠标移动时，动态修改浮层的位置属性\n</span></span></span><span class=line><span class=cl>  <span class=nx>el</span><span class=p>.</span><span class=nx>onmousemove</span> <span class=o>=</span> <span class=kd>function</span><span class=p>(</span><span class=nx>e</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>isEllipsis</span><span class=p>)</span> <span class=p>{</span> <span class=k>return</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>vcTooltipDom</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;vc-tooltip&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>padding</span> <span class=o>=</span> <span class=mi>5</span>\n</span></span><span class=line><span class=cl>    <span class=kd>let</span> <span class=nx>offsetX</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>clientX</span> <span class=o>+</span> <span class=mi>15</span>\n</span></span><span class=line><span class=cl>    <span class=kd>let</span> <span class=nx>offsetY</span> <span class=o>=</span> <span class=nx>e</span><span class=p>.</span><span class=nx>clientY</span> <span class=o>+</span> <span class=mi>15</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 判断是否超出视窗边界（横向）\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>offsetX</span> <span class=o>+</span> <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>offsetWidth</span> <span class=o>&gt;</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientWidth</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>offsetX</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientWidth</span> <span class=o>-</span> <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>offsetWidth</span> <span class=o>-</span> <span class=nx>padding</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>offsetX</span> <span class=o>&lt;=</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>offsetX</span> <span class=o>=</span> <span class=nx>padding</span>\n</span></span><span class=line><span class=cl>      <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>width</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientWidth</span> <span class=o>-</span> <span class=nx>padding</span> <span class=o>*</span> <span class=mi>2</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 判断是否超出视窗边界（纵向）\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>offsetY</span> <span class=o>+</span> <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>offsetHeight</span> <span class=o>&gt;</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientHeight</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>offsetY</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientHeight</span> <span class=o>-</span> <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>offsetHeight</span> <span class=o>-</span> <span class=nx>padding</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>offsetY</span> <span class=o>&lt;=</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>offsetY</span> <span class=o>=</span> <span class=nx>padding</span>\n</span></span><span class=line><span class=cl>      <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>height</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>documentElement</span><span class=p>.</span><span class=nx>clientHeight</span> <span class=o>-</span> <span class=nx>padding</span> <span class=o>*</span> <span class=mi>2</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>left</span> <span class=o>=</span> <span class=nx>offsetX</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vcTooltipDom</span><span class=p>.</span><span class=nx>style</span><span class=p>.</span><span class=nx>top</span> <span class=o>=</span> <span class=nx>offsetY</span> <span class=o>+</span> <span class=s1>&#39;px&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 注：当浮层元素和窗口大小差不多时，浮层会覆盖原本的内容，导致浮层闪一下就不见了\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 鼠标移出时将浮层元素销毁\n</span></span></span><span class=line><span class=cl>  <span class=nx>el</span><span class=p>.</span><span class=nx>onmouseleave</span> <span class=o>=</span> <span class=kd>function</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>isEllipsis</span><span class=p>)</span> <span class=p>{</span> <span class=k>return</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 找到浮层元素并移出\n</span></span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>vcTooltipDom</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;vc-tooltip&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vcTooltipDom</span> <span class=o>&amp;&amp;</span> <span class=nb>document</span><span class=p>.</span><span class=nx>body</span><span class=p>.</span><span class=nx>removeChild</span><span class=p>(</span><span class=nx>vcTooltipDom</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>plugin</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>install</span><span class=p>(</span><span class=nx>Vue</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>Vue</span><span class=p>.</span><span class=nx>directive</span><span class=p>(</span><span class=s1>&#39;overflow-tooltip&#39;</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>inserted</span><span class=o>:</span> <span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 设置元素样式\n</span></span></span><span class=line><span class=cl>        <span class=nb>Object</span><span class=p>.</span><span class=nx>assign</span><span class=p>(</span><span class=nx>el</span><span class=p>.</span><span class=nx>style</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>overflow</span><span class=o>:</span> <span class=s1>&#39;hidden&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=nx>textOverflow</span><span class=o>:</span> <span class=s1>&#39;ellipsis&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=nx>whiteSpace</span><span class=o>:</span> <span class=s1>&#39;nowrap&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=p>})</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 监控元素可见性变化\n</span></span></span><span class=line><span class=cl>        <span class=kr>const</span> <span class=nx>observer</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>IntersectionObserver</span><span class=p>((</span><span class=nx>entries</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>if</span> <span class=p>(</span><span class=nx>entries</span><span class=p>[</span><span class=mi>0</span><span class=p>].</span><span class=nx>isIntersecting</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=nx>setTooltip</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>})</span>\n</span></span><span class=line><span class=cl>        <span class=nx>observer</span><span class=p>.</span><span class=nx>observe</span><span class=p>(</span><span class=nx>el</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 监控元素宽度变化\n</span></span></span><span class=line><span class=cl>        <span class=kr>const</span> <span class=nx>resizeObserver</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>ResizeObserver</span><span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>setTooltip</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>})</span>\n</span></span><span class=line><span class=cl>        <span class=nx>resizeObserver</span><span class=p>.</span><span class=nx>observe</span><span class=p>(</span><span class=nx>el</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 设置浮层内容\n</span></span></span><span class=line><span class=cl>        <span class=nx>setTooltip</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>update</span><span class=o>:</span> <span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 更新浮层内容\n</span></span></span><span class=line><span class=cl>        <span class=nx>setTooltip</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>binding</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>unbind</span><span class=o>:</span> <span class=p>(</span><span class=nx>el</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>el</span><span class=p>.</span><span class=nx>onmouseenter</span> <span class=o>=</span> <span class=kc>null</span>\n</span></span><span class=line><span class=cl>        <span class=nx>el</span><span class=p>.</span><span class=nx>onmousemove</span> <span class=o>=</span> <span class=kc>null</span>\n</span></span><span class=line><span class=cl>        <span class=nx>el</span><span class=p>.</span><span class=nx>onmouseleave</span> <span class=o>=</span> <span class=kc>null</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>})</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>let</span> <span class=nx>GlobalVue</span> <span class=o>=</span> <span class=kc>null</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=k>typeof</span> <span class=nb>window</span> <span class=o>!==</span> <span class=s1>&#39;undefined&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>GlobalVue</span> <span class=o>=</span> <span class=nb>window</span><span class=p>.</span><span class=nx>Vue</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=k>if</span> <span class=p>(</span><span class=k>typeof</span> <span class=nx>global</span> <span class=o>!==</span> <span class=s1>&#39;undefined&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>GlobalVue</span> <span class=o>=</span> <span class=nx>global</span><span class=p>.</span><span class=nx>Vue</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>GlobalVue</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>GlobalVue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>plugin</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=nx>plugin</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>使用很简单，导入并注册之后，就可以在需要的地方使用 <code>v-overflow-tooltip</code> 指令了：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>overflowTooltip</span> <span class=nx>from</span> <span class=s1>&#39;@/directives/overflow-tooltip&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>overflowTooltip</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>比如说：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>span</span> <span class=na>v-overflow-tooltip</span><span class=o>=</span><span class=s>&#34;content&#34;</span> <span class=na>style</span><span class=o>=</span><span class=s>&#34;display: inline-block; width: 100px;&#34;</span> <span class=p>/&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=实现原理><span>3 实现原理</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e5%8e%9f%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>通过 <code>getComputedStyle</code> 获取元素的 <code>padding</code> 值，然后通过 <code>createRange</code> 获取元素的宽度。</li><li>如果元素的内容宽度大于元素的宽度，那么就显示 tooltip。</li><li>鼠标移入时，将浮层元素插入到 <code>body</code> 中，鼠标移动时，动态修改浮层的位置属性，鼠标移出时将浮层元素销毁。（浮层需要做边界检测）</li></ol><p>其中最关键的一段代码是：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>range</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>createRange</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nx>range</span><span class=p>.</span><span class=nx>setStart</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nx>range</span><span class=p>.</span><span class=nx>setEnd</span><span class=p>(</span><span class=nx>el</span><span class=p>,</span> <span class=nx>el</span><span class=p>.</span><span class=nx>childNodes</span><span class=p>.</span><span class=nx>length</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>rangeWidth</span> <span class=o>=</span> <span class=nx>range</span><span class=p>.</span><span class=nx>getBoundingClientRect</span><span class=p>().</span><span class=nx>width</span></span></span></code></pre></td></tr></table></div></div></div><p>这段代码是通过 <code>createRange</code> 设置元素的范围，然后通过 <code>getBoundingClientRect</code> 获取元素的宽度。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-06-12 18:57:53\">更新于 2024-06-12&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8b6da017d07fab68f7634d2a40f8d473558bccbe rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: oh no! 又有错别！&#10&#10Commit: 8b6da017d07fab68f7634d2a40f8d473558bccbe [8b6da01]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-06-12 18:57:53\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8b6da01</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/overflow-tooltip/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/overflow-tooltip.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/overflow-tooltip.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%9E%E7%8E%B0%E7%B1%BB%E4%BC%BC%E4%BA%8E+Element+UI+%E8%A1%A8%E6%A0%BC%E7%9A%84%E6%BA%A2%E5%87%BA%E6%96%87%E6%9C%AC%E6%8F%90%E7%A4%BA%E5%8A%9F%E8%83%BD&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%9E%E7%8E%B0%E7%B1%BB%E4%BC%BC%E4%BA%8E+Element+UI+%E8%A1%A8%E6%A0%BC%E7%9A%84%E6%BA%A2%E5%87%BA%E6%96%87%E6%9C%AC%E6%8F%90%E7%A4%BA%E5%8A%9F%E8%83%BD%7c%0A%7cURL%7chttps://lruihao.cn/posts/overflow-tooltip/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/overflow-tooltip.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/overflow-tooltip/ data-title=\"实现类似于 Element UI 表格的溢出文本提示功能\" data-hashtags=Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/overflow-tooltip/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/overflow-tooltip/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/overflow-tooltip/ data-title=\"实现类似于 Element UI 表格的溢出文本提示功能\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/overflow-tooltip/ data-title=\"实现类似于 Element UI 表格的溢出文本提示功能\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/auto-sizes/ class=post-nav-item rel=prev title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性'><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a><a href=/posts/c6bc2d5/ class=post-nav-item rel=next title=写文档时英文标题什么时候要大写？>写文档时英文标题什么时候要大写？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#demo>Demo</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#实现原理>实现原理</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f6fad020e77fef815450ef1a64d9353a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f6fad020e77fef815450ef1a64d9353a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/overflow-tooltip/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/overflow-tooltip/index.md",
    "content": "# 实现类似于 Element UI 表格的溢出文本提示功能\n\n\n在 Element UI 的表格组件中，当表格列的内容过长时，设置 `show-overflow-tooltip` 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\n\n<!--more-->\n\n## Demo\n\n先来看一下效果：[demo](http://lruihao.github.io/vue-el-demo/#/overflow-tooltip)\n\n## 实现代码\n\n直接贴上完整的代码，通过一个自定义指定 `v-overflow-tooltip` 来实现：\n\n```js\nconst setTooltip = (el, binding) => {\n  // 设置内容\n  el.innerText = binding.value\n\n  const elComputed = document.defaultView.getComputedStyle(el, '')\n  const padding = parseInt(elComputed.paddingLeft.replace('px', '')) + parseInt(elComputed.paddingRight.replace('px', ''))\n  const range = document.createRange()\n  range.setStart(el, 0)\n  range.setEnd(el, el.childNodes.length)\n  const rangeWidth = range.getBoundingClientRect().width\n  const isEllipsis = rangeWidth + padding > el.offsetWidth || el.scrollWidth > el.offsetWidth\n\n  // 鼠标移入时，将浮层元素插入到 body 中\n  el.onmouseenter = function(e) {\n    if (!isEllipsis) { return }\n    // 创建浮层元素并设置样式\n    const vcTooltipDom = document.createElement('div')\n    Object.assign(vcTooltipDom.style, {\n      position: 'absolute',\n      background: '#303133',\n      color: '#fff',\n      fontSize: '12px',\n      zIndex: '6000',\n      padding: '10px',\n      borderRadius: '4px',\n      lineHeight: 1.2,\n      minHeight: '10px',\n      wordWrap: 'break-word',\n    })\n    // 设置 id 方便寻找\n    vcTooltipDom.setAttribute('id', 'vc-tooltip')\n    // 将浮层插入到 body 中\n    document.body.appendChild(vcTooltipDom)\n    // 浮层中的文字 通过属性值传递动态的显示文案\n    document.getElementById('vc-tooltip').innerHTML = binding.value\n  }\n  // 鼠标移动时，动态修改浮层的位置属性\n  el.onmousemove = function(e) {\n    if (!isEllipsis) { return }\n    const vcTooltipDom = document.getElementById('vc-tooltip')\n    const padding = 5\n    let offsetX = e.clientX + 15\n    let offsetY = e.clientY + 15\n    // 判断是否超出视窗边界（横向）\n    if (offsetX + vcTooltipDom.offsetWidth > document.documentElement.clientWidth) {\n      offsetX = document.documentElement.clientWidth - vcTooltipDom.offsetWidth - padding\n    }\n    if (offsetX <= 0) {\n      offsetX = padding\n      vcTooltipDom.style.width = document.documentElement.clientWidth - padding * 2 + 'px'\n    }\n    // 判断是否超出视窗边界（纵向）\n    if (offsetY + vcTooltipDom.offsetHeight > document.documentElement.clientHeight) {\n      offsetY = document.documentElement.clientHeight - vcTooltipDom.offsetHeight - padding\n    }\n    if (offsetY <= 0) {\n      offsetY = padding\n      vcTooltipDom.style.height = document.documentElement.clientHeight - padding * 2 + 'px'\n    }\n    vcTooltipDom.style.left = offsetX + 'px'\n    vcTooltipDom.style.top = offsetY + 'px'\n    // 注：当浮层元素和窗口大小差不多时，浮层会覆盖原本的内容，导致浮层闪一下就不见了\n  }\n  // 鼠标移出时将浮层元素销毁\n  el.onmouseleave = function() {\n    if (!isEllipsis) { return }\n    // 找到浮层元素并移出\n    const vcTooltipDom = document.getElementById('vc-tooltip')\n    vcTooltipDom && document.body.removeChild(vcTooltipDom)\n  }\n}\n\nconst plugin = {\n  install(Vue) {\n    Vue.directive('overflow-tooltip', {\n      inserted: (el, binding) => {\n        // 设置元素样式\n        Object.assign(el.style, {\n          overflow: 'hidden',\n          textOverflow: 'ellipsis',\n          whiteSpace: 'nowrap',\n        })\n        // 监控元素可见性变化\n        const observer = new IntersectionObserver((entries) => {\n          if (entries[0].isIntersecting) {\n            setTooltip(el, binding)\n          }\n        })\n        observer.observe(el)\n        // 监控元素宽度变化\n        const resizeObserver = new ResizeObserver(() => {\n          setTooltip(el, binding)\n        })\n        resizeObserver.observe(el)\n        // 设置浮层内容\n        setTooltip(el, binding)\n      },\n      update: (el, binding) => {\n        // 更新浮层内容\n        setTooltip(el, binding)\n      },\n      unbind: (el) => {\n        el.onmouseenter = null\n        el.onmousemove = null\n        el.onmouseleave = null\n      },\n    })\n  }\n}\n\nlet GlobalVue = null\nif (typeof window !== 'undefined') {\n  GlobalVue = window.Vue\n} else if (typeof global !== 'undefined') {\n  GlobalVue = global.Vue\n}\n\nif (GlobalVue) {\n  GlobalVue.use(plugin)\n}\n\nexport default plugin\n```\n\n使用很简单，导入并注册之后，就可以在需要的地方使用 `v-overflow-tooltip` 指令了：\n\n```js\nimport overflowTooltip from '@/directives/overflow-tooltip'\nVue.use(overflowTooltip)\n```\n\n比如说：\n\n```html\n<span v-overflow-tooltip=\"content\" style=\"display: inline-block; width: 100px;\" />\n```\n\n## 实现原理\n\n1. 通过 `getComputedStyle` 获取元素的 `padding` 值，然后通过 `createRange` 获取元素的宽度。\n2. 如果元素的内容宽度大于元素的宽度，那么就显示 tooltip。\n3. 鼠标移入时，将浮层元素插入到 `body` 中，鼠标移动时，动态修改浮层的位置属性，鼠标移出时将浮层元素销毁。（浮层需要做边界检测）\n\n其中最关键的一段代码是：\n\n```js\nconst range = document.createRange()\nrange.setStart(el, 0)\nrange.setEnd(el, el.childNodes.length)\nconst rangeWidth = range.getBoundingClientRect().width\n```\n\n这段代码是通过 `createRange` 设置元素的范围，然后通过 `getBoundingClientRect` 获取元素的宽度。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/overflow-tooltip/  \n\n"
  },
  {
    "path": "posts/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/posts/</title><link rel=canonical href=https://lruihao.cn/posts/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/posts/\"></head></html>"
  },
  {
    "path": "posts/page/10/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/console-log/ class=archive-item-link>Hexo 博客自定义 Console Log</a>\n<span class=archive-item-date title='2018-08-04 16:19:06'>08-04</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/zuiduanlu/ class=archive-item-link>最短路入门</a>\n<span class=archive-item-date title='2018-08-03 16:27:16'>08-03</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=archive-item-link>在线离线算法</a>\n<span class=archive-item-date title='2018-07-26 09:57:32'>07-26</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/9/>9</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/11/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=archive-item-link>杨辉三角</a>\n<span class=archive-item-date title='2018-07-22 11:41:15'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><article class=archive-item><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=archive-item-link>简单背包</a>\n<span class=archive-item-date title='2018-06-16 13:18:43'>06-16</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=archive-item-link>18 湘潭邀请赛参赛队员代表发言</a>\n<span class=archive-item-date title='2018-06-15 07:51:21'>06-15</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article><article class=archive-item><a href=/posts/f-sorting/ class=archive-item-link>F.sorting</a>\n<span class=archive-item-date title='2018-06-14 22:49:27'>06-14</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/10/>10</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/12/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=archive-item-link>位运算</a>\n<span class=archive-item-date title='2018-06-14 20:22:21'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article><article class=archive-item><a href=/posts/links/ class=archive-item-link>各种 Links 汇总与分享</a>\n<span class=archive-item-date title='2018-06-07 00:06:05'>06-07</span></article><article class=archive-item><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=archive-item-link>戏子春秋</a>\n<span class=archive-item-date title='2018-06-03 19:41:32'>06-03</span></article><article class=archive-item><a href=/posts/hexobuild/ class=archive-item-link>Hexo+github 搭建个人博客及美化</a>\n<span class=archive-item-date title='2018-06-01 14:34:23'>06-01</span></article><article class=archive-item><a href=/posts/hexowrite/ class=archive-item-link>Hexo 添加图片，音乐，链接，视频</a>\n<span class=archive-item-date title='2018-05-31 23:19:22'>05-31</span></article><article class=archive-item><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=archive-item-link>猴子与哪吒</a>\n<span class=archive-item-date title='2018-05-31 10:09:15'>05-31</span></article><article class=archive-item><a href=/posts/hello-world/ class=archive-item-link>Hello World</a>\n<span class=archive-item-date title='2018-05-28 20:01:01'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/11/>11</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/6550187/ class=archive-item-link>Git Submodule: Already Exists in the Index</a>\n<span class=archive-item-date title='2024-01-11 10:30:04'>01-11</span></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a>\n<span class=archive-item-date title='2024-01-10 17:06:54'>01-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a>\n<span class=archive-item-date title='2023-10-22 18:59:31'>10-22</span></article><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><article class=archive-item><a href=/posts/draggable-dashboard/ class=archive-item-link>拖拽式仪表盘的设计与开发</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article><article class=archive-item><a href=/posts/cognitive-complexity/ class=archive-item-link>认知复杂度（Cognitive Complexity）</a>\n<span class=archive-item-date title='2023-10-08 09:52:44'>10-08</span></article><article class=archive-item><a href=/posts/article-structure/ class=archive-item-link>写作技巧：如何搭建文章的框架结构？</a>\n<span class=archive-item-date title='2023-09-26 15:17:52'>09-26</span></article><article class=archive-item><a href=/posts/vue-fullscreen-toggler/ class=archive-item-link>封装 Vue FullScreenToggler 组件</a>\n<span class=archive-item-date title='2023-09-17 19:44:07'>09-17</span></article><article class=archive-item><a href=/posts/js-fullscreen/ class=archive-item-link>JS 实现全屏和退出全屏</a>\n<span class=archive-item-date title='2023-09-15 17:29:25'>09-15</span></article><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a>\n<span class=archive-item-date title='2023-09-15 11:07:56'>09-15</span></article><article class=archive-item><a href=/posts/vue-svg-icon/ class=archive-item-link>在 Vue 项目中更优雅地使用 Icon</a>\n<span class=archive-item-date title='2023-09-14 11:24:48'>09-14</span></article><article class=archive-item><a href=/posts/vscode-snippets/ class=archive-item-link>VSCode 添加用户代码片段，自定义用户代码片段</a>\n<span class=archive-item-date title='2023-09-14 11:21:56'>09-14</span></article><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a>\n<span class=archive-item-date title='2023-09-02 10:05:44'>09-02</span></article><article class=archive-item><a href=/posts/el-backtop-fix/ class=archive-item-link>用魔法打败魔法 - ElBacktop Fix</a>\n<span class=archive-item-date title='2023-07-20 11:08:18'>07-20</span></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article><article class=archive-item><a href=/posts/vue2-guid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a>\n<span class=archive-item-date title='2023-03-14 08:37:59'>03-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/4/>4</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><article class=archive-item><a href=/posts/document-style-guide/ class=archive-item-link>中文技术文档的写作规范</a>\n<span class=archive-item-date title='2023-02-04 16:04:42'>02-04</span></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a>\n<span class=archive-item-date title='2023-01-11 11:16:02'>01-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a>\n<span class=archive-item-date title='2022-08-31 09:32:44'>08-31</span></article><article class=archive-item><a href=/posts/semver/ class=archive-item-link>语义版本控制（SemVer）</a>\n<span class=archive-item-date title='2022-08-13 13:32:03'>08-13</span></article><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a>\n<span class=archive-item-date title='2022-08-12 15:37:44'>08-12</span></article><article class=archive-item><a href=/posts/electron-summary/ class=archive-item-link>Electron 踩坑总结</a>\n<span class=archive-item-date title='2022-08-12 11:22:01'>08-12</span></article><article class=archive-item><a href=/posts/encryption-fe/ class=archive-item-link>前端页面内容加密总结</a>\n<span class=archive-item-date title='2022-08-08 13:49:22'>08-08</span></article><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><article class=archive-item><a href=/posts/newline/ class=archive-item-link>不同系统的换行符的差异</a>\n<span class=archive-item-date title='2022-08-07 00:10:30'>08-07</span></article><article class=archive-item><a href=/posts/ohmyzsh-custom/ class=archive-item-link>自定义 Ohmyzsh 主题</a>\n<span class=archive-item-date title='2022-07-31 13:54:14'>07-31</span></article><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article><article class=archive-item><a href=/posts/adb-for-mac/ class=archive-item-link>Mac 配置 ADB</a>\n<span class=archive-item-date title='2022-07-05 15:39:34'>07-05</span></article><article class=archive-item><a href=/posts/js-rediscover/ class=archive-item-link>重新认识 JavaScript</a>\n<span class=archive-item-date title='2022-05-01 10:59:36'>05-01</span></article><article class=archive-item><a href=/posts/css-scss-var/ class=archive-item-link>关于 CSS 和 Scss 变量运算那些事</a>\n<span class=archive-item-date title='2022-04-30 22:04:29'>04-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/gtd/ class=archive-item-link>Getting Things Done for Ios App Reminders and Github Issues</a>\n<span class=archive-item-date title='2021-12-22 20:17:42'>12-22</span></article><article class=archive-item><a href=/posts/subl_imgpaste2/ class=archive-item-link>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a>\n<span class=archive-item-date title='2021-10-05 21:54:06'>10-05</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/5/>5</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/4/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-cardlink/ class=archive-item-link>Hugo 添加知乎卡片式链接 Shortcodes</a>\n<span class=archive-item-date title='2021-10-05 19:33:13'>10-05</span></article><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article><article class=archive-item><a href=/posts/hugo-friends/ class=archive-item-link>Hugo 友情連結模板</a>\n<span class=archive-item-date title='2021-10-05 14:14:10'>10-05</span></article><article class=archive-item><a href=/posts/hugo-admin/ class=archive-item-link>Hugo 本地管理 Shell 腳本</a>\n<span class=archive-item-date title='2021-10-04 23:49:00'>10-04</span></article><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article><article class=archive-item><a href=/posts/lightbox/ class=archive-item-link>Lightbox</a>\n<span class=archive-item-date title='2021-06-21 16:18:04'>06-21</span></article><article class=archive-item><a href=/posts/codereview/ class=archive-item-link>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a>\n<span class=archive-item-date title='2021-03-04 21:04:18'>03-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a>\n<span class=archive-item-date title='2020-03-26 11:08:38'>03-26</span></article><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><article class=archive-item><a href=/posts/sql/ class=archive-item-link>SQL 总结</a>\n<span class=archive-item-date title='2020-01-16 19:28:05'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article><article class=archive-item><a href=/posts/phppushurl/ class=archive-item-link>Php 同时主动推送链接到百度，神马等站长平台</a>\n<span class=archive-item-date title='2019-09-28 18:32:42'>09-28</span></article><article class=archive-item><a href=/posts/phpfile/ class=archive-item-link>Php 按行读取文件信息</a>\n<span class=archive-item-date title='2019-09-28 17:11:17'>09-28</span></article><article class=archive-item><a href=/posts/site-time/ class=archive-item-link>设置网站运行时间</a>\n<span class=archive-item-date title='2019-09-19 22:03:29'>09-19</span></article><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article><article class=archive-item><a href=/posts/sublime-text3/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Sublime Text3 快捷键大全</a>\n<span class=archive-item-date title='2019-08-15 20:59:10'>08-15</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/3/>3</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/6/>6</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/5/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/netbeans/ class=archive-item-link>NetBeans IDE 开发设置</a>\n<span class=archive-item-date title='2019-08-15 18:36:15'>08-15</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/phpform/ class=archive-item-link>简单评论模块--Php 表单练习</a>\n<span class=archive-item-date title='2019-07-19 11:38:59'>07-19</span></article><article class=archive-item><a href=/posts/phpfunc/ class=archive-item-link>Php 函数学习</a>\n<span class=archive-item-date title='2019-07-15 11:37:33'>07-15</span></article><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/pysx2/ class=archive-item-link>Python 实训总结Ⅱ</a>\n<span class=archive-item-date title='2019-06-21 18:46:41'>06-21</span></article><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a>\n<span class=archive-item-date title='2019-06-18 18:41:00'>06-18</span></article><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a>\n<span class=archive-item-date title='2019-05-26 18:50:53'>05-26</span></article><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><article class=archive-item><a href=/posts/imgurl/ class=archive-item-link>宝塔面板安装 ImgURL 图床</a>\n<span class=archive-item-date title='2019-05-16 20:31:33'>05-16</span></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/ifzhushi/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a>\n<span class=archive-item-date title='2019-05-10 13:08:27'>05-10</span></article><article class=archive-item><a href=/posts/pysettime/ class=archive-item-link>Python 设置程序每天 8 点定时执行任务</a>\n<span class=archive-item-date title='2019-05-09 23:26:54'>05-09</span></article><article class=archive-item><a href=/posts/pyinstallererror/ class=archive-item-link>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a>\n<span class=archive-item-date title='2019-05-09 19:05:01'>05-09</span></article><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article><article class=archive-item><a href=/posts/posttest/ class=archive-item-link>Python 发送 Post 请求进行简单的接口测试</a>\n<span class=archive-item-date title='2019-05-07 18:17:05'>05-07</span></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a>\n<span class=archive-item-date title='2019-05-06 17:41:35'>05-06</span></article><article class=archive-item><a href=/posts/byteio/ class=archive-item-link>文件加密解密（字节流）</a>\n<span class=archive-item-date title='2019-05-02 23:04:32'>05-02</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/3/>3</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/4/>4</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/7/>7</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/6/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/javaexception/ class=archive-item-link>模拟借书系统（java 异常练习）</a>\n<span class=archive-item-date title='2019-05-01 16:52:21'>05-01</span></article><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/1thintervivew/ class=archive-item-link>第一次面试经历</a>\n<span class=archive-item-date title='2019-04-24 21:23:22'>04-24</span></article><article class=archive-item><a href=/posts/mmtimgpy/ class=archive-item-link>Python 爬取网站图片（图片链接相似）</a>\n<span class=archive-item-date title='2019-04-22 12:46:34'>04-22</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article><article class=archive-item><a href=/posts/hellojava/ class=archive-item-link>用记事本编写第一个 Java 程序</a>\n<span class=archive-item-date title='2019-04-19 19:49:54'>04-19</span></article><article class=archive-item><a href=/posts/java-regex/ class=archive-item-link>Java 正则表达式练习</a>\n<span class=archive-item-date title='2019-04-18 22:04:21'>04-18</span></article><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/ms-html-css/ class=archive-item-link>前端面试题 - HTML+CSS</a>\n<span class=archive-item-date title='2019-03-30 22:58:39'>03-30</span></article><article class=archive-item><a href=/posts/bqbj/ class=archive-item-link>百钱百鸡（枚举法）</a>\n<span class=archive-item-date title='2019-03-30 10:13:33'>03-30</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><article class=archive-item><a href=/posts/substatus/ class=archive-item-link>Java 父类子类的对象初始化过程</a>\n<span class=archive-item-date title='2019-03-21 13:36:25'>03-21</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/4/>4</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/5/>5</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/8/>8</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/7/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/webbiji/ class=archive-item-link>Web 汇总</a>\n<span class=archive-item-date title='2019-03-18 20:40:55'>03-18</span></article><article class=archive-item><a href=/posts/fanxing/ class=archive-item-link>Java 泛型 Test</a>\n<span class=archive-item-date title='2019-03-16 13:56:01'>03-16</span></article><article class=archive-item><a href=/posts/eclipseuse/ class=archive-item-link>Eclipse 的基本使用</a>\n<span class=archive-item-date title='2019-03-15 23:47:24'>03-15</span></article><article class=archive-item><a href=/posts/qframe/ class=archive-item-link>匿名类在可视化界面中的应用</a>\n<span class=archive-item-date title='2019-03-15 22:31:28'>03-15</span></article><article class=archive-item><a href=/posts/linkcard/ class=archive-item-link>模仿知乎卡片式链接</a>\n<span class=archive-item-date title='2019-03-15 15:21:39'>03-15</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article><article class=archive-item><a href=/posts/qqxml/ class=archive-item-link>QQ 强制生成卡片式链接</a>\n<span class=archive-item-date title='2019-03-08 16:52:13'>03-08</span></article><article class=archive-item><a href=/posts/cipanadmin/ class=archive-item-link>磁盘存储器的管理</a>\n<span class=archive-item-date title='2019-03-04 23:08:32'>03-04</span></article><article class=archive-item><a href=/posts/js-vcode/ class=archive-item-link>JS 验证码</a>\n<span class=archive-item-date title='2019-03-04 20:53:09'>03-04</span></article><article class=archive-item><a href=/posts/renative/ class=archive-item-link>还乡</a>\n<span class=archive-item-date title='2019-02-01 20:44:40'>02-01</span></article><article class=archive-item><a href=/posts/jicheng/ class=archive-item-link>Java 继承 Test</a>\n<span class=archive-item-date title='2019-01-24 15:07:50'>01-24</span></article><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article><article class=archive-item><a href=/posts/recent-posts/ class=archive-item-link>在搜索、文章底部、侧栏添加最近文章模块</a>\n<span class=archive-item-date title='2019-01-16 17:50:52'>01-16</span></article><article class=archive-item><a href=/posts/mathclass/ class=archive-item-link>Java 猜数字小游戏（Math 类）</a>\n<span class=archive-item-date title='2019-01-15 17:33:28'>01-15</span></article><article class=archive-item><a href=/posts/duixiang/ class=archive-item-link>面向对象基础知识总结</a>\n<span class=archive-item-date title='2019-01-15 16:07:31'>01-15</span></article><article class=archive-item><a href=/posts/java-range/ class=archive-item-link>Java 水仙花数（循环）</a>\n<span class=archive-item-date title='2019-01-14 17:30:24'>01-14</span></article><article class=archive-item><a href=/posts/java-input/ class=archive-item-link>Java 录入数据</a>\n<span class=archive-item-date title='2019-01-14 15:33:46'>01-14</span></article><article class=archive-item><a href=/posts/biaoshi/ class=archive-item-link>Java 标识符</a>\n<span class=archive-item-date title='2019-01-14 15:07:57'>01-14</span></article><article class=archive-item><a href=/posts/subject-verb/ class=archive-item-link>英语语法--主谓一致</a>\n<span class=archive-item-date title='2019-01-12 13:02:49'>01-12</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/5/>5</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/6/>6</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/9/>9</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/8/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/inversion-3/ class=archive-item-link>英语语法--形式倒装</a>\n<span class=archive-item-date title='2018-12-10 21:52:30'>12-10</span></article><article class=archive-item><a href=/posts/inversion-2/ class=archive-item-link>英语语法--完全倒装</a>\n<span class=archive-item-date title='2018-12-10 21:14:51'>12-10</span></article><article class=archive-item><a href=/posts/inversion-1/ class=archive-item-link>英语语法--部分倒装</a>\n<span class=archive-item-date title='2018-12-08 17:52:39'>12-08</span></article><article class=archive-item><a href=/posts/nextplugin/ class=archive-item-link>Hexo 插件及 Next 内置样式集</a>\n<span class=archive-item-date title='2018-11-24 16:54:09'>11-24</span></article><article class=archive-item><a href=/posts/commit-bat/ class=archive-item-link>通过 Bat 批处理文件自动提交博客代码</a>\n<span class=archive-item-date title='2018-11-17 14:25:49'>11-17</span></article><article class=archive-item><a href=/posts/fas-app/ class=archive-item-link>博採眾長 App</a>\n<span class=archive-item-date title='2018-11-12 16:04:04'>11-12</span></article><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article><article class=archive-item><a href=/posts/next-pdf/ class=archive-item-link>Next 添加支持 Pdf</a>\n<span class=archive-item-date title='2018-11-09 12:51:48'>11-09</span></article><article class=archive-item><a href=/posts/js-device/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Js 判断用户设备类型及平台</a>\n<span class=archive-item-date title='2018-11-03 23:35:44'>11-03</span></article><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/git/ class=archive-item-link>Git 常用指令汇总</a>\n<span class=archive-item-date title='2018-10-30 08:59:56'>10-30</span></article><article class=archive-item><a href=/posts/beian/ class=archive-item-link>网站备案之旅</a>\n<span class=archive-item-date title='2018-10-29 23:16:26'>10-29</span></article><article class=archive-item><a href=/posts/shell/ class=archive-item-link>Shell 脚本初体验</a>\n<span class=archive-item-date title='2018-10-29 11:57:39'>10-29</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article><article class=archive-item><a href=/posts/web-server-win/ class=archive-item-link>Windows 上搭建 Web 服务器</a>\n<span class=archive-item-date title='2018-10-26 21:56:18'>10-26</span></article><article class=archive-item><a href=/posts/gituse/ class=archive-item-link>使用 Git 上传代码到 Github, Coding 等仓库</a>\n<span class=archive-item-date title='2018-10-26 21:11:02'>10-26</span></article><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/web-font/ class=archive-item-link>Ttf 字体压缩</a>\n<span class=archive-item-date title='2018-10-17 21:38:06'>10-17</span></article><article class=archive-item><a href=/posts/linux-hello-c/ class=archive-item-link>Linux 编程初体验</a>\n<span class=archive-item-date title='2018-10-15 21:19:27'>10-15</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/6/>6</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/7/>7</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/8/>8</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/10/>10</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/page/9/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有文章 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"posts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"posts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"posts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ title=\"posts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/index.xml title=\"posts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/feed.json title=\"posts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>所有文章 <sup>229</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 226213 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 226.21K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/liushuixian/ class=archive-item-link>流水线</a>\n<span class=archive-item-date title='2018-10-09 16:21:04'>10-09</span></article><article class=archive-item><a href=/posts/data/ class=archive-item-link>计算机数据</a>\n<span class=archive-item-date title='2018-10-08 23:01:10'>10-08</span></article><article class=archive-item><a href=/posts/night/ class=archive-item-link>网页夜间效果</a>\n<span class=archive-item-date title='2018-09-27 13:13:31'>09-27</span></article><article class=archive-item><a href=/posts/crash-cheat/ class=archive-item-link>网页离开时改变标题“崩溃欺骗”</a>\n<span class=archive-item-date title='2018-09-26 16:36:08'>09-26</span></article><article class=archive-item><a href=/posts/linux-git/ class=archive-item-link>Linux/Centos 下的安装 Git</a>\n<span class=archive-item-date title='2018-09-22 22:28:45'>09-22</span></article><article class=archive-item><a href=/posts/mood/ class=archive-item-link>每一个优秀的人，都有一段沉默的时光</a>\n<span class=archive-item-date title='2018-09-21 21:11:25'>09-21</span></article><article class=archive-item><a href=/posts/vim/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Vim 速查表</a>\n<span class=archive-item-date title='2018-08-31 11:46:39'>08-31</span></article><article class=archive-item><a href=/posts/hexo-wordcount/ class=archive-item-link>Hexo Next 主题添加字数统计（2018）</a>\n<span class=archive-item-date title='2018-08-30 13:15:50'>08-30</span></article><article class=archive-item><a href=/posts/hexo-d-error/ class=archive-item-link>Hexo D 出错</a>\n<span class=archive-item-date title='2018-08-21 22:15:01'>08-21</span></article><article class=archive-item><a href=/posts/dongtaisub/ class=archive-item-link>Hexo 个性化 - Next 主题动态显示 Subtitle</a>\n<span class=archive-item-date title='2018-08-20 16:16:40'>08-20</span></article><article class=archive-item><a href=/posts/heart/ class=archive-item-link>“高逼格”C 语言画心</a>\n<span class=archive-item-date title='2018-08-15 16:33:12'>08-15</span></article><article class=archive-item><a href=/posts/git-index-lock/ class=archive-item-link>Git Index.lock</a>\n<span class=archive-item-date title='2018-08-14 19:21:23'>08-14</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/posts/>1</a></span></li><li class=page-item><span class=page-link aria-hidden=true>&mldr;</span></li><li class=page-item><span class=page-link><a href=/posts/page/7/>7</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/8/>8</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/posts/page/9/>9</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/10/>10</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/11/>11</a></span></li><li class=page-item><span class=page-link><a href=/posts/page/12/>12</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/patch-package/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>如何给 Npm 包打补丁？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将介绍如何给 npm 包打补丁。\"><meta name=keywords content='debug,npm,JavaScript'><meta itemprop=name content=\"如何给 npm 包打补丁？\"><meta itemprop=description content=\"本文将介绍如何给 npm 包打补丁。\"><meta itemprop=datePublished content=\"2023-10-12T22:37:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"819\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"debug,npm,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/patch-package/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"如何给 npm 包打补丁？\"><meta property=\"og:description\" content=\"本文将介绍如何给 npm 包打补丁。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-12T22:37:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"debug\"><meta property=\"article:tag\" content=\"npm\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"如何给 npm 包打补丁？\"><meta name=twitter:description content=\"本文将介绍如何给 npm 包打补丁。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/patch-package/ title=\"如何给 npm 包打补丁？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/dashboard-summary/ title=拖拽式仪表盘系列总结><link rel=next type=text/html href=https://lruihao.cn/posts/ssh-sign/ title=\"SSH 提交签名验证\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/patch-package/index.md title=\"如何给 npm 包打补丁？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"如何给 npm 包打补丁？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/patch-package\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"debug, npm, JavaScript\",\"wordcount\":819,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/patch-package\\/\",\"datePublished\":\"2023-10-12T22:37:56+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/patch-package/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>如何给 Npm 包打补丁？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>如何给 Npm 包打补丁？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-12 22:37:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-12>2023-10-12</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"819 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"如何给 Npm 包打补丁？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/patch-package/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/patch-package/images/featured-image.png height=225 width=490></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#背景>背景</a></li><li><a href=#安装-patch-package>安装 patch-package</a></li><li><a href=#修改源码>修改源码</a></li><li><a href=#生成补丁>生成补丁</a></li><li><a href=#使用补丁>使用补丁</a></li><li><a href=#提交补丁>提交补丁</a></li><li><a href=#测试>测试</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=背景><span>1 背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>今天鬼事神差想起去年写的一段 dirty hack 代码，当时是在 <a href=https://github.com/Lruihao/vue-minder-editor-extended target=_blank rel=\"external nofollow noopener noreferrer\">vue-minder-editor-extended<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个项目为了解决百度开源的 <a href=https://github.com/fex-team/kityminder-core target=_blank rel=\"external nofollow noopener noreferrer\">@7polo/kityminder-core<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> npm 包的 bug，但是百度早在 17-18 年就停止更新了，我又不想自己 fork 一份源码然后重新发包，于是当时直接从 node_modules 里面复制出了打包后的源码进行修改，然后放到了项目中 <code>src/script/patch/kityminder.core.js</code>，并因修改了引入：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl><span class=gd>- require(&#39;@7polo/kityminder-core&#39;);\n</span></span></span><span class=line><span class=cl><span class=gi>+ require(&#39;./script/patch/kityminder.core&#39;);\n</span></span></span></code></pre></td></tr></table></div></div></div><p>但是今天刷抖音看到类似的问题，回想起来这种做法真的是太蠢了，于是就想着有没有更好的办法，于是就一番搜索有了这篇文章。</p><h2 class=heading-element id=安装-patch-package><span>2 安装 patch-package</span>\n<a href=#%e5%ae%89%e8%a3%85-patch-package class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm i patch-package --save-dev</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=修改源码><span>3 修改源码</span>\n<a href=#%e4%bf%ae%e6%94%b9%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <code>node_modules</code> 目录下找到需要打补丁的包，然后修改源码，比如我这里修改了 <code>node_modules/@7polo/kityminder-core/dist/kityminder.core.js</code>，修改后直接保存。</p><h2 class=heading-element id=生成补丁><span>4 生成补丁</span>\n<a href=#%e7%94%9f%e6%88%90%e8%a1%a5%e4%b8%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npx patch-package @7polo/kityminder-core</span></span></code></pre></td></tr></table></div></div></div><p>此时在根目录下会得到如下文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>├── patches\n</span></span><span class=line><span class=cl>│   └── @7polo-kityminder-core+1.4.53.patch\n</span></span><span class=line><span class=cl>└── package.json</span></span></code></pre></td></tr></table></div></div></div><p>想看看这个补丁文件里面是什么东西，打开 <code>patches/@7polo-kityminder-core+1.4.53.patch</code>，内容如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl><span class=gh>diff --git a/node_modules/@7polo/kityminder-core/.DS_Store b/node_modules/@7polo/kityminder-core/.DS_Store\n</span></span></span><span class=line><span class=cl>new file mode 100644\n</span></span><span class=line><span class=cl><span class=gh>index 0000000..c88a062\n</span></span></span><span class=line><span class=cl>Binary files /dev/null and b/node_modules/@7polo/kityminder-core/.DS_Store differ\n</span></span><span class=line><span class=cl><span class=gh>diff --git a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\n</span></span></span><span class=line><span class=cl><span class=gh>index 78dfbaf..32f276d 100644\n</span></span></span><span class=line><span class=cl><span class=gd>--- a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\n</span></span></span><span class=line><span class=cl><span class=gi>+++ b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\n</span></span></span><span class=line><span class=cl><span class=gu>@@ -513,6 +513,8 @@ _p[9] = {\n</span></span></span><span class=line><span class=cl>          *\n</span></span><span class=line><span class=cl>          * @param {string} name 要执行的命令名称\n</span></span><span class=line><span class=cl>          * @param {argument} args 要传递给命令的其它参数\n</span></span><span class=line><span class=cl><span class=gi>+         * \n</span></span></span><span class=line><span class=cl><span class=gi>+         * @patch 2022.10.19 @Lruihao 修复缺少 afterExecCommand hook\n</span></span></span><span class=line><span class=cl>          */\n</span></span><span class=line><span class=cl>             execCommand: function(name) {\n</span></span><span class=line><span class=cl>                 if (!name) return null;\n</span></span><span class=line><span class=cl><span class=gu>@@ -547,6 +549,8 @@ _p[9] = {\n</span></span></span><span class=line><span class=cl>                         this._interactChange();\n</span></span><span class=line><span class=cl>                     }\n</span></span><span class=line><span class=cl>                 }\n</span></span><span class=line><span class=cl><span class=gi>+                // Fix: afterExecCommand hook\n</span></span></span><span class=line><span class=cl><span class=gi>+                this._fire(new MinderEvent(&#34;afterExecCommand&#34;, eventParams, false));\n</span></span></span><span class=line><span class=cl>                 return result === undefined ? null : result;\n</span></span><span class=line><span class=cl>             }\n</span></span><span class=line><span class=cl>         });\n</span></span><span class=line><span class=cl><span class=gu>@@ -1254,6 +1258,22 @@ _p[13] = {\n</span></span></span><span class=line><span class=cl>                 });\n</span></span><span class=line><span class=cl>                 return this;\n</span></span><span class=line><span class=cl>             },\n</span></span><span class=line><span class=cl><span class=gi>+            /**\n</span></span></span><span class=line><span class=cl><span class=gi>+             * @patch 2022.10.26 @Lruihao 修复缺少 once 侦听指定事件一次\n</span></span></span><span class=line><span class=cl><span class=gi>+             * @param {String} name \n</span></span></span><span class=line><span class=cl><span class=gi>+             * @param {Function} callback \n</span></span></span><span class=line><span class=cl><span class=gi>+             */\n</span></span></span><span class=line><span class=cl><span class=gi>+            once: function(name, callback) {\n</span></span></span><span class=line><span class=cl><span class=gi>+                var km = this;\n</span></span></span><span class=line><span class=cl><span class=gi>+                name.split(/\\s+/).forEach(function(n) {\n</span></span></span><span class=line><span class=cl><span class=gi>+                    const tmpCallback = (e) =&gt; {\n</span></span></span><span class=line><span class=cl><span class=gi>+                      callback(e);\n</span></span></span><span class=line><span class=cl><span class=gi>+                      km.off(n.toLowerCase(), tmpCallback)\n</span></span></span><span class=line><span class=cl><span class=gi>+                    };\n</span></span></span><span class=line><span class=cl><span class=gi>+                    km._listen(n.toLowerCase(), tmpCallback);\n</span></span></span><span class=line><span class=cl><span class=gi>+                });\n</span></span></span><span class=line><span class=cl><span class=gi>+                return this;\n</span></span></span><span class=line><span class=cl><span class=gi>+            },\n</span></span></span><span class=line><span class=cl>             off: function(name, callback) {\n</span></span><span class=line><span class=cl>                 var types = name.split(/\\s+/);\n</span></span><span class=line><span class=cl>                 var i, j, callbacks, removeIndex;\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>发现其实就是一个 diff 文件，这个文件里面记录了修改的内容，以及修改的位置，这样就可以在安装依赖的时候自动执行补丁了。</p><h2 class=heading-element id=使用补丁><span>5 使用补丁</span>\n<a href=#%e4%bd%bf%e7%94%a8%e8%a1%a5%e4%b8%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <code>package.json</code> 中添加如下内容：</p><json-viewer value='\"{\\n  \\\"scripts\\\": {\\n    \\\"postinstall\\\": \\\"patch-package\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><h2 class=heading-element id=提交补丁><span>6 提交补丁</span>\n<a href=#%e6%8f%90%e4%ba%a4%e8%a1%a5%e4%b8%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git add .\n</span></span><span class=line><span class=cl>git commit -m <span class=s2>&#34;Chore: patch @7polo/kityminder-core&#34;</span>\n</span></span><span class=line><span class=cl>git push</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=测试><span>7 测试</span>\n<a href=#%e6%b5%8b%e8%af%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>执行一次完整的依赖安装 => 构建发布，一切符合预期，大功告成~</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/patch-package/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/patch-package/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_node.js/patch-package/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%A6%82%E4%BD%95%E7%BB%99+npm+%E5%8C%85%E6%89%93%E8%A1%A5%E4%B8%81%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%A6%82%E4%BD%95%E7%BB%99+npm+%E5%8C%85%E6%89%93%E8%A1%A5%E4%B8%81%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/patch-package/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/patch-package/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/patch-package/ data-title=\"如何给 Npm 包打补丁？\" data-hashtags=debug,npm,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/patch-package/ data-hashtag=debug><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/patch-package/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/patch-package/ data-title=\"如何给 Npm 包打补丁？\" data-image=images/featured-image.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/patch-package/ data-title=\"如何给 Npm 包打补丁？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/debug/ class=post-tag title=\"标签 - debug\">debug</a><a href=/tags/npm/ class=post-tag title=\"标签 - npm\">npm</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/dashboard-summary/ class=post-nav-item rel=prev title=拖拽式仪表盘系列总结><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>拖拽式仪表盘系列总结</a><a href=/posts/ssh-sign/ class=post-nav-item rel=next title=\"SSH 提交签名验证\">SSH 提交签名验证<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#背景>背景</a></li><li><a href=#安装-patch-package>安装 patch-package</a></li><li><a href=#修改源码>修改源码</a></li><li><a href=#生成补丁>生成补丁</a></li><li><a href=#使用补丁>使用补丁</a></li><li><a href=#提交补丁>提交补丁</a></li><li><a href=#测试>测试</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d6ce767f8a5bfa4fb341cd873fd19755.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d6ce767f8a5bfa4fb341cd873fd19755.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/patch-package/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/patch-package/index.md",
    "content": "# 如何给 Npm 包打补丁？\n\n\n## 背景\n\n今天鬼事神差想起去年写的一段 dirty hack 代码，当时是在 [vue-minder-editor-extended](https://github.com/Lruihao/vue-minder-editor-extended) 这个项目为了解决百度开源的 [@7polo/kityminder-core](https://github.com/fex-team/kityminder-core) npm 包的 bug，但是百度早在 17-18 年就停止更新了，我又不想自己 fork 一份源码然后重新发包，于是当时直接从 node_modules 里面复制出了打包后的源码进行修改，然后放到了项目中 `src/script/patch/kityminder.core.js`，并因修改了引入：\n\n```diff\n- require('@7polo/kityminder-core');\n+ require('./script/patch/kityminder.core');\n```\n\n但是今天刷抖音看到类似的问题，回想起来这种做法真的是太蠢了，于是就想着有没有更好的办法，于是就一番搜索有了这篇文章。\n\n## 安装 patch-package\n\n```bash\nnpm i patch-package --save-dev\n```\n\n## 修改源码\n\n在 `node_modules` 目录下找到需要打补丁的包，然后修改源码，比如我这里修改了 `node_modules/@7polo/kityminder-core/dist/kityminder.core.js`，修改后直接保存。\n\n## 生成补丁\n\n```bash\nnpx patch-package @7polo/kityminder-core\n```\n\n此时在根目录下会得到如下文件：\n\n```bash\n├── patches\n│   └── @7polo-kityminder-core+1.4.53.patch\n└── package.json\n```\n\n想看看这个补丁文件里面是什么东西，打开 `patches/@7polo-kityminder-core+1.4.53.patch`，内容如下：\n\n```diff\ndiff --git a/node_modules/@7polo/kityminder-core/.DS_Store b/node_modules/@7polo/kityminder-core/.DS_Store\nnew file mode 100644\nindex 0000000..c88a062\nBinary files /dev/null and b/node_modules/@7polo/kityminder-core/.DS_Store differ\ndiff --git a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\nindex 78dfbaf..32f276d 100644\n--- a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\n+++ b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js\n@@ -513,6 +513,8 @@ _p[9] = {\n          *\n          * @param {string} name 要执行的命令名称\n          * @param {argument} args 要传递给命令的其它参数\n+         * \n+         * @patch 2022.10.19 @Lruihao 修复缺少 afterExecCommand hook\n          */\n             execCommand: function(name) {\n                 if (!name) return null;\n@@ -547,6 +549,8 @@ _p[9] = {\n                         this._interactChange();\n                     }\n                 }\n+                // Fix: afterExecCommand hook\n+                this._fire(new MinderEvent(\"afterExecCommand\", eventParams, false));\n                 return result === undefined ? null : result;\n             }\n         });\n@@ -1254,6 +1258,22 @@ _p[13] = {\n                 });\n                 return this;\n             },\n+            /**\n+             * @patch 2022.10.26 @Lruihao 修复缺少 once 侦听指定事件一次\n+             * @param {String} name \n+             * @param {Function} callback \n+             */\n+            once: function(name, callback) {\n+                var km = this;\n+                name.split(/\\s+/).forEach(function(n) {\n+                    const tmpCallback = (e) => {\n+                      callback(e);\n+                      km.off(n.toLowerCase(), tmpCallback)\n+                    };\n+                    km._listen(n.toLowerCase(), tmpCallback);\n+                });\n+                return this;\n+            },\n             off: function(name, callback) {\n                 var types = name.split(/\\s+/);\n                 var i, j, callbacks, removeIndex;\n```\n\n发现其实就是一个 diff 文件，这个文件里面记录了修改的内容，以及修改的位置，这样就可以在安装依赖的时候自动执行补丁了。\n\n## 使用补丁\n\n在 `package.json` 中添加如下内容：\n\n```json\n{\n  \"scripts\": {\n    \"postinstall\": \"patch-package\"\n  }\n}\n```\n\n## 提交补丁\n\n```bash\ngit add .\ngit commit -m \"Chore: patch @7polo/kityminder-core\"\ngit push\n```\n\n## 测试\n\n执行一次完整的依赖安装 => 构建发布，一切符合预期，大功告成~\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/patch-package/  \n\n"
  },
  {
    "path": "posts/phpfile/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Php 按行读取文件信息 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\n\"><meta name=keywords content='PHP'><meta itemprop=name content=\"php 按行读取文件信息\"><meta itemprop=description content=\"1 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\"><meta itemprop=datePublished content=\"2019-09-28T17:11:17+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"669\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/phpfile/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"php 按行读取文件信息\"><meta property=\"og:description\" content=\"1 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-09-28T17:11:17+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"php 按行读取文件信息\"><meta name=twitter:description content=\"1 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/phpfile/ title=\"php 按行读取文件信息 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/mmt/ title=\"沐目之，湘也。— 沐目体\"><link rel=next type=text/html href=https://lruihao.cn/posts/phppushurl/ title=\"php 同时主动推送链接到百度，神马等站长平台\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/phpfile/index.md title=\"php 按行读取文件信息 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"php 按行读取文件信息\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/phpfile\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP\",\"wordcount\":669,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/phpfile\\/\",\"datePublished\":\"2019-09-28T17:11:17+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/phpfile/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Php 按行读取文件信息</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Php 按行读取文件信息</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=post-meta-line><span title=\"发布于 2019-09-28 17:11:17\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-09-28>2019-09-28</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"669 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Php 按行读取文件信息\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#普通方法>普通方法</a></li><li><a href=#快速方法>快速方法</a></li><li><a href=#结果>结果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=普通方法><span>1 普通方法</span>\n<a href=#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先采用<code>fopen()</code>函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。<code>feof()</code>判断是否到最后一行，<code>fgets()</code>读取一行文本。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//首先采用“fopen”函数打开文件，得到返回值的就是资源类型。\n</span></span></span><span class=line><span class=cl>  <span class=nv>$file_handle</span> <span class=o>=</span> <span class=nx>fopen</span><span class=p>(</span><span class=s2>&#34;C:</span><span class=se>\\\\</span><span class=s2>Users</span><span class=se>\\\\</span><span class=s2>李瑞豪、\\Desktop</span><span class=se>\\\\</span><span class=s2>备忘录。txt&#34;</span><span class=p>,</span><span class=s2>&#34;r&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nv>$file_handle</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=c1>//接着采用 while 循环一行行地读取文件，然后输出每行的文字\n</span></span></span><span class=line><span class=cl>      <span class=k>while</span> <span class=p>(</span><span class=o>!</span><span class=nx>feof</span><span class=p>(</span><span class=nv>$file_handle</span><span class=p>))</span> <span class=p>{</span> <span class=c1>//判断是否到最后一行\n</span></span></span><span class=line><span class=cl>          <span class=nv>$line</span> <span class=o>=</span> <span class=nx>fgets</span><span class=p>(</span><span class=nv>$file_handle</span><span class=p>);</span> <span class=c1>//读取一行文本\n</span></span></span><span class=line><span class=cl>          <span class=k>echo</span> <span class=nv>$line</span><span class=p>;</span> <span class=c1>//输出一行文本\n</span></span></span><span class=line><span class=cl>          <span class=k>echo</span> <span class=s2>&#34;&lt;br /&gt;&#34;</span><span class=p>;</span> <span class=c1>//换行\n</span></span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nx>fclose</span><span class=p>(</span><span class=nv>$file_handle</span><span class=p>);</span><span class=c1>//关闭文件\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>?&gt;</span><span class=err>\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><code>readfile（）</code>函数，返回一整个 String</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=k>echo</span> <span class=nx>readfile</span><span class=p>(</span><span class=s2>&#34;C:</span><span class=se>\\\\</span><span class=s2>Users</span><span class=se>\\\\</span><span class=s2>李瑞豪、\\Desktop</span><span class=se>\\\\</span><span class=s2>备忘录。txt&#34;</span><span class=p>);</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=快速方法><span>2 快速方法</span>\n<a href=#%e5%bf%ab%e9%80%9f%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>file()</code>函数把整个文件读入一个数组中。<br>数组中的每个元素都是文件中相应的一行，包括换行符在内。<br><strong>语法</strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=nx>file</span><span class=p>(</span><span class=nx>path</span><span class=p>,</span><span class=nx>include_path</span><span class=p>,</span><span class=nx>context</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><div class=table-wrapper><table><thead><tr><th style=text-align:center>参数</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:center>path</td><td style=text-align:left>必需。规定要读取的文件。</td></tr><tr><td style=text-align:center>include_path</td><td style=text-align:left>可选参数<code>include_path</code> 可以是以下一个或多个常量：<br>**<code>FILE_USE_INCLUDE_PATH</code><strong>在 include_path 中查找文件。<br></strong><code>FILE_IGNORE_NEW_LINES</code><strong>在数组每个元素的末尾不要添加换行符<br></strong><code>FILE_SKIP_EMPTY_LINES</code>**跳过空行</td></tr><tr><td style=text-align:center>context</td><td style=text-align:left>可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL，则忽略。</td></tr></tbody></table></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nv>$filepath</span><span class=o>=</span><span class=s2>&#34;H:</span><span class=se>\\\\</span><span class=s2>lruihao.cn</span><span class=se>\\\\</span><span class=s2>public</span><span class=se>\\\\</span><span class=s2>baidu_urls.txt&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>echo</span> <span class=s2>&#34;&lt;hr/&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//将文件每一行读到一个数组里面去\n</span></span></span><span class=line><span class=cl>  <span class=nv>$texts</span> <span class=o>=</span> <span class=nx>file</span><span class=p>(</span><span class=nv>$filepath</span><span class=p>,</span> <span class=nx>FILE_IGNORE_NEW_LINES</span> <span class=o>|</span> <span class=nx>FILE_SKIP_EMPTY_LINES</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>var_dump</span><span class=p>(</span><span class=nv>$texts</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>?&gt;</span><span class=err>\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=结果><span>3 结果</span>\n<a href=#%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/phpfile/images/readFile.png title=读取文件结果 data-thumbnail=/posts/phpfile/images/readFile.png data-sub-html=\"<h2>读取文件结果</h2>\"><img loading=lazy src=/posts/phpfile/images/readFile.png alt=读取文件结果 height=770 width=579></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/phpfile/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpfile/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_php/phpfile/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20php+%E6%8C%89%E8%A1%8C%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cphp+%E6%8C%89%E8%A1%8C%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF%7c%0A%7cURL%7chttps://lruihao.cn/posts/phpfile/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpfile/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/phpfile/ data-title=\"Php 按行读取文件信息\" data-hashtags=PHP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/phpfile/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/phpfile/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/phpfile/ data-title=\"Php 按行读取文件信息\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/phpfile/ data-title=\"Php 按行读取文件信息\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/mmt/ class=post-nav-item rel=prev title=Lruihao/MMT><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/MMT</a><a href=/posts/phppushurl/ class=post-nav-item rel=next title=\"Php 同时主动推送链接到百度，神马等站长平台\">Php 同时主动推送链接到百度，神马等站长平台<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#普通方法>普通方法</a></li><li><a href=#快速方法>快速方法</a></li><li><a href=#结果>结果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f1f2b8a76d1d4e07827b8548b3ef1c8d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f1f2b8a76d1d4e07827b8548b3ef1c8d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/phpfile/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/phpfile/index.md",
    "content": "# Php 按行读取文件信息\n\n\n## 普通方法\n\n首先采用`fopen()`函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。`feof()`判断是否到最后一行，`fgets()`读取一行文本。\n\n<!--more-->\n\n```php\n<?php\n\n  //首先采用“fopen”函数打开文件，得到返回值的就是资源类型。\n  $file_handle = fopen(\"C:\\\\Users\\\\李瑞豪、\\Desktop\\\\备忘录。txt\",\"r\");\n  if ($file_handle){\n      //接着采用 while 循环一行行地读取文件，然后输出每行的文字\n      while (!feof($file_handle)) { //判断是否到最后一行\n          $line = fgets($file_handle); //读取一行文本\n          echo $line; //输出一行文本\n          echo \"<br />\"; //换行\n      }\n  }\n  fclose($file_handle);//关闭文件\n\n?>\n```\n\n`readfile（）`函数，返回一整个 String\n\n```php\necho readfile(\"C:\\\\Users\\\\李瑞豪、\\Desktop\\\\备忘录。txt\");\n```\n\n## 快速方法\n\n`file()`函数把整个文件读入一个数组中。  \n数组中的每个元素都是文件中相应的一行，包括换行符在内。  \n**语法**\n\n```php\nfile(path,include_path,context)\n```\n\n|     参数     | 描述                                                                                                                                                                                                                    |\n| :----------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n|     path     | 必需。规定要读取的文件。                                                                                                                                                                                                |\n| include_path | 可选参数`include_path` 可以是以下一个或多个常量：<br/>**`FILE_USE_INCLUDE_PATH`**在 include_path 中查找文件。<br/>**`FILE_IGNORE_NEW_LINES`**在数组每个元素的末尾不要添加换行符<br/>**`FILE_SKIP_EMPTY_LINES`**跳过空行 |\n|   context    | 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL，则忽略。                                                                                                                                   |\n\n```php\n<?php\n\n  $filepath=\"H:\\\\lruihao.cn\\\\public\\\\baidu_urls.txt\";\n  echo \"<hr/>\";\n  //将文件每一行读到一个数组里面去\n  $texts = file($filepath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);\n  var_dump($texts);\n\n?>\n```\n\n## 结果\n\n![读取文件结果](images/readFile.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/phpfile/  \n\n"
  },
  {
    "path": "posts/phpform/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>简单评论模块--Php 表单练习 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=' 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\nPHP 表单安全性的重要提示\n$_SERVER[\"PHP_SELF\"]变量能够被黑客利用！\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\n'><meta name=keywords content='PHP'><meta itemprop=name content=\"简单评论模块--php 表单练习\"><meta itemprop=description content='简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\nPHP 表单安全性的重要提示\n$_SERVER[\"PHP_SELF\"]变量能够被黑客利用！\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。'><meta itemprop=datePublished content=\"2019-07-19T11:38:59+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"922\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/phpform/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"简单评论模块--php 表单练习\"><meta property=\"og:description\" content='简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\nPHP 表单安全性的重要提示\n$_SERVER[\"PHP_SELF\"]变量能够被黑客利用！\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-07-19T11:38:59+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"简单评论模块--php 表单练习\"><meta name=twitter:description content='简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\nPHP 表单安全性的重要提示\n$_SERVER[\"PHP_SELF\"]变量能够被黑客利用！\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/phpform/ title=\"简单评论模块--php 表单练习 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/phpfunc/ title=\"php 函数学习\"><link rel=next type=text/html href=https://lruihao.cn/posts/dev-rules/ title=\"Web 开发规则，代码规范\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/phpform/index.md title=\"简单评论模块--php 表单练习 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"简单评论模块--php 表单练习\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/phpform\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP\",\"wordcount\":922,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/phpform\\/\",\"datePublished\":\"2019-07-19T11:38:59+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/phpform/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>简单评论模块--Php 表单练习</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>简单评论模块--Php 表单练习</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=post-meta-line><span title=\"发布于 2019-07-19 11:38:59\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-07-19>2019-07-19</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"922 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"简单评论模块--Php 表单练习\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，<br><strong>PHP 表单安全性的重要提示</strong><br><code>$_SERVER[\"PHP_SELF\"]</code>变量能够被黑客利用！<br>如果页面中使用了<code>PHP_SELF</code>，用户能够输入下划线然后执行跨站点脚本（XSS）。<br>比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。</p><p><code>跨站点脚本（Cross-site scripting，XSS）</code>是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。</p></blockquote><p>可以像 valine 一样在用户输入完后保留输入，还有一些正则控制输入提示等简单功能。UI 就丑爆了算了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=cp>&lt;!DOCTYPE HTML&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;html&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;head&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;style&gt;</span>\n</span></span><span class=line><span class=cl>.error {color: #FF0000;}\n</span></span><span class=line><span class=cl>.main{\n</span></span><span class=line><span class=cl>   width: 20%;\n</span></span><span class=line><span class=cl>   height: 100%;\n</span></span><span class=line><span class=cl>   border: 1px #000 solid;\n</span></span><span class=line><span class=cl>   padding: 20px;\n</span></span><span class=line><span class=cl>}\n</span></span><span class=line><span class=cl><span class=nt>&lt;/style&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;/head&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;body&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>&lt;?php\n</span></span></span><span class=line><span class=cl><span class=cp>// 定义变量并设置为空值\n</span></span></span><span class=line><span class=cl><span class=cp>$nameErr = $emailErr = $genderErr = $websiteErr = &#34;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>$name = $email = $gender = $comment = $website = &#34;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>if ($_SERVER[&#34;REQUEST_METHOD&#34;] == &#34;POST&#34;) {\n</span></span></span><span class=line><span class=cl><span class=cp>  if (empty($_POST[&#34;name&#34;])) {\n</span></span></span><span class=line><span class=cl><span class=cp>    $nameErr = &#34;Name is required&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>  } else {\n</span></span></span><span class=line><span class=cl><span class=cp>    $name = test_input($_POST[&#34;name&#34;]);\n</span></span></span><span class=line><span class=cl><span class=cp>    // 检查名字是否包含字母和空格\n</span></span></span><span class=line><span class=cl><span class=cp>    if (!preg_match(&#34;/^[a-zA-Z ]*$/&#34;,$name)) {\n</span></span></span><span class=line><span class=cl><span class=cp>      $nameErr = &#34;Only letters and white space allowed&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>    }\n</span></span></span><span class=line><span class=cl><span class=cp>  }\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>  if (empty($_POST[&#34;email&#34;])) {\n</span></span></span><span class=line><span class=cl><span class=cp>    $emailErr = &#34;Email is required&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>  } else {\n</span></span></span><span class=line><span class=cl><span class=cp>    $email = test_input($_POST[&#34;email&#34;]);\n</span></span></span><span class=line><span class=cl><span class=cp>    // 检查电邮地址语法是否有效\n</span></span></span><span class=line><span class=cl><span class=cp>    if (!preg_match(&#34;/([\\w\\-]+\\@[\\w\\-]+\\.[\\w\\-]+)/&#34;,$email)) {\n</span></span></span><span class=line><span class=cl><span class=cp>      $emailErr = &#34;Invalid email format&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>    }\n</span></span></span><span class=line><span class=cl><span class=cp>  }\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>  if (empty($_POST[&#34;website&#34;])) {\n</span></span></span><span class=line><span class=cl><span class=cp>    $website = &#34;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>  } else {\n</span></span></span><span class=line><span class=cl><span class=cp>    $website = test_input($_POST[&#34;website&#34;]);\n</span></span></span><span class=line><span class=cl><span class=cp>    // 检查 URL 地址语言是否有效（此正则表达式同样允许 URL 中的下划线）\n</span></span></span><span class=line><span class=cl><span class=cp>    if (!preg_match(&#34;/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&amp;@#\\/%?=~_|!:,.;]*[-a-z0-9+&amp;@#\\/%\n</span></span></span><span class=line><span class=cl><span class=cp>    =~_|]/i&#34;,$website)) {\n</span></span></span><span class=line><span class=cl><span class=cp>      $websiteErr = &#34;Invalid URL&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>    }\n</span></span></span><span class=line><span class=cl><span class=cp>  }\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>  if (empty($_POST[&#34;comment&#34;])) {\n</span></span></span><span class=line><span class=cl><span class=cp>    $comment = &#34;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>  } else {\n</span></span></span><span class=line><span class=cl><span class=cp>    $comment = test_input($_POST[&#34;comment&#34;]);\n</span></span></span><span class=line><span class=cl><span class=cp>  }\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>  if (empty($_POST[&#34;gender&#34;])) {\n</span></span></span><span class=line><span class=cl><span class=cp>    $genderErr = &#34;Gender is required&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>  } else {\n</span></span></span><span class=line><span class=cl><span class=cp>    $gender = test_input($_POST[&#34;gender&#34;]);\n</span></span></span><span class=line><span class=cl><span class=cp>  }\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>}\n</span></span></span><span class=line><span class=cl><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>function test_input($data) {\n</span></span></span><span class=line><span class=cl><span class=cp>   $data = trim($data);\n</span></span></span><span class=line><span class=cl><span class=cp>   $data = stripslashes($data);\n</span></span></span><span class=line><span class=cl><span class=cp>   $data = htmlspecialchars($data);\n</span></span></span><span class=line><span class=cl><span class=cp>   return $data;\n</span></span></span><span class=line><span class=cl><span class=cp>}\n</span></span></span><span class=line><span class=cl><span class=cp>?&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;div</span> <span class=na>class=</span><span class=s>&#34;main&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;h2&gt;</span>PHP 验证实例<span class=nt>&lt;/h2&gt;</span>\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;form</span> <span class=na>method=</span><span class=s>&#34;post&#34;</span> <span class=na>action=</span><span class=s>&#34;&lt;?php echo htmlspecialchars($_SERVER[&#39;PHP_SELF&#39;]);?&gt;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>      姓名：<span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;text&#34;</span> <span class=na>name=</span><span class=s>&#34;name&#34;</span> <span class=na>value=</span><span class=s>&#34;&lt;?php echo $name;?&gt;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;span</span> <span class=na>class=</span><span class=s>&#34;error&#34;</span><span class=nt>&gt;</span>* <span class=cp>&lt;?php echo $nameErr;?&gt;</span><span class=nt>&lt;/span&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br&gt;&lt;br&gt;</span>\n</span></span><span class=line><span class=cl>      性别：\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;radio&#34;</span> <span class=na>name=</span><span class=s>&#34;gender&#34;</span> <span class=err>&lt;?php</span> <span class=err>if</span> <span class=err>(isset($gender)</span> <span class=err>&amp;&amp;</span> <span class=err>$</span><span class=na>gender=</span><span class=s>=&#34;女性&#34;)</span> <span class=err>echo</span> <span class=err>&#34;checked&#34;;?</span><span class=nt>&gt;</span> value=&#34;女性&#34;&gt;女性\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;radio&#34;</span> <span class=na>name=</span><span class=s>&#34;gender&#34;</span> <span class=err>&lt;?php</span> <span class=err>if</span> <span class=err>(isset($gender)</span> <span class=err>&amp;&amp;</span> <span class=err>$</span><span class=na>gender=</span><span class=s>=&#34;男性&#34;)</span> <span class=err>echo</span> <span class=err>&#34;checked&#34;;?</span><span class=nt>&gt;</span> value=&#34;男性&#34;&gt;男性\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;span</span> <span class=na>class=</span><span class=s>&#34;error&#34;</span><span class=nt>&gt;</span>* <span class=cp>&lt;?php echo $genderErr;?&gt;</span><span class=nt>&lt;/span&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br&gt;&lt;br&gt;</span>\n</span></span><span class=line><span class=cl>      电邮：<span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;text&#34;</span> <span class=na>name=</span><span class=s>&#34;email&#34;</span> <span class=na>value=</span><span class=s>&#34;&lt;?php echo $email;?&gt;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;span</span> <span class=na>class=</span><span class=s>&#34;error&#34;</span><span class=nt>&gt;</span>* <span class=cp>&lt;?php echo $emailErr;?&gt;</span><span class=nt>&lt;/span&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br&gt;&lt;br&gt;</span>\n</span></span><span class=line><span class=cl>      网址：<span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;text&#34;</span> <span class=na>name=</span><span class=s>&#34;website&#34;</span> <span class=na>value=</span><span class=s>&#34;&lt;?php echo $website;?&gt;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;span</span> <span class=na>class=</span><span class=s>&#34;error&#34;</span><span class=nt>&gt;</span><span class=cp>&lt;?php echo $websiteErr;?&gt;</span><span class=nt>&lt;/span&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br&gt;&lt;br&gt;</span>\n</span></span><span class=line><span class=cl>      评论：<span class=nt>&lt;textarea</span> <span class=na>name=</span><span class=s>&#34;comment&#34;</span> <span class=na>rows=</span><span class=s>&#34;5&#34;</span> <span class=na>cols=</span><span class=s>&#34;40&#34;</span><span class=nt>&gt;</span><span class=cp>&lt;?php echo $comment;?&gt;</span><span class=nt>&lt;/textarea&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br&gt;&lt;br&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;input</span> <span class=na>type=</span><span class=s>&#34;submit&#34;</span> <span class=na>name=</span><span class=s>&#34;submit&#34;</span> <span class=na>value=</span><span class=s>&#34;提交&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;h2&gt;</span>你的输入是：<span class=nt>&lt;/h2&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=cp>&lt;?php\n</span></span></span><span class=line><span class=cl><span class=cp>         echo $name.&#34;&lt;br/&gt;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>         echo $gender.&#34;&lt;br/&gt;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>         echo $email.&#34;&lt;br/&gt;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>         echo $website.&#34;&lt;br/&gt;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>         echo $comment.&#34;&lt;br/&gt;&#34;;\n</span></span></span><span class=line><span class=cl><span class=cp>      ?&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>&lt;br/&gt;</span>\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;/form&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;/div&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;/body&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;/html&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/phpform/images/comment.png title=实际效果 data-thumbnail=/posts/phpform/images/comment.png data-sub-html=\"<h2>实际效果</h2>\"><img loading=lazy src=/posts/phpform/images/comment.png alt=实际效果 height=906 width=461></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/phpform/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpform/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_php/phpform/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%AE%80%E5%8D%95%E8%AF%84%E8%AE%BA%E6%A8%A1%E5%9D%97--php+%E8%A1%A8%E5%8D%95%E7%BB%83%E4%B9%A0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%AE%80%E5%8D%95%E8%AF%84%E8%AE%BA%E6%A8%A1%E5%9D%97--php+%E8%A1%A8%E5%8D%95%E7%BB%83%E4%B9%A0%7c%0A%7cURL%7chttps://lruihao.cn/posts/phpform/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpform/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/phpform/ data-title=\"简单评论模块--Php 表单练习\" data-hashtags=PHP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/phpform/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/phpform/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/phpform/ data-title=\"简单评论模块--Php 表单练习\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/phpform/ data-title=\"简单评论模块--Php 表单练习\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/phpfunc/ class=post-nav-item rel=prev title=\"Php 函数学习\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Php 函数学习</a><a href=/posts/dev-rules/ class=post-nav-item rel=next title=\"Web 开发规则，代码规范\">Web 开发规则，代码规范<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/772eed652fda688964d02acb01784609.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/772eed652fda688964d02acb01784609.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/phpform/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/phpform/index.md",
    "content": "# 简单评论模块--Php 表单练习\n\n\n> 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，  \n> **PHP 表单安全性的重要提示**  \n> `$_SERVER[\"PHP_SELF\"]`变量能够被黑客利用！  \n> 如果页面中使用了`PHP_SELF`，用户能够输入下划线然后执行跨站点脚本（XSS）。  \n> 比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\n>\n> `跨站点脚本（Cross-site scripting，XSS）`是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\n\n<!--more-->\n\n可以像 valine 一样在用户输入完后保留输入，还有一些正则控制输入提示等简单功能。UI 就丑爆了算了。\n\n```xml 完整表单\n<!DOCTYPE HTML>\n<html>\n<head>\n<style>\n.error {color: #FF0000;}\n.main{\n   width: 20%;\n   height: 100%;\n   border: 1px #000 solid;\n   padding: 20px;\n}\n</style>\n</head>\n<body>\n\n<?php\n// 定义变量并设置为空值\n$nameErr = $emailErr = $genderErr = $websiteErr = \"\";\n$name = $email = $gender = $comment = $website = \"\";\n\nif ($_SERVER[\"REQUEST_METHOD\"] == \"POST\") {\n  if (empty($_POST[\"name\"])) {\n    $nameErr = \"Name is required\";\n  } else {\n    $name = test_input($_POST[\"name\"]);\n    // 检查名字是否包含字母和空格\n    if (!preg_match(\"/^[a-zA-Z ]*$/\",$name)) {\n      $nameErr = \"Only letters and white space allowed\";\n    }\n  }\n\n  if (empty($_POST[\"email\"])) {\n    $emailErr = \"Email is required\";\n  } else {\n    $email = test_input($_POST[\"email\"]);\n    // 检查电邮地址语法是否有效\n    if (!preg_match(\"/([\\w\\-]+\\@[\\w\\-]+\\.[\\w\\-]+)/\",$email)) {\n      $emailErr = \"Invalid email format\";\n    }\n  }\n\n  if (empty($_POST[\"website\"])) {\n    $website = \"\";\n  } else {\n    $website = test_input($_POST[\"website\"]);\n    // 检查 URL 地址语言是否有效（此正则表达式同样允许 URL 中的下划线）\n    if (!preg_match(\"/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%\n    =~_|]/i\",$website)) {\n      $websiteErr = \"Invalid URL\";\n    }\n  }\n\n  if (empty($_POST[\"comment\"])) {\n    $comment = \"\";\n  } else {\n    $comment = test_input($_POST[\"comment\"]);\n  }\n\n  if (empty($_POST[\"gender\"])) {\n    $genderErr = \"Gender is required\";\n  } else {\n    $gender = test_input($_POST[\"gender\"]);\n  }\n\n}\n\nfunction test_input($data) {\n   $data = trim($data);\n   $data = stripslashes($data);\n   $data = htmlspecialchars($data);\n   return $data;\n}\n?>\n<div class=\"main\">\n   <h2>PHP 验证实例</h2>\n   <form method=\"post\" action=\"<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>\">\n      姓名：<input type=\"text\" name=\"name\" value=\"<?php echo $name;?>\">\n      <span class=\"error\">* <?php echo $nameErr;?></span>\n      <br><br>\n      性别：\n      <input type=\"radio\" name=\"gender\" <?php if (isset($gender) && $gender==\"女性\") echo \"checked\";?> value=\"女性\">女性\n      <input type=\"radio\" name=\"gender\" <?php if (isset($gender) && $gender==\"男性\") echo \"checked\";?> value=\"男性\">男性\n      <span class=\"error\">* <?php echo $genderErr;?></span>\n      <br><br>\n      电邮：<input type=\"text\" name=\"email\" value=\"<?php echo $email;?>\">\n      <span class=\"error\">* <?php echo $emailErr;?></span>\n      <br><br>\n      网址：<input type=\"text\" name=\"website\" value=\"<?php echo $website;?>\">\n      <span class=\"error\"><?php echo $websiteErr;?></span>\n      <br><br>\n      评论：<textarea name=\"comment\" rows=\"5\" cols=\"40\"><?php echo $comment;?></textarea>\n      <br><br>\n      <input type=\"submit\" name=\"submit\" value=\"提交\">\n      <h2>你的输入是：</h2>\n      <?php\n         echo $name.\"<br/>\";\n         echo $gender.\"<br/>\";\n         echo $email.\"<br/>\";\n         echo $website.\"<br/>\";\n         echo $comment.\"<br/>\";\n      ?>\n      <br/>\n   </form>\n</div>\n</body>\n</html>\n```\n\n![实际效果](images/comment.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/phpform/  \n\n"
  },
  {
    "path": "posts/phpfunc/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Php 函数学习 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 练习 php 函数的基本使用。\n注：\n必选参数在可选参数的前面。\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\n\"><meta name=keywords content='PHP'><meta itemprop=name content=\"php 函数学习\"><meta itemprop=description content=\"练习 php 函数的基本使用。\n注：\n必选参数在可选参数的前面。\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\"><meta itemprop=datePublished content=\"2019-07-15T11:37:33+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"106\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/phpfunc/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"php 函数学习\"><meta property=\"og:description\" content=\"练习 php 函数的基本使用。\n注：\n必选参数在可选参数的前面。\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-07-15T11:37:33+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"php 函数学习\"><meta name=twitter:description content=\"练习 php 函数的基本使用。\n注：\n必选参数在可选参数的前面。\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/phpfunc/ title=\"php 函数学习 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wamproot/ title=\"WAMPServer 自定义网站根目录等设置\"><link rel=next type=text/html href=https://lruihao.cn/posts/phpform/ title=\"简单评论模块--php 表单练习\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/phpfunc/index.md title=\"php 函数学习 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"php 函数学习\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/phpfunc\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP\",\"wordcount\":106,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/phpfunc\\/\",\"datePublished\":\"2019-07-15T11:37:33+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/phpfunc/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Php 函数学习</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Php 函数学习</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=post-meta-line><span title=\"发布于 2019-07-15 11:37:33\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-07-15>2019-07-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"106 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Php 函数学习\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>练习 php 函数的基本使用。<br>注：<br>必选参数在可选参数的前面。<br>可在函数中定义函数，需要先调用外层函数才能调用内层函数。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl><span class=cm>/*\n</span></span></span><span class=line><span class=cl><span class=cm>创建表格\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span>\n</span></span><span class=line><span class=cl><span class=k>function</span> <span class=nf>createTable</span><span class=p>(</span><span class=nv>$rows</span><span class=p>,</span><span class=nv>$cols</span><span class=p>,</span><span class=nv>$bgcolor</span><span class=o>=</span><span class=s1>&#39;pink&#39;</span><span class=p>,</span><span class=nv>$content</span><span class=o>=</span><span class=s1>&#39;x&#39;</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>  <span class=nv>$table</span> <span class=o>=</span> <span class=s2>&#34;&lt;table border=&#39;1&#39; bgcolor=&#39;</span><span class=si>{</span><span class=nv>$bgcolor</span><span class=si>}</span><span class=s2>&#39; cellpadding=&#39;10&#39; cellspacing=&#39;0&#39; width=&#39;50%&#39; &gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=nv>$i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=nv>$i</span><span class=o>&lt;=</span><span class=nv>$rows</span><span class=p>;</span><span class=nv>$i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nv>$table</span><span class=o>.=</span><span class=s2>&#34;&lt;tr&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=nv>$j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=nv>$j</span><span class=o>&lt;=</span><span class=nv>$cols</span><span class=p>;</span><span class=nv>$j</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>      <span class=nv>$table</span><span class=o>.=</span><span class=s2>&#34;&lt;td&gt;</span><span class=si>{</span><span class=nv>$content</span><span class=si>}</span><span class=s2>&lt;/td&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nv>$table</span> <span class=o>.=</span><span class=s2>&#34;&lt;/tr&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=nv>$table</span><span class=o>.=</span><span class=s2>&#34;&lt;/table&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nv>$table</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=k>echo</span> <span class=nx>createTable</span><span class=p>(</span><span class=mi>5</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=s1>&#39;pink&#39;</span><span class=p>,</span><span class=s1>&#39;hello lruihao&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=cp>?&gt;</span><span class=err>\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/phpfunc/images/table.png title=\"php 创建表格\" data-thumbnail=/posts/phpfunc/images/table.png data-sub-html=\"<h2>php 创建表格</h2>\"><img loading=lazy src=/posts/phpfunc/images/table.png alt=\"php 创建表格\" height=276 width=971></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/phpfunc/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpfunc/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_php/phpfunc/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20php+%E5%87%BD%E6%95%B0%E5%AD%A6%E4%B9%A0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cphp+%E5%87%BD%E6%95%B0%E5%AD%A6%E4%B9%A0%7c%0A%7cURL%7chttps://lruihao.cn/posts/phpfunc/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phpfunc/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/phpfunc/ data-title=\"Php 函数学习\" data-hashtags=PHP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/phpfunc/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/phpfunc/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/phpfunc/ data-title=\"Php 函数学习\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/phpfunc/ data-title=\"Php 函数学习\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wamproot/ class=post-nav-item rel=prev title=\"WAMPServer 自定义网站根目录等设置\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>WAMPServer 自定义网站根目录等设置</a><a href=/posts/phpform/ class=post-nav-item rel=next title=\"简单评论模块--Php 表单练习\">简单评论模块--Php 表单练习<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6a3423da80259f1997c2e2252c8554ab.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6a3423da80259f1997c2e2252c8554ab.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/phpfunc/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/phpfunc/index.md",
    "content": "# Php 函数学习\n\n\n> 练习 php 函数的基本使用。  \n> 注：  \n> 必选参数在可选参数的前面。  \n> 可在函数中定义函数，需要先调用外层函数才能调用内层函数。\n\n<!--more-->\n\n```php php 函数动态创建表格\n<?php\n/*\n创建表格\n*/\nfunction createTable($rows,$cols,$bgcolor='pink',$content='x'){\n  $table = \"<table border='1' bgcolor='{$bgcolor}' cellpadding='10' cellspacing='0' width='50%' >\";\n  for($i=1;$i<=$rows;$i++){\n    $table.=\"<tr>\";\n    for($j=1;$j<=$cols;$j++){\n      $table.=\"<td>{$content}</td>\";\n    }\n    $table .=\"</tr>\";\n  }\n  $table.=\"</table>\";\n  return $table;\n}\necho createTable(5,5,'pink','hello lruihao');\n?>\n```\n\n![php 创建表格](images/table.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/phpfunc/  \n\n"
  },
  {
    "path": "posts/phppushurl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Php 同时主动推送链接到百度，神马等站长平台 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" php 主动推送站点链接到百度站长，神马站长进行 SEO。\n\"><meta name=keywords content='PHP'><meta itemprop=name content=\"php 同时主动推送链接到百度，神马等站长平台\"><meta itemprop=description content=\"php 主动推送站点链接到百度站长，神马站长进行 SEO。\"><meta itemprop=datePublished content=\"2019-09-28T18:32:42+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"207\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/phppushurl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"php 同时主动推送链接到百度，神马等站长平台\"><meta property=\"og:description\" content=\"php 主动推送站点链接到百度站长，神马站长进行 SEO。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-09-28T18:32:42+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"php 同时主动推送链接到百度，神马等站长平台\"><meta name=twitter:description content=\"php 主动推送站点链接到百度站长，神马站长进行 SEO。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/phppushurl/ title=\"php 同时主动推送链接到百度，神马等站长平台 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/phpfile/ title=\"php 按行读取文件信息\"><link rel=next type=text/html href=https://lruihao.cn/posts/restful/ title=RESTful><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/phppushurl/index.md title=\"php 同时主动推送链接到百度，神马等站长平台 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"php 同时主动推送链接到百度，神马等站长平台\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/phppushurl\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP\",\"wordcount\":207,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/phppushurl\\/\",\"datePublished\":\"2019-09-28T18:32:42+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/phppushurl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Php 同时主动推送链接到百度，神马等站长平台</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Php 同时主动推送链接到百度，神马等站长平台</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=post-meta-line><span title=\"发布于 2019-09-28 18:32:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-09-28>2019-09-28</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"207 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Php 同时主动推送链接到百度，神马等站长平台\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#代码>代码</a></li><li><a href=#提交结果>提交结果</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>php 主动推送站点链接到百度站长，神马站长进行 SEO。</p></blockquote><h2 class=heading-element id=代码><span>1 代码</span>\n<a href=#%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>把需要提交的链接和各站长 api 分别放在两个 txt 文件里面，然后运行 php 文件进行提交，不同站长提交成功一般返回的都是 <code>200</code> 状态码。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//链接存放路径和站长 api 文件存放路径\n</span></span></span><span class=line><span class=cl>  <span class=nv>$urls_path</span> <span class=o>=</span> <span class=s2>&#34;H:</span><span class=se>\\\\</span><span class=s2>lruihao.cn</span><span class=se>\\\\</span><span class=s2>public</span><span class=se>\\\\</span><span class=s2>baidu_urls.txt&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nv>$apis_path</span> <span class=o>=</span> <span class=s2>&#34;G:</span><span class=se>\\\\</span><span class=s2>Demo</span><span class=se>\\\\</span><span class=s2>lrh01</span><span class=se>\\\\</span><span class=s2>zhanzhang_api.txt&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//将文件每一行读到一个数组里面去\n</span></span></span><span class=line><span class=cl>  <span class=nv>$urls</span> <span class=o>=</span> <span class=nx>file</span><span class=p>(</span><span class=nv>$urls_path</span><span class=p>,</span> <span class=nx>FILE_IGNORE_NEW_LINES</span> <span class=o>|</span> <span class=nx>FILE_SKIP_EMPTY_LINES</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nv>$apis</span> <span class=o>=</span> <span class=nx>file</span><span class=p>(</span><span class=nv>$apis_path</span><span class=p>,</span> <span class=nx>FILE_IGNORE_NEW_LINES</span> <span class=o>|</span> <span class=nx>FILE_SKIP_EMPTY_LINES</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=nv>$x</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=nv>$x</span><span class=o>&lt;</span><span class=nx>count</span><span class=p>(</span><span class=nv>$apis</span><span class=p>);</span><span class=nv>$x</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nv>$ch</span> <span class=o>=</span> <span class=nx>curl_init</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=nv>$options</span> <span class=o>=</span>  <span class=k>array</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>      <span class=nx>CURLOPT_URL</span> <span class=o>=&gt;</span> <span class=nv>$apis</span><span class=p>[</span><span class=nv>$x</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>      <span class=nx>CURLOPT_POST</span> <span class=o>=&gt;</span> <span class=k>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>CURLOPT_RETURNTRANSFER</span> <span class=o>=&gt;</span> <span class=k>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>CURLOPT_POSTFIELDS</span> <span class=o>=&gt;</span> <span class=nx>implode</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2>&#34;</span><span class=p>,</span> <span class=nv>$urls</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>      <span class=nx>CURLOPT_HTTPHEADER</span> <span class=o>=&gt;</span> <span class=k>array</span><span class=p>(</span><span class=s1>&#39;Content-Type: text/plain&#39;</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nx>curl_setopt_array</span><span class=p>(</span><span class=nv>$ch</span><span class=p>,</span> <span class=nv>$options</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nv>$result</span> <span class=o>=</span> <span class=nx>curl_exec</span><span class=p>(</span><span class=nv>$ch</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>echo</span> <span class=s2>&#34;API: &lt;br/&gt;&amp;emsp;&#34;</span><span class=o>.</span><span class=nv>$apis</span><span class=p>[</span><span class=nv>$x</span><span class=p>]</span><span class=o>.</span><span class=s2>&#34;&lt;br/&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>echo</span> <span class=s2>&#34;result: &lt;br/&gt;&amp;emsp;&#34;</span><span class=o>.</span><span class=nv>$result</span><span class=o>.</span><span class=s2>&#34;&lt;hr/&gt;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cp>?&gt;</span><span class=err>\n</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=提交结果><span>2 提交结果</span>\n<a href=#%e6%8f%90%e4%ba%a4%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/phppushurl/images/result.png title=提交结果 data-thumbnail=/posts/phppushurl/images/result.png data-sub-html=\"<h2>提交结果</h2>\"><img loading=lazy src=/posts/phppushurl/images/result.png alt=提交结果 height=371 width=534></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/phppushurl/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phppushurl/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_php/phppushurl/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20php+%E5%90%8C%E6%97%B6%E4%B8%BB%E5%8A%A8%E6%8E%A8%E9%80%81%E9%93%BE%E6%8E%A5%E5%88%B0%E7%99%BE%E5%BA%A6%EF%BC%8C%E7%A5%9E%E9%A9%AC%E7%AD%89%E7%AB%99%E9%95%BF%E5%B9%B3%E5%8F%B0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cphp+%E5%90%8C%E6%97%B6%E4%B8%BB%E5%8A%A8%E6%8E%A8%E9%80%81%E9%93%BE%E6%8E%A5%E5%88%B0%E7%99%BE%E5%BA%A6%EF%BC%8C%E7%A5%9E%E9%A9%AC%E7%AD%89%E7%AB%99%E9%95%BF%E5%B9%B3%E5%8F%B0%7c%0A%7cURL%7chttps://lruihao.cn/posts/phppushurl/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/phppushurl/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/phppushurl/ data-title=\"Php 同时主动推送链接到百度，神马等站长平台\" data-hashtags=PHP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/phppushurl/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/phppushurl/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/phppushurl/ data-title=\"Php 同时主动推送链接到百度，神马等站长平台\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/phppushurl/ data-title=\"Php 同时主动推送链接到百度，神马等站长平台\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/phpfile/ class=post-nav-item rel=prev title=\"Php 按行读取文件信息\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Php 按行读取文件信息</a><a href=/posts/restful/ class=post-nav-item rel=next title=RESTful>RESTful<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#代码>代码</a></li><li><a href=#提交结果>提交结果</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6c4f5cb0664c744c67d3d8e2ee2a8bff.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6c4f5cb0664c744c67d3d8e2ee2a8bff.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/phppushurl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/phppushurl/index.md",
    "content": "# Php 同时主动推送链接到百度，神马等站长平台\n\n\n> php 主动推送站点链接到百度站长，神马站长进行 SEO。\n\n<!--more-->\n\n## 代码\n\n把需要提交的链接和各站长 api 分别放在两个 txt 文件里面，然后运行 php 文件进行提交，不同站长提交成功一般返回的都是 `200` 状态码。\n\n```php\n<?php\n\n  //链接存放路径和站长 api 文件存放路径\n  $urls_path = \"H:\\\\lruihao.cn\\\\public\\\\baidu_urls.txt\";\n  $apis_path = \"G:\\\\Demo\\\\lrh01\\\\zhanzhang_api.txt\";\n  //将文件每一行读到一个数组里面去\n  $urls = file($urls_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);\n  $apis = file($apis_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);\n\n  for($x=0;$x<count($apis);$x++){\n    $ch = curl_init();\n    $options =  array(\n      CURLOPT_URL => $apis[$x],\n      CURLOPT_POST => true,\n      CURLOPT_RETURNTRANSFER => true,\n      CURLOPT_POSTFIELDS => implode(\"\\n\", $urls),\n      CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),\n    );\n    curl_setopt_array($ch, $options);\n    $result = curl_exec($ch);\n    echo \"API: <br/>&emsp;\".$apis[$x].\"<br/>\";\n    echo \"result: <br/>&emsp;\".$result.\"<hr/>\";\n  }\n\n?>\n```\n\n## 提交结果\n\n![提交结果](images/result.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/phppushurl/  \n\n"
  },
  {
    "path": "posts/piles-with-stones/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Piles-With-Stones | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Codeforces Round #500 (Div. 2)\n题目链接：Piles With Stones\n\"><meta name=keywords content='ACM,Codeforces,C++'><meta itemprop=name content=\"Piles-with-stones\"><meta itemprop=description content=\"Codeforces Round #500 (Div. 2)\n题目链接：Piles With Stones\"><meta itemprop=datePublished content=\"2018-07-31T11:09:31+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"161\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,Codeforces,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/piles-with-stones/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Piles-with-stones\"><meta property=\"og:description\" content=\"Codeforces Round #500 (Div. 2)\n题目链接：Piles With Stones\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T11:09:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"Codeforces\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Piles-with-stones\"><meta name=twitter:description content=\"Codeforces Round #500 (Div. 2)\n题目链接：Piles With Stones\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/piles-with-stones/ title=\"Piles-with-stones | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ title=畅通工程-HDU-1232（并查集经典模板）><link rel=next type=text/html href=https://lruihao.cn/posts/poj-2236/ title=\"wireless network-POJ-2236（并查集）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/piles-with-stones/index.md title=\"Piles-with-stones | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Piles-with-stones\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/piles-with-stones\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, Codeforces, C\\u002b\\u002b\",\"wordcount\":161,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/piles-with-stones\\/\",\"datePublished\":\"2018-07-31T11:09:31+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/piles-with-stones/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Piles-With-Stones</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Piles-With-Stones</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 11:09:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"161 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=Piles-With-Stones><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Codeforces Round #500 (Div. 2)<br>题目链接：<a href=https://codeforces.com/contest/1013/problem/A target=_blank rel=\"external nofollow noopener noreferrer\">Piles With Stones<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大致题意就是有 n 堆石头，第一天每堆有一定数目的石头，第二天石头可能被小朋友移动或者带走，求满足题意的两天的石碓；<br>所以第二天的石头总数不会大于第一天的，所以是 sum1-sum2>=0 即可。<br>//又只打了一道题，扣了 80 多分。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>x</span><span class=p>[</span><span class=mi>55</span><span class=p>],</span><span class=n>y</span><span class=p>[</span><span class=mi>55</span><span class=p>],</span><span class=n>n</span><span class=p>,</span><span class=n>s1</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>s2</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>        <span class=n>s1</span><span class=o>+=</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>y</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>        <span class=n>s2</span><span class=o>+=</span><span class=n>y</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>((</span><span class=n>s1</span><span class=o>-</span><span class=n>s2</span><span class=p>)</span><span class=o>&gt;=</span><span class=mi>0</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Yes</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=n>printf</span><span class=p>(</span><span class=s>&#34;No</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/piles-with-stones/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/piles-with-stones.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/piles-with-stones.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Piles-with-stones&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cPiles-with-stones%7c%0A%7cURL%7chttps://lruihao.cn/posts/piles-with-stones/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/piles-with-stones.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/piles-with-stones/ data-title=Piles-With-Stones data-hashtags=ACM,Codeforces,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/piles-with-stones/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/piles-with-stones/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/piles-with-stones/ data-title=Piles-With-Stones data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/piles-with-stones/ data-title=Piles-With-Stones><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/codeforces/ class=post-tag title=\"标签 - Codeforces\">Codeforces</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=post-nav-item rel=prev title=畅通工程-HDU-1232（并查集经典模板）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>畅通工程-HDU-1232（并查集经典模板）</a><a href=/posts/poj-2236/ class=post-nav-item rel=next title=\"Wireless Network-POJ-2236（并查集）\">Wireless Network-POJ-2236（并查集）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7ca193687bf18f5f37d6d598a9e2d72e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7ca193687bf18f5f37d6d598a9e2d72e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/piles-with-stones/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/piles-with-stones/index.md",
    "content": "# Piles-With-Stones\n\n\nCodeforces Round #500 (Div. 2)  \n题目链接：[Piles With Stones](https://codeforces.com/contest/1013/problem/A)\n\n<!--more-->\n\n大致题意就是有 n 堆石头，第一天每堆有一定数目的石头，第二天石头可能被小朋友移动或者带走，求满足题意的两天的石碓；  \n所以第二天的石头总数不会大于第一天的，所以是 sum1-sum2>=0 即可。  \n//又只打了一道题，扣了 80 多分。\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint x[55],y[55],n,s1=0,s2=0;\n\nint main(){\n    scanf(\"%d\",&n);\n    for(int i=0;i<n;i++){\n        scanf(\"%d\",&x[i]);\n        s1+=x[i];\n    }\n    for(int i=0;i<n;i++){\n        scanf(\"%d\",&y[i]);\n        s2+=y[i];\n    }\n    if((s1-s2)>=0)\n        printf(\"Yes\\n\");\n    else printf(\"No\\n\");\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/piles-with-stones/  \n\n"
  },
  {
    "path": "posts/player/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>宅音乐播放器 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\n\"><meta name=keywords content='PHP,ThinkPHP,Layui,MySQL'><meta itemprop=name content=\"宅音乐播放器\"><meta itemprop=description content=\"宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\"><meta itemprop=datePublished content=\"2019-03-19T23:32:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"427\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP,ThinkPHP,Layui,MySQL\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/player/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"宅音乐播放器\"><meta property=\"og:description\" content=\"宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-19T23:32:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"article:tag\" content=\"ThinkPHP\"><meta property=\"article:tag\" content=\"Layui\"><meta property=\"article:tag\" content=\"MySQL\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"宅音乐播放器\"><meta name=twitter:description content=\"宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/player/ title=\"宅音乐播放器 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/bt/ title=宝塔面板安装><link rel=next type=text/html href=https://lruihao.cn/posts/windefault/ title=\"ubuntu + windows 双系统默认启动项设置\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/player/index.md title=\"宅音乐播放器 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"宅音乐播放器\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/player\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP, ThinkPHP, Layui, MySQL\",\"wordcount\":427,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/player\\/\",\"datePublished\":\"2019-03-19T23:32:56+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/player/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>宅音乐播放器</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>宅音乐播放器</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-19 23:32:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-19>2019-03-19</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"427 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=宅音乐播放器><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/player/images/index.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/player/images/index.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#技术栈>技术栈</a></li><li><a href=#演示站>演示站</a></li><li><a href=#安装>安装</a><ol><li><a href=#视频安装教程>视频安装教程</a></li><li><a href=#依赖>依赖</a></li><li><a href=#步骤>步骤</a></li><li><a href=#伪静态配置>伪静态配置</a><ol><li><a href=#nginx>nginx</a></li><li><a href=#apache>apache</a></li></ol></li><li><a href=#启动项目>启动项目</a></li></ol></li><li><a href=#预览>预览</a><ol><li><a href=#首页>首页</a></li><li><a href=#登陆页面>登陆页面</a></li><li><a href=#后台首页>后台首页</a></li><li><a href=#后台播放器管理页面>后台播放器管理页面</a></li><li><a href=#后台歌单管理页面>后台歌单管理页面</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~<br><a href=https://github.com/lzx8589561/zhai-music target=_blank rel=\"external nofollow noopener noreferrer\">原项目<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 由 <a href=https://www.ilt.me target=_blank rel=\"external nofollow noopener noreferrer\">IT 技术宅<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 开源，使用 thinkPHP 开发后台。 <a href=https://github.com/Lruihao/zhai-music target=_blank rel=\"external nofollow noopener noreferrer\">fork 地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是我个人学习模仿的库，也是相当于备份源码。<br><em>注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。</em></p></blockquote><h2 class=heading-element id=技术栈><span>1 技术栈</span>\n<a href=#%e6%8a%80%e6%9c%af%e6%a0%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>后端：thinkphp 5.1</li><li>前端：layui</li><li>数据库：mysql</li></ul><h2 class=heading-element id=演示站><span>2 演示站</span>\n<a href=#%e6%bc%94%e7%a4%ba%e7%ab%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>已兼容移动端，测试账号仅供测试请勿修改密码！</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-text\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-text data-lang=text><span class=line><span class=cl>test\n</span></span><span class=line><span class=cl>test123</span></span></code></pre></td></tr></table></div></div></div><ul><li><a href=https://player.ilt.me/ target=_blank rel=\"external nofollow noopener noreferrer\">https://player.ilt.me/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://player.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">https://player.lruihao.cn/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=安装><span>3 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=视频安装教程><span>3.1 视频安装教程</span>\n<a href=#%e8%a7%86%e9%a2%91%e5%ae%89%e8%a3%85%e6%95%99%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://www.bilibili.com/video/av46476706 target=_blank rel=\"external nofollow noopener noreferrer\">https://www.bilibili.com/video/av46476706<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=依赖><span>3.2 依赖</span>\n<a href=#%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>composer</li><li>php 5.6+</li><li>mysql 5.5+</li></ul><h3 class=heading-element id=步骤><span>3.3 步骤</span>\n<a href=#%e6%ad%a5%e9%aa%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>安装 php 依赖包</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>composer install</span></span></code></pre></td></tr></table></div></div></div><p>配置数据库，配置链接数据库名以及用户名密码</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>/config/database.php</span></span></code></pre></td></tr></table></div></div></div><p>创建数据库</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>字符编码：utf8 -- UTF-8 Unicode\n</span></span><span class=line><span class=cl>导入数据库脚本，脚本位置 extend/database</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=伪静态配置><span>3.4 伪静态配置</span>\n<a href=#%e4%bc%aa%e9%9d%99%e6%80%81%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=nginx><span>3.4.1 nginx</span>\n<a href=#nginx class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>  location / {\n</span></span><span class=line><span class=cl>      index  index.htm index.html index.php;\n</span></span><span class=line><span class=cl>      #访问路径的文件不存在则重写 URL 转交给 ThinkPHP 处理\n</span></span><span class=line><span class=cl>      if (!-e $request_filename) {\n</span></span><span class=line><span class=cl>         rewrite  ^/(.*)$  /index.php?s=$1  last;\n</span></span><span class=line><span class=cl>         break;\n</span></span><span class=line><span class=cl>      }\n</span></span><span class=line><span class=cl>  }</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=apache><span>3.4.2 apache</span>\n<a href=#apache class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>项目自带 apache 静态化无需配置</p><h3 class=heading-element id=启动项目><span>3.5 启动项目</span>\n<a href=#%e5%90%af%e5%8a%a8%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>添加 public 为 web 根目录</li><li>若为 apache 服务器则默认伪静态，nginx 可自行配置伪静态</li></ul><h2 class=heading-element id=预览><span>4 预览</span>\n<a href=#%e9%a2%84%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/player/images/player.png title=/posts/player/images/player.png data-thumbnail=/posts/player/images/player.png data-sub-html=\"<h2>/posts/player/images/player.png</h2>\"><img loading=lazy src=/posts/player/images/player.png alt=/posts/player/images/player.png height=290 width=463></a></p><h3 class=heading-element id=首页><span>4.1 首页</span>\n<a href=#%e9%a6%96%e9%a1%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/player/images/index.png title=/posts/player/images/index.png data-thumbnail=/posts/player/images/index.png data-sub-html=\"<h2>/posts/player/images/index.png</h2>\"><img loading=lazy src=/posts/player/images/index.png alt=/posts/player/images/index.png height=900 width=1920></a></p><h3 class=heading-element id=登陆页面><span>4.2 登陆页面</span>\n<a href=#%e7%99%bb%e9%99%86%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/player/images/login.png title=/posts/player/images/login.png data-thumbnail=/posts/player/images/login.png data-sub-html=\"<h2>/posts/player/images/login.png</h2>\"><img loading=lazy src=/posts/player/images/login.png alt=/posts/player/images/login.png height=902 width=1920></a></p><h3 class=heading-element id=后台首页><span>4.3 后台首页</span>\n<a href=#%e5%90%8e%e5%8f%b0%e9%a6%96%e9%a1%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/player/images/admin_index.png title=/posts/player/images/admin_index.png data-thumbnail=/posts/player/images/admin_index.png data-sub-html=\"<h2>/posts/player/images/admin_index.png</h2>\"><img loading=lazy src=/posts/player/images/admin_index.png alt=/posts/player/images/admin_index.png height=900 width=1920></a></p><h3 class=heading-element id=后台播放器管理页面><span>4.4 后台播放器管理页面</span>\n<a href=#%e5%90%8e%e5%8f%b0%e6%92%ad%e6%94%be%e5%99%a8%e7%ae%a1%e7%90%86%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/player/images/admin_player.png title=/posts/player/images/admin_player.png data-thumbnail=/posts/player/images/admin_player.png data-sub-html=\"<h2>/posts/player/images/admin_player.png</h2>\"><img loading=lazy src=/posts/player/images/admin_player.png alt=/posts/player/images/admin_player.png height=898 width=1920></a></p><h3 class=heading-element id=后台歌单管理页面><span>4.5 后台歌单管理页面</span>\n<a href=#%e5%90%8e%e5%8f%b0%e6%ad%8c%e5%8d%95%e7%ae%a1%e7%90%86%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/player/images/admin_song_sheet.png title=/posts/player/images/admin_song_sheet.png data-thumbnail=/posts/player/images/admin_song_sheet.png data-sub-html=\"<h2>/posts/player/images/admin_song_sheet.png</h2>\"><img loading=lazy src=/posts/player/images/admin_song_sheet.png alt=/posts/player/images/admin_song_sheet.png height=897 width=1920></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/player/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/player/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_php/player/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%85%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%99%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%85%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%99%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/player/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_php/player/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/player/ data-title=宅音乐播放器 data-hashtags=PHP,ThinkPHP,Layui,MySQL><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/player/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/player/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/player/ data-title=宅音乐播放器 data-image=/posts/player/images/index.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/player/ data-title=宅音乐播放器><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/thinkphp/ class=post-tag title=\"标签 - ThinkPHP\">ThinkPHP</a><a href=/tags/layui/ class=post-tag title=\"标签 - Layui\">Layui</a><a href=/tags/mysql/ class=post-tag title=\"标签 - MySQL\">MySQL</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/bt/ class=post-nav-item rel=prev title=宝塔面板安装><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>宝塔面板安装</a><a href=/posts/windefault/ class=post-nav-item rel=next title=\"Ubuntu + Windows 双系统默认启动项设置\">Ubuntu + Windows 双系统默认启动项设置<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#技术栈>技术栈</a></li><li><a href=#演示站>演示站</a></li><li><a href=#安装>安装</a><ol><li><a href=#视频安装教程>视频安装教程</a></li><li><a href=#依赖>依赖</a></li><li><a href=#步骤>步骤</a></li><li><a href=#伪静态配置>伪静态配置</a><ol><li><a href=#nginx>nginx</a></li><li><a href=#apache>apache</a></li></ol></li><li><a href=#启动项目>启动项目</a></li></ol></li><li><a href=#预览>预览</a><ol><li><a href=#首页>首页</a></li><li><a href=#登陆页面>登陆页面</a></li><li><a href=#后台首页>后台首页</a></li><li><a href=#后台播放器管理页面>后台播放器管理页面</a></li><li><a href=#后台歌单管理页面>后台歌单管理页面</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/334b4758f80bf1340a4e02810b62509b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/334b4758f80bf1340a4e02810b62509b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/player/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/player/index.md",
    "content": "# 宅音乐播放器\n\n\n> 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~  \n> [原项目](https://github.com/lzx8589561/zhai-music) 由 [IT 技术宅](https://www.ilt.me) 开源，使用 thinkPHP 开发后台。 [fork 地址](https://github.com/Lruihao/zhai-music) 是我个人学习模仿的库，也是相当于备份源码。  \n> _注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。_\n\n<!--more-->\n\n## 技术栈\n\n- 后端：thinkphp 5.1\n- 前端：layui\n- 数据库：mysql\n\n## 演示站\n\n> 已兼容移动端，测试账号仅供测试请勿修改密码！\n\n```text 测试账号\ntest\ntest123\n```\n\n- <https://player.ilt.me/>\n- <https://player.lruihao.cn/>\n\n## 安装\n\n### 视频安装教程\n\n<https://www.bilibili.com/video/av46476706>\n\n### 依赖\n\n- composer\n- php 5.6+\n- mysql 5.5+\n\n### 步骤\n\n安装 php 依赖包\n\n```\ncomposer install\n```\n\n配置数据库，配置链接数据库名以及用户名密码\n\n```\n/config/database.php\n```\n\n创建数据库\n\n```\n字符编码：utf8 -- UTF-8 Unicode\n导入数据库脚本，脚本位置 extend/database\n```\n\n### 伪静态配置\n\n#### nginx\n\n```\n  location / {\n      index  index.htm index.html index.php;\n      #访问路径的文件不存在则重写 URL 转交给 ThinkPHP 处理\n      if (!-e $request_filename) {\n         rewrite  ^/(.*)$  /index.php?s=$1  last;\n         break;\n      }\n  }\n```\n\n#### apache\n\n项目自带 apache 静态化无需配置\n\n### 启动项目\n\n- 添加 public 为 web 根目录\n- 若为 apache 服务器则默认伪静态，nginx 可自行配置伪静态\n\n## 预览\n\n![](images/player.png)\n\n### 首页\n\n![](images/index.png)\n\n### 登陆页面\n\n![](images/login.png)\n\n### 后台首页\n\n![](images/admin_index.png)\n\n### 后台播放器管理页面\n\n![](images/admin_player.png)\n\n### 后台歌单管理页面\n\n![](images/admin_song_sheet.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/player/  \n\n"
  },
  {
    "path": "posts/poj-1321/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Poj-1321 棋盘问题（dfs） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n1 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\n\"><meta name=keywords content='DFS,ACM,搜索,POJ,C++'><meta itemprop=name content=\"poj-1321 棋盘问题（dfs）\"><meta itemprop=description content=\"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n1 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\"><meta itemprop=datePublished content=\"2018-07-22T11:58:14+08:00\"><meta itemprop=dateModified content=\"2018-07-22T11:58:14+08:00\"><meta itemprop=wordCount content=\"549\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"DFS,acm,搜索,POJ,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-1321/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"poj-1321 棋盘问题（dfs）\"><meta property=\"og:description\" content=\"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n1 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:58:14+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T11:58:14+08:00\"><meta property=\"article:tag\" content=\"DFS\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"poj-1321 棋盘问题（dfs）\"><meta name=twitter:description content=\"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n1 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-1321/ title=\"poj-1321 棋盘问题（dfs） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-1426/ title=\"poj-1426-Find The Multiple(dfs)\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj-2251/ title=\"poj-2251-Dungeon Master（三维 bfs 最短路）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-1321/index.md title=\"poj-1321 棋盘问题（dfs） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"poj-1321 棋盘问题（dfs）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1321\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"DFS, ACM, 搜索, POJ, C\\u002b\\u002b\",\"wordcount\":549,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1321\\/\",\"datePublished\":\"2018-07-22T11:58:14+08:00\",\"dateModified\":\"2018-07-22T11:58:14+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-1321/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Poj-1321 棋盘问题（dfs）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Poj-1321 棋盘问题（dfs）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:58:14\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"549 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Poj-1321 棋盘问题（dfs）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#source>Source</a></li><li><a href=#思路>思路</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Time Limit: 1000MS<br>Memory Limit: 10000K<br>Total Submissions: 63659<br>Accepted: 30423</p><h2 class=heading-element id=description><span>1 Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。</p><h2 class=heading-element id=input><span>2 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入含有多组测试数据。<br>每组数据的第一行是两个正整数，n k，用一个空格隔开，表示了将在一个 n * n 的矩阵内描述棋盘，以及摆放棋子的数目。n &lt;= 8 , k &lt;= n<br>当为 -1 -1 时表示输入结束。<br>随后的 n 行描述了棋盘的形状：每行有 n 个字符，其中 # 表示棋盘区域， . 表示空白区域（数据保证不出现多余的空白行或者空白列）。</p><h2 class=heading-element id=output><span>3 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于每一组数据，给出一行输出，输出摆放的方案数目 C（数据保证 C&lt;2^31）。</p><h2 class=heading-element id=sample-input><span>4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>2 1\n#.\n.#\n4 4\n...#\n..#.\n.#..\n#...\n-1 -1\n</code></pre><h2 class=heading-element id=sample-output><span>5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>2\n1\n</code></pre><h2 class=heading-element id=source><span>6 Source</span>\n<a href=#source class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>蔡错@pku</p><h2 class=heading-element id=思路><span>7 思路</span>\n<a href=#%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>下子方案数就相当于遍历图的不同遍历数，用 dfs 变形。</li><li>理解以下数据还有样例应该差不多了</li></ul><p><code>3 2</code>\n<code>#..</code>\n<code>.#.</code>\n<code>..#</code>\n<code>3</code></p><p><code>3 2</code>\n<code>#..</code>\n<code>.##</code>\n<code>..#</code>\n<code>4</code></p><h2 class=heading-element id=ac-代码><span>8 AC 代码</span>\n<a href=#ac-%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstring&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;algorithm&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>char</span> <span class=n>mp</span><span class=p>[</span><span class=mi>8</span><span class=p>][</span><span class=mi>8</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>v</span><span class=p>[</span><span class=mi>8</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>k</span><span class=p>,</span><span class=n>w</span><span class=p>,</span><span class=n>r</span><span class=p>;</span><span class=c1>//状态计数器 r\n</span></span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>dfs</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>)</span><span class=c1>//逐行深搜，x 为当前搜索行\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>w</span><span class=o>==</span><span class=n>k</span><span class=p>)</span><span class=c1>//下子数 w\n</span></span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>r</span><span class=o>++</span><span class=p>;</span><span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=n>n</span><span class=p>)</span><span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>!=</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>mp</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=sc>&#39;#&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>w</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>dfs</span><span class=p>(</span><span class=n>x</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>w</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>dfs</span><span class=p>(</span><span class=n>x</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span><span class=c1>//搜索下一行\n</span></span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>k</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>==-</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>k</span><span class=o>==-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>mp</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>mp</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>v</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>v</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>mp</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>w</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>r</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>dfs</span><span class=p>(</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>r</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://blog.csdn.net/hurmishine/article/details/49835913 target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 11:58:14\">更新于 2018-07-22&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-1321/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1321.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-1321.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20poj-1321+%E6%A3%8B%E7%9B%98%E9%97%AE%E9%A2%98%EF%BC%88dfs%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpoj-1321+%E6%A3%8B%E7%9B%98%E9%97%AE%E9%A2%98%EF%BC%88dfs%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-1321/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1321.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-1321/ data-title=\"Poj-1321 棋盘问题（dfs）\" data-hashtags=DFS,ACM,搜索,POJ,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-1321/ data-hashtag=DFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-1321/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-1321/ data-title=\"Poj-1321 棋盘问题（dfs）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-1321/ data-title=\"Poj-1321 棋盘问题（dfs）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag title=\"标签 - DFS\">DFS</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-1426/ class=post-nav-item rel=prev title=\"Poj-1426-Find the Multiple(dfs)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Poj-1426-Find the Multiple(dfs)</a><a href=/posts/poj-2251/ class=post-nav-item rel=next title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\">Poj-2251-Dungeon Master（三维 Bfs 最短路）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#source>Source</a></li><li><a href=#思路>思路</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/644dbb6a92190c74c2ca806d9d56dd02.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/644dbb6a92190c74c2ca806d9d56dd02.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-1321/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-1321/index.md",
    "content": "# Poj-1321 棋盘问题（dfs）\n\n\nTime Limit: 1000MS  \nMemory Limit: 10000K  \nTotal Submissions: 63659  \nAccepted: 30423\n\n## Description\n\n在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\n\n## Input\n\n输入含有多组测试数据。  \n每组数据的第一行是两个正整数，n k，用一个空格隔开，表示了将在一个 n \\* n 的矩阵内描述棋盘，以及摆放棋子的数目。n <= 8 , k <= n  \n当为 -1 -1 时表示输入结束。  \n随后的 n 行描述了棋盘的形状：每行有 n 个字符，其中 # 表示棋盘区域， . 表示空白区域（数据保证不出现多余的空白行或者空白列）。\n\n## Output\n\n对于每一组数据，给出一行输出，输出摆放的方案数目 C（数据保证 C<2^31）。\n\n## Sample Input\n\n    2 1\n    #.\n    .#\n    4 4\n    ...#\n    ..#.\n    .#..\n    #...\n    -1 -1\n\n## Sample Output\n\n    2\n    1\n\n## Source\n\n蔡错@pku\n\n## 思路\n\n- 下子方案数就相当于遍历图的不同遍历数，用 dfs 变形。\n- 理解以下数据还有样例应该差不多了\n\n`3 2`\n`#..`\n`.#.`\n`..#`\n`3`\n\n`3 2`\n`#..`\n`.##`\n`..#`\n`4`\n\n## AC 代码\n\n<!-- markdownlint-disable code-block-style -->\n\n```cpp\n#include<iostream>\n#include<cstdio>\n#include<cstring>\n#include<algorithm>\nusing namespace std;\nchar mp[8][8];\nint v[8];\nint n,k,w,r;//状态计数器 r\nvoid dfs(int x)//逐行深搜，x 为当前搜索行\n{\n    if(w==k)//下子数 w\n    {\n        r++;return;\n    }\n    if(x==n)return;\n    for(int i=0;i<n;i++)\n    {\n        if(v[i]!=1&&mp[x][i]=='#')\n        {\n            v[i]=1;\n            w++;\n            dfs(x+1);\n            w--;\n            v[i]=0;\n        }\n    }\n    dfs(x+1);//搜索下一行\n}\n\nint main()\n{\n    while(cin>>n>>k)\n    {\n        if(n==-1&&k==-1)\n            return 0;\n        memset(mp,0,sizeof(mp));\n        memset(v,0,sizeof(v));\n        for(int i=0;i<n;i++)\n            cin>>mp[i];\n        w=0;r=0;\n        dfs(0);\n        cout<<r<<endl;\n    }\n}\n```\n\n[传送门](https://blog.csdn.net/hurmishine/article/details/49835913)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-1321/  \n\n"
  },
  {
    "path": "posts/poj-1426/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Poj-1426-Find the Multiple(dfs) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n1.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\n\"><meta name=keywords content='DFS,ACM,搜索,POJ,C++'><meta itemprop=name content=\"poj-1426-Find The Multiple(dfs)\"><meta itemprop=description content=\"1 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n1.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\"><meta itemprop=datePublished content=\"2018-07-22T11:57:13+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"401\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"DFS,acm,搜索,POJ,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-1426/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"poj-1426-Find The Multiple(dfs)\"><meta property=\"og:description\" content=\"1 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n1.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:57:13+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"DFS\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"poj-1426-Find The Multiple(dfs)\"><meta name=twitter:description content=\"1 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n1.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-1426/ title=\"poj-1426-Find The Multiple(dfs) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/adjacent-replacements/ title=\"Adjacent Replacements\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj-1321/ title=\"poj-1321 棋盘问题（dfs）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-1426/index.md title=\"poj-1426-Find The Multiple(dfs) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"poj-1426-Find The Multiple(dfs)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1426\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"DFS, ACM, 搜索, POJ, C\\u002b\\u002b\",\"wordcount\":401,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1426\\/\",\"datePublished\":\"2018-07-22T11:57:13+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-1426/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Poj-1426-Find the Multiple(dfs)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Poj-1426-Find the Multiple(dfs)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:57:13\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"401 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Poj-1426-Find the Multiple(dfs)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#find-the-multiple>Find The Multiple</a><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=find-the-multiple><span>1 Find The Multiple</span>\n<a href=#find-the-multiple class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Time Limit: 1000MS Memory Limit: 10000K<br>Total Submissions: 40713 Accepted: 17088 Special Judge</p><h3 class=heading-element id=description><span>1.1 Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.</p><h3 class=heading-element id=input><span>1.2 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The input file may contain multiple test cases. Each line contains a value of n (1 &lt;= n &lt;= 200). A line containing a zero terminates the input.</p><h3 class=heading-element id=output><span>1.3 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.</p><h3 class=heading-element id=sample-input><span>1.4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>2\n6\n19\n0\n</code></pre><h3 class=heading-element id=sample-output><span>1.5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>10\n100100100100100100\n111111111111111111\n</code></pre><hr><p>给定一个正整数 n，请编写一个程序来寻找 n 的一个非零的倍数 m，这个 m 应当在十进制表示时每一位上只包含 0 或者 1。你可以假定 n 不大于 200 且 m 不多于 100 位。<br>提示：本题采用 Special Judge，你无需输出所有符合条件的 m，你只需要输出任一符合条件的 m 即可。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&#34;iostream&#34;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>typedef</span> <span class=kt>unsigned</span> <span class=kt>long</span> <span class=kt>long</span> <span class=n>ll</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=n>sign</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>dfs</span><span class=p>(</span><span class=n>ll</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>count</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>sign</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>%</span><span class=n>n</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>sign</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>x</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>count</span><span class=o>==</span><span class=mi>19</span><span class=p>)</span><span class=c1>//m 最多 200 位\n</span></span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>dfs</span><span class=p>(</span><span class=n>x</span><span class=o>*</span><span class=mi>10</span><span class=p>,</span><span class=n>count</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>dfs</span><span class=p>(</span><span class=n>x</span><span class=o>*</span><span class=mi>10</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>count</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//每两位数后两位有两种情况，10 或 11，深搜所有情况，找到一种就返回，找不到找另外一颗子树\n</span></span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&amp;&amp;</span><span class=n>n</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>sign</span><span class=o>=</span><span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>dfs</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-1426/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1426.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-1426.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20poj-1426-Find+The+Multiple%28dfs%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpoj-1426-Find+The+Multiple%28dfs%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-1426/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1426.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-1426/ data-title=\"Poj-1426-Find the Multiple(dfs)\" data-hashtags=DFS,ACM,搜索,POJ,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-1426/ data-hashtag=DFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-1426/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-1426/ data-title=\"Poj-1426-Find the Multiple(dfs)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-1426/ data-title=\"Poj-1426-Find the Multiple(dfs)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/dfs/ class=post-tag title=\"标签 - DFS\">DFS</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/adjacent-replacements/ class=post-nav-item rel=prev title=\"Adjacent Replacements\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Adjacent Replacements</a><a href=/posts/poj-1321/ class=post-nav-item rel=next title=\"Poj-1321 棋盘问题（dfs）\">Poj-1321 棋盘问题（dfs）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#find-the-multiple>Find The Multiple</a><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a2741986477cab7cb901f93ba8362f41.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a2741986477cab7cb901f93ba8362f41.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-1426/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-1426/index.md",
    "content": "# Poj-1426-Find the Multiple(dfs)\n\n\n## Find The Multiple\n\nTime Limit: 1000MS Memory Limit: 10000K  \nTotal Submissions: 40713 Accepted: 17088 Special Judge\n\n### Description\n\nGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\n\n### Input\n\nThe input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.\n\n### Output\n\nFor each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.\n\n### Sample Input\n\n    2\n    6\n    19\n    0\n\n### Sample Output\n\n    10\n    100100100100100100\n    111111111111111111\n\n---\n\n给定一个正整数 n，请编写一个程序来寻找 n 的一个非零的倍数 m，这个 m 应当在十进制表示时每一位上只包含 0 或者 1。你可以假定 n 不大于 200 且 m 不多于 100 位。  \n提示：本题采用 Special Judge，你无需输出所有符合条件的 m，你只需要输出任一符合条件的 m 即可。\n\n```cpp\n#include\"iostream\"\nusing namespace std;\ntypedef unsigned long long ll;\nint n;\nbool sign;\n\nvoid dfs(ll x,int count)\n{\n    if(sign)\n        return ;\n    if(x%n==0){\n        sign=true;\n        cout<<x<<endl;\n        return ;\n    }\n    if(count==19)//m 最多 200 位\n        return ;\n    dfs(x*10,count+1);\n    dfs(x*10+1,count+1);\n    //每两位数后两位有两种情况，10 或 11，深搜所有情况，找到一种就返回，找不到找另外一颗子树\n}\nint main()\n{\n    while(cin>>n&&n)\n    {\n        sign=false;\n        dfs(1,0);\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-1426/  \n\n"
  },
  {
    "path": "posts/poj-1611/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>The-Suspects-POJ-1611（并查集） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题目链接：The-suspects 2 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\n\"><meta name=keywords content='并查集,POJ,ACM,C,C++'><meta itemprop=name content=\"The-suspects-POJ-1611（并查集）\"><meta itemprop=description content=\"1 题目链接：The-suspects 2 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\"><meta itemprop=datePublished content=\"2018-07-31T11:11:31+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"505\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"并查集,POJ,acm,C,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-1611/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"The-suspects-POJ-1611（并查集）\"><meta property=\"og:description\" content=\"1 题目链接：The-suspects 2 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T11:11:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"The-suspects-POJ-1611（并查集）\"><meta name=twitter:description content=\"1 题目链接：The-suspects 2 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-1611/ title=\"The-suspects-POJ-1611（并查集） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-2236/ title=\"wireless network-POJ-2236（并查集）\"><link rel=next type=text/html href=https://lruihao.cn/posts/how-tables/ title=\"how many tables-HDU-1213（并查集求连通域数目）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-1611/index.md title=\"The-suspects-POJ-1611（并查集） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"The-suspects-POJ-1611（并查集）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1611\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"并查集, POJ, ACM, C, C\\u002b\\u002b\",\"wordcount\":505,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-1611\\/\",\"datePublished\":\"2018-07-31T11:11:31+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-1611/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>The-Suspects-POJ-1611（并查集）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>The-Suspects-POJ-1611（并查集）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 11:11:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"505 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=The-Suspects-POJ-1611（并查集）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目链接the-suspects>题目链接：The-suspects</a></li><li><a href=#翻译>翻译</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题目链接the-suspects><span>1 题目链接：<a href=\"http://poj.org/problem?id=1611\" target=_blank rel=\"external nofollow noopener noreferrer\">The-suspects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=翻译><span>2 翻译</span>\n<a href=#%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？</p><h3 class=heading-element id=input><span>2.1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>多样例输入。<br>每个测试用例以两个整数 n 和 m 开头，其中 n 为人数，m 为犯罪集团数。你可以假定 0 &lt; n &lt;= 30000 和 0 &lt;= m &lt;= 500。在所有的情况下，每个人都有自己独特的整数编号 0 到 n−1, 且 0 号是公认的嫌疑犯。<br>接下来 m 行输入，每个犯罪集团一行。每一行从一个整数 k 开始，它本身表示集团内成员的数量。按照成员的数量，在这个组中有 k 个整数表示人员。一行中的所有整数都被至少一个空格隔开。<br>n = 0 且 m = 0 时输入结束。</p><h3 class=heading-element id=output><span>2.2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>对于每个样例，输出嫌疑犯人数。</p><h3 class=heading-element id=sample-input><span>2.3 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>100 4\n2 1 2\n5 10 13 11 12 14\n2 0 1\n2 99 2\n200 2\n1 5\n5 1 2 3 4 5\n1 0\n0 0\n</code></pre><h3 class=heading-element id=sample-output><span>2.4 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>4\n1\n</code></pre><p>这题也很好理解，AC 代码如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>30010</span><span class=p>],</span><span class=n>x</span><span class=p>[</span><span class=mi>30010</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>son</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>son</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span><span class=o>!=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>son</span><span class=o>!=</span><span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>t</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>]</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>son</span><span class=o>=</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>join</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fx</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>x</span><span class=p>),</span><span class=n>fy</span><span class=o>=</span><span class=n>find</span><span class=p>(</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>fx</span><span class=o>!=</span><span class=n>fy</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>fy</span><span class=p>]</span><span class=o>=</span><span class=n>fx</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>k</span><span class=p>,</span><span class=n>sum</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>),</span><span class=n>n</span><span class=o>||</span><span class=n>m</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>while</span><span class=p>(</span><span class=n>m</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>k</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>k</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>k</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>join</span><span class=p>(</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>],</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>find</span><span class=p>(</span><span class=mi>0</span><span class=p>)</span><span class=o>==</span><span class=n>find</span><span class=p>(</span><span class=n>i</span><span class=p>))</span> <span class=n>sum</span><span class=o>++</span><span class=p>;</span><span class=c1>//再次查找并压缩路径，注不用 pre[i]\n</span></span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>sum</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-1611/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1611.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-1611.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20The-suspects-POJ-1611%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cThe-suspects-POJ-1611%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-1611/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-1611.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-1611/ data-title=The-Suspects-POJ-1611（并查集） data-hashtags=并查集,POJ,ACM,C,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-1611/ data-hashtag=并查集><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-1611/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-1611/ data-title=The-Suspects-POJ-1611（并查集） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-1611/ data-title=The-Suspects-POJ-1611（并查集）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-2236/ class=post-nav-item rel=prev title=\"Wireless Network-POJ-2236（并查集）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Wireless Network-POJ-2236（并查集）</a><a href=/posts/how-tables/ class=post-nav-item rel=next title=\"How Many Tables-HDU-1213（并查集求连通域数目）\">How Many Tables-HDU-1213（并查集求连通域数目）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目链接the-suspects>题目链接：The-suspects</a></li><li><a href=#翻译>翻译</a><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/41192006e7fb5d2f9f1a7caa97105c8c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/41192006e7fb5d2f9f1a7caa97105c8c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-1611/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-1611/index.md",
    "content": "# The-Suspects-POJ-1611（并查集）\n\n\n## 题目链接：[The-suspects](http://poj.org/problem?id=1611)\n\n## 翻译\n\n警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\n\n<!--more-->\n\n### Input\n\n多样例输入。  \n每个测试用例以两个整数 n 和 m 开头，其中 n 为人数，m 为犯罪集团数。你可以假定 0 < n <= 30000 和 0 <= m <= 500。在所有的情况下，每个人都有自己独特的整数编号 0 到 n−1, 且 0 号是公认的嫌疑犯。  \n接下来 m 行输入，每个犯罪集团一行。每一行从一个整数 k 开始，它本身表示集团内成员的数量。按照成员的数量，在这个组中有 k 个整数表示人员。一行中的所有整数都被至少一个空格隔开。  \nn = 0 且 m = 0 时输入结束。\n\n### Output\n\n对于每个样例，输出嫌疑犯人数。\n\n### Sample Input\n\n    100 4\n    2 1 2\n    5 10 13 11 12 14\n    2 0 1\n    2 99 2\n    200 2\n    1 5\n    5 1 2 3 4 5\n    1 0\n    0 0\n\n### Sample Output\n\n    4\n    1\n\n这题也很好理解，AC 代码如下：\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include<cstdio>\n\nint pre[30010],x[30010];\n\nint find(int root){\n    int son,t;\n    son=root;\n    while(root!=pre[root])\n        root=pre[root];\n    while(son!=root){\n        t=pre[son];\n        pre[son]=root;\n        son=t;\n    }\n    return root;\n}\n\nvoid join(int x,int y){\n    int fx=find(x),fy=find(y);\n    if(fx!=fy)\n        pre[fy]=fx;\n}\n\nint main(){\n    int n,m,i,k,sum;\n    while(scanf(\"%d%d\",&n,&m),n||m){\n        sum=0;\n        for(i=0;i<n;i++)\n            pre[i]=i;\n        while(m--){\n            scanf(\"%d\",&k);\n            for(i=0;i<k;i++)\n                scanf(\"%d\",&x[i]);\n            for(i=1;i<k;i++)\n                join(x[i-1],x[i]);\n        }\n\n        for(i=0;i<n;i++)\n            if(find(0)==find(i)) sum++;//再次查找并压缩路径，注不用 pre[i]\n        printf(\"%d\\n\",sum);\n\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-1611/  \n\n"
  },
  {
    "path": "posts/poj-2236/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Wireless Network-POJ-2236（并查集） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 题目链接：wireless network 2 翻译 \"><meta name=keywords content='并查集,ACM,POJ,C++,C'><meta itemprop=name content=\"wireless network-POJ-2236（并查集）\"><meta itemprop=description content=\"1 题目链接：wireless network 2 翻译\"><meta itemprop=datePublished content=\"2018-07-31T11:10:54+08:00\"><meta itemprop=dateModified content=\"2024-07-07T14:04:22+08:00\"><meta itemprop=wordCount content=\"844\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"并查集,acm,POJ,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-2236/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"wireless network-POJ-2236（并查集）\"><meta property=\"og:description\" content=\"1 题目链接：wireless network 2 翻译\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T11:10:54+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-07T14:04:22+08:00\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"wireless network-POJ-2236（并查集）\"><meta name=twitter:description content=\"1 题目链接：wireless network 2 翻译\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-2236/ title=\"wireless network-POJ-2236（并查集） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/piles-with-stones/ title=Piles-with-stones><link rel=next type=text/html href=https://lruihao.cn/posts/poj-1611/ title=The-suspects-POJ-1611（并查集）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-2236/index.md title=\"wireless network-POJ-2236（并查集） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"wireless network-POJ-2236（并查集）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-2236\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"并查集, ACM, POJ, C\\u002b\\u002b, C\",\"wordcount\":844,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-2236\\/\",\"datePublished\":\"2018-07-31T11:10:54+08:00\",\"dateModified\":\"2024-07-07T14:04:22+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-2236/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Wireless Network-POJ-2236（并查集）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Wireless Network-POJ-2236（并查集）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 11:10:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"更新于 2024-07-07 14:04:22\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-07>2024-07-07</time></span>&nbsp;<span title=\"844 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Wireless Network-POJ-2236（并查集）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目链接wireless-network>题目链接：wireless network</a></li><li><a href=#翻译>翻译</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li><li><a href=#示例输入>示例输入</a></li><li><a href=#示例输出>示例输出</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-07，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=题目链接wireless-network><span>1 题目链接：<a href=\"http://poj.org/problem?id=2236\" target=_blank rel=\"external nofollow noopener noreferrer\">wireless network<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=翻译><span>2 翻译</span>\n<a href=#%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队）已经为膝上型电脑搭建了一个无线网络，但受到了一次不可预知的余震攻击，因此网络中的所有电脑都被破坏了。电脑被逐台修复，网络逐步恢复了工作。由于受到硬件的约束，每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点，也就是说，如果电脑 A 和电脑 B 可以直接通信，或存在一台电脑 C 既可与 A 也可与 B 通信，那么电脑 A 和电脑 B 之间就能够通信。</p><p>在处理网络修复的过程中，工作人员们在任何一个时刻，可以执行两种操作：维修一台电脑，或测试两台电脑是否能够通信。请您找出全部的测试操作。</p><h3 class=heading-element id=输入><span>2.1 输入</span>\n<a href=#%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>第一行包含了两个整数 N 和 d (1 &lt;= N &lt;= 1001, 0 &lt;= d &lt;= 20000)。此处 N 是电脑的数目，编号从 1 到 N；同时，D 是两台电脑之间能够直接通信的最大距离。接下来的 N 行，每行包含两个整数 xi, yi (0 &lt;= xi, yi &lt;= 10000)，表示 N 台电脑的坐标。从第 (N+1) 行到输入结束，是逐一执行的操作，每行包含一个操作，格式是以下两者之一：</p><ol><li>&ldquo;O p&rdquo; (1 &lt;= p &lt;= N)，表示维护电脑 p。。</li><li>&ldquo;S p q&rdquo; (1 &lt;= p, q &lt;= N)，表示测试电脑 p 和 q 是否能够通信。</li></ol><p>输入不超过 300000 行。</p><h3 class=heading-element id=输出><span>2.2 输出</span>\n<a href=#%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>对于每个测试操作，如果两台电脑能够通信，则打印 &ldquo;SUCCESS&rdquo;；否则，打印 &ldquo;FAIL&rdquo;。</p><h3 class=heading-element id=示例输入><span>2.3 示例输入</span>\n<a href=#%e7%a4%ba%e4%be%8b%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>4 1\n0 1\n0 2\n0 3\n0 4\nO 1\nO 2\nO 4\nS 1 4\nO 3\nS 1 4\n</code></pre><h3 class=heading-element id=示例输出><span>2.4 示例输出</span>\n<a href=#%e7%a4%ba%e4%be%8b%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>FAIL\nSUCCESS\n</code></pre><h3 class=heading-element id=ac-代码><span>2.5 AC 代码</span>\n<a href=#ac-%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&#34;iostream&#34;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&#34;cstring&#34;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>x</span><span class=p>[</span><span class=mi>1005</span><span class=p>],</span><span class=n>y</span><span class=p>[</span><span class=mi>1005</span><span class=p>],</span><span class=n>use</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>findd</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>son</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>son</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span><span class=o>!=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>son</span><span class=o>!=</span><span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>t</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>]</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>son</span><span class=o>=</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>join</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fx</span><span class=o>=</span><span class=n>findd</span><span class=p>(</span><span class=n>x</span><span class=p>),</span><span class=n>fy</span><span class=o>=</span><span class=n>findd</span><span class=p>(</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>fx</span><span class=o>!=</span><span class=n>fy</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>fx</span><span class=p>]</span><span class=o>=</span><span class=n>fy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>dis</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=kt>int</span> <span class=n>num</span><span class=p>,</span><span class=kt>int</span> <span class=n>d</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=n>d</span><span class=o>=</span><span class=n>d</span><span class=o>*</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>xx</span><span class=o>=</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>-</span><span class=n>x</span><span class=p>[</span><span class=n>num</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>yy</span><span class=o>=</span><span class=n>y</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>-</span><span class=n>y</span><span class=p>[</span><span class=n>num</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>((</span><span class=n>xx</span><span class=o>*</span><span class=n>xx</span><span class=o>+</span><span class=n>yy</span><span class=o>*</span><span class=n>yy</span><span class=p>)</span><span class=o>&lt;=</span><span class=n>d</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>char</span> <span class=n>s</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>use</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>use</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>d</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&gt;&gt;</span><span class=n>y</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>s</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>s</span><span class=o>==</span><span class=sc>&#39;O&#39;</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>num</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>num</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>use</span><span class=p>[</span><span class=n>num</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>findd</span><span class=p>(</span><span class=n>num</span><span class=p>);</span><span class=c1>//路径压缩\n</span></span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>!=</span><span class=n>num</span><span class=o>&amp;&amp;</span><span class=n>use</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>==</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>dis</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>num</span><span class=p>,</span><span class=n>d</span><span class=p>))</span><span class=c1>//修好了，且可以被合并（自己除外）\n</span></span></span><span class=line><span class=cl>                    <span class=n>join</span><span class=p>(</span><span class=n>i</span><span class=p>,</span><span class=n>num</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>s</span><span class=o>==</span><span class=sc>&#39;S&#39;</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>q</span><span class=p>,</span><span class=n>p</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>q</span><span class=o>&gt;&gt;</span><span class=n>p</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>findd</span><span class=p>(</span><span class=n>q</span><span class=p>)</span><span class=o>==</span><span class=n>findd</span><span class=p>(</span><span class=n>p</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;SUCCESS&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span> <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;FAIL&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-07 14:04:22\">更新于 2024-07-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/5c6a84c4e35c87fd0b3393ec84140fd46a951f03 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 不使用“您”&#10&#10Commit: 5c6a84c4e35c87fd0b3393ec84140fd46a951f03 [5c6a84c]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-07 14:04:22\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>5c6a84c</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-2236/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-2236.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-2236.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20wireless+network-POJ-2236%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cwireless+network-POJ-2236%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-2236/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-2236.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-2236/ data-title=\"Wireless Network-POJ-2236（并查集）\" data-hashtags=并查集,ACM,POJ,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-2236/ data-hashtag=并查集><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-2236/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-2236/ data-title=\"Wireless Network-POJ-2236（并查集）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-2236/ data-title=\"Wireless Network-POJ-2236（并查集）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/piles-with-stones/ class=post-nav-item rel=prev title=Piles-With-Stones><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Piles-With-Stones</a><a href=/posts/poj-1611/ class=post-nav-item rel=next title=The-Suspects-POJ-1611（并查集）>The-Suspects-POJ-1611（并查集）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目链接wireless-network>题目链接：wireless network</a></li><li><a href=#翻译>翻译</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li><li><a href=#示例输入>示例输入</a></li><li><a href=#示例输出>示例输出</a></li><li><a href=#ac-代码>AC 代码</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ede83a7ccfe409df78e72f619c94d71f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ede83a7ccfe409df78e72f619c94d71f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-2236/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-2236/index.md",
    "content": "# Wireless Network-POJ-2236（并查集）\n\n\n## 题目链接：[wireless network](http://poj.org/problem?id=2236)\n\n## 翻译\n\n<!--more-->\n\n南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队）已经为膝上型电脑搭建了一个无线网络，但受到了一次不可预知的余震攻击，因此网络中的所有电脑都被破坏了。电脑被逐台修复，网络逐步恢复了工作。由于受到硬件的约束，每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点，也就是说，如果电脑 A 和电脑 B 可以直接通信，或存在一台电脑 C 既可与 A 也可与 B 通信，那么电脑 A 和电脑 B 之间就能够通信。\n\n在处理网络修复的过程中，工作人员们在任何一个时刻，可以执行两种操作：维修一台电脑，或测试两台电脑是否能够通信。请您找出全部的测试操作。\n\n### 输入\n\n第一行包含了两个整数 N 和 d (1 <= N <= 1001, 0 <= d <= 20000)。此处 N 是电脑的数目，编号从 1 到 N；同时，D 是两台电脑之间能够直接通信的最大距离。接下来的 N 行，每行包含两个整数 xi, yi (0 <= xi, yi <= 10000)，表示 N 台电脑的坐标。从第 (N+1) 行到输入结束，是逐一执行的操作，每行包含一个操作，格式是以下两者之一：\n\n1. \"O p\" (1 <= p <= N)，表示维护电脑 p。。\n2. \"S p q\" (1 <= p, q <= N)，表示测试电脑 p 和 q 是否能够通信。\n\n输入不超过 300000 行。\n\n### 输出\n\n对于每个测试操作，如果两台电脑能够通信，则打印 \"SUCCESS\"；否则，打印 \"FAIL\"。\n\n### 示例输入\n\n    4 1\n    0 1\n    0 2\n    0 3\n    0 4\n    O 1\n    O 2\n    O 4\n    S 1 4\n    O 3\n    S 1 4\n\n### 示例输出\n\n    FAIL\n    SUCCESS\n\n### AC 代码\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include \"iostream\"\n#include \"cstring\"\nusing namespace std;\nint pre[1005];\nint x[1005],y[1005],use[1005];\n\nint findd(int root){\n    int son,t;\n    son=root;\n    while(root!=pre[root])\n        root=pre[root];\n    while(son!=root){\n        t=pre[son];\n        pre[son]=root;\n        son=t;\n    }\n    return root;\n}\n\nvoid join(int x,int y){\n    int fx=findd(x),fy=findd(y);\n    if(fx!=fy)\n        pre[fx]=fy;\n}\n\nint dis(int i,int num,int d){\n    d=d*d;\n    int xx=x[i]-x[num];\n    int yy=y[i]-y[num];\n    if((xx*xx+yy*yy)<=d)\n        return 1;\n    return 0;\n}\n\nint main(){\n    int n,d;\n    char s;\n    memset(use,0,sizeof(use));\n    cin>>n>>d;\n    for(int i=0;i<=n;i++)\n        pre[i]=i;\n    for(int i=1;i<=n;i++)\n        cin>>x[i]>>y[i];\n    while(cin>>s){\n        if(s=='O'){\n            int num;\n            cin>>num;\n            use[num]=1;\n            findd(num);//路径压缩\n            for(int i=1;i<=n;i++)\n                if(i!=num&&use[i]==1&&dis(i,num,d))//修好了，且可以被合并（自己除外）\n                    join(i,num);\n        }\n        else if(s=='S'){\n            int q,p;\n            cin>>q>>p;\n            if(findd(q)==findd(p))\n                cout<<\"SUCCESS\"<<endl;\n            else cout<<\"FAIL\"<<endl;\n        }\n    }\n    return 0;\n}\n```\n\n<!-- markdownlint-disable-file -->\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-2236/  \n\n"
  },
  {
    "path": "posts/poj-2251/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Poj-2251-Dungeon Master（三维 Bfs 最短路） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"英文原题链接\n1 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\n\"><meta name=keywords content='BFS,ACM,搜索,POJ,C++,C'><meta itemprop=name content=\"poj-2251-Dungeon Master（三维 bfs 最短路）\"><meta itemprop=description content=\"英文原题链接\n1 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\"><meta itemprop=datePublished content=\"2018-07-22T12:02:32+08:00\"><meta itemprop=dateModified content=\"2018-07-22T12:02:32+08:00\"><meta itemprop=wordCount content=\"842\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"BFS,acm,搜索,POJ,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-2251/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"poj-2251-Dungeon Master（三维 bfs 最短路）\"><meta property=\"og:description\" content=\"英文原题链接\n1 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T12:02:32+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T12:02:32+08:00\"><meta property=\"article:tag\" content=\"BFS\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"poj-2251-Dungeon Master（三维 bfs 最短路）\"><meta name=twitter:description content=\"英文原题链接\n1 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-2251/ title=\"poj-2251-Dungeon Master（三维 bfs 最短路） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-1321/ title=\"poj-1321 棋盘问题（dfs）\"><link rel=next type=text/html href=https://lruihao.cn/posts/poj-3278/ title=\"POJ-3278-Catch That Cow(bfs)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-2251/index.md title=\"poj-2251-Dungeon Master（三维 bfs 最短路） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-2251\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"BFS, ACM, 搜索, POJ, C\\u002b\\u002b, C\",\"wordcount\":842,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-2251\\/\",\"datePublished\":\"2018-07-22T12:02:32+08:00\",\"dateModified\":\"2018-07-22T12:02:32+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-2251/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Poj-2251-Dungeon Master（三维 Bfs 最短路）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Poj-2251-Dungeon Master（三维 Bfs 最短路）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 12:02:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"842 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#description---题目描述>Description - 题目描述</a></li><li><a href=#input---输入>Input - 输入</a></li><li><a href=#output---输出>Output - 输出</a></li><li><a href=#sample-input---输入样例>Sample Input - 输入样例</a></li><li><a href=#sample-output---输出样例>Sample Output - 输出样例</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://poj.org/problem?id=2251\" target=_blank rel=\"external nofollow noopener noreferrer\">英文原题链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=description---题目描述><span>1 Description - 题目描述</span>\n<a href=#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>你被困在一个三维的空间中，现在要寻找最短路径逃生！<br>空间由立方体单位构成<br>你每次向上下前后左右移动一个单位需要一分钟<br>你不能对角线移动并且四周封闭<br>是否存在逃出生天的可能性？如果存在，则需要多少时间？</p><h2 class=heading-element id=input---输入><span>2 Input - 输入</span>\n<a href=#input---%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入第一行是一个数表示空间的数量。<br>每个空间的描述的第一行为 L，R 和 C（皆不超过 30）。<br>L 表示空间的高度。R 和 C 分别表示每层空间的行与列的大小。<br>随后 L 层地牢，每层 R 行，每行 C 个字符。<br>每个字符表示空间的一个单元。&rsquo;#&lsquo;表示不可通过单元，&rsquo;.&lsquo;表示空白单元。你的起始位置在&rsquo;S&rsquo;，出口为&rsquo;E&rsquo;。<br>每层空间后都有一个空行。L，R 和 C 均为 0 时输入结束。</p><h2 class=heading-element id=output---输出><span>3 Output - 输出</span>\n<a href=#output---%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>每个空间对应一行输出。<br>如果可以逃生，则输出如下<br>Escaped in x minute(s).</p><p>x 为最短脱离时间。</p><p>如果无法逃生，则输出如下</p><p>Trapped!</p><h2 class=heading-element id=sample-input---输入样例><span>4 Sample Input - 输入样例</span>\n<a href=#sample-input---%e8%be%93%e5%85%a5%e6%a0%b7%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>3 4 5\nS....\n.###.\n.##..\n###.#\n\n#####\n##.##\n##...\n\n#####\n#.###\n####E\n\n1 3 3\nS##\n#E#\n###\n\n0 0 0\n</code></pre><h2 class=heading-element id=sample-output---输出样例><span>5 Sample Output - 输出样例</span>\n<a href=#sample-output---%e8%be%93%e5%87%ba%e6%a0%b7%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>Escaped in 11 minute(s).\nTrapped!\n</code></pre><p>类似二维四个方向的 bfs 最短路，改成上下东西南北就行了，三维 bfs 最短路</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span><span class=lnt>92\n</span><span class=lnt>93\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;iostream&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;string.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;queue&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;algorithm&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>char</span> <span class=n>map</span><span class=p>[</span><span class=mi>35</span><span class=p>][</span><span class=mi>35</span><span class=p>][</span><span class=mi>35</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>vis</span><span class=p>[</span><span class=mi>35</span><span class=p>][</span><span class=mi>35</span><span class=p>][</span><span class=mi>35</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>k</span><span class=p>,</span><span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>sx</span><span class=p>,</span><span class=n>sy</span><span class=p>,</span><span class=n>sz</span><span class=p>,</span><span class=n>ex</span><span class=p>,</span><span class=n>ey</span><span class=p>,</span><span class=n>ez</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>to</span><span class=p>[</span><span class=mi>6</span><span class=p>][</span><span class=mi>3</span><span class=p>]</span> <span class=o>=</span> <span class=p>{{</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>1</span><span class=p>},{</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>},{</span><span class=mi>0</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>},{</span><span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>},{</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>},{</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>}};</span><span class=c1>//上下东西南北\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>z</span><span class=p>,</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>check</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>,</span><span class=kt>int</span> <span class=n>z</span><span class=p>)</span><span class=c1>//检查是否可走\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>&lt;</span><span class=mi>0</span> <span class=o>||</span> <span class=n>y</span><span class=o>&lt;</span><span class=mi>0</span> <span class=o>||</span> <span class=n>z</span><span class=o>&lt;</span><span class=mi>0</span> <span class=o>||</span> <span class=n>x</span><span class=o>&gt;=</span><span class=n>k</span> <span class=o>||</span> <span class=n>y</span><span class=o>&gt;=</span><span class=n>n</span> <span class=o>||</span> <span class=n>z</span><span class=o>&gt;=</span><span class=n>m</span><span class=p>)</span><span class=c1>//越界判断\n</span></span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>map</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>][</span><span class=n>z</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;#&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>vis</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>][</span><span class=n>z</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>bfs</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>node</span> <span class=n>a</span><span class=p>,</span><span class=n>next</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>queue</span><span class=o>&lt;</span><span class=n>node</span><span class=o>&gt;</span> <span class=n>Q</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>sx</span><span class=p>,</span><span class=n>a</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>sy</span><span class=p>,</span><span class=n>a</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>sz</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>vis</span><span class=p>[</span><span class=n>sx</span><span class=p>][</span><span class=n>sy</span><span class=p>][</span><span class=n>sz</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>Q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>a</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>Q</span><span class=p>.</span><span class=n>empty</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>a</span> <span class=o>=</span> <span class=n>Q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=n>Q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=n>x</span> <span class=o>==</span> <span class=n>ex</span> <span class=o>&amp;&amp;</span> <span class=n>a</span><span class=p>.</span><span class=n>y</span> <span class=o>==</span> <span class=n>ey</span> <span class=o>&amp;&amp;</span> <span class=n>a</span><span class=p>.</span><span class=n>z</span> <span class=o>==</span> <span class=n>ez</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=n>a</span><span class=p>.</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=mi>6</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>next</span> <span class=o>=</span> <span class=n>a</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>next</span><span class=p>.</span><span class=n>x</span> <span class=o>=</span> <span class=n>a</span><span class=p>.</span><span class=n>x</span><span class=o>+</span><span class=n>to</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>0</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=n>next</span><span class=p>.</span><span class=n>y</span> <span class=o>=</span> <span class=n>a</span><span class=p>.</span><span class=n>y</span><span class=o>+</span><span class=n>to</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>1</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=n>next</span><span class=p>.</span><span class=n>z</span> <span class=o>=</span> <span class=n>a</span><span class=p>.</span><span class=n>z</span><span class=o>+</span><span class=n>to</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>2</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>check</span><span class=p>(</span><span class=n>next</span><span class=p>.</span><span class=n>x</span><span class=p>,</span><span class=n>next</span><span class=p>.</span><span class=n>y</span><span class=p>,</span><span class=n>next</span><span class=p>.</span><span class=n>z</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>vis</span><span class=p>[</span><span class=n>next</span><span class=p>.</span><span class=n>x</span><span class=p>][</span><span class=n>next</span><span class=p>.</span><span class=n>y</span><span class=p>][</span><span class=n>next</span><span class=p>.</span><span class=n>z</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>next</span><span class=p>.</span><span class=n>step</span> <span class=o>=</span> <span class=n>a</span><span class=p>.</span><span class=n>step</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>Q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>next</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>r</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>k</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>),</span><span class=n>n</span><span class=o>+</span><span class=n>m</span><span class=o>+</span><span class=n>k</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>&lt;</span><span class=n>k</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>j</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>j</span><span class=o>&lt;</span><span class=n>n</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%s&#34;</span><span class=p>,</span><span class=n>map</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>                <span class=k>for</span><span class=p>(</span><span class=n>r</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>r</span><span class=o>&lt;</span><span class=n>m</span><span class=p>;</span> <span class=n>r</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=k>if</span><span class=p>(</span><span class=n>map</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>][</span><span class=n>r</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;S&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                    <span class=p>{</span>\n</span></span><span class=line><span class=cl>                        <span class=n>sx</span> <span class=o>=</span> <span class=n>i</span><span class=p>,</span><span class=n>sy</span> <span class=o>=</span> <span class=n>j</span><span class=p>,</span><span class=n>sz</span> <span class=o>=</span> <span class=n>r</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=p>}</span>\n</span></span><span class=line><span class=cl>                    <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=n>map</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>][</span><span class=n>r</span><span class=p>]</span> <span class=o>==</span> <span class=sc>&#39;E&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                    <span class=p>{</span>\n</span></span><span class=line><span class=cl>                        <span class=n>ex</span> <span class=o>=</span> <span class=n>i</span><span class=p>,</span><span class=n>ey</span> <span class=o>=</span> <span class=n>j</span><span class=p>,</span><span class=n>ez</span> <span class=o>=</span> <span class=n>r</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                    <span class=p>}</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>vis</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>vis</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>ans</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>ans</span> <span class=o>=</span> <span class=n>bfs</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>ans</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Escaped in %d minute(s).</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Trapped!</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 12:02:32\">更新于 2018-07-22&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-2251/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-2251.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-2251.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20poj-2251-Dungeon+Master%EF%BC%88%E4%B8%89%E7%BB%B4+bfs+%E6%9C%80%E7%9F%AD%E8%B7%AF%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpoj-2251-Dungeon+Master%EF%BC%88%E4%B8%89%E7%BB%B4+bfs+%E6%9C%80%E7%9F%AD%E8%B7%AF%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-2251/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-2251.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-2251/ data-title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\" data-hashtags=BFS,ACM,搜索,POJ,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-2251/ data-hashtag=BFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-2251/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-2251/ data-title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-2251/ data-title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag title=\"标签 - BFS\">BFS</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-1321/ class=post-nav-item rel=prev title=\"Poj-1321 棋盘问题（dfs）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Poj-1321 棋盘问题（dfs）</a><a href=/posts/poj-3278/ class=post-nav-item rel=next title=\"POJ-3278-Catch That Cow(bfs)\">POJ-3278-Catch That Cow(bfs)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#description---题目描述>Description - 题目描述</a></li><li><a href=#input---输入>Input - 输入</a></li><li><a href=#output---输出>Output - 输出</a></li><li><a href=#sample-input---输入样例>Sample Input - 输入样例</a></li><li><a href=#sample-output---输出样例>Sample Output - 输出样例</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/4281806367b1de9059a1f848c2510f13.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/4281806367b1de9059a1f848c2510f13.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-2251/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-2251/index.md",
    "content": "# Poj-2251-Dungeon Master（三维 Bfs 最短路）\n\n\n[英文原题链接](http://poj.org/problem?id=2251)\n\n## Description - 题目描述\n\n你被困在一个三维的空间中，现在要寻找最短路径逃生！  \n空间由立方体单位构成  \n你每次向上下前后左右移动一个单位需要一分钟  \n你不能对角线移动并且四周封闭  \n是否存在逃出生天的可能性？如果存在，则需要多少时间？\n\n## Input - 输入\n\n输入第一行是一个数表示空间的数量。  \n每个空间的描述的第一行为 L，R 和 C（皆不超过 30）。  \nL 表示空间的高度。R 和 C 分别表示每层空间的行与列的大小。  \n随后 L 层地牢，每层 R 行，每行 C 个字符。  \n每个字符表示空间的一个单元。'#'表示不可通过单元，'.'表示空白单元。你的起始位置在'S'，出口为'E'。  \n每层空间后都有一个空行。L，R 和 C 均为 0 时输入结束。\n\n## Output - 输出\n\n每个空间对应一行输出。  \n如果可以逃生，则输出如下  \nEscaped in x minute(s).\n\nx 为最短脱离时间。\n\n如果无法逃生，则输出如下\n\nTrapped!\n\n## Sample Input - 输入样例\n\n    3 4 5\n    S....\n    .###.\n    .##..\n    ###.#\n\n    #####\n    ##.##\n    ##...\n\n    #####\n    #.###\n    ####E\n\n    1 3 3\n    S##\n    #E#\n    ###\n\n    0 0 0\n\n## Sample Output - 输出样例\n\n    Escaped in 11 minute(s).\n    Trapped!\n\n类似二维四个方向的 bfs 最短路，改成上下东西南北就行了，三维 bfs 最短路\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include <iostream>\n#include <stdio.h>\n#include <string.h>\n#include <queue>\n#include <algorithm>\nusing namespace std;\n\nchar map[35][35][35];\nint vis[35][35][35];\nint k,n,m,sx,sy,sz,ex,ey,ez;\nint to[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}};//上下东西南北\n\nstruct node\n{\n    int x,y,z,step;\n};\n\nint check(int x,int y,int z)//检查是否可走\n{\n    if(x<0 || y<0 || z<0 || x>=k || y>=n || z>=m)//越界判断\n        return 1;\n    else if(map[x][y][z] == '#')\n        return 1;\n    else if(vis[x][y][z])\n        return 1;\n    return 0;\n}\n\nint bfs()\n{\n    int i;\n    node a,next;\n    queue<node> Q;\n    a.x = sx,a.y = sy,a.z = sz;\n    a.step = 0;\n    vis[sx][sy][sz] = 1;\n    Q.push(a);\n    while(!Q.empty())\n    {\n        a = Q.front();\n        Q.pop();\n        if(a.x == ex && a.y == ey && a.z == ez)\n            return a.step;\n        for(i = 0; i<6; i++)\n        {\n            next = a;\n            next.x = a.x+to[i][0];\n            next.y = a.y+to[i][1];\n            next.z = a.z+to[i][2];\n            if(check(next.x,next.y,next.z))\n                continue;\n            vis[next.x][next.y][next.z] = 1;\n            next.step = a.step+1;\n            Q.push(next);\n        }\n    }\n    return 0;\n}\n\nint main()\n{\n    int i,j,r;\n    while(scanf(\"%d%d%d\",&k,&n,&m),n+m+k)\n    {\n        for(i = 0; i<k; i++)\n        {\n            for(j = 0; j<n; j++)\n            {\n                scanf(\"%s\",map[i][j]);\n                for(r = 0; r<m; r++)\n                {\n                    if(map[i][j][r] == 'S')\n                    {\n                        sx = i,sy = j,sz = r;\n                    }\n                    else if(map[i][j][r] == 'E')\n                    {\n                        ex = i,ey = j,ez = r;\n                    }\n                }\n            }\n        }\n        memset(vis,0,sizeof(vis));\n        int ans;\n        ans = bfs();\n        if(ans)\n            printf(\"Escaped in %d minute(s).\\n\",ans);\n        else\n            printf(\"Trapped!\\n\");\n    }\n\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-2251/  \n\n"
  },
  {
    "path": "posts/poj-3278/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>POJ-3278-Catch That Cow(bfs) | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\",&ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n1 Input Line 1: Two space-separated integers: N and K\n'><meta name=keywords content='BFS,ACM,搜索,POJ,C++'><meta itemprop=name content=\"POJ-3278-Catch That Cow(bfs)\"><meta itemprop=description content='Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\",“1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n1 Input Line 1: Two space-separated integers: N and K'><meta itemprop=datePublished content=\"2018-07-22T12:10:32+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"494\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"BFS,acm,搜索,POJ,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-3278/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"POJ-3278-Catch That Cow(bfs)\"><meta property=\"og:description\" content='Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\",“1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n1 Input Line 1: Two space-separated integers: N and K'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T12:10:32+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"BFS\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"搜索\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"POJ-3278-Catch That Cow(bfs)\"><meta name=twitter:description content='Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\",“1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n1 Input Line 1: Two space-separated integers: N and K'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-3278/ title=\"POJ-3278-Catch That Cow(bfs) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/poj-2251/ title=\"poj-2251-Dungeon Master（三维 bfs 最短路）\"><link rel=next type=text/html href=https://lruihao.cn/posts/hdu-2612/ title=\"hdu-2612-Find a way（双 bfs）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-3278/index.md title=\"POJ-3278-Catch That Cow(bfs) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"POJ-3278-Catch That Cow(bfs)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-3278\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"BFS, ACM, 搜索, POJ, C\\u002b\\u002b\",\"wordcount\":494,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-3278\\/\",\"datePublished\":\"2018-07-22T12:10:32+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-3278/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>POJ-3278-Catch That Cow(bfs)</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>POJ-3278-Catch That Cow(bfs)</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 12:10:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"494 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"POJ-3278-Catch That Cow(bfs)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#hint>Hint</a></li><li><a href=#题意>题意</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.</p><ul><li>Walking: FJ can move from any point X to the points X\",&ldquo;1 or X + 1 in a single minute</li><li>Teleporting: FJ can move from any point X to the point 2 × X in a single minute.</li></ul><p>If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?</p><h2 class=heading-element id=input><span>1 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Line 1: Two space-separated integers: N and K</p><h2 class=heading-element id=output><span>2 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.</p><h2 class=heading-element id=sample-input><span>3 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>5 17\n</code></pre><h2 class=heading-element id=sample-output><span>4 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>4\n</code></pre><h2 class=heading-element id=hint><span>5 Hint</span>\n<a href=#hint class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.</p><h2 class=heading-element id=题意><span>6 题意</span>\n<a href=#%e9%a2%98%e6%84%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>农场主的牛不见了，主人和牛在一条直线上，且牛没有新的目标，它不会走动，主人的位置是你 n，牛的位置是 k，主人可以有三种走路的方法，右左（距离+-1），闪现（距离+x,x 为当前位置），每走一步，一分钟，问几分钟主人能找到牛。bfs 搜索方向即为三个“方向”。搜索所有走法；</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&#34;iostream&#34;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;queue&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&#34;string.h&#34;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=n>sign</span><span class=p>[</span><span class=mi>200007</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=n>step</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>bool</span> <span class=nf>check</span><span class=p>(</span><span class=kt>int</span> <span class=n>a</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>sign</span><span class=p>[</span><span class=n>a</span><span class=p>]</span><span class=o>&amp;&amp;</span><span class=n>a</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>a</span><span class=o>&lt;</span><span class=mi>110000</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=nb>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>bfs</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>node</span> <span class=n>u</span><span class=p>,</span><span class=n>v</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>queue</span><span class=o>&lt;</span><span class=n>node</span><span class=o>&gt;</span> <span class=n>q</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=o>=</span><span class=n>n</span><span class=p>;</span><span class=c1>//初始化起点\n</span></span></span><span class=line><span class=cl>    <span class=n>v</span><span class=p>.</span><span class=n>step</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=n>sign</span><span class=p>[</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>!</span><span class=n>q</span><span class=p>.</span><span class=n>empty</span><span class=p>()){</span>\n</span></span><span class=line><span class=cl>        <span class=n>u</span><span class=o>=</span><span class=n>q</span><span class=p>.</span><span class=n>front</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=n>q</span><span class=p>.</span><span class=n>pop</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>u</span><span class=p>.</span><span class=n>x</span><span class=o>==</span><span class=n>k</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>u</span><span class=p>.</span><span class=n>step</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>//三种前进方向，左右和闪现\n</span></span></span><span class=line><span class=cl>        <span class=n>v</span><span class=o>=</span><span class=n>u</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>step</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>check</span><span class=p>(</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>            <span class=n>sign</span><span class=p>[</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=o>=</span><span class=n>u</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>step</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>check</span><span class=p>(</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>            <span class=n>sign</span><span class=p>[</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=o>=</span><span class=n>u</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=o>=</span><span class=mi>2</span><span class=o>*</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>.</span><span class=n>step</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>check</span><span class=p>(</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>            <span class=n>sign</span><span class=p>[</span><span class=n>v</span><span class=p>.</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=nb>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>q</span><span class=p>.</span><span class=n>push</span><span class=p>(</span><span class=n>v</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=o>&gt;&gt;</span><span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>memset</span><span class=p>(</span><span class=n>sign</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>sign</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>    <span class=n>bfs</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-3278/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-3278.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-3278.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20POJ-3278-Catch+That+Cow%28bfs%29&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cPOJ-3278-Catch+That+Cow%28bfs%29%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-3278/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-3278.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-3278/ data-title=\"POJ-3278-Catch That Cow(bfs)\" data-hashtags=BFS,ACM,搜索,POJ,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-3278/ data-hashtag=BFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-3278/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-3278/ data-title=\"POJ-3278-Catch That Cow(bfs)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-3278/ data-title=\"POJ-3278-Catch That Cow(bfs)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag title=\"标签 - BFS\">BFS</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=post-tag title=\"标签 - 搜索\">搜索</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/poj-2251/ class=post-nav-item rel=prev title=\"Poj-2251-Dungeon Master（三维 Bfs 最短路）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a><a href=/posts/hdu-2612/ class=post-nav-item rel=next title=\"Hdu-2612-Find a Way（双 Bfs）\">Hdu-2612-Find a Way（双 Bfs）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#hint>Hint</a></li><li><a href=#题意>题意</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/93790f9ff497dfbdac23b3844326f0d5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/93790f9ff497dfbdac23b3844326f0d5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-3278/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-3278/index.md",
    "content": "# POJ-3278-Catch That Cow(bfs)\n\n\nFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\n\n- Walking: FJ can move from any point X to the points X\",\"1 or X + 1 in a single minute\n- Teleporting: FJ can move from any point X to the point 2 × X in a single minute.\n\nIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n\n## Input\n\nLine 1: Two space-separated integers: N and K\n\n## Output\n\nLine 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.\n\n## Sample Input\n\n    5 17\n\n## Sample Output\n\n    4\n\n## Hint\n\nThe fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.\n\n## 题意\n\n农场主的牛不见了，主人和牛在一条直线上，且牛没有新的目标，它不会走动，主人的位置是你 n，牛的位置是 k，主人可以有三种走路的方法，右左（距离+-1），闪现（距离+x,x 为当前位置），每走一步，一分钟，问几分钟主人能找到牛。bfs 搜索方向即为三个“方向”。搜索所有走法；\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include\"iostream\"\n#include<queue>\n#include\"string.h\"\nusing namespace std;\n\nint n,k;\nbool sign[200007];\n\nstruct node{\n    int x,step;\n};\n\nbool check(int a)\n{\n    if(!sign[a]&&a>=0&&a<110000)\n        return true;\n    return false;\n}\n\nvoid bfs()\n{\n    node u,v;\n    queue<node> q;\n    v.x=n;//初始化起点\n    v.step=0;\n    q.push(v);\n    sign[v.x]=true;\n    while(!q.empty()){\n        u=q.front();\n        q.pop();\n        if(u.x==k){\n            cout<<u.step<<endl;\n            return ;\n        }\n\n        //三种前进方向，左右和闪现\n        v=u;\n        v.x++;\n        v.step++;\n        if(check(v.x)){\n            sign[v.x]=true;\n            q.push(v);\n        }\n\n        v=u;\n        v.x--;\n        v.step++;\n        if(check(v.x)){\n            sign[v.x]=true;\n            q.push(v);\n        }\n\n        v=u;\n        v.x=2*v.x;\n        v.step++;\n        if(check(v.x)){\n            sign[v.x]=true;\n            q.push(v);\n        }\n    }\n}\n\nint main()\n{\n    cin>>n>>k;\n    memset(sign,0,sizeof(sign));\n    bfs();\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-3278/  \n\n"
  },
  {
    "path": "posts/poj-3984/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Poj-3984-迷宫问题 (Bfs 路径） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n1 Description 定义一个二维数组：\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\n\"><meta name=keywords content='BFS,ACM,POJ,C++,C'><meta itemprop=name content=\"poj-3984-迷宫问题 (bfs 路径）\"><meta itemprop=description content=\"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n1 Description 定义一个二维数组：\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\"><meta itemprop=datePublished content=\"2018-07-22T11:50:20+08:00\"><meta itemprop=dateModified content=\"2018-07-22T11:50:20+08:00\"><meta itemprop=wordCount content=\"520\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"BFS,acm,POJ,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj-3984/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"poj-3984-迷宫问题 (bfs 路径）\"><meta property=\"og:description\" content=\"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n1 Description 定义一个二维数组：\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:50:20+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T11:50:20+08:00\"><meta property=\"article:tag\" content=\"BFS\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"poj-3984-迷宫问题 (bfs 路径）\"><meta name=twitter:description content=\"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n1 Description 定义一个二维数组：\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj-3984/ title=\"poj-3984-迷宫问题 (bfs 路径） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wannafly-20/ title=\"Wannafly 挑战赛 20-染色\"><link rel=next type=text/html href=https://lruihao.cn/posts/adjacent-replacements/ title=\"Adjacent Replacements\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj-3984/index.md title=\"poj-3984-迷宫问题 (bfs 路径） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"poj-3984-迷宫问题 (bfs 路径）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-3984\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"BFS, ACM, POJ, C\\u002b\\u002b, C\",\"wordcount\":520,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj-3984\\/\",\"datePublished\":\"2018-07-22T11:50:20+08:00\",\"dateModified\":\"2018-07-22T11:50:20+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj-3984/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Poj-3984-迷宫问题 (Bfs 路径）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Poj-3984-迷宫问题 (Bfs 路径）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:50:20\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"520 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Poj-3984-迷宫问题 (Bfs 路径）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#题解>题解</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://poj.org/problem?id=3984\" target=_blank rel=\"external nofollow noopener noreferrer\">迷宫问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>Time Limit: 1000MS Memory Limit: 65536K<br>Total Submissions: 32323 Accepted: 18471</p><h2 class=heading-element id=description><span>1 Description</span>\n<a href=#description class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>定义一个二维数组：</p><pre><code>int maze[5][5] = {\n  0, 1, 0, 0, 0,\n  0, 1, 0, 1, 0,\n  0, 0, 0, 0, 0,\n  0, 1, 1, 1, 0,\n  0, 0, 0, 1, 0,\n};\n</code></pre><p>它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。</p><h2 class=heading-element id=input><span>2 Input</span>\n<a href=#input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一个 5 × 5 的二维数组，表示一个迷宫。数据保证有唯一解。</p><h2 class=heading-element id=output><span>3 Output</span>\n<a href=#output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>左上角到右下角的最短路径，格式如样例所示。</p><h2 class=heading-element id=sample-input><span>4 Sample Input</span>\n<a href=#sample-input class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>0 1 0 0 0\n0 1 0 1 0\n0 0 0 0 0\n0 1 1 1 0\n0 0 0 1 0\n</code></pre><h2 class=heading-element id=sample-output><span>5 Sample Output</span>\n<a href=#sample-output class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><pre><code>(0, 0)\n(1, 0)\n(2, 0)\n(2, 1)\n(2, 2)\n(2, 3)\n(2, 4)\n(3, 4)\n(4, 4)\n</code></pre><p>对于新手来说，主要是 bfs 路径的问题有点难度，搞得晕晕的。</p><h2 class=heading-element id=题解><span>6 题解</span>\n<a href=#%e9%a2%98%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstring&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>map</span><span class=p>[</span><span class=mi>5</span><span class=p>][</span><span class=mi>5</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>visited</span><span class=p>[</span><span class=mi>5</span><span class=p>][</span><span class=mi>5</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>dx</span><span class=p>[</span><span class=mi>4</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>dy</span><span class=p>[</span><span class=mi>4</span><span class=p>]</span><span class=o>=</span><span class=p>{</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=mi>0</span><span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>head</span><span class=p>,</span><span class=n>tail</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=nc>node</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>xx</span><span class=p>,</span><span class=n>yy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>fa</span><span class=p>;</span><span class=c1>//父节点\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=n>pre</span><span class=p>[</span><span class=mi>25</span><span class=p>],</span><span class=n>way</span><span class=p>[</span><span class=mi>25</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>BFS</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>x1</span><span class=p>,</span><span class=n>y1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>visited</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>pre</span><span class=p>[</span><span class=mi>0</span><span class=p>].</span><span class=n>xx</span><span class=o>=</span><span class=n>x</span><span class=p>,</span><span class=n>pre</span><span class=p>[</span><span class=mi>0</span><span class=p>].</span><span class=n>yy</span><span class=o>=</span><span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>tail</span><span class=o>&gt;</span><span class=n>head</span><span class=p>)</span><span class=c1>//栈空\n</span></span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>head</span><span class=p>].</span><span class=n>xx</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>y</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>head</span><span class=p>].</span><span class=n>yy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span><span class=o>==</span><span class=mi>4</span><span class=o>&amp;&amp;</span><span class=n>y</span><span class=o>==</span><span class=mi>4</span><span class=p>)</span><span class=c1>//结束标志\n</span></span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>4</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>x1</span><span class=o>=</span><span class=n>x</span><span class=o>+</span><span class=n>dx</span><span class=p>[</span><span class=n>i</span><span class=p>];</span><span class=n>y1</span><span class=o>=</span><span class=n>y</span><span class=o>+</span><span class=n>dy</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>x1</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>x1</span><span class=o>&lt;=</span><span class=mi>4</span><span class=o>&amp;&amp;</span><span class=n>y1</span><span class=o>&gt;=</span><span class=mi>0</span><span class=o>&amp;&amp;</span><span class=n>y1</span><span class=o>&lt;=</span><span class=mi>4</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>map</span><span class=p>[</span><span class=n>x1</span><span class=p>][</span><span class=n>y1</span><span class=p>]</span><span class=o>==</span><span class=mi>0</span><span class=o>&amp;&amp;!</span><span class=n>visited</span><span class=p>[</span><span class=n>x1</span><span class=p>][</span><span class=n>y1</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=n>pre</span><span class=p>[</span><span class=n>tail</span><span class=p>].</span><span class=n>xx</span><span class=o>=</span><span class=n>x1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>pre</span><span class=p>[</span><span class=n>tail</span><span class=p>].</span><span class=n>yy</span><span class=o>=</span><span class=n>y1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>pre</span><span class=p>[</span><span class=n>tail</span><span class=p>].</span><span class=n>fa</span><span class=o>=</span><span class=n>head</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>visited</span><span class=p>[</span><span class=n>x1</span><span class=p>][</span><span class=n>y1</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>          <span class=n>tail</span><span class=o>+=</span><span class=mi>1</span><span class=p>;</span><span class=c1>//入栈\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=n>head</span><span class=o>++</span><span class=p>;</span><span class=c1>//相当于出栈\n</span></span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>ios</span><span class=o>::</span><span class=n>sync_with_stdio</span><span class=p>(</span><span class=nb>false</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>memset</span><span class=p>(</span><span class=n>map</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>map</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=n>memset</span><span class=p>(</span><span class=n>visited</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>visited</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>5</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=mi>5</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>map</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=n>BFS</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>head</span><span class=p>)</span><span class=c1>//逆序进行赋值输出就是通路\n</span></span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>xx</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>head</span><span class=p>].</span><span class=n>xx</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>yy</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>head</span><span class=p>].</span><span class=n>yy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>head</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>head</span><span class=p>].</span><span class=n>fa</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>i</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//画一下队列\n</span></span></span><span class=line><span class=cl>  <span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>xx</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>yy</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>i</span><span class=o>!=-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34;(&#34;</span><span class=o>&lt;&lt;</span><span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>xx</span><span class=o>&lt;&lt;</span><span class=s>&#34;, &#34;</span><span class=o>&lt;&lt;</span><span class=n>way</span><span class=p>[</span><span class=n>i</span><span class=p>].</span><span class=n>yy</span><span class=o>&lt;&lt;</span><span class=s>&#34;)&#34;</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>i</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 11:50:20\">更新于 2018-07-22&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj-3984/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-3984.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj-3984.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20poj-3984-%E8%BF%B7%E5%AE%AB%E9%97%AE%E9%A2%98+%28bfs+%E8%B7%AF%E5%BE%84%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpoj-3984-%E8%BF%B7%E5%AE%AB%E9%97%AE%E9%A2%98+%28bfs+%E8%B7%AF%E5%BE%84%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj-3984/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj-3984.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj-3984/ data-title=\"Poj-3984-迷宫问题 (Bfs 路径）\" data-hashtags=BFS,ACM,POJ,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj-3984/ data-hashtag=BFS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj-3984/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj-3984/ data-title=\"Poj-3984-迷宫问题 (Bfs 路径）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj-3984/ data-title=\"Poj-3984-迷宫问题 (Bfs 路径）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/bfs/ class=post-tag title=\"标签 - BFS\">BFS</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wannafly-20/ class=post-nav-item rel=prev title=\"Wannafly 挑战赛 20-染色\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Wannafly 挑战赛 20-染色</a><a href=/posts/adjacent-replacements/ class=post-nav-item rel=next title=\"Adjacent Replacements\">Adjacent Replacements<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#description>Description</a></li><li><a href=#input>Input</a></li><li><a href=#output>Output</a></li><li><a href=#sample-input>Sample Input</a></li><li><a href=#sample-output>Sample Output</a></li><li><a href=#题解>题解</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d5a9d79018e75c4302880ad278e28363.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d5a9d79018e75c4302880ad278e28363.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj-3984/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj-3984/index.md",
    "content": "# Poj-3984-迷宫问题 (Bfs 路径）\n\n\n[迷宫问题](http://poj.org/problem?id=3984)\n\nTime Limit: 1000MS Memory Limit: 65536K  \nTotal Submissions: 32323 Accepted: 18471\n\n## Description\n\n定义一个二维数组：\n\n    int maze[5][5] = {\n      0, 1, 0, 0, 0,\n      0, 1, 0, 1, 0,\n      0, 0, 0, 0, 0,\n      0, 1, 1, 1, 0,\n      0, 0, 0, 1, 0,\n    };\n\n它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\n\n## Input\n\n一个 5 × 5 的二维数组，表示一个迷宫。数据保证有唯一解。\n\n## Output\n\n左上角到右下角的最短路径，格式如样例所示。\n\n## Sample Input\n\n    0 1 0 0 0\n    0 1 0 1 0\n    0 0 0 0 0\n    0 1 1 1 0\n    0 0 0 1 0\n\n## Sample Output\n\n    (0, 0)\n    (1, 0)\n    (2, 0)\n    (2, 1)\n    (2, 2)\n    (2, 3)\n    (2, 4)\n    (3, 4)\n    (4, 4)\n\n对于新手来说，主要是 bfs 路径的问题有点难度，搞得晕晕的。\n\n## 题解\n\n<!-- markdownlint-disable code-block-style -->\n\n```cpp\n#include<iostream>\n#include<cstring>\nusing namespace std;\nint map[5][5];\nint visited[5][5];\nint dx[4]={0, 1, 0, -1};\nint dy[4]={ 1, 0,-1, 0};\nint head,tail;\nstruct node{\n  int xx,yy;\n  int fa;//父节点\n}pre[25],way[25];\n\nvoid BFS(int x,int y)\n{\n  int x1,y1;\n  visited[x][y]=1;\n  pre[0].xx=x,pre[0].yy=y;\n\n  while(tail>head)//栈空\n  {\n    x=pre[head].xx;\n    y=pre[head].yy;\n    if(x==4&&y==4)//结束标志\n      return ;\n    for(int i=0;i<4;i++)\n    {\n      x1=x+dx[i];y1=y+dy[i];\n      if(x1>=0&&x1<=4&&y1>=0&&y1<=4)\n        if(map[x1][y1]==0&&!visited[x1][y1])\n        {\n          pre[tail].xx=x1;\n          pre[tail].yy=y1;\n          pre[tail].fa=head;\n          visited[x1][y1]=1;\n          tail+=1;//入栈\n        }\n    }\n    head++;//相当于出栈\n  }\n}\nint main()\n{\n  int i,j;\n  ios::sync_with_stdio(false);\n  memset(map,0,sizeof(map));\n  memset(visited,0,sizeof(visited));\n  for(i=0;i<5;i++)\n    for(j=0;j<5;j++)\n      cin>>map[i][j];\n  BFS(0,0);\n  i=0;\n  while(head)//逆序进行赋值输出就是通路\n  {\n    way[i].xx=pre[head].xx;\n    way[i].yy=pre[head].yy;\n    head=pre[head].fa;\n    i++;\n  }\n  //画一下队列\n  way[i].xx=0;way[i].yy=0;\n  while(i!=-1)\n  {\n    cout<<\"(\"<<way[i].xx<<\", \"<<way[i].yy<<\")\"<<endl;\n    i--;\n  }\n  return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj-3984/  \n\n"
  },
  {
    "path": "posts/poj1182/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>食物链-Poj1182（带权并查集经典模板） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接\n思路参考 1,思路参考 2（没看懂）\n\"><meta name=keywords content='ACM,并查集,POJ,C++,C'><meta itemprop=name content=\"食物链-poj1182（带权并查集经典模板）\"><meta itemprop=description content=\"题目链接\n思路参考 1,思路参考 2（没看懂）\"><meta itemprop=datePublished content=\"2018-08-02T11:10:37+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=wordCount content=\"755\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,并查集,POJ,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj1182/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"食物链-poj1182（带权并查集经典模板）\"><meta property=\"og:description\" content=\"题目链接\n思路参考 1,思路参考 2（没看懂）\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-02T11:10:37+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-02T13:35:30+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"食物链-poj1182（带权并查集经典模板）\"><meta name=twitter:description content=\"题目链接\n思路参考 1,思路参考 2（没看懂）\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj1182/ title=\"食物链-poj1182（带权并查集经典模板） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu1272/ title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><link rel=next type=text/html href=https://lruihao.cn/posts/nowcodersummer-5th/ title=牛客暑假多校第五场><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj1182/index.md title=\"食物链-poj1182（带权并查集经典模板） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"食物链-poj1182（带权并查集经典模板）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj1182\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 并查集, POJ, C\\u002b\\u002b, C\",\"wordcount\":755,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj1182\\/\",\"datePublished\":\"2018-08-02T11:10:37+08:00\",\"dateModified\":\"2024-10-02T13:35:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj1182/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>食物链-Poj1182（带权并查集经典模板）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>食物链-Poj1182（带权并查集经典模板）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-02 11:10:37\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-02>2018-08-02</time></span>&nbsp;<span title=\"更新于 2024-10-02 13:35:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-02>2024-10-02</time></span>&nbsp;<span title=\"755 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=食物链-Poj1182（带权并查集经典模板）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-02，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://poj.org/problem?id=1182\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><a href=https://blog.csdn.net/freezhanacmore/article/details/8767413 target=_blank rel=\"external nofollow noopener noreferrer\">思路参考 1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>,<a href=https://blog.csdn.net/niushuai666/article/details/6981689 target=_blank rel=\"external nofollow noopener noreferrer\">思路参考 2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（没看懂）</p><p><del>先占坑，有时间再理理思路。</del></p><blockquote><p>同一棵树中</p><blockquote><p>d=1, 即 x 和 y 是同类，则需满足 r[x]==r[y]<br>d=2,x 应该吃了 y, 也就是 (r[x]+1)%3 == r[y] <a class=lightgallery target=_blank href=/posts/poj1182/images/1.jpg title=/posts/poj1182/images/1.jpg data-thumbnail=/posts/poj1182/images/1.jpg data-sub-html=\"<h2>/posts/poj1182/images/1.jpg</h2>\"><img loading=lazy src=/posts/poj1182/images/1.jpg alt=/posts/poj1182/images/1.jpg height=269 width=452></a></p></blockquote><p>不同树合并且更新关系 (<strong>x 树做主根</strong>)<br>&rsquo; <strong>如果 x 和 y 为关系 r1, y 和 z 为关系 r2，那么 x 和 z 的关系就是（r1+r2）%3</strong></p><blockquote><p>如果 d<mark class=mark-default>1 则 x 和 y 是同类，那么 y 对 x 的关系是 0, 如果 d</mark>2 , 则 x 吃了 y, 那么 y 对 x 的关系是 1, x 对 y 的关系是 2。综上所述 , 无论 d 为 1 或者是为 2, y 对 x 的关系都是 d-1。<br>fy 对 y 的关系为 3-r[y] （有点互补的感觉，注意这里是不同类喔）<br>y 对 x 的关系为 d-1,<br>x 对 fx 的关系为 r[x]<br>所以 fy 对 fx 的关系是（3-r[y] + d-1 + r[x]）%3。可以借助向量图理解 fy->y->x->fx <a class=lightgallery target=_blank href=/posts/poj1182/images/2.jpg title=/posts/poj1182/images/2.jpg data-thumbnail=/posts/poj1182/images/2.jpg data-sub-html=\"<h2>/posts/poj1182/images/2.jpg</h2>\"><img loading=lazy src=/posts/poj1182/images/2.jpg alt=/posts/poj1182/images/2.jpg height=376 width=608></a></p></blockquote></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;cstdio&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>maxn</span> <span class=o>=</span> <span class=mi>50000</span><span class=o>+</span><span class=mi>10</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>p</span><span class=p>[</span><span class=n>maxn</span><span class=p>];</span> <span class=c1>//存父节点\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>r</span><span class=p>[</span><span class=n>maxn</span><span class=p>];</span><span class=c1>//存与父节点的关系 0 同一类，1 被父节点吃，2 吃父节点\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>set</span><span class=p>(</span><span class=kt>int</span> <span class=n>n</span><span class=p>)</span> <span class=c1>//初始化\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>x</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>;</span> <span class=n>x</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>=</span> <span class=n>x</span><span class=p>;</span> <span class=c1>//开始自己是自己的父亲节点\n</span></span></span><span class=line><span class=cl>        <span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span><span class=c1>//开始自己就是自己的父亲，每一个点均独立\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>)</span> <span class=c1>//找父亲节点\n</span></span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>x</span> <span class=o>==</span> <span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>])</span> <span class=k>return</span> <span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>t</span> <span class=o>=</span> <span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>=</span> <span class=nf>find</span><span class=p>(</span><span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>    <span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>=</span> <span class=p>(</span><span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span><span class=o>+</span><span class=n>r</span><span class=p>[</span><span class=n>t</span><span class=p>])</span><span class=o>%</span><span class=mi>3</span><span class=p>;</span> <span class=c1>//回溯由子节点与父节点的关系和父节点与根节点的关系找子节点与根节点的关系\n</span></span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>p</span><span class=p>[</span><span class=n>x</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>Union</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span> <span class=kt>int</span> <span class=n>y</span><span class=p>,</span> <span class=kt>int</span> <span class=n>d</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fx</span> <span class=o>=</span> <span class=nf>find</span><span class=p>(</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fy</span> <span class=o>=</span> <span class=nf>find</span><span class=p>(</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>p</span><span class=p>[</span><span class=n>fy</span><span class=p>]</span> <span class=o>=</span> <span class=n>fx</span><span class=p>;</span> <span class=c1>//合并树 注意：被 x 吃，所以以 x 的根为父\n</span></span></span><span class=line><span class=cl>    <span class=n>r</span><span class=p>[</span><span class=n>fy</span><span class=p>]</span> <span class=o>=</span> <span class=p>(</span><span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span><span class=o>-</span><span class=n>r</span><span class=p>[</span><span class=n>y</span><span class=p>]</span><span class=o>+</span><span class=mi>3</span><span class=o>+</span><span class=p>(</span><span class=n>d</span><span class=o>-</span><span class=mi>1</span><span class=p>))</span><span class=o>%</span><span class=mi>3</span><span class=p>;</span> <span class=c1>//对应更新与父节点的关系\n</span></span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span> <span class=n>m</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>n</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nf>set</span><span class=p>(</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>ans</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>d</span><span class=p>,</span> <span class=n>x</span><span class=p>,</span> <span class=n>y</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>m</span><span class=o>--</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>d</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>x</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>x</span> <span class=o>&gt;</span> <span class=n>n</span> <span class=o>||</span> <span class=n>y</span> <span class=o>&gt;</span> <span class=n>n</span> <span class=o>||</span> <span class=p>(</span><span class=n>d</span> <span class=o>==</span> <span class=mi>2</span> <span class=o>&amp;&amp;</span> <span class=n>x</span> <span class=o>==</span> <span class=n>y</span><span class=p>))</span> <span class=n>ans</span><span class=o>++</span><span class=p>;</span> <span class=c1>//如果节点编号大于最大编号，或者自己吃自己，说谎\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=k>if</span><span class=p>(</span><span class=nf>find</span><span class=p>(</span><span class=n>x</span><span class=p>)</span> <span class=o>==</span> <span class=nf>find</span><span class=p>(</span><span class=n>y</span><span class=p>))</span> <span class=c1>//如果原来有关系，也就是在同一棵树中，那么直接判断是否说谎\n</span></span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>d</span> <span class=o>==</span> <span class=mi>1</span> <span class=o>&amp;&amp;</span> <span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>!=</span> <span class=n>r</span><span class=p>[</span><span class=n>y</span><span class=p>])</span> <span class=n>ans</span><span class=o>++</span><span class=p>;</span> <span class=c1>//如果 x 和 y 不属于同一类\n</span></span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>d</span> <span class=o>==</span> <span class=mi>2</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=n>r</span><span class=p>[</span><span class=n>x</span><span class=p>]</span><span class=o>+</span><span class=mi>1</span><span class=p>)</span><span class=o>%</span><span class=mi>3</span> <span class=o>!=</span> <span class=n>r</span><span class=p>[</span><span class=n>y</span><span class=p>])</span> <span class=n>ans</span><span class=o>++</span><span class=p>;</span> <span class=c1>// 如果 x 没有吃 y（注意要对应 Uinon(x, y) 的情况，否则一路 WA 到死啊！！！)\n</span></span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span> <span class=nf>Union</span><span class=p>(</span><span class=n>x</span><span class=p>,</span> <span class=n>y</span><span class=p>,</span> <span class=n>d</span><span class=p>);</span> <span class=c1>//如果开始没有关系，则建立关系\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-02 13:35:30\">更新于 2024-10-02&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/95cf587f274c3dbc21472d9bac84a850592dfde9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 支持按分组设置文章分类和合集&#10&#10Commit: 95cf587f274c3dbc21472d9bac84a850592dfde9 [95cf587]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-02 13:35:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>95cf587</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj1182/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj1182/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj1182/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%A3%9F%E7%89%A9%E9%93%BE-poj1182%EF%BC%88%E5%B8%A6%E6%9D%83%E5%B9%B6%E6%9F%A5%E9%9B%86%E7%BB%8F%E5%85%B8%E6%A8%A1%E6%9D%BF%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%A3%9F%E7%89%A9%E9%93%BE-poj1182%EF%BC%88%E5%B8%A6%E6%9D%83%E5%B9%B6%E6%9F%A5%E9%9B%86%E7%BB%8F%E5%85%B8%E6%A8%A1%E6%9D%BF%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj1182/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj1182/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj1182/ data-title=食物链-Poj1182（带权并查集经典模板） data-hashtags=ACM,并查集,POJ,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj1182/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj1182/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj1182/ data-title=食物链-Poj1182（带权并查集经典模板） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj1182/ data-title=食物链-Poj1182（带权并查集经典模板）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu1272/ class=post-nav-item rel=prev title=\"小希的迷宫-HDU-1272（并查集 or 树性质）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>小希的迷宫-HDU-1272（并查集 or 树性质）</a><a href=/posts/nowcodersummer-5th/ class=post-nav-item rel=next title=牛客暑假多校第五场>牛客暑假多校第五场<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5a34e845cf080729c16df88f67bdbcf3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5a34e845cf080729c16df88f67bdbcf3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj1182/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj1182/index.md",
    "content": "# 食物链-Poj1182（带权并查集经典模板）\n\n\n[题目链接](http://poj.org/problem?id=1182)  \n[思路参考 1](https://blog.csdn.net/freezhanacmore/article/details/8767413),[思路参考 2](https://blog.csdn.net/niushuai666/article/details/6981689)（没看懂）\n\n<!--more-->\n\n~~先占坑，有时间再理理思路。~~\n\n> 同一棵树中\n>\n> > d=1, 即 x 和 y 是同类，则需满足 r[x]==r[y]  \n> > d=2,x 应该吃了 y, 也就是 (r[x]+1)%3 == r[y] ![](images/1.jpg)\n>\n> 不同树合并且更新关系 (**x 树做主根**)  \n> ' **如果 x 和 y 为关系 r1, y 和 z 为关系 r2，那么 x 和 z 的关系就是（r1+r2）%3**\n>\n> > 如果 d==1 则 x 和 y 是同类，那么 y 对 x 的关系是 0, 如果 d==2 , 则 x 吃了 y, 那么 y 对 x 的关系是 1, x 对 y 的关系是 2。综上所述 , 无论 d 为 1 或者是为 2, y 对 x 的关系都是 d-1。  \n> > fy 对 y 的关系为 3-r[y] （有点互补的感觉，注意这里是不同类喔）  \n> > y 对 x 的关系为 d-1,  \n> > x 对 fx 的关系为 r[x]  \n> > 所以 fy 对 fx 的关系是（3-r[y] + d-1 + r[x]）%3。可以借助向量图理解 fy->y->x->fx ![](images/2.jpg)\n\n```c\n#include<cstdio>\n\nconst int maxn = 50000+10;\n\nint p[maxn]; //存父节点\nint r[maxn];//存与父节点的关系 0 同一类，1 被父节点吃，2 吃父节点\n\nvoid set(int n) //初始化\n{\n    for(int x = 1; x <= n; x++)\n    {\n        p[x] = x; //开始自己是自己的父亲节点\n        r[x] = 0;//开始自己就是自己的父亲，每一个点均独立\n    }\n}\n\nint find(int x) //找父亲节点\n{\n    if(x == p[x]) return x;\n\n    int t = p[x];\n    p[x] = find(p[x]);\n    r[x] = (r[x]+r[t])%3; //回溯由子节点与父节点的关系和父节点与根节点的关系找子节点与根节点的关系\n    return p[x];\n}\n\nvoid Union(int x, int y, int d)\n{\n    int fx = find(x);\n    int fy = find(y);\n\n    p[fy] = fx; //合并树 注意：被 x 吃，所以以 x 的根为父\n    r[fy] = (r[x]-r[y]+3+(d-1))%3; //对应更新与父节点的关系\n}\n\nint main()\n{\n    int n, m;\n    scanf(\"%d%d\", &n, &m);\n    set(n);\n\n    int ans = 0;\n    int d, x, y;\n    while(m--)\n    {\n        scanf(\"%d%d%d\", &d, &x, &y);\n\n        if(x > n || y > n || (d == 2 && x == y)) ans++; //如果节点编号大于最大编号，或者自己吃自己，说谎\n\n        else if(find(x) == find(y)) //如果原来有关系，也就是在同一棵树中，那么直接判断是否说谎\n        {\n            if(d == 1 && r[x] != r[y]) ans++; //如果 x 和 y 不属于同一类\n            if(d == 2 && (r[x]+1)%3 != r[y]) ans++; // 如果 x 没有吃 y（注意要对应 Uinon(x, y) 的情况，否则一路 WA 到死啊！！！)\n        }\n        else Union(x, y, d); //如果开始没有关系，则建立关系\n    }\n    printf(\"%d\\n\", ans);\n    return 0;\n}\n\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj1182/  \n\n"
  },
  {
    "path": "posts/poj1797/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Heavy Transportation-Poj1797(dijkstra 或最大生成树） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"题目链接\n大意：\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单，就是找一条 1&ndash;>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \"><meta name=keywords content='ACM,POJ,最短路,C++'><meta itemprop=name content=\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\"><meta itemprop=description content=\"题目链接\n大意：\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单，就是找一条 1–>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\"><meta itemprop=datePublished content=\"2018-08-06T09:42:11+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"401\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,POJ,最短路,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj1797/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\"><meta property=\"og:description\" content=\"题目链接\n大意：\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单，就是找一条 1–>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-06T09:42:11+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"POJ\"><meta property=\"article:tag\" content=\"最短路\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\"><meta name=twitter:description content=\"题目链接\n大意：\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单，就是找一条 1–>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj1797/ title=\"Heavy Transportation-poj1797(dijkstra 或最大生成树） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/console-log/ title=\"hexo 博客自定义 console log\"><link rel=next type=text/html href=https://lruihao.cn/posts/euler/ title=欧拉函数><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj1797/index.md title=\"Heavy Transportation-poj1797(dijkstra 或最大生成树） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj1797\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, POJ, 最短路, C\\u002b\\u002b\",\"wordcount\":401,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj1797\\/\",\"datePublished\":\"2018-08-06T09:42:11+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj1797/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-06 09:42:11\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-06>2018-08-06</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"401 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://poj.org/problem?id=1797\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>大意：<br>要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。<br>其实题意很简单，就是找一条 1&ndash;>N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n<a class=lightgallery target=_blank href=images/update.jpg title=更新 data-thumbnail=images/update.jpg data-sub-html=\"<h2>更新</h2>\"><img loading=lazy src=images/update.jpg alt=更新></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=c1>//dijkstra\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#define min(a,b) (a&lt;b?a:b)\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>v</span><span class=p>[</span><span class=mi>1010</span><span class=p>],</span><span class=n>maps</span><span class=p>[</span><span class=mi>1010</span><span class=p>][</span><span class=mi>1010</span><span class=p>],</span><span class=n>d</span><span class=p>[</span><span class=mi>1010</span><span class=p>];</span><span class=c1>//此时 d 表示 1 到每一个点的能通过的最大的重量\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>dijkstra</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>k</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>maps</span><span class=p>[</span><span class=mi>1</span><span class=p>][</span><span class=n>i</span><span class=p>];</span><span class=c1>//这个时候 d 不代表最短路径，而是从 1 到 n 的最大承载量\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span><span class=c1>//n 个点\n</span></span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>f</span><span class=o>=-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&amp;&amp;</span><span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&gt;</span><span class=n>f</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=n>f</span><span class=o>=</span><span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>                <span class=n>k</span><span class=o>=</span><span class=n>j</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&amp;&amp;</span><span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&lt;</span><span class=n>min</span><span class=p>(</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>],</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>]))</span><span class=c1>//更新说明见图解\n</span></span></span><span class=line><span class=cl>                <span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>min</span><span class=p>(</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>],</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>d</span><span class=p>[</span><span class=n>n</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>ans</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>,</span><span class=n>w</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>T</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>T</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>T</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>maps</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>m</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>,</span><span class=o>&amp;</span><span class=n>b</span><span class=p>,</span><span class=o>&amp;</span><span class=n>w</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>maps</span><span class=p>[</span><span class=n>a</span><span class=p>][</span><span class=n>b</span><span class=p>]</span><span class=o>=</span><span class=n>maps</span><span class=p>[</span><span class=n>b</span><span class=p>][</span><span class=n>a</span><span class=p>]</span><span class=o>=</span><span class=n>w</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;Scenario #%d:</span><span class=se>\\n</span><span class=s>%d</span><span class=se>\\n\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=o>++</span><span class=p>,</span><span class=n>dijkstra</span><span class=p>());</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj1797/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj1797/poj1797.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj1797/poj1797.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Heavy+Transportation-poj1797%28dijkstra+%E6%88%96%E6%9C%80%E5%A4%A7%E7%94%9F%E6%88%90%E6%A0%91%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cHeavy+Transportation-poj1797%28dijkstra+%E6%88%96%E6%9C%80%E5%A4%A7%E7%94%9F%E6%88%90%E6%A0%91%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj1797/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj1797/poj1797.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj1797/ data-title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\" data-hashtags=ACM,POJ,最短路,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj1797/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj1797/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj1797/ data-title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj1797/ data-title=\"Heavy Transportation-Poj1797(dijkstra 或最大生成树）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/poj/ class=post-tag title=\"标签 - POJ\">POJ</a><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag title=\"标签 - 最短路\">最短路</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/console-log/ class=post-nav-item rel=prev title=\"Hexo 博客自定义 Console Log\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo 博客自定义 Console Log</a><a href=/posts/euler/ class=post-nav-item rel=next title=欧拉函数>欧拉函数<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7a351a9cd38836cc0730ebeed0d61953.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7a351a9cd38836cc0730ebeed0d61953.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj1797/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj1797/index.md",
    "content": "# Heavy Transportation-Poj1797(dijkstra 或最大生成树）\n\n\n[题目链接](http://poj.org/problem?id=1797)\n\n大意：  \n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。  \n其实题意很简单，就是找一条 1-->N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n![更新](images/update.jpg)\n\n<!--more-->\n\n```cpp\n//dijkstra\n#include<iostream>\n#include<cstdio>\n#define min(a,b) (a<b?a:b)\nusing namespace std;\n\nint n,m,v[1010],maps[1010][1010],d[1010];//此时 d 表示 1 到每一个点的能通过的最大的重量\n\nint dijkstra(){\n    int i,j,k;\n    for(i=1;i<=n;i++){\n        v[i]=0;\n        d[i]=maps[1][i];//这个时候 d 不代表最短路径，而是从 1 到 n 的最大承载量\n    }\n    for(i=1;i<=n;i++){//n 个点\n        int f=-1;\n        for(j=1;j<=n;j++)\n            if(!v[j]&&d[j]>f){\n                f=d[j];\n                k=j;\n            }\n        v[k]=1;\n        for(j=1;j<=n;j++)\n            if(!v[j]&&d[j]<min(d[k],maps[k][j]))//更新说明见图解\n                d[j]=min(d[k],maps[k][j]);\n    }\n    return d[n];\n}\n\nint main(){\n    int ans=1;\n    int a,b,w;\n    int T;\n    scanf(\"%d\",&T);\n    while(T--){\n        for(int i=0;i<=n;i++)\n            for(int j=0;j<=n;j++)\n                maps[i][j]=0;\n        scanf(\"%d%d\",&n,&m);\n        for(int i=1;i<=m;i++) {\n            scanf(\"%d%d%d\",&a,&b,&w);\n            maps[a][b]=maps[b][a]=w;\n        }\n        printf(\"Scenario #%d:\\n%d\\n\\n\",ans++,dijkstra());\n\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj1797/  \n\n"
  },
  {
    "path": "posts/poj2387/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Til the Cows Come Home-Poj2387(dijkstra 判断重边） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content='题目链接\n题目大意：\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\n两个点可能有多条路，选择最短的。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i<=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i<=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j<=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] && d[j]<mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(\"%d\\n\",d[t]); return; } for(j=1;j<=n;j++) if(!v[j] && (d[k]+maps[k][j])<d[j]) //表示从 k 出发的点，对于所有边，更新相连点 d[j]=d[k]+maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(\"%d %d\",&amp;T,&amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i<=n;i++) for(j=1;j<=n;j++) maps[i][j]=INF; for(i=1;i<=T;i++){ scanf(\"%d%d%d\",&amp;x,&amp;y,&amp;D); if(maps[x][y]>D) //可能有多条路，只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; } '><meta name=keywords content='ACM,最短路,C++,C'><meta itemprop=name content=\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\"><meta itemprop=description content='题目链接\n题目大意：\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\n两个点可能有多条路，选择最短的。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i<=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i<=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j<=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] && d[j]<mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(\"%d\\n\",d[t]); return; } for(j=1;j<=n;j++) if(!v[j] && (d[k]+maps[k][j])<d[j]) //表示从 k 出发的点，对于所有边，更新相连点 d[j]=d[k]+maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(\"%d %d\",&amp;T,&amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i<=n;i++) for(j=1;j<=n;j++) maps[i][j]=INF; for(i=1;i<=T;i++){ scanf(\"%d%d%d\",&amp;x,&amp;y,&amp;D); if(maps[x][y]>D) //可能有多条路，只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; }'><meta itemprop=datePublished content=\"2018-08-03T21:40:33+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"332\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,最短路,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/poj2387/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\"><meta property=\"og:description\" content='题目链接\n题目大意：\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\n两个点可能有多条路，选择最短的。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i<=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i<=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j<=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] && d[j]<mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(\"%d\\n\",d[t]); return; } for(j=1;j<=n;j++) if(!v[j] && (d[k]+maps[k][j])<d[j]) //表示从 k 出发的点，对于所有边，更新相连点 d[j]=d[k]+maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(\"%d %d\",&amp;T,&amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i<=n;i++) for(j=1;j<=n;j++) maps[i][j]=INF; for(i=1;i<=T;i++){ scanf(\"%d%d%d\",&amp;x,&amp;y,&amp;D); if(maps[x][y]>D) //可能有多条路，只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; }'><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-03T21:40:33+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"最短路\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\"><meta name=twitter:description content='题目链接\n题目大意：\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\n两个点可能有多条路，选择最短的。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i<=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i<=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j<=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] && d[j]<mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(\"%d\\n\",d[t]); return; } for(j=1;j<=n;j++) if(!v[j] && (d[k]+maps[k][j])<d[j]) //表示从 k 出发的点，对于所有边，更新相连点 d[j]=d[k]+maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(\"%d %d\",&amp;T,&amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i<=n;i++) for(j=1;j<=n;j++) maps[i][j]=INF; for(i=1;i<=T;i++){ scanf(\"%d%d%d\",&amp;x,&amp;y,&amp;D); if(maps[x][y]>D) //可能有多条路，只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; }'><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/poj2387/ title=\"Til the Cows Come Home-poj2387(dijkstra 判断重边） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/zuiduanlu/ title=最短路入门><link rel=next type=text/html href=https://lruihao.cn/posts/console-log/ title=\"hexo 博客自定义 console log\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/poj2387/index.md title=\"Til the Cows Come Home-poj2387(dijkstra 判断重边） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/poj2387\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 最短路, C\\u002b\\u002b, C\",\"wordcount\":332,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/poj2387\\/\",\"datePublished\":\"2018-08-03T21:40:33+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/poj2387/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-03 21:40:33\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-03>2018-08-03</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"332 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=\"http://poj.org/problem?id=2387\" target=_blank rel=\"external nofollow noopener noreferrer\">题目链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>题目大意：<br>说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。</p><p>两个点可能有多条路，选择最短的。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;stdio.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;string.h&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;algorithm&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>INF</span><span class=o>=</span><span class=mi>99999999</span><span class=p>;</span>                    <span class=c1>//设为无穷大\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>maps</span><span class=p>[</span><span class=mi>1005</span><span class=p>][</span><span class=mi>1005</span><span class=p>],</span><span class=n>v</span><span class=p>[</span><span class=mi>1005</span><span class=p>],</span><span class=n>d</span><span class=p>[</span><span class=mi>1005</span><span class=p>];</span>  <span class=c1>//v 表示是否已经过遍历 d 表示从源到点当前最短路\n</span></span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>Dijkstra</span><span class=p>(</span><span class=kt>int</span> <span class=n>s</span><span class=p>,</span><span class=kt>int</span> <span class=n>t</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>k</span><span class=p>,</span><span class=n>mini</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>                      <span class=c1>//除源点设为 0 距离外 其他先设为无穷大\n</span></span></span><span class=line><span class=cl>    <span class=n>d</span><span class=p>[</span><span class=n>s</span><span class=p>]</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>         <span class=c1>//n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n</span></span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>mini</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>k</span><span class=o>=-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>              <span class=c1>//在所有未标记点中 选 d 值最小的点\n</span></span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>&lt;</span><span class=n>mini</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>mini</span><span class=o>=</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=o>=</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>v</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>                         <span class=c1>//标记节点\n</span></span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>k</span><span class=o>==</span><span class=n>t</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>d</span><span class=p>[</span><span class=n>t</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>            <span class=k>return</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>v</span><span class=p>[</span><span class=n>j</span><span class=p>]</span> <span class=o>&amp;&amp;</span> <span class=p>(</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>+</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>])</span><span class=o>&lt;</span><span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>])</span>   <span class=c1>//表示从 k 出发的点，对于所有边，更新相连点\n</span></span></span><span class=line><span class=cl>                <span class=n>d</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>d</span><span class=p>[</span><span class=n>k</span><span class=p>]</span><span class=o>+</span><span class=n>maps</span><span class=p>[</span><span class=n>k</span><span class=p>][</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>T</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=p>,</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>,</span><span class=n>D</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d %d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>T</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>)</span><span class=o>!=</span><span class=n>EOF</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>v</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>v</span><span class=p>));</span>            <span class=c1>//清除标记\n</span></span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>maps</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>INF</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>T</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x</span><span class=p>,</span><span class=o>&amp;</span><span class=n>y</span><span class=p>,</span><span class=o>&amp;</span><span class=n>D</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>maps</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>&gt;</span><span class=n>D</span><span class=p>)</span>               <span class=c1>//可能有多条路，只记录最短的\n</span></span></span><span class=line><span class=cl>                <span class=n>maps</span><span class=p>[</span><span class=n>x</span><span class=p>][</span><span class=n>y</span><span class=p>]</span><span class=o>=</span><span class=n>D</span><span class=p>,</span><span class=n>maps</span><span class=p>[</span><span class=n>y</span><span class=p>][</span><span class=n>x</span><span class=p>]</span><span class=o>=</span><span class=n>D</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>Dijkstra</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/poj2387/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj2387.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/poj2387.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Til+the+Cows+Come+Home-poj2387%28dijkstra+%E5%88%A4%E6%96%AD%E9%87%8D%E8%BE%B9%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cTil+the+Cows+Come+Home-poj2387%28dijkstra+%E5%88%A4%E6%96%AD%E9%87%8D%E8%BE%B9%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/poj2387/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/poj2387.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/poj2387/ data-title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\" data-hashtags=ACM,最短路,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/poj2387/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/poj2387/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/poj2387/ data-title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/poj2387/ data-title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag title=\"标签 - 最短路\">最短路</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/zuiduanlu/ class=post-nav-item rel=prev title=最短路入门><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>最短路入门</a><a href=/posts/console-log/ class=post-nav-item rel=next title=\"Hexo 博客自定义 Console Log\">Hexo 博客自定义 Console Log<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e3da3ff90cf53f4a9658f3d622190e2a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e3da3ff90cf53f4a9658f3d622190e2a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/poj2387/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/poj2387/index.md",
    "content": "# Til the Cows Come Home-Poj2387(dijkstra 判断重边）\n\n\n[题目链接](http://poj.org/problem?id=2387)\n\n题目大意：  \n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\n\n两个点可能有多条路，选择最短的。\n\n```cpp\n#include<stdio.h>\n#include<string.h>\n#include<algorithm>\nusing namespace std;\n\nconst int INF=99999999;                    //设为无穷大\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n    int i,j,k,mini;\n    for(i=1;i<=n;i++)\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\n    d[s]=0;\n    for(i=1;i<=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n    {\n        mini=INF;\n        k=-1;\n        for(j=1;j<=n;j++)              //在所有未标记点中 选 d 值最小的点\n            if(!v[j] && d[j]<mini)\n                mini=d[k=j];\n\n        v[k]=1;                         //标记节点\n        if(k==t)\n        {\n            printf(\"%d\\n\",d[t]);\n            return;\n        }\n        for(j=1;j<=n;j++)\n            if(!v[j] && (d[k]+maps[k][j])<d[j])   //表示从 k 出发的点，对于所有边，更新相连点\n                d[j]=d[k]+maps[k][j];\n    }\n}\n\nint main()\n{\n    int T,i,j,x,y,D;\n    while(scanf(\"%d %d\",&T,&n)!=EOF)\n    {\n        memset(v,0,sizeof(v));            //清除标记\n        for(i=1;i<=n;i++)\n            for(j=1;j<=n;j++)\n                maps[i][j]=INF;\n\n        for(i=1;i<=T;i++){\n            scanf(\"%d%d%d\",&x,&y,&D);\n            if(maps[x][y]>D)               //可能有多条路，只记录最短的\n                maps[x][y]=D,maps[y][x]=D;\n        }\n        Dijkstra(1,n);\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/poj2387/  \n\n"
  },
  {
    "path": "posts/posttest/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 发送 Post 请求进行简单的接口测试 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \"><meta name=keywords content='Python,HTTP'><meta itemprop=name content=\"python 发送 post 请求进行简单的接口测试\"><meta itemprop=description content=\"通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\"><meta itemprop=datePublished content=\"2019-05-07T18:17:05+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"195\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python,HTTP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/posttest/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 发送 post 请求进行简单的接口测试\"><meta property=\"og:description\" content=\"通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-07T18:17:05+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"HTTP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 发送 post 请求进行简单的接口测试\"><meta name=twitter:description content=\"通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/posttest/ title=\"python 发送 post 请求进行简单的接口测试 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/java-urlreader/ title=\"java 通过 URL 和 URLConnection 访问网页资源\"><link rel=next type=text/html href=https://lruihao.cn/posts/jsoninfo/ title=\"Python 如何操作 Json？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/posttest/index.md title=\"python 发送 post 请求进行简单的接口测试 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 发送 post 请求进行简单的接口测试\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/posttest\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, HTTP\",\"wordcount\":195,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/posttest\\/\",\"datePublished\":\"2019-05-07T18:17:05+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/posttest/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 发送 Post 请求进行简单的接口测试</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 发送 Post 请求进行简单的接口测试</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-07 18:17:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-07>2019-05-07</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"195 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 发送 Post 请求进行简单的接口测试\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：</p></blockquote><ul><li>requests.get()</li><li>requests.post()<br>最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=ch>#!/usr/bin/python</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>requests</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=s2>&#34;&#34;&#34;\n</span></span></span><span class=line><span class=cl><span class=s2>通过 requests 可以向某个地址发送请求 requests.post(url,json date)\n</span></span></span><span class=line><span class=cl><span class=s2>post 方法还有其他参数，如 header 等\n</span></span></span><span class=line><span class=cl><span class=s2>&#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># post 发送的数据</span>\n</span></span><span class=line><span class=cl><span class=n>postData</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1># &#39;username&#39;:&#39;test&#39;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1># &#39;password&#39;:&#39;123456&#39;,</span>\n</span></span><span class=line><span class=cl>    <span class=c1># &#39;salary&#39;:2000,</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 接口这里不便公开</span>\n</span></span><span class=line><span class=cl><span class=n>r</span> <span class=o>=</span> <span class=n>requests</span><span class=o>.</span><span class=n>post</span><span class=p>(</span><span class=s1>&#39;http://demo.maxiaokeji.com/xx/xxxxx/xxxx&#39;</span><span class=p>,</span><span class=n>data</span><span class=o>=</span><span class=n>postData</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=c1># print(r.text)</span>\n</span></span><span class=line><span class=cl><span class=n>response</span><span class=o>=</span><span class=n>r</span><span class=o>.</span><span class=n>json</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>response</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>运行后会在屏幕打印出返回的 json 数据\n<a class=lightgallery target=_blank href=/posts/posttest/images/1.png title=返回数据 data-thumbnail=/posts/posttest/images/1.png data-sub-html=\"<h2>返回数据</h2>\"><img loading=lazy src=/posts/posttest/images/1.png alt=返回数据 height=281 width=942></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/posttest/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/posttest/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/posttest/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E5%8F%91%E9%80%81+post+%E8%AF%B7%E6%B1%82%E8%BF%9B%E8%A1%8C%E7%AE%80%E5%8D%95%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E5%8F%91%E9%80%81+post+%E8%AF%B7%E6%B1%82%E8%BF%9B%E8%A1%8C%E7%AE%80%E5%8D%95%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/posttest/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/posttest/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/posttest/ data-title=\"Python 发送 Post 请求进行简单的接口测试\" data-hashtags=Python,HTTP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/posttest/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/posttest/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/posttest/ data-title=\"Python 发送 Post 请求进行简单的接口测试\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/posttest/ data-title=\"Python 发送 Post 请求进行简单的接口测试\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/http/ class=post-tag title=\"标签 - HTTP\">HTTP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/java-urlreader/ class=post-nav-item rel=prev title=\"Java 通过 URL 和 URLConnection 访问网页资源\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 通过 URL 和 URLConnection 访问网页资源</a><a href=/posts/jsoninfo/ class=post-nav-item rel=next title=\"Python 如何操作 Json？\">Python 如何操作 Json？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3ee519d1095b211e0e845e8f9f096a82.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3ee519d1095b211e0e845e8f9f096a82.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/posttest/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/posttest/index.md",
    "content": "# Python 发送 Post 请求进行简单的接口测试\n\n\n> 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\n\n- requests.get()\n- requests.post()  \n  最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\n\n<!--more-->\n\n```python\n#!/usr/bin/python\nimport requests\n\n\"\"\"\n通过 requests 可以向某个地址发送请求 requests.post(url,json date)\npost 方法还有其他参数，如 header 等\n\"\"\"\n\n# post 发送的数据\npostData = {\n    # 'username':'test',\n    # 'password':'123456',\n    # 'salary':2000,\n}\n\n# 接口这里不便公开\nr = requests.post('http://demo.maxiaokeji.com/xx/xxxxx/xxxx',data=postData)\n# print(r.text)\nresponse=r.json()\nprint(response)\n```\n\n运行后会在屏幕打印出返回的 json 数据\n![返回数据](images/1.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/posttest/  \n\n"
  },
  {
    "path": "posts/pyinstallererror/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\n\"><meta name=keywords content='python,pyinstaller,csdn 访问数'><meta itemprop=name content=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><meta itemprop=description content=\"用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\"><meta itemprop=datePublished content=\"2019-05-09T19:05:01+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"645\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"python,pyinstaller,csdn 访问数\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/pyinstallererror/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><meta property=\"og:description\" content=\"用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-09T19:05:01+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"pyinstaller\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><meta name=twitter:description content=\"用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/pyinstallererror/ title=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/singlethreaddown/ title=\"java 实现一个单线程的资源下载器\"><link rel=next type=text/html href=https://lruihao.cn/posts/pysettime/ title=\"python 设置程序每天 8 点定时执行任务\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/pyinstallererror/index.md title=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/pyinstallererror\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, pyinstaller\",\"wordcount\":645,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/pyinstallererror\\/\",\"datePublished\":\"2019-05-09T19:05:01+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/pyinstallererror/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-09 19:05:01\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-09>2019-05-09</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"645 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/pyinstallererror/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/pyinstallererror/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#下载>下载</a></li><li><a href=#解压>解压</a></li><li><a href=#安装>安装</a></li><li><a href=#pyinstaller-简介>pyinstaller 简介</a></li><li><a href=#打包>打包</a></li><li><a href=#csdn-访问量脚本实例>CSDN 访问量脚本实例</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>用过命令<code>pip install pyinstaller</code>安装失败，此包依赖于 pywin32，安装前需要先<code>pip install pywin32</code>, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。</p></blockquote><h2 class=heading-element id=下载><span>1 下载</span>\n<a href=#%e4%b8%8b%e8%bd%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>去官网下载 pyinstaller 安装包：<a href=https://pypi.org/project/PyInstaller/#files target=_blank rel=\"external nofollow noopener noreferrer\">https://pypi.org/project/PyInstaller/#files<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=解压><span>2 解压</span>\n<a href=#%e8%a7%a3%e5%8e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我这里解压到<code>E:\\应用、Python37\\Lib\\site-packages\\PyInstaller-3.4</code></p><h2 class=heading-element id=安装><span>3 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>cmd 也进入到上面的路径下，然后执行<code>Python setup.py install</code>，等待安装完毕</p><p><a class=lightgallery target=_blank href=/posts/pyinstallererror/images/1.png title=安装 data-thumbnail=/posts/pyinstallererror/images/1.png data-sub-html=\"<h2>安装</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/1.png alt=安装 height=639 width=1223></a>\n<a class=lightgallery target=_blank href=/posts/pyinstallererror/images/2.png title=完成 data-thumbnail=/posts/pyinstallererror/images/2.png data-sub-html=\"<h2>完成</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/2.png alt=完成 height=639 width=1223></a>\n<a class=lightgallery target=_blank href=/posts/pyinstallererror/images/3.png title=\"pip list\" data-thumbnail=/posts/pyinstallererror/images/3.png data-sub-html=\"<h2>pip list</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/3.png alt=\"pip list\" height=639 width=1223></a>\n<a class=lightgallery target=_blank href=/posts/pyinstallererror/images/4.png title=版本 data-thumbnail=/posts/pyinstallererror/images/4.png data-sub-html=\"<h2>版本</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/4.png alt=版本 height=66 width=701></a></p><h2 class=heading-element id=pyinstaller-简介><span>4 pyinstaller 简介</span>\n<a href=#pyinstaller-%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>pyinstaller 将 Python 脚本打包成可执行程序，使在没有 Python 环境的机器上运行。</p><p>最新版是 pyinstaller 3.4，可运行在 Windows，Mac 和 Linux 操作系统下。但它不是跨编译的，也就是说在 Windows 下用 PyInstaller 生成的 exe 只能运行在 Windows 下，在 Linux 下生成的只能运行在 Linux 下。</p><h2 class=heading-element id=打包><span>5 打包</span>\n<a href=#%e6%89%93%e5%8c%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打包的 app 里并不包含任何源码，但将脚本的 <code>.pyc</code> 文件打包了。</p><p>基本语法： <code>pyinstaller options myscript.py</code></p><blockquote><p>常用的可选参数如下：<br><code>--onefile</code> 将结果打包成一个可执行文件<br><code>--onedir</code> 将所有结果打包到一个文件夹中，该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件（默认）<br><code>--paths=DIR</code> 设置导入路径<br><code>--distpath=DIR</code> 设置将打包的结果文件放置的路径<br><code>--specpath=DIR</code> 设置将 spec 文件放置的路径<br><code>--windowed</code> 使用 windows 子系统执行，不会打开命令行（只对 windows 有效）<br><code>--nowindowed</code> 使用控制台子系统执行（默认）（只对 windows 有效）<br><code>--icon=&lt;FILE.ICO></code> 将 file.ico 添加为可执行文件的资源（只对 windows 有效）</p></blockquote><p>如<code>pyinstaller --paths=\"D:\\\" test.py</code></p><h2 class=heading-element id=csdn-访问量脚本实例><span>6 CSDN 访问量脚本实例</span>\n<a href=#csdn-%e8%ae%bf%e9%97%ae%e9%87%8f%e8%84%9a%e6%9c%ac%e5%ae%9e%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>比如，拿以前写的一个刷 csdn 访问量工具 csdn.py（放在桌面上），<a href=/posts/csdnvisiter.html>代码详见</a></p><p>在 cmd 进入桌面路径，输入如下命令</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>pyinstaller --onefile --nowindowed csdn.py</span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/pyinstallererror/images/5.png title=\"csdn.exe 生成成功\" data-thumbnail=/posts/pyinstallererror/images/5.png data-sub-html=\"<h2>csdn.exe 生成成功</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/5.png alt=\"csdn.exe 生成成功\" height=639 width=1223></a>\n<a class=lightgallery target=_blank href=/posts/pyinstallererror/images/6.png title=\"csdn.exe 生成成功\" data-thumbnail=/posts/pyinstallererror/images/6.png data-sub-html=\"<h2>csdn.exe 生成成功</h2>\"><img loading=lazy src=/posts/pyinstallererror/images/6.png alt=\"csdn.exe 生成成功\" height=259 width=634></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/pyinstallererror/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pyinstallererror/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/pyinstallererror/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%AE%89%E8%A3%85+pyinstaller+%E5%87%BA%E9%94%99%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%E5%8F%8A+csdn+%E5%B7%A5%E5%85%B7%E5%AE%9E%E4%BE%8B%E6%89%93%E5%8C%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%AE%89%E8%A3%85+pyinstaller+%E5%87%BA%E9%94%99%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%E5%8F%8A+csdn+%E5%B7%A5%E5%85%B7%E5%AE%9E%E4%BE%8B%E6%89%93%E5%8C%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/pyinstallererror/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pyinstallererror/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/pyinstallererror/ data-title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\" data-hashtags=Python,pyinstaller><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/pyinstallererror/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/pyinstallererror/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/pyinstallererror/ data-title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\" data-image=/posts/pyinstallererror/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/pyinstallererror/ data-title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/pyinstaller/ class=post-tag title=\"标签 - pyinstaller\">pyinstaller</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/singlethreaddown/ class=post-nav-item rel=prev title=\"Java 实现一个单线程的资源下载器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 实现一个单线程的资源下载器</a><a href=/posts/pysettime/ class=post-nav-item rel=next title=\"Python 设置程序每天 8 点定时执行任务\">Python 设置程序每天 8 点定时执行任务<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#下载>下载</a></li><li><a href=#解压>解压</a></li><li><a href=#安装>安装</a></li><li><a href=#pyinstaller-简介>pyinstaller 简介</a></li><li><a href=#打包>打包</a></li><li><a href=#csdn-访问量脚本实例>CSDN 访问量脚本实例</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/b8169fe3025bec6aa838d0ab8c76158e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/b8169fe3025bec6aa838d0ab8c76158e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/pyinstallererror/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/pyinstallererror/index.md",
    "content": "# 安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\n\n\n> 用过命令`pip install pyinstaller`安装失败，此包依赖于 pywin32，安装前需要先`pip install pywin32`, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n> 这里通过手动下载安装解决的，记录一下。\n\n<!--more-->\n\n## 下载\n\n去官网下载 pyinstaller 安装包：<https://pypi.org/project/PyInstaller/#files>\n\n## 解压\n\n我这里解压到`E:\\应用、Python37\\Lib\\site-packages\\PyInstaller-3.4`\n\n## 安装\n\ncmd 也进入到上面的路径下，然后执行`Python setup.py install`，等待安装完毕\n\n![安装](images/1.png)\n![完成](images/2.png)\n![pip list](images/3.png)\n![版本](images/4.png)\n\n## pyinstaller 简介\n\npyinstaller 将 Python 脚本打包成可执行程序，使在没有 Python 环境的机器上运行。\n\n最新版是 pyinstaller 3.4，可运行在 Windows，Mac 和 Linux 操作系统下。但它不是跨编译的，也就是说在 Windows 下用 PyInstaller 生成的 exe 只能运行在 Windows 下，在 Linux 下生成的只能运行在 Linux 下。\n\n## 打包\n\n打包的 app 里并不包含任何源码，但将脚本的 `.pyc` 文件打包了。\n\n基本语法： `pyinstaller options myscript.py`\n\n> 常用的可选参数如下：  \n> `--onefile` 将结果打包成一个可执行文件  \n> `--onedir` 将所有结果打包到一个文件夹中，该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件（默认）  \n> `--paths=DIR` 设置导入路径  \n> `--distpath=DIR` 设置将打包的结果文件放置的路径  \n> `--specpath=DIR` 设置将 spec 文件放置的路径  \n> `--windowed` 使用 windows 子系统执行，不会打开命令行（只对 windows 有效）  \n> `--nowindowed` 使用控制台子系统执行（默认）（只对 windows 有效）  \n> `--icon=<FILE.ICO>` 将 file.ico 添加为可执行文件的资源（只对 windows 有效）\n\n如`pyinstaller --paths=\"D:\\\" test.py`\n\n## CSDN 访问量脚本实例\n\n比如，拿以前写的一个刷 csdn 访问量工具 csdn.py（放在桌面上），[代码详见](/posts/csdnvisiter.html)\n\n在 cmd 进入桌面路径，输入如下命令\n\n```shell\npyinstaller --onefile --nowindowed csdn.py\n```\n\n![csdn.exe 生成成功](images/5.png)\n![csdn.exe 生成成功](images/6.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/pyinstallererror/  \n\n"
  },
  {
    "path": "posts/pysettime/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 设置程序每天 8 点定时执行任务 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\n（该程序需要一直挂着，保持网络不断）\n\"><meta name=keywords content='python,python 定时任务,python 定时器,python 定时执行,python 定时发送请求脚本,python 定时获取数据,python 定时任务每天执行一次'><meta itemprop=name content=\"python 设置程序每天 8 点定时执行任务\"><meta itemprop=description content=\"第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\n（该程序需要一直挂着，保持网络不断）\"><meta itemprop=datePublished content=\"2019-05-09T23:26:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"503\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"python,python 定时任务,python 定时器,python 定时执行,python 定时发送请求脚本,python 定时获取数据,python 定时任务每天执行一次\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/pysettime/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 设置程序每天 8 点定时执行任务\"><meta property=\"og:description\" content=\"第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\n（该程序需要一直挂着，保持网络不断）\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-09T23:26:54+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"Cron\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 设置程序每天 8 点定时执行任务\"><meta name=twitter:description content=\"第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\n（该程序需要一直挂着，保持网络不断）\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/pysettime/ title=\"python 设置程序每天 8 点定时执行任务 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/pyinstallererror/ title=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><link rel=next type=text/html href=https://lruihao.cn/posts/ifzhushi/ title=\"条件注释判断浏览器版本<!--[if lt IE 9]>;\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/pysettime/index.md title=\"python 设置程序每天 8 点定时执行任务 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 设置程序每天 8 点定时执行任务\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/pysettime\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, Cron\",\"wordcount\":503,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/pysettime\\/\",\"datePublished\":\"2019-05-09T23:26:54+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/pysettime/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 设置程序每天 8 点定时执行任务</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 设置程序每天 8 点定时执行任务</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-09 23:26:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-09>2019-05-09</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"503 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 设置程序每天 8 点定时执行任务\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。<br>第二次运行后直接休眠一天，到每天早上 8 点执行任务。<br>（该程序需要一直挂着，保持网络不断）</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>time</span>\n</span></span><span class=line><span class=cl><span class=k>while</span> <span class=kc>True</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_hour</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=n>now_min</span> <span class=o>=</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>now_hour</span> <span class=o>&lt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 软件将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后发送数据&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>&gt;</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>rest</span> <span class=o>=</span> <span class=mi>8</span> <span class=o>-</span> <span class=nb>int</span><span class=p>(</span><span class=n>now_hour</span><span class=p>)</span> <span class=o>+</span> <span class=mi>24</span>\n</span></span><span class=line><span class=cl>        <span class=n>sleeptime</span> <span class=o>=</span> <span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span> <span class=o>+</span> <span class=p>(</span><span class=mi>60</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>))</span><span class=o>*</span><span class=mi>60</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span><span class=o>+</span><span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 软件将在&#34;</span><span class=p>,</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;小时&#34;</span><span class=p>,</span><span class=nb>int</span><span class=p>((</span><span class=n>sleeptime</span><span class=o>-</span><span class=p>(</span><span class=n>rest</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span><span class=o>*</span><span class=mi>3600</span><span class=p>)</span><span class=o>/</span><span class=mi>60</span><span class=p>),</span><span class=s2>&#34;分钟后发送数据&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=n>sleeptime</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>now_hour</span> <span class=o>==</span> <span class=s2>&#34;08&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;启动时北京时间为：&#34;</span> <span class=o>+</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>()),</span> <span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 软件将在每天 8 点发送数据！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1># 以下为定时任务</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;数据&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>86400</span><span class=o>-</span><span class=nb>int</span><span class=p>(</span><span class=n>now_min</span><span class=p>)</span><span class=o>*</span><span class=mi>60</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/pysettime/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysettime.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/pysettime.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E8%AE%BE%E7%BD%AE%E7%A8%8B%E5%BA%8F%E6%AF%8F%E5%A4%A9+8+%E7%82%B9%E5%AE%9A%E6%97%B6%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E8%AE%BE%E7%BD%AE%E7%A8%8B%E5%BA%8F%E6%AF%8F%E5%A4%A9+8+%E7%82%B9%E5%AE%9A%E6%97%B6%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/pysettime/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysettime.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/pysettime/ data-title=\"Python 设置程序每天 8 点定时执行任务\" data-hashtags=Python,Cron><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/pysettime/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/pysettime/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/pysettime/ data-title=\"Python 设置程序每天 8 点定时执行任务\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/pysettime/ data-title=\"Python 设置程序每天 8 点定时执行任务\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/cron/ class=post-tag title=\"标签 - Cron\">Cron</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/pyinstallererror/ class=post-nav-item rel=prev title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a><a href=/posts/ifzhushi/ class=post-nav-item rel=next title=\"条件注释判断浏览器版本<!--[If Lt IE 9]>;\">条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c56affac7fa1841b8c945ff7c1ee8e42.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c56affac7fa1841b8c945ff7c1ee8e42.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/pysettime/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/pysettime/index.md",
    "content": "# Python 设置程序每天 8 点定时执行任务\n\n\n> 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。  \n> 第二次运行后直接休眠一天，到每天早上 8 点执行任务。  \n> （该程序需要一直挂着，保持网络不断）\n\n<!--more-->\n\n```python\nimport time\nwhile True:\n    now_hour = time.strftime(\"%H\", time.localtime())\n    now_min = time.strftime(\"%M\", time.localtime())\n    if now_hour < \"08\":\n        rest = 8 - int(now_hour)\n        sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n        print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 软件将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后发送数据\")\n        time.sleep(sleeptime)\n    elif now_hour > \"08\":\n        rest = 8 - int(now_hour) + 24\n        sleeptime = (rest-1)*3600 + (60-int(now_min))*60\n        print(\"启动时北京时间为：\"+time.strftime(\"%H:%M\", time.localtime()),\"\\t 软件将在\",rest-1,\"小时\",int((sleeptime-(rest-1)*3600)/60),\"分钟后发送数据\")\n        time.sleep(sleeptime)\n    elif now_hour == \"08\":\n        print(\"启动时北京时间为：\" + time.strftime(\"%H:%M\", time.localtime()), \"\\t 软件将在每天 8 点发送数据！\")\n        # 以下为定时任务\n        print(\"数据\")\n        time.sleep(86400-int(now_min)*60)\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/pysettime/  \n\n"
  },
  {
    "path": "posts/pysx1/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 实训总结Ⅰ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\n\"><meta name=keywords content='Python,turtle'><meta itemprop=name content=\"python 实训总结Ⅰ\"><meta itemprop=description content=\"以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\"><meta itemprop=datePublished content=\"2019-06-18T18:41:00+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1026\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python,turtle\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/pysx1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 实训总结Ⅰ\"><meta property=\"og:description\" content=\"以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-06-18T18:41:00+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"turtle\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 实训总结Ⅰ\"><meta name=twitter:description content=\"以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/pysx1/ title=\"python 实训总结Ⅰ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/judgetriangle/ title=判断三角形的黑盒测试><link rel=next type=text/html href=https://lruihao.cn/posts/pysx2/ title=\"python 实训总结Ⅱ\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/pysx1/index.md title=\"python 实训总结Ⅰ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 实训总结Ⅰ\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/pysx1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, turtle\",\"wordcount\":1026,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/pysx1\\/\",\"datePublished\":\"2019-06-18T18:41:00+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/pysx1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 实训总结Ⅰ</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 实训总结Ⅰ</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-06-18 18:41:00\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-06-18>2019-06-18</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1026 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 实训总结Ⅰ\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#617>6.17</a></li><li><a href=#618>6.18</a><ol><li><a href=#输入输出>输入输出</a></li><li><a href=#数据类型>数据类型</a></li><li><a href=#循环判断>循环判断</a></li><li><a href=#str-import-导库>str() 、import 导库</a></li><li><a href=#turtle-绘图库内置模块>turtle 绘图库（内置模块）</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“<strong>用 python 做量化交易</strong>”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。</p></blockquote><h2 class=heading-element id=617><span>1 6.17</span>\n<a href=#617 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;Hello World!&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><p>讲了一下变量和 python 的特色什么的。<br>还讲了模块定义<code>def</code>和类定义</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=k>class</span> <span class=nc>zxm</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>  <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=bp>self</span><span class=o>.</span><span class=n>x</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=bp>self</span><span class=o>.</span><span class=n>y</span><span class=o>=</span><span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>def</span> <span class=nf>move_up</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=bp>self</span><span class=o>.</span><span class=n>y</span> <span class=o>+=</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>my_zxm</span><span class=o>=</span><span class=n>zxm</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>my_zxm</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>&lt;__main__.zxm object at 0x000001D99CFEF668&gt;</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=618><span>2 6.18</span>\n<a href=#618 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=输入输出><span>2.1 输入输出</span>\n<a href=#%e8%be%93%e5%85%a5%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><code>print</code> 输出<br><code>input</code> 输入<br><code>eval</code> 执行一个字符串表达式，并返回表达式的值</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=n>x</span><span class=o>=</span><span class=nb>eval</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入 x 的值：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>y</span><span class=o>=</span><span class=nb>eval</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入 y 的值：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>z</span><span class=o>=</span><span class=p>(</span><span class=n>x</span><span class=o>**</span><span class=mi>2</span><span class=o>+</span><span class=n>y</span><span class=o>**</span><span class=mi>2</span><span class=p>)</span><span class=o>**</span><span class=mf>0.5</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>z</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1># 导入复数数学模块</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>cmath</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>num</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入一个数字：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>num_sqrt</span> <span class=o>=</span> <span class=n>cmath</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=n>num</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s1>&#39;</span><span class=si>{0}</span><span class=s1> 的平方根为 </span><span class=si>{1:0.3f}</span><span class=s1>+</span><span class=si>{2:0.3f}</span><span class=s1>j&#39;</span><span class=o>.</span><span class=n>format</span><span class=p>(</span><span class=n>num</span> <span class=p>,</span><span class=n>num_sqrt</span><span class=o>.</span><span class=n>real</span><span class=p>,</span><span class=n>num_sqrt</span><span class=o>.</span><span class=n>imag</span><span class=p>))</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=数据类型><span>2.2 数据类型</span>\n<a href=#%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>今天还讲了一下数据类型</p></blockquote><ul><li>字符串： <code>\"\"</code> <code>''</code></li><li>元组 tuple(2,3)</li><li>列表 list[2,3]</li><li>字典 dict{Key:Value}</li><li>集合{}</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=n>x</span><span class=o>=</span><span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>10</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nb>type</span><span class=p>(</span><span class=n>x</span><span class=p>)</span><span class=c1>#判断元素类型</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=nb>list</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=循环判断><span>2.3 循环判断</span>\n<a href=#%e5%be%aa%e7%8e%af%e5%88%a4%e6%96%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=k>for</span> <span class=n>x</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=mi>10</span><span class=p>,</span><span class=mi>2</span><span class=p>):</span> <span class=c1># (start,stop,step)</span>\n</span></span><span class=line><span class=cl>    <span class=k>pass</span> <span class=c1># pass 不做任何事情，一般用做占位语句</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=k>for</span> <span class=n>letter</span> <span class=ow>in</span> <span class=s1>&#39;Python&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>   <span class=k>if</span> <span class=n>letter</span> <span class=o>==</span> <span class=s1>&#39;h&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=k>pass</span>\n</span></span><span class=line><span class=cl>      <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;这是 pass 块&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>   <span class=nb>print</span><span class=p>(</span><span class=s1>&#39;当前字母 :&#39;</span><span class=o>+</span> <span class=n>letter</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;Good bye!&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>当前字母 :P\n</span></span><span class=line><span class=cl>当前字母 :y\n</span></span><span class=line><span class=cl>当前字母 :t\n</span></span><span class=line><span class=cl>这是 pass 块\n</span></span><span class=line><span class=cl>当前字母 :h\n</span></span><span class=line><span class=cl>当前字母 :o\n</span></span><span class=line><span class=cl>当前字母 :n\n</span></span><span class=line><span class=cl>Good bye!</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=str-import-导库><span>2.4 str() 、import 导库</span>\n<a href=#str-import-%e5%af%bc%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=n>x</span><span class=o>=</span><span class=mi>10</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;整数转字符串&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>x</span><span class=p>))</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>this</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>The Zen of Python, by Tim Peters\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Beautiful is better than ugly.\n</span></span><span class=line><span class=cl>Explicit is better than implicit.\n</span></span><span class=line><span class=cl>Simple is better than complex.\n</span></span><span class=line><span class=cl>Complex is better than complicated.\n</span></span><span class=line><span class=cl>Flat is better than nested.\n</span></span><span class=line><span class=cl>Sparse is better than dense.\n</span></span><span class=line><span class=cl>Readability counts.\n</span></span><span class=line><span class=cl>Special cases aren&#39;t special enough to break the rules.\n</span></span><span class=line><span class=cl>Although practicality beats purity.\n</span></span><span class=line><span class=cl>Errors should never pass silently.\n</span></span><span class=line><span class=cl>Unless explicitly silenced.\n</span></span><span class=line><span class=cl>In the face of ambiguity, refuse the temptation to guess.\n</span></span><span class=line><span class=cl>There should be one-- and preferably only one --obvious way to do it.\n</span></span><span class=line><span class=cl>Although that way may not be obvious at first unless you&#39;re Dutch.\n</span></span><span class=line><span class=cl>Now is better than never.\n</span></span><span class=line><span class=cl>Although never is often better than *right* now.\n</span></span><span class=line><span class=cl>If the implementation is hard to explain, it&#39;s a bad idea.\n</span></span><span class=line><span class=cl>If the implementation is easy to explain, it may be a good idea.\n</span></span><span class=line><span class=cl>Namespaces are one honking great idea -- let&#39;s do more of those!</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>Google 翻译意思是：\n美丽胜过丑陋。显式优于隐式。简单比复杂更好。复杂比复杂更好。Flat 优于嵌套。稀疏优于密集。可读性很重要。特殊情况不足以打破规则。虽然实用性胜过纯洁。错误不应该默默地传递。除非明确沉默。面对模棱两可，拒绝猜测的诱惑。应该有一个最好只有一个明显的方法来做到这一点。虽然这种方式起初可能并不明显，除非你是荷兰人。现在比永远好。虽然现在永远不会比正确好。如果实施很难解释，这是一个坏主意。如果实现很容易解释，那可能是个好主意。命名空间是一个很棒的主意，让我们做更多的事情吧！</p></blockquote><h3 class=heading-element id=turtle-绘图库内置模块><span>2.5 turtle 绘图库（内置模块）</span>\n<a href=#turtle-%e7%bb%98%e5%9b%be%e5%ba%93%e5%86%85%e7%bd%ae%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/pysx1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysx1.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/pysx1.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E5%AE%9E%E8%AE%AD%E6%80%BB%E7%BB%93%E2%85%A0&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E5%AE%9E%E8%AE%AD%E6%80%BB%E7%BB%93%E2%85%A0%7c%0A%7cURL%7chttps://lruihao.cn/posts/pysx1/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysx1.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/pysx1/ data-title=\"Python 实训总结Ⅰ\" data-hashtags=Python,turtle><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/pysx1/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/pysx1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/pysx1/ data-title=\"Python 实训总结Ⅰ\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/pysx1/ data-title=\"Python 实训总结Ⅰ\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/turtle/ class=post-tag title=\"标签 - turtle\">turtle</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/judgetriangle/ class=post-nav-item rel=prev title=判断三角形的黑盒测试><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>判断三角形的黑盒测试</a><a href=/posts/pysx2/ class=post-nav-item rel=next title=\"Python 实训总结Ⅱ\">Python 实训总结Ⅱ<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#617>6.17</a></li><li><a href=#618>6.18</a><ol><li><a href=#输入输出>输入输出</a></li><li><a href=#数据类型>数据类型</a></li><li><a href=#循环判断>循环判断</a></li><li><a href=#str-import-导库>str() 、import 导库</a></li><li><a href=#turtle-绘图库内置模块>turtle 绘图库（内置模块）</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/5bdc928cd9257d788fb7a5343279fe73.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/5bdc928cd9257d788fb7a5343279fe73.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/pysx1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/pysx1/index.md",
    "content": "# Python 实训总结Ⅰ\n\n\n> 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n> 这次正好又课程安排了为期两周的综合实训，主要是“**用 python 做量化交易**”\n> 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\n\n<!--more-->\n\n## 6.17\n\n```python\nprint(\"Hello World!\")\n```\n\n> 讲了一下变量和 python 的特色什么的。  \n> 还讲了模块定义`def`和类定义\n\n```python\nclass zxm():\n  def __init__(self):\n    self.x=0\n    self.y=0\n\n  def move_up(self):\n    self.y +=1\n\nmy_zxm=zxm()\nprint(my_zxm)\n```\n\n```plain\n<__main__.zxm object at 0x000001D99CFEF668>\n```\n\n## 6.18\n\n### 输入输出\n\n> `print` 输出  \n> `input` 输入  \n> `eval` 执行一个字符串表达式，并返回表达式的值\n\n```python\nx=eval(input(\"请输入 x 的值：\"))\ny=eval(input(\"请输入 y 的值：\"))\nz=(x**2+y**2)**0.5\nprint(z)\n```\n\n```python\n# 导入复数数学模块\nimport cmath\n\nnum = int(input(\"请输入一个数字：\"))\nnum_sqrt = cmath.sqrt(num)\nprint('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num ,num_sqrt.real,num_sqrt.imag))\n```\n\n### 数据类型\n\n> 今天还讲了一下数据类型\n\n- 字符串： `\"\"` `''`\n- 元组 tuple(2,3)\n- 列表 list[2,3]\n- 字典 dict{Key:Value}\n- 集合{}\n\n```python\nx=[1,10]\ntype(x)#判断元素类型\n```\n\n```py\nlist\n```\n\n### 循环判断\n\n```python\nfor x in range(1,10,2): # (start,stop,step)\n    pass # pass 不做任何事情，一般用做占位语句\n```\n\n```python\nfor letter in 'Python':\n   if letter == 'h':\n      pass\n      print('这是 pass 块')\n   print('当前字母 :'+ letter)\n\nprint(\"Good bye!\")\n```\n\n```plain\n当前字母 :P\n当前字母 :y\n当前字母 :t\n这是 pass 块\n当前字母 :h\n当前字母 :o\n当前字母 :n\nGood bye!\n```\n\n### str() 、import 导库\n\n```python\nx=10\nprint(\"整数转字符串\"+str(x))\n```\n\n```python\nimport this\n```\n\n```plain\nThe Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!\n```\n\n> Google 翻译意思是：\n> 美丽胜过丑陋。显式优于隐式。简单比复杂更好。复杂比复杂更好。Flat 优于嵌套。稀疏优于密集。可读性很重要。特殊情况不足以打破规则。虽然实用性胜过纯洁。错误不应该默默地传递。除非明确沉默。面对模棱两可，拒绝猜测的诱惑。应该有一个最好只有一个明显的方法来做到这一点。虽然这种方式起初可能并不明显，除非你是荷兰人。现在比永远好。虽然现在永远不会比正确好。如果实施很难解释，这是一个坏主意。如果实现很容易解释，那可能是个好主意。命名空间是一个很棒的主意，让我们做更多的事情吧！\n\n### turtle 绘图库（内置模块）\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/pysx1/  \n\n"
  },
  {
    "path": "posts/pysx2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 实训总结Ⅱ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 后面几天讲的有点杂，简单记录一下知识点。\n\"><meta name=keywords content='Python'><meta itemprop=name content=\"python 实训总结Ⅱ\"><meta itemprop=description content=\"后面几天讲的有点杂，简单记录一下知识点。\"><meta itemprop=datePublished content=\"2019-06-21T18:46:41+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"5661\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/pysx2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 实训总结Ⅱ\"><meta property=\"og:description\" content=\"后面几天讲的有点杂，简单记录一下知识点。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-06-21T18:46:41+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 实训总结Ⅱ\"><meta name=twitter:description content=\"后面几天讲的有点杂，简单记录一下知识点。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/pysx2/ title=\"python 实训总结Ⅱ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/pysx1/ title=\"python 实训总结Ⅰ\"><link rel=next type=text/html href=https://lruihao.cn/posts/wamproot/ title=\"WAMPServer 自定义网站根目录等设置\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/pysx2/index.md title=\"python 实训总结Ⅱ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 实训总结Ⅱ\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/pysx2\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python\",\"wordcount\":5661,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/pysx2\\/\",\"datePublished\":\"2019-06-21T18:46:41+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/pysx2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 实训总结Ⅱ</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 实训总结Ⅱ</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-06-21 18:46:41\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-06-21>2019-06-21</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"5661 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 5700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 12 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 实训总结Ⅱ\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#619>6.19</a><ol><li><a href=#切片操作>切片操作</a></li><li><a href=#字符串>字符串</a><ol><li><a href=#python-原始字符串>python 原始字符串</a></li><li><a href=#长字符串>长字符串</a></li><li><a href=#用换行字符表示字符未结束>用、换行字符表示字符未结束</a></li></ol></li><li><a href=#格式化输出-format>格式化输出 format</a></li><li><a href=#多变量赋值与交换斐波那契数列>多变量赋值与交换（斐波那契数列）</a></li><li><a href=#笑傲江湖统计字符-dict-文件流>笑傲江湖统计字符 (dict, 文件流）</a></li><li><a href=#numpy-模块>numpy 模块</a></li><li><a href=#pandas-模块>pandas 模块</a></li></ol></li><li><a href=#620>6.20</a><ol><li><a href=#matplotlib-绘图>matplotlib 绘图</a></li><li><a href=#爬虫>爬虫</a></li></ol></li><li><a href=#621>6.21</a><ol><li><a href=#类>类</a></li><li><a href=#gui-设计-wxpython>GUI 设计 wxPython</a></li><li><a href=#talib-库的安装>talib 库的安装</a></li><li><a href=#选择排序递归版>选择排序递归版</a></li><li><a href=#机房上机系统自我实践>机房上机系统（自我实践）</a></li><li><a href=#量化交易代码分析与调试>量化交易代码分析与调试</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>后面几天讲的有点杂，简单记录一下知识点。</p></blockquote><h2 class=heading-element id=619><span>1 6.19</span>\n<a href=#619 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>这些知识点在课上都只是简单的提到了一下。<br>比如一些库的使用与安装都不会再课上详细讲解，需要课后再去研究。</p></blockquote><h3 class=heading-element id=切片操作><span>1.1 <a href=https://www.jianshu.com/p/15715d6f4dad target=_blank rel=\"external nofollow noopener noreferrer\">切片操作<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%88%87%e7%89%87%e6%93%8d%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>列表切片操作</p><h3 class=heading-element id=字符串><span>1.2 字符串</span>\n<a href=#%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=python-原始字符串><span>1.2.1 python 原始字符串</span>\n<a href=#python-%e5%8e%9f%e5%a7%8b%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>print(r&#34;D:\\three\\two&#34;)</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=长字符串><span>1.2.2 长字符串</span>\n<a href=#%e9%95%bf%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>用三个单引号或者双引号包裹，前后呼应，成双成对。</p><h4 class=heading-element id=用换行字符表示字符未结束><span>1.2.3 用、换行字符表示字符未结束</span>\n<a href=#%e7%94%a8%e6%8d%a2%e8%a1%8c%e5%ad%97%e7%ac%a6%e8%a1%a8%e7%a4%ba%e5%ad%97%e7%ac%a6%e6%9c%aa%e7%bb%93%e6%9d%9f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><h3 class=heading-element id=格式化输出-format><span>1.3 格式化输出 format</span>\n<a href=#%e6%a0%bc%e5%bc%8f%e5%8c%96%e8%be%93%e5%87%ba-format class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>\"=={}==\"</code>，<code>{}</code>表示占位符，其前后字符保持原样输出。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1>#TempConvert.py</span>\n</span></span><span class=line><span class=cl><span class=n>TempStr</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入带有符号的温度值：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=n>TempStr</span><span class=p>[</span><span class=o>-</span><span class=mi>1</span><span class=p>]</span> <span class=ow>in</span> <span class=p>[</span><span class=s1>&#39;F&#39;</span><span class=p>,</span><span class=s1>&#39;f&#39;</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>    <span class=n>C</span> <span class=o>=</span> <span class=p>(</span><span class=nb>eval</span><span class=p>(</span><span class=n>TempStr</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=o>-</span><span class=mi>1</span><span class=p>])</span> <span class=o>-</span> <span class=mi>32</span><span class=p>)</span><span class=o>/</span><span class=mf>1.8</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;转换后的温度是</span><span class=si>{:.2f}</span><span class=s2>C&#34;</span><span class=o>.</span><span class=n>format</span><span class=p>(</span><span class=n>C</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=k>elif</span> <span class=n>TempStr</span><span class=p>[</span><span class=o>-</span><span class=mi>1</span><span class=p>]</span> <span class=ow>in</span> <span class=p>[</span><span class=s1>&#39;C&#39;</span><span class=p>,</span><span class=s1>&#39;c&#39;</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>    <span class=n>F</span> <span class=o>=</span> <span class=mf>1.8</span><span class=o>*</span><span class=nb>eval</span><span class=p>(</span><span class=n>TempStr</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=o>-</span><span class=mi>1</span><span class=p>])</span> <span class=o>+</span> <span class=mi>32</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;转换后的温度是</span><span class=si>{:.2f}</span><span class=s2>F&#34;</span><span class=o>.</span><span class=n>format</span><span class=p>(</span><span class=n>F</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;输入格式错误&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=多变量赋值与交换斐波那契数列><span>1.4 多变量赋值与交换（斐波那契数列）</span>\n<a href=#%e5%a4%9a%e5%8f%98%e9%87%8f%e8%b5%8b%e5%80%bc%e4%b8%8e%e4%ba%a4%e6%8d%a2%e6%96%90%e6%b3%a2%e9%82%a3%e5%a5%91%e6%95%b0%e5%88%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>python 3.x 版本 <code>end=\"\"</code> 可使输出不换行</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>x</span><span class=p>,</span> <span class=n>end</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1>#斐波那契数列</span>\n</span></span><span class=line><span class=cl><span class=n>a</span><span class=p>,</span> <span class=n>b</span> <span class=o>=</span> <span class=mi>1</span><span class=p>,</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=k>while</span> <span class=n>a</span> <span class=o>&lt;</span> <span class=mi>500</span><span class=p>:</span> <span class=c1>## 输出不大于 500 的序列</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>a</span><span class=p>,</span><span class=n>end</span><span class=o>=</span><span class=s2>&#34;,&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=p>,</span><span class=n>b</span> <span class=o>=</span> <span class=n>b</span><span class=p>,</span><span class=n>a</span> <span class=o>+</span> <span class=n>b</span> <span class=c1>#交换变量</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=笑傲江湖统计字符-dict-文件流><span>1.5 笑傲江湖统计字符 (dict, 文件流）</span>\n<a href=#%e7%ac%91%e5%82%b2%e6%b1%9f%e6%b9%96%e7%bb%9f%e8%ae%a1%e5%ad%97%e7%ac%a6-dict-%e6%96%87%e4%bb%b6%e6%b5%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>统计《笑傲江湖》小说中出现的所有中文字符及标点符号的数量，每个字符及数目间用冒号<code>:</code>隔开，例如\"笑：1024\"，将所有字符及数量的对应采用逗号分隔，以 CSV 文件格式保存到<code>“笑傲江湖--字符统计。txt”</code>文件中。注意，统计字符不包括空格和回车。</p></blockquote><blockquote><p>csv 文件格式： ‘,’逗号连接元素</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=n>fi</span> <span class=o>=</span> <span class=nb>open</span><span class=p>(</span><span class=s2>&#34;data/笑傲江湖 - 网络版。txt&#34;</span><span class=p>,</span><span class=s2>&#34;r&#34;</span><span class=p>,</span><span class=n>encoding</span><span class=o>=</span><span class=s2>&#34;utf-8&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>fo</span> <span class=o>=</span> <span class=nb>open</span><span class=p>(</span><span class=s2>&#34;data/笑傲江湖 - 字符统计。txt&#34;</span><span class=p>,</span><span class=s2>&#34;w&#34;</span><span class=p>,</span><span class=n>encoding</span><span class=o>=</span><span class=s2>&#34;utf-8&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>txt</span> <span class=o>=</span> <span class=n>fi</span><span class=o>.</span><span class=n>read</span><span class=p>()</span> <span class=c1>#打开文件</span>\n</span></span><span class=line><span class=cl><span class=c1>#txt</span>\n</span></span><span class=line><span class=cl><span class=n>d</span> <span class=o>=</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>c</span> <span class=ow>in</span> <span class=n>txt</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>d</span><span class=p>[</span><span class=n>c</span><span class=p>]</span> <span class=o>=</span> <span class=n>d</span><span class=o>.</span><span class=n>get</span><span class=p>(</span><span class=n>c</span><span class=p>,</span><span class=mi>0</span><span class=p>)</span><span class=o>+</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>del</span> <span class=n>d</span><span class=p>[</span><span class=s1>&#39; &#39;</span><span class=p>]</span> <span class=c1>#删除字典中的空格和回车的键值对</span>\n</span></span><span class=line><span class=cl><span class=k>del</span> <span class=n>d</span><span class=p>[</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>ls</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>key</span> <span class=ow>in</span> <span class=n>d</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>ls</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=s2>&#34;</span><span class=si>{}</span><span class=s2>:</span><span class=si>{}</span><span class=s2>&#34;</span><span class=o>.</span><span class=n>format</span><span class=p>(</span><span class=n>key</span><span class=p>,</span><span class=n>d</span><span class=p>[</span><span class=n>key</span><span class=p>]))</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>fo</span><span class=o>.</span><span class=n>write</span><span class=p>(</span><span class=s2>&#34;,&#34;</span><span class=o>.</span><span class=n>join</span><span class=p>(</span><span class=n>ls</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>fi</span><span class=o>.</span><span class=n>close</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=n>fo</span><span class=o>.</span><span class=n>close</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/pysx2/images/tj.png title=文件读取及字符统计结果 data-thumbnail=/posts/pysx2/images/tj.png data-sub-html=\"<h2>文件读取及字符统计结果</h2>\"><img loading=lazy src=/posts/pysx2/images/tj.png alt=文件读取及字符统计结果 height=530 width=1450></a></p><h3 class=heading-element id=numpy-模块><span>1.6 numpy 模块</span>\n<a href=#numpy-%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>&mldr;</strong></p><h3 class=heading-element id=pandas-模块><span>1.7 pandas 模块</span>\n<a href=#pandas-%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><strong>&mldr;</strong></p><h2 class=heading-element id=620><span>2 6.20</span>\n<a href=#620 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=matplotlib-绘图><span>2.1 matplotlib 绘图</span>\n<a href=#matplotlib-%e7%bb%98%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib.pyplot</span> <span class=k>as</span> <span class=nn>plt</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>numpy</span> <span class=k>as</span> <span class=nn>np</span>\n</span></span><span class=line><span class=cl><span class=n>x</span> <span class=o>=</span> <span class=n>np</span><span class=o>.</span><span class=n>arange</span><span class=p>(</span><span class=o>-</span><span class=mi>5</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mf>0.01</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>y</span> <span class=o>=</span> <span class=mi>2</span><span class=o>**</span><span class=n>x</span><span class=o>+</span><span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>plot</span><span class=p>(</span><span class=n>x</span><span class=p>,</span><span class=n>y</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>title</span><span class=p>(</span><span class=s2>&#34;y=2^x+1&#34;</span><span class=p>,</span><span class=n>fontsize</span><span class=o>=</span><span class=mi>24</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>xlabel</span><span class=p>(</span><span class=s2>&#34;X&#34;</span><span class=p>,</span><span class=n>fontsize</span><span class=o>=</span><span class=mi>14</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>ylabel</span><span class=p>(</span><span class=s2>&#34;Y&#34;</span><span class=p>,</span><span class=n>fontsize</span><span class=o>=</span><span class=mi>14</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>tick_params</span><span class=p>(</span><span class=n>axis</span><span class=o>=</span><span class=s2>&#34;both&#34;</span><span class=p>,</span><span class=n>labelsize</span><span class=o>=</span><span class=mi>14</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>show</span><span class=p>()</span></span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/pysx2/images/zhishu.png title=\"Y=2X+1\" data-thumbnail=/posts/pysx2/images/zhishu.png data-sub-html=\"<h2>Y=2X+1</h2>\"><img loading=lazy src=/posts/pysx2/images/zhishu.png alt=\"Y=2X+1\" height=295 width=395></a></p><h3 class=heading-element id=爬虫><span>2.2 爬虫</span>\n<a href=#%e7%88%ac%e8%99%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>举了一个金融界，炒股，获取数据的爬虫\n（今天没仔细听课，这数据爬过什么意思，咱不懂，咱也不敢问！）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=ch>#! /usr/bin/env python</span>\n</span></span><span class=line><span class=cl><span class=c1>#-*- encoding: utf-8 -*-</span>\n</span></span><span class=line><span class=cl><span class=c1>#author pythontab.com</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>numpy</span> <span class=k>as</span> <span class=nn>np</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib.pyplot</span> <span class=k>as</span> <span class=nn>plt</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>pandas</span> <span class=k>as</span> <span class=nn>pd</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>pandas_datareader.data</span> <span class=k>as</span> <span class=nn>web</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>datetime</span>\n</span></span><span class=line><span class=cl><span class=c1>#import tushare as ts</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>df_stockload</span> <span class=o>=</span> <span class=n>web</span><span class=o>.</span><span class=n>DataReader</span><span class=p>(</span><span class=s2>&#34;000001.SS&#34;</span><span class=p>,</span> <span class=s2>&#34;yahoo&#34;</span><span class=p>,</span> <span class=n>datetime</span><span class=o>.</span><span class=n>datetime</span><span class=p>(</span><span class=mi>2017</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>1</span><span class=p>),</span> <span class=n>datetime</span><span class=o>.</span><span class=n>date</span><span class=o>.</span><span class=n>today</span><span class=p>())</span>\n</span></span><span class=line><span class=cl><span class=c1>#print(type(datetime.datetime.now().strftime(&#39;%Y-%m-%d&#39;)))</span>\n</span></span><span class=line><span class=cl><span class=c1>#df_stockload = ts.get_hist_data(&#39;sh&#39;,start=&#39;2017-01-01&#39;,end=datetime.datetime.now().strftime(&#39;%Y-%m-%d&#39;))</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span> <span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>columns</span><span class=p>)</span><span class=c1>#查看列名</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span> <span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>index</span><span class=p>)</span><span class=c1>#查看索引</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span> <span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>describe</span><span class=p>())</span><span class=c1>#查看各列数据描述性统计</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#绘制移动平均线</span>\n</span></span><span class=line><span class=cl><span class=n>df_stockload</span><span class=o>.</span><span class=n>Close</span><span class=o>.</span><span class=n>plot</span><span class=p>(</span><span class=n>c</span><span class=o>=</span><span class=s1>&#39;b&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>df_stockload</span><span class=o>.</span><span class=n>Close</span><span class=o>.</span><span class=n>rolling</span><span class=p>(</span><span class=n>window</span><span class=o>=</span><span class=mi>30</span><span class=p>)</span><span class=o>.</span><span class=n>mean</span><span class=p>()</span><span class=o>.</span><span class=n>plot</span><span class=p>(</span><span class=n>c</span><span class=o>=</span><span class=s1>&#39;r&#39;</span><span class=p>)</span> <span class=c1>#pd.rolling_mean(df_stockload.Close,window=30).plot(c=&#39;r&#39;)</span>\n</span></span><span class=line><span class=cl><span class=n>df_stockload</span><span class=o>.</span><span class=n>Close</span><span class=o>.</span><span class=n>rolling</span><span class=p>(</span><span class=n>window</span><span class=o>=</span><span class=mi>60</span><span class=p>)</span><span class=o>.</span><span class=n>mean</span><span class=p>()</span><span class=o>.</span><span class=n>plot</span><span class=p>(</span><span class=n>c</span><span class=o>=</span><span class=s1>&#39;g&#39;</span><span class=p>)</span> <span class=c1>#pd.rolling_mean(df_stockload.Close,window=60).plot(c=&#39;g&#39;)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>legend</span><span class=p>([</span><span class=s1>&#39;Close&#39;</span><span class=p>,</span><span class=s1>&#39;30ave&#39;</span><span class=p>,</span><span class=s1>&#39;60ave&#39;</span><span class=p>],</span><span class=n>loc</span><span class=o>=</span><span class=s1>&#39;best&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>show</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=n>Index</span><span class=p>([</span><span class=s1>&#39;High&#39;</span><span class=p>,</span> <span class=s1>&#39;Low&#39;</span><span class=p>,</span> <span class=s1>&#39;Open&#39;</span><span class=p>,</span> <span class=s1>&#39;Close&#39;</span><span class=p>,</span> <span class=s1>&#39;Volume&#39;</span><span class=p>,</span> <span class=s1>&#39;Adj Close&#39;</span><span class=p>],</span> <span class=n>dtype</span><span class=o>=</span><span class=s1>&#39;object&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>DatetimeIndex</span><span class=p>([</span><span class=s1>&#39;2017-01-03&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-04&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-05&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-06&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>               <span class=s1>&#39;2017-01-09&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-10&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-11&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-12&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>               <span class=s1>&#39;2017-01-13&#39;</span><span class=p>,</span> <span class=s1>&#39;2017-01-16&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>               <span class=o>...</span>\n</span></span><span class=line><span class=cl>               <span class=s1>&#39;2019-06-05&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-06&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-10&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-11&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>               <span class=s1>&#39;2019-06-12&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-13&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-14&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-19&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>               <span class=s1>&#39;2019-06-20&#39;</span><span class=p>,</span> <span class=s1>&#39;2019-06-21&#39;</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>              <span class=n>dtype</span><span class=o>=</span><span class=s1>&#39;datetime64[ns]&#39;</span><span class=p>,</span> <span class=n>name</span><span class=o>=</span><span class=s1>&#39;Date&#39;</span><span class=p>,</span> <span class=n>length</span><span class=o>=</span><span class=mi>596</span><span class=p>,</span> <span class=n>freq</span><span class=o>=</span><span class=kc>None</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>              <span class=n>High</span>          <span class=n>Low</span>         <span class=n>Open</span>        <span class=n>Close</span>        <span class=n>Volume</span>  \\\n</span></span><span class=line><span class=cl><span class=n>count</span>   <span class=mf>596.000000</span>   <span class=mf>596.000000</span>   <span class=mf>596.000000</span>   <span class=mf>596.000000</span>  <span class=mf>5.960000e+02</span>\n</span></span><span class=line><span class=cl><span class=n>mean</span>   <span class=mf>3076.147753</span>  <span class=mf>3039.201569</span>  <span class=mf>3056.960338</span>  <span class=mf>3060.169056</span>  <span class=mf>5.098201e+06</span>\n</span></span><span class=line><span class=cl><span class=n>std</span>     <span class=mf>269.276147</span>   <span class=mf>273.757358</span>   <span class=mf>271.612122</span>   <span class=mf>272.072346</span>  <span class=mf>1.199107e+08</span>\n</span></span><span class=line><span class=cl><span class=nb>min</span>    <span class=mf>2488.479004</span>  <span class=mf>2440.906982</span>  <span class=mf>2446.019043</span>  <span class=mf>2464.363037</span>  <span class=mf>8.820000e+04</span>\n</span></span><span class=line><span class=cl><span class=mi>25</span><span class=o>%</span>    <span class=mf>2845.308228</span>  <span class=mf>2800.168762</span>  <span class=mf>2825.239502</span>  <span class=mf>2827.754822</span>  <span class=mf>1.375250e+05</span>\n</span></span><span class=line><span class=cl><span class=mi>50</span><span class=o>%</span>    <span class=mf>3153.184937</span>  <span class=mf>3118.613525</span>  <span class=mf>3134.300537</span>  <span class=mf>3139.085449</span>  <span class=mf>1.666500e+05</span>\n</span></span><span class=line><span class=cl><span class=mi>75</span><span class=o>%</span>    <span class=mf>3280.115234</span>  <span class=mf>3244.825256</span>  <span class=mf>3265.322021</span>  <span class=mf>3268.600342</span>  <span class=mf>2.091250e+05</span>\n</span></span><span class=line><span class=cl><span class=nb>max</span>    <span class=mf>3587.031982</span>  <span class=mf>3534.195068</span>  <span class=mf>3563.639893</span>  <span class=mf>3559.465088</span>  <span class=mf>2.927580e+09</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>         <span class=n>Adj</span> <span class=n>Close</span>\n</span></span><span class=line><span class=cl><span class=n>count</span>   <span class=mf>596.000000</span>\n</span></span><span class=line><span class=cl><span class=n>mean</span>   <span class=mf>3060.169056</span>\n</span></span><span class=line><span class=cl><span class=n>std</span>     <span class=mf>272.072346</span>\n</span></span><span class=line><span class=cl><span class=nb>min</span>    <span class=mf>2464.363037</span>\n</span></span><span class=line><span class=cl><span class=mi>25</span><span class=o>%</span>    <span class=mf>2827.754822</span>\n</span></span><span class=line><span class=cl><span class=mi>50</span><span class=o>%</span>    <span class=mf>3139.085449</span>\n</span></span><span class=line><span class=cl><span class=mi>75</span><span class=o>%</span>    <span class=mf>3268.600342</span>\n</span></span><span class=line><span class=cl><span class=nb>max</span>    <span class=mf>3559.465088</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/pysx2/images/stock15.png title=生成的图 data-thumbnail=/posts/pysx2/images/stock15.png data-sub-html=\"<h2>生成的图</h2>\"><img loading=lazy src=/posts/pysx2/images/stock15.png alt=生成的图 height=264 width=384></a></p><h2 class=heading-element id=621><span>3 6.21</span>\n<a href=#621 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=类><span>3.1 类</span>\n<a href=#%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>比第一天稍微仔细一点讲了一下类，有点需要注意：</p><ul><li><code>self</code>相当于<code>this</code>表示当前对象</li><li>python 类的所有函数的第一个参数都要写<code>self</code>参数，self 也可以是其他的比如<code>lrh</code>等字符替代，但是必须保持一致。</li><li><code>__</code>表示私有的</li><li>class 的定义可以不加 (),() 内可写继承的父类</li></ul><h3 class=heading-element id=gui-设计-wxpython><span>3.2 GUI 设计 <a href=https://blog.csdn.net/mist99/article/details/80742548 target=_blank rel=\"external nofollow noopener noreferrer\">wxPython<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#gui-%e8%ae%be%e8%ae%a1-wxpython class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>pip install wxPython</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>wx</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>wx</span> <span class=c1>#导入 wxPython 库</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>Panel</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Panel</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>parent</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>wx</span><span class=o>.</span><span class=n>Panel</span><span class=o>.</span><span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>parent</span><span class=o>=</span><span class=n>parent</span><span class=p>,</span> <span class=nb>id</span><span class=o>=-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>pass</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>Frame</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Frame</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>wx</span><span class=o>.</span><span class=n>Frame</span><span class=o>.</span><span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>parent</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span> <span class=n>title</span> <span class=o>=</span> <span class=sa>u</span><span class=s1>&#39;量化软件&#39;</span><span class=p>,</span> <span class=n>size</span><span class=o>=</span><span class=p>(</span><span class=mi>1000</span><span class=p>,</span><span class=mi>600</span><span class=p>),</span> <span class=n>style</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>DEFAULT_FRAME_STYLE</span><span class=o>^</span><span class=n>wx</span><span class=o>.</span><span class=n>MAXIMIZE_BOX</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>=</span> <span class=n>Panel</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>pass</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>App</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>App</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>OnInit</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>frame</span> <span class=o>=</span> <span class=n>Frame</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>frame</span><span class=o>.</span><span class=n>Show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetTopWindow</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>frame</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=kc>True</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span> <span class=o>==</span> <span class=s1>&#39;__main__&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>app</span> <span class=o>=</span> <span class=n>App</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>app</span><span class=o>.</span><span class=n>MainLoop</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>wx</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>app</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>App</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=n>window</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Frame</span><span class=p>(</span><span class=kc>None</span><span class=p>,</span> <span class=n>title</span><span class=o>=</span><span class=s2>&#34;wxPython 你好！&#34;</span><span class=p>,</span> <span class=n>size</span><span class=o>=</span><span class=p>(</span><span class=mi>400</span><span class=p>,</span> <span class=mi>300</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>panel</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Panel</span><span class=p>(</span><span class=n>window</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>label</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticText</span><span class=p>(</span><span class=n>panel</span><span class=p>,</span> <span class=n>label</span><span class=o>=</span><span class=s2>&#34;Hello World&#34;</span><span class=p>,</span> <span class=n>pos</span><span class=o>=</span><span class=p>(</span><span class=mi>100</span><span class=p>,</span> <span class=mi>100</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>window</span><span class=o>.</span><span class=n>Show</span><span class=p>(</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>app</span><span class=o>.</span><span class=n>MainLoop</span><span class=p>()</span></span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/pysx2/images/wxpython.png title=运行结果 data-thumbnail=/posts/pysx2/images/wxpython.png data-sub-html=\"<h2>运行结果</h2>\"><img loading=lazy src=/posts/pysx2/images/wxpython.png alt=运行结果 height=366 width=482></a></p><h3 class=heading-element id=talib-库的安装><span>3.3 talib 库的安装</span>\n<a href=#talib-%e5%ba%93%e7%9a%84%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib target=_blank rel=\"external nofollow noopener noreferrer\">下载 whl 文件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>pip install TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl\n</span></span><span class=line><span class=cl>pip install TA-Lib</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=选择排序递归版><span>3.4 选择排序递归版</span>\n<a href=#%e9%80%89%e6%8b%a9%e6%8e%92%e5%ba%8f%e9%80%92%e5%bd%92%e7%89%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=k>def</span> <span class=nf>SelectSort</span><span class=p>(</span><span class=n>L</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>L</span><span class=o>=</span><span class=n>L</span><span class=p>[:]</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=nb>len</span><span class=p>(</span><span class=n>L</span><span class=p>)</span><span class=o>&lt;=</span><span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=n>L</span>\n</span></span><span class=line><span class=cl>    <span class=nb>min</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=mi>1</span><span class=p>,</span><span class=nb>len</span><span class=p>(</span><span class=n>L</span><span class=p>)):</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>L</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&lt;</span><span class=n>L</span><span class=p>[</span><span class=nb>min</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>            <span class=nb>min</span> <span class=o>=</span> <span class=n>i</span>\n</span></span><span class=line><span class=cl>    <span class=n>L</span><span class=p>[</span><span class=nb>min</span><span class=p>],</span><span class=n>L</span><span class=p>[</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=n>L</span><span class=p>[</span><span class=mi>0</span><span class=p>],</span><span class=n>L</span><span class=p>[</span><span class=nb>min</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>[</span><span class=n>L</span><span class=p>[</span><span class=mi>0</span><span class=p>]]</span><span class=o>+</span><span class=n>SelectSort</span><span class=p>(</span><span class=n>L</span><span class=p>[</span><span class=mi>1</span><span class=p>:])</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>L</span> <span class=o>=</span> <span class=p>[</span><span class=mi>5</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>6</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>9</span><span class=p>,</span><span class=mi>8</span><span class=p>,</span><span class=mi>10</span><span class=p>,</span><span class=mi>0</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=n>SelectSort</span><span class=p>(</span><span class=n>L</span><span class=p>))</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=p>[</span><span class=mi>0</span><span class=p>,</span> <span class=mi>1</span><span class=p>,</span> <span class=mi>2</span><span class=p>,</span> <span class=mi>3</span><span class=p>,</span> <span class=mi>5</span><span class=p>,</span> <span class=mi>6</span><span class=p>,</span> <span class=mi>8</span><span class=p>,</span> <span class=mi>9</span><span class=p>,</span> <span class=mi>10</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=机房上机系统自我实践><span>3.5 机房上机系统（自我实践）</span>\n<a href=#%e6%9c%ba%e6%88%bf%e4%b8%8a%e6%9c%ba%e7%b3%bb%e7%bb%9f%e8%87%aa%e6%88%91%e5%ae%9e%e8%b7%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>import</span> <span class=nn>time</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>student</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>stu_no</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>,</span><span class=n>stu_name</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>,</span><span class=n>stu_xi</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>,</span><span class=n>stu_time</span><span class=o>=</span><span class=s2>&#34;&#34;</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stu_no</span> <span class=o>=</span> <span class=n>stu_no</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stu_name</span> <span class=o>=</span> <span class=n>stu_name</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stu_xi</span> <span class=o>=</span> <span class=n>stu_xi</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stu_time</span> <span class=o>=</span> <span class=n>stu_time</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>print</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;学号：&#34;</span><span class=o>+</span><span class=bp>self</span><span class=o>.</span><span class=n>stu_no</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 姓名：&#34;</span><span class=o>+</span><span class=bp>self</span><span class=o>.</span><span class=n>stu_name</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 系别：&#34;</span><span class=o>+</span><span class=bp>self</span><span class=o>.</span><span class=n>stu_xi</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 机时 (h)：&#34;</span><span class=o>+</span><span class=bp>self</span><span class=o>.</span><span class=n>stu_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>get_stu_name</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=bp>self</span><span class=o>.</span><span class=n>stu_name</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>get_stu_time</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=nb>int</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stu_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>set_stu_time</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>add_time</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stu_time</span> <span class=o>=</span> <span class=n>add_time</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>menu</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 机房上机系统 V0.1&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;********************************&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>—&gt;1. 录入学生信息&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>—&gt;2. 上机&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>—&gt;3. 下机&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>—&gt;4. 缴费&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>—&gt;5. 退出&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;********************************&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>select</span> <span class=o>=</span> <span class=nb>eval</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入序号：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=n>select</span> <span class=ow>not</span> <span class=ow>in</span> <span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=mi>4</span><span class=p>,</span><span class=mi>5</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;输入错误，请重新输入！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>select</span> <span class=o>=</span> <span class=nb>eval</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入序号：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>select</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>get_time</span><span class=p>():</span> <span class=c1>#获取当前时间</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>time</span><span class=o>.</span><span class=n>strftime</span><span class=p>(</span><span class=s2>&#34;%H:%M:%S&#34;</span><span class=p>,</span> <span class=n>time</span><span class=o>.</span><span class=n>localtime</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>main</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## 全局变量</span>\n</span></span><span class=line><span class=cl>    <span class=n>text</span> <span class=o>=</span> <span class=p>[]</span> <span class=c1>## 上机记录列表</span>\n</span></span><span class=line><span class=cl>    <span class=n>start_time</span> <span class=o>=</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=n>end_time</span> <span class=o>=</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=nb>sum</span> <span class=o>=</span> <span class=mi>0</span> <span class=c1>## 本系统按小时计费，不足一小时按一小时算</span>\n</span></span><span class=line><span class=cl>    <span class=n>people</span> <span class=o>=</span> <span class=n>student</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>online_flag</span> <span class=o>=</span> <span class=kc>False</span>\n</span></span><span class=line><span class=cl>    <span class=n>down_flag</span> <span class=o>=</span> <span class=kc>False</span>\n</span></span><span class=line><span class=cl>    <span class=n>input_flag</span> <span class=o>=</span> <span class=kc>False</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=kc>True</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>select</span> <span class=o>=</span> <span class=n>menu</span><span class=p>()</span> <span class=c1>## 启用菜单</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>select</span> <span class=o>==</span> <span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=n>input_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;已录入，无需重复操作，缴费请输入 4:&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>input_flag</span> <span class=o>=</span> <span class=kc>True</span>\n</span></span><span class=line><span class=cl>                <span class=n>stu_no</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入学号：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>stu_name</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入姓名：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>stu_xi</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入系别：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>stu_time</span> <span class=o>=</span> <span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入机时：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span> <span class=o>=</span> <span class=n>student</span><span class=p>(</span><span class=n>stu_no</span><span class=p>,</span><span class=n>stu_name</span><span class=p>,</span><span class=n>stu_xi</span><span class=p>,</span><span class=n>stu_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span><span class=o>.</span><span class=n>print</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>elif</span> <span class=n>select</span> <span class=o>==</span> <span class=mi>2</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=ow>not</span> <span class=n>input_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;未录入学生信息，请录入！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=ow>not</span> <span class=n>online_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>online_flag</span> <span class=o>=</span> <span class=kc>True</span>\n</span></span><span class=line><span class=cl>                <span class=n>start_time</span> <span class=o>=</span> <span class=n>get_time</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=n>start_num</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=n>start_time</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=mi>2</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>                <span class=c1>#print(start_num)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=n>text</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=s2>&#34;上机时间：&#34;</span><span class=o>+</span><span class=n>start_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;已上机！上机时间为：&#34;</span><span class=o>+</span><span class=n>start_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;已上机！上机时间为：&#34;</span><span class=o>+</span><span class=n>start_time</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>elif</span> <span class=n>select</span> <span class=o>==</span> <span class=mi>3</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=ow>not</span> <span class=n>online_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;还未上机，请上机！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>end_time</span> <span class=o>=</span> <span class=n>get_time</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=n>end_num</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=n>end_time</span><span class=p>[</span><span class=mi>0</span><span class=p>:</span><span class=mi>2</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>                <span class=nb>sum</span> <span class=o>=</span> <span class=n>end_num</span> <span class=o>-</span> <span class=n>start_num</span>\n</span></span><span class=line><span class=cl>                <span class=nb>sum</span> <span class=o>=</span> <span class=nb>sum</span> <span class=k>if</span><span class=p>(</span><span class=nb>sum</span><span class=o>&gt;=</span><span class=mi>0</span><span class=p>)</span> <span class=k>else</span> <span class=nb>sum</span><span class=o>+</span><span class=mi>24</span>\n</span></span><span class=line><span class=cl>                <span class=nb>sum</span> <span class=o>=</span> <span class=nb>sum</span><span class=o>+</span><span class=mi>1</span> <span class=k>if</span><span class=p>(</span><span class=nb>sum</span><span class=o>==</span><span class=mi>0</span><span class=p>)</span> <span class=k>else</span> <span class=nb>sum</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;已下机！下机时间为：&#34;</span><span class=o>+</span><span class=n>end_time</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 上机时长 (h)：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=nb>sum</span><span class=p>)</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2> 剩余机时 (h)：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>people</span><span class=o>.</span><span class=n>get_stu_time</span><span class=p>()</span><span class=o>-</span><span class=nb>sum</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=n>text</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=s2>&#34;下机时间：&#34;</span><span class=o>+</span><span class=n>end_time</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2> 上机时长 (h)：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=nb>sum</span><span class=p>)</span><span class=o>+</span><span class=s2>&#34;</span><span class=se>\\t</span><span class=s2>&#34;</span><span class=o>+</span><span class=n>people</span><span class=o>.</span><span class=n>get_stu_name</span><span class=p>()</span><span class=o>+</span><span class=s2>&#34;剩余机时 (h)：&#34;</span><span class=o>+</span><span class=nb>str</span><span class=p>(</span><span class=n>people</span><span class=o>.</span><span class=n>get_stu_time</span><span class=p>()</span><span class=o>-</span><span class=nb>sum</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span><span class=o>.</span><span class=n>set_stu_time</span><span class=p>(</span><span class=nb>str</span><span class=p>(</span><span class=n>people</span><span class=o>.</span><span class=n>get_stu_time</span><span class=p>()</span><span class=o>-</span><span class=nb>sum</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=n>down_flag</span> <span class=o>=</span> <span class=kc>True</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>elif</span> <span class=n>select</span> <span class=o>==</span> <span class=mi>4</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=ow>not</span> <span class=n>input_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;未录入学生信息，请录入！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span><span class=o>.</span><span class=n>print</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>                <span class=n>add_time</span> <span class=o>=</span> <span class=nb>eval</span><span class=p>(</span><span class=nb>input</span><span class=p>(</span><span class=s2>&#34;请输入机时：&#34;</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span><span class=o>.</span><span class=n>set_stu_time</span><span class=p>(</span><span class=nb>str</span><span class=p>(</span><span class=n>add_time</span><span class=o>+</span><span class=n>people</span><span class=o>.</span><span class=n>get_stu_time</span><span class=p>()))</span>\n</span></span><span class=line><span class=cl>                <span class=n>people</span><span class=o>.</span><span class=n>print</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=n>down_flag</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;3s 后退出系统，感谢使用！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=n>time</span><span class=o>.</span><span class=n>sleep</span><span class=p>(</span><span class=mi>3</span><span class=p>)</span> <span class=c1>## 延迟 3s，显示提示文字</span>\n</span></span><span class=line><span class=cl>                <span class=k>break</span> <span class=c1>## 退出系统 写入文件</span>\n</span></span><span class=line><span class=cl>            <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;请下机！&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>                <span class=k>continue</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>#写入 computer.txt 文件</span>\n</span></span><span class=line><span class=cl>    <span class=n>fo</span> <span class=o>=</span> <span class=nb>open</span><span class=p>(</span><span class=s2>&#34;D:</span><span class=se>\\\\</span><span class=s2>computer.txt&#34;</span><span class=p>,</span><span class=s2>&#34;w&#34;</span><span class=p>,</span><span class=n>encoding</span><span class=o>=</span><span class=s2>&#34;utf-8&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>fo</span><span class=o>.</span><span class=n>write</span><span class=p>(</span><span class=s2>&#34;</span><span class=se>\\n</span><span class=s2>&#34;</span><span class=o>.</span><span class=n>join</span><span class=p>(</span><span class=n>text</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=n>fo</span><span class=o>.</span><span class=n>close</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span><span class=o>==</span><span class=s2>&#34;__main__&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>main</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=量化交易代码分析与调试><span>3.6 量化交易代码分析与调试</span>\n<a href=#%e9%87%8f%e5%8c%96%e4%ba%a4%e6%98%93%e4%bb%a3%e7%a0%81%e5%88%86%e6%9e%90%e4%b8%8e%e8%b0%83%e8%af%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>由于 python 的版本问题和一些库的导入问题所以还未调试成功，先挂上代码。以后改篇再论。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span><span class=lnt>111\n</span><span class=lnt>112\n</span><span class=lnt>113\n</span><span class=lnt>114\n</span><span class=lnt>115\n</span><span class=lnt>116\n</span><span class=lnt>117\n</span><span class=lnt>118\n</span><span class=lnt>119\n</span><span class=lnt>120\n</span><span class=lnt>121\n</span><span class=lnt>122\n</span><span class=lnt>123\n</span><span class=lnt>124\n</span><span class=lnt>125\n</span><span class=lnt>126\n</span><span class=lnt>127\n</span><span class=lnt>128\n</span><span class=lnt>129\n</span><span class=lnt>130\n</span><span class=lnt>131\n</span><span class=lnt>132\n</span><span class=lnt>133\n</span><span class=lnt>134\n</span><span class=lnt>135\n</span><span class=lnt>136\n</span><span class=lnt>137\n</span><span class=lnt>138\n</span><span class=lnt>139\n</span><span class=lnt>140\n</span><span class=lnt>141\n</span><span class=lnt>142\n</span><span class=lnt>143\n</span><span class=lnt>144\n</span><span class=lnt>145\n</span><span class=lnt>146\n</span><span class=lnt>147\n</span><span class=lnt>148\n</span><span class=lnt>149\n</span><span class=lnt>150\n</span><span class=lnt>151\n</span><span class=lnt>152\n</span><span class=lnt>153\n</span><span class=lnt>154\n</span><span class=lnt>155\n</span><span class=lnt>156\n</span><span class=lnt>157\n</span><span class=lnt>158\n</span><span class=lnt>159\n</span><span class=lnt>160\n</span><span class=lnt>161\n</span><span class=lnt>162\n</span><span class=lnt>163\n</span><span class=lnt>164\n</span><span class=lnt>165\n</span><span class=lnt>166\n</span><span class=lnt>167\n</span><span class=lnt>168\n</span><span class=lnt>169\n</span><span class=lnt>170\n</span><span class=lnt>171\n</span><span class=lnt>172\n</span><span class=lnt>173\n</span><span class=lnt>174\n</span><span class=lnt>175\n</span><span class=lnt>176\n</span><span class=lnt>177\n</span><span class=lnt>178\n</span><span class=lnt>179\n</span><span class=lnt>180\n</span><span class=lnt>181\n</span><span class=lnt>182\n</span><span class=lnt>183\n</span><span class=lnt>184\n</span><span class=lnt>185\n</span><span class=lnt>186\n</span><span class=lnt>187\n</span><span class=lnt>188\n</span><span class=lnt>189\n</span><span class=lnt>190\n</span><span class=lnt>191\n</span><span class=lnt>192\n</span><span class=lnt>193\n</span><span class=lnt>194\n</span><span class=lnt>195\n</span><span class=lnt>196\n</span><span class=lnt>197\n</span><span class=lnt>198\n</span><span class=lnt>199\n</span><span class=lnt>200\n</span><span class=lnt>201\n</span><span class=lnt>202\n</span><span class=lnt>203\n</span><span class=lnt>204\n</span><span class=lnt>205\n</span><span class=lnt>206\n</span><span class=lnt>207\n</span><span class=lnt>208\n</span><span class=lnt>209\n</span><span class=lnt>210\n</span><span class=lnt>211\n</span><span class=lnt>212\n</span><span class=lnt>213\n</span><span class=lnt>214\n</span><span class=lnt>215\n</span><span class=lnt>216\n</span><span class=lnt>217\n</span><span class=lnt>218\n</span><span class=lnt>219\n</span><span class=lnt>220\n</span><span class=lnt>221\n</span><span class=lnt>222\n</span><span class=lnt>223\n</span><span class=lnt>224\n</span><span class=lnt>225\n</span><span class=lnt>226\n</span><span class=lnt>227\n</span><span class=lnt>228\n</span><span class=lnt>229\n</span><span class=lnt>230\n</span><span class=lnt>231\n</span><span class=lnt>232\n</span><span class=lnt>233\n</span><span class=lnt>234\n</span><span class=lnt>235\n</span><span class=lnt>236\n</span><span class=lnt>237\n</span><span class=lnt>238\n</span><span class=lnt>239\n</span><span class=lnt>240\n</span><span class=lnt>241\n</span><span class=lnt>242\n</span><span class=lnt>243\n</span><span class=lnt>244\n</span><span class=lnt>245\n</span><span class=lnt>246\n</span><span class=lnt>247\n</span><span class=lnt>248\n</span><span class=lnt>249\n</span><span class=lnt>250\n</span><span class=lnt>251\n</span><span class=lnt>252\n</span><span class=lnt>253\n</span><span class=lnt>254\n</span><span class=lnt>255\n</span><span class=lnt>256\n</span><span class=lnt>257\n</span><span class=lnt>258\n</span><span class=lnt>259\n</span><span class=lnt>260\n</span><span class=lnt>261\n</span><span class=lnt>262\n</span><span class=lnt>263\n</span><span class=lnt>264\n</span><span class=lnt>265\n</span><span class=lnt>266\n</span><span class=lnt>267\n</span><span class=lnt>268\n</span><span class=lnt>269\n</span><span class=lnt>270\n</span><span class=lnt>271\n</span><span class=lnt>272\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=ch>#! /usr/bin/env python</span>\n</span></span><span class=line><span class=cl><span class=c1>#-*- encoding: utf-8 -*-</span>\n</span></span><span class=line><span class=cl><span class=c1>#author pythontab.com</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>wx</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>wx.adv</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>numpy</span> <span class=k>as</span> <span class=nn>np</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>pandas</span> <span class=k>as</span> <span class=nn>pd</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>pandas_datareader.data</span> <span class=k>as</span> <span class=nn>web</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib.pyplot</span> <span class=k>as</span> <span class=nn>plt</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>matplotlib.figure</span> <span class=kn>import</span> <span class=n>Figure</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib.dates</span> <span class=k>as</span> <span class=nn>mdates</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>mpl_finance</span> <span class=k>as</span> <span class=nn>mpf</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>matplotlib.backends.backend_wxagg</span> <span class=kn>import</span> <span class=n>FigureCanvasWxAgg</span> <span class=k>as</span> <span class=n>FigureCanvas</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>matplotlib.gridspec</span> <span class=k>as</span> <span class=nn>gridspec</span><span class=c1>#分割子图</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>datetime</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>talib</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>csv</span><span class=o>,</span><span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>codecs</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>RedefPanelMod</span> <span class=kn>import</span> <span class=n>MPL_Panel_Base</span><span class=p>,</span><span class=n>Loop_Panel_Base</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>StockDataMod</span> <span class=kn>import</span> <span class=n>GetStockDatPro</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>IndicatStrateMod</span> <span class=kn>import</span> <span class=n>Excave_Indic_Base</span><span class=p>,</span> <span class=n>QuantPickTimeSys</span><span class=p>,</span><span class=n>FactorPickStockAng</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>rcParams</span><span class=p>[</span><span class=s1>&#39;font.sans-serif&#39;</span><span class=p>]</span><span class=o>=</span><span class=p>[</span><span class=s1>&#39;SimHei&#39;</span><span class=p>]</span> <span class=c1>#用来正常显示中文标签</span>\n</span></span><span class=line><span class=cl><span class=n>plt</span><span class=o>.</span><span class=n>rcParams</span><span class=p>[</span><span class=s1>&#39;axes.unicode_minus&#39;</span><span class=p>]</span><span class=o>=</span><span class=kc>False</span> <span class=c1>#用来正常显示负号</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>UserDialog</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Dialog</span><span class=p>):</span><span class=c1>## user-defined</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>parent</span><span class=p>,</span><span class=n>text</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=n>wx</span><span class=o>.</span><span class=n>Dialog</span><span class=o>.</span><span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>parent</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=sa>u</span><span class=s2>&#34;选股提示&#34;</span><span class=p>,</span><span class=n>size</span><span class=o>=</span><span class=p>(</span><span class=mi>400</span><span class=p>,</span><span class=mi>500</span><span class=p>),</span><span class=n>style</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>CAPTION</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CLOSE_BOX</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>MAXIMIZE_BOX</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>MINIMIZE_BOX</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>sizer</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>BoxSizer</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>VERTICAL</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>pstock_Text</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticText</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=sa>u</span><span class=s1>&#39;选股策略筛选结果&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pstock_Text</span><span class=o>.</span><span class=n>SetFont</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Font</span><span class=p>(</span><span class=mi>18</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>DEFAULT</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>NORMAL</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>BOLD</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>        <span class=n>pstock_sure</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>TextCtrl</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=s2>&#34;角度值：</span><span class=se>\\n</span><span class=s2>&#34;</span><span class=p>,</span><span class=n>size</span><span class=o>=</span><span class=p>(</span><span class=mi>350</span><span class=p>,</span><span class=mi>300</span><span class=p>),</span><span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>TE_MULTILINE</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>TE_READONLY</span><span class=p>)</span><span class=c1>#多行 | 只读</span>\n</span></span><span class=line><span class=cl>        <span class=n>pstock_sure</span><span class=o>.</span><span class=n>SetFont</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Font</span><span class=p>(</span><span class=mi>10</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>DEFAULT</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>NORMAL</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>BOLD</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>okbtn</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Button</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>wx</span><span class=o>.</span><span class=n>ID_OK</span><span class=p>,</span><span class=sa>u</span><span class=s2>&#34;确认&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>okbtn</span><span class=o>.</span><span class=n>SetDefault</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>pstock_Text</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>ALIGN_CENTER</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>pstock_sure</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>ALIGN_CENTER</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>okbtn</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>ALIGN_CENTER</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=n>sizer</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>text</span><span class=p>:</span><span class=n>pstock_sure</span><span class=o>.</span><span class=n>AppendText</span><span class=p>(</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>Frame</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>Frame</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=n>wx</span><span class=o>.</span><span class=n>Frame</span><span class=o>.</span><span class=fm>__init__</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>parent</span> <span class=o>=</span> <span class=kc>None</span><span class=p>,</span> <span class=n>title</span> <span class=o>=</span> <span class=sa>u</span><span class=s1>&#39;量化软件&#39;</span><span class=p>,</span> <span class=n>size</span><span class=o>=</span><span class=p>(</span><span class=mi>1500</span><span class=p>,</span><span class=mi>800</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>                      <span class=n>style</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>DEFAULT_FRAME_STYLE</span><span class=o>^</span><span class=n>wx</span><span class=o>.</span><span class=n>MAXIMIZE_BOX</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#创建显示区面板</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span> <span class=o>=</span> <span class=n>MPL_Panel_Base</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span> <span class=o>=</span> <span class=n>Loop_Panel_Base</span><span class=p>(</span><span class=bp>self</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>am</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>am</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>vol</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>vol</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>devol</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>devol</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>macd</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>macd</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#创建参数区面板</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Panel</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Box</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticBox</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=sa>u</span><span class=s1>&#39;参数输入&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticBoxSizer</span><span class=p>(</span><span class=n>paraInput_Box</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>VERTICAL</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span> <span class=o>=</span> <span class=p>{</span><span class=sa>u</span><span class=s2>&#34;开山股份&#34;</span><span class=p>:</span><span class=s2>&#34;300257.SZ&#34;</span><span class=p>,</span><span class=sa>u</span><span class=s2>&#34;浙大网新&#34;</span><span class=p>:</span><span class=s2>&#34;600797.SS&#34;</span><span class=p>,</span><span class=sa>u</span><span class=s2>&#34;水晶光电&#34;</span><span class=p>:</span><span class=s2>&#34;002273.SZ&#34;</span><span class=p>,</span> <span class=sa>u</span><span class=s2>&#34;高鸿股份&#34;</span><span class=p>:</span><span class=s2>&#34;000851.SZ&#34;</span><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#初始化股票代码变量</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span> <span class=o>=</span> <span class=sa>u</span><span class=s2>&#34;开山股份&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockCode_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=p>[</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockName_CMBO</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>ComboBox</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span><span class=p>,</span> <span class=n>choices</span> <span class=o>=</span> <span class=nb>list</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=o>.</span><span class=n>keys</span><span class=p>()),</span> <span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>CB_READONLY</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CB_DROPDOWN</span><span class=p>)</span> <span class=c1>#股票名称</span>\n</span></span><span class=line><span class=cl>        <span class=n>stockCode_Text</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticText</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=sa>u</span><span class=s1>&#39;股票名称&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>       <span class=c1>#策略选取</span>\n</span></span><span class=line><span class=cl>        <span class=n>strate_Text</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticText</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=sa>u</span><span class=s1>&#39;策略名称&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>strate_Combo_Val</span> <span class=o>=</span> <span class=p>[</span><span class=sa>u</span><span class=s2>&#34;双趋势融合&#34;</span><span class=p>,</span> <span class=sa>u</span><span class=s2>&#34;阿尔法&#34;</span><span class=p>,</span> <span class=sa>u</span><span class=s2>&#34;布林带&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_Val</span> <span class=o>=</span> <span class=sa>u</span><span class=s2>&#34;双趋势融合&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_CMBO</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>ComboBox</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_Val</span><span class=p>,</span> <span class=n>choices</span> <span class=o>=</span> <span class=n>strate_Combo_Val</span><span class=p>,</span> <span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>CB_READONLY</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CB_DROPDOWN</span><span class=p>)</span> <span class=c1>#策略名称</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#日历控件选择数据周期</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>dpcEndTime</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DatePickerCtrl</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_DROPDOWN</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_SHOWCENTURY</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_ALLOWNONE</span><span class=p>)</span><span class=c1>#结束时间</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>dpcStartTime</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DatePickerCtrl</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_DROPDOWN</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_SHOWCENTURY</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>adv</span><span class=o>.</span><span class=n>DP_ALLOWNONE</span><span class=p>)</span><span class=c1>#起始时间</span>\n</span></span><span class=line><span class=cl>        <span class=n>DateTimeNow</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>DateTime</span><span class=o>.</span><span class=n>Now</span><span class=p>()</span><span class=c1>#wx.DateTime 格式&#34;03/03/18 00:00:00&#34;</span>\n</span></span><span class=line><span class=cl>       <span class=c1>#DateTimeNow = datetime.datetime.fromtimestamp(wx.DateTime.Now().GetTicks())</span>\n</span></span><span class=line><span class=cl>       <span class=c1>#DateTimeNow = datetime.datetime.fromtimestamp(DateTimeNow)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>dpcEndTime</span><span class=o>.</span><span class=n>SetValue</span><span class=p>(</span><span class=n>DateTimeNow</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>DateTimeNow</span><span class=o>.</span><span class=n>SetYear</span><span class=p>(</span><span class=n>DateTimeNow</span><span class=o>.</span><span class=n>year</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>dpcStartTime</span><span class=o>.</span><span class=n>SetValue</span><span class=p>(</span><span class=n>DateTimeNow</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>stockData_Text</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>StaticText</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=sa>u</span><span class=s1>&#39;日期 (Start-End)&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#初始化时间变量</span>\n</span></span><span class=line><span class=cl>        <span class=n>dateVal</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>dpcStartTime</span><span class=o>.</span><span class=n>GetValue</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockSdate_Val</span> <span class=o>=</span> <span class=n>datetime</span><span class=o>.</span><span class=n>datetime</span><span class=p>(</span><span class=n>dateVal</span><span class=o>.</span><span class=n>year</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>month</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>day</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>dateVal</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>dpcEndTime</span><span class=o>.</span><span class=n>GetValue</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockEdate_Val</span> <span class=o>=</span> <span class=n>datetime</span><span class=o>.</span><span class=n>datetime</span><span class=p>(</span><span class=n>dateVal</span><span class=o>.</span><span class=n>year</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>month</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>day</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>stockCode_Text</span><span class=p>,</span><span class=n>proportion</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=p>,</span><span class=n>border</span><span class=o>=</span><span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_CMBO</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CENTER</span><span class=p>,</span> <span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>stockData_Text</span><span class=p>,</span><span class=n>proportion</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=p>,</span><span class=n>border</span><span class=o>=</span><span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>dpcStartTime</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CENTER</span><span class=p>,</span> <span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>dpcEndTime</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CENTER</span><span class=p>,</span> <span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>strate_Text</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CENTER</span><span class=p>,</span> <span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>paraInput_Sizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_CMBO</span><span class=p>,</span> <span class=mi>0</span><span class=p>,</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>CENTER</span><span class=p>,</span> <span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>RadioList</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;不显示&#34;</span><span class=p>,</span><span class=s2>&#34;跳空缺口&#34;</span><span class=p>,</span> <span class=s2>&#34;金叉/死叉&#34;</span><span class=p>,</span> <span class=s2>&#34;N 日突破&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>StratInputBox</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>RadioBox</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=n>label</span><span class=o>=</span><span class=sa>u</span><span class=s1>&#39;指标提示&#39;</span><span class=p>,</span> <span class=n>choices</span><span class=o>=</span><span class=n>RadioList</span><span class=p>,</span><span class=n>majorDimension</span> <span class=o>=</span> <span class=mi>4</span><span class=p>,</span> <span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>RA_SPECIFY_ROWS</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>StratInputBox</span><span class=o>.</span><span class=n>Bind</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>EVT_RADIOBOX</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>OnRadioBox_Indicator</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#初始化指标变量</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>IndicatInput_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>StratInputBox</span><span class=o>.</span><span class=n>GetStringSelection</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>TextCtrl</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span> <span class=o>-</span><span class=mi>1</span><span class=p>,</span> <span class=s2>&#34;交易信息提示：&#34;</span><span class=p>,</span> <span class=n>style</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>TE_MULTILINE</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>TE_READONLY</span><span class=p>)</span><span class=c1>#多行 | 只读</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>vboxnetA</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>BoxSizer</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>VERTICAL</span><span class=p>)</span><span class=c1>#纵向 box</span>\n</span></span><span class=line><span class=cl>        <span class=n>vboxnetA</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=n>paraInput_Sizer</span><span class=p>,</span><span class=n>proportion</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>BOTTOM</span><span class=p>,</span><span class=n>border</span><span class=o>=</span><span class=mi>2</span><span class=p>)</span> <span class=c1>#proportion 参数控制容器尺寸比例</span>\n</span></span><span class=line><span class=cl>        <span class=n>vboxnetA</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>StratInputBox</span><span class=p>,</span><span class=n>proportion</span><span class=o>=</span><span class=mi>0</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>BOTTOM</span><span class=p>,</span><span class=n>border</span><span class=o>=</span><span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>vboxnetA</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span><span class=p>,</span><span class=n>proportion</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span><span class=n>flag</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=p>,</span><span class=n>border</span><span class=o>=</span><span class=mi>2</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=n>vboxnetA</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#创建 Right 面板</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Panel</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#创建 FlexGridSizer 布局网格</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=o>=</span><span class=n>wx</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=p>(</span><span class=n>rows</span><span class=o>=</span><span class=mi>3</span><span class=p>,</span> <span class=n>cols</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span> <span class=n>vgap</span><span class=o>=</span><span class=mi>3</span><span class=p>,</span> <span class=n>hgap</span><span class=o>=</span><span class=mi>3</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#行情按钮</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Firmoffer</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Button</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;行情&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Firmoffer</span><span class=o>.</span><span class=n>Bind</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>EVT_BUTTON</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>FirmEvent</span><span class=p>)</span><span class=c1>#绑定行情按钮事件</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#选股按钮</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Stockpick</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Button</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;选股&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Stockpick</span><span class=o>.</span><span class=n>Bind</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>EVT_BUTTON</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>PstockpEvent</span><span class=p>)</span><span class=c1>#绑定选股按钮事件</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#回测按钮</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Backtrace</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>Button</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span><span class=p>,</span><span class=o>-</span><span class=mi>1</span><span class=p>,</span><span class=s2>&#34;回测&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>Backtrace</span><span class=o>.</span><span class=n>Bind</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>EVT_BUTTON</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>BackEvent</span><span class=p>)</span><span class=c1>#绑定回测按钮事件</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#加入 Sizer 中</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>Firmoffer</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mi>1</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>5</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>ALL</span> <span class=o>|</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>Stockpick</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mi>1</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>5</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>ALL</span> <span class=o>|</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>Backtrace</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mi>1</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>5</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>ALL</span> <span class=o>|</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=o>.</span><span class=n>SetFlexibleDirection</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>BOTH</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>FlexGridSizer</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>BoxSizer</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>HORIZONTAL</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>ParaPanel</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mf>1.5</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>2</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mi>8</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>2</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span> <span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Add</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>CtrlPanel</span><span class=p>,</span><span class=n>proportion</span> <span class=o>=</span> <span class=mi>1</span><span class=p>,</span> <span class=n>border</span> <span class=o>=</span> <span class=mi>2</span><span class=p>,</span><span class=n>flag</span> <span class=o>=</span> <span class=n>wx</span><span class=o>.</span><span class=n>EXPAND</span><span class=o>|</span><span class=n>wx</span><span class=o>.</span><span class=n>ALL</span> <span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>ProcessStock</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#df_stockload = web.DataReader(&#34;600797.SS&#34;, &#34;yahoo&#34;, datetime.datetime(2017,1,1), datetime.date.today())</span>\n</span></span><span class=line><span class=cl>        <span class=n>df_stockload</span> <span class=o>=</span> <span class=n>GetStockDatPro</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockCode_Val</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>stockSdate_Val</span><span class=p>,</span> <span class=bp>self</span><span class=o>.</span><span class=n>stockEdate_Val</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;&#34;&#34; 绘制移动平均线图 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#self.am.plot(self.numic[0:self.butNum],self.close[0:self.butNum],&#39;#0f0ff0&#39;,linewidth=1.0)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>dispCont_List</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>examp_trade</span><span class=o>=</span> <span class=n>Excave_Indic_Base</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=bp>self</span><span class=o>.</span><span class=n>IndicatInput_Val</span> <span class=o>==</span> <span class=sa>u</span><span class=s2>&#34;金叉/死叉&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_pd</span><span class=p>,</span><span class=n>dispCont_List</span> <span class=o>=</span> <span class=n>examp_trade</span><span class=o>.</span><span class=n>plot_Aver_Cross</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>draw_avercross</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>,</span><span class=n>dispCont_pd</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>elif</span> <span class=bp>self</span><span class=o>.</span><span class=n>IndicatInput_Val</span> <span class=o>==</span> <span class=sa>u</span><span class=s2>&#34;跳空缺口&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_pd</span><span class=p>,</span><span class=n>dispCont_List</span> <span class=o>=</span> <span class=n>examp_trade</span><span class=o>.</span><span class=n>plot_Jump_Thrd</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>draw_jumpgap</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>,</span><span class=n>dispCont_pd</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>elif</span> <span class=bp>self</span><span class=o>.</span><span class=n>IndicatInput_Val</span> <span class=o>==</span> <span class=sa>u</span><span class=s2>&#34;N 日突破&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_pd</span><span class=p>,</span><span class=n>dispCont_List</span> <span class=o>=</span> <span class=n>examp_trade</span><span class=o>.</span><span class=n>plot_Ndays_Break</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>draw_ndaysbreak</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>,</span><span class=n>dispCont_pd</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_List</span> <span class=o>=</span> <span class=n>dispCont_List</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span><span class=o>.</span><span class=n>SetValue</span><span class=p>(</span><span class=sa>u</span><span class=s2>&#34;指标提示信息如下：&#34;</span><span class=o>+</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>dispCont_List</span><span class=p>:</span><span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span><span class=o>.</span><span class=n>AppendText</span><span class=p>(</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>numic</span> <span class=o>=</span> <span class=n>np</span><span class=o>.</span><span class=n>arange</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=nb>len</span><span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>index</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>        <span class=n>butNum</span> <span class=o>=</span> <span class=nb>len</span><span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>index</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>xylabel_tick_lim</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span><span class=p>,</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>index</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>draw_subgraph</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>,</span><span class=n>numic</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>ProcessLoop</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>df_stockload</span> <span class=o>=</span> <span class=n>GetStockDatPro</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockCode_Val</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>stockSdate_Val</span><span class=p>,</span> <span class=bp>self</span><span class=o>.</span><span class=n>stockEdate_Val</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>dispCont_List</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_Val</span> <span class=o>==</span> <span class=sa>u</span><span class=s2>&#34;双趋势融合&#34;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=c1>#多趋势融合策略执行 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>            <span class=n>examp_trade</span><span class=o>=</span> <span class=n>QuantPickTimeSys</span><span class=p>(</span><span class=n>df_stockload</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_List</span> <span class=o>=</span> <span class=n>examp_trade</span><span class=o>.</span><span class=n>run_factor_plot</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>trade</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>total</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>profit</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=c1>#执行其他策略</span>\n</span></span><span class=line><span class=cl>            <span class=k>pass</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span><span class=o>.</span><span class=n>SetValue</span><span class=p>(</span><span class=sa>u</span><span class=s2>&#34;策略提示信息如下：&#34;</span><span class=o>+</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>dispCont_List</span><span class=p>:</span><span class=bp>self</span><span class=o>.</span><span class=n>TextAInput</span><span class=o>.</span><span class=n>AppendText</span><span class=p>(</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>xylabel_tick_lim</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>reFlashLoop</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>clear_subgraph</span><span class=p>()</span><span class=c1>#必须清理图形才能显示下一幅图</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>ProcessLoop</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=o>.</span><span class=n>update_subgraph</span><span class=p>()</span><span class=c1>#必须刷新才能显示下一幅图</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>reFlashFrame</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>clear_subgraph</span><span class=p>()</span><span class=c1>#必须清理图形才能显示下一幅图</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>ProcessStock</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=o>.</span><span class=n>update_subgraph</span><span class=p>()</span><span class=c1>#必须刷新才能显示下一幅图</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>FirmEvent</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>event</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#显示行情面板</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Hide</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Replace</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Show</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#self.HBoxPanel.Remove(self.BackPanel)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Layout</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#获取列表股票代码和起始时间</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>stockName_CMBO</span><span class=o>.</span><span class=n>GetString</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_CMBO</span><span class=o>.</span><span class=n>GetSelection</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockCode_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=p>[</span><span class=bp>self</span><span class=o>.</span><span class=n>stockName_Val</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>dateVal</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>dpcStartTime</span><span class=o>.</span><span class=n>GetValue</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockSdate_Val</span> <span class=o>=</span> <span class=n>datetime</span><span class=o>.</span><span class=n>datetime</span><span class=p>(</span><span class=n>dateVal</span><span class=o>.</span><span class=n>year</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>month</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>day</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>dateVal</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>dpcEndTime</span><span class=o>.</span><span class=n>GetValue</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>stockEdate_Val</span> <span class=o>=</span> <span class=n>datetime</span><span class=o>.</span><span class=n>datetime</span><span class=p>(</span><span class=n>dateVal</span><span class=o>.</span><span class=n>year</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>month</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>dateVal</span><span class=o>.</span><span class=n>day</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>reFlashFrame</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>BackEvent</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>event</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#显示回测面板</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Hide</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Replace</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>DispPanel</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Show</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>BackPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=c1>#self.HBoxPanel.Remove(self.DispPanel)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetSizer</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>HBoxPanel</span><span class=o>.</span><span class=n>Layout</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=c1>#获取策略名称</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_CMBO</span><span class=o>.</span><span class=n>GetString</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>pickstrate_CMBO</span><span class=o>.</span><span class=n>GetSelection</span><span class=p>())</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>reFlashLoop</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>PstockpEvent</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>event</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=n>dispCont_List</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;&#34;&#34; 选股策略执行 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=n>examp_trade</span><span class=o>=</span> <span class=n>FactorPickStockAng</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=n>index</span><span class=p>,</span> <span class=n>stockName</span> <span class=ow>in</span> <span class=nb>enumerate</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=o>.</span><span class=n>keys</span><span class=p>())</span> <span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;stockName&#34;</span><span class=p>,</span><span class=n>stockName</span><span class=p>,</span><span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=p>[</span><span class=n>stockName</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>            <span class=n>df_stockload</span> <span class=o>=</span> <span class=n>GetStockDatPro</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>StNameCodedict</span><span class=p>[</span><span class=n>stockName</span><span class=p>],</span><span class=bp>self</span><span class=o>.</span><span class=n>stockSdate_Val</span><span class=p>,</span> <span class=bp>self</span><span class=o>.</span><span class=n>stockEdate_Val</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>df_stockload</span><span class=o>.</span><span class=n>fillna</span><span class=p>(</span><span class=n>method</span><span class=o>=</span><span class=s1>&#39;bfill&#39;</span><span class=p>,</span><span class=n>inplace</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span><span class=c1>#后一个数据填充 NAN1</span>\n</span></span><span class=line><span class=cl>            <span class=n>dispCont_List</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=n>stockName</span><span class=o>+</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=o>+</span><span class=n>examp_trade</span><span class=o>.</span><span class=n>fit_pick</span><span class=p>(</span><span class=n>df_stockload</span><span class=o>.</span><span class=n>Close</span><span class=p>)</span><span class=o>+</span><span class=s1>&#39;</span><span class=se>\\n</span><span class=s1>&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=n>dispCont_List</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;&#34;&#34; 选股策略执行 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;&#34;&#34; 自定义提示框 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>        <span class=n>myPickStock</span> <span class=o>=</span> <span class=n>UserDialog</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>dispCont_List</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>myPickStock</span><span class=o>.</span><span class=n>ShowModal</span><span class=p>()</span> <span class=o>==</span> <span class=n>wx</span><span class=o>.</span><span class=n>ID_OK</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>pass</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=k>pass</span>\n</span></span><span class=line><span class=cl>        <span class=s2>&#34;&#34;&#34; 自定义提示框 &#34;&#34;&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>OnRadioBox_Indicator</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span><span class=n>event</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>IndicatInput_Val</span> <span class=o>=</span> <span class=bp>self</span><span class=o>.</span><span class=n>StratInputBox</span><span class=o>.</span><span class=n>GetStringSelection</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>class</span> <span class=nc>App</span><span class=p>(</span><span class=n>wx</span><span class=o>.</span><span class=n>App</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>def</span> <span class=nf>OnInit</span><span class=p>(</span><span class=bp>self</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>frame</span> <span class=o>=</span> <span class=n>Frame</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>frame</span><span class=o>.</span><span class=n>ProcessStock</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>frame</span><span class=o>.</span><span class=n>Show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=bp>self</span><span class=o>.</span><span class=n>SetTopWindow</span><span class=p>(</span><span class=bp>self</span><span class=o>.</span><span class=n>frame</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>return</span> <span class=kc>True</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=vm>__name__</span> <span class=o>==</span> <span class=s1>&#39;__main__&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>app</span> <span class=o>=</span> <span class=n>App</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>app</span><span class=o>.</span><span class=n>MainLoop</span><span class=p>()</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/pysx2/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysx2/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/pysx2/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E5%AE%9E%E8%AE%AD%E6%80%BB%E7%BB%93%E2%85%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E5%AE%9E%E8%AE%AD%E6%80%BB%E7%BB%93%E2%85%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/pysx2/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/pysx2/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/pysx2/ data-title=\"Python 实训总结Ⅱ\" data-hashtags=Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/pysx2/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/pysx2/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/pysx2/ data-title=\"Python 实训总结Ⅱ\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/pysx2/ data-title=\"Python 实训总结Ⅱ\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/pysx1/ class=post-nav-item rel=prev title=\"Python 实训总结Ⅰ\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 实训总结Ⅰ</a><a href=/posts/wamproot/ class=post-nav-item rel=next title=\"WAMPServer 自定义网站根目录等设置\">WAMPServer 自定义网站根目录等设置<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#619>6.19</a><ol><li><a href=#切片操作>切片操作</a></li><li><a href=#字符串>字符串</a><ol><li><a href=#python-原始字符串>python 原始字符串</a></li><li><a href=#长字符串>长字符串</a></li><li><a href=#用换行字符表示字符未结束>用、换行字符表示字符未结束</a></li></ol></li><li><a href=#格式化输出-format>格式化输出 format</a></li><li><a href=#多变量赋值与交换斐波那契数列>多变量赋值与交换（斐波那契数列）</a></li><li><a href=#笑傲江湖统计字符-dict-文件流>笑傲江湖统计字符 (dict, 文件流）</a></li><li><a href=#numpy-模块>numpy 模块</a></li><li><a href=#pandas-模块>pandas 模块</a></li></ol></li><li><a href=#620>6.20</a><ol><li><a href=#matplotlib-绘图>matplotlib 绘图</a></li><li><a href=#爬虫>爬虫</a></li></ol></li><li><a href=#621>6.21</a><ol><li><a href=#类>类</a></li><li><a href=#gui-设计-wxpython>GUI 设计 wxPython</a></li><li><a href=#talib-库的安装>talib 库的安装</a></li><li><a href=#选择排序递归版>选择排序递归版</a></li><li><a href=#机房上机系统自我实践>机房上机系统（自我实践）</a></li><li><a href=#量化交易代码分析与调试>量化交易代码分析与调试</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/22727014067af9c4cd8f1a834df835d1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/22727014067af9c4cd8f1a834df835d1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/pysx2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/pysx2/index.md",
    "content": "# Python 实训总结Ⅱ\n\n\n> 后面几天讲的有点杂，简单记录一下知识点。\n\n<!--more-->\n\n## 6.19\n\n> 这些知识点在课上都只是简单的提到了一下。  \n> 比如一些库的使用与安装都不会再课上详细讲解，需要课后再去研究。\n\n### [切片操作](https://www.jianshu.com/p/15715d6f4dad)\n\n列表切片操作\n\n### 字符串\n\n#### python 原始字符串\n\n```pythonthon\nprint(r\"D:\\three\\two\")\n```\n\n#### 长字符串\n\n用三个单引号或者双引号包裹，前后呼应，成双成对。\n\n#### 用、换行字符表示字符未结束\n\n### 格式化输出 format\n\n`\"=={}==\"`，`{}`表示占位符，其前后字符保持原样输出。\n\n```python TempConvert.py\n#TempConvert.py\nTempStr = input(\"请输入带有符号的温度值：\")\nif TempStr[-1] in ['F','f']:\n    C = (eval(TempStr[0:-1]) - 32)/1.8\n    print(\"转换后的温度是{:.2f}C\".format(C))\nelif TempStr[-1] in ['C','c']:\n    F = 1.8*eval(TempStr[0:-1]) + 32\n    print(\"转换后的温度是{:.2f}F\".format(F))\nelse:\n    print(\"输入格式错误\")\n```\n\n### 多变量赋值与交换（斐波那契数列）\n\npython 3.x 版本 `end=\"\"` 可使输出不换行\n\n```python\nprint(x, end=\"\")\n```\n\n```python 斐波那契数列\n#斐波那契数列\na, b = 1,1\nwhile a < 500: ## 输出不大于 500 的序列\n    print(a,end=\",\")\n    a,b = b,a + b #交换变量\n```\n\n### 笑傲江湖统计字符 (dict, 文件流）\n\n> 统计《笑傲江湖》小说中出现的所有中文字符及标点符号的数量，每个字符及数目间用冒号`:`隔开，例如\"笑：1024\"，将所有字符及数量的对应采用逗号分隔，以 CSV 文件格式保存到`“笑傲江湖--字符统计。txt”`文件中。注意，统计字符不包括空格和回车。\n\n> csv 文件格式： ‘,’逗号连接元素\n\n```python\nfi = open(\"data/笑傲江湖 - 网络版。txt\",\"r\",encoding=\"utf-8\")\nfo = open(\"data/笑傲江湖 - 字符统计。txt\",\"w\",encoding=\"utf-8\")\n\ntxt = fi.read() #打开文件\n#txt\nd = {}\n\nfor c in txt:\n    d[c] = d.get(c,0)+1\n\ndel d[' '] #删除字典中的空格和回车的键值对\ndel d['\\n']\n\nls = []\n\nfor key in d:\n    ls.append(\"{}:{}\".format(key,d[key]))\n\nfo.write(\",\".join(ls))\nfi.close()\nfo.close()\n```\n\n![文件读取及字符统计结果](images/tj.png)\n\n### numpy 模块\n\n**...**\n\n### pandas 模块\n\n**...**\n\n## 6.20\n\n### matplotlib 绘图\n\n```python 指数函数\nimport matplotlib.pyplot as plt\nimport numpy as np\nx = np.arange(-5,5,0.01)\ny = 2**x+1\nplt.plot(x,y)\nplt.title(\"y=2^x+1\",fontsize=24)\nplt.xlabel(\"X\",fontsize=14)\nplt.ylabel(\"Y\",fontsize=14)\nplt.tick_params(axis=\"both\",labelsize=14)\nplt.show()\n```\n\n![Y=2<sup>X</sup>+1](images/zhishu.png)\n\n### 爬虫\n\n举了一个金融界，炒股，获取数据的爬虫\n（今天没仔细听课，这数据爬过什么意思，咱不懂，咱也不敢问！）\n\n```python stock15\n#! /usr/bin/env python\n#-*- encoding: utf-8 -*-\n#author pythontab.com\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\nimport pandas_datareader.data as web\nimport datetime\n#import tushare as ts\n\ndf_stockload = web.DataReader(\"000001.SS\", \"yahoo\", datetime.datetime(2017,1,1), datetime.date.today())\n#print(type(datetime.datetime.now().strftime('%Y-%m-%d')))\n#df_stockload = ts.get_hist_data('sh',start='2017-01-01',end=datetime.datetime.now().strftime('%Y-%m-%d'))\nprint (df_stockload.columns)#查看列名\nprint (df_stockload.index)#查看索引\nprint (df_stockload.describe())#查看各列数据描述性统计\n\n#绘制移动平均线\ndf_stockload.Close.plot(c='b')\ndf_stockload.Close.rolling(window=30).mean().plot(c='r') #pd.rolling_mean(df_stockload.Close,window=30).plot(c='r')\ndf_stockload.Close.rolling(window=60).mean().plot(c='g') #pd.rolling_mean(df_stockload.Close,window=60).plot(c='g')\nplt.legend(['Close','30ave','60ave'],loc='best')\nplt.show()\n```\n\n```python 结果\nIndex(['High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close'], dtype='object')\nDatetimeIndex(['2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06',\n               '2017-01-09', '2017-01-10', '2017-01-11', '2017-01-12',\n               '2017-01-13', '2017-01-16',\n               ...\n               '2019-06-05', '2019-06-06', '2019-06-10', '2019-06-11',\n               '2019-06-12', '2019-06-13', '2019-06-14', '2019-06-19',\n               '2019-06-20', '2019-06-21'],\n              dtype='datetime64[ns]', name='Date', length=596, freq=None)\n              High          Low         Open        Close        Volume  \\\ncount   596.000000   596.000000   596.000000   596.000000  5.960000e+02\nmean   3076.147753  3039.201569  3056.960338  3060.169056  5.098201e+06\nstd     269.276147   273.757358   271.612122   272.072346  1.199107e+08\nmin    2488.479004  2440.906982  2446.019043  2464.363037  8.820000e+04\n25%    2845.308228  2800.168762  2825.239502  2827.754822  1.375250e+05\n50%    3153.184937  3118.613525  3134.300537  3139.085449  1.666500e+05\n75%    3280.115234  3244.825256  3265.322021  3268.600342  2.091250e+05\nmax    3587.031982  3534.195068  3563.639893  3559.465088  2.927580e+09\n\n         Adj Close\ncount   596.000000\nmean   3060.169056\nstd     272.072346\nmin    2464.363037\n25%    2827.754822\n50%    3139.085449\n75%    3268.600342\nmax    3559.465088\n```\n\n![生成的图](images/stock15.png)\n\n## 6.21\n\n### 类\n\n比第一天稍微仔细一点讲了一下类，有点需要注意：\n\n- `self`相当于`this`表示当前对象\n- python 类的所有函数的第一个参数都要写`self`参数，self 也可以是其他的比如`lrh`等字符替代，但是必须保持一致。\n- `__`表示私有的\n- class 的定义可以不加 (),() 内可写继承的父类\n\n### GUI 设计 [wxPython](https://blog.csdn.net/mist99/article/details/80742548)\n\n```bosh 安装\npip install wxPython\n```\n\n```python 导入\nimport wx\n```\n\n```python 基本架构\nimport wx #导入 wxPython 库\n\nclass Panel(wx.Panel):\n\n    def __init__(self,parent):\n\n        wx.Panel.__init__(self,parent=parent, id=-1)\n\n        pass\n\nclass Frame(wx.Frame):\n\n    def __init__(self):\n\n        wx.Frame.__init__(self, parent = None, title = u'量化软件', size=(1000,600), style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX)\n\n        self.DispPanel= Panel(self)\n\n        pass\n\nclass App(wx.App):\n\n    def OnInit(self):\n\n        self.frame = Frame()\n\n        self.frame.Show()\n\n        self.SetTopWindow(self.frame)\n\n        return True\n\nif __name__ == '__main__':\n\n    app = App()\n\n    app.MainLoop()\n```\n\n```python helloworld\nimport wx\n\napp = wx.App()\nwindow = wx.Frame(None, title=\"wxPython 你好！\", size=(400, 300))\npanel = wx.Panel(window)\nlabel = wx.StaticText(panel, label=\"Hello World\", pos=(100, 100))\nwindow.Show(True)\napp.MainLoop()\n```\n\n![运行结果](images/wxpython.png)\n\n### talib 库的安装\n\n[下载 whl 文件](https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib)\n\n```\npip install TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl\npip install TA-Lib\n```\n\n### 选择排序递归版\n\n```python\ndef SelectSort(L):\n    L=L[:]\n    if len(L)<=1:\n        return L\n    min = 0\n    for i in range(1,len(L)):\n        if L[i]<L[min]:\n            min = i\n    L[min],L[0] = L[0],L[min]\n    return [L[0]]+SelectSort(L[1:])\n\nL = [5,2,3,6,1,9,8,10,0]\nprint(SelectSort(L))\n```\n\n```python 结果\n[0, 1, 2, 3, 5, 6, 8, 9, 10]\n```\n\n### 机房上机系统（自我实践）\n\n```python 简单机房上机系统源码\nimport time\n\nclass student():\n    def __init__(self,stu_no=\"\",stu_name=\"\",stu_xi=\"\",stu_time=\"\"):\n        self.stu_no = stu_no\n        self.stu_name = stu_name\n        self.stu_xi = stu_xi\n        self.stu_time = stu_time\n\n    def print(self):\n        print(\"学号：\"+self.stu_no+\"\\t 姓名：\"+self.stu_name+\"\\t 系别：\"+self.stu_xi+\"\\t 机时 (h)：\"+self.stu_time)\n\n    def get_stu_name(self):\n        return self.stu_name\n\n    def get_stu_time(self):\n        return int(self.stu_time)\n\n    def set_stu_time(self,add_time):\n        self.stu_time = add_time\n\ndef menu():\n    print(\"\\t 机房上机系统 V0.1\")\n    print(\"********************************\")\n    print(\"\\t—>1. 录入学生信息\")\n    print(\"\\t—>2. 上机\")\n    print(\"\\t—>3. 下机\")\n    print(\"\\t—>4. 缴费\")\n    print(\"\\t—>5. 退出\")\n    print(\"********************************\")\n    select = eval(input(\"请输入序号：\"))\n    while select not in [1,2,3,4,5]:\n        print(\"输入错误，请重新输入！\")\n        select = eval(input(\"请输入序号：\"))\n    return select\n\ndef get_time(): #获取当前时间\n    return time.strftime(\"%H:%M:%S\", time.localtime())\n\ndef main():\n    ## 全局变量\n    text = [] ## 上机记录列表\n    start_time = \"\"\n    end_time = \"\"\n    sum = 0 ## 本系统按小时计费，不足一小时按一小时算\n    people = student()\n    online_flag = False\n    down_flag = False\n    input_flag = False\n\n    while True:\n        select = menu() ## 启用菜单\n\n        if select == 1:\n            if input_flag:\n                print(\"已录入，无需重复操作，缴费请输入 4:\")\n                continue\n            else:\n                input_flag = True\n                stu_no = input(\"请输入学号：\")\n                stu_name = input(\"请输入姓名：\")\n                stu_xi = input(\"请输入系别：\")\n                stu_time = input(\"请输入机时：\")\n                people = student(stu_no,stu_name,stu_xi,stu_time)\n                people.print()\n                continue\n\n        elif select == 2:\n            if not input_flag:\n                print(\"未录入学生信息，请录入！\")\n                continue\n            if not online_flag:\n                online_flag = True\n                start_time = get_time()\n                start_num = int(start_time[0:2])\n                #print(start_num)\n\n                text.append(\"上机时间：\"+start_time)\n                print(\"已上机！上机时间为：\"+start_time)\n                continue\n            else:\n                print(\"已上机！上机时间为：\"+start_time)\n                continue\n\n        elif select == 3:\n            if not online_flag:\n                print(\"还未上机，请上机！\")\n                continue\n            else:\n                end_time = get_time()\n                end_num = int(end_time[0:2])\n                sum = end_num - start_num\n                sum = sum if(sum>=0) else sum+24\n                sum = sum+1 if(sum==0) else sum\n                print(\"已下机！下机时间为：\"+end_time+\"\\n 上机时长 (h)：\"+str(sum)+\"\\t 剩余机时 (h)：\"+str(people.get_stu_time()-sum))\n                text.append(\"下机时间：\"+end_time+\"\\n 上机时长 (h)：\"+str(sum)+\"\\t\"+people.get_stu_name()+\"剩余机时 (h)：\"+str(people.get_stu_time()-sum))\n                people.set_stu_time(str(people.get_stu_time()-sum))\n                down_flag = True\n                continue\n\n        elif select == 4:\n            if not input_flag:\n                print(\"未录入学生信息，请录入！\")\n                continue\n            else:\n                people.print()\n                add_time = eval(input(\"请输入机时：\"))\n                people.set_stu_time(str(add_time+people.get_stu_time()))\n                people.print()\n\n        else:\n            if down_flag:\n                print(\"3s 后退出系统，感谢使用！\")\n                time.sleep(3) ## 延迟 3s，显示提示文字\n                break ## 退出系统 写入文件\n            else:\n                print(\"请下机！\")\n                continue\n\n    #写入 computer.txt 文件\n    fo = open(\"D:\\\\computer.txt\",\"w\",encoding=\"utf-8\")\n    fo.write(\"\\n\".join(text))\n    fo.close()\n\nif __name__==\"__main__\":\n    main()\n```\n\n### 量化交易代码分析与调试\n\n由于 python 的版本问题和一些库的导入问题所以还未调试成功，先挂上代码。以后改篇再论。\n\n```python 主要代码\n#! /usr/bin/env python\n#-*- encoding: utf-8 -*-\n#author pythontab.com\nimport wx\nimport wx.adv\nimport numpy as np\nimport pandas as pd\nimport pandas_datareader.data as web\nimport matplotlib\nimport matplotlib.pyplot as plt\nfrom matplotlib.figure import Figure\nimport matplotlib.dates as mdates\nimport mpl_finance as mpf\nfrom matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas\nimport matplotlib.gridspec as gridspec#分割子图\nimport datetime\nimport talib\nimport csv,os\nimport codecs\n\nfrom RedefPanelMod import MPL_Panel_Base,Loop_Panel_Base\nfrom StockDataMod import GetStockDatPro\nfrom IndicatStrateMod import Excave_Indic_Base, QuantPickTimeSys,FactorPickStockAng\n\nplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\nplt.rcParams['axes.unicode_minus']=False #用来正常显示负号\n\nclass UserDialog(wx.Dialog):## user-defined\n\n    def __init__(self,parent,text):\n        wx.Dialog.__init__(self,parent,-1,u\"选股提示\",size=(400,500),style=wx.CAPTION|wx.CLOSE_BOX|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX)\n\n        sizer = wx.BoxSizer(wx.VERTICAL)\n\n        pstock_Text = wx.StaticText(self, -1, u'选股策略筛选结果')\n        pstock_Text.SetFont(wx.Font(18,wx.DEFAULT,wx.NORMAL,wx.BOLD))\n        pstock_sure = wx.TextCtrl(self, -1, \"角度值：\\n\",size=(350,300),style = wx.TE_MULTILINE|wx.TE_READONLY)#多行 | 只读\n        pstock_sure.SetFont(wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.BOLD))\n\n        okbtn = wx.Button(self,wx.ID_OK,u\"确认\")\n        okbtn.SetDefault()\n\n        sizer.Add(pstock_Text,flag=wx.ALIGN_CENTER)\n        sizer.Add(pstock_sure,flag=wx.ALIGN_CENTER)\n        sizer.Add(okbtn,flag=wx.ALIGN_CENTER)\n        self.SetSizer(sizer)\n        for i in text:pstock_sure.AppendText(i)\n\n\nclass Frame(wx.Frame):\n    def __init__(self):\n        wx.Frame.__init__(self, parent = None, title = u'量化软件', size=(1500,800),\n                      style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX)\n        #创建显示区面板\n        self.DispPanel = MPL_Panel_Base(self)\n        self.BackPanel = Loop_Panel_Base(self)\n        self.am = self.DispPanel.am\n        self.vol = self.DispPanel.vol\n        self.devol = self.DispPanel.devol\n        self.macd = self.DispPanel.macd\n\n        #创建参数区面板\n        self.ParaPanel = wx.Panel(self,-1)\n\n        paraInput_Box = wx.StaticBox(self.ParaPanel, -1, u'参数输入')\n        paraInput_Sizer = wx.StaticBoxSizer(paraInput_Box, wx.VERTICAL)\n        self.StNameCodedict = {u\"开山股份\":\"300257.SZ\",u\"浙大网新\":\"600797.SS\",u\"水晶光电\":\"002273.SZ\", u\"高鸿股份\":\"000851.SZ\"}\n\n        #初始化股票代码变量\n        self.stockName_Val = u\"开山股份\"\n        self.stockCode_Val = self.StNameCodedict[self.stockName_Val]\n\n        self.stockName_CMBO = wx.ComboBox(self.ParaPanel, -1,self.stockName_Val, choices = list(self.StNameCodedict.keys()), style = wx.CB_READONLY|wx.CB_DROPDOWN) #股票名称\n        stockCode_Text = wx.StaticText(self.ParaPanel, -1, u'股票名称')\n\n       #策略选取\n        strate_Text = wx.StaticText(self.ParaPanel, -1, u'策略名称')\n        strate_Combo_Val = [u\"双趋势融合\", u\"阿尔法\", u\"布林带\"]\n        self.pickstrate_Val = u\"双趋势融合\"\n        self.pickstrate_CMBO = wx.ComboBox(self.ParaPanel, -1, self.pickstrate_Val, choices = strate_Combo_Val, style = wx.CB_READONLY|wx.CB_DROPDOWN) #策略名称\n\n        #日历控件选择数据周期\n        self.dpcEndTime = wx.adv.DatePickerCtrl(self.ParaPanel, -1,style = wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY|wx.adv.DP_ALLOWNONE)#结束时间\n        self.dpcStartTime = wx.adv.DatePickerCtrl(self.ParaPanel, -1,style = wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY|wx.adv.DP_ALLOWNONE)#起始时间\n        DateTimeNow = wx.DateTime.Now()#wx.DateTime 格式\"03/03/18 00:00:00\"\n       #DateTimeNow = datetime.datetime.fromtimestamp(wx.DateTime.Now().GetTicks())\n       #DateTimeNow = datetime.datetime.fromtimestamp(DateTimeNow)\n        self.dpcEndTime.SetValue(DateTimeNow)\n        DateTimeNow.SetYear(DateTimeNow.year-1)\n        self.dpcStartTime.SetValue(DateTimeNow)\n        stockData_Text = wx.StaticText(self.ParaPanel, -1, u'日期 (Start-End)')\n\n        #初始化时间变量\n        dateVal = self.dpcStartTime.GetValue()\n        self.stockSdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day)\n        dateVal = self.dpcEndTime.GetValue()\n        self.stockEdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day)\n\n        paraInput_Sizer.Add(stockCode_Text,proportion=0,flag=wx.EXPAND|wx.ALL,border=2)\n        paraInput_Sizer.Add(self.stockName_CMBO, 0, wx.EXPAND|wx.ALL|wx.CENTER, 2)\n        paraInput_Sizer.Add(stockData_Text,proportion=0,flag=wx.EXPAND|wx.ALL,border=2)\n        paraInput_Sizer.Add(self.dpcStartTime, 0, wx.EXPAND|wx.ALL|wx.CENTER, 2)\n        paraInput_Sizer.Add(self.dpcEndTime, 0, wx.EXPAND|wx.ALL|wx.CENTER, 2)\n        paraInput_Sizer.Add(strate_Text, 0, wx.EXPAND|wx.ALL|wx.CENTER, 2)\n        paraInput_Sizer.Add(self.pickstrate_CMBO, 0, wx.EXPAND|wx.ALL|wx.CENTER, 2)\n\n        RadioList = [\"不显示\",\"跳空缺口\", \"金叉/死叉\", \"N 日突破\"]\n        self.StratInputBox = wx.RadioBox(self.ParaPanel, -1, label=u'指标提示', choices=RadioList,majorDimension = 4, style = wx.RA_SPECIFY_ROWS)\n        self.StratInputBox.Bind(wx.EVT_RADIOBOX,self.OnRadioBox_Indicator)\n        #初始化指标变量\n        self.IndicatInput_Val = self.StratInputBox.GetStringSelection()\n\n        self.TextAInput = wx.TextCtrl(self.ParaPanel, -1, \"交易信息提示：\", style = wx.TE_MULTILINE|wx.TE_READONLY)#多行 | 只读\n\n        vboxnetA = wx.BoxSizer(wx.VERTICAL)#纵向 box\n        vboxnetA.Add(paraInput_Sizer,proportion=0,flag=wx.EXPAND|wx.BOTTOM,border=2) #proportion 参数控制容器尺寸比例\n        vboxnetA.Add(self.StratInputBox,proportion=0,flag=wx.EXPAND|wx.BOTTOM,border=2)\n        vboxnetA.Add(self.TextAInput,proportion=1,flag=wx.EXPAND|wx.ALL,border=2)\n        self.ParaPanel.SetSizer(vboxnetA)\n\n        #创建 Right 面板\n        self.CtrlPanel = wx.Panel(self,-1)\n        #创建 FlexGridSizer 布局网格\n        self.FlexGridSizer=wx.FlexGridSizer(rows=3, cols=1, vgap=3, hgap=3)\n\n        #行情按钮\n        self.Firmoffer = wx.Button(self.CtrlPanel,-1,\"行情\")\n        self.Firmoffer.Bind(wx.EVT_BUTTON,self.FirmEvent)#绑定行情按钮事件\n        #选股按钮\n        self.Stockpick = wx.Button(self.CtrlPanel,-1,\"选股\")\n        self.Stockpick.Bind(wx.EVT_BUTTON,self.PstockpEvent)#绑定选股按钮事件\n        #回测按钮\n        self.Backtrace = wx.Button(self.CtrlPanel,-1,\"回测\")\n        self.Backtrace.Bind(wx.EVT_BUTTON,self.BackEvent)#绑定回测按钮事件\n\n        #加入 Sizer 中\n        self.FlexGridSizer.Add(self.Firmoffer,proportion = 1, border = 5,flag = wx.ALL | wx.EXPAND)\n        self.FlexGridSizer.Add(self.Stockpick,proportion = 1, border = 5,flag = wx.ALL | wx.EXPAND)\n        self.FlexGridSizer.Add(self.Backtrace,proportion = 1, border = 5,flag = wx.ALL | wx.EXPAND)\n        self.FlexGridSizer.SetFlexibleDirection(wx.BOTH)\n\n        self.CtrlPanel.SetSizer(self.FlexGridSizer)\n\n        self.HBoxPanel = wx.BoxSizer(wx.HORIZONTAL)\n        self.HBoxPanel.Add(self.ParaPanel,proportion = 1.5, border = 2,flag = wx.EXPAND|wx.ALL)\n        self.HBoxPanel.Add(self.DispPanel,proportion = 8, border = 2,flag = wx.EXPAND|wx.ALL )\n        self.HBoxPanel.Add(self.CtrlPanel,proportion = 1, border = 2,flag = wx.EXPAND|wx.ALL )\n        self.SetSizer(self.HBoxPanel)\n\n    def ProcessStock(self):\n        #df_stockload = web.DataReader(\"600797.SS\", \"yahoo\", datetime.datetime(2017,1,1), datetime.date.today())\n        df_stockload = GetStockDatPro(self.stockCode_Val,self.stockSdate_Val, self.stockEdate_Val)\n\n        \"\"\" 绘制移动平均线图 \"\"\"\n        #self.am.plot(self.numic[0:self.butNum],self.close[0:self.butNum],'#0f0ff0',linewidth=1.0)\n\n        dispCont_List = []\n\n        examp_trade= Excave_Indic_Base()\n        if self.IndicatInput_Val == u\"金叉/死叉\":\n            dispCont_pd,dispCont_List = examp_trade.plot_Aver_Cross(df_stockload)\n            self.DispPanel.draw_avercross(df_stockload,dispCont_pd)\n        elif self.IndicatInput_Val == u\"跳空缺口\":\n            dispCont_pd,dispCont_List = examp_trade.plot_Jump_Thrd(df_stockload)\n            self.DispPanel.draw_jumpgap(df_stockload,dispCont_pd)\n        elif self.IndicatInput_Val == u\"N 日突破\":\n            dispCont_pd,dispCont_List = examp_trade.plot_Ndays_Break(df_stockload)\n            self.DispPanel.draw_ndaysbreak(df_stockload,dispCont_pd)\n        else:\n            dispCont_List = dispCont_List\n\n        self.TextAInput.SetValue(u\"指标提示信息如下：\"+'\\n')\n        for i in dispCont_List:self.TextAInput.AppendText(i)\n\n        numic = np.arange(0,len(df_stockload.index))\n        butNum = len(df_stockload.index)\n        self.DispPanel.xylabel_tick_lim(self.stockName_Val,df_stockload.index)\n        self.DispPanel.draw_subgraph(df_stockload,numic)\n\n    def ProcessLoop(self):\n\n        df_stockload = GetStockDatPro(self.stockCode_Val,self.stockSdate_Val, self.stockEdate_Val)\n        dispCont_List = []\n        if self.pickstrate_Val == u\"双趋势融合\":\n            #多趋势融合策略执行 \"\"\"\n            examp_trade= QuantPickTimeSys(df_stockload)\n            dispCont_List = examp_trade.run_factor_plot(self.BackPanel.trade,self.BackPanel.total,self.BackPanel.profit)\n        else:\n            #执行其他策略\n            pass\n\n        self.TextAInput.SetValue(u\"策略提示信息如下：\"+'\\n')\n        for i in dispCont_List:self.TextAInput.AppendText(i)\n        self.BackPanel.xylabel_tick_lim(self.stockName_Val)\n\n    def reFlashLoop(self):\n        self.BackPanel.clear_subgraph()#必须清理图形才能显示下一幅图\n        self.ProcessLoop()\n        self.BackPanel.update_subgraph()#必须刷新才能显示下一幅图\n\n    def reFlashFrame(self):\n        self.DispPanel.clear_subgraph()#必须清理图形才能显示下一幅图\n        self.ProcessStock()\n        self.DispPanel.update_subgraph()#必须刷新才能显示下一幅图\n\n    def FirmEvent(self,event):\n        #显示行情面板\n        self.HBoxPanel.Hide(self.BackPanel)\n        self.HBoxPanel.Replace(self.BackPanel,self.DispPanel)\n        self.HBoxPanel.Show(self.DispPanel)\n        #self.HBoxPanel.Remove(self.BackPanel)\n        self.SetSizer(self.HBoxPanel)\n        self.HBoxPanel.Layout()\n\n        #获取列表股票代码和起始时间\n        self.stockName_Val = self.stockName_CMBO.GetString(self.stockName_CMBO.GetSelection())\n        self.stockCode_Val = self.StNameCodedict[self.stockName_Val]\n\n        dateVal = self.dpcStartTime.GetValue()\n        self.stockSdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day)\n        dateVal = self.dpcEndTime.GetValue()\n        self.stockEdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day)\n\n        self.reFlashFrame()\n\n    def BackEvent(self,event):\n        #显示回测面板\n        self.HBoxPanel.Hide(self.DispPanel)\n        self.HBoxPanel.Replace(self.DispPanel,self.BackPanel)\n        self.HBoxPanel.Show(self.BackPanel)\n        #self.HBoxPanel.Remove(self.DispPanel)\n        self.SetSizer(self.HBoxPanel)\n        self.HBoxPanel.Layout()\n\n        #获取策略名称\n        self.pickstrate_Val = self.pickstrate_CMBO.GetString(self.pickstrate_CMBO.GetSelection())\n        self.reFlashLoop()\n\n    def PstockpEvent(self,event):\n        dispCont_List = []\n        \"\"\" 选股策略执行 \"\"\"\n        examp_trade= FactorPickStockAng()\n        for index, stockName in enumerate(self.StNameCodedict.keys()) :\n            print(\"stockName\",stockName,self.StNameCodedict[stockName])\n            df_stockload = GetStockDatPro(self.StNameCodedict[stockName],self.stockSdate_Val, self.stockEdate_Val)\n            df_stockload.fillna(method='bfill',inplace=True)#后一个数据填充 NAN1\n            dispCont_List.append(stockName+'\\n'+examp_trade.fit_pick(df_stockload.Close)+'\\n')\n        print(dispCont_List)\n        \"\"\" 选股策略执行 \"\"\"\n        \"\"\" 自定义提示框 \"\"\"\n        myPickStock = UserDialog(self,dispCont_List)\n        if myPickStock.ShowModal() == wx.ID_OK:\n            pass\n        else:\n            pass\n        \"\"\" 自定义提示框 \"\"\"\n\n    def OnRadioBox_Indicator(self,event):\n        self.IndicatInput_Val = self.StratInputBox.GetStringSelection()\n\n\nclass App(wx.App):\n    def OnInit(self):\n        self.frame = Frame()\n        self.frame.ProcessStock()\n        self.frame.Show()\n        self.SetTopWindow(self.frame)\n        return True\n\nif __name__ == '__main__':\n    app = App()\n    app.MainLoop()\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/pysx2/  \n\n"
  },
  {
    "path": "posts/qcloudcdn/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Node.js + GitHub Actions 自动刷新 CDN | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \"><meta name=keywords content='CDN,GitHub Actions,Node.js'><meta itemprop=name content=\"Node.js + GitHub Actions 自动刷新 CDN\"><meta itemprop=description content=\"问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\"><meta itemprop=datePublished content=\"2022-08-07T14:40:33+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"445\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CDN,GitHub Actions,Node.js\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/qcloudcdn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Node.js + GitHub Actions 自动刷新 CDN\"><meta property=\"og:description\" content=\"问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-07T14:40:33+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"CDN\"><meta property=\"article:tag\" content=\"GitHub Actions\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Node.js + GitHub Actions 自动刷新 CDN\"><meta name=twitter:description content=\"问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/qcloudcdn/ title=\"Node.js + GitHub Actions 自动刷新 CDN | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/newline/ title=不同系统的换行符的差异><link rel=next type=text/html href=https://lruihao.cn/posts/encryption-fe/ title=前端页面内容加密总结><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/qcloudcdn/index.md title=\"Node.js + GitHub Actions 自动刷新 CDN | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/qcloudcdn\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CDN, GitHub Actions, Node.js\",\"wordcount\":445,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/qcloudcdn\\/\",\"datePublished\":\"2022-08-07T14:40:33+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/qcloudcdn/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Node.js + GitHub Actions 自动刷新 CDN</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Node.js + GitHub Actions 自动刷新 CDN</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-07 14:40:33\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-07>2022-08-07</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"445 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Node.js + GitHub Actions 自动刷新 CDN\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装依赖>安装依赖</a></li><li><a href=#编写脚本>编写脚本</a></li><li><a href=#增加快捷指令>增加快捷指令</a></li><li><a href=#配置-github-actions>配置 GitHub Actions</a></li><li><a href=#参考资料>参考资料</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>问题<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。</div></div></div><h2 class=heading-element id=安装依赖><span>1 安装依赖</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install qcloud-cdn-node-sdk</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=编写脚本><span>2 编写脚本</span>\n<a href=#%e7%bc%96%e5%86%99%e8%84%9a%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim .scripts/qcloudcdn.js</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * Refresh Qcloud CDN cache\n</span></span></span><span class=line><span class=cl><span class=cm> * @command `node qcloudcdn.js $SECRET_ID $SECRET_KEY`\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>qcloudSDK</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;qcloud-cdn-node-sdk&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// Get the config from https://console.qcloud.com/capi\n</span></span></span><span class=line><span class=cl><span class=nx>qcloudSDK</span><span class=p>.</span><span class=nx>config</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>secretId</span><span class=o>:</span> <span class=nx>process</span><span class=o>?</span><span class=p>.</span><span class=nx>argv</span><span class=p>[</span><span class=mi>2</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>  <span class=nx>secretKey</span><span class=o>:</span> <span class=nx>process</span><span class=o>?</span><span class=p>.</span><span class=nx>argv</span><span class=p>[</span><span class=mi>3</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>qcloudSDK</span><span class=p>.</span><span class=nx>request</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>  <span class=s1>&#39;RefreshCdnDir&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// See https://cloud.tencent.com/document/api/228/3947\n</span></span></span><span class=line><span class=cl>    <span class=s1>&#39;dirs.0&#39;</span><span class=o>:</span> <span class=s1>&#39;https://lruihao.cn/&#39;</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>(</span><span class=nx>res</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>res</span><span class=p>.</span><span class=nx>code</span> <span class=o>&amp;&amp;</span> <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>res</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>);</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=增加快捷指令><span>3 增加快捷指令</span>\n<a href=#%e5%a2%9e%e5%8a%a0%e5%bf%ab%e6%8d%b7%e6%8c%87%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开 <code>package.json</code> 增加 <code>scripts</code>:</p><json-viewer value='\"{\\n  \\\"scripts\\\": {\\n    \\\"qcloudcdn\\\": \\\"node .scripts/qcloudcdn.js $SECRET_ID $SECRET_KEY\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>运行方式：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nv>SECRET_ID</span><span class=o>=</span>&lt;secretId&gt; <span class=nv>SECRET_KEY</span><span class=o>=</span>&lt;secretKey&gt; npm run qcloudcdn</span></span></code></pre></td></tr></table></div></div></div><details><summary>Mac OS 环境变量配置（可选）</summary><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim ~/.bash_profile</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Qcloud secret key-value</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>SECRET_ID</span><span class=o>=</span>&lt;secretId&gt;\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>SECRET_KEY</span><span class=o>=</span>&lt;secretKey&gt;</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>source</span> ~/.bash_profile</span></span></code></pre></td></tr></table></div></div></div><p>然后，在本地可简化指令为 <code>npm run qcloudcdn</code> 或者 <code>yarn qcloudcdn</code>。<br>等同于 <code>SECRET_ID=$SECRET_ID SECRET_KEY=$SECRET_KEY npm run qcloudcdn</code></p></details><h2 class=heading-element id=配置-github-actions><span>4 配置 GitHub Actions</span>\n<a href=#%e9%85%8d%e7%bd%ae-github-actions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在原有 GitHub Actions 中部署后增加一个步骤：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Refresh Qcloud CDN cache</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>env</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>SECRET_ID</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.SECRET_ID }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>SECRET_KEY</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.SECRET_KEY }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>npm run qcloudcdn</span></span></span></code></pre></td></tr></table></div></div></div><p>在仓库 Settings > Secrets > Actions 中增加两个 Secret: <code>SECRET_ID</code> 和 <code>SECRET_KEY</code>，原来有配置过的就不用了，比如，我原来的叫 <code>COS_SECRET_ID</code> 和 <code>COS_SECRET_ID</code>，那修改上面配置 env 中的变量名即可。</p><p>最后上传代码，以后更新仓库时就会自动刷新 CDN 缓存了。</p><h2 class=heading-element id=参考资料><span>5 参考资料</span>\n<a href=#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/QCloudCDN/CDN_API_DEMO/tree/master/Qcloud_CDN_API/nodejs target=_blank rel=\"external nofollow noopener noreferrer\">Qcloud_CDN_API/nodejs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><blockquote><p>本方案使用的旧的 API 请求方式，如果失效，可以参考新的 API，见 <a href=https://cloud.tencent.com/document/sdk target=_blank rel=\"external nofollow noopener noreferrer\">SDK 中心<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/qcloudcdn/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/qcloudcdn.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_node.js/qcloudcdn.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Node.js+%2B+GitHub+Actions+%E8%87%AA%E5%8A%A8%E5%88%B7%E6%96%B0+CDN&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cNode.js+%2B+GitHub+Actions+%E8%87%AA%E5%8A%A8%E5%88%B7%E6%96%B0+CDN%7c%0A%7cURL%7chttps://lruihao.cn/posts/qcloudcdn/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/qcloudcdn.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/qcloudcdn/ data-title=\"Node.js + GitHub Actions 自动刷新 CDN\" data-hashtags=\"CDN,GitHub Actions,Node.js\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/qcloudcdn/ data-hashtag=CDN><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/qcloudcdn/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/qcloudcdn/ data-title=\"Node.js + GitHub Actions 自动刷新 CDN\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/qcloudcdn/ data-title=\"Node.js + GitHub Actions 自动刷新 CDN\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cdn/ class=post-tag title=\"标签 - CDN\">CDN</a><a href=/tags/github-actions/ class=post-tag title=\"标签 - GitHub Actions\">GitHub Actions</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/newline/ class=post-nav-item rel=prev title=不同系统的换行符的差异><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>不同系统的换行符的差异</a><a href=/posts/encryption-fe/ class=post-nav-item rel=next title=前端页面内容加密总结>前端页面内容加密总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装依赖>安装依赖</a></li><li><a href=#编写脚本>编写脚本</a></li><li><a href=#增加快捷指令>增加快捷指令</a></li><li><a href=#配置-github-actions>配置 GitHub Actions</a></li><li><a href=#参考资料>参考资料</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0cf6fc71a2aa7176ca55c6bb96d83773.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0cf6fc71a2aa7176ca55c6bb96d83773.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/qcloudcdn/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/qcloudcdn/index.md",
    "content": "# Node.js + GitHub Actions 自动刷新 CDN\n\n\n{{< admonition question >}}\n腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\n{{< /admonition >}}\n\n<!--more-->\n\n## 安装依赖\n\n```bash\nnpm install qcloud-cdn-node-sdk\n```\n\n## 编写脚本\n\n```bash\nvim .scripts/qcloudcdn.js\n```\n\n```javascript\n/**\n * Refresh Qcloud CDN cache\n * @command `node qcloudcdn.js $SECRET_ID $SECRET_KEY`\n */\nconst qcloudSDK = require('qcloud-cdn-node-sdk');\n\n// Get the config from https://console.qcloud.com/capi\nqcloudSDK.config({\n  secretId: process?.argv[2],\n  secretKey: process?.argv[3]\n});\n\nqcloudSDK.request(\n  'RefreshCdnDir',\n  {\n    // See https://cloud.tencent.com/document/api/228/3947\n    'dirs.0': 'https://lruihao.cn/'\n  },\n  (res) => {\n    res.code && console.log(res);\n  }\n);\n```\n\n## 增加快捷指令\n\n打开 `package.json` 增加 `scripts`:\n\n```json\n{\n  \"scripts\": {\n    \"qcloudcdn\": \"node .scripts/qcloudcdn.js $SECRET_ID $SECRET_KEY\"\n  }\n}\n```\n\n运行方式：\n\n```bash\nSECRET_ID=<secretId> SECRET_KEY=<secretKey> npm run qcloudcdn\n```\n\n{{< details \"Mac OS 环境变量配置（可选）\" >}}\n\n```bash\nvim ~/.bash_profile\n```\n\n```bash\n# Qcloud secret key-value\nexport SECRET_ID=<secretId>\nexport SECRET_KEY=<secretKey>\n```\n\n```bash\nsource ~/.bash_profile\n```\n\n然后，在本地可简化指令为 `npm run qcloudcdn` 或者 `yarn qcloudcdn`。  \n等同于 `SECRET_ID=$SECRET_ID SECRET_KEY=$SECRET_KEY npm run qcloudcdn`\n{{< /details >}}\n\n## 配置 GitHub Actions\n\n在原有 GitHub Actions 中部署后增加一个步骤：\n\n```yaml\n- name: Refresh Qcloud CDN cache\n  env:\n    SECRET_ID: ${{ secrets.SECRET_ID }}\n    SECRET_KEY: ${{ secrets.SECRET_KEY }}\n  run: npm run qcloudcdn\n```\n\n在仓库 Settings > Secrets > Actions 中增加两个 Secret: `SECRET_ID` 和 `SECRET_KEY`，原来有配置过的就不用了，比如，我原来的叫 `COS_SECRET_ID` 和 `COS_SECRET_ID`，那修改上面配置 env 中的变量名即可。\n\n最后上传代码，以后更新仓库时就会自动刷新 CDN 缓存了。\n\n## 参考资料\n\n- [Qcloud_CDN_API/nodejs](https://github.com/QCloudCDN/CDN_API_DEMO/tree/master/Qcloud_CDN_API/nodejs)\n\n> 本方案使用的旧的 API 请求方式，如果失效，可以参考新的 API，见 [SDK 中心](https://cloud.tencent.com/document/sdk)。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/qcloudcdn/  \n\n"
  },
  {
    "path": "posts/qframe/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>匿名类在可视化界面中的应用 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\n\"><meta name=keywords content='GUI,Java'><meta itemprop=name content=\"匿名类在可视化界面中的应用\"><meta itemprop=description content=\"java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\"><meta itemprop=datePublished content=\"2019-03-15T22:31:28+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"294\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GUI,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/qframe/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"匿名类在可视化界面中的应用\"><meta property=\"og:description\" content=\"java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-15T22:31:28+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"GUI\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"匿名类在可视化界面中的应用\"><meta name=twitter:description content=\"java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/qframe/ title=\"匿名类在可视化界面中的应用 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/linkcard/ title=模仿知乎卡片式链接><link rel=next type=text/html href=https://lruihao.cn/posts/eclipseuse/ title=\"eclipse 的基本使用\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/qframe/index.md title=\"匿名类在可视化界面中的应用 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"匿名类在可视化界面中的应用\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/qframe\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"GUI, Java\",\"wordcount\":294,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/qframe\\/\",\"datePublished\":\"2019-03-15T22:31:28+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/qframe/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>匿名类在可视化界面中的应用</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>匿名类在可视化界面中的应用</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-15 22:31:28\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-15>2019-03-15</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"294 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=匿名类在可视化界面中的应用><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#代码>代码</a></li><li><a href=#结果>结果</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>java 中匿名类用的最多的地方就是可视化界面设计中，特别是将<code>事件监听器</code>注册到某个组件上的时候。</p></blockquote><h2 class=heading-element id=代码><span>1 代码</span>\n<a href=#%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.event.*</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.*</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>QFrame</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>JFrame</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>QFrame</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>JButton</span><span class=w> </span><span class=n>jbtnew</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>JButton</span><span class=p>(</span><span class=s>&#34;New&#34;</span><span class=p>);</span><span class=c1>//新建按钮</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>JPanel</span><span class=w> </span><span class=n>panel</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>JPanel</span><span class=p>();</span><span class=c1>//面板容器</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>jbtnew</span><span class=p>);</span><span class=c1>//添加组件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>add</span><span class=p>(</span><span class=n>panel</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>jbtnew</span><span class=p>.</span><span class=na>addActionListener</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>ActionListener</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=c1>//新建一匿名类，并将该对应的事件监听器注册到“新建”按钮 就 jbtnew 上</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=nd>@Override</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>actionPerformed</span><span class=p>(</span><span class=n>ActionEvent</span><span class=w> </span><span class=n>e</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>JOptionPane</span><span class=p>.</span><span class=na>showMessageDialog</span><span class=p>(</span><span class=kc>null</span><span class=p>,</span><span class=w> </span><span class=s>&#34;单击了新建按钮&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=s>&#34;lruihao.cn&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>});</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>JFrame</span><span class=w> </span><span class=n>frame</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>QFrame</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>frame</span><span class=p>.</span><span class=na>setTitle</span><span class=p>(</span><span class=s>&#34;QFrame&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>frame</span><span class=p>.</span><span class=na>setDefaultCloseOperation</span><span class=p>(</span><span class=n>JFrame</span><span class=p>.</span><span class=na>EXIT_ON_CLOSE</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>frame</span><span class=p>.</span><span class=na>setLocationRelativeTo</span><span class=p>(</span><span class=kc>null</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>frame</span><span class=p>.</span><span class=na>pack</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>frame</span><span class=p>.</span><span class=na>setVisible</span><span class=p>(</span><span class=kc>true</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>创建一个可视化界面，界面中有一个按钮，单击按钮显示“单击了新建按钮”。</p><h2 class=heading-element id=结果><span>2 结果</span>\n<a href=#%e7%bb%93%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/qframe/images/1.png title=结果 data-thumbnail=/posts/qframe/images/1.png data-sub-html=\"<h2>结果</h2>\"><img loading=lazy src=/posts/qframe/images/1.png alt=结果 height=432 width=968></a></p><h2 class=heading-element id=参考><span>3 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://www.cnblogs.com/fantasy01/p/3911488.html target=_blank rel=\"external nofollow noopener noreferrer\">JOptionPane 的使用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/qframe/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/qframe/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/qframe/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%8C%BF%E5%90%8D%E7%B1%BB%E5%9C%A8%E5%8F%AF%E8%A7%86%E5%8C%96%E7%95%8C%E9%9D%A2%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%8C%BF%E5%90%8D%E7%B1%BB%E5%9C%A8%E5%8F%AF%E8%A7%86%E5%8C%96%E7%95%8C%E9%9D%A2%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/qframe/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/qframe/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/qframe/ data-title=匿名类在可视化界面中的应用 data-hashtags=GUI,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/qframe/ data-hashtag=GUI><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/qframe/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/qframe/ data-title=匿名类在可视化界面中的应用 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/qframe/ data-title=匿名类在可视化界面中的应用><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gui/ class=post-tag title=\"标签 - GUI\">GUI</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/linkcard/ class=post-nav-item rel=prev title=模仿知乎卡片式链接><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>模仿知乎卡片式链接</a><a href=/posts/eclipseuse/ class=post-nav-item rel=next title=\"Eclipse 的基本使用\">Eclipse 的基本使用<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#代码>代码</a></li><li><a href=#结果>结果</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cb3a462071102ce7affe15497b674321.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cb3a462071102ce7affe15497b674321.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/qframe/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/qframe/index.md",
    "content": "# 匿名类在可视化界面中的应用\n\n\n> java 中匿名类用的最多的地方就是可视化界面设计中，特别是将`事件监听器`注册到某个组件上的时候。\n\n<!--more-->\n\n## 代码\n\n```java\npackage cn.lruihao;\n\nimport java.awt.event.*;\nimport javax.swing.*;\n\npublic class QFrame extends JFrame {\n  public QFrame() {\n    JButton jbtnew=new JButton(\"New\");//新建按钮\n    JPanel panel=new JPanel();//面板容器\n    panel.add(jbtnew);//添加组件\n    add(panel);\n    jbtnew.addActionListener(new ActionListener() {\n      //新建一匿名类，并将该对应的事件监听器注册到“新建”按钮 就 jbtnew 上\n      @Override\n      public void actionPerformed(ActionEvent e) {\n        JOptionPane.showMessageDialog(null, \"单击了新建按钮\");\n        System.out.println(\"lruihao.cn\");\n\n      }\n    });\n  }\n\n  public static void main(String[] args) {\n    JFrame frame=new QFrame();\n    frame.setTitle(\"QFrame\");\n    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n    frame.setLocationRelativeTo(null);\n    frame.pack();\n    frame.setVisible(true);\n\n  }\n\n}\n```\n\n创建一个可视化界面，界面中有一个按钮，单击按钮显示“单击了新建按钮”。\n\n## 结果\n\n![结果](images/1.png)\n\n## 参考\n\n- [JOptionPane 的使用](https://www.cnblogs.com/fantasy01/p/3911488.html)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/qframe/  \n\n"
  },
  {
    "path": "posts/qqxml/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>QQ 强制生成卡片式链接 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\n\"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"QQ 强制生成卡片式链接\"><meta itemprop=description content=\"以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\"><meta itemprop=datePublished content=\"2019-03-08T16:52:13+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"653\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/qqxml/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"QQ 强制生成卡片式链接\"><meta property=\"og:description\" content=\"以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-08T16:52:13+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"QQ 强制生成卡片式链接\"><meta name=twitter:description content=\"以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/qqxml/ title=\"QQ 强制生成卡片式链接 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cipanadmin/ title=磁盘存储器的管理><link rel=next type=text/html href=https://lruihao.cn/posts/ubuntutime/ title=\"win10,ubuntu 双系统时间不一致\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/qqxml/index.md title=\"QQ 强制生成卡片式链接 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"QQ 强制生成卡片式链接\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/qqxml\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":653,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/qqxml\\/\",\"datePublished\":\"2019-03-08T16:52:13+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/qqxml/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>QQ 强制生成卡片式链接</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>QQ 强制生成卡片式链接</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-08 16:52:13\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-08>2019-03-08</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"653 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"QQ 强制生成卡片式链接\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#批量式刷新>批量式刷新</a></li><li><a href=#单链接刷新>单链接刷新</a></li><li><a href=#demo>demo</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。<br>查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url <code>https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=</code> 于是就有了脚本刷新的想法。简陋的写了一下。</p></blockquote><h2 class=heading-element id=批量式刷新><span>1 批量式刷新</span>\n<a href=#%e6%89%b9%e9%87%8f%e5%bc%8f%e5%88%b7%e6%96%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=c1>//设置刷新前缀 url=首页地址（最好使用 https）\n</span></span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>base_src</span> <span class=o>=</span> <span class=s1>&#39;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=https://lruihao.cn&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>//用户地址\n</span></span></span><span class=line><span class=cl><span class=c1>//var custom_src = &#34;https://lruihao.cn&#34;;\n</span></span></span><span class=line><span class=cl><span class=c1>//初始化工作地址\n</span></span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>new_src</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>createArrayAndOpenWindow</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//alert(&#34;number function&#34;);\n</span></span></span><span class=line><span class=cl>  <span class=c1>//定义数组存储后缀\n</span></span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>numberArray</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Array</span><span class=p>(</span><span class=mi>4</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//存储后缀\n</span></span></span><span class=line><span class=cl>  <span class=nx>numberArray</span><span class=p>[</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=s1>&#39;/about/&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>numberArray</span><span class=p>[</span><span class=mi>1</span><span class=p>]</span> <span class=o>=</span> <span class=s1>&#39;/categories/&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>numberArray</span><span class=p>[</span><span class=mi>2</span><span class=p>]</span> <span class=o>=</span> <span class=s1>&#39;/tags/&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>numberArray</span><span class=p>[</span><span class=mi>3</span><span class=p>]</span> <span class=o>=</span> <span class=s1>&#39;/archives/&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//numberArray[4] = &#34;/guestbook/&#34;;\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//遍历\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=kd>var</span> <span class=nx>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=nx>i</span> <span class=o>&lt;</span> <span class=nx>numberArray</span><span class=p>.</span><span class=nx>length</span><span class=p>;</span> <span class=nx>i</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>new_src</span> <span class=o>=</span> <span class=nx>base_src</span> <span class=o>+</span> <span class=nx>numberArray</span><span class=p>[</span><span class=nx>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//打开该地址\n</span></span></span><span class=line><span class=cl>    <span class=nx>open_new</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//清空后缀\n</span></span></span><span class=line><span class=cl>    <span class=nx>new_src</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>//负责打开窗口，并关闭\n</span></span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>open_new</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>new_window</span> <span class=o>=</span> <span class=nb>window</span><span class=p>.</span><span class=nx>open</span><span class=p>(</span><span class=nx>new_src</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>,</span> <span class=s1>&#39;width=400,height=200&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//开启后 200ms（单页）关闭，速度自行把握数组越大时间越多\n</span></span></span><span class=line><span class=cl>    <span class=nx>new_window</span><span class=p>.</span><span class=nx>close</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span> <span class=mi>2000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>onload</span> <span class=o>=</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>createArrayAndOpenWindow</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//设置定时函数，疯狂刷新直到 xml 出现内容\n</span></span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>timer</span> <span class=o>=</span> <span class=nx>setInterval</span><span class=p>(</span><span class=s1>&#39;createArrayAndOpenWindow()&#39;</span><span class=p>,</span> <span class=mi>2000</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>};</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=单链接刷新><span>2 单链接刷新</span>\n<a href=#%e5%8d%95%e9%93%be%e6%8e%a5%e5%88%b7%e6%96%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>div</span> <span class=na>style</span><span class=o>=</span><span class=s>&#34;text-align: center;&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>input</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text&#34;</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;input&#34;</span> <span class=na>value</span><span class=o>=</span><span class=s>&#34;&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>input</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;button&#34;</span> <span class=na>value</span><span class=o>=</span><span class=s>&#34;疯狂刷新&#34;</span> <span class=na>onclick</span><span class=o>=</span><span class=s>&#34;yanzheng()&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=c1>//设置刷新前缀 url=首页地址（最好使用 https）https://lruihao.cn\n</span></span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>base_src</span> <span class=o>=</span> <span class=s1>&#39;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>//用户地址\n</span></span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>custom_src</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=c1>//初始化工作地址\n</span></span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>new_src</span> <span class=o>=</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>//负责打开窗口，并关闭\n</span></span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>open_new</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>new_window</span> <span class=o>=</span> <span class=nb>window</span><span class=p>.</span><span class=nx>open</span><span class=p>(</span><span class=nx>new_src</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>,</span> <span class=s1>&#39;width=400,height=200&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>setTimeout</span><span class=p>(</span><span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//开启后 200ms 关闭\n</span></span></span><span class=line><span class=cl>    <span class=nx>new_window</span><span class=p>.</span><span class=nx>close</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span> <span class=mi>200</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 获取验证用户输入\n</span></span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>yanzheng</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>Input</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;input&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>oValue</span> <span class=o>=</span> <span class=nx>Input</span><span class=p>.</span><span class=nx>value</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>custom_src</span> <span class=o>=</span> <span class=nx>oValue</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_src</span> <span class=o>=</span> <span class=nx>base_src</span> <span class=o>+</span> <span class=nx>custom_src</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nx>oValue</span> <span class=o>==</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;请输入地址&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kd>var</span> <span class=nx>timer</span> <span class=o>=</span> <span class=nx>setInterval</span><span class=p>(</span><span class=s1>&#39;open_new()&#39;</span><span class=p>,</span> <span class=mi>200</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=demo><span>3 demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><figure><a class=lightgallery target=_blank href=/posts/qqxml/images/1.png title=\"线上 demo 仅做参考请自行下载\" data-thumbnail=/posts/qqxml/images/1.png data-sub-html=\"<h2>线上 demo 仅做参考请自行下载</h2><p>线上 demo 仅做参考请自行下载</p>\"><img loading=lazy src=/posts/qqxml/images/1.png alt=\"线上 demo 仅做参考请自行下载\" height=584 width=1319></a><figcaption class=image-caption>线上 demo 仅做参考请自行下载</figcaption></figure><br><figure><a class=lightgallery target=_blank href=/posts/qqxml/images/2.png title=效果 data-thumbnail=/posts/qqxml/images/2.png data-sub-html=\"<h2>效果</h2><p>效果</p>\"><img loading=lazy src=/posts/qqxml/images/2.png alt=效果 height=412 width=306></a><figcaption class=image-caption>效果</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/qqxml/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/qqxml/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/qqxml/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20QQ+%E5%BC%BA%E5%88%B6%E7%94%9F%E6%88%90%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cQQ+%E5%BC%BA%E5%88%B6%E7%94%9F%E6%88%90%E5%8D%A1%E7%89%87%E5%BC%8F%E9%93%BE%E6%8E%A5%7c%0A%7cURL%7chttps://lruihao.cn/posts/qqxml/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/qqxml/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/qqxml/ data-title=\"QQ 强制生成卡片式链接\" data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/qqxml/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/qqxml/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/qqxml/ data-title=\"QQ 强制生成卡片式链接\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/qqxml/ data-title=\"QQ 强制生成卡片式链接\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cipanadmin/ class=post-nav-item rel=prev title=磁盘存储器的管理><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>磁盘存储器的管理</a><a href=/posts/ubuntutime/ class=post-nav-item rel=next title=\"Win10,ubuntu 双系统时间不一致\">Win10,ubuntu 双系统时间不一致<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#批量式刷新>批量式刷新</a></li><li><a href=#单链接刷新>单链接刷新</a></li><li><a href=#demo>demo</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e7910750ca8b31e5b33d54d82fee104a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e7910750ca8b31e5b33d54d82fee104a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/qqxml/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/qqxml/index.md",
    "content": "# QQ 强制生成卡片式链接\n\n\n> 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。  \n> 查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url `https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=` 于是就有了脚本刷新的想法。简陋的写了一下。\n\n<!--more-->\n\n## 批量式刷新\n\n```javascript 批量式刷新 js\n//设置刷新前缀 url=首页地址（最好使用 https）\nvar base_src = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=https://lruihao.cn';\n//用户地址\n//var custom_src = \"https://lruihao.cn\";\n//初始化工作地址\nvar new_src = '';\nfunction createArrayAndOpenWindow() {\n  //alert(\"number function\");\n  //定义数组存储后缀\n  var numberArray = new Array(4);\n  //存储后缀\n  numberArray[0] = '/about/';\n  numberArray[1] = '/categories/';\n  numberArray[2] = '/tags/';\n  numberArray[3] = '/archives/';\n  //numberArray[4] = \"/guestbook/\";\n\n  //遍历\n  for (var i = 0; i < numberArray.length; i++) {\n    new_src = base_src + numberArray[i];\n    //打开该地址\n    open_new();\n    //清空后缀\n    new_src = '';\n  }\n}\n\n//负责打开窗口，并关闭\nfunction open_new() {\n  var new_window = window.open(new_src, '', 'width=400,height=200');\n  setTimeout(function () {\n    //开启后 200ms（单页）关闭，速度自行把握数组越大时间越多\n    new_window.close();\n  }, 2000);\n}\n\nwindow.onload = function () {\n  createArrayAndOpenWindow();\n  //设置定时函数，疯狂刷新直到 xml 出现内容\n  var timer = setInterval('createArrayAndOpenWindow()', 2000);\n};\n```\n\n## 单链接刷新\n\n```html html\n<div style=\"text-align: center;\">\n  <input type=\"text\" id=\"input\" value=\"\" />\n  <input type=\"button\" value=\"疯狂刷新\" onclick=\"yanzheng()\" />\n</div>\n```\n\n```javascript 单链接刷新 js\n//设置刷新前缀 url=首页地址（最好使用 https）https://lruihao.cn\nvar base_src = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=';\n//用户地址\nvar custom_src = '';\n//初始化工作地址\nvar new_src = '';\n\n//负责打开窗口，并关闭\nfunction open_new() {\n  var new_window = window.open(new_src, '', 'width=400,height=200');\n  setTimeout(function () {\n    //开启后 200ms 关闭\n    new_window.close();\n  }, 200);\n}\n\n// 获取验证用户输入\nfunction yanzheng() {\n  var Input = document.getElementById('input');\n  var oValue = Input.value;\n  custom_src = oValue;\n  new_src = base_src + custom_src;\n  if (oValue == 0) {\n    alert('请输入地址');\n  } else {\n    var timer = setInterval('open_new()', 200);\n  }\n}\n```\n\n## demo\n\n![线上 demo 仅做参考请自行下载](images/1.png '线上 demo 仅做参考请自行下载')  \n![效果](images/2.png '效果')\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/qqxml/  \n\n"
  },
  {
    "path": "posts/qrcode/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\n\"><meta name=keywords content='pillow,numpy,imageio,Python'><meta itemprop=name content=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\"><meta itemprop=description content=\"Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\"><meta itemprop=datePublished content=\"2019-04-27T14:16:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1309\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"pillow,numpy,imageio,Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/qrcode/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\"><meta property=\"og:description\" content=\"Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-27T14:16:54+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"pillow\"><meta property=\"article:tag\" content=\"numpy\"><meta property=\"article:tag\" content=\"imageio\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\"><meta name=twitter:description content=\"Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/qrcode/ title=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/1thintervivew/ title=第一次面试经历><link rel=next type=text/html href=https://lruihao.cn/posts/javaexception/ title=\"模拟借书系统（java 异常练习）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/qrcode/index.md title=\"用 MyQR 制作专属动态二维码 (py 和 exe 版本） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/qrcode\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"pillow, numpy, imageio, Python\",\"wordcount\":1309,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/qrcode\\/\",\"datePublished\":\"2019-04-27T14:16:54+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/qrcode/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-27 14:16:54\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-27>2019-04-27</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1309 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#示例>示例</a></li><li><a href=#安装>安装</a></li><li><a href=#使用方法>使用方法</a><ol><li><a href=#命令行方式>命令行方式</a><ol><li><a href=#普通二维码>普通二维码</a></li><li><a href=#艺术二维码>艺术二维码</a></li><li><a href=#动态-gif-二维码>动态 GIF 二维码</a></li></ol></li><li><a href=#作为导入文件>作为导入文件</a></li></ol></li><li><a href=#使用提示>使用提示</a></li><li><a href=#可用字符>可用字符</a></li><li><a href=#依赖库>依赖库</a></li><li><a href=#运行环境>运行环境</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><strong>Python 二维码生成器</strong>是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 <a href=https://github.com/sylnsfar/qrcode/ target=_blank rel=\"external nofollow noopener noreferrer\">sylnsfar/qrcode<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，本文主要介绍记录一下 python 版本使用。exe 可以去 <a href=https://github.com/sylnsfar/qrcode_win target=_blank rel=\"external nofollow noopener noreferrer\">项目开源地址<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 下载，公众号文章后台回复关键词“qrcode”获取链接。</p></blockquote><p>可生成_普通二维码_、<em>带图片的艺术二维码（黑白与彩色）</em>、<em>动态二维码（黑白与彩色）</em>。</p><h2 class=heading-element id=示例><span>1 示例</span>\n<a href=#%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=text-center><p><a class=lightgallery target=_blank href=/posts/qrcode/images/1.gif title=1 data-thumbnail=/posts/qrcode/images/1.gif data-sub-html=\"<h2>1</h2>\"><img loading=lazy src=/posts/qrcode/images/1.gif alt=1 height=297 width=297></a>\n<a class=lightgallery target=_blank href=/posts/qrcode/images/2.png title=2 data-thumbnail=/posts/qrcode/images/2.png data-sub-html=\"<h2>2</h2>\"><img loading=lazy src=/posts/qrcode/images/2.png alt=2 height=333 width=333></a></p></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=kn>from</span> <span class=nn>MyQR</span> <span class=kn>import</span> <span class=n>myqr</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=n>version</span><span class=p>,</span> <span class=n>level</span><span class=p>,</span> <span class=n>qr_name</span> <span class=o>=</span> <span class=n>myqr</span><span class=o>.</span><span class=n>run</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=n>words</span><span class=o>=</span><span class=s1>&#39;https://lruihao.cn&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>version</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>level</span><span class=o>=</span><span class=s1>&#39;H&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>picture</span><span class=o>=</span><span class=s1>&#39;2.jpg&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>colorized</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>contrast</span><span class=o>=</span><span class=mf>1.0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>brightness</span><span class=o>=</span><span class=mf>1.0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>save_name</span><span class=o>=</span><span class=kc>None</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>save_dir</span><span class=o>=</span><span class=n>os</span><span class=o>.</span><span class=n>getcwd</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># help(myqr)</span>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/sylnsfar/qrcode/</span>\n</span></span><span class=line><span class=cl><span class=s1>&#39;&#39;&#39;\n</span></span></span><span class=line><span class=cl><span class=s1>Positional parameter\n</span></span></span><span class=line><span class=cl><span class=s1>   words: str # 链接或者文字\n</span></span></span><span class=line><span class=cl><span class=s1>\n</span></span></span><span class=line><span class=cl><span class=s1>Optional parameters\n</span></span></span><span class=line><span class=cl><span class=s1>   version: int, from 1 to 40  # 控制边长\n</span></span></span><span class=line><span class=cl><span class=s1>   level: str, just one of (&#39;L&#39;,&#39;M&#39;,&#39;Q&#39;,&#39;H&#39;) # 控制纠错水平，从左到右依次升高。\n</span></span></span><span class=line><span class=cl><span class=s1>   picutre: str, a filename of a image # 图片，需在同路径，默认 None\n</span></span></span><span class=line><span class=cl><span class=s1>   colorized: bool  # 是否彩色 默认 False\n</span></span></span><span class=line><span class=cl><span class=s1>   constrast: float # 对比度 默认 1.0\n</span></span></span><span class=line><span class=cl><span class=s1>   brightness: float # 亮度 默认 1.0\n</span></span></span><span class=line><span class=cl><span class=s1>   save_name: str, the output filename like &#39;example.png&#39; #控制文件名，默认 None,&#39;qrcode.png&#39;\n</span></span></span><span class=line><span class=cl><span class=s1>   save_dir: str, the output directory # 储存路径\n</span></span></span><span class=line><span class=cl><span class=s1>&#39;&#39;&#39;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=安装><span>2 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1># 通过 pip</span>\n</span></span><span class=line><span class=cl><span class=n>pip</span><span class=p>(</span><span class=mi>3</span><span class=p>)</span> <span class=n>install</span> <span class=n>myqr</span><span class=p>(</span><span class=ow>or</span> <span class=n>MyQR</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用方法><span>3 使用方法</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=命令行方式><span>3.1 命令行方式</span>\n<a href=#%e5%91%bd%e4%bb%a4%e8%a1%8c%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><em>（<strong>提示</strong>：如果你尚未安装 <a href=https://pypi.python.org/pypi/MyQR target=_blank rel=\"external nofollow noopener noreferrer\"><strong>MyQR</strong><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> ，以下内容请使用<code>python(3) myqr.py</code> 而非<code>myqr</code> 。）</em></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1># 概括</span>\n</span></span><span class=line><span class=cl><span class=n>myqr</span>   <span class=n>Words</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>v</span> <span class=p>{</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>,</span><span class=o>...</span><span class=p>,</span><span class=mi>40</span><span class=p>}]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>l</span> <span class=p>{</span><span class=n>L</span><span class=p>,</span><span class=n>M</span><span class=p>,</span><span class=n>Q</span><span class=p>,</span><span class=n>H</span><span class=p>}]</span>\n</span></span><span class=line><span class=cl>        <span class=p>[</span><span class=o>-</span><span class=n>n</span> <span class=n>output</span><span class=o>-</span><span class=n>filename</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>d</span> <span class=n>output</span><span class=o>-</span><span class=n>directory</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>p</span> <span class=n>picture_file</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>c</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>con</span> <span class=n>contrast</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=o>-</span><span class=n>bri</span> <span class=n>brightness</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><ul><li>普通二维码 介绍了 <code>Words</code>, <code>-v</code>, <code>-l</code>, <code>-n</code>, <code>-d</code></li><li>艺术二维码 介绍了 <code>-p</code>, <code>-c</code>, <code>-con</code>, <code>-bri</code></li><li>动态 GIF 二维码 介绍了动态的生成方法和注意点</li></ul><h4 class=heading-element id=普通二维码><span>3.1.1 普通二维码</span>\n<a href=#%e6%99%ae%e9%80%9a%e4%ba%8c%e7%bb%b4%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#1 Words\n</span></span></span><span class=line><span class=cl>myqr https://github.com</span></span></code></pre></td></tr></table></div></div></div><ul><li>在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#2 -v, -l\n</span></span></span><span class=line><span class=cl>myqr https://github.com -v 10 -l Q</span></span></code></pre></td></tr></table></div></div></div><ul><li><p><strong>默认边长</strong>是取决于你输入的信息的长度和使用的纠错等级；</p><p>而<strong>默认纠错等级</strong>是最高级的 H。</p></li><li><p><strong>自定义</strong>：如果想要控制边长和纠错水平就使用 <code>-v</code> 和 <code>-l</code> 参数。</p><p><code>-v</code> 控制边长，范围是<strong>1 至 40</strong>，数字越大边长越大；</p><p><code>-l</code> 控制纠错水平，范围是<strong>L、M、Q、H</strong>，从左到右依次升高。</p></li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#3 -n, -d\n</span></span></span><span class=line><span class=cl>myqr https://github.com -n github_qr.jpg -d .../paths/</span></span></code></pre></td></tr></table></div></div></div><ul><li><p><strong>默认输出文件名</strong>是“qrcode.png &ldquo;，而<strong>默认存储位置</strong>是当前目录。</p></li><li><p>自定义：可以自己定义输出名称和位置。<strong>注意</strong>同名文件会覆盖旧的。</p><p><code>-n</code> 控制文件名，格式可以是 <code>.jpg</code>， <code>.png</code> ，<code>.bmp</code> ，<code>.gif</code> ；</p><p><code>-d</code> 控制位置。</p></li></ul><h4 class=heading-element id=艺术二维码><span>3.1.2 艺术二维码</span>\n<a href=#%e8%89%ba%e6%9c%af%e4%ba%8c%e7%bb%b4%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#1 -p\n</span></span></span><span class=line><span class=cl>myqr https://github.com -p github.jpg</span></span></code></pre></td></tr></table></div></div></div><ul><li>参数<code>-p</code> 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张<strong>黑白</strong>图片。</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#2 -c\n</span></span></span><span class=line><span class=cl>myqr https://github.com -p github.jpg -c</span></span></code></pre></td></tr></table></div></div></div><ul><li>加上参数 <code>-c</code> 可以使产生的图片由黑白变为<strong>彩色</strong>的。</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh>#3 -con, -bri\n</span></span></span><span class=line><span class=cl>myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6</span></span></code></pre></td></tr></table></div></div></div><ul><li><p>参数<code>-con</code> 用以调节图片的<strong>对比度</strong>，1.0 表示原始图片，更小的值表示更低对比度，更大反之。<strong>默认为 1.0</strong>。</p></li><li><p>参数 <code>-bri</code> 用来调节图片的<strong>亮度</strong>，其余用法和取值与 <code>-con</code> 相同。</p></li></ul><h4 class=heading-element id=动态-gif-二维码><span>3.1.3 动态 GIF 二维码</span>\n<a href=#%e5%8a%a8%e6%80%81-gif-%e4%ba%8c%e7%bb%b4%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 <code>.gif</code> 格式的图片即可生成黑白或者彩色的动态二维码。但<strong>注意</strong>如果使用了 <code>-n</code> 参数自定义输出的文件名，切记其格式也必须是 <code>.gif</code> 格式。</p><h3 class=heading-element id=作为导入文件><span>3.2 作为导入文件</span>\n<a href=#%e4%bd%9c%e4%b8%ba%e5%af%bc%e5%85%a5%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1># 安装模块后</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>MyQR</span> <span class=kn>import</span> <span class=n>myqr</span>\n</span></span><span class=line><span class=cl><span class=n>version</span><span class=p>,</span> <span class=n>level</span><span class=p>,</span> <span class=n>qr_name</span> <span class=o>=</span> <span class=n>myqr</span><span class=o>.</span><span class=n>run</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>  <span class=n>words</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>version</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>level</span><span class=o>=</span><span class=s1>&#39;H&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>picture</span><span class=o>=</span><span class=kc>None</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>colorized</span><span class=o>=</span><span class=kc>False</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>contrast</span><span class=o>=</span><span class=mf>1.0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>brightness</span><span class=o>=</span><span class=mf>1.0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>save_name</span><span class=o>=</span><span class=kc>None</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=n>save_dir</span><span class=o>=</span><span class=n>os</span><span class=o>.</span><span class=n>getcwd</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><em>以下各个参数已经在<strong>上文命令行方式</strong>有所介绍</em></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-python\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-python data-lang=python><span class=line><span class=cl><span class=c1># help(myqr)</span>\n</span></span><span class=line><span class=cl><span class=n>Positional</span> <span class=n>parameter</span>\n</span></span><span class=line><span class=cl>   <span class=n>words</span><span class=p>:</span> <span class=nb>str</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>Optional</span> <span class=n>parameters</span>\n</span></span><span class=line><span class=cl>   <span class=n>version</span><span class=p>:</span> <span class=nb>int</span><span class=p>,</span> <span class=kn>from</span> <span class=mi>1</span> <span class=n>to</span> <span class=mi>40</span>\n</span></span><span class=line><span class=cl>   <span class=n>level</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>just</span> <span class=n>one</span> <span class=n>of</span> <span class=p>(</span><span class=s1>&#39;L&#39;</span><span class=p>,</span><span class=s1>&#39;M&#39;</span><span class=p>,</span><span class=s1>&#39;Q&#39;</span><span class=p>,</span><span class=s1>&#39;H&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>   <span class=n>picutre</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>a</span> <span class=n>filename</span> <span class=n>of</span> <span class=n>a</span> <span class=n>image</span>\n</span></span><span class=line><span class=cl>   <span class=n>colorized</span><span class=p>:</span> <span class=nb>bool</span>\n</span></span><span class=line><span class=cl>   <span class=n>constrast</span><span class=p>:</span> <span class=nb>float</span>\n</span></span><span class=line><span class=cl>   <span class=n>brightness</span><span class=p>:</span> <span class=nb>float</span>\n</span></span><span class=line><span class=cl>   <span class=n>save_name</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>the</span> <span class=n>output</span> <span class=n>filename</span> <span class=n>like</span> <span class=s1>&#39;example.png&#39;</span>\n</span></span><span class=line><span class=cl>   <span class=n>save_dir</span><span class=p>:</span> <span class=nb>str</span><span class=p>,</span> <span class=n>the</span> <span class=n>output</span> <span class=n>directory</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用提示><span>4 使用提示</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%8f%90%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><p>请采用<strong>正方形</strong>或近似正方形的图片</p></li><li><p>建议在图片尺寸大的时候使用 <code>-v</code> 的值也应该<strong>适当</strong>变大。</p></li></ul><h2 class=heading-element id=可用字符><span>5 可用字符</span>\n<a href=#%e5%8f%af%e7%94%a8%e5%ad%97%e7%ac%a6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><p>数字 0 到 9</p></li><li><p>大小写的英文字母</p></li><li><p>常用<strong>英文标点符号</strong>和空格</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-console\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-console data-lang=console><span class=line><span class=cl><span class=go>· , . : ; + - * / \\ ~ ! @ # $ % ^ &amp; ` &#39; = &lt; &gt; [ ] ( ) ? _ { } | and  (space)\n</span></span></span></code></pre></td></tr></table></div></div></div></li></ul><h2 class=heading-element id=依赖库><span>6 依赖库</span>\n<a href=#%e4%be%9d%e8%b5%96%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://pypi.python.org/pypi/Pillow/3.3.1 target=_blank rel=\"external nofollow noopener noreferrer\">pillow<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://pypi.python.org/pypi/numpy target=_blank rel=\"external nofollow noopener noreferrer\">numpy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://pypi.python.org/pypi/imageio target=_blank rel=\"external nofollow noopener noreferrer\">imageio<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=运行环境><span>7 运行环境</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%8e%af%e5%a2%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Linux, Python 3</li><li>Windows, Python 3</li><li>Mac, Python 3</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/qrcode/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/qrcode/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/qrcode/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%94%A8+MyQR+%E5%88%B6%E4%BD%9C%E4%B8%93%E5%B1%9E%E5%8A%A8%E6%80%81%E4%BA%8C%E7%BB%B4%E7%A0%81+%28py+%E5%92%8C+exe+%E7%89%88%E6%9C%AC%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%94%A8+MyQR+%E5%88%B6%E4%BD%9C%E4%B8%93%E5%B1%9E%E5%8A%A8%E6%80%81%E4%BA%8C%E7%BB%B4%E7%A0%81+%28py+%E5%92%8C+exe+%E7%89%88%E6%9C%AC%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/qrcode/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/qrcode/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/qrcode/ data-title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\" data-hashtags=pillow,numpy,imageio,Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/qrcode/ data-hashtag=pillow><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/qrcode/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/qrcode/ data-title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/qrcode/ data-title=\"用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/pillow/ class=post-tag title=\"标签 - pillow\">pillow</a><a href=/tags/numpy/ class=post-tag title=\"标签 - numpy\">numpy</a><a href=/tags/imageio/ class=post-tag title=\"标签 - imageio\">imageio</a><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/1thintervivew/ class=post-nav-item rel=prev title=第一次面试经历><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>第一次面试经历</a><a href=/posts/javaexception/ class=post-nav-item rel=next title=\"模拟借书系统（java 异常练习）\">模拟借书系统（java 异常练习）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#示例>示例</a></li><li><a href=#安装>安装</a></li><li><a href=#使用方法>使用方法</a><ol><li><a href=#命令行方式>命令行方式</a><ol><li><a href=#普通二维码>普通二维码</a></li><li><a href=#艺术二维码>艺术二维码</a></li><li><a href=#动态-gif-二维码>动态 GIF 二维码</a></li></ol></li><li><a href=#作为导入文件>作为导入文件</a></li></ol></li><li><a href=#使用提示>使用提示</a></li><li><a href=#可用字符>可用字符</a></li><li><a href=#依赖库>依赖库</a></li><li><a href=#运行环境>运行环境</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f88a1617bec23310e493b5e3eda78ef5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f88a1617bec23310e493b5e3eda78ef5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/qrcode/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/qrcode/index.md",
    "content": "# 用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）\n\n\n> **Python 二维码生成器**是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 [sylnsfar/qrcode](https://github.com/sylnsfar/qrcode/)，本文主要介绍记录一下 python 版本使用。exe 可以去 [项目开源地址](https://github.com/sylnsfar/qrcode_win) 下载，公众号文章后台回复关键词“qrcode”获取链接。\n\n可生成_普通二维码_、_带图片的艺术二维码（黑白与彩色）_、_动态二维码（黑白与彩色）_。\n\n<!--more-->\n\n## 示例\n\n<!-- markdownlint-disable MD033 -->\n\n<div class=\"text-center\">\n\n![1](images/1.gif)\n![2](images/2.png)\n\n</div>\n\n```python\nfrom MyQR import myqr\nimport os\nversion, level, qr_name = myqr.run(\n    words='https://lruihao.cn',\n    version=1,\n    level='H',\n    picture='2.jpg',\n    colorized=True,\n    contrast=1.0,\n    brightness=1.0,\n    save_name=None,\n    save_dir=os.getcwd()\n)\n\n# help(myqr)\n# https://github.com/sylnsfar/qrcode/\n'''\nPositional parameter\n   words: str # 链接或者文字\n\nOptional parameters\n   version: int, from 1 to 40  # 控制边长\n   level: str, just one of ('L','M','Q','H') # 控制纠错水平，从左到右依次升高。\n   picutre: str, a filename of a image # 图片，需在同路径，默认 None\n   colorized: bool  # 是否彩色 默认 False\n   constrast: float # 对比度 默认 1.0\n   brightness: float # 亮度 默认 1.0\n   save_name: str, the output filename like 'example.png' #控制文件名，默认 None,'qrcode.png'\n   save_dir: str, the output directory # 储存路径\n'''\n```\n\n## 安装\n\n```python\n# 通过 pip\npip(3) install myqr(or MyQR)\n```\n\n## 使用方法\n\n### 命令行方式\n\n*（**提示**：如果你尚未安装 [**MyQR**](https://pypi.python.org/pypi/MyQR) ，以下内容请使用`python(3) myqr.py` 而非`myqr` 。）*\n\n```python\n# 概括\nmyqr   Words\n    [-v {1,2,3,...,40}]\n    [-l {L,M,Q,H}]\n        [-n output-filename]\n    [-d output-directory]\n    [-p picture_file]\n    [-c]\n    [-con contrast]\n    [-bri brightness]\n```\n\n- 普通二维码 介绍了 `Words`, `-v`, `-l`, `-n`, `-d`\n- 艺术二维码 介绍了 `-p`, `-c`, `-con`, `-bri`\n- 动态 GIF 二维码 介绍了动态的生成方法和注意点\n\n#### 普通二维码\n\n```markdown\n#1 Words\nmyqr https://github.com\n```\n\n- 在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。\n\n```markdown\n#2 -v, -l\nmyqr https://github.com -v 10 -l Q\n```\n\n- **默认边长**是取决于你输入的信息的长度和使用的纠错等级；\n\n  而**默认纠错等级**是最高级的 H。\n\n- **自定义**：如果想要控制边长和纠错水平就使用 `-v` 和 `-l` 参数。\n\n  `-v` 控制边长，范围是**1 至 40**，数字越大边长越大；\n\n  `-l` 控制纠错水平，范围是**L、M、Q、H**，从左到右依次升高。\n\n```markdown\n#3 -n, -d\nmyqr https://github.com -n github_qr.jpg -d .../paths/\n```\n\n- **默认输出文件名**是“qrcode.png \"，而**默认存储位置**是当前目录。\n\n- 自定义：可以自己定义输出名称和位置。**注意**同名文件会覆盖旧的。\n\n  `-n` 控制文件名，格式可以是 `.jpg`， `.png` ，`.bmp` ，`.gif` ；\n\n  `-d` 控制位置。\n\n#### 艺术二维码\n\n```markdown\n#1 -p\nmyqr https://github.com -p github.jpg\n```\n\n- 参数`-p` 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张**黑白**图片。\n\n```markdown\n#2 -c\nmyqr https://github.com -p github.jpg -c\n```\n\n- 加上参数 `-c` 可以使产生的图片由黑白变为**彩色**的。\n\n```markdown\n#3 -con, -bri\nmyqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6\n```\n\n- 参数`-con` 用以调节图片的**对比度**，1.0 表示原始图片，更小的值表示更低对比度，更大反之。**默认为 1.0**。\n\n- 参数 `-bri` 用来调节图片的**亮度**，其余用法和取值与 `-con` 相同。\n\n#### 动态 GIF 二维码\n\n动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 `.gif` 格式的图片即可生成黑白或者彩色的动态二维码。但**注意**如果使用了 `-n` 参数自定义输出的文件名，切记其格式也必须是 `.gif` 格式。\n\n### 作为导入文件\n\n```python\n# 安装模块后\nfrom MyQR import myqr\nversion, level, qr_name = myqr.run(\n  words,\n    version=1,\n    level='H',\n    picture=None,\n    colorized=False,\n    contrast=1.0,\n    brightness=1.0,\n    save_name=None,\n    save_dir=os.getcwd()\n  )\n```\n\n*以下各个参数已经在**上文命令行方式**有所介绍*\n\n```python\n# help(myqr)\nPositional parameter\n   words: str\n\nOptional parameters\n   version: int, from 1 to 40\n   level: str, just one of ('L','M','Q','H')\n   picutre: str, a filename of a image\n   colorized: bool\n   constrast: float\n   brightness: float\n   save_name: str, the output filename like 'example.png'\n   save_dir: str, the output directory\n```\n\n## 使用提示\n\n- 请采用**正方形**或近似正方形的图片\n\n- 建议在图片尺寸大的时候使用 `-v` 的值也应该**适当**变大。\n\n## 可用字符\n\n- 数字 0 到 9\n\n- 大小写的英文字母\n\n- 常用**英文标点符号**和空格\n\n  ```console\n  · , . : ; + - * / \\ ~ ! @ # $ % ^ & ` ' = < > [ ] ( ) ? _ { } | and  (space)\n  ```\n\n## 依赖库\n\n- [pillow](https://pypi.python.org/pypi/Pillow/3.3.1)\n- [numpy](https://pypi.python.org/pypi/numpy)\n- [imageio](https://pypi.python.org/pypi/imageio)\n\n## 运行环境\n\n- Linux, Python 3\n- Windows, Python 3\n- Mac, Python 3\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/qrcode/  \n\n"
  },
  {
    "path": "posts/recent-posts/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>在搜索、文章底部、侧栏添加最近文章模块 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 首先在主题配置文件添加以下关键字\n1 2 3 4 5 6 7 8 recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block 1 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\n\"><meta name=keywords content='Hexo'><meta itemprop=name content=\"在搜索、文章底部、侧栏添加最近文章模块\"><meta itemprop=description content=\"首先在主题配置文件添加以下关键字\n1 2 3 4 5 6 7 8 recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block 1 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\"><meta itemprop=datePublished content=\"2019-01-16T17:50:52+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"570\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/recent-posts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"在搜索、文章底部、侧栏添加最近文章模块\"><meta property=\"og:description\" content=\"首先在主题配置文件添加以下关键字\n1 2 3 4 5 6 7 8 recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block 1 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-16T17:50:52+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"在搜索、文章底部、侧栏添加最近文章模块\"><meta name=twitter:description content=\"首先在主题配置文件添加以下关键字\n1 2 3 4 5 6 7 8 recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block 1 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/recent-posts/ title=\"在搜索、文章底部、侧栏添加最近文章模块 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/mathclass/ title=\"java 猜数字小游戏（Math 类）\"><link rel=next type=text/html href=https://lruihao.cn/posts/java-arrays/ title=\"Arrays 类及基本使用\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/recent-posts/index.md title=\"在搜索、文章底部、侧栏添加最近文章模块 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/recent-posts\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo\",\"wordcount\":570,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/recent-posts\\/\",\"datePublished\":\"2019-01-16T17:50:52+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/recent-posts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>在搜索、文章底部、侧栏添加最近文章模块</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>在搜索、文章底部、侧栏添加最近文章模块</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-16 17:50:52\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-16>2019-01-16</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"570 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=在搜索、文章底部、侧栏添加最近文章模块><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#侧栏>侧栏</a></li><li><a href=#搜索结果处添加>搜索结果处添加</a></li><li><a href=#文章尾部添加>文章尾部添加</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>首先在主题配置文件添加以下关键字</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>recent_posts:\n</span></span><span class=line><span class=cl>  enable: true\n</span></span><span class=line><span class=cl>  search: true\n</span></span><span class=line><span class=cl>  post: false\n</span></span><span class=line><span class=cl>  sidebar: false\n</span></span><span class=line><span class=cl>  icon: history\n</span></span><span class=line><span class=cl>  title: 近期文章\n</span></span><span class=line><span class=cl>  layout: block</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=侧栏><span>1 侧栏</span>\n<a href=#%e4%be%a7%e6%a0%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <code>next/layout/_macro/sidebar.swig</code> 中的 <code>if theme.links</code> 对应的 <code>endif</code> 后面。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n</span></span><span class=line><span class=cl>  &lt;div class=&#34;links-of-blogroll motion-element {{ &#34;links-of-blogroll-&#34; + theme.recent_posts.layout  }}&#34;&gt;\n</span></span><span class=line><span class=cl>   &lt;div class=&#34;links-of-blogroll-title&#34;&gt;\n</span></span><span class=line><span class=cl>     &lt;i class=&#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;\n</span></span><span class=line><span class=cl>     {{ theme.recent_posts.title }}\n</span></span><span class=line><span class=cl>   &lt;/div&gt;\n</span></span><span class=line><span class=cl>   &lt;ul class=&#34;links-of-blogroll-list&#34;&gt;\n</span></span><span class=line><span class=cl>     {% set posts = site.posts.sort(&#39;-date&#39;) %}\n</span></span><span class=line><span class=cl>     {% for post in posts.slice(&#39;0&#39;, &#39;3&#39;) %}\n</span></span><span class=line><span class=cl>       &lt;li&gt;\n</span></span><span class=line><span class=cl>         &lt;a href=&#34;{{ url_for(post.path) }}&#34; title=&#34;{{ post.title }}&#34; target=&#34;_blank&#34;&gt;{{ post.title }}&lt;/a&gt;\n</span></span><span class=line><span class=cl>       &lt;/li&gt;\n</span></span><span class=line><span class=cl>     {% endfor %}\n</span></span><span class=line><span class=cl>   &lt;/ul&gt;\n</span></span><span class=line><span class=cl> &lt;/div&gt;\n</span></span><span class=line><span class=cl>{% endif %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=搜索结果处添加><span>2 搜索结果处添加</span>\n<a href=#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>找到路径<code>H:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search</code>下<code>localsearch.swig</code>文件<br>把<code>&lt;div id=\"local-search-result\">&lt;/div></code>修改成以下内容（这里显示 15 篇）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;div</span> <span class=na>id=</span><span class=s>&#34;local-search-result&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>  {% if theme.recent_posts.enable and theme.recent_posts.search %}\n</span></span><span class=line><span class=cl>    <span class=nt>&lt;div</span> <span class=na>style=</span><span class=s>&#34;text-align: center;padding: 3px 0 0;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>     <span class=nt>&lt;div</span> <span class=na>style=</span><span class=s>&#34;margin-top: 20px;font-size: 18px;font-weight: 600;border-bottom: 1px solid #ccc;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>       <span class=nt>&lt;i</span> <span class=na>class=</span><span class=s>&#34;fa fa-{{ theme.recent_posts.icon }}&#34;</span> <span class=na>aria-hidden=</span><span class=s>&#34;true&#34;</span><span class=nt>&gt;&lt;/i&gt;</span>\n</span></span><span class=line><span class=cl>       {{ theme.recent_posts.title }}\n</span></span><span class=line><span class=cl>     <span class=nt>&lt;/div&gt;</span>\n</span></span><span class=line><span class=cl>     <span class=nt>&lt;ul</span> <span class=na>style=</span><span class=s>&#34;margin: 0;padding: 0;list-style: none;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>       {% set posts = site.posts.sort(&#39;-date&#39;) %}\n</span></span><span class=line><span class=cl>       {% for post in posts.slice(&#39;0&#39;, &#39;15&#39;) %}\n</span></span><span class=line><span class=cl>         <span class=nt>&lt;li&gt;</span>\n</span></span><span class=line><span class=cl>           <span class=nt>&lt;a</span> <span class=na>href=</span><span class=s>&#34;{{ url_for(post.path) }}&#34;</span> <span class=na>title=</span><span class=s>&#34;{{ post.title }}&#34;</span> <span class=na>target=</span><span class=s>&#34;_blank&#34;</span><span class=nt>&gt;</span>{{ post.title }}<span class=nt>&lt;/a&gt;</span>\n</span></span><span class=line><span class=cl>         <span class=nt>&lt;/li&gt;</span>\n</span></span><span class=line><span class=cl>       {% endfor %}\n</span></span><span class=line><span class=cl>     <span class=nt>&lt;/ul&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=nt>&lt;/div&gt;</span>\n</span></span><span class=line><span class=cl>  {% endif %}\n</span></span><span class=line><span class=cl><span class=nt>&lt;/div&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=文章尾部添加><span>3 文章尾部添加</span>\n<a href=#%e6%96%87%e7%ab%a0%e5%b0%be%e9%83%a8%e6%b7%bb%e5%8a%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>把代码加在<code>H:\\hexo\\themes\\hexo-theme-next\\layout\\_macro\\post.swig</code>里的相应位置（我加在 tags 后）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>{% if not is_index and theme.recent_posts.enable and theme.recent_posts.post %}\n</span></span><span class=line><span class=cl>  <span class=nt>&lt;div</span> <span class=na>style=</span><span class=s>&#34;text-align: center;padding: 10px 0 0;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;div</span> <span class=na>style=</span><span class=s>&#34;margin: 60px 0px 10px;font-size: 18px;border-bottom: 1px solid #eee;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>     <span class=nt>&lt;i</span> <span class=na>class=</span><span class=s>&#34;fa fa-{{ theme.recent_posts.icon }}&#34;</span> <span class=na>aria-hidden=</span><span class=s>&#34;true&#34;</span><span class=nt>&gt;&lt;/i&gt;</span>\n</span></span><span class=line><span class=cl>     {{ theme.recent_posts.title }}\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;/div&gt;</span>\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;ul</span> <span class=na>style=</span><span class=s>&#34;margin: 0;padding: 0;list-style: none;font-size: 11px;&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>     {% set posts = site.posts.sort(&#39;-date&#39;) %}\n</span></span><span class=line><span class=cl>     {% for post in posts.slice(&#39;0&#39;, &#39;5&#39;) %}\n</span></span><span class=line><span class=cl>         <span class=nt>&lt;a</span> <span class=na>href=</span><span class=s>&#34;{{ url_for(post.path) }}&#34;</span> <span class=na>title=</span><span class=s>&#34;{{ post.title }}&#34;</span> <span class=na>target=</span><span class=s>&#34;_blank&#34;</span><span class=nt>&gt;</span>{{ post.title }}<span class=nt>&lt;/a&gt;</span><span class=ni>&amp;emsp;</span>\n</span></span><span class=line><span class=cl>     {% endfor %}\n</span></span><span class=line><span class=cl>   <span class=nt>&lt;/ul&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>&lt;/div&gt;</span>\n</span></span><span class=line><span class=cl>{% endif %}</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=其他><span>4 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可尝试将<code>-date</code>改为<code>-update</code></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/recent-posts/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/recent-posts.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/recent-posts.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9C%A8%E6%90%9C%E7%B4%A2%E3%80%81%E6%96%87%E7%AB%A0%E5%BA%95%E9%83%A8%E3%80%81%E4%BE%A7%E6%A0%8F%E6%B7%BB%E5%8A%A0%E6%9C%80%E8%BF%91%E6%96%87%E7%AB%A0%E6%A8%A1%E5%9D%97&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9C%A8%E6%90%9C%E7%B4%A2%E3%80%81%E6%96%87%E7%AB%A0%E5%BA%95%E9%83%A8%E3%80%81%E4%BE%A7%E6%A0%8F%E6%B7%BB%E5%8A%A0%E6%9C%80%E8%BF%91%E6%96%87%E7%AB%A0%E6%A8%A1%E5%9D%97%7c%0A%7cURL%7chttps://lruihao.cn/posts/recent-posts/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/recent-posts.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/recent-posts/ data-title=在搜索、文章底部、侧栏添加最近文章模块 data-hashtags=Hexo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/recent-posts/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/recent-posts/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/recent-posts/ data-title=在搜索、文章底部、侧栏添加最近文章模块 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/recent-posts/ data-title=在搜索、文章底部、侧栏添加最近文章模块><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/mathclass/ class=post-nav-item rel=prev title=\"Java 猜数字小游戏（Math 类）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 猜数字小游戏（Math 类）</a><a href=/posts/java-arrays/ class=post-nav-item rel=next title=\"Arrays 类及基本使用\">Arrays 类及基本使用<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#侧栏>侧栏</a></li><li><a href=#搜索结果处添加>搜索结果处添加</a></li><li><a href=#文章尾部添加>文章尾部添加</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3e50d109d4df475fb8a6c61436914771.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3e50d109d4df475fb8a6c61436914771.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/recent-posts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/recent-posts/index.md",
    "content": "# 在搜索、文章底部、侧栏添加最近文章模块\n\n\n> 首先在主题配置文件添加以下关键字\n\n```\nrecent_posts:\n  enable: true\n  search: true\n  post: false\n  sidebar: false\n  icon: history\n  title: 近期文章\n  layout: block\n```\n\n## 侧栏\n\n在 `next/layout/_macro/sidebar.swig` 中的 `if theme.links` 对应的 `endif` 后面。\n\n```\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n  <div class=\"links-of-blogroll motion-element {{ \"links-of-blogroll-\" + theme.recent_posts.layout  }}\">\n   <div class=\"links-of-blogroll-title\">\n     <i class=\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\" aria-hidden=\"true\"></i>\n     {{ theme.recent_posts.title }}\n   </div>\n   <ul class=\"links-of-blogroll-list\">\n     {% set posts = site.posts.sort('-date') %}\n     {% for post in posts.slice('0', '3') %}\n       <li>\n         <a href=\"{{ url_for(post.path) }}\" title=\"{{ post.title }}\" target=\"_blank\">{{ post.title }}</a>\n       </li>\n     {% endfor %}\n   </ul>\n </div>\n{% endif %}\n```\n\n## 搜索结果处添加\n\n找到路径`H:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search`下`localsearch.swig`文件  \n把`<div id=\"local-search-result\"></div>`修改成以下内容（这里显示 15 篇）\n\n```xml\n<div id=\"local-search-result\">\n  {% if theme.recent_posts.enable and theme.recent_posts.search %}\n    <div style=\"text-align: center;padding: 3px 0 0;\">\n     <div style=\"margin-top: 20px;font-size: 18px;font-weight: 600;border-bottom: 1px solid #ccc;\">\n       <i class=\"fa fa-{{ theme.recent_posts.icon }}\" aria-hidden=\"true\"></i>\n       {{ theme.recent_posts.title }}\n     </div>\n     <ul style=\"margin: 0;padding: 0;list-style: none;\">\n       {% set posts = site.posts.sort('-date') %}\n       {% for post in posts.slice('0', '15') %}\n         <li>\n           <a href=\"{{ url_for(post.path) }}\" title=\"{{ post.title }}\" target=\"_blank\">{{ post.title }}</a>\n         </li>\n       {% endfor %}\n     </ul>\n    </div>\n  {% endif %}\n</div>\n```\n\n## 文章尾部添加\n\n把代码加在`H:\\hexo\\themes\\hexo-theme-next\\layout\\_macro\\post.swig`里的相应位置（我加在 tags 后）\n\n```xml\n{% if not is_index and theme.recent_posts.enable and theme.recent_posts.post %}\n  <div style=\"text-align: center;padding: 10px 0 0;\">\n   <div style=\"margin: 60px 0px 10px;font-size: 18px;border-bottom: 1px solid #eee;\">\n     <i class=\"fa fa-{{ theme.recent_posts.icon }}\" aria-hidden=\"true\"></i>\n     {{ theme.recent_posts.title }}\n   </div>\n   <ul style=\"margin: 0;padding: 0;list-style: none;font-size: 11px;\">\n     {% set posts = site.posts.sort('-date') %}\n     {% for post in posts.slice('0', '5') %}\n         <a href=\"{{ url_for(post.path) }}\" title=\"{{ post.title }}\" target=\"_blank\">{{ post.title }}</a>&emsp;\n     {% endfor %}\n   </ul>\n  </div>\n{% endif %}\n```\n\n## 其他\n\n可尝试将`-date`改为`-update`\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/recent-posts/  \n\n"
  },
  {
    "path": "posts/renative/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>还乡 | 菠菜眾長</title><meta name=author content=\"杨灿\"><meta name=description content=\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\n\"><meta name=keywords content='随笔,他山之石'><meta itemprop=name content=\"还乡\"><meta itemprop=description content=\"这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\"><meta itemprop=datePublished content=\"2019-02-01T20:44:40+08:00\"><meta itemprop=dateModified content=\"2019-02-01T20:44:40+08:00\"><meta itemprop=wordCount content=\"624\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/renative/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"还乡\"><meta property=\"og:description\" content=\"这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-02-01T20:44:40+08:00\"><meta property=\"article:modified_time\" content=\"2019-02-01T20:44:40+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"还乡\"><meta name=twitter:description content=\"这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/renative/ title=\"还乡 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/hexo-theme-next/ title=\"Elegant and powerful theme for Hexo.\"><link rel=next type=text/html href=https://lruihao.cn/posts/js-vcode/ title=\"JS 验证码\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/renative/index.md title=\"还乡 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"还乡\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/renative\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔, 他山之石\",\"wordcount\":624,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/renative\\/\",\"datePublished\":\"2019-02-01T20:44:40+08:00\",\"dateModified\":\"2019-02-01T20:44:40+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"杨灿\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/renative/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>还乡</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>还乡</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=mailto:1845280636@qq.com title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><i class=\"fa-solid fa-user-circle\" aria-hidden=true></i>\n杨灿</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2019-02-01 20:44:40\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-02-01>2019-02-01</time></span>&nbsp;<span title=\"624 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=还乡><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。</p></blockquote><p>逢近年关，邻居家的王婶又在等她的儿子了。</p><p>她的儿子大抵有五年未曾回家了。记得去年，他同王婶说好了回家过年，王婶便从腊月二十直直地等到腊月三十，准备好一桌的年夜饭，最后却只是她一个人随便地扒拉了几口。</p><p>我尚且还记得那日，王婶与我母亲一同去河边处理鸡鸭，我也随了去。母亲同王婶说：“源子怎地还不回来？”王婶道：“许是买的车票晚了些，他早前和我说回家过年的，想来还在回来的路上。”</p><p>到晚上，万家灯火渐起，都说热热闹闹团圆饭，王婶家却格外冷清。王婶嫁过来时，家中便只有王叔一人，早些年，王叔随人去炸山取石，人也不幸被石头砸死，家中便只有王婶和她儿子二人。王源也知家中境况，自大学毕业后在外工作，至今，除了前年我暑假时回来过一次，其中便从未回来过。<br>人倒是挺奋进，这些年，王婶家从小木屋变成了三层小洋房，家里也添置了许多家具和电器。王婶倒像一个门卫，守着这栋房子，看着这个家。</p><p>不过别家事总归别家事。</p><p>王婶是个十分随和的人，也常常和村里人打趣逗乐，常见她笑眼眯眯。一年到头，也唯有这“头”让她难展笑颜。<br>“王婶子，源哥还没回来吗？”<br>“快了，快了……”<br>王婶又坐在门口，纳着新鞋，常常一纳就是一天。</p><p>我们常听到一个词——衣锦还乡，其实，于父母而言，他们所看重的从来都只是还乡。而所谓衣锦，不过是死要面子者拿来的托辞。衣锦若无，无便无罢，衣锦若有，有便有罢。<br>衣锦随意，还乡就好。</p><p><em>戊戌年腊月廿七于家中。</em></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"杨灿 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"杨灿 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-02-01 20:44:40\">更新于 2019-02-01&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/renative/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/renative.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/renative.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%BF%98%E4%B9%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%BF%98%E4%B9%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/renative/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/renative.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/renative/ data-title=还乡 data-hashtags=随笔,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/renative/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/renative/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/renative/ data-title=还乡 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/renative/ data-title=还乡><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/hexo-theme-next/ class=post-nav-item rel=prev title=Lruihao/hexo-theme-next><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/hexo-theme-next</a><a href=/posts/js-vcode/ class=post-nav-item rel=next title=\"JS 验证码\">JS 验证码<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/68476cc29d8bedd521d32ae91b064db6.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/68476cc29d8bedd521d32ae91b064db6.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/renative/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/renative/index.md",
    "content": "# 还乡\n\n\n> 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\n\n<!--more-->\n\n逢近年关，邻居家的王婶又在等她的儿子了。\n\n她的儿子大抵有五年未曾回家了。记得去年，他同王婶说好了回家过年，王婶便从腊月二十直直地等到腊月三十，准备好一桌的年夜饭，最后却只是她一个人随便地扒拉了几口。\n\n我尚且还记得那日，王婶与我母亲一同去河边处理鸡鸭，我也随了去。母亲同王婶说：“源子怎地还不回来？”王婶道：“许是买的车票晚了些，他早前和我说回家过年的，想来还在回来的路上。”\n\n到晚上，万家灯火渐起，都说热热闹闹团圆饭，王婶家却格外冷清。王婶嫁过来时，家中便只有王叔一人，早些年，王叔随人去炸山取石，人也不幸被石头砸死，家中便只有王婶和她儿子二人。王源也知家中境况，自大学毕业后在外工作，至今，除了前年我暑假时回来过一次，其中便从未回来过。  \n人倒是挺奋进，这些年，王婶家从小木屋变成了三层小洋房，家里也添置了许多家具和电器。王婶倒像一个门卫，守着这栋房子，看着这个家。\n\n不过别家事总归别家事。\n\n王婶是个十分随和的人，也常常和村里人打趣逗乐，常见她笑眼眯眯。一年到头，也唯有这“头”让她难展笑颜。  \n“王婶子，源哥还没回来吗？”  \n“快了，快了……”  \n王婶又坐在门口，纳着新鞋，常常一纳就是一天。\n\n我们常听到一个词——衣锦还乡，其实，于父母而言，他们所看重的从来都只是还乡。而所谓衣锦，不过是死要面子者拿来的托辞。衣锦若无，无便无罢，衣锦若有，有便有罢。  \n衣锦随意，还乡就好。\n\n_戊戌年腊月廿七于家中。_\n\n\n---\n\n> 作者: [杨灿](mailto:1845280636@qq.com)  \n> URL: https://lruihao.cn/posts/renative/  \n\n"
  },
  {
    "path": "posts/restful/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>RESTful | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\n\"><meta name=keywords content='REST,HTTP'><meta itemprop=name content=\"RESTful\"><meta itemprop=description content=\"RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\"><meta itemprop=datePublished content=\"2019-11-14T19:06:05+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"3228\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"REST,HTTP\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/restful/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"RESTful\"><meta property=\"og:description\" content=\"RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-11-14T19:06:05+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"REST\"><meta property=\"article:tag\" content=\"HTTP\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"RESTful\"><meta name=twitter:description content=\"RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/restful/ title=\"RESTful | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/phppushurl/ title=\"php 同时主动推送链接到百度，神马等站长平台\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/cos-album/ title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/restful/index.md title=\"RESTful | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"RESTful\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/restful\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"REST, HTTP\",\"wordcount\":3228,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/restful\\/\",\"datePublished\":\"2019-11-14T19:06:05+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/restful/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>RESTful</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>RESTful</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ class=post-category title=\"分类 - 计算机网络\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 计算机网络</a></span></div><div class=post-meta-line><span title=\"发布于 2019-11-14 19:06:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-11-14>2019-11-14</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"3228 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 3300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 7 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=RESTful><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#noun>Noun</a></li><li><a href=#http-method>Http Method</a><ol><li><a href=#get>GET</a></li><li><a href=#post>POST</a></li><li><a href=#put>PUT</a></li><li><a href=#patch>PATCH</a></li><li><a href=#delete>DELETE</a></li></ol></li><li><a href=#http-status-code>HTTP Status Code</a><ol><li><a href=#常用-http-状态码>常用 HTTP 状态码</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 <a href=https://www.rfc-editor.org/rfc/rfc5789 target=_blank rel=\"external nofollow noopener noreferrer\">RFC5789<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=noun><span>1 Noun</span>\n<a href=#noun class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>一般资源\n通用于一律使用复数名词\n例如：/books 或 /books/123。但有部分人认为应该使用单数名词，因为： /book/123 看似比 /books/123 合理。但想想文件系统的目录命名（例如 /Users 或 /Documents)，其实用复数也没问题。复数可以保持 API endpoint 的一致性，所以一般资源建议用复数。</li><li>唯一资源：对 client 而言只有一份的资源\n通用于单数名词\n例如：user 是指目前验证的使用者，使用者永远只能同时登入一个使用者</li></ul><h2 class=heading-element id=http-method><span>2 Http Method</span>\n<a href=#http-method class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><table><tbody><tr><th>Method</th><th>Idempotent</th><th>Safe</th><th>CRUD</th><th>OO</th><th>生活动词</th><th>用途</th></tr><tr><td rowspan=2>GET</td><td rowspan=2 style=text-align:center>Y</td><td rowspan=2 style=text-align:center>Y</td><td rowspan=2><b>R</b>ead</td><td rowspan=2>get</td><td>get</td><td>取得资料</td></tr><tr><td>list</td><td>列出资料</td></tr><tr><td rowspan=2>POST</td><td rowspan=2></td><td rowspan=2></td><td rowspan=2><b>C</b>reate</td><td rowspan=2>add</td><td>create</td><td>建立一个可以完全独立存在的实体</td></tr><tr><td>add</td><td>增加一个必须依赖于某个实体的实体</td></tr><tr><td rowspan=2>PUT</td><td rowspan=2 style=text-align:center>Y</td><td rowspan=2></td><td rowspan=3><b>U</b>pdate</td><td rowspan=3>set</td><td>replace</td><td>取代一个关系，已存在时先删除后建立，不存在时直接建立</td></tr><tr><td>add</td><td>附加唯一关系，两个关系实体可以互相独立存在，且已经存在</td></tr><tr><td>PATCH</td><td></td><td></td><td>edit</td><td>编辑某个实体</td></tr><tr><td>DELETE</td><td></td><td></td><td><b>D</b>elete</td><td>remove</td><td>remove<br>delete</td><td>删除某个实体</td></tr></tbody></table><ul><li>Safe：该操作不会改变伺服器端的资源状态（而且结果可以被 cache），属于 Safe 的操作必定属于 Idempotent</li><li>Idempotent (幂等性)：该操作不管做 1 遍或做 n 遍，都会得到同样的资源状态结果（但不一定得到同样的返回值，例如第 2 次 DELETE 请求可能回传 404），因此 client 端可以放心 retry</li></ul><h3 class=heading-element id=get><span>2.1 GET</span>\n<a href=#get class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Safe：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料）<br>Idempotent：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料），所以任何资源的任何状态都是一样的</p></blockquote><h3 class=heading-element id=post><span>2.2 POST</span>\n<a href=#post class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>每次执行操作时，POST 都会建立一个 Resource（资源，资料）</p></blockquote><ul><li><p>Create：建立一个可以完全独立存在的实体</p><p>范例：建立使用者</p><p>执行第一次时：建立一个 name = &ldquo;李四&rdquo; 的 user，但其 id = 1，执行第二次时：建立一个 name = &ldquo;李四&rdquo; 的 user，但其 id = 2，发送同样的请求，可每次都是不同的 Resource</p><p>建立使用者前不需要建立任何的东西，就可以建立使用者了，使用者是可以完全独立的存在</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>POST</span> <span class=nn>/users</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>127.0.0.1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=g>{\n</span></span></span><span class=line><span class=cl><span class=g> &#34;name&#34;: &#34;李四&#34;\n</span></span></span><span class=line><span class=cl><span class=g>}</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>Add：增加一个必须依赖于某个实体的实体</p><p>资料结构：一对多的关系</p><p>范例：Add a public key on behalf of a user 增加一个代表使用者的公钥 (<a href=https://gitea.com/api/swagger#/admin/adminCreatePublicKey target=_blank rel=\"external nofollow noopener noreferrer\">Gitea API<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>)</p><p>增加这个公钥之前，使用者必须存在，公钥必须归属于某个使用者之下，公钥跟姓名一样，使用相同电脑的公钥就会相同，但不表示是同一个使用者，故公钥也会有自己的 ID 我每次增加公钥时，都将生成不同的公钥 ID</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>POST</span> <span class=nn>/api/v1/admin/users/{username}/keys</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>gitea.com</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=g>{\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;key&#34;: &#34;string&#34;,\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;read_only&#34;: true,\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;title&#34;: &#34;string&#34;\n</span></span></span><span class=line><span class=cl><span class=g>}</span></span></span></code></pre></td></tr></table></div></div></div></li></ul><h3 class=heading-element id=put><span>2.3 PUT</span>\n<a href=#put class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Idempotent：每次执行操作时，PUT 都会取代 Resource，不管操作几次，使用者获取得 Resource 结果都是一样的</p><p>Replace：不论资源如何，最终的资源状态都是一样的，Resource 已存在时，或许不理会、或许先删除后建立（取代）Resource 不存在时，直接建立</p><p>Add：添加唯一关系，建立这个唯一关系前，两个关连实体都必须存在。在没有建立关系前，两个关连实体都可以互相独立存在\n资料结构：多对多，且两个关连实体的 PK，同时也是关系实体的 PK、FK</p></blockquote><ul><li><p>范例：增加使用者与角色的关系</p><p>增加使用者跟角色的关系前，使用者跟角色都必须存在；增加使用者跟角色的关系前，使用者跟角色可以独立存在，\n使用者 12262 跟 角色 2 的关系最多只能有一条关系（使用者 12262 有 角色 2)，最少没有关系（使用者 12262 没有 角色 2 ) ，执行第二次操作时，使用者 12262 跟 角色 2 的从属关系仍然存在，也不会跑出第二条 使用者 12262 跟 角色 2 的从属关系</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>PUT</span> <span class=nn>user/{account}/roles</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>127.0.0.1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=g>{\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;role_id&#34;: &#34;2&#34;\n</span></span></span><span class=line><span class=cl><span class=g>}</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>范例：Follow a user 关注一个使用者 (<a href=https://gitea.com/api/swagger#/user/userCurrentPutFollow target=_blank rel=\"external nofollow noopener noreferrer\">Gitea API<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>)</p><p>增加关注关系时，关注者与被关注者（都是使用者）都必须存在；关注者 12262 跟被关注者 12231 的关系最多只能有一条关系（12262 关注 12231），最少没有关系（12262 不关注 12231），执行第二次操作时，关注者 12262 跟被关注者 12231 的关注关系仍然存在，也不会跑出第二条关注者 12262 跟被关注者 12231 的关注关系</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>PUT</span> <span class=nn>/api/v1/user/following/{username}</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>gitea.com</span></span></span></code></pre></td></tr></table></div></div></div></li></ul><h3 class=heading-element id=patch><span>2.4 PATCH</span>\n<a href=#patch class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Edit：编辑可独立存在、且已经存在的实体，也就是产生新版本的实体，可能会影响其他 Resource</p></blockquote><ul><li><p>范例：编辑使用者</p><p>编辑使用者，使用者已经存在，且我们可能有纪录编辑时间、编辑人、编辑 IP，所以每次的编辑都会造成不一样的结果\n第一次编辑使用者，更新时间变为 08:00，编辑人 12262，IP 172.18.0.66 第二次编辑使用者，更新时间变为 09:00，编辑人 12263，IP 172.18.0.67</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>PATCH</span> <span class=nn>/users/{account}</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>127.0.0.1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=g>{\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;username&#34;: &#34;李四&#34;,\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;age&#34;: &#34;18&#34;,\n</span></span></span><span class=line><span class=cl><span class=g>  &#34;gender&#34;: &#34;male&#34;\n</span></span></span><span class=line><span class=cl><span class=g>}</span></span></span></code></pre></td></tr></table></div></div></div></li></ul><h3 class=heading-element id=delete><span>2.5 DELETE</span>\n<a href=#delete class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>Idempotent：每次执行操作时，DELETE 都会删除相同的东西</p></blockquote><ul><li><p>范例：删除使用者</p><p>第一次删除使用者 12262，删除使用者 12262, 第二次删除使用者 12262，还是删除使用者 12262，只不过使用者 12262 不存在了</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>DELETE</span> <span class=nn>/users/{account}</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>127.0.0.1</span></span></span></code></pre></td></tr></table></div></div></div></li></ul><h2 class=heading-element id=http-status-code><span>3 HTTP Status Code</span>\n<a href=#http-status-code class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>HTTP 状态码（HTTP Status Code）是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。除非另有说明，状态码是 <strong>HTTP/1.1 标准</strong>（<a href=https://www.rfc-editor.org/rfc/rfc7231 target=_blank rel=\"external nofollow noopener noreferrer\">RFC 7231<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）的一部分。</p><p>而关于 RESTful API 的请求状态，通常有以下两种设计方案：</p><ul><li>方案一：使用 HTTP 状态码来表示请求状态，200 时返回的内容就是数据</li><li>方案二：所有接口都返回 200，在响应内容里约定错误码或错误信息</li></ul><p>在实际应用中，应据具体情景及需要进行选择与调整。</p><table><tbody><tr><th>方案</th><th colspan=2>优劣比较</th></tr><tr><td rowspan=2>方案一</td><td>优点</td><td>对服务端来说较为简单方便</td></tr><tr><td>缺点</td><td>客户端难以根据状态码处理复杂问题</td></tr><tr><td rowspan=2>方案二</td><td>优点</td><td>方便对返回资料进行统一处理和细微性的控制</td></tr><tr><td>缺点</td><td>相当于放弃了 HTTP 状态码的语义</td></tr></tbody></table><h3 class=heading-element id=常用-http-状态码><span>3.1 常用 HTTP 状态码</span>\n<a href=#%e5%b8%b8%e7%94%a8-http-%e7%8a%b6%e6%80%81%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>Code</th><th>Message</th><th>用途</th></tr></thead><tbody><tr><td>1XX</td><td>Informational response</td><td>此类状态码通常代表的响应都是信息性的，告诉客户端可以进行下一步操作。</td></tr><tr><td>100</td><td>Continue</td><td>表示服务端已接收到请求头，客户端可以继续发送请求体（如 POST 请求）。</td></tr><tr><td>101</td><td>Switching Protocols</td><td>表示服务端支持更优协议，让客户端在服务端更换协议后重新访问。</td></tr><tr><td>2XX</td><td>Successful</td><td>此类状态码通常代表请求已成功被服务端接收、理解并接受。</td></tr><tr><td>200</td><td>OK</td><td>表示请求成功。</td></tr><tr><td>201</td><td>Created</td><td>表示请求已被实现，通常是在成功创建了某个资源。</td></tr><tr><td>202</td><td>Accepted</td><td>表示请求已被服务端接收，但尚未进行处理。</td></tr><tr><td>204</td><td>No Content</td><td>表示请求成功，但不会返回任何内容。</td></tr><tr><td>205</td><td>Reset Content</td><td>表示请求成功，但不会返回任何内容，并且要求客户端重置表单。</td></tr><tr><td>3XX</td><td>Redirect</td><td>此类状态码通常代表本次请求需要客户端采取进一步操作才能完成。通常用于重定向。</td></tr><tr><td>300</td><td>Multiple Choices</td><td>表示请求的资源有多个供可选择，客户端可自行选择一个进行请求的重定向。</td></tr><tr><td>301</td><td>Moved Permanently</td><td>表示请求的资源已经永久地移动到了新位置，并且将在 Location 域中携带该资源新的 URI。</td></tr><tr><td>304</td><td>Not Modified</td><td>表示请求的资源无发生修改，将不会返回任何资源。</td></tr><tr><td>4XX</td><td>Client Error</td><td>此类状态码通常代表客户端可能出现了错误。</td></tr><tr><td>400</td><td>Bad Request</td><td>表示客户端发出的请求有误（格式、大小、无效的&mldr;)，服务端不能/ 不会处理该请求。</td></tr><tr><td>401</td><td>Unauthorized</td><td>表示客户端未能提供必要的验证，服务端拒绝提供资源。</td></tr><tr><td>403</td><td>Forbidden</td><td>表示服务端理解了该请求，但客户端没有足够权限以访问，遂拒绝提供该资源。</td></tr><tr><td>404</td><td>Not Found</td><td>表示服务端无法找到请求的资源，其可能已经暂时（永久）失效。</td></tr><tr><td>408</td><td>Request Timeout</td><td>表示请求超时。</td></tr><tr><td>409</td><td>Conflict</td><td>表示请求的资源发送了冲突，通常是 PUT 请求。</td></tr><tr><td>410</td><td>Gone</td><td>表示请求的资源已经永久失效，客户端不应再次请求。</td></tr><tr><td>411</td><td>Length Required</td><td>表示服务端拒绝在没有定义 Content-Length 头的情况下接收该请求。</td></tr><tr><td>5XX</td><td>Server Error</td><td>此类状态码通常代表由于服务端的原因，导致无法完成请求。</td></tr><tr><td>500</td><td>Internal Server Error</td><td>表示由于服务端遇到意料之外的变故，导致无法完成请求。</td></tr><tr><td>501</td><td>Not Implemented</td><td>表示服务端不支持完成请求所需的功能，导致无法完成请求。</td></tr><tr><td>502</td><td>Bad Gateway</td><td>表示作为网关或代理的服务段在执行请求时，从上游服务器获得了无效的响应。</td></tr><tr><td>503</td><td>Service Unavailable</td><td>表示由于某些原因（服务器超载或系统维护等），导致暂时无法完成请求。</td></tr><tr><td>504</td><td>Gatewy Timeout</td><td>表示作为网关或代理的服务段在执行请求时，未能及时从上游服务器获得响应。</td></tr><tr><td>505</td><td>HTTP Version Not Supported</td><td>表示服务端不支持请求的 HTTP 协议版本，导致无法完成请求。</td></tr></tbody></table></div><blockquote><p>以上内容参考自&lt;https://zh.wikipedia.org/zh-cn/HTTP 状态码>，\n需要查看完整 HTTP 状态码请点击 <a href=https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes target=_blank rel=\"external nofollow noopener noreferrer\">https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/restful/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/restful.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/restful.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20RESTful&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cRESTful%7c%0A%7cURL%7chttps://lruihao.cn/posts/restful/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/restful.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/restful/ data-title=RESTful data-hashtags=REST,HTTP><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/restful/ data-hashtag=REST><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/restful/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/restful/ data-title=RESTful data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/restful/ data-title=RESTful><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/rest/ class=post-tag title=\"标签 - REST\">REST</a><a href=/tags/http/ class=post-tag title=\"标签 - HTTP\">HTTP</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/phppushurl/ class=post-nav-item rel=prev title=\"Php 同时主动推送链接到百度，神马等站长平台\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Php 同时主动推送链接到百度，神马等站长平台</a><a href=/projects/lruihao/cos-album/ class=post-nav-item rel=next title=Lruihao/cos-album>Lruihao/cos-album<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#noun>Noun</a></li><li><a href=#http-method>Http Method</a><ol><li><a href=#get>GET</a></li><li><a href=#post>POST</a></li><li><a href=#put>PUT</a></li><li><a href=#patch>PATCH</a></li><li><a href=#delete>DELETE</a></li></ol></li><li><a href=#http-status-code>HTTP Status Code</a><ol><li><a href=#常用-http-状态码>常用 HTTP 状态码</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/344a803009a489a24e0035487899e424.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/344a803009a489a24e0035487899e424.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/restful/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/restful/index.md",
    "content": "# RESTful\n\n\n> RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 [RFC5789](https://www.rfc-editor.org/rfc/rfc5789)\n\n<!--more-->\n\n## Noun\n\n- 一般资源\n  通用于一律使用复数名词\n  例如：/books 或 /books/123。但有部分人认为应该使用单数名词，因为： /book/123 看似比 /books/123 合理。但想想文件系统的目录命名（例如 /Users 或 /Documents)，其实用复数也没问题。复数可以保持 API endpoint 的一致性，所以一般资源建议用复数。\n- 唯一资源：对 client 而言只有一份的资源\n  通用于单数名词\n  例如：user 是指目前验证的使用者，使用者永远只能同时登入一个使用者\n\n## Http Method\n\n<!-- markdownlint-disable MD033 -->\n\n<table><tbody><tr><th>Method</th><th>Idempotent</th><th>Safe</th><th>CRUD</th><th>OO</th><th>生活动词</th><th>用途</th></tr><tr><td rowspan=\"2\">GET</td><td rowspan=\"2\" style=\"text-align: center;\">Y</td><td rowspan=\"2\" style=\"text-align: center;\">Y</td><td rowspan=\"2\"><b>R</b>ead</td><td rowspan=\"2\">get</td><td>get</td><td>取得资料</td></tr><tr><td>list</td><td>列出资料</td></tr><tr><td rowspan=\"2\">POST</td><td rowspan=\"2\"></td><td rowspan=\"2\"></td><td rowspan=\"2\"><b>C</b>reate</td><td rowspan=\"2\">add</td><td>create</td><td>建立一个可以完全独立存在的实体</td></tr><tr><td>add</td><td>增加一个必须依赖于某个实体的实体</td></tr><tr><td rowspan=\"2\">PUT</td><td rowspan=\"2\" style=\"text-align: center;\">Y</td><td rowspan=\"2\"></td><td rowspan=\"3\"><b>U</b>pdate</td><td rowspan=\"3\">set</td><td>replace</td><td>取代一个关系，已存在时先删除后建立，不存在时直接建立</td></tr><tr><td>add</td><td>附加唯一关系，两个关系实体可以互相独立存在，且已经存在</td></tr><tr><td>PATCH</td><td></td><td></td><td>edit</td><td>编辑某个实体</td></tr><tr><td>DELETE</td><td></td><td></td><td><b>D</b>elete</td><td>remove</td><td>remove<br>delete</td><td>删除某个实体</td></tr></tbody></table>\n\n- Safe：该操作不会改变伺服器端的资源状态（而且结果可以被 cache），属于 Safe 的操作必定属于 Idempotent\n- Idempotent (幂等性)：该操作不管做 1 遍或做 n 遍，都会得到同样的资源状态结果（但不一定得到同样的返回值，例如第 2 次 DELETE 请求可能回传 404），因此 client 端可以放心 retry\n\n### GET\n\n> Safe：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料）  \n> Idempotent：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料），所以任何资源的任何状态都是一样的\n\n### POST\n\n> 每次执行操作时，POST 都会建立一个 Resource（资源，资料）\n\n- Create：建立一个可以完全独立存在的实体\n\n  范例：建立使用者\n\n  执行第一次时：建立一个 name = \"李四\" 的 user，但其 id = 1，执行第二次时：建立一个 name = \"李四\" 的 user，但其 id = 2，发送同样的请求，可每次都是不同的 Resource\n\n  建立使用者前不需要建立任何的东西，就可以建立使用者了，使用者是可以完全独立的存在\n\n  ```http\n  POST /users HTTP/1.1\n  Host: 127.0.0.1\n\n  {\n   \"name\": \"李四\"\n  }\n  ```\n\n- Add：增加一个必须依赖于某个实体的实体\n\n  资料结构：一对多的关系\n\n  范例：Add a public key on behalf of a user 增加一个代表使用者的公钥 ([Gitea API](https://gitea.com/api/swagger#/admin/adminCreatePublicKey))\n\n  增加这个公钥之前，使用者必须存在，公钥必须归属于某个使用者之下，公钥跟姓名一样，使用相同电脑的公钥就会相同，但不表示是同一个使用者，故公钥也会有自己的 ID 我每次增加公钥时，都将生成不同的公钥 ID\n\n  ```http\n  POST /api/v1/admin/users/{username}/keys HTTP/1.1\n  Host: gitea.com\n\n  {\n    \"key\": \"string\",\n    \"read_only\": true,\n    \"title\": \"string\"\n  }\n  ```\n\n### PUT\n\n> Idempotent：每次执行操作时，PUT 都会取代 Resource，不管操作几次，使用者获取得 Resource 结果都是一样的\n>\n> Replace：不论资源如何，最终的资源状态都是一样的，Resource 已存在时，或许不理会、或许先删除后建立（取代）Resource 不存在时，直接建立\n>\n> Add：添加唯一关系，建立这个唯一关系前，两个关连实体都必须存在。在没有建立关系前，两个关连实体都可以互相独立存在\n> 资料结构：多对多，且两个关连实体的 PK，同时也是关系实体的 PK、FK\n\n- 范例：增加使用者与角色的关系\n\n  增加使用者跟角色的关系前，使用者跟角色都必须存在；增加使用者跟角色的关系前，使用者跟角色可以独立存在，\n  使用者 12262 跟 角色 2 的关系最多只能有一条关系（使用者 12262 有 角色 2)，最少没有关系（使用者 12262 没有 角色 2 ) ，执行第二次操作时，使用者 12262 跟 角色 2 的从属关系仍然存在，也不会跑出第二条 使用者 12262 跟 角色 2 的从属关系\n\n  ```http\n  PUT user/{account}/roles HTTP/1.1\n  Host: 127.0.0.1\n\n  {\n    \"role_id\": \"2\"\n  }\n  ```\n\n- 范例：Follow a user 关注一个使用者 ([Gitea API](https://gitea.com/api/swagger#/user/userCurrentPutFollow))\n\n  增加关注关系时，关注者与被关注者（都是使用者）都必须存在；关注者 12262 跟被关注者 12231 的关系最多只能有一条关系（12262 关注 12231），最少没有关系（12262 不关注 12231），执行第二次操作时，关注者 12262 跟被关注者 12231 的关注关系仍然存在，也不会跑出第二条关注者 12262 跟被关注者 12231 的关注关系\n\n  ```http\n  PUT /api/v1/user/following/{username} HTTP/1.1\n  Host: gitea.com\n  ```\n\n### PATCH\n\n> Edit：编辑可独立存在、且已经存在的实体，也就是产生新版本的实体，可能会影响其他 Resource\n\n- 范例：编辑使用者\n\n  编辑使用者，使用者已经存在，且我们可能有纪录编辑时间、编辑人、编辑 IP，所以每次的编辑都会造成不一样的结果\n  第一次编辑使用者，更新时间变为 08:00，编辑人 12262，IP 172.18.0.66 第二次编辑使用者，更新时间变为 09:00，编辑人 12263，IP 172.18.0.67\n\n  ```http\n  PATCH /users/{account} HTTP/1.1\n  Host: 127.0.0.1\n\n  {\n    \"username\": \"李四\",\n    \"age\": \"18\",\n    \"gender\": \"male\"\n  }\n  ```\n\n### DELETE\n\n> Idempotent：每次执行操作时，DELETE 都会删除相同的东西\n\n- 范例：删除使用者\n\n  第一次删除使用者 12262，删除使用者 12262, 第二次删除使用者 12262，还是删除使用者 12262，只不过使用者 12262 不存在了\n\n  ```http\n  DELETE /users/{account} HTTP/1.1\n  Host: 127.0.0.1\n  ```\n\n## HTTP Status Code\n\nHTTP 状态码（HTTP Status Code）是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。除非另有说明，状态码是 **HTTP/1.1 标准**（[RFC 7231](https://www.rfc-editor.org/rfc/rfc7231)）的一部分。\n\n而关于 RESTful API 的请求状态，通常有以下两种设计方案：\n\n- 方案一：使用 HTTP 状态码来表示请求状态，200 时返回的内容就是数据\n- 方案二：所有接口都返回 200，在响应内容里约定错误码或错误信息\n\n在实际应用中，应据具体情景及需要进行选择与调整。\n\n<table><tbody><tr><th>方案</th><th colspan=\"2\">优劣比较</th></tr><tr><td rowspan=\"2\">方案一</td><td>优点</td><td>对服务端来说较为简单方便</td></tr><tr><td>缺点</td><td>客户端难以根据状态码处理复杂问题</td></tr><tr><td rowspan=\"2\">方案二</td><td>优点</td><td>方便对返回资料进行统一处理和细微性的控制</td></tr><tr><td>缺点</td><td>相当于放弃了 HTTP 状态码的语义</td></tr></tbody></table>\n\n### 常用 HTTP 状态码\n\n| Code | Message                    | 用途                                                                               |\n| ---- | -------------------------- | ---------------------------------------------------------------------------------- |\n| 1XX  | Informational response     | 此类状态码通常代表的响应都是信息性的，告诉客户端可以进行下一步操作。               |\n| 100  | Continue                   | 表示服务端已接收到请求头，客户端可以继续发送请求体（如 POST 请求）。               |\n| 101  | Switching Protocols        | 表示服务端支持更优协议，让客户端在服务端更换协议后重新访问。                       |\n| 2XX  | Successful                 | 此类状态码通常代表请求已成功被服务端接收、理解并接受。                             |\n| 200  | OK                         | 表示请求成功。                                                                     |\n| 201  | Created                    | 表示请求已被实现，通常是在成功创建了某个资源。                                     |\n| 202  | Accepted                   | 表示请求已被服务端接收，但尚未进行处理。                                           |\n| 204  | No Content                 | 表示请求成功，但不会返回任何内容。                                                 |\n| 205  | Reset Content              | 表示请求成功，但不会返回任何内容，并且要求客户端重置表单。                         |\n| 3XX  | Redirect                   | 此类状态码通常代表本次请求需要客户端采取进一步操作才能完成。通常用于重定向。       |\n| 300  | Multiple Choices           | 表示请求的资源有多个供可选择，客户端可自行选择一个进行请求的重定向。               |\n| 301  | Moved Permanently          | 表示请求的资源已经永久地移动到了新位置，并且将在 Location 域中携带该资源新的 URI。 |\n| 304  | Not Modified               | 表示请求的资源无发生修改，将不会返回任何资源。                                     |\n| 4XX  | Client Error               | 此类状态码通常代表客户端可能出现了错误。                                           |\n| 400  | Bad Request                | 表示客户端发出的请求有误（格式、大小、无效的...)，服务端不能/ 不会处理该请求。     |\n| 401  | Unauthorized               | 表示客户端未能提供必要的验证，服务端拒绝提供资源。                                 |\n| 403  | Forbidden                  | 表示服务端理解了该请求，但客户端没有足够权限以访问，遂拒绝提供该资源。             |\n| 404  | Not Found                  | 表示服务端无法找到请求的资源，其可能已经暂时（永久）失效。                         |\n| 408  | Request Timeout            | 表示请求超时。                                                                     |\n| 409  | Conflict                   | 表示请求的资源发送了冲突，通常是 PUT 请求。                                        |\n| 410  | Gone                       | 表示请求的资源已经永久失效，客户端不应再次请求。                                   |\n| 411  | Length Required            | 表示服务端拒绝在没有定义 Content-Length 头的情况下接收该请求。                     |\n| 5XX  | Server Error               | 此类状态码通常代表由于服务端的原因，导致无法完成请求。                             |\n| 500  | Internal Server Error      | 表示由于服务端遇到意料之外的变故，导致无法完成请求。                               |\n| 501  | Not Implemented            | 表示服务端不支持完成请求所需的功能，导致无法完成请求。                             |\n| 502  | Bad Gateway                | 表示作为网关或代理的服务段在执行请求时，从上游服务器获得了无效的响应。             |\n| 503  | Service Unavailable        | 表示由于某些原因（服务器超载或系统维护等），导致暂时无法完成请求。                 |\n| 504  | Gatewy Timeout             | 表示作为网关或代理的服务段在执行请求时，未能及时从上游服务器获得响应。             |\n| 505  | HTTP Version Not Supported | 表示服务端不支持请求的 HTTP 协议版本，导致无法完成请求。                           |\n\n> 以上内容参考自<https://zh.wikipedia.org/zh-cn/HTTP 状态码>，\n> 需要查看完整 HTTP 状态码请点击 <https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/restful/  \n\n"
  },
  {
    "path": "posts/scrollbar-styling/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>标准滚动条控制规范 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\n\"><meta name=keywords content='CSS,scrollbar-styling,scrollbar-color,scrollbar-width'><meta itemprop=name content=\"标准滚动条控制规范\"><meta itemprop=description content=\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\"><meta itemprop=datePublished content=\"2024-06-28T22:29:03+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=wordCount content=\"1528\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,scrollbar-styling,scrollbar-color,scrollbar-width\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/scrollbar-styling/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"标准滚动条控制规范\"><meta property=\"og:description\" content=\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-06-28T22:29:03+08:00\"><meta property=\"article:modified_time\" content=\"2024-07-28T17:12:48+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"scrollbar-styling\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"标准滚动条控制规范\"><meta name=twitter:description content=\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/scrollbar-styling/ title=\"标准滚动条控制规范 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ title=\"A Hugo theme component with caniuse shortcode.\"><link rel=next type=text/html href=https://lruihao.cn/posts/d1fc0c7/ title=\"探索 Amazon S3 的无限存储潜力\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/scrollbar-styling/index.md title=\"标准滚动条控制规范 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"标准滚动条控制规范\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/scrollbar-styling\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, scrollbar-styling\",\"wordcount\":1528,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/scrollbar-styling\\/\",\"datePublished\":\"2024-06-28T22:29:03+08:00\",\"dateModified\":\"2024-07-28T17:12:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/scrollbar-styling/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>标准滚动条控制规范</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>现代 CSS 解决方案</span>\n<span class=collection-count>5</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\">CSS 如何实现网格背景效果？</a></li><li class=collection-item><span class=active title=标准滚动条控制规范>标准滚动条控制规范</span></li><li class=collection-item><a href=/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\">CSS 实现时间轴、背景图 Loading 和渐变边框</a></li><li class=collection-item><a href=/posts/drop-shadow/ title=异形元素怎么设置阴影？>异形元素怎么设置阴影？</a></li><li class=collection-item><a href=/posts/css-round/ title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位</a></li></ul><div class=collection-nav-simple><a href=/posts/grid-bg-image/ class=collection-nav-item rel=prev title=\"CSS 如何实现网格背景效果？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>2/5</span><a href=/posts/fixit-docs-bookmark/ class=collection-nav-item rel=next title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>标准滚动条控制规范</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a> 和 <a href=/collections/modern-css/ class=post-collection title=\"合集 - 现代 CSS 解决方案\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 现代 CSS 解决方案</a></span></div><div class=post-meta-line><span title=\"发布于 2024-06-28 22:29:03\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-06-28>2024-06-28</time></span>&nbsp;<span title=\"更新于 2024-07-28 17:12:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-28>2024-07-28</time></span>&nbsp;<span title=\"1528 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=标准滚动条控制规范><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#简介>简介</a></li><li><a href=#滚动条入门指南>滚动条入门指南</a><ol><li><a href=#滚动条剖析>滚动条剖析</a></li><li><a href=#传统滚动条和重叠式滚动条>传统滚动条和重叠式滚动条</a><ol><li><a href=#叠加滚动条>叠加滚动条</a></li><li><a href=#经典滚动条>经典滚动条</a></li></ol></li></ol></li><li><a href=#scrollbar-color-和-scrollbar-width-属性>scrollbar-color 和 scrollbar-width 属性</a><ol><li><a href=#scrollbar-color-设置滚动条颜色>scrollbar-color 设置滚动条颜色</a></li><li><a href=#scrollbar-width-设置滚动条粗细>scrollbar-width 设置滚动条粗细</a></li></ol></li><li><a href=#支持旧版浏览器>支持旧版浏览器</a></li><li><a href=#总结一下>总结一下</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-28，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>使用 <code>scrollbar-width</code> 和 <code>scrollbar-color</code> 属性设置滚动条的样式。</p><h2 class=heading-element id=简介><span>1 简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>从 Chrome 版本 2 开始，可以使用 <code>::-webkit-scrollbar-*</code> 伪元素设置滚动条的样式。此方法在 Chrome 和 Safari 中都很有效，但 CSS 工作组从未标准化。</p><blockquote><p>MDN - ::-webkit-scrollbar Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.</p></blockquote><p>实现标准化的是 <code>scrollbar-width</code> 和 <code>scrollbar-color</code> 属性，它们是 <a href=https://drafts.csswg.org/css-scrollbars/#scrollbar-width target=_blank rel=\"external nofollow noopener noreferrer\">CSS Scrollbars Styling Module Level 1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的一部分。从 Chrome 121 开始，这些属性受支持。</p><h2 class=heading-element id=滚动条入门指南><span>2 滚动条入门指南</span>\n<a href=#%e6%bb%9a%e5%8a%a8%e6%9d%a1%e5%85%a5%e9%97%a8%e6%8c%87%e5%8d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=滚动条剖析><span>2.1 滚动条剖析</span>\n<a href=#%e6%bb%9a%e5%8a%a8%e6%9d%a1%e5%89%96%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>滚动条至少由一个轨迹和一个滑块组成。滑道是拇指可以移动的区域。轨迹表示整个滚动距离。滑块表示可滚动区域内的当前位置。滚动时，它会在轨道内移动。拇指通常也是可拖动的。</p><p>不过，滚动条可以有多个部分，而不仅仅是滑块和滑道。例如，滚动条可以包含一个或多个用于递增或递减滚动偏移的按钮。滚动条的组成部分由底层操作系统决定。</p><p><figure><a class=lightgallery target=_blank href=/posts/scrollbar-styling/images/24_1719585398.png title=左侧插图是一个最小的滚动条，其中只有轨迹和拇指。右边的按钮也有一些按钮。 data-thumbnail=/posts/scrollbar-styling/images/24_1719585398.png data-sub-html=\"<h2>组成滚动条的各个部分的图示</h2><p>左侧插图是一个最小的滚动条，其中只有轨迹和拇指。右边的按钮也有一些按钮。</p>\"><img loading=lazy src=/posts/scrollbar-styling/images/24_1719585398.png alt=组成滚动条的各个部分的图示 height=2250 width=4000></a><figcaption class=image-caption>左侧插图是一个最小的滚动条，其中只有轨迹和拇指。右边的按钮也有一些按钮。</figcaption></figure></p><h3 class=heading-element id=传统滚动条和重叠式滚动条><span>2.2 传统滚动条和重叠式滚动条</span>\n<a href=#%e4%bc%a0%e7%bb%9f%e6%bb%9a%e5%8a%a8%e6%9d%a1%e5%92%8c%e9%87%8d%e5%8f%a0%e5%bc%8f%e6%bb%9a%e5%8a%a8%e6%9d%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在介绍如何设置滚动条的样式之前，请务必先了解两种滚动条之间的区别。</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>操作系统</th><th style=text-align:left>默认滚动条</th></tr></thead><tbody><tr><td style=text-align:left>Mac</td><td style=text-align:left>叠加滚动条（Overlay scrollbars）</td></tr><tr><td style=text-align:left>Windows</td><td style=text-align:left>经典滚动条（Classic scrollbars）</td></tr></tbody></table></div><h4 class=heading-element id=叠加滚动条><span>2.2.1 叠加滚动条</span>\n<a href=#%e5%8f%a0%e5%8a%a0%e6%bb%9a%e5%8a%a8%e6%9d%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>叠加层滚动条是在下方内容之上的浮动滚动条。默认情况下，这些按钮不会显示，只有当主动滚动时才会显示。为了让内容保持可见状态，它们通常采用半透明形式，但这由操作系统来决定。在与它们互动时，它们的大小也可能有所变化。</p><p><figure><a class=lightgallery target=_blank href=/posts/scrollbar-styling/images/24_1719585770.png title=滚动条会叠加在内容上；滑块是部分透明的。 data-thumbnail=/posts/scrollbar-styling/images/24_1719585770.png data-sub-html=\"<h2>带有叠加滚动条的浏览器</h2><p>滚动条会叠加在内容上；滑块是部分透明的。</p>\"><img loading=lazy src=/posts/scrollbar-styling/images/24_1719585770.png alt=带有叠加滚动条的浏览器 height=2250 width=4000></a><figcaption class=image-caption>滚动条会叠加在内容上；滑块是部分透明的。</figcaption></figure></p><h4 class=heading-element id=经典滚动条><span>2.2.2 经典滚动条</span>\n<a href=#%e7%bb%8f%e5%85%b8%e6%bb%9a%e5%8a%a8%e6%9d%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>传统滚动条是放置在专用_滚动条边线_中的滚动条。滚动条边线是内边框边缘与外内边距边缘之间的空间。这些滚动条通常是不透明的（不透明），并会占用相邻内容的某些空间。</p><p><figure><a class=lightgallery target=_blank href=/posts/scrollbar-styling/images/24_1719585901.png title=滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。 data-thumbnail=/posts/scrollbar-styling/images/24_1719585901.png data-sub-html=\"<h2>包含传统滚动条的浏览器图示</h2><p>滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。</p>\"><img loading=lazy src=/posts/scrollbar-styling/images/24_1719585901.png alt=包含传统滚动条的浏览器图示 height=2250 width=4000></a><figcaption class=image-caption>滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。</figcaption></figure></p><h2 class=heading-element id=scrollbar-color-和-scrollbar-width-属性><span>3 scrollbar-color 和 scrollbar-width 属性</span>\n<a href=#scrollbar-color-%e5%92%8c-scrollbar-width-%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=scrollbar-color-设置滚动条颜色><span>3.1 scrollbar-color 设置滚动条颜色</span>\n<a href=#scrollbar-color-%e8%ae%be%e7%bd%ae%e6%bb%9a%e5%8a%a8%e6%9d%a1%e9%a2%9c%e8%89%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>参考 <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-color target=_blank rel=\"external nofollow noopener noreferrer\">https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-color<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>借助 <code>scrollbar-color</code> 属性，可以更改滚动条的配色方案。该属性接受两个 <code>&lt;color></code> 值。</p><ul><li>第一个值用于确定滑块（thumb）的颜色</li><li>第二个值用于确定要用于轨道（track）的颜色</li></ul><p>如需使用操作系统提供的默认呈现方式，请使用 <code>auto</code> 作为其值。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 关键字值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>auto</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* &lt;color&gt; 值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>rebeccapurple</span> <span class=nt>green</span><span class=o>;</span> <span class=c>/* 两个有效的颜色。\n</span></span></span><span class=line><span class=cl><span class=c>第一个应用于滚动条的滑块，第二个应用于轨道。 */</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 全局值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>inherit</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>initial</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>revert</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>revert-layer</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-color</span><span class=o>:</span> <span class=nt>unset</span><span class=o>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>默认情况下，使用叠加滚动条时，轨迹的颜色不起作用。不过，将鼠标悬停在滚动条上时，系统会显示航迹。</p><h3 class=heading-element id=scrollbar-width-设置滚动条粗细><span>3.2 scrollbar-width 设置滚动条粗细</span>\n<a href=#scrollbar-width-%e8%ae%be%e7%bd%ae%e6%bb%9a%e5%8a%a8%e6%9d%a1%e7%b2%97%e7%bb%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>参考 <a href=https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-width target=_blank rel=\"external nofollow noopener noreferrer\">https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-width<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><p>借助 <code>scrollbar-width</code> 属性，可以选择较窄的滚动条，甚至可以完全隐藏滚动条而不影响可滚动性。</p><p>接受的值包括 <code>auto</code>、<code>thin</code> 和 <code>none</code>。</p><ul><li><code>auto</code>：平台提供的默认滚动条宽度。</li><li><code>thin</code>：平台提供的滚动条的细变体，或比默认平台滚动条更细的自定义滚动条。</li><li><code>none</code>：有效隐藏滚动条。不过，此元素仍然可滚动。</li></ul><p>无法使用 <code>&lt;length></code>（例如 <code>16px</code>）作为 <code>scrollbar-width</code> 的值。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 关键字值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>auto</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>thin</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>none</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* 全局值 */</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>inherit</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>initial</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>revert</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>revert-layer</span><span class=o>;</span>\n</span></span><span class=line><span class=cl><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>unset</span><span class=o>;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>使用叠加滚动条时，仅当你主动滚动可滚动区域时，才会显示滚动条滑块。</p><h2 class=heading-element id=支持旧版浏览器><span>4 支持旧版浏览器</span>\n<a href=#%e6%94%af%e6%8c%81%e6%97%a7%e7%89%88%e6%b5%8f%e8%a7%88%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了满足不支持 <code>scrollbar-color</code> 和 <code>scrollbar-width</code> 的浏览器版本，可以同时使用新的 <code>scrollbar-*</code> 和 <code>::-webkit-scrollbar-*</code> 属性。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* Modern browsers with `scrollbar-*` support (high priority) */</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>supports</span> <span class=o>(</span><span class=nt>scrollbar-width</span><span class=o>:</span> <span class=nt>auto</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=o>*</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>scrollbar-color</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>thumb</span><span class=o>-</span><span class=kc>color</span><span class=p>)</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>track</span><span class=o>-</span><span class=kc>color</span><span class=p>);;</span>\n</span></span><span class=line><span class=cl>    <span class=k>scrollbar-width</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>width</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c>/* Legacy browsers with `::-webkit-scrollbar-*` support */</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>height</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>width</span><span class=o>-</span><span class=n>legacy</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>width</span><span class=o>-</span><span class=n>legacy</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>overflow</span><span class=p>:</span> <span class=kc>visible</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-button</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>height</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>width</span><span class=p>:</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-corner</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-color</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>track</span><span class=o>-</span><span class=kc>color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-thumb</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-color</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>thumb</span><span class=o>-</span><span class=kc>color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-thumb</span><span class=p>:</span><span class=nd>hover</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-color</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>thumb</span><span class=o>-</span><span class=n>hover</span><span class=o>-</span><span class=kc>color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-track</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-color</span><span class=p>:</span> <span class=nf>var</span><span class=p>(</span><span class=o>--</span><span class=n>scrollbar</span><span class=o>-</span><span class=n>track</span><span class=o>-</span><span class=kc>color</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-thumb</span><span class=o>,</span>\n</span></span><span class=line><span class=cl><span class=p>::</span><span class=nd>-webkit-scrollbar-track</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>background-clip</span><span class=p>:</span> <span class=kc>padding-box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border</span><span class=p>:</span> <span class=mi>3</span><span class=kt>px</span> <span class=kc>solid</span> <span class=kc>transparent</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border-radius</span><span class=p>:</span> <span class=mi>100</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>请注意，当设置 <code>::-webkit-scrollbar</code> 的 <code>width</code> 或 <code>height</code> 时，系统始终会显示叠加层滚动条，实际上会变为经典滚动条。</p><caniuse-embed feature=css-scrollbar past=2 future=1 origin=https://caniuse.lruihao.cn loading=lazy></caniuse-embed><h2 class=heading-element id=总结一下><span>5 总结一下</span>\n<a href=#%e6%80%bb%e7%bb%93%e4%b8%80%e4%b8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以看到，其实就目前 <code>scrollbar-width</code> 而言，其能力还是属于比较鸡肋的。相对正常的样式，仅仅多了一种瘦版样式选择以及提供了无滚动条模式。</p><p>当然，整个 <code>scrollbar-color</code> 和 <code>scrollbar-width</code> 相较于非标准的 <code>::-webkit-scrollbar</code> 规范已经是非常大的一步跨越。只是其功能的丰富性和全面性还需要等待。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/modern-css/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・现代 CSS 解决方案</span></span></a> 5</div><div class=collection-nav><a href=/posts/grid-bg-image/ class=collection-nav-item rel=prev title=\"CSS 如何实现网格背景效果？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>CSS 如何实现网格背景效果？</span>\n</a><a href=/posts/fixit-docs-bookmark/ class=collection-nav-item rel=next title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><span>CSS 实现时间轴、背景图 Loading 和渐变边框</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-28 17:12:48\">更新于 2024-07-28&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8930517d6b79fb9502594cf9384e0a83577448eb rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整合集&#10&#10Commit: 8930517d6b79fb9502594cf9384e0a83577448eb [8930517]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-07-28 17:12:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8930517</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/scrollbar-styling/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/scrollbar-styling/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/scrollbar-styling/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%A0%87%E5%87%86%E6%BB%9A%E5%8A%A8%E6%9D%A1%E6%8E%A7%E5%88%B6%E8%A7%84%E8%8C%83&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%A0%87%E5%87%86%E6%BB%9A%E5%8A%A8%E6%9D%A1%E6%8E%A7%E5%88%B6%E8%A7%84%E8%8C%83%7c%0A%7cURL%7chttps://lruihao.cn/posts/scrollbar-styling/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/scrollbar-styling/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/scrollbar-styling/ data-title=标准滚动条控制规范 data-hashtags=CSS,scrollbar-styling><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/scrollbar-styling/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/scrollbar-styling/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/scrollbar-styling/ data-title=标准滚动条控制规范 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/scrollbar-styling/ data-title=标准滚动条控制规范><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/scrollbar-styling/ class=post-tag title=\"标签 - scrollbar-styling\">scrollbar-styling</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/shortcode-caniuse/ class=post-nav-item rel=prev title=hugo-fixit/shortcode-caniuse><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/shortcode-caniuse</a><a href=/posts/d1fc0c7/ class=post-nav-item rel=next title=\"Amazon S3\">Amazon S3<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#简介>简介</a></li><li><a href=#滚动条入门指南>滚动条入门指南</a><ol><li><a href=#滚动条剖析>滚动条剖析</a></li><li><a href=#传统滚动条和重叠式滚动条>传统滚动条和重叠式滚动条</a><ol><li><a href=#叠加滚动条>叠加滚动条</a></li><li><a href=#经典滚动条>经典滚动条</a></li></ol></li></ol></li><li><a href=#scrollbar-color-和-scrollbar-width-属性>scrollbar-color 和 scrollbar-width 属性</a><ol><li><a href=#scrollbar-color-设置滚动条颜色>scrollbar-color 设置滚动条颜色</a></li><li><a href=#scrollbar-width-设置滚动条粗细>scrollbar-width 设置滚动条粗细</a></li></ol></li><li><a href=#支持旧版浏览器>支持旧版浏览器</a></li><li><a href=#总结一下>总结一下</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a3d4eaca0bbaf2e48cb439525f833eed.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a3d4eaca0bbaf2e48cb439525f833eed.js defer></script><script src=/js/theme.min.js defer></script><script src=/lib/shortcode-caniuse/caniuse-embed-element.iife.js async defer></script><script src=/js/shortcode-caniuse.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/scrollbar-styling/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/scrollbar-styling/index.md",
    "content": "# 标准滚动条控制规范\n\n\n使用 `scrollbar-width` 和 `scrollbar-color` 属性设置滚动条的样式。\n\n<!--more-->\n\n## 简介\n\n从 Chrome 版本 2 开始，可以使用 `::-webkit-scrollbar-*` 伪元素设置滚动条的样式。此方法在 Chrome 和 Safari 中都很有效，但 CSS 工作组从未标准化。\n\n> MDN - ::-webkit-scrollbar Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.\n\n实现标准化的是 `scrollbar-width` 和 `scrollbar-color` 属性，它们是 [CSS Scrollbars Styling Module Level 1](https://drafts.csswg.org/css-scrollbars/#scrollbar-width) 的一部分。从 Chrome 121 开始，这些属性受支持。\n\n## 滚动条入门指南\n\n### 滚动条剖析\n\n滚动条至少由一个轨迹和一个滑块组成。滑道是拇指可以移动的区域。轨迹表示整个滚动距离。滑块表示可滚动区域内的当前位置。滚动时，它会在轨道内移动。拇指通常也是可拖动的。\n\n不过，滚动条可以有多个部分，而不仅仅是滑块和滑道。例如，滚动条可以包含一个或多个用于递增或递减滚动偏移的按钮。滚动条的组成部分由底层操作系统决定。\n\n![组成滚动条的各个部分的图示](images/24_1719585398.png \"左侧插图是一个最小的滚动条，其中只有轨迹和拇指。右边的按钮也有一些按钮。\")\n\n### 传统滚动条和重叠式滚动条\n\n在介绍如何设置滚动条的样式之前，请务必先了解两种滚动条之间的区别。\n\n| 操作系统 | 默认滚动条 |\n| :------- | :--------- |\n| Mac      | 叠加滚动条（Overlay scrollbars） |\n| Windows  | 经典滚动条（Classic scrollbars） |\n\n#### 叠加滚动条\n\n叠加层滚动条是在下方内容之上的浮动滚动条。默认情况下，这些按钮不会显示，只有当主动滚动时才会显示。为了让内容保持可见状态，它们通常采用半透明形式，但这由操作系统来决定。在与它们互动时，它们的大小也可能有所变化。\n\n![带有叠加滚动条的浏览器](images/24_1719585770.png \"滚动条会叠加在内容上；滑块是部分透明的。\")\n\n#### 经典滚动条\n\n传统滚动条是放置在专用_滚动条边线_中的滚动条。滚动条边线是内边框边缘与外内边距边缘之间的空间。这些滚动条通常是不透明的（不透明），并会占用相邻内容的某些空间。\n\n![包含传统滚动条的浏览器图示](images/24_1719585901.png \"滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。\")\n\n## scrollbar-color 和 scrollbar-width 属性\n\n### scrollbar-color 设置滚动条颜色\n\n> 参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-color\n\n借助 `scrollbar-color` 属性，可以更改滚动条的配色方案。该属性接受两个 `<color>` 值。\n\n- 第一个值用于确定滑块（thumb）的颜色\n- 第二个值用于确定要用于轨道（track）的颜色\n\n如需使用操作系统提供的默认呈现方式，请使用 `auto` 作为其值。\n\n```css\n/* 关键字值 */\nscrollbar-color: auto;\n\n/* <color> 值 */\nscrollbar-color: rebeccapurple green; /* 两个有效的颜色。\n第一个应用于滚动条的滑块，第二个应用于轨道。 */\n\n/* 全局值 */\nscrollbar-color: inherit;\nscrollbar-color: initial;\nscrollbar-color: revert;\nscrollbar-color: revert-layer;\nscrollbar-color: unset;\n```\n\n默认情况下，使用叠加滚动条时，轨迹的颜色不起作用。不过，将鼠标悬停在滚动条上时，系统会显示航迹。\n\n### scrollbar-width 设置滚动条粗细\n\n> 参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-width\n\n借助 `scrollbar-width` 属性，可以选择较窄的滚动条，甚至可以完全隐藏滚动条而不影响可滚动性。\n\n接受的值包括 `auto`、`thin` 和 `none`。\n\n- `auto`：平台提供的默认滚动条宽度。\n- `thin`：平台提供的滚动条的细变体，或比默认平台滚动条更细的自定义滚动条。\n- `none`：有效隐藏滚动条。不过，此元素仍然可滚动。\n\n无法使用 `<length>`（例如 `16px`）作为 `scrollbar-width` 的值。\n\n```css\n/* 关键字值 */\nscrollbar-width: auto;\nscrollbar-width: thin;\nscrollbar-width: none;\n\n/* 全局值 */\nscrollbar-width: inherit;\nscrollbar-width: initial;\nscrollbar-width: revert;\nscrollbar-width: revert-layer;\nscrollbar-width: unset;\n```\n\n使用叠加滚动条时，仅当你主动滚动可滚动区域时，才会显示滚动条滑块。\n\n## 支持旧版浏览器\n\n为了满足不支持 `scrollbar-color` 和 `scrollbar-width` 的浏览器版本，可以同时使用新的 `scrollbar-*` 和 `::-webkit-scrollbar-*` 属性。\n\n```css\n/* Modern browsers with `scrollbar-*` support (high priority) */\n@supports (scrollbar-width: auto) {\n  * {\n    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);;\n    scrollbar-width: var(--scrollbar-width);\n  }\n}\n\n/* Legacy browsers with `::-webkit-scrollbar-*` support */\n::-webkit-scrollbar {\n  height: var(--scrollbar-width-legacy);\n  width: var(--scrollbar-width-legacy);\n  overflow: visible;\n}\n::-webkit-scrollbar-button {\n  height: 0;\n  width: 0;\n}\n::-webkit-scrollbar-corner {\n  background-color: var(--scrollbar-track-color);\n}\n::-webkit-scrollbar-thumb {\n  background-color: var(--scrollbar-thumb-color);\n}\n::-webkit-scrollbar-thumb:hover {\n  background-color: var(--scrollbar-thumb-hover-color);\n}\n::-webkit-scrollbar-track {\n  background-color: var(--scrollbar-track-color);\n}\n::-webkit-scrollbar-thumb,\n::-webkit-scrollbar-track {\n  background-clip: padding-box;\n  border: 3px solid transparent;\n  border-radius: 100px;\n}\n```\n\n请注意，当设置 `::-webkit-scrollbar` 的 `width` 或 `height` 时，系统始终会显示叠加层滚动条，实际上会变为经典滚动条。\n\n{{< caniuse \"css-scrollbar\" >}}\n\n## 总结一下\n\n可以看到，其实就目前 `scrollbar-width` 而言，其能力还是属于比较鸡肋的。相对正常的样式，仅仅多了一种瘦版样式选择以及提供了无滚动条模式。\n\n当然，整个 `scrollbar-color` 和 `scrollbar-width` 相较于非标准的 `::-webkit-scrollbar` 规范已经是非常大的一步跨越。只是其功能的丰富性和全面性还需要等待。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/scrollbar-styling/  \n\n"
  },
  {
    "path": "posts/semver/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>语义版本控制（SemVer） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\n\"><meta name=keywords content='SemVer'><meta itemprop=name content=\"语义版本控制（SemVer）\"><meta itemprop=description content=\"摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\"><meta itemprop=datePublished content=\"2022-08-13T13:32:03+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"3026\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"SemVer\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/semver/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"语义版本控制（SemVer）\"><meta property=\"og:description\" content=\"摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2022-08-13T13:32:03+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"SemVer\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"语义版本控制（SemVer）\"><meta name=twitter:description content=\"摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/semver/ title=\"语义版本控制（SemVer） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/commit-spec/ title=\"Commit Message Spec\"><link rel=next type=text/html href=https://lruihao.cn/posts/beego-install/ title=\"Beego 安装及配置\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/semver/index.md title=\"语义版本控制（SemVer） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"语义版本控制（SemVer）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/semver\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"SemVer\",\"wordcount\":3026,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/semver\\/\",\"datePublished\":\"2022-08-13T13:32:03+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/semver/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>语义版本控制（SemVer）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>语义版本控制（SemVer）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a></span></div><div class=post-meta-line><span title=\"发布于 2022-08-13 13:32:03\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-08-13>2022-08-13</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"3026 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 3100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 7 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=语义版本控制（SemVer）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/semver/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/semver/images/featured-image.png height=261 width=529></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#格式>格式</a></li><li><a href=#规范>规范</a></li><li><a href=#版本阶段>版本阶段</a></li><li><a href=#faq>FAQ</a></li><li><a href=#其他相关>其他相关</a><ol><li><a href=#npm-semver>npm SemVer</a></li><li><a href=#版本保留>版本保留</a></li></ol></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition tip open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-lightbulb\" aria-hidden=true></i>摘要<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>版本格式：<code>MAJOR.MINOR.PATCH</code>，版本号递增规则如下：</p><ol><li><code>MAJOR</code>: <strong>主版本号</strong>，当你做了不兼容的 API 修改</li><li><code>MINOR</code>: <strong>次版本号</strong>，当你做了向下兼容的功能性新增</li><li><code>PATCH</code>: <strong>修订号</strong>，当你做了向下兼容的问题修正</li></ol><p>先行版本号及版本编译信息可以加到 <code>MAJOR.MINOR.PATCH</code> 的后面，作为延伸。</p></div></div></div><h2 class=heading-element id=格式><span>1 格式</span>\n<a href=#%e6%a0%bc%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>基本的语法格式如下，更多请参考 <a href=https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions target=_blank rel=\"external nofollow noopener noreferrer\">Backus–Naur Form Grammar for Valid SemVer Versions<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;valid semver&gt; ::= &lt;version core&gt;\n</span></span><span class=line><span class=cl>                 | &lt;version core&gt; &#34;-&#34; &lt;pre-release&gt;\n</span></span><span class=line><span class=cl>                 | &lt;version core&gt; &#34;+&#34; &lt;build&gt;\n</span></span><span class=line><span class=cl>                 | &lt;version core&gt; &#34;-&#34; &lt;pre-release&gt; &#34;+&#34; &lt;build&gt;</span></span></code></pre></td></tr></table></div></div></div><p>范例：</p><p><a class=lightgallery target=_blank href=/posts/semver/images/version-number.png title=version-number data-thumbnail=/posts/semver/images/version-number.png data-sub-html=\"<h2>version-number</h2>\"><img loading=lazy src=/posts/semver/images/version-number.png alt=version-number height=160 width=512></a></p><div class=table-wrapper><table><thead><tr><th>代码状态</th><th>等级</th><th>规则</th><th>版本样例</th></tr></thead><tbody><tr><td>首次发布</td><td>新品发布</td><td>以 1.0.0 开始</td><td>1.0.0</td></tr><tr><td>bug 修复，向后兼容</td><td>补丁版本发布</td><td>变更第三位数字</td><td>1.0.1</td></tr><tr><td>新功能，向后兼容</td><td>次版本发布</td><td>变更第二位数字，并且第三位数字重置为 0</td><td>1.1.0</td></tr><tr><td>重大变更，不向后兼容</td><td>主版本发布</td><td>变更第一位数字，并且第二位，第三位数字重置为 0</td><td>2.0.0</td></tr></tbody></table></div><div class=\"details admonition question open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-regular fa-circle-question\" aria-hidden=true></i>“v1.2.3”是一个语义化版本号吗？<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>“v1.2.3”并不是的一个语义化的版本号。<br>但是，在语义化版本号之前增加前缀“v”是用来表示版本号的常用做法。<br>在版本控制系统中，将“version”缩写为“v”是很常见的。<br>比如：<code>git tag v1.2.3 -m \"Release version 1.2.3\"</code> 中，标签是“v1.2.3”，语义化版本号是“1.2.3”。</div></div></div><h2 class=heading-element id=规范><span>2 规范</span>\n<a href=#%e8%a7%84%e8%8c%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以下关键词 MUST、MUST NOT、REQUIRED、SHALL、SHALL NOT、SHOULD、SHOULD NOT、RECOMMENDED、MAY、OPTIONAL 依照 <a href=https://www.rfc-editor.org/rfc/rfc2119 target=_blank rel=\"external nofollow noopener noreferrer\">RFC 2119<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的叙述解读。</p><details><summary>语义化版本控制规范（SemVer）</summary><ol><li><p>使用语义化版本控制的软件必须（MUST）定义公共 API。该 API 可以在代码中被定义或出现于严谨的文档内。无论何种形式都应该力求精确且完整。</p></li><li><p>标准的版本号必须（MUST）采用 X.Y.Z 的格式，其中 X、Y 和 Z 为非负的整数，且禁止（MUST NOT）在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须（MUST）以数值来递增。例如：1.9.1 -> 1.10.0 -> 1.11.0。</p></li><li><p>标记版本号的软件发行后，禁止（MUST NOT）改变该版本软件的内容。任何修改都必须（MUST）以新版本发行。</p></li><li><p>主版本号为零（0.y.z）的软件处于开发初始阶段，一切都可能随时被改变。这样的公共 API 不应该被视为稳定版。</p></li><li><p>1.0.0 的版本号用于界定公共 API 的形成。这一版本之后所有的版本号更新都基于公共 API 及其修改内容。</p></li><li><p>修订号 Z（x.y.Z | x > 0）必须（MUST）在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。</p></li><li><p>次版本号 Y（x.Y.z | x > 0）必须（MUST）在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用（deprecated）时也必须（MUST）递增。也可以（MAY）在内部程序有大量新功能或改进被加入时递增，其中可以（MAY）包括修订级别的改变。每当次版本号递增时，修订号必须（MUST）归零。</p></li><li><p>主版本号 X（X.y.z | X > 0）必须（MUST）在有任何不兼容的修改被加入公共 API 时递增。其中可以（MAY）包括次版本号及修订级别的改变。每当主版本号递增时，次版本号和修订号必须（MUST）归零。</p></li><li><p>先行版本号可以（MAY）被标注在修订版之后，先加上一个连接号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。数字型的标识符禁止（MUST NOT）在前方补零。先行版的优先级低于相关联的标准版本。被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。范例：1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。</p></li><li><p>版本编译信息可以（MAY）被标注在修订版或先行版本号之后，先加上一个加号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。当判断版本的优先层级时，版本编译信息可（SHOULD）被忽略。因此当两个版本只有在版本编译信息有差别时，属于相同的优先层级。范例：1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。</p></li><li><p>版本的优先层级指的是不同版本在排序时如何比较。</p><ol><li><p>判断优先层级时，必须（MUST）把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较（版本编译信息不在这份比较的列表中）。</p></li><li><p>由左到右依序比较每个标识符，第一个差异值用来决定优先层级：主版本号、次版本号及修订号以数值比较。</p><p>例如：1.0.0 &lt; 2.0.0 &lt; 2.1.0 &lt; 2.1.1。</p></li><li><p>当主版本号、次版本号及修订号都相同时，改以优先层级比较低的先行版本号决定。</p><p>例如：1.0.0-alpha &lt; 1.0.0。</p></li><li><p>有相同主版本号、次版本号及修订号的两个先行版本号，其优先层级必须（MUST）透过由左到右的每个被句点分隔的标识符来比较，直到找到一个差异值后决定：</p><ol><li>只有数字的标识符以数值高低比较。</li><li>有字母或连接号时则逐字以 ASCII 的排序来比较。</li><li>数字的标识符比非数字的标识符优先层级低。</li><li>若开头的标识符都相同时，栏位比较多的先行版本号优先层级比较高。</li></ol><p>例如：1.0.0-alpha &lt; 1.0.0-alpha.1 &lt; 1.0.0-alpha.beta &lt; 1.0.0-beta &lt; 1.0.0-beta.2 &lt; 1.0.0-beta.11 &lt; 1.0.0-rc.1 &lt; 1.0.0</p></li></ol></li></ol></details><h2 class=heading-element id=版本阶段><span>3 版本阶段</span>\n<a href=#%e7%89%88%e6%9c%ac%e9%98%b6%e6%ae%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>Base</code>: 设计阶段，只有相应的设计没有具体的功能实现</li><li><code>Alpha</code>: 软件的初级版本，基本功能已经实现，但存在较多的 bug</li><li><code>Bate</code>: 相对于 Alpha 已经有了很大的进步，消除了严重的 BUG，但还存在一些潜在的 BUG，还需要不断测试</li><li><code>RC</code>: 该版本已经相当成熟了，基本上不存在导致错误的 Bug，与即将发行的正式版本相差无几</li><li><code>RELEASE</code>: 最终发布版本，没有太大的问题</li></ul><p>最终发布版本（<code>RELEASE</code>）之前的所有版本，都称为先行版本（<code>pre-release</code>）。</p><h2 class=heading-element id=faq><span>4 <a href=https://semver.org/lang/zh-CN/#faq target=_blank rel=\"external nofollow noopener noreferrer\">FAQ<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#faq class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=其他相关><span>5 其他相关</span>\n<a href=#%e5%85%b6%e4%bb%96%e7%9b%b8%e5%85%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=npm-semver><span>5.1 npm SemVer</span>\n<a href=#npm-semver class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>通常我们发布一个包到 npm 仓库时，我们的做法是先修改 <code>package.json</code> 为某个版本，然后执行 <code>npm publish</code> 命令。手动修改版本号的做法建立在你对 SemVer 规范特别熟悉的基础之上，否则可能会造成版本混乱。npm 和 yarn 两个包管理都提供了 SemVer 规范的版本控制命令：</p><ul><li><a href=https://docs.npmjs.com/cli/v8/commands/npm-version target=_blank rel=\"external nofollow noopener noreferrer\">npm-version<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://classic.yarnpkg.com/en/docs/cli/version target=_blank rel=\"external nofollow noopener noreferrer\">yarn version<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>npm 发包基础命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 1. 创建一个新的包</span>\n</span></span><span class=line><span class=cl>npm init\n</span></span><span class=line><span class=cl><span class=c1># 2. 查看是否官方源</span>\n</span></span><span class=line><span class=cl>npm config get registry\n</span></span><span class=line><span class=cl><span class=c1># 3. 登录</span>\n</span></span><span class=line><span class=cl>npm login\n</span></span><span class=line><span class=cl><span class=c1># 4. 发布</span>\n</span></span><span class=line><span class=cl>npm publish\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 版本变化 major.minor.patch</span>\n</span></span><span class=line><span class=cl>npm version patch <span class=c1># 升级补丁版本</span>\n</span></span><span class=line><span class=cl>npm version minor <span class=c1># 升级小版号</span>\n</span></span><span class=line><span class=cl>npm version major <span class=c1># 升级大版号</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 下架 [-force]</span>\n</span></span><span class=line><span class=cl>npm unpublish</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>全局设置版本号前缀</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># https://docs.npmjs.com/cli/v8/using-npm/config#tag-version-prefix</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> tag-version-prefix <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1># 全局设置版本更新 commit 提交信息</span>\n</span></span><span class=line><span class=cl><span class=c1># https://docs.npmjs.com/cli/v8/using-npm/config#message</span>\n</span></span><span class=line><span class=cl>npm config <span class=nb>set</span> message <span class=s2>&#34;Chore(release): %s&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>或者设置项目的 <code>.npmrc</code> 或者 <code>.yarnrc</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># .npmrc</span>\n</span></span><span class=line><span class=cl>tag-version-prefix<span class=o>=</span><span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nv>message</span><span class=o>=</span><span class=s2>&#34;Chore(release): %s&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># .yarnrc</span>\n</span></span><span class=line><span class=cl>version-tag-prefix <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>version-git-message <span class=s2>&#34;Chore(release): %s&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>package.json 版本控制规则使用了一些些符号：</p><ul><li><code>^</code></li><li><code>~</code></li><li><code>></code></li><li><code>>=</code></li><li><code>&lt;</code></li><li><code>&lt;=</code></li><li><code>=</code></li><li><code>-</code></li><li><code>||</code></li></ul><p>这些规则的详情如下：</p><ul><li><code>^</code>: 只会执行不更改最左边非零数字的更新。如果写入的是 <code>^0.13.0</code>，则当运行 <code>npm update</code> 时，可以更新到 <code>0.13.1</code>、<code>0.13.2</code> 等，但不能更新到 <code>0.14.0</code> 或更高版本。如果写入的是 <code>^1.13.0</code>，则当运行 <code>npm update</code> 时，可以更新到 <code>1.13.1</code>、<code>1.14.0</code> 等，但不能更新到 <code>2.0.0</code> 或更高版本。</li><li><code>~</code>: 如果写入的是 <code>〜0.13.0</code>，则当运行 <code>npm update</code> 时，会更新到补丁版本：即 <code>0.13.1</code> 可以，但 <code>0.14.0</code> 不可以。</li><li><code>></code>: 接受高于指定版本的任何版本。</li><li><code>>=</code>: 接受等于或高于指定版本的任何版本。</li><li><code>&lt;=</code>: 接受等于或低于指定版本的任何版本。</li><li><code>&lt;</code>: 接受低于指定版本的任何版本。</li><li><code>=</code>: 接受确切的版本。</li><li><code>-</code>: 接受一定范围的版本。例如：<code>2.1.0 - 2.6.2</code>。</li><li><code>||</code>: 组合集合。例如 <code>&lt; 2.1 || > 2.6</code>。</li></ul><p>可以合并其中的一些符号，例如 <code>1.0.0 || >=1.1.0 &lt;1.2.0</code>，即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。</p><p>还有其他的规则：</p><ul><li>无符号：仅接受指定的特定版本（例如 <code>1.2.1</code>）。</li><li><code>latest</code>: 使用可用的最新版本。</li></ul><h3 class=heading-element id=版本保留><span>5.2 版本保留</span>\n<a href=#%e7%89%88%e6%9c%ac%e4%bf%9d%e7%95%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>对于大型软件，每个版本都有使用价值时，应保留所有历史版本</li><li>对于始终以最新版本为准的软件，则可保留至少最近的 10 个次版本</li></ol><h2 class=heading-element id=参考><span>6 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://semver.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Semantic Versioning 2.0.0<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=http://nodejs.cn/learn/semantic-versioning-using-npm target=_blank rel=\"external nofollow noopener noreferrer\">使用 npm 的语义版本控制<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/semver/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/semver/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/semver/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AF%AD%E4%B9%89%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%EF%BC%88SemVer%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AF%AD%E4%B9%89%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6%EF%BC%88SemVer%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/semver/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/semver/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/semver/ data-title=语义版本控制（SemVer） data-hashtags=SemVer><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/semver/ data-hashtag=SemVer><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/semver/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/semver/ data-title=语义版本控制（SemVer） data-image=images/featured-image.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/semver/ data-title=语义版本控制（SemVer）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/semver/ class=post-tag title=\"标签 - SemVer\">SemVer</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/commit-spec/ class=post-nav-item rel=prev title=\"Commit Message Spec\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Commit Message Spec</a><a href=/posts/beego-install/ class=post-nav-item rel=next title=\"Beego 安装及配置\">Beego 安装及配置<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#格式>格式</a></li><li><a href=#规范>规范</a></li><li><a href=#版本阶段>版本阶段</a></li><li><a href=#faq>FAQ</a></li><li><a href=#其他相关>其他相关</a><ol><li><a href=#npm-semver>npm SemVer</a></li><li><a href=#版本保留>版本保留</a></li></ol></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e46127dc2b6b65ea71d5e4f3e66d526b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e46127dc2b6b65ea71d5e4f3e66d526b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/semver/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/semver/index.md",
    "content": "# 语义版本控制（SemVer）\n\n\n{{< admonition tip \"摘要\" >}}\n版本格式：`MAJOR.MINOR.PATCH`，版本号递增规则如下：\n\n1. `MAJOR`: **主版本号**，当你做了不兼容的 API 修改\n2. `MINOR`: **次版本号**，当你做了向下兼容的功能性新增\n3. `PATCH`: **修订号**，当你做了向下兼容的问题修正\n\n先行版本号及版本编译信息可以加到 `MAJOR.MINOR.PATCH` 的后面，作为延伸。\n{{< /admonition >}}\n\n<!--more-->\n\n## 格式\n\n基本的语法格式如下，更多请参考 [Backus–Naur Form Grammar for Valid SemVer Versions](https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions)\n\n```\n<valid semver> ::= <version core>\n                 | <version core> \"-\" <pre-release>\n                 | <version core> \"+\" <build>\n                 | <version core> \"-\" <pre-release> \"+\" <build>\n```\n\n范例：\n\n![version-number](images/version-number.png)\n\n| 代码状态             | 等级         | 规则                                           | 版本样例 |\n| -------------------- | ------------ | ---------------------------------------------- | -------- |\n| 首次发布             | 新品发布     | 以 1.0.0 开始                                  | 1.0.0    |\n| bug 修复，向后兼容   | 补丁版本发布 | 变更第三位数字                                 | 1.0.1    |\n| 新功能，向后兼容     | 次版本发布   | 变更第二位数字，并且第三位数字重置为 0         | 1.1.0    |\n| 重大变更，不向后兼容 | 主版本发布   | 变更第一位数字，并且第二位，第三位数字重置为 0 | 2.0.0    |\n\n{{< admonition question \"“v1.2.3”是一个语义化版本号吗？\" >}}\n“v1.2.3”并不是的一个语义化的版本号。  \n但是，在语义化版本号之前增加前缀“v”是用来表示版本号的常用做法。  \n在版本控制系统中，将“version”缩写为“v”是很常见的。  \n比如：`git tag v1.2.3 -m \"Release version 1.2.3\"` 中，标签是“v1.2.3”，语义化版本号是“1.2.3”。\n{{< /admonition >}}\n\n## 规范\n\n以下关键词 MUST、MUST NOT、REQUIRED、SHALL、SHALL NOT、SHOULD、SHOULD NOT、RECOMMENDED、MAY、OPTIONAL 依照 [RFC 2119](https://www.rfc-editor.org/rfc/rfc2119) 的叙述解读。\n\n{{< details \"语义化版本控制规范（SemVer）\" >}}\n\n1. 使用语义化版本控制的软件必须（MUST）定义公共 API。该 API 可以在代码中被定义或出现于严谨的文档内。无论何种形式都应该力求精确且完整。\n\n2. 标准的版本号必须（MUST）采用 X.Y.Z 的格式，其中 X、Y 和 Z 为非负的整数，且禁止（MUST NOT）在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须（MUST）以数值来递增。例如：1.9.1 -> 1.10.0 -> 1.11.0。\n\n3. 标记版本号的软件发行后，禁止（MUST NOT）改变该版本软件的内容。任何修改都必须（MUST）以新版本发行。\n\n4. 主版本号为零（0.y.z）的软件处于开发初始阶段，一切都可能随时被改变。这样的公共 API 不应该被视为稳定版。\n\n5. 1.0.0 的版本号用于界定公共 API 的形成。这一版本之后所有的版本号更新都基于公共 API 及其修改内容。\n\n6. 修订号 Z（x.y.Z | x > 0）必须（MUST）在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。\n\n7. 次版本号 Y（x.Y.z | x > 0）必须（MUST）在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用（deprecated）时也必须（MUST）递增。也可以（MAY）在内部程序有大量新功能或改进被加入时递增，其中可以（MAY）包括修订级别的改变。每当次版本号递增时，修订号必须（MUST）归零。\n\n8. 主版本号 X（X.y.z | X > 0）必须（MUST）在有任何不兼容的修改被加入公共 API 时递增。其中可以（MAY）包括次版本号及修订级别的改变。每当主版本号递增时，次版本号和修订号必须（MUST）归零。\n\n9. 先行版本号可以（MAY）被标注在修订版之后，先加上一个连接号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。数字型的标识符禁止（MUST NOT）在前方补零。先行版的优先级低于相关联的标准版本。被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。范例：1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。\n\n10. 版本编译信息可以（MAY）被标注在修订版或先行版本号之后，先加上一个加号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。当判断版本的优先层级时，版本编译信息可（SHOULD）被忽略。因此当两个版本只有在版本编译信息有差别时，属于相同的优先层级。范例：1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。\n\n11. 版本的优先层级指的是不同版本在排序时如何比较。\n\n    1. 判断优先层级时，必须（MUST）把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较（版本编译信息不在这份比较的列表中）。\n\n    2. 由左到右依序比较每个标识符，第一个差异值用来决定优先层级：主版本号、次版本号及修订号以数值比较。\n\n       例如：1.0.0 < 2.0.0 < 2.1.0 < 2.1.1。\n\n    3. 当主版本号、次版本号及修订号都相同时，改以优先层级比较低的先行版本号决定。\n\n       例如：1.0.0-alpha < 1.0.0。\n\n    4. 有相同主版本号、次版本号及修订号的两个先行版本号，其优先层级必须（MUST）透过由左到右的每个被句点分隔的标识符来比较，直到找到一个差异值后决定：\n\n       1. 只有数字的标识符以数值高低比较。\n       2. 有字母或连接号时则逐字以 ASCII 的排序来比较。\n       3. 数字的标识符比非数字的标识符优先层级低。\n       4. 若开头的标识符都相同时，栏位比较多的先行版本号优先层级比较高。\n\n       例如：1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0\n\n{{< /details >}}\n\n## 版本阶段\n\n- `Base`: 设计阶段，只有相应的设计没有具体的功能实现\n- `Alpha`: 软件的初级版本，基本功能已经实现，但存在较多的 bug\n- `Bate`: 相对于 Alpha 已经有了很大的进步，消除了严重的 BUG，但还存在一些潜在的 BUG，还需要不断测试\n- `RC`: 该版本已经相当成熟了，基本上不存在导致错误的 Bug，与即将发行的正式版本相差无几\n- `RELEASE`: 最终发布版本，没有太大的问题\n\n最终发布版本（`RELEASE`）之前的所有版本，都称为先行版本（`pre-release`）。\n\n## [FAQ](https://semver.org/lang/zh-CN/#faq)\n\n## 其他相关\n\n### npm SemVer\n\n通常我们发布一个包到 npm 仓库时，我们的做法是先修改 `package.json` 为某个版本，然后执行 `npm publish` 命令。手动修改版本号的做法建立在你对 SemVer 规范特别熟悉的基础之上，否则可能会造成版本混乱。npm 和 yarn 两个包管理都提供了 SemVer 规范的版本控制命令：\n\n- [npm-version](https://docs.npmjs.com/cli/v8/commands/npm-version)\n- [yarn version](https://classic.yarnpkg.com/en/docs/cli/version)\n\nnpm 发包基础命令：\n\n```bash\n# 1. 创建一个新的包\nnpm init\n# 2. 查看是否官方源\nnpm config get registry\n# 3. 登录\nnpm login\n# 4. 发布\nnpm publish\n\n# 版本变化 major.minor.patch\nnpm version patch # 升级补丁版本\nnpm version minor # 升级小版号\nnpm version major # 升级大版号\n\n# 下架 [-force]\nnpm unpublish\n```\n\n全局设置版本号前缀\n\n```bash\n# https://docs.npmjs.com/cli/v8/using-npm/config#tag-version-prefix\nnpm config set tag-version-prefix \"\"\n# 全局设置版本更新 commit 提交信息\n# https://docs.npmjs.com/cli/v8/using-npm/config#message\nnpm config set message \"Chore(release): %s\"\n```\n\n或者设置项目的 `.npmrc` 或者 `.yarnrc`\n\n```bash\n# .npmrc\ntag-version-prefix=\"\"\nmessage=\"Chore(release): %s\"\n\n# .yarnrc\nversion-tag-prefix \"\"\nversion-git-message \"Chore(release): %s\"\n```\n\npackage.json 版本控制规则使用了一些些符号：\n\n- `^`\n- `~`\n- `>`\n- `>=`\n- `<`\n- `<=`\n- `=`\n- `-`\n- `||`\n\n这些规则的详情如下：\n\n- `^`: 只会执行不更改最左边非零数字的更新。如果写入的是 `^0.13.0`，则当运行 `npm update` 时，可以更新到 `0.13.1`、`0.13.2` 等，但不能更新到 `0.14.0` 或更高版本。如果写入的是 `^1.13.0`，则当运行 `npm update` 时，可以更新到 `1.13.1`、`1.14.0` 等，但不能更新到 `2.0.0` 或更高版本。\n- `~`: 如果写入的是 `〜0.13.0`，则当运行 `npm update` 时，会更新到补丁版本：即 `0.13.1` 可以，但 `0.14.0` 不可以。\n- `>`: 接受高于指定版本的任何版本。\n- `>=`: 接受等于或高于指定版本的任何版本。\n- `<=`: 接受等于或低于指定版本的任何版本。\n- `<`: 接受低于指定版本的任何版本。\n- `=`: 接受确切的版本。\n- `-`: 接受一定范围的版本。例如：`2.1.0 - 2.6.2`。\n- `||`: 组合集合。例如 `< 2.1 || > 2.6`。\n\n可以合并其中的一些符号，例如 `1.0.0 || >=1.1.0 <1.2.0`，即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。\n\n还有其他的规则：\n\n- 无符号：仅接受指定的特定版本（例如 `1.2.1`）。\n- `latest`: 使用可用的最新版本。\n\n### 版本保留\n\n1. 对于大型软件，每个版本都有使用价值时，应保留所有历史版本\n2. 对于始终以最新版本为准的软件，则可保留至少最近的 10 个次版本\n\n## 参考\n\n- [Semantic Versioning 2.0.0](https://semver.org/)\n- [使用 npm 的语义版本控制](http://nodejs.cn/learn/semantic-versioning-using-npm)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/semver/  \n\n"
  },
  {
    "path": "posts/shell/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Shell 脚本初体验 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\n\"><meta name=keywords content='shell,linux'><meta itemprop=name content=\"shell 脚本初体验\"><meta itemprop=description content=\"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\"><meta itemprop=datePublished content=\"2018-10-29T11:57:39+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"564\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"shell,linux\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/shell/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"shell 脚本初体验\"><meta property=\"og:description\" content=\"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-29T11:57:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"shell\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"shell 脚本初体验\"><meta name=twitter:description content=\"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/shell/ title=\"shell 脚本初体验 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/web-server-yun/ title=\"云服务器 CentOS 系统搭建 web 服务\"><link rel=next type=text/html href=https://lruihao.cn/posts/beian/ title=网站备案之旅><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/shell/index.md title=\"shell 脚本初体验 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"shell 脚本初体验\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/shell\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"shell, linux\",\"wordcount\":564,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/shell\\/\",\"datePublished\":\"2018-10-29T11:57:39+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/shell/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Shell 脚本初体验</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Shell 脚本初体验</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-29 11:57:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-29>2018-10-29</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"564 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Shell 脚本初体验\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>今天上机学了几个小命令</p><ul><li>read</li><li>echo</li><li>if</li></ul><p>然后自己写了一个小脚本觉得还挺有趣的</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-sh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-sh data-lang=sh><span class=line><span class=cl><span class=cp>#!/bin/bash\n</span></span></span><span class=line><span class=cl><span class=c1>#liruihao</span>\n</span></span><span class=line><span class=cl><span class=c1>#menu.sh</span>\n</span></span><span class=line><span class=cl><span class=c1>#sudo apt curl install nyancat sl figlet toilet cowsay</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;-------------菜-单--------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;------------1-打印二维码--------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;------------2-彩虹猫------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;------------3-小火切------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;------------4-打字机------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;------------5-小许牛------------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;----------Ctrl+c 暂停程序--------&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;请输入序号！&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>read</span> i\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=nb>test</span> <span class=nv>$i</span> -eq <span class=m>1</span>\n</span></span><span class=line><span class=cl><span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;请输入网址！&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>read</span> s1\n</span></span><span class=line><span class=cl>         <span class=nb>echo</span> <span class=nv>$s1</span> <span class=p>|</span>curl -F-<span class=o>=</span><span class=se>\\&lt;</span>- qrenco.de\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=nb>test</span> <span class=nv>$i</span> -eq <span class=m>2</span>\n</span></span><span class=line><span class=cl><span class=k>then</span>\n</span></span><span class=line><span class=cl>  nyancat\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=nb>test</span> <span class=nv>$i</span> -eq <span class=m>3</span>\n</span></span><span class=line><span class=cl><span class=k>then</span>\n</span></span><span class=line><span class=cl>  sl\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=nb>test</span> <span class=nv>$i</span> -eq <span class=m>4</span>\n</span></span><span class=line><span class=cl><span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;请输入字符串！&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>read</span> s2\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;选择样式：&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;------样式 1-----&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;------样式 2-----&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>read</span> j\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=nb>test</span> <span class=nv>$j</span> -eq <span class=m>1</span>\n</span></span><span class=line><span class=cl>  <span class=k>then</span>\n</span></span><span class=line><span class=cl>    figlet <span class=nv>$s2</span>\n</span></span><span class=line><span class=cl>  <span class=k>else</span>\n</span></span><span class=line><span class=cl>    toilet -f mono12 -F gay <span class=nv>$s2</span>\n</span></span><span class=line><span class=cl>  <span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=nb>test</span> <span class=nv>$i</span> -eq <span class=m>5</span>\n</span></span><span class=line><span class=cl><span class=k>then</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;请输入字符串！&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>read</span> s3\n</span></span><span class=line><span class=cl>  cowsay <span class=nv>$s3</span>\n</span></span><span class=line><span class=cl><span class=k>fi</span>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;任意建继续！&#34;</span>\n</span></span><span class=line><span class=cl><span class=nb>read</span> x\n</span></span><span class=line><span class=cl>clear\n</span></span><span class=line><span class=cl>./menu.sh</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/shell/images/1.png title=1 data-thumbnail=/posts/shell/images/1.png data-sub-html=\"<h2>1</h2>\"><img loading=lazy src=/posts/shell/images/1.png alt=1 height=1080 width=1920></a>\n<a class=lightgallery target=_blank href=/posts/shell/images/2.png title=2 data-thumbnail=/posts/shell/images/2.png data-sub-html=\"<h2>2</h2>\"><img loading=lazy src=/posts/shell/images/2.png alt=2 height=1080 width=1920></a>\n<a class=lightgallery target=_blank href=/posts/shell/images/3.png title=3 data-thumbnail=/posts/shell/images/3.png data-sub-html=\"<h2>3</h2>\"><img loading=lazy src=/posts/shell/images/3.png alt=3 height=1080 width=1920></a>\n<a class=lightgallery target=_blank href=/posts/shell/images/4.1.png title=4.1 data-thumbnail=/posts/shell/images/4.1.png data-sub-html=\"<h2>4.1</h2>\"><img loading=lazy src=/posts/shell/images/4.1.png alt=4.1 height=1080 width=1920></a>\n<a class=lightgallery target=_blank href=/posts/shell/images/4.2.png title=4.2 data-thumbnail=/posts/shell/images/4.2.png data-sub-html=\"<h2>4.2</h2>\"><img loading=lazy src=/posts/shell/images/4.2.png alt=4.2 height=1080 width=1920></a>\n<a class=lightgallery target=_blank href=/posts/shell/images/5.png title=5 data-thumbnail=/posts/shell/images/5.png data-sub-html=\"<h2>5</h2>\"><img loading=lazy src=/posts/shell/images/5.png alt=5 height=1080 width=1920></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/shell/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/shell/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/shell/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20shell+%E8%84%9A%E6%9C%AC%E5%88%9D%E4%BD%93%E9%AA%8C&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cshell+%E8%84%9A%E6%9C%AC%E5%88%9D%E4%BD%93%E9%AA%8C%7c%0A%7cURL%7chttps://lruihao.cn/posts/shell/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/shell/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/shell/ data-title=\"Shell 脚本初体验\" data-hashtags=shell,linux><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/shell/ data-hashtag=shell><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/shell/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/shell/ data-title=\"Shell 脚本初体验\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/shell/ data-title=\"Shell 脚本初体验\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/shell/ class=post-tag title=\"标签 - shell\">shell</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/web-server-yun/ class=post-nav-item rel=prev title=\"云服务器 CentOS 系统搭建 Web 服务\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a><a href=/posts/beian/ class=post-nav-item rel=next title=网站备案之旅>网站备案之旅<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/321e4c6811fb3e2ea089d57ac3b040bd.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/321e4c6811fb3e2ea089d57ac3b040bd.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/shell/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/shell/index.md",
    "content": "# Shell 脚本初体验\n\n\n今天上机学了几个小命令\n\n- read\n- echo\n- if\n\n然后自己写了一个小脚本觉得还挺有趣的\n\n<!--more-->\n\n```sh\n#!/bin/bash\n#liruihao\n#menu.sh\n#sudo apt curl install nyancat sl figlet toilet cowsay\necho \"-------------菜-单--------------\"\necho \"------------1-打印二维码--------\"\necho \"------------2-彩虹猫------------\"\necho \"------------3-小火切------------\"\necho \"------------4-打字机------------\"\necho \"------------5-小许牛------------\"\necho \"----------Ctrl+c 暂停程序--------\"\necho \"\"\necho \"请输入序号！\"\nread i\nif test $i -eq 1\nthen\n  echo \"请输入网址！\"\n  read s1\n         echo $s1 |curl -F-=\\<- qrenco.de\nfi\nif test $i -eq 2\nthen\n  nyancat\nfi\nif test $i -eq 3\nthen\n  sl\nfi\nif test $i -eq 4\nthen\n  echo \"请输入字符串！\"\n  read s2\n  echo \"选择样式：\"\n  echo \"------样式 1-----\"\n  echo \"------样式 2-----\"\n  read j\n  if test $j -eq 1\n  then\n    figlet $s2\n  else\n    toilet -f mono12 -F gay $s2\n  fi\nfi\nif test $i -eq 5\nthen\n  echo \"请输入字符串！\"\n  read s3\n  cowsay $s3\nfi\necho \"任意建继续！\"\nread x\nclear\n./menu.sh\n\n```\n\n![1](images/1.png)\n![2](images/2.png)\n![3](images/3.png)\n![4.1](images/4.1.png)\n![4.2](images/4.2.png)\n![5](images/5.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/shell/  \n\n"
  },
  {
    "path": "posts/singlethreaddown/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 实现一个单线程的资源下载器 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\n\"><meta name=keywords content='GUI,URLConnection,HTTP,Java'><meta itemprop=name content=\"java 实现一个单线程的资源下载器\"><meta itemprop=description content=\"实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\"><meta itemprop=datePublished content=\"2019-05-08T20:55:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1121\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GUI,URLConnection,HTTP,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/singlethreaddown/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 实现一个单线程的资源下载器\"><meta property=\"og:description\" content=\"实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-05-08T20:55:02+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"GUI\"><meta property=\"article:tag\" content=\"URLConnection\"><meta property=\"article:tag\" content=\"HTTP\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 实现一个单线程的资源下载器\"><meta name=twitter:description content=\"实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/singlethreaddown/ title=\"java 实现一个单线程的资源下载器 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/jsoninfo/ title=\"Python 如何操作 Json？\"><link rel=next type=text/html href=https://lruihao.cn/posts/pyinstallererror/ title=\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/singlethreaddown/index.md title=\"java 实现一个单线程的资源下载器 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 实现一个单线程的资源下载器\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/singlethreaddown\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"GUI, URLConnection, HTTP, Java\",\"wordcount\":1121,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/singlethreaddown\\/\",\"datePublished\":\"2019-05-08T20:55:02+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/singlethreaddown/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 实现一个单线程的资源下载器</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 实现一个单线程的资源下载器</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-05-08 20:55:02\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-05-08>2019-05-08</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1121 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 实现一个单线程的资源下载器\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/singlethreaddown/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/singlethreaddown/images/1.png height=286 width=626></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#gui-设计基本流程>GUI 设计基本流程</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#运行结果测试>运行结果测试</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。</p></blockquote><h2 class=heading-element id=gui-设计基本流程><span>1 GUI 设计基本流程</span>\n<a href=#gui-%e8%ae%be%e8%ae%a1%e5%9f%ba%e6%9c%ac%e6%b5%81%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>先记录一下 GUI 设计的基本流程：</p><ol><li>根据需要从相应的顶层容器继承（如果创建窗体就继承 JFrame，对话框就继承 JDialog），新建一个子类。</li><li>然后设置顶层容器的属性，包括大小、位置、标题和关闭事件等。</li><li>设置界面上 GUI 组件的事件响应。 <code>public void actionPerformed(ActionEvent e) {}</code></li><li>向顶层容器上添加 GUI 组件，并设置布局。（通常利用 JPanel 组件先作为微型容器）</li><li>创建新建子类的实例，调用 setVisible(true) 方法显示页面。（也可以直接在子类中设置 setVisible(true)）</li></ol><h2 class=heading-element id=实现代码><span>2 实现代码</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span><span class=lnt>92\n</span><span class=lnt>93\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>cn.lruihao.base</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.FlowLayout</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.Font</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.HeadlessException</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.event.ActionEvent</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.awt.event.ActionListener</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.FileOutputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.io.InputStream</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.net.URL</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>java.net.URLConnection</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JButton</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JFrame</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JLabel</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JOptionPane</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JPanel</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kn>import</span><span class=w> </span><span class=nn>javax.swing.JTextField</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>SingleThreadDown</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>JFrame</span><span class=w> </span><span class=kd>implements</span><span class=w> </span><span class=n>ActionListener</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>JPanel</span><span class=w> </span><span class=n>panel</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>JPanel</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>JLabel</span><span class=w> </span><span class=n>label1</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>JLabel</span><span class=p>(</span><span class=s>&#34;网络资源的单线程下载：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>private</span><span class=w> </span><span class=kd>final</span><span class=w> </span><span class=n>JLabel</span><span class=w> </span><span class=n>label2</span><span class=o>=</span><span class=k>new</span><span class=w> </span><span class=n>JLabel</span><span class=p>(</span><span class=s>&#34;网络资源的网址：&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>JButton</span><span class=w> </span><span class=n>StartButton</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>JButton</span><span class=p>(</span><span class=s>&#34;单击开始下载&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>JButton</span><span class=w> </span><span class=n>resetButton</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>JButton</span><span class=p>(</span><span class=s>&#34;清空&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>JButton</span><span class=w> </span><span class=n>exitButton</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>JButton</span><span class=p>(</span><span class=s>&#34;退出&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>JTextField</span><span class=w> </span><span class=n>urlField</span><span class=w>  </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>JTextField</span><span class=p>(</span><span class=n>20</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>SingleThreadDown</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>setLayout</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>FlowLayout</span><span class=p>());</span><span class=w> </span><span class=c1>//布局管理器</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>label1</span><span class=p>.</span><span class=na>setFont</span><span class=p>(</span><span class=k>new</span><span class=w> </span><span class=n>Font</span><span class=p>(</span><span class=s>&#34;雅黑&#34;</span><span class=p>,</span><span class=n>Font</span><span class=p>.</span><span class=na>BOLD</span><span class=p>,</span><span class=n>15</span><span class=p>));</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>label1</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>label2</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>urlField</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>StartButton</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>resetButton</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>panel</span><span class=p>.</span><span class=na>add</span><span class=p>(</span><span class=n>exitButton</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setContentPane</span><span class=p>(</span><span class=n>panel</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setSize</span><span class=p>(</span><span class=n>400</span><span class=p>,</span><span class=n>200</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setLocation</span><span class=p>(</span><span class=n>400</span><span class=p>,</span><span class=n>400</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setVisible</span><span class=p>(</span><span class=kc>true</span><span class=p>);</span><span class=w> </span><span class=c1>//面板可视化，也可以在 main 中通过 JFrame 子类对象调用方法设置</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>setDefaultCloseOperation</span><span class=p>(</span><span class=n>JFrame</span><span class=p>.</span><span class=na>EXIT_ON_CLOSE</span><span class=p>);</span><span class=w> </span><span class=c1>//默认关闭事件</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>StartButton</span><span class=p>.</span><span class=na>addActionListener</span><span class=p>(</span><span class=k>this</span><span class=p>);</span><span class=c1>//添加点击事件，传入 ActionListener 对象，由于子类继承了 ActionListener 接口，所以 this</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>resetButton</span><span class=p>.</span><span class=na>addActionListener</span><span class=p>(</span><span class=k>this</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>exitButton</span><span class=p>.</span><span class=na>addActionListener</span><span class=p>(</span><span class=k>this</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>download</span><span class=p>(</span><span class=n>String</span><span class=w> </span><span class=n>address</span><span class=p>)</span><span class=w> </span><span class=kd>throws</span><span class=w> </span><span class=n>Exception</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>URL</span><span class=w> </span><span class=n>url</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>URL</span><span class=p>(</span><span class=n>address</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>URLConnection</span><span class=w> </span><span class=n>urlcon</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>url</span><span class=p>.</span><span class=na>openConnection</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>urlcon</span><span class=p>.</span><span class=na>connect</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>InputStream</span><span class=w> </span><span class=n>in</span><span class=o>=</span><span class=n>urlcon</span><span class=p>.</span><span class=na>getInputStream</span><span class=p>();</span><span class=c1>//获取的字节流对象</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=n>filePath</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>url</span><span class=p>.</span><span class=na>getFile</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>pos</span><span class=o>=</span><span class=n>filePath</span><span class=p>.</span><span class=na>lastIndexOf</span><span class=p>(</span><span class=s>&#34;/&#34;</span><span class=p>);</span><span class=w> </span><span class=c1>//&#34;/&#34;分割的最后一个串的下标</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>String</span><span class=w> </span><span class=n>fileName</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>filePath</span><span class=p>.</span><span class=na>substring</span><span class=p>(</span><span class=n>pos</span><span class=o>+</span><span class=n>1</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>FileOutputStream</span><span class=w> </span><span class=n>out</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>FileOutputStream</span><span class=p>(</span><span class=s>&#34;C:\\\\Users\\\\李瑞豪、\\Desktop\\\\&#34;</span><span class=o>+</span><span class=n>fileName</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>byte</span><span class=o>[]</span><span class=w> </span><span class=n>b</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=kt>byte</span><span class=o>[</span><span class=n>1024</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>len</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>while</span><span class=p>((</span><span class=n>len</span><span class=o>=</span><span class=n>in</span><span class=p>.</span><span class=na>read</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>1024</span><span class=p>))</span><span class=o>!=-</span><span class=n>1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>out</span><span class=p>.</span><span class=na>write</span><span class=p>(</span><span class=n>b</span><span class=p>,</span><span class=n>0</span><span class=p>,</span><span class=n>len</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>out</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>in</span><span class=p>.</span><span class=na>close</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>JOptionPane</span><span class=p>.</span><span class=na>showMessageDialog</span><span class=p>(</span><span class=k>this</span><span class=p>,</span><span class=w> </span><span class=s>&#34;下载完毕&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nd>@Override</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>actionPerformed</span><span class=p>(</span><span class=n>ActionEvent</span><span class=w> </span><span class=n>e</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>e</span><span class=p>.</span><span class=na>getSource</span><span class=p>()</span><span class=o>==</span><span class=n>StartButton</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>if</span><span class=p>(</span><span class=s>&#34;&#34;</span><span class=p>.</span><span class=na>equals</span><span class=p>(</span><span class=n>urlField</span><span class=p>.</span><span class=na>getText</span><span class=p>())){</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>JOptionPane</span><span class=p>.</span><span class=na>showMessageDialog</span><span class=p>(</span><span class=k>this</span><span class=p>,</span><span class=w> </span><span class=s>&#34;请输入资源地址&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>String</span><span class=w> </span><span class=n>url</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>urlField</span><span class=p>.</span><span class=na>getText</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>try</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>download</span><span class=p>(</span><span class=n>url</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w> </span><span class=k>catch</span><span class=w> </span><span class=p>(</span><span class=n>Exception</span><span class=w> </span><span class=n>e1</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>JOptionPane</span><span class=p>.</span><span class=na>showMessageDialog</span><span class=p>(</span><span class=k>this</span><span class=p>,</span><span class=w> </span><span class=s>&#34;资源地址有误，请检查~&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>e1</span><span class=p>.</span><span class=na>printStackTrace</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>e</span><span class=p>.</span><span class=na>getSource</span><span class=p>()</span><span class=o>==</span><span class=n>resetButton</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>urlField</span><span class=p>.</span><span class=na>setText</span><span class=p>(</span><span class=s>&#34;&#34;</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>System</span><span class=p>.</span><span class=na>exit</span><span class=p>(</span><span class=n>0</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>new</span><span class=w> </span><span class=n>SingleThreadDown</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=运行结果测试><span>3 运行结果测试</span>\n<a href=#%e8%bf%90%e8%a1%8c%e7%bb%93%e6%9e%9c%e6%b5%8b%e8%af%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通过<code>https://github.com/Lruihao/Grocery/raw/master/fonts/MMT_last.ttf</code>下载沐目体 ttf 字体文件，稍微等待一下弹出对话框“下载完毕”，经检查下载内容正常。</p><p><a class=lightgallery target=_blank href=/posts/singlethreaddown/images/1.png title=运行效果 data-thumbnail=/posts/singlethreaddown/images/1.png data-sub-html=\"<h2>运行效果</h2>\"><img loading=lazy src=/posts/singlethreaddown/images/1.png alt=运行效果 height=286 width=626></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/singlethreaddown/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/singlethreaddown/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/singlethreaddown/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E5%8D%95%E7%BA%BF%E7%A8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%8B%E8%BD%BD%E5%99%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%E5%8D%95%E7%BA%BF%E7%A8%8B%E7%9A%84%E8%B5%84%E6%BA%90%E4%B8%8B%E8%BD%BD%E5%99%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/singlethreaddown/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/singlethreaddown/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/singlethreaddown/ data-title=\"Java 实现一个单线程的资源下载器\" data-hashtags=GUI,URLConnection,HTTP,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/singlethreaddown/ data-hashtag=GUI><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/singlethreaddown/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/singlethreaddown/ data-title=\"Java 实现一个单线程的资源下载器\" data-image=images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/singlethreaddown/ data-title=\"Java 实现一个单线程的资源下载器\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gui/ class=post-tag title=\"标签 - GUI\">GUI</a><a href=/tags/urlconnection/ class=post-tag title=\"标签 - URLConnection\">URLConnection</a><a href=/tags/http/ class=post-tag title=\"标签 - HTTP\">HTTP</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/jsoninfo/ class=post-nav-item rel=prev title=\"Python 如何操作 Json？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 如何操作 Json？</a><a href=/posts/pyinstallererror/ class=post-nav-item rel=next title=\"安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包\">安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#gui-设计基本流程>GUI 设计基本流程</a></li><li><a href=#实现代码>实现代码</a></li><li><a href=#运行结果测试>运行结果测试</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/decdfc6ce8b9de00d594b2ca783388f1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/decdfc6ce8b9de00d594b2ca783388f1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/singlethreaddown/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/singlethreaddown/index.md",
    "content": "# Java 实现一个单线程的资源下载器\n\n\n> 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\n\n<!--more-->\n\n## GUI 设计基本流程\n\n先记录一下 GUI 设计的基本流程：\n\n1. 根据需要从相应的顶层容器继承（如果创建窗体就继承 JFrame，对话框就继承 JDialog），新建一个子类。\n2. 然后设置顶层容器的属性，包括大小、位置、标题和关闭事件等。\n3. 设置界面上 GUI 组件的事件响应。 `public void actionPerformed(ActionEvent e) {}`\n4. 向顶层容器上添加 GUI 组件，并设置布局。（通常利用 JPanel 组件先作为微型容器）\n5. 创建新建子类的实例，调用 setVisible(true) 方法显示页面。（也可以直接在子类中设置 setVisible(true)）\n\n## 实现代码\n\n```java\npackage cn.lruihao.base;\n\nimport java.awt.FlowLayout;\nimport java.awt.Font;\nimport java.awt.HeadlessException;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.io.FileOutputStream;\nimport java.io.InputStream;\nimport java.net.URL;\nimport java.net.URLConnection;\n\nimport javax.swing.JButton;\nimport javax.swing.JFrame;\nimport javax.swing.JLabel;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPanel;\nimport javax.swing.JTextField;\n\npublic class SingleThreadDown extends JFrame implements ActionListener {\n  private final JPanel panel=new JPanel();\n  private final JLabel label1=new JLabel(\"网络资源的单线程下载：\");\n  private final JLabel label2=new JLabel(\"网络资源的网址：\");\n  JButton StartButton = new JButton(\"单击开始下载\");\n  JButton resetButton = new JButton(\"清空\");\n  JButton exitButton = new JButton(\"退出\");\n  JTextField urlField  = new JTextField(20);\n\n  public SingleThreadDown() {\n    panel.setLayout(new FlowLayout()); //布局管理器\n    label1.setFont(new Font(\"雅黑\",Font.BOLD,15));\n    panel.add(label1);\n    panel.add(label2);\n    panel.add(urlField);\n    panel.add(StartButton);\n    panel.add(resetButton);\n    panel.add(exitButton);\n    setContentPane(panel);\n    setSize(400,200);\n    setLocation(400,400);\n    setVisible(true); //面板可视化，也可以在 main 中通过 JFrame 子类对象调用方法设置\n    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默认关闭事件\n    StartButton.addActionListener(this);//添加点击事件，传入 ActionListener 对象，由于子类继承了 ActionListener 接口，所以 this\n    resetButton.addActionListener(this);\n    exitButton.addActionListener(this);\n  }\n\n  public void download(String address) throws Exception {\n    URL url = new URL(address);\n    URLConnection urlcon = url.openConnection();\n    urlcon.connect();\n    InputStream in=urlcon.getInputStream();//获取的字节流对象\n    String filePath = url.getFile();\n    int pos=filePath.lastIndexOf(\"/\"); //\"/\"分割的最后一个串的下标\n    String fileName = filePath.substring(pos+1);\n    FileOutputStream out = new FileOutputStream(\"C:\\\\Users\\\\李瑞豪、\\Desktop\\\\\"+fileName);\n    byte[] b = new byte[1024];\n    int len=0;\n    while((len=in.read(b,0,1024))!=-1) {\n      out.write(b,0,len);\n    }\n    out.close();\n    in.close();\n    JOptionPane.showMessageDialog(this, \"下载完毕\");\n  }\n\n  @Override\n  public void actionPerformed(ActionEvent e) {\n    if(e.getSource()==StartButton) {\n      if(\"\".equals(urlField.getText())){\n        JOptionPane.showMessageDialog(this, \"请输入资源地址\");\n      }\n      String url = urlField.getText();\n      try {\n        download(url);\n      } catch (Exception e1) {\n        JOptionPane.showMessageDialog(this, \"资源地址有误，请检查~\");\n        e1.printStackTrace();\n      }\n    }else if(e.getSource()==resetButton) {\n      urlField.setText(\"\");\n    }else {\n      System.exit(0);\n    }\n\n  }\n\n  public static void main(String[] args) {\n    new SingleThreadDown();\n\n  }\n\n}\n```\n\n## 运行结果测试\n\n通过`https://github.com/Lruihao/Grocery/raw/master/fonts/MMT_last.ttf`下载沐目体 ttf 字体文件，稍微等待一下弹出对话框“下载完毕”，经检查下载内容正常。\n\n![运行效果](images/1.png)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/singlethreaddown/  \n\n"
  },
  {
    "path": "posts/site-time/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>设置网站运行时间 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 使用javascript计算博客等网站的运行时间。\n\"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"设置网站运行时间\"><meta itemprop=description content=\"使用javascript计算博客等网站的运行时间。\"><meta itemprop=datePublished content=\"2019-09-19T22:03:29+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"389\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/site-time/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"设置网站运行时间\"><meta property=\"og:description\" content=\"使用javascript计算博客等网站的运行时间。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-09-19T22:03:29+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"设置网站运行时间\"><meta name=twitter:description content=\"使用javascript计算博客等网站的运行时间。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/site-time/ title=\"设置网站运行时间 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/async-defer/ title=\"script 的三种加载方式 (async, defer)\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/mmt/ title=\"沐目之，湘也。— 沐目体\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/site-time/index.md title=\"设置网站运行时间 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"设置网站运行时间\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/site-time\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":389,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/site-time\\/\",\"datePublished\":\"2019-09-19T22:03:29+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/site-time/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>设置网站运行时间</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>设置网站运行时间</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a></span></div><div class=post-meta-line><span title=\"发布于 2019-09-19 22:03:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-09-19>2019-09-19</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"389 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=设置网站运行时间><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>使用<code>javascript</code>计算博客等网站的运行时间。</p></blockquote><blockquote><p>话不多说，直接贴码！</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kd>function</span> <span class=nx>createTime</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>now</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Date</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>run</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Date</span><span class=p>(</span><span class=s1>&#39;05/28/2018 20:01:01&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//總的秒數\n</span></span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>runTime</span> <span class=o>=</span> <span class=p>(</span><span class=nx>now</span> <span class=o>-</span> <span class=nx>run</span><span class=p>)</span> <span class=o>/</span> <span class=mi>1000</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>days</span> <span class=o>=</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>floor</span><span class=p>(</span><span class=nx>runTime</span> <span class=o>/</span> <span class=mi>60</span> <span class=o>/</span> <span class=mi>60</span> <span class=o>/</span> <span class=mi>24</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>hours</span> <span class=o>=</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>floor</span><span class=p>(</span><span class=nx>runTime</span> <span class=o>/</span> <span class=mi>60</span> <span class=o>/</span> <span class=mi>60</span> <span class=o>-</span> <span class=mi>24</span> <span class=o>*</span> <span class=nx>days</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>minutes</span> <span class=o>=</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>floor</span><span class=p>(</span><span class=nx>runTime</span> <span class=o>/</span> <span class=mi>60</span> <span class=o>-</span> <span class=mi>24</span> <span class=o>*</span> <span class=mi>60</span> <span class=o>*</span> <span class=nx>days</span> <span class=o>-</span> <span class=mi>60</span> <span class=o>*</span> <span class=nx>hours</span><span class=p>),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>seconds</span> <span class=o>=</span> <span class=nb>Math</span><span class=p>.</span><span class=nx>floor</span><span class=p>((</span><span class=nx>now</span> <span class=o>-</span> <span class=nx>run</span><span class=p>)</span> <span class=o>/</span> <span class=mi>1000</span> <span class=o>-</span> <span class=mi>24</span> <span class=o>*</span> <span class=mi>60</span> <span class=o>*</span> <span class=mi>60</span> <span class=o>*</span> <span class=nx>days</span> <span class=o>-</span> <span class=mi>60</span> <span class=o>*</span> <span class=mi>60</span> <span class=o>*</span> <span class=nx>hours</span> <span class=o>-</span> <span class=mi>60</span> <span class=o>*</span> <span class=nx>minutes</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=c1>//前置零\n</span></span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>String</span><span class=p>(</span><span class=nx>hours</span><span class=p>).</span><span class=nx>length</span> <span class=o>===</span> <span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>hours</span> <span class=o>=</span> <span class=s1>&#39;0&#39;</span> <span class=o>+</span> <span class=nx>hours</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>String</span><span class=p>(</span><span class=nx>minutes</span><span class=p>).</span><span class=nx>length</span> <span class=o>===</span> <span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>minutes</span> <span class=o>=</span> <span class=s1>&#39;0&#39;</span> <span class=o>+</span> <span class=nx>minutes</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=nb>String</span><span class=p>(</span><span class=nx>seconds</span><span class=p>).</span><span class=nx>length</span> <span class=o>===</span> <span class=mi>1</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>seconds</span> <span class=o>=</span> <span class=s1>&#39;0&#39;</span> <span class=o>+</span> <span class=nx>seconds</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=cm>/*document.querySelector(&#34;.run-times&#34;).innerHTML = days + &#34;&amp;thinsp; 天&amp;thinsp;&#34; + hours\n</span></span></span><span class=line><span class=cl><span class=cm>          + &#34;&amp;thinsp; 时&amp;thinsp;&#34; + minutes + &#34;&amp;thinsp; 分&amp;thinsp;&#34; + seconds + &#34;&amp;thinsp; 秒&#34;;\n</span></span></span><span class=line><span class=cl><span class=cm>  */</span>\n</span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;.run-times&#39;</span><span class=p>).</span><span class=nx>innerHTML</span> <span class=o>=</span> <span class=s1>&#39;RunTime: &#39;</span> <span class=o>+</span> <span class=nx>days</span> <span class=o>+</span> <span class=s1>&#39;,&#39;</span> <span class=o>+</span> <span class=nx>hours</span> <span class=o>+</span> <span class=s1>&#39;:&#39;</span> <span class=o>+</span> <span class=nx>minutes</span> <span class=o>+</span> <span class=s1>&#39;:&#39;</span> <span class=o>+</span> <span class=nx>seconds</span> <span class=o>+</span> <span class=s1>&#39;&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>//setInterval(&#34;createTime()&#34;, 500);\n</span></span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nb>document</span><span class=p>.</span><span class=nx>hidden</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>var</span> <span class=nx>siteTime</span> <span class=o>=</span> <span class=nx>setInterval</span><span class=p>(</span><span class=s1>&#39;createTime()&#39;</span><span class=p>,</span> <span class=mi>500</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>clearInterval</span><span class=p>(</span><span class=nx>siteTime</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * HTML 写法\n</span></span></span><span class=line><span class=cl><span class=cm>&lt;span class=&#34;run-times&#34; title=&#34;网站运行时间&#34;&gt;载入时分秒 ...&lt;/span&gt;\n</span></span></span><span class=line><span class=cl><span class=cm>&lt;p class=&#34;run-times&#34; title=&#34;主頁运行时间&#34;&gt;RunTime Loading...&lt;/p&gt;\n</span></span></span><span class=line><span class=cl><span class=cm>*/</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/site-time/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/site-time.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_js/site-time.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%AE%BE%E7%BD%AE%E7%BD%91%E7%AB%99%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%AE%BE%E7%BD%AE%E7%BD%91%E7%AB%99%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4%7c%0A%7cURL%7chttps://lruihao.cn/posts/site-time/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_js/site-time.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/site-time/ data-title=设置网站运行时间 data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/site-time/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/site-time/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/site-time/ data-title=设置网站运行时间 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/site-time/ data-title=设置网站运行时间><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/async-defer/ class=post-nav-item rel=prev title=\"Script 的三种加载方式 (Async, Defer)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Script 的三种加载方式 (Async, Defer)</a><a href=/projects/lruihao/mmt/ class=post-nav-item rel=next title=Lruihao/MMT>Lruihao/MMT<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3f8e146f550d20bebe5aa95937adc761.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3f8e146f550d20bebe5aa95937adc761.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/site-time/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/site-time/index.md",
    "content": "# 设置网站运行时间\n\n\n> 使用`javascript`计算博客等网站的运行时间。\n\n<!--more-->\n\n> 话不多说，直接贴码！\n\n```js 网站运行时间计算 JS 和 HTML\nfunction createTime() {\n  var now = new Date();\n  var run = new Date('05/28/2018 20:01:01');\n  //總的秒數\n  var runTime = (now - run) / 1000,\n    days = Math.floor(runTime / 60 / 60 / 24),\n    hours = Math.floor(runTime / 60 / 60 - 24 * days),\n    minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n    seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n  //前置零\n  if (String(hours).length === 1) {\n    hours = '0' + hours;\n  }\n  if (String(minutes).length === 1) {\n    minutes = '0' + minutes;\n  }\n  if (String(seconds).length === 1) {\n    seconds = '0' + seconds;\n  }\n  /*document.querySelector(\".run-times\").innerHTML = days + \"&thinsp; 天&thinsp;\" + hours\n          + \"&thinsp; 时&thinsp;\" + minutes + \"&thinsp; 分&thinsp;\" + seconds + \"&thinsp; 秒\";\n  */\n  document.querySelector('.run-times').innerHTML = 'RunTime: ' + days + ',' + hours + ':' + minutes + ':' + seconds + '';\n}\n\n//setInterval(\"createTime()\", 500);\nif (!document.hidden) {\n  var siteTime = setInterval('createTime()', 500);\n} else {\n  clearInterval(siteTime);\n}\n\n/**\n * HTML 写法\n<span class=\"run-times\" title=\"网站运行时间\">载入时分秒 ...</span>\n<p class=\"run-times\" title=\"主頁运行时间\">RunTime Loading...</p>\n*/\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/site-time/  \n\n"
  },
  {
    "path": "posts/sourcetree-husky/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>解决 SourceTree 提交时候 Husky 命令失败问题 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\n\"><meta name=keywords content='Git,husky,Mac,nvm'><meta itemprop=name content=\"解决 SourceTree 提交时候 husky 命令失败问题\"><meta itemprop=description content=\"1 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\"><meta itemprop=datePublished content=\"2023-06-12T10:58:44+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=wordCount content=\"510\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,husky,Mac,nvm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/sourcetree-husky/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"解决 SourceTree 提交时候 husky 命令失败问题\"><meta property=\"og:description\" content=\"1 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-06-12T10:58:44+08:00\"><meta property=\"article:modified_time\" content=\"2024-08-06T14:11:51+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"husky\"><meta property=\"article:tag\" content=\"Mac\"><meta property=\"article:tag\" content=\"nvm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"解决 SourceTree 提交时候 husky 命令失败问题\"><meta name=twitter:description content=\"1 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/sourcetree-husky/ title=\"解决 SourceTree 提交时候 husky 命令失败问题 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/v2-tailwind/ title=\"Vue2 + tailwindcss 初始化\"><link rel=next type=text/html href=https://lruihao.cn/posts/gen-router/ title=\"使用 Node.js 自动创建 Vue 的路由\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/sourcetree-husky/index.md title=\"解决 SourceTree 提交时候 husky 命令失败问题 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/sourcetree-husky\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, husky, Mac, nvm\",\"wordcount\":510,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/sourcetree-husky\\/\",\"datePublished\":\"2023-06-12T10:58:44+08:00\",\"dateModified\":\"2024-08-06T14:11:51+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/sourcetree-husky/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>解决 SourceTree 提交时候 Husky 命令失败问题</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>解决 SourceTree 提交时候 Husky 命令失败问题</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-06-12 10:58:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-06-12>2023-06-12</time></span>&nbsp;<span title=\"更新于 2024-08-06 14:11:51\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-08-06>2024-08-06</time></span>&nbsp;<span title=\"510 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"解决 SourceTree 提交时候 Husky 命令失败问题\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#问题描述>问题描述</a></li><li><a href=#解决方案>解决方案</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-08-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=问题描述><span>1 问题描述</span>\n<a href=#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：</p><p><a class=lightgallery target=_blank href=/posts/sourcetree-husky/images/23_1686538807.png title=问题截图 data-thumbnail=/posts/sourcetree-husky/images/23_1686538807.png data-sub-html=\"<h2>问题截图</h2>\"><img loading=lazy src=/posts/sourcetree-husky/images/23_1686538807.png alt=问题截图 height=856 width=1252></a></p><p>看错误，是一个 catch 参数的问题，在新版本的 Node 中，catch 参数是可以省略的，但是在旧版本中，catch 参数是必须的。</p><p>由于使用了 nvm 管理 Node 版本，项目中的 Node 是正常的，但是 SourceTree 使用的是系统的 Node，所以会出现这个问题。</p><h2 class=heading-element id=解决方案><span>2 解决方案</span>\n<a href=#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>知道了问题的原因，解决起来就很简单了，只需要将 SourceTree husky hook 阶段的 Node 版本切换到项目中的 Node 版本即可。</p><p>配置 <code>.huskyrc</code> 文件，内容如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=~/.huskyrc><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>~/.huskyrc</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>export</span> <span class=nv>PATH</span><span class=o>=</span><span class=se>\\&#34;</span><span class=k>$(</span>dirname <span class=k>$(</span>which node<span class=k>))</span>:<span class=se>\\$</span>PATH<span class=se>\\&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>如果你使用了 <code>zsh</code> 和 <code>nvm</code>, 建议在 <code>$ZSH_CUSTOM</code> 目录下添加一个自定义 zsh 脚本。\n这个脚本会在你进入包含了 <code>.nvmrc</code> 文件目录中自动切换 node 版本，切换版本后修正 <code>~/.huskyrc</code> 的 path 内容。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim <span class=nv>$ZSH_CUSTOM</span>/nvm_custom.zsh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=$ZSH_CUSTOM/nvm_custom.zsh><div class=chroma><div class=\"code-header language-zsh\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>/nvm_custom.zsh</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-zsh data-lang=zsh><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#manual-install</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>NVM_DIR</span><span class=o>=</span><span class=s2>&#34;</span><span class=nv>$HOME</span><span class=s2>/.nvm&#34;</span>\n</span></span><span class=line><span class=cl><span class=o>[</span> -s <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/nvm.sh&#34;</span> <span class=o>]</span> <span class=o>&amp;&amp;</span> <span class=se>\\.</span> <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/nvm.sh&#34;</span>  <span class=c1># This loads nvm</span>\n</span></span><span class=line><span class=cl><span class=o>[</span> -s <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/bash_completion&#34;</span> <span class=o>]</span> <span class=o>&amp;&amp;</span> <span class=se>\\.</span> <span class=s2>&#34;</span><span class=nv>$NVM_DIR</span><span class=s2>/bash_completion&#34;</span>  <span class=c1># This loads nvm bash_completion</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#deeper-shell-integration</span>\n</span></span><span class=line><span class=cl>autoload -U add-zsh-hook\n</span></span><span class=line><span class=cl>load-nvmrc<span class=o>()</span> <span class=o>{</span>\n</span></span><span class=line><span class=cl>  <span class=nb>local</span> <span class=nv>node_version</span><span class=o>=</span><span class=s2>&#34;</span><span class=k>$(</span>nvm version<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>local</span> <span class=nv>nvmrc_path</span><span class=o>=</span><span class=s2>&#34;</span><span class=k>$(</span>nvm_find_nvmrc<span class=k>)</span><span class=s2>&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=o>[</span> -n <span class=s2>&#34;</span><span class=nv>$nvmrc_path</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>    <span class=nb>local</span> <span class=nv>nvmrc_node_version</span><span class=o>=</span><span class=k>$(</span>nvm version <span class=s2>&#34;</span><span class=k>$(</span>cat <span class=s2>&#34;</span><span class=si>${</span><span class=nv>nvmrc_path</span><span class=si>}</span><span class=s2>&#34;</span><span class=k>)</span><span class=s2>&#34;</span><span class=k>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$nvmrc_node_version</span><span class=s2>&#34;</span> <span class=o>=</span> <span class=s2>&#34;N/A&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>      nvm install\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$nvmrc_node_version</span><span class=s2>&#34;</span> !<span class=o>=</span> <span class=s2>&#34;</span><span class=nv>$node_version</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>      nvm use\n</span></span><span class=line><span class=cl>    <span class=k>fi</span>\n</span></span><span class=line><span class=cl>  <span class=k>elif</span> <span class=o>[</span> <span class=s2>&#34;</span><span class=nv>$node_version</span><span class=s2>&#34;</span> !<span class=o>=</span> <span class=s2>&#34;</span><span class=k>$(</span>nvm version default<span class=k>)</span><span class=s2>&#34;</span> <span class=o>]</span><span class=p>;</span> <span class=k>then</span>\n</span></span><span class=line><span class=cl>    <span class=nb>echo</span> <span class=s2>&#34;Reverting to nvm default version&#34;</span>\n</span></span><span class=line><span class=cl>    nvm use default\n</span></span><span class=line><span class=cl>  <span class=k>fi</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1># fix husky hook</span>\n</span></span><span class=line><span class=cl>  <span class=c1># ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421</span>\n</span></span><span class=line><span class=cl>  <span class=c1># for husky 8 ~/.huskyrc, for husky 9 ~/.config/husky/init.sh</span>\n</span></span><span class=line><span class=cl>  <span class=nb>echo</span> <span class=s2>&#34;export PATH=\\&#34;</span><span class=k>$(</span>dirname <span class=k>$(</span>which node<span class=k>))</span><span class=s2>:\\$PATH\\&#34;&#34;</span> &gt; ~/.config/husky/init.sh\n</span></span><span class=line><span class=cl><span class=o>}</span>\n</span></span><span class=line><span class=cl>add-zsh-hook chpwd load-nvmrc\n</span></span><span class=line><span class=cl>load-nvmrc\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries</span>\n</span></span><span class=line><span class=cl><span class=nb>export</span> <span class=nv>NVM_NODEJS_ORG_MIRROR</span><span class=o>=</span>https://mirrors.ustc.edu.cn/node/</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><blockquote><p>如果你使用的是 husky 9 之后的版本，需要将 <code>~/.huskyrc</code> 替换为 <code>~/.config/husky/init.sh</code>。</p></blockquote><h2 class=heading-element id=参考><span>3 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://wxhboy.cn/2022/04/12/%E8%A7%A3%E5%86%B3SourceTree%E6%8F%90%E4%BA%A4%E6%97%B6%E5%80%99husky%E5%91%BD%E4%BB%A4%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/ target=_blank rel=\"external nofollow noopener noreferrer\">解决 SourceTree 提交时候 husky 命令失败问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/typicode/husky/issues/390#issuecomment-762213421 target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/typicode/husky/issues/390#issuecomment-762213421<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/typicode/husky/issues/904#issuecomment-862184954 target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/typicode/husky/issues/904#issuecomment-862184954<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/nvm-sh/nvm#deeper-shell-integration target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/nvm-sh/nvm#deeper-shell-integration<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-08-06 14:11:51\">更新于 2024-08-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7b7c5f9349e794b0485a6745ac25cee124689342 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 更新 husky 和 lint-staged 版本&#10&#10Commit: 7b7c5f9349e794b0485a6745ac25cee124689342 [7b7c5f9]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-08-06 14:11:51&#10Commit Date: 2024-08-06 14:14:57\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7b7c5f9</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/sourcetree-husky/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/sourcetree-husky/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_node.js/sourcetree-husky/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%A7%A3%E5%86%B3+SourceTree+%E6%8F%90%E4%BA%A4%E6%97%B6%E5%80%99+husky+%E5%91%BD%E4%BB%A4%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%A7%A3%E5%86%B3+SourceTree+%E6%8F%90%E4%BA%A4%E6%97%B6%E5%80%99+husky+%E5%91%BD%E4%BB%A4%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98%7c%0A%7cURL%7chttps://lruihao.cn/posts/sourcetree-husky/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/sourcetree-husky/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/sourcetree-husky/ data-title=\"解决 SourceTree 提交时候 Husky 命令失败问题\" data-hashtags=Git,husky,Mac,nvm><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/sourcetree-husky/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/sourcetree-husky/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/sourcetree-husky/ data-title=\"解决 SourceTree 提交时候 Husky 命令失败问题\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/sourcetree-husky/ data-title=\"解决 SourceTree 提交时候 Husky 命令失败问题\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/husky/ class=post-tag title=\"标签 - husky\">husky</a><a href=/tags/mac/ class=post-tag title=\"标签 - Mac\">Mac</a><a href=/tags/nvm/ class=post-tag title=\"标签 - nvm\">nvm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/v2-tailwind/ class=post-nav-item rel=prev title=\"Vue2 + Tailwindcss 初始化\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Vue2 + Tailwindcss 初始化</a><a href=/posts/gen-router/ class=post-nav-item rel=next title=\"使用 Node.js 自动创建 Vue 的路由\">使用 Node.js 自动创建 Vue 的路由<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#问题描述>问题描述</a></li><li><a href=#解决方案>解决方案</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/021d7a7632f5e9a49828e315b8028cc4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/021d7a7632f5e9a49828e315b8028cc4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/sourcetree-husky/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/sourcetree-husky/index.md",
    "content": "# 解决 SourceTree 提交时候 Husky 命令失败问题\n\n\n## 问题描述\n\n在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\n\n![问题截图](images/23_1686538807.png)\n\n看错误，是一个 catch 参数的问题，在新版本的 Node 中，catch 参数是可以省略的，但是在旧版本中，catch 参数是必须的。\n\n由于使用了 nvm 管理 Node 版本，项目中的 Node 是正常的，但是 SourceTree 使用的是系统的 Node，所以会出现这个问题。\n\n## 解决方案\n\n知道了问题的原因，解决起来就很简单了，只需要将 SourceTree husky hook 阶段的 Node 版本切换到项目中的 Node 版本即可。\n\n配置 `.huskyrc` 文件，内容如下：\n\n```bash {title=\"~/.huskyrc\"}\nexport PATH=\\\"$(dirname $(which node)):\\$PATH\\\"\n```\n\n如果你使用了 `zsh` 和 `nvm`, 建议在 `$ZSH_CUSTOM` 目录下添加一个自定义 zsh 脚本。\n这个脚本会在你进入包含了 `.nvmrc` 文件目录中自动切换 node 版本，切换版本后修正 `~/.huskyrc` 的 path 内容。\n\n```bash\nvim $ZSH_CUSTOM/nvm_custom.zsh\n```\n\n```zsh {title=\"$ZSH_CUSTOM/nvm_custom.zsh\"}\n# https://github.com/nvm-sh/nvm#manual-install\nexport NVM_DIR=\"$HOME/.nvm\"\n[ -s \"$NVM_DIR/nvm.sh\" ] && \\. \"$NVM_DIR/nvm.sh\"  # This loads nvm\n[ -s \"$NVM_DIR/bash_completion\" ] && \\. \"$NVM_DIR/bash_completion\"  # This loads nvm bash_completion\n\n# https://github.com/nvm-sh/nvm#deeper-shell-integration\nautoload -U add-zsh-hook\nload-nvmrc() {\n  local node_version=\"$(nvm version)\"\n  local nvmrc_path=\"$(nvm_find_nvmrc)\"\n\n  if [ -n \"$nvmrc_path\" ]; then\n    local nvmrc_node_version=$(nvm version \"$(cat \"${nvmrc_path}\")\")\n\n    if [ \"$nvmrc_node_version\" = \"N/A\" ]; then\n      nvm install\n    elif [ \"$nvmrc_node_version\" != \"$node_version\" ]; then\n      nvm use\n    fi\n  elif [ \"$node_version\" != \"$(nvm version default)\" ]; then\n    echo \"Reverting to nvm default version\"\n    nvm use default\n  fi\n\n  # fix husky hook\n  # ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421\n  # for husky 8 ~/.huskyrc, for husky 9 ~/.config/husky/init.sh\n  echo \"export PATH=\\\"$(dirname $(which node)):\\$PATH\\\"\" > ~/.config/husky/init.sh\n}\nadd-zsh-hook chpwd load-nvmrc\nload-nvmrc\n\n# https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries\nexport NVM_NODEJS_ORG_MIRROR=https://mirrors.ustc.edu.cn/node/\n```\n\n> 如果你使用的是 husky 9 之后的版本，需要将 `~/.huskyrc` 替换为 `~/.config/husky/init.sh`。\n\n## 参考\n\n- [解决 SourceTree 提交时候 husky 命令失败问题](https://wxhboy.cn/2022/04/12/%E8%A7%A3%E5%86%B3SourceTree%E6%8F%90%E4%BA%A4%E6%97%B6%E5%80%99husky%E5%91%BD%E4%BB%A4%E5%A4%B1%E8%B4%A5%E9%97%AE%E9%A2%98/)\n- <https://github.com/typicode/husky/issues/390#issuecomment-762213421>\n- <https://github.com/typicode/husky/issues/904#issuecomment-862184954>\n- <https://github.com/nvm-sh/nvm#deeper-shell-integration>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/sourcetree-husky/  \n\n"
  },
  {
    "path": "posts/sql/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SQL 总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" SQL 增删改查 (CRUD) 语句与常用函数总结。\n\"><meta name=keywords content='MySQL'><meta itemprop=name content=\"SQL 总结\"><meta itemprop=description content=\"SQL 增删改查 (CRUD) 语句与常用函数总结。\"><meta itemprop=datePublished content=\"2020-01-16T19:28:05+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"2473\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"MySQL\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/sql/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SQL 总结\"><meta property=\"og:description\" content=\"SQL 增删改查 (CRUD) 语句与常用函数总结。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2020-01-16T19:28:05+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"MySQL\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SQL 总结\"><meta name=twitter:description content=\"SQL 增删改查 (CRUD) 语句与常用函数总结。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/sql/ title=\"SQL 总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册><link rel=next type=text/html href=https://lruihao.cn/years/2019/ title=\"2019 年度总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/sql/index.md title=\"SQL 总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"SQL 总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/sql\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"MySQL\",\"wordcount\":2473,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/sql\\/\",\"datePublished\":\"2020-01-16T19:28:05+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/sql/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SQL 总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>SQL 总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/mysql/ class=post-category title=\"分类 - MySQL\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> MySQL</a></span></div><div class=post-meta-line><span title=\"发布于 2020-01-16 19:28:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-01-16>2020-01-16</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"2473 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"SQL 总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#sql-introduction>SQL Introduction</a></li><li><a href=#新增create>新增（CREATE）</a></li><li><a href=#删除delete>删除（DELETE）</a></li><li><a href=#修改update>修改（UPDATE）</a></li><li><a href=#查询read>查询（ R E A D ）</a></li><li><a href=#常用函数>常用函数</a></li><li><a href=#其他知识>其他知识</a><ol><li><a href=#常见数据类型>常见数据类型</a></li><li><a href=#别名>别名</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>SQL 增删改查 (CRUD) 语句与常用函数总结。</p></blockquote><h2 class=heading-element id=sql-introduction><span>1 SQL Introduction</span>\n<a href=#sql-introduction class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一般我们对数据库的操作主要分为四种，增<strong>C</strong>(CREATE)、删<strong>D</strong>(DELETE)、改<strong>U</strong>(UPDATE)、查<strong>R</strong>(READ)，所以，我就从<strong>CRUD</strong>这四个方面来制作查询表。</p><p><strong>开发规则：</strong></p><ol><li><p>尽量减少对数据库的访问次数，且不能查询无用的数据，浪费效能（例如：我只要男生的数据，你把所有人的数据都查询出来）。</p></li><li><p>属于<code>SQL</code>语法的要使用大写（SELECT, WHERE, INSERT etc&mldr;）。</p></li><li><p>属于使用者自己定义的要使用小写（表名、列名 etc&mldr;）。</p></li><li><p>表名与列名前后使用 ` 包起来，防止与关键字冲突（例如： INSERT INTO `user` VALUES(&lsquo;a&rsquo;,&lsquo;b&rsquo;); ）。</p></li><li><p>禁止使用 Table Join。</p></li><li><p>禁止使用 Oracle Trigger。</p></li><li><p>禁止使用 SELECT * （为了加强代码可读性）。</p></li><li><p>不能将查询数据库的 SQL 放在循环中查询。</p></li></ol><h2 class=heading-element id=新增create><span>2 新增（CREATE）</span>\n<a href=#%e6%96%b0%e5%a2%9ecreate class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>功能</th><th style=text-align:left>语句</th></tr></thead><tbody><tr><td style=text-align:left>创建数据库</td><td style=text-align:left><code>CREATE DATABASE &lt;数据库名>;</code></td></tr><tr><td style=text-align:left>创建数据表</td><td style=text-align:left><code>CREATE TABLE &lt;表名> (</code><br><code>&lt;列名 1> &lt;数据类型> &lt;约束条件>,</code><br><code>&lt;列名 2> &lt;数据类型> &lt;约束条件>,</code><br><code>&lt;列名 3> &lt;数据类型> &lt;约束条件>,</code><br><code>......</code><br><code>&lt;该表的的约束条件 1></code><br><code>&lt;该表的的约束条件 2>...);</code></td></tr><tr><td style=text-align:left>插入数据</td><td style=text-align:left><code>INSERT INTO &lt;表名> （列名 1, 列名 2,...) VALUES （值 1, 值 2,...);</code><br>（每列都有数据插入时，可省略列名。但是为了代码的可读性，不建议如此操作。）</td></tr><tr><td style=text-align:left>增加列</td><td style=text-align:left><code>ALTER TABLE &lt;表名> ADD &lt;列名> &lt;数据类型> &lt;约束条件> AFTER &lt;前一列列名>;</code><br>（默认插入到最后一列）</td></tr></tbody></table></div><h2 class=heading-element id=删除delete><span>3 删除（DELETE）</span>\n<a href=#%e5%88%a0%e9%99%a4delete class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>功能</th><th style=text-align:left>语句</th></tr></thead><tbody><tr><td style=text-align:left>删除数据库</td><td style=text-align:left><code>DROP DATABASE &lt;数据库名>;</code></td></tr><tr><td style=text-align:left>删除数据表</td><td style=text-align:left><code>DROP TABLE &lt;表名>;</code></td></tr><tr><td style=text-align:left>清空表数据</td><td style=text-align:left><code>DELETE FROM &lt;表名>;</code> 或者 <code>TRUNCATE TABLE &lt;表名>;</code></td></tr><tr><td style=text-align:left>删除行数据</td><td style=text-align:left><code>DELETE FROM &lt;表名> WHERE &lt;条件>;</code></td></tr><tr><td style=text-align:left>删除列数据</td><td style=text-align:left><code>ALTER TABLE &lt;表名> DROP &lt;列名>;</code></td></tr></tbody></table></div><h2 class=heading-element id=修改update><span>4 修改（UPDATE）</span>\n<a href=#%e4%bf%ae%e6%94%b9update class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>功能</th><th style=text-align:left>语句</th></tr></thead><tbody><tr><td style=text-align:left>修改数据库名</td><td style=text-align:left><code>RENAME DATABASE &lt;旧名称> TO &lt;新名称>;</code></td></tr><tr><td style=text-align:left>修改表名</td><td style=text-align:left><code>RENAME TABLE &lt;旧名称> TO &lt;新名称>;</code></td></tr><tr><td style=text-align:left>修改数据</td><td style=text-align:left><code>UPDATE &lt;表名> SET &lt;列名 1> = &lt;新值 1>,&lt;列名 2> = &lt;新值 2> WHERE &lt;条件>;</code></td></tr><tr><td style=text-align:left>修改列名</td><td style=text-align:left><code>ALTER TABLE &lt;表名> CHANGE &lt;旧列名> &lt;新列名> &lt;数据类型> &lt;约束条件>;</code></td></tr></tbody></table></div><blockquote><p>注意：重命名数据库与数据表一般不推荐使用，若想测试，请先备份好自己的数据库~</p></blockquote><h2 class=heading-element id=查询read><span>5 查询（ R E A D ）</span>\n<a href=#%e6%9f%a5%e8%af%a2read class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>功能</th><th style=text-align:left>语句</th></tr></thead><tbody><tr><td style=text-align:left>查询所有数据库</td><td style=text-align:left><code>SHOW DATABASES;</code></td></tr><tr><td style=text-align:left>查询指定数据库中所有表名</td><td style=text-align:left><code>USE &lt;数据库名>;</code> 然后 <code>SHOW TABLES;</code><br>或者 <code>SHOW TABLES FROM &lt;数据库名>;</code></td></tr><tr><td style=text-align:left>查询表中所有列信息</td><td style=text-align:left><code>SHOW COLUMNS FROM &lt;表名>;</code></td></tr><tr><td style=text-align:left>查询表中所有数据</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名>;</code></td></tr><tr><td style=text-align:left>查询表中某个数据</td><td style=text-align:left><code>SELECT &lt;列名> FROM &lt;表名>;</code></td></tr><tr><td style=text-align:left>查询表中指定多个数据</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名> WHERE &lt;条件>;</code></td></tr><tr><td style=text-align:left>查询表中指定一个数据</td><td style=text-align:left><code>SELECT &lt;列名> FROM &lt;表名> WHERE &lt;条件>;</code></td></tr><tr><td style=text-align:left>查询指定范围数据</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名> WHERE</code><br><code>&lt;某列名> BETWEEN &lt;某列名范围值-小> AND &lt;某列名范围值-大>;</code></td></tr><tr><td style=text-align:left>字符串模式匹配查询</td><td style=text-align:left><code>SELECT &lt;列名> FROM &lt;表名> WHERE name LIKE 'Y%';</code><br>（查询以 Y 开头的，更多匹配方式自行百度哦~。）</td></tr><tr><td style=text-align:left>指定多个值数据查询</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名> WHERE</code><br><code>&lt;某列名> IN ('&lt;某列名值 1>','&lt;某列名值 2>','&lt;某列名值 3>',...);</code></td></tr><tr><td style=text-align:left>查询结果排序</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名> ORDER BY &lt;某列名> DESC;</code><br>（此处为递减排列，默认为递增<code>ASC</code>）</td></tr><tr><td style=text-align:left>查询指定几笔数据</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,... FROM &lt;表名> LIMIT n,m;</code><br>（从<code>n</code>到<code>m</code>笔数据）</td></tr><tr><td style=text-align:left>分群查询</td><td style=text-align:left><code>SELECT &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,...,&lt;函数> FROM &lt;表名> GROUP BY &lt;列名 1>,&lt;列名 2>,&lt;列名 3>,...;</code><br>（常搭配函数有：<code>SUM()</code>、<code>AVG()</code>、<code>COUNT()</code>、<code>MAX()</code>、<code>MIN()</code>）</td></tr></tbody></table></div><h2 class=heading-element id=常用函数><span>6 常用函数</span>\n<a href=#%e5%b8%b8%e7%94%a8%e5%87%bd%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>函数名</th><th style=text-align:left>用途</th></tr></thead><tbody><tr><td style=text-align:left><code>ABS</code>（数值）</td><td style=text-align:left>ABS 函数（求绝对值）</td></tr><tr><td style=text-align:left><code>MOD</code>（被除数，除数）</td><td style=text-align:left>MOD 函数（求余）</td></tr><tr><td style=text-align:left><code>ROUND</code>（对象数值，保留小数的位数）</td><td style=text-align:left>ROUND 函数（四舍五入）</td></tr><tr><td style=text-align:left>字符串 1 ΙΙ 字符串 2</td><td style=text-align:left>ΙΙ 函数（拼接）</td></tr><tr><td style=text-align:left><code>LENGTH</code>（字符串）</td><td style=text-align:left>LENGTH 函数（求字符串长度）</td></tr><tr><td style=text-align:left><code>LOWER</code>（字符串）</td><td style=text-align:left>LOWER 函数（小写转换）</td></tr><tr><td style=text-align:left><code>UPPER</code>（字符串）</td><td style=text-align:left>UPPER 函数（大写转换）</td></tr><tr><td style=text-align:left><code>REPLACE</code>（对象字符串，替换前的字符串，替换后的字符串）</td><td style=text-align:left>REPLACE 函数（字符串的替换）</td></tr><tr><td style=text-align:left><code>SUBSTRING</code> （对象字符串，截取的起始位置，截取的字符数）</td><td style=text-align:left>SUBSTRING 函数（字符串的截取）</td></tr><tr><td style=text-align:left><code>CURRENT_DATE</code></td><td style=text-align:left>CURRENT_DATE 函数（当前日期）</td></tr><tr><td style=text-align:left><code>CURRENT_TIME</code></td><td style=text-align:left>CURRENT_TIME 函数（当前时间）</td></tr><tr><td style=text-align:left><code>CURRENT_TIMESTAMP</code></td><td style=text-align:left>CURRENT_TIMESTAMP 函数（当前日期和时间）</td></tr><tr><td style=text-align:left><code>EXTRACT</code>（日期元素 FROM 日期）</td><td style=text-align:left>EXTRACT 函数（截取日期元素）</td></tr><tr><td style=text-align:left><code>CAST</code>（转换前的值 AS 想要转换的数据类型）</td><td style=text-align:left>CAST 函数（类型转换）</td></tr><tr><td style=text-align:left><code>COALESCE</code>（数据 1, 数据 2, 数据 3&mldr;.)</td><td style=text-align:left>COALESCE 函数（将 NULL 转换为其他值）</td></tr></tbody></table></div><p>补充：CASE 表达式。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>CASE WHEN &lt;求值表达式&gt; THEN &lt;表达式&gt;\n</span></span><span class=line><span class=cl>     WHEN &lt;求值表达式&gt; THEN &lt;表达式&gt;\n</span></span><span class=line><span class=cl>     WHEN &lt;求值表达式&gt; THEN &lt;表达式&gt;\n</span></span><span class=line><span class=cl>     ......\n</span></span><span class=line><span class=cl>     ELSE &lt;表达式&gt;\n</span></span><span class=line><span class=cl> END</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=其他知识><span>7 其他知识</span>\n<a href=#%e5%85%b6%e4%bb%96%e7%9f%a5%e8%af%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=常见数据类型><span>7.1 常见数据类型</span>\n<a href=#%e5%b8%b8%e8%a7%81%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a class=lightgallery target=_blank href=/posts/sql/images/data_type1.png title=data_type data-thumbnail=/posts/sql/images/data_type1.png data-sub-html=\"<h2>data_type</h2>\"><img loading=lazy src=/posts/sql/images/data_type1.png alt=data_type height=316 width=864></a>\n<a class=lightgallery target=_blank href=/posts/sql/images/data_type2.png title=data_type data-thumbnail=/posts/sql/images/data_type2.png data-sub-html=\"<h2>data_type</h2>\"><img loading=lazy src=/posts/sql/images/data_type2.png alt=data_type height=302 width=864></a></p><h3 class=heading-element id=别名><span>7.2 别名</span>\n<a href=#%e5%88%ab%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>给表设置别名，让 SQL 更简洁。例如：</p><p><code>SELECT &lt;col-1>,&lt;col-2>,&lt;col-3>,... FROM &lt;table1> &lt;alias-a>,&lt;table2> &lt;alias-b> WHERE &lt;alias-a>.&lt;id> = &lt;alias-b>.&lt;id>;</code></p><p>列名也可以设置别名。例如：</p><p><code>SELECT &lt;col-1> &lt;alias-a>,&lt;col-2> &lt;alias-b>,&lt;col-3> &lt;alias-c>,... FROM &lt;table>;</code><br>或者<br><code>SELECT &lt;col-1> AS &lt;alias-a>,&lt;col-2> AS &lt;alias-b>,&lt;col-3> AS &lt;alias-c>,... FROM &lt;table>;</code></p><h2 class=heading-element id=总结><span>8 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以上整理的内容均为基础内容，更多进阶知识还需各位自行 Google。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/sql/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_sql/sql/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_sql/sql/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20SQL+%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cSQL+%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/posts/sql/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_sql/sql/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/sql/ data-title=\"SQL 总结\" data-hashtags=MySQL><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/sql/ data-hashtag=MySQL><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/sql/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/sql/ data-title=\"SQL 总结\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/sql/ data-title=\"SQL 总结\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/mysql/ class=post-tag title=\"标签 - MySQL\">MySQL</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/cos-album/ class=post-nav-item rel=prev title=利用腾讯云为静态页面添加“动态”相册><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>利用腾讯云为静态页面添加“动态”相册</a><a href=/years/2019/ class=post-nav-item rel=next title=\"2019 年度总结\">2019 年度总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#sql-introduction>SQL Introduction</a></li><li><a href=#新增create>新增（CREATE）</a></li><li><a href=#删除delete>删除（DELETE）</a></li><li><a href=#修改update>修改（UPDATE）</a></li><li><a href=#查询read>查询（ R E A D ）</a></li><li><a href=#常用函数>常用函数</a></li><li><a href=#其他知识>其他知识</a><ol><li><a href=#常见数据类型>常见数据类型</a></li><li><a href=#别名>别名</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3e1c0a5419cb5b02f60950abdabb060d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3e1c0a5419cb5b02f60950abdabb060d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/sql/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/sql/index.md",
    "content": "# SQL 总结\n\n\n> SQL 增删改查 (CRUD) 语句与常用函数总结。\n\n<!--more-->\n\n<!-- markdownlint-disable -->\n\n## SQL Introduction\n\n一般我们对数据库的操作主要分为四种，增**C**(CREATE)、删**D**(DELETE)、改**U**(UPDATE)、查**R**(READ)，所以，我就从**CRUD**这四个方面来制作查询表。\n\n**开发规则：**\n\n1. 尽量减少对数据库的访问次数，且不能查询无用的数据，浪费效能（例如：我只要男生的数据，你把所有人的数据都查询出来）。\n\n2. 属于`SQL`语法的要使用大写（SELECT, WHERE, INSERT etc...）。\n\n3. 属于使用者自己定义的要使用小写（表名、列名 etc...）。\n\n4. 表名与列名前后使用 \\` 包起来，防止与关键字冲突（例如： INSERT INTO \\`user\\` VALUES('a','b'); ）。\n\n5. 禁止使用 Table Join。\n\n6. 禁止使用 Oracle Trigger。\n\n7. 禁止使用 SELECT \\* （为了加强代码可读性）。\n\n8. 不能将查询数据库的 SQL 放在循环中查询。\n\n## 新增（CREATE）\n\n| 功能       | 语句                                                                                                                                                                                                                |\n| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| 创建数据库 | `CREATE DATABASE <数据库名>;`                                                                                                                                                                                       |\n| 创建数据表 | `CREATE TABLE  <表名> (`<br/>`<列名 1> <数据类型> <约束条件>,`<br/>`<列名 2> <数据类型> <约束条件>,`<br/>`<列名 3> <数据类型> <约束条件>,`<br/>`......`<br/>`<该表的的约束条件 1>`<br/>`<该表的的约束条件 2>...);` |\n| 插入数据   | `INSERT INTO <表名> （列名 1, 列名 2,...) VALUES （值 1, 值 2,...);`<br/>（每列都有数据插入时，可省略列名。但是为了代码的可读性，不建议如此操作。）                                                                 |\n| 增加列     | `ALTER TABLE <表名> ADD <列名> <数据类型> <约束条件> AFTER <前一列列名>;`<br/>（默认插入到最后一列）                                                                                                                |\n\n## 删除（DELETE）\n\n| 功能       | 语句                                                |\n| :--------- | :-------------------------------------------------- |\n| 删除数据库 | `DROP DATABASE <数据库名>;`                         |\n| 删除数据表 | `DROP TABLE <表名>;`                                |\n| 清空表数据 | `DELETE FROM <表名>;` 或者 `TRUNCATE TABLE <表名>;` |\n| 删除行数据 | `DELETE FROM <表名> WHERE <条件>;`                  |\n| 删除列数据 | `ALTER TABLE <表名> DROP <列名>;`                   |\n\n## 修改（UPDATE）\n\n| 功能         | 语句                                                                      |\n| :----------- | :------------------------------------------------------------------------ |\n| 修改数据库名 | `RENAME DATABASE <旧名称> TO <新名称>;`                                   |\n| 修改表名     | `RENAME TABLE <旧名称> TO <新名称>;`                                      |\n| 修改数据     | `UPDATE <表名> SET <列名 1> = <新值 1>,<列名 2> = <新值 2> WHERE <条件>;` |\n| 修改列名     | `ALTER TABLE <表名> CHANGE <旧列名> <新列名> <数据类型> <约束条件>;`      |\n\n> 注意：重命名数据库与数据表一般不推荐使用，若想测试，请先备份好自己的数据库~\n\n## 查询（&nbsp;R&nbsp;E&nbsp;A&nbsp;D&nbsp;）\n\n| 功能                     | 语句                                                                                                                                                                    |\n| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 查询所有数据库           | `SHOW DATABASES;`                                                                                                                                                       |\n| 查询指定数据库中所有表名 | `USE <数据库名>;` 然后 `SHOW TABLES;`<br/>或者 `SHOW TABLES FROM <数据库名>;`                                                                                           |\n| 查询表中所有列信息       | `SHOW COLUMNS FROM <表名>;`                                                                                                                                             |\n| 查询表中所有数据         | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名>;`                                                                                                                    |\n| 查询表中某个数据         | `SELECT <列名> FROM <表名>;`                                                                                                                                            |\n| 查询表中指定多个数据     | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名> WHERE <条件>;`                                                                                                       |\n| 查询表中指定一个数据     | `SELECT <列名> FROM <表名> WHERE <条件>;`                                                                                                                               |\n| 查询指定范围数据         | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名> WHERE`<br/>`<某列名> BETWEEN <某列名范围值-小> AND <某列名范围值-大>;`                                              |\n| 字符串模式匹配查询       | `SELECT <列名> FROM <表名> WHERE name LIKE 'Y%';`<br/>（查询以 Y 开头的，更多匹配方式自行百度哦~。）                                                                    |\n| 指定多个值数据查询       | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名> WHERE`<br/>`<某列名> IN ('<某列名值 1>','<某列名值 2>','<某列名值 3>',...);`                                        |\n| 查询结果排序             | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名> ORDER BY <某列名> DESC;`<br/>（此处为递减排列，默认为递增`ASC`）                                                     |\n| 查询指定几笔数据         | `SELECT <列名 1>,<列名 2>,<列名 3>,... FROM <表名> LIMIT n,m;`<br/>（从`n`到`m`笔数据）                                                                                 |\n| 分群查询                 | `SELECT <列名 1>,<列名 2>,<列名 3>,...,<函数> FROM <表名> GROUP BY <列名 1>,<列名 2>,<列名 3>,...;`<br/>（常搭配函数有：`SUM()`、`AVG()`、`COUNT()`、`MAX()`、`MIN()`） |\n\n## 常用函数\n\n| 函数名                                                   | 用途                                     |\n| :------------------------------------------------------- | :--------------------------------------- |\n| `ABS`（数值）                                            | ABS 函数（求绝对值）                     |\n| `MOD`（被除数，除数）                                    | MOD 函数（求余）                         |\n| `ROUND`（对象数值，保留小数的位数）                      | ROUND 函数（四舍五入）                   |\n| 字符串 1 &Iota;&Iota; 字符串 2                           | &Iota;&Iota; 函数（拼接）                |\n| `LENGTH`（字符串）                                       | LENGTH 函数（求字符串长度）              |\n| `LOWER`（字符串）                                        | LOWER 函数（小写转换）                   |\n| `UPPER`（字符串）                                        | UPPER 函数（大写转换）                   |\n| `REPLACE`（对象字符串，替换前的字符串，替换后的字符串）  | REPLACE 函数（字符串的替换）             |\n| `SUBSTRING` （对象字符串，截取的起始位置，截取的字符数） | SUBSTRING 函数（字符串的截取）           |\n| `CURRENT_DATE`                                           | CURRENT_DATE 函数（当前日期）            |\n| `CURRENT_TIME`                                           | CURRENT_TIME 函数（当前时间）            |\n| `CURRENT_TIMESTAMP`                                      | CURRENT_TIMESTAMP 函数（当前日期和时间） |\n| `EXTRACT`（日期元素 FROM 日期）                          | EXTRACT 函数（截取日期元素）             |\n| `CAST`（转换前的值 AS 想要转换的数据类型）               | CAST 函数（类型转换）                    |\n| `COALESCE`（数据 1, 数据 2, 数据 3....)                  | COALESCE 函数（将 NULL 转换为其他值）    |\n\n补充：CASE 表达式。\n\n```\nCASE WHEN <求值表达式> THEN <表达式>\n     WHEN <求值表达式> THEN <表达式>\n     WHEN <求值表达式> THEN <表达式>\n     ......\n     ELSE <表达式>\n END\n```\n\n## 其他知识\n\n### 常见数据类型\n\n![data_type](images/data_type1.png)\n![data_type](images/data_type2.png)\n\n### 别名\n\n给表设置别名，让 SQL 更简洁。例如：\n\n`SELECT <col-1>,<col-2>,<col-3>,... FROM <table1> <alias-a>,<table2> <alias-b> WHERE <alias-a>.<id> = <alias-b>.<id>;`\n\n列名也可以设置别名。例如：\n\n`SELECT <col-1> <alias-a>,<col-2> <alias-b>,<col-3> <alias-c>,... FROM <table>;`  \n或者  \n`SELECT <col-1> AS <alias-a>,<col-2> AS <alias-b>,<col-3> AS <alias-c>,... FROM <table>;`\n\n## 总结\n\n以上整理的内容均为基础内容，更多进阶知识还需各位自行 Google。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/sql/  \n\n"
  },
  {
    "path": "posts/ssh-sign/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SSH 提交签名验证 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\n\"><meta name=keywords content='Git,SSH'><meta itemprop=name content=\"SSH 提交签名验证\"><meta itemprop=description content=\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\"><meta itemprop=datePublished content=\"2023-10-22T18:59:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1460\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Git,SSH\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ssh-sign/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SSH 提交签名验证\"><meta property=\"og:description\" content=\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-10-22T18:59:31+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Git\"><meta property=\"article:tag\" content=\"SSH\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SSH 提交签名验证\"><meta name=twitter:description content=\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ssh-sign/ title=\"SSH 提交签名验证 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/patch-package/ title=\"如何给 npm 包打补丁？\"><link rel=next type=text/html href=https://lruihao.cn/posts/aws-solution/ title=\"探索 AWS 云上一站式解决方案免费使用\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ssh-sign/index.md title=\"SSH 提交签名验证 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"SSH 提交签名验证\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ssh-sign\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Git, SSH\",\"wordcount\":1460,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ssh-sign\\/\",\"datePublished\":\"2023-10-22T18:59:31+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ssh-sign/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SSH 提交签名验证</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>SSH 提交签名验证</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/git/ class=post-category title=\"分类 - Git\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Git</a></span></div><div class=post-meta-line><span title=\"发布于 2023-10-22 18:59:31\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-10-22>2023-10-22</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1460 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"SSH 提交签名验证\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#操作步骤>操作步骤</a></li><li><a href=#检查现有-ssh-密钥>检查现有 SSH 密钥</a></li><li><a href=#生成新的-ssh-密钥>生成新的 SSH 密钥</a></li><li><a href=#新增-ssh-密钥到-github-帐户>新增 SSH 密钥到 GitHub 帐户</a></li><li><a href=#将-ssh-密钥告知-git>将 SSH 密钥告知 Git</a></li><li><a href=#对提交签名>对提交签名</a></li><li><a href=#对标记签名>对标记签名</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。</p><h2 class=heading-element id=操作步骤><span>1 操作步骤</span>\n<a href=#%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%aa%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以使用 SSH 通过自己生成的 SSH 密钥对提交进行签名。有关详细信息，请查看 <code>user.Signingkey</code> 的 <a href=https://git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningKey target=_blank rel=\"external nofollow noopener noreferrer\">Git 参考文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。如果已使用 SSH 密钥向 GitHub 进行了身份验证，还可以再次上传该相同密钥以用作签名密钥。可以添加到帐户的签名密钥数没有限制。</p><p>GitHub 使用 <a href=https://github.com/github/ssh_data target=_blank rel=\"external nofollow noopener noreferrer\">ssh_data<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（一种开放源代码 Ruby 库）来确认本地签名的提交和标记是否根据在 GitHub.com 上添加到帐户的公钥进行加密验证。</p><blockquote><p>注意：SSH 签名验证可用于 Git 2.34 或更高版本。若要更新 Git 版本，请参阅 <a href=https://git-scm.com/downloads target=_blank rel=\"external nofollow noopener noreferrer\">Git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 网站。</p></blockquote><p>要使用 SSH 对提交签名并在 GitHub 上验证这些提交，请执行以下步骤：</p><ol><li><a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys target=_blank rel=\"external nofollow noopener noreferrer\">检查现有 SSH 密钥<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent target=_blank rel=\"external nofollow noopener noreferrer\">生成新的 SSH 密钥<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account target=_blank rel=\"external nofollow noopener noreferrer\">将 SSH 签名密钥添加到 GitHub 帐户<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.github.com/zh/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key target=_blank rel=\"external nofollow noopener noreferrer\">将你的签名密钥告诉 Git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.github.com/zh/authentication/managing-commit-signature-verification/signing-commits target=_blank rel=\"external nofollow noopener noreferrer\">对提交签名<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.github.com/zh/authentication/managing-commit-signature-verification/signing-tags target=_blank rel=\"external nofollow noopener noreferrer\">对标记签名<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ol><h2 class=heading-element id=检查现有-ssh-密钥><span>2 检查现有 SSH 密钥</span>\n<a href=#%e6%a3%80%e6%9f%a5%e7%8e%b0%e6%9c%89-ssh-%e5%af%86%e9%92%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>打开终端。</p></li><li><p>输入 <code>ls -al ~/.ssh</code> 以查看是否存在现有的 SSH 密钥。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl><span class=c1># Lists the files in your .ssh directory, if they exist</span>\n</span></span><span class=line><span class=cl>ls -al ~/.ssh</span></span></code></pre></td></tr></table></div></div></div></li><li><p>检查目录列表以查看是否已经有 SSH 公钥。默认情况下，GitHub 的一个支持的公钥的文件名是以下之一。</p><ul><li>id_rsa.pub</li><li>id_ecdsa.pub</li><li>id_ed25519.pub</li></ul></li></ol><h2 class=heading-element id=生成新的-ssh-密钥><span>3 生成新的 SSH 密钥</span>\n<a href=#%e7%94%9f%e6%88%90%e6%96%b0%e7%9a%84-ssh-%e5%af%86%e9%92%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>注意：GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。</p><p>自该日期起，不再支持 DSA 密钥 (<code>ssh-dss</code>)。无法在 GitHub.com 上向个人帐户添加新的 DSA 密钥。</p><p>2021 年 11 月 2 日之前带有 <code>valid_after</code> 的 RSA 密钥 (<code>ssh-rsa</code>) 可以继续使用任何签名算法。在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。一些较旧的客户端可能需要升级才能使用 SHA-2 签名。</p></div></div></div><ol><li><p>打开终端。</p></li><li><p>粘贴下面的文本（替换为你的 GitHub 电子邮件地址）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>ssh-keygen -t ed25519 -C <span class=s2>&#34;your_email@example.com&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>注意：如果你使用的是不支持 Ed25519 算法的旧系统，请使用以下命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>ssh-keygen -t rsa -b <span class=m>4096</span> -C <span class=s2>&#34;your_email@example.com&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>这将以提供的电子邮件地址为标签创建新 SSH 密钥。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>&gt; Generating public/private ALGORITHM key pair.</span></span></code></pre></td></tr></table></div></div></div><p>当系统提示你“Enter a file in which to save the key（输入要保存密钥的文件）”时，可以按 Enter 键接受默认文件位置。请注意，如果以前创建了 SSH 密钥，则 ssh-keygen 可能会要求重写另一个密钥，在这种情况下，我们建议创建自定义命名的 SSH 密钥。为此，请键入默认文件位置，并将 id_ssh_keyname 替换为自定义密钥名称。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>&gt; Enter a file in which to save the key <span class=o>(</span>/Users/YOU/.ssh/id_ALGORITHM<span class=o>)</span>: <span class=o>[</span>Press enter<span class=o>]</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>在提示符下，键入安全密码。有关详细信息，请参阅“<a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases target=_blank rel=\"external nofollow noopener noreferrer\">使用 SSH 密钥密码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>”。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>&gt; Enter passphrase <span class=o>(</span>empty <span class=k>for</span> no passphrase<span class=o>)</span>: <span class=o>[</span>Type a passphrase<span class=o>]</span>\n</span></span><span class=line><span class=cl>&gt; Enter same passphrase again: <span class=o>[</span>Type passphrase again<span class=o>]</span></span></span></code></pre></td></tr></table></div></div></div></li></ol><p>更多请查看 <a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent target=_blank rel=\"external nofollow noopener noreferrer\">生成新的 SSH 密钥<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=新增-ssh-密钥到-github-帐户><span>4 新增 SSH 密钥到 GitHub 帐户</span>\n<a href=#%e6%96%b0%e5%a2%9e-ssh-%e5%af%86%e9%92%a5%e5%88%b0-github-%e5%b8%90%e6%88%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>注意：添加 SSH 密钥的类型选择 <code>Signing Key</code>，细节略，详见 <a href=https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account target=_blank rel=\"external nofollow noopener noreferrer\">将 SSH 签名密钥添加到 GitHub 帐户<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=将-ssh-密钥告知-git><span>5 将 SSH 密钥告知 Git</span>\n<a href=#%e5%b0%86-ssh-%e5%af%86%e9%92%a5%e5%91%8a%e7%9f%a5-git class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>打开终端。</p></li><li><p>配置 Git 使用 SSH 对提交和标记签名：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global gpg.format ssh</span></span></code></pre></td></tr></table></div></div></div></li><li><p>若要在 Git 中设置 SSH 签名密钥，请粘贴下面的文本，将 <code>/PATH/TO/KEY.PUB</code> 替换为要使用的公钥路径（例如：<code>~/.ssh/id_ed25519.pub</code>）。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB</span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=对提交签名><span>6 对提交签名</span>\n<a href=#%e5%af%b9%e6%8f%90%e4%ba%a4%e7%ad%be%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>当本地分支中的提交更改时，可以将 <code>-S</code> 添加到 <code>git commit</code> 命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Creates a signed commit</span>\n</span></span><span class=line><span class=cl>git commit -S -m <span class=s2>&#34;YOUR_COMMIT_MESSAGE&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>若要将 Git 客户端配置为默认对本地存储库的提交进行签名，请在 Git 版本 2.0.0 及更高版本中，运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config commit.gpgsign true</span></span></code></pre></td></tr></table></div></div></div><p>要在计算机上的任何本地存储库中默认对所有提交进行签名，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global commit.gpgsign true</span></span></code></pre></td></tr></table></div></div></div><p>在本地完成创建提交后，将其推送到 GitHub 上的远程仓库，在 GitHub 上查看提交记录就能看到 <code>Verified</code> 的标志了。</p><h2 class=heading-element id=对标记签名><span>7 对标记签名</span>\n<a href=#%e5%af%b9%e6%a0%87%e8%ae%b0%e7%ad%be%e5%90%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>若要对标记进行签名，请将 <code>-s</code> 添加到 <code>git tag</code> 命令。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Creates a signed tag</span>\n</span></span><span class=line><span class=cl>git tag -s MYTAG</span></span></code></pre></td></tr></table></div></div></div><p>通过运行 <code>git tag -v [tag-name]</code> 验证已签名的标记。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Verifies the signed tag</span>\n</span></span><span class=line><span class=cl>git tag -v MYTAG</span></span></code></pre></td></tr></table></div></div></div><p>或者，可以将 <code>gpgsign</code> 设置为 <code>true</code>，以便在创建标记时自动对其进行签名：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config tag.gpgsign <span class=nb>true</span>\n</span></span><span class=line><span class=cl><span class=c1># 或者</span>\n</span></span><span class=line><span class=cl>git config --global tag.gpgsign true</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=其他><span>8 其他</span>\n<a href=#%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>创建可信公钥列表文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>mkdir -p ~/.config/git\n</span></span><span class=line><span class=cl>touch ~/.config/git/allowed_signers</span></span></code></pre></td></tr></table></div></div></div><p>可信公钥列表文件内容格式如下，每个公钥占一行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>公钥的身份 公钥内容</span></span></code></pre></td></tr></table></div></div></div><p>例如，可以将 <code>~/.ssh/id_ed25519.pub</code> 公钥复制然后粘贴：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pbcopy &lt; ~/.ssh/id_ed25519.pub\n</span></span><span class=line><span class=cl>open ~/.config/git/allowed_signers</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>Cell ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5bRSsXZ5HnUkMMEWS5/jxEQaqbLb+i6xjMyC6qiXsb xxx@xxx.com</span></span></code></pre></td></tr></table></div></div></div><p>将可信公钥列表文件路径添加到 Git 配置中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global gpg.ssh.allowedSignersFile <span class=s2>&#34;~/.config/git/allowed_signers&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>本地查看提交日志签名状况：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git log --show-signature</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ssh-sign/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ssh-sign.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/ssh-sign.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20SSH+%E6%8F%90%E4%BA%A4%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cSSH+%E6%8F%90%E4%BA%A4%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81%7c%0A%7cURL%7chttps://lruihao.cn/posts/ssh-sign/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ssh-sign.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ssh-sign/ data-title=\"SSH 提交签名验证\" data-hashtags=Git,SSH><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ssh-sign/ data-hashtag=Git><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ssh-sign/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ssh-sign/ data-title=\"SSH 提交签名验证\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ssh-sign/ data-title=\"SSH 提交签名验证\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/git/ class=post-tag title=\"标签 - Git\">Git</a><a href=/tags/ssh/ class=post-tag title=\"标签 - SSH\">SSH</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/patch-package/ class=post-nav-item rel=prev title=\"如何给 Npm 包打补丁？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>如何给 Npm 包打补丁？</a><a href=/posts/aws-solution/ class=post-nav-item rel=next title=\"AWS 云上一站式解决方案\">AWS 云上一站式解决方案<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#操作步骤>操作步骤</a></li><li><a href=#检查现有-ssh-密钥>检查现有 SSH 密钥</a></li><li><a href=#生成新的-ssh-密钥>生成新的 SSH 密钥</a></li><li><a href=#新增-ssh-密钥到-github-帐户>新增 SSH 密钥到 GitHub 帐户</a></li><li><a href=#将-ssh-密钥告知-git>将 SSH 密钥告知 Git</a></li><li><a href=#对提交签名>对提交签名</a></li><li><a href=#对标记签名>对标记签名</a></li><li><a href=#其他>其他</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c527e918ff0a8e574b40a00d50866376.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c527e918ff0a8e574b40a00d50866376.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ssh-sign/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ssh-sign/index.md",
    "content": "# SSH 提交签名验证\n\n\nGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\n\n<!--more-->\n\n## 操作步骤\n\n可以使用 SSH 通过自己生成的 SSH 密钥对提交进行签名。有关详细信息，请查看 `user.Signingkey` 的 [Git 参考文档](https://git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningKey)。如果已使用 SSH 密钥向 GitHub 进行了身份验证，还可以再次上传该相同密钥以用作签名密钥。可以添加到帐户的签名密钥数没有限制。\n\nGitHub 使用 [ssh_data](https://github.com/github/ssh_data)（一种开放源代码 Ruby 库）来确认本地签名的提交和标记是否根据在 GitHub.com 上添加到帐户的公钥进行加密验证。\n\n> 注意：SSH 签名验证可用于 Git 2.34 或更高版本。若要更新 Git 版本，请参阅 [Git](https://git-scm.com/downloads) 网站。\n\n要使用 SSH 对提交签名并在 GitHub 上验证这些提交，请执行以下步骤：\n\n1. [检查现有 SSH 密钥](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys)\n2. [生成新的 SSH 密钥](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)\n3. [将 SSH 签名密钥添加到 GitHub 帐户](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)\n4. [将你的签名密钥告诉 Git](https://docs.github.com/zh/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)\n5. [对提交签名](https://docs.github.com/zh/authentication/managing-commit-signature-verification/signing-commits)\n6. [对标记签名](https://docs.github.com/zh/authentication/managing-commit-signature-verification/signing-tags)\n\n## 检查现有 SSH 密钥\n\n1. 打开终端。\n\n2. 输入 `ls -al ~/.ssh` 以查看是否存在现有的 SSH 密钥。\n\n   ```shell\n   # Lists the files in your .ssh directory, if they exist\n   ls -al ~/.ssh\n   ```\n\n3. 检查目录列表以查看是否已经有 SSH 公钥。默认情况下，GitHub 的一个支持的公钥的文件名是以下之一。\n\n   - id_rsa.pub\n   - id_ecdsa.pub\n   - id_ed25519.pub\n\n## 生成新的 SSH 密钥\n\n{{< admonition >}}\n注意：GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。\n\n自该日期起，不再支持 DSA 密钥 (`ssh-dss`)。无法在 GitHub.com 上向个人帐户添加新的 DSA 密钥。\n\n2021 年 11 月 2 日之前带有 `valid_after` 的 RSA 密钥 (`ssh-rsa`) 可以继续使用任何签名算法。在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。一些较旧的客户端可能需要升级才能使用 SHA-2 签名。\n{{< /admonition >}}\n\n1. 打开终端。\n\n2. 粘贴下面的文本（替换为你的 GitHub 电子邮件地址）。\n\n   ```shell\n   ssh-keygen -t ed25519 -C \"your_email@example.com\"\n   ```\n\n   注意：如果你使用的是不支持 Ed25519 算法的旧系统，请使用以下命令：\n\n   ```shell\n   ssh-keygen -t rsa -b 4096 -C \"your_email@example.com\"\n   ```\n\n   这将以提供的电子邮件地址为标签创建新 SSH 密钥。\n\n   ```shell\n   > Generating public/private ALGORITHM key pair.\n   ```\n\n   当系统提示你“Enter a file in which to save the key（输入要保存密钥的文件）”时，可以按 Enter 键接受默认文件位置。请注意，如果以前创建了 SSH 密钥，则 ssh-keygen 可能会要求重写另一个密钥，在这种情况下，我们建议创建自定义命名的 SSH 密钥。为此，请键入默认文件位置，并将 id_ssh_keyname 替换为自定义密钥名称。\n\n   ```shell\n   > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]\n   ```\n\n3. 在提示符下，键入安全密码。有关详细信息，请参阅“[使用 SSH 密钥密码](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases)”。\n\n   ```shell\n   > Enter passphrase (empty for no passphrase): [Type a passphrase]\n   > Enter same passphrase again: [Type passphrase again]\n   ```\n\n更多请查看 [生成新的 SSH 密钥](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)。\n\n## 新增 SSH 密钥到 GitHub 帐户\n\n注意：添加 SSH 密钥的类型选择 `Signing Key`，细节略，详见 [将 SSH 签名密钥添加到 GitHub 帐户](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)。\n\n## 将 SSH 密钥告知 Git\n\n1. 打开终端。\n2. 配置 Git 使用 SSH 对提交和标记签名：\n\n   ```bash\n   git config --global gpg.format ssh\n   ```\n\n3. 若要在 Git 中设置 SSH 签名密钥，请粘贴下面的文本，将 `/PATH/TO/KEY.PUB` 替换为要使用的公钥路径（例如：`~/.ssh/id_ed25519.pub`）。\n\n   ```bash\n   git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB\n   ```\n\n## 对提交签名\n\n当本地分支中的提交更改时，可以将 `-S` 添加到 `git commit` 命令：\n\n```bash\n# Creates a signed commit\ngit commit -S -m \"YOUR_COMMIT_MESSAGE\"\n```\n\n若要将 Git 客户端配置为默认对本地存储库的提交进行签名，请在 Git 版本 2.0.0 及更高版本中，运行：\n\n```bash\ngit config commit.gpgsign true\n```\n\n要在计算机上的任何本地存储库中默认对所有提交进行签名，请运行：\n\n```bash\ngit config --global commit.gpgsign true\n```\n\n在本地完成创建提交后，将其推送到 GitHub 上的远程仓库，在 GitHub 上查看提交记录就能看到 `Verified` 的标志了。\n\n## 对标记签名\n\n若要对标记进行签名，请将 `-s` 添加到 `git tag` 命令。\n\n```bash\n# Creates a signed tag\ngit tag -s MYTAG\n```\n\n通过运行 `git tag -v [tag-name]` 验证已签名的标记。\n\n```bash\n# Verifies the signed tag\ngit tag -v MYTAG\n```\n\n或者，可以将 `gpgsign` 设置为 `true`，以便在创建标记时自动对其进行签名：\n\n```bash\ngit config tag.gpgsign true\n# 或者\ngit config --global tag.gpgsign true\n```\n\n## 其他\n\n创建可信公钥列表文件：\n\n```bash\nmkdir -p ~/.config/git\ntouch ~/.config/git/allowed_signers\n```\n\n可信公钥列表文件内容格式如下，每个公钥占一行：\n\n```plain\n公钥的身份 公钥内容\n```\n\n例如，可以将 `~/.ssh/id_ed25519.pub` 公钥复制然后粘贴：\n\n```bash\npbcopy < ~/.ssh/id_ed25519.pub\nopen ~/.config/git/allowed_signers\n```\n\n```plain\nCell ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5bRSsXZ5HnUkMMEWS5/jxEQaqbLb+i6xjMyC6qiXsb xxx@xxx.com\n```\n\n将可信公钥列表文件路径添加到 Git 配置中：\n\n```bash\ngit config --global gpg.ssh.allowedSignersFile \"~/.config/git/allowed_signers\"\n```\n\n本地查看提交日志签名状况：\n\n```bash\ngit log --show-signature\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ssh-sign/  \n\n"
  },
  {
    "path": "posts/stringbuffer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 常用类 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 StringBuffer/StringBuilder（掌握） 1.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\n\"><meta name=keywords content='StringBuffer,sort,Java'><meta itemprop=name content=\"java 常用类\"><meta itemprop=description content=\"1 StringBuffer/StringBuilder（掌握） 1.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\"><meta itemprop=datePublished content=\"2019-04-14T10:12:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1108\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"StringBuffer,sort,java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/stringbuffer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java 常用类\"><meta property=\"og:description\" content=\"1 StringBuffer/StringBuilder（掌握） 1.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-14T10:12:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"StringBuffer\"><meta property=\"article:tag\" content=\"sort\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java 常用类\"><meta name=twitter:description content=\"1 StringBuffer/StringBuilder（掌握） 1.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/stringbuffer/ title=\"java 常用类 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu1009/ title=\"HDU 1009 FatMouse' Trade（贪心）\"><link rel=next type=text/html href=https://lruihao.cn/posts/java-regex/ title=\"java 正则表达式练习\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/stringbuffer/index.md title=\"java 常用类 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"java 常用类\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/stringbuffer\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"StringBuffer, sort, Java\",\"wordcount\":1108,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/stringbuffer\\/\",\"datePublished\":\"2019-04-14T10:12:44+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/stringbuffer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 常用类</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 常用类</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-14 10:12:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-14>2019-04-14</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1108 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 常用类\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#stringbufferstringbuilder掌握>StringBuffer/StringBuilder（掌握）</a><ol><li><a href=#stringbuffer-是线程安全的可变字符串>StringBuffer 是线程安全的可变字符串</a></li><li><a href=#构造方法>构造方法</a></li><li><a href=#成员方法自己补齐方法和意思>成员方法：（自己补齐方法和意思）</a></li><li><a href=#案例>案例</a></li></ol></li><li><a href=#数组高级部分理解>数组高级部分（理解）</a><ol><li><a href=#排序>排序</a></li><li><a href=#查找>查找</a></li></ol></li><li><a href=#arrays-工具类掌握>Arrays 工具类（掌握）</a><ol><li><a href=#arrays-是针对数组进行操作的工具类提供了排序和查找等功能>Arrays 是针对数组进行操作的工具类，提供了排序和查找等功能</a></li><li><a href=#成员方法自己补齐方法和意思-1>成员方法：（自己补齐方法和意思）</a></li><li><a href=#案例-1>案例</a></li></ol></li><li><a href=#基本类型包装类掌握>基本类型包装类（掌握）</a><ol><li><a href=#为了让我们对基本类型进行更多的操作java-针对每种基本类型提供了对应的包装类类型>为了让我们对基本类型进行更多的操作，java 针对每种基本类型提供了对应的包装类类型</a></li><li><a href=#分别是哪些呢>分别是哪些呢？</a></li><li><a href=#integer>Integer</a></li><li><a href=#character>Character</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=stringbufferstringbuilder掌握><span>1 StringBuffer/StringBuilder（掌握）</span>\n<a href=#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=stringbuffer-是线程安全的可变字符串><span>1.1 StringBuffer 是线程安全的可变字符串</span>\n<a href=#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>StringBuilder 是线程不安全的可变字符串。<br>和 StringBuffer 的功能一样。就是效率高一些，但是不安全。</p><h3 class=heading-element id=构造方法><span>1.2 构造方法</span>\n<a href=#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>StringBuffer sb = new StringBuffer();</li><li>StringBuffer sb = new StringBuffer(50);</li><li>StringBuffer sb = new StringBuffer(&ldquo;hello&rdquo;);</li></ul><h3 class=heading-element id=成员方法自己补齐方法和意思><span>1.3 成员方法：（自己补齐方法和意思）</span>\n<a href=#%e6%88%90%e5%91%98%e6%96%b9%e6%b3%95%e8%87%aa%e5%b7%b1%e8%a1%a5%e9%bd%90%e6%96%b9%e6%b3%95%e5%92%8c%e6%84%8f%e6%80%9d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>添加功能<br>public StringBuffer append(String str): 追加字符串<br>public StringBuffer insert(int offset,String str): 在指定位置插入字符串</li><li>删除功能<br>public StringBuffer deleteCharAt(int index): 删除指定位置字符<br>public StringBuffer delete(int start,int end): 删除从指定开始到结束的字符，左闭右开</li><li>替换功能<br>public StringBuffer replace(int start,int end,String str): 以字符串替代从指定开始到结束的字符</li><li>反转功能<br>public StringBuffer reverse(): 反转</li><li>截取功能<br>public String substring(int start): 从指定索引到末尾的字符串<br>public String substring(int start,int end): 从指定索引开始到指定索引结束的字符串</li></ul><h3 class=heading-element id=案例><span>1.4 案例</span>\n<a href=#%e6%a1%88%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>String 和 StringBuffer 的相互转换，通过构造即可。</li><li>把数组转成指定的字符串格式</li><li>把字符串反转</li><li>判断一个字符串是否是对称字符串</li></ul><h2 class=heading-element id=数组高级部分理解><span>2 数组高级部分（理解）</span>\n<a href=#%e6%95%b0%e7%bb%84%e9%ab%98%e7%ba%a7%e9%83%a8%e5%88%86%e7%90%86%e8%a7%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=排序><span>2.1 排序</span>\n<a href=#%e6%8e%92%e5%ba%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>冒泡排序<blockquote><p>相邻元素，两两比较，大的往后放。</p></blockquote></li></ul><p><a class=lightgallery target=_blank href=/posts/stringbuffer/images/bubble.gif title=冒泡排序 data-thumbnail=/posts/stringbuffer/images/bubble.gif data-sub-html=\"<h2>冒泡排序</h2>\"><img loading=lazy src=/posts/stringbuffer/images/bubble.gif alt=冒泡排序 height=300 width=600></a></p><p><a class=lightgallery target=_blank href=/posts/stringbuffer/images/1.png title=冒泡排序 data-thumbnail=/posts/stringbuffer/images/1.png data-sub-html=\"<h2>冒泡排序</h2>\"><img loading=lazy src=/posts/stringbuffer/images/1.png alt=冒泡排序 height=602 width=1298></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>bubbleSort</span><span class=p>(</span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=n>arr</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>&lt;</span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>y</span><span class=o>&lt;</span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=o>-</span><span class=n>x</span><span class=p>;</span><span class=w> </span><span class=n>y</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]&gt;</span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>+</span><span class=n>1</span><span class=o>]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=kt>int</span><span class=w> </span><span class=n>temp</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>+</span><span class=n>1</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>+</span><span class=n>1</span><span class=o>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>temp</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><ul><li>选择排序<blockquote><p>从 0 开始，依次和后面的比较，小的往前放。</p></blockquote></li></ul><p><a class=lightgallery target=_blank href=/posts/stringbuffer/images/2.png title=\"选择排序 1\" data-thumbnail=/posts/stringbuffer/images/2.png data-sub-html=\"<h2>选择排序 1</h2>\"><img loading=lazy src=/posts/stringbuffer/images/2.png alt=\"选择排序 1\" height=602 width=1298></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>selectSort</span><span class=p>(</span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=n>arr</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>x</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>&lt;</span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w> </span><span class=n>x</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>y</span><span class=o>=</span><span class=n>x</span><span class=o>+</span><span class=n>1</span><span class=p>;</span><span class=w> </span><span class=n>y</span><span class=o>&lt;</span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=w> </span><span class=n>y</span><span class=o>++</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>if</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>arr</span><span class=o>[</span><span class=n>x</span><span class=o>]</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=kt>int</span><span class=w> </span><span class=n>temp</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>arr</span><span class=o>[</span><span class=n>x</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>arr</span><span class=o>[</span><span class=n>x</span><span class=o>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=n>arr</span><span class=o>[</span><span class=n>y</span><span class=o>]</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>temp</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/stringbuffer/images/select.gif title=\"选择排序 2\" data-thumbnail=/posts/stringbuffer/images/select.gif data-sub-html=\"<h2>选择排序 2</h2>\"><img loading=lazy src=/posts/stringbuffer/images/select.gif alt=\"选择排序 2\" height=300 width=600></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>selectSort</span><span class=p>(</span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=n>a</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>min</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=kt>int</span><span class=w> </span><span class=n>temp</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>((</span><span class=n>a</span><span class=o>==</span><span class=kc>null</span><span class=p>)</span><span class=o>||</span><span class=p>(</span><span class=n>a</span><span class=p>.</span><span class=na>length</span><span class=o>==</span><span class=n>0</span><span class=p>))</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>return</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w> </span><span class=n>i</span><span class=o>=</span><span class=n>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>a</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>min</span><span class=o>=</span><span class=n>i</span><span class=p>;</span><span class=c1>//无序区的最小数据数组下标</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=k>for</span><span class=p>(</span><span class=kt>int</span><span class=w>  </span><span class=n>j</span><span class=o>=</span><span class=n>i</span><span class=o>+</span><span class=n>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=n>a</span><span class=p>.</span><span class=na>length</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=c1>//在无序区中找到最小数据并保存其数组下标</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>[</span><span class=n>j</span><span class=o>]&lt;</span><span class=n>a</span><span class=o>[</span><span class=n>min</span><span class=o>]</span><span class=p>)</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>                </span><span class=n>min</span><span class=o>=</span><span class=n>j</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>            </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=c1>//将最小元素放到本次循环的前端</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>temp</span><span class=o>=</span><span class=n>a</span><span class=o>[</span><span class=n>i</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>a</span><span class=o>[</span><span class=n>i</span><span class=o>]=</span><span class=n>a</span><span class=o>[</span><span class=n>min</span><span class=o>]</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=n>a</span><span class=o>[</span><span class=n>min</span><span class=o>]=</span><span class=n>temp</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=查找><span>2.2 查找</span>\n<a href=#%e6%9f%a5%e6%89%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>基本查找<br>数组无序</li><li>二分查找<br>数组有序</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>int</span><span class=w> </span><span class=nf>getIndex</span><span class=p>(</span><span class=kt>int</span><span class=o>[]</span><span class=w> </span><span class=n>arr</span><span class=p>,</span><span class=kt>int</span><span class=w> </span><span class=n>value</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>max</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>arr</span><span class=p>.</span><span class=na>length</span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>min</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>0</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>mid</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=n>max</span><span class=o>+</span><span class=n>min</span><span class=p>)</span><span class=o>/</span><span class=n>2</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>while</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>mid</span><span class=o>]</span><span class=w> </span><span class=o>!=</span><span class=w> </span><span class=n>value</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>mid</span><span class=o>]</span><span class=w> </span><span class=o>&gt;</span><span class=w> </span><span class=n>value</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>max</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>mid</span><span class=w> </span><span class=o>-</span><span class=w> </span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=k>else</span><span class=w> </span><span class=k>if</span><span class=p>(</span><span class=n>arr</span><span class=o>[</span><span class=n>mid</span><span class=o>]</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>value</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=n>min</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>mid</span><span class=w> </span><span class=o>+</span><span class=w> </span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=k>if</span><span class=p>(</span><span class=n>max</span><span class=w> </span><span class=o>&lt;</span><span class=w> </span><span class=n>min</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=k>return</span><span class=w> </span><span class=o>-</span><span class=n>1</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>mid</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=p>(</span><span class=n>max</span><span class=o>+</span><span class=n>min</span><span class=p>)</span><span class=o>/</span><span class=n>2</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=k>return</span><span class=w> </span><span class=n>mid</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=arrays-工具类掌握><span>3 Arrays 工具类（掌握）</span>\n<a href=#arrays-%e5%b7%a5%e5%85%b7%e7%b1%bb%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=arrays-是针对数组进行操作的工具类提供了排序和查找等功能><span>3.1 Arrays 是针对数组进行操作的工具类，提供了排序和查找等功能</span>\n<a href=#arrays-%e6%98%af%e9%92%88%e5%af%b9%e6%95%b0%e7%bb%84%e8%bf%9b%e8%a1%8c%e6%93%8d%e4%bd%9c%e7%9a%84%e5%b7%a5%e5%85%b7%e7%b1%bb%e6%8f%90%e4%be%9b%e4%ba%86%e6%8e%92%e5%ba%8f%e5%92%8c%e6%9f%a5%e6%89%be%e7%ad%89%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=成员方法自己补齐方法和意思-1><span>3.2 成员方法：（自己补齐方法和意思）</span>\n<a href=#%e6%88%90%e5%91%98%e6%96%b9%e6%b3%95%e8%87%aa%e5%b7%b1%e8%a1%a5%e9%bd%90%e6%96%b9%e6%b3%95%e5%92%8c%e6%84%8f%e6%80%9d-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>把数组转成字符串\npublic static String toString(): 将任意类型数据转换成字符串</li><li>排序\npublic static void sort()：</li><li>二分查找\npublic static int binarySearch(int[] arr,int key)</li></ul><h3 class=heading-element id=案例-1><span>3.3 案例</span>\n<a href=#%e6%a1%88%e4%be%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>把字符串中的字符进行排序</p><h2 class=heading-element id=基本类型包装类掌握><span>4 基本类型包装类（掌握）</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e7%b1%bb%e5%9e%8b%e5%8c%85%e8%a3%85%e7%b1%bb%e6%8e%8c%e6%8f%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=为了让我们对基本类型进行更多的操作java-针对每种基本类型提供了对应的包装类类型><span>4.1 为了让我们对基本类型进行更多的操作，java 针对每种基本类型提供了对应的包装类类型</span>\n<a href=#%e4%b8%ba%e4%ba%86%e8%ae%a9%e6%88%91%e4%bb%ac%e5%af%b9%e5%9f%ba%e6%9c%ac%e7%b1%bb%e5%9e%8b%e8%bf%9b%e8%a1%8c%e6%9b%b4%e5%a4%9a%e7%9a%84%e6%93%8d%e4%bd%9cjava-%e9%92%88%e5%af%b9%e6%af%8f%e7%a7%8d%e5%9f%ba%e6%9c%ac%e7%b1%bb%e5%9e%8b%e6%8f%90%e4%be%9b%e4%ba%86%e5%af%b9%e5%ba%94%e7%9a%84%e5%8c%85%e8%a3%85%e7%b1%bb%e7%b1%bb%e5%9e%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h3 class=heading-element id=分别是哪些呢><span>4.2 分别是哪些呢？</span>\n<a href=#%e5%88%86%e5%88%ab%e6%98%af%e5%93%aa%e4%ba%9b%e5%91%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>  byte    Byte\n</span></span><span class=line><span class=cl>  short    Short\n</span></span><span class=line><span class=cl>  int    Integer\n</span></span><span class=line><span class=cl>  long    Long\n</span></span><span class=line><span class=cl>  float    Float\n</span></span><span class=line><span class=cl>  double    Double\n</span></span><span class=line><span class=cl>  char    Character\n</span></span><span class=line><span class=cl>  boolean    Boolean\n</span></span><span class=line><span class=cl>特殊：void    Void</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=integer><span>4.3 Integer</span>\n<a href=#integer class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>构造方法<ul><li>Integer i = new Integer(100);</li><li>Integer i = new Integer(&ldquo;100&rdquo;);</li></ul></li><li>成员方法（自己补齐方法和意思）<ul><li>把字符串转成 int 类型<br>String->int: Integer.parseInt()<br>int->String: String.valueOf() 或 Integer.toString()</li></ul></li><li>JDK5 的新特性</li></ul><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>自动装箱：\n</span></span><span class=line><span class=cl>  int --&gt; Integer    //Integer.valueOf()\n</span></span><span class=line><span class=cl>自动拆箱：\n</span></span><span class=line><span class=cl>  Integer --&gt; int    //Integer.intValue()\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>请解释：\n</span></span><span class=line><span class=cl>  Integer i = 100;\n</span></span><span class=line><span class=cl>  i+=200;\n</span></span><span class=line><span class=cl>  System.out.println(i);</span></span></code></pre></td></tr></table></div></div></div><ul><li>byte 缓存池面试题<br>byte,short,char&mdash;>小于 127，否则报 -6 的错误（查看 JDK)</li></ul><h3 class=heading-element id=character><span>4.4 Character</span>\n<a href=#character class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>构造方法<br>Character ch = new Character(&lsquo;a&rsquo;);</li><li>成员方法（自己补齐方法和意思）<ul><li>判断字符是否是大写字母\npublic boolean isUpperCase(char ch)</li><li>判断字符是否是小写字母\npublic boolean isLowerCase(Char ch)</li><li>判断字符是否是数字字符\npublic boolean isDigit(Char ch)</li><li>把字符转成大写\npublic Char toUpperCase(Char ch)</li><li>把字符转成小写\npublic Char toLowerCase(Char ch)</li></ul></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/stringbuffer/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/stringbuffer/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/stringbuffer/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20java+%E5%B8%B8%E7%94%A8%E7%B1%BB&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cjava+%E5%B8%B8%E7%94%A8%E7%B1%BB%7c%0A%7cURL%7chttps://lruihao.cn/posts/stringbuffer/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/stringbuffer/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/stringbuffer/ data-title=\"Java 常用类\" data-hashtags=StringBuffer,sort,Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/stringbuffer/ data-hashtag=StringBuffer><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/stringbuffer/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/stringbuffer/ data-title=\"Java 常用类\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/stringbuffer/ data-title=\"Java 常用类\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/stringbuffer/ class=post-tag title=\"标签 - StringBuffer\">StringBuffer</a><a href=/tags/sort/ class=post-tag title=\"标签 - sort\">sort</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu1009/ class=post-nav-item rel=prev title=\"HDU 1009 FatMouse' Trade（贪心）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>HDU 1009 FatMouse' Trade（贪心）</a><a href=/posts/java-regex/ class=post-nav-item rel=next title=\"Java 正则表达式练习\">Java 正则表达式练习<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#stringbufferstringbuilder掌握>StringBuffer/StringBuilder（掌握）</a><ol><li><a href=#stringbuffer-是线程安全的可变字符串>StringBuffer 是线程安全的可变字符串</a></li><li><a href=#构造方法>构造方法</a></li><li><a href=#成员方法自己补齐方法和意思>成员方法：（自己补齐方法和意思）</a></li><li><a href=#案例>案例</a></li></ol></li><li><a href=#数组高级部分理解>数组高级部分（理解）</a><ol><li><a href=#排序>排序</a></li><li><a href=#查找>查找</a></li></ol></li><li><a href=#arrays-工具类掌握>Arrays 工具类（掌握）</a><ol><li><a href=#arrays-是针对数组进行操作的工具类提供了排序和查找等功能>Arrays 是针对数组进行操作的工具类，提供了排序和查找等功能</a></li><li><a href=#成员方法自己补齐方法和意思-1>成员方法：（自己补齐方法和意思）</a></li><li><a href=#案例-1>案例</a></li></ol></li><li><a href=#基本类型包装类掌握>基本类型包装类（掌握）</a><ol><li><a href=#为了让我们对基本类型进行更多的操作java-针对每种基本类型提供了对应的包装类类型>为了让我们对基本类型进行更多的操作，java 针对每种基本类型提供了对应的包装类类型</a></li><li><a href=#分别是哪些呢>分别是哪些呢？</a></li><li><a href=#integer>Integer</a></li><li><a href=#character>Character</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/stringbuffer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/stringbuffer/index.md",
    "content": "# Java 常用类\n\n\n## StringBuffer/StringBuilder（掌握）\n\n### StringBuffer 是线程安全的可变字符串\n\nStringBuilder 是线程不安全的可变字符串。  \n 和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\n\n### 构造方法\n\n- StringBuffer sb = new StringBuffer();\n- StringBuffer sb = new StringBuffer(50);\n- StringBuffer sb = new StringBuffer(\"hello\");\n\n### 成员方法：（自己补齐方法和意思）\n\n- 添加功能  \n  public StringBuffer append(String str): 追加字符串  \n  public StringBuffer insert(int offset,String str): 在指定位置插入字符串\n- 删除功能  \n  public StringBuffer deleteCharAt(int index): 删除指定位置字符  \n  public StringBuffer delete(int start,int end): 删除从指定开始到结束的字符，左闭右开\n- 替换功能  \n  public StringBuffer replace(int start,int end,String str): 以字符串替代从指定开始到结束的字符\n- 反转功能  \n  public StringBuffer reverse(): 反转\n- 截取功能  \n  public String substring(int start): 从指定索引到末尾的字符串  \n  public String substring(int start,int end): 从指定索引开始到指定索引结束的字符串\n\n### 案例\n\n- String 和 StringBuffer 的相互转换，通过构造即可。\n- 把数组转成指定的字符串格式\n- 把字符串反转\n- 判断一个字符串是否是对称字符串\n\n## 数组高级部分（理解）\n\n### 排序\n\n- 冒泡排序\n  > 相邻元素，两两比较，大的往后放。\n\n![冒泡排序](images/bubble.gif)\n\n![冒泡排序](images/1.png)\n\n```java\n  public static void bubbleSort(int[] arr) {\n    for(int x=0; x<arr.length-1; x++) {\n      for(int y=0; y<arr.length-1-x; y++) {\n        if(arr[y]>arr[y+1]) {\n          int temp = arr[y];\n          arr[y] = arr[y+1];\n          arr[y+1] = temp;\n        }\n      }\n    }\n  }\n```\n\n- 选择排序\n  > 从 0 开始，依次和后面的比较，小的往前放。\n\n![选择排序 1](images/2.png)\n\n```java\n  public static void selectSort(int[] arr) {\n    for(int x=0; x<arr.length-1; x++) {\n      for(int y=x+1; y<arr.length; y++) {\n        if(arr[y] < arr[x]) {\n          int temp = arr[x];\n          arr[x] = arr[y];\n          arr[y] = temp;\n        }\n      }\n    }\n  }\n```\n\n![选择排序 2](images/select.gif)\n\n```java\npublic static void selectSort(int[] a)\n{\n    int min=0;\n    int temp=0;\n    if((a==null)||(a.length==0))\n        return;\n    for(int i=0;i<a.length-1;i++)\n    {\n        min=i;//无序区的最小数据数组下标\n        for(int  j=i+1;j<a.length;j++)\n        {\n            //在无序区中找到最小数据并保存其数组下标\n            if(a[j]<a[min])\n            {\n                min=j;\n            }\n        }\n        //将最小元素放到本次循环的前端\n        temp=a[i];\n        a[i]=a[min];\n        a[min]=temp;\n    }\n}\n```\n\n### 查找\n\n- 基本查找  \n  数组无序\n- 二分查找  \n  数组有序\n\n```java\npublic static int getIndex(int[] arr,int value) {\n  int max = arr.length-1;\n  int min = 0;\n  int mid = (max+min)/2;\n\n  while(arr[mid] != value) {\n    if(arr[mid] > value) {\n      max = mid - 1;\n    }else if(arr[mid] < value) {\n      min = mid + 1;\n    }\n\n    if(max < min) {\n      return -1;\n    }\n\n    mid = (max+min)/2;\n  }\n\n  return mid;\n}\n```\n\n## Arrays 工具类（掌握）\n\n### Arrays 是针对数组进行操作的工具类，提供了排序和查找等功能\n\n<!-- markdownlint-disable MD024 -->\n\n### 成员方法：（自己补齐方法和意思）\n\n- 把数组转成字符串\n  public static String toString(): 将任意类型数据转换成字符串\n- 排序\n  public static void sort()：\n- 二分查找\n  public static int binarySearch(int[] arr,int key)\n\n### 案例\n\n把字符串中的字符进行排序\n\n## 基本类型包装类（掌握）\n\n### 为了让我们对基本类型进行更多的操作，java 针对每种基本类型提供了对应的包装类类型\n\n### 分别是哪些呢？\n\n```plain\n  byte    Byte\n  short    Short\n  int    Integer\n  long    Long\n  float    Float\n  double    Double\n  char    Character\n  boolean    Boolean\n特殊：void    Void\n```\n\n### Integer\n\n- 构造方法\n  - Integer i = new Integer(100);\n  - Integer i = new Integer(\"100\");\n- 成员方法（自己补齐方法和意思）\n  - 把字符串转成 int 类型  \n    String->int: Integer.parseInt()  \n    int->String: String.valueOf() 或 Integer.toString()\n- JDK5 的新特性\n\n```plain\n自动装箱：\n  int --> Integer    //Integer.valueOf()\n自动拆箱：\n  Integer --> int    //Integer.intValue()\n\n请解释：\n  Integer i = 100;\n  i+=200;\n  System.out.println(i);\n```\n\n- byte 缓存池面试题  \n  byte,short,char--->小于 127，否则报 -6 的错误（查看 JDK)\n\n### Character\n\n- 构造方法  \n  Character ch = new Character('a');\n- 成员方法（自己补齐方法和意思）\n  - 判断字符是否是大写字母\n    public boolean isUpperCase(char ch)\n  - 判断字符是否是小写字母\n    public boolean isLowerCase(Char ch)\n  - 判断字符是否是数字字符\n    public boolean isDigit(Char ch)\n  - 把字符转成大写\n    public Char toUpperCase(Char ch)\n  - 把字符转成小写\n    public Char toLowerCase(Char ch)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/stringbuffer/  \n\n"
  },
  {
    "path": "posts/subject-verb/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>英语语法--主谓一致 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\n\"><meta name=keywords content='English'><meta itemprop=name content=\"英语语法--主谓一致\"><meta itemprop=description content=\"1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\"><meta itemprop=datePublished content=\"2019-01-12T13:02:49+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1584\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"English\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/subject-verb/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"英语语法--主谓一致\"><meta property=\"og:description\" content=\"1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-01-12T13:02:49+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"English\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"英语语法--主谓一致\"><meta name=twitter:description content=\"1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/subject-verb/ title=\"英语语法--主谓一致 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/years/2018/ title=\"2018 年度总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/biaoshi/ title=\"java 标识符\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/subject-verb/index.md title=\"英语语法--主谓一致 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"英语语法--主谓一致\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/subject-verb\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"English\",\"wordcount\":1584,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/subject-verb\\/\",\"datePublished\":\"2019-01-12T13:02:49+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/subject-verb/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>英语语法--主谓一致</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>英语语法--主谓一致</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-12 13:02:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-12>2019-01-12</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1584 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=英语语法--主谓一致><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#常见情况>常见情况</a><ol><li><a href=#由-and-或-both-and-连接的并列主语谓语动词一般用复数>由 and 或 both and 连接的并列主语，谓语动词一般用复数</a></li><li><a href=#一但主语前被-noeveryeach-所修饰时谓语动词用单数>一但主语前被 no,every,each 所修饰时，谓语动词用单数</a></li><li><a href=#当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数>当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数</a></li><li><a href=#两数相加或相乘单复皆可相减或相除只能用单数量词做主语用单数>两数相加或相乘，单复皆可，相减或相除，只能用单数，量词做主语，用单数</a></li></ol></li><li><a href=#就近原则>就近原则</a></li><li><a href=#就远原则>就远原则</a></li><li><a href=#时间金钱距离温度天气重量等不可数名词to-dodoing-从句做主语时谓-v-用单数>时间，金钱，距离，温度，天气，重量等不可数名词，to do,doing, 从句做主语时，谓 v 用单数</a></li><li><a href=#分数百分数the-restofn-做主语用单数>分数，百分数，the rest(+of+n) 做主语，用单数</a></li><li><a href=#一些短语>一些短语</a></li><li><a href=#不定代词做主语谓语动词用单数>不定代词做主语，谓语动词用单数</a></li><li><a href=#the-adj-表一类人做主语时谓语动词用复数>the +adj 表一类人做主语时，谓语动词用复数</a></li><li><a href=#成双成对的词做主语用复数>成双成对的词做主语，用复数</a></li><li><a href=#以-s-结尾特殊专用名词用单数>以 s 结尾特殊专用名词，用单数</a></li><li><a href=#many-a-单-n单谓-许多more-than-one-单-n单谓-不止一个>many a +单 n+单谓： “许多”more than one +单 n+单谓： “不止一个”</a></li><li><a href=#policepeoplecattle-做主语用复数>police,people,cattle 做主语，用复数</a></li><li><a href=#the-olympics--the-olympic-games>the Olympics & the Olympic games</a></li><li><a href=#集体名词做主语表整体用单数表成员用复数>集体名词做主语，表整体用单数，表成员用复数</a></li><li><a href=#单复同形sheepdeermeanschinese-等谓语动词依据情况而定>单复同形，sheep,deer,means,Chinese 等谓语动词依据情况而定</a></li><li><a href=#地点状语位于句首>地点状语位于句首</a></li><li><a href=#of-of-表所属时中心词在-of-之前谓语动词由中心词决定特例除外>&ldquo;of&rdquo;: of 表所属时，中心词在 of 之前，谓语动词由中心词决定，特例除外</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=常见情况><span>1 常见情况</span>\n<a href=#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=由-and-或-both-and-连接的并列主语谓语动词一般用复数><span>1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数</span>\n<a href=#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>English <u>and</u> chinese are two quite different languages.</li><li><u>Both</u> brother <u>and</u> sister tire of city life.</li></ol><h3 class=heading-element id=一但主语前被-noeveryeach-所修饰时谓语动词用单数><span>1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数</span>\n<a href=#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><u>No</u> desk <u>and</u> (no) chair is seen in the hall.</li><li>All work <u>and</u> <u>no</u> play makes Jack a dull boy.</li><li>They each have been to the Forbidden city.\neach 位于主语后，所以谓语动词用复数</li></ol><h3 class=heading-element id=当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数><span>1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数</span>\n<a href=#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread</p><ol><li>The horse and cart has fallen down the cliff（悬崖）.</li><li>Butter and bread is his favourate.</li><li>The poet（诗人）and writer has been sentenced（判决）to death.</li><li>The poet and the writer have been sentenced（判决）to death.</li></ol><h3 class=heading-element id=两数相加或相乘单复皆可相减或相除只能用单数量词做主语用单数><span>1.4 两数相加或相乘，单复皆可，相减或相除，只能用单数，量词做主语，用单数</span>\n<a href=#%e4%b8%a4%e6%95%b0%e7%9b%b8%e5%8a%a0%e6%88%96%e7%9b%b8%e4%b9%98%e5%8d%95%e5%a4%8d%e7%9a%86%e5%8f%af%e7%9b%b8%e5%87%8f%e6%88%96%e7%9b%b8%e9%99%a4%e5%8f%aa%e8%83%bd%e7%94%a8%e5%8d%95%e6%95%b0%e9%87%8f%e8%af%8d%e5%81%9a%e4%b8%bb%e8%af%ad%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>等于：be,equal,be equal to,make\n相加：and,plus\n相减：minus\n相乘：multily,time\n相除：divided by</p><p>One and one make(makes) two.</p><h2 class=heading-element id=就近原则><span>2 就近原则</span>\n<a href=#%e5%b0%b1%e8%bf%91%e5%8e%9f%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>not only&mldr;but also\nthere/here be\nor,nor,either&mldr;or,neither&mldr;nor,not&mldr;but</p></blockquote><ol><li>There is a desk and two chairs in the room.</li><li>Are you or your sister fond of classical music?</li><li>An apple or two lies on the desk.（数量词后用单数）</li><li>One or two apples lie on the desk.</li><li>Not he but you have come.</li></ol><h2 class=heading-element id=就远原则><span>3 就远原则</span>\n<a href=#%e5%b0%b1%e8%bf%9c%e5%8e%9f%e5%88%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>两单体两结构三 with 四除外\nlike,including\nrather than,as well as\nwith,together with,along with\nexcept,besides,but,in addition to</p></blockquote><ol><li>The couple in addition to their child are mean.</li><li>Lauren,rather than anyone else was chose his partener.</li><li>A library together with 3000 books was destroyed in the fire.</li></ol><h2 class=heading-element id=时间金钱距离温度天气重量等不可数名词to-dodoing-从句做主语时谓-v-用单数><span>4 时间，金钱，距离，温度，天气，重量等不可数名词，to do,doing, 从句做主语时，谓 v 用单数</span>\n<a href=#%e6%97%b6%e9%97%b4%e9%87%91%e9%92%b1%e8%b7%9d%e7%a6%bb%e6%b8%a9%e5%ba%a6%e5%a4%a9%e6%b0%94%e9%87%8d%e9%87%8f%e7%ad%89%e4%b8%8d%e5%8f%af%e6%95%b0%e5%90%8d%e8%af%8dto-dodoing-%e4%bb%8e%e5%8f%a5%e5%81%9a%e4%b8%bb%e8%af%ad%e6%97%b6%e8%b0%93-v-%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>To go to bed early and rise early is a good habit.</li><li>What he says and behaives doesn&rsquo;t concern me.</li></ol><h2 class=heading-element id=分数百分数the-restofn-做主语用单数><span>5 分数，百分数，the rest(+of+n) 做主语，用单数</span>\n<a href=#%e5%88%86%e6%95%b0%e7%99%be%e5%88%86%e6%95%b0the-restofn-%e5%81%9a%e4%b8%bb%e8%af%ad%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>谓语动词由 of 后面的名词决定，一般用单数。\n分数用法：通常分子读基数，分母读序数，分子超过 1 时，分母加 s。即 基 + 序 (s)+of+n+谓</p><ol><li>Most students are in favaour of the contract（契约）but the rest disagree.\nbe favaour of: be for,approve of,support,agree with</li><li>About two thirds of the earth&rsquo;s surface is covered by water.</li></ol><h2 class=heading-element id=一些短语><span>6 一些短语</span>\n<a href=#%e4%b8%80%e4%ba%9b%e7%9f%ad%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>one of+n 或 the only one of+n, 一般用单数（定从根据中心词在 of 前后）\na number of+n（用复数） & the number of+n（用单数）\none in 或 one out of+n（用单数）\na large quantity of & large quantity of + 可、不可数 n\na large amount of & large amounts of + 不可数 n</p></blockquote><ol><li>He is one of the students who were awarded the other day.</li><li>He is the only one of the students who was awarded the other day.</li><li>One of his family was a traitor（卖国贼，叛徒）during the world war two.</li><li>A number of teenagers are addicted to the Internet.</li><li>The number of students who are addicted to the Internet is up to（接近于）15.</li><li>Large amounts of power are foused on him alone.==a large amount of power is foused on him alone.</li></ol><h2 class=heading-element id=不定代词做主语谓语动词用单数><span>7 不定代词做主语，谓语动词用单数</span>\n<a href=#%e4%b8%8d%e5%ae%9a%e4%bb%a3%e8%af%8d%e5%81%9a%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>all 修饰人，谓语动词用复数，修饰物，谓语动词用单数</p></blockquote><ol><li>All are present besides the professor.</li><li>All that glitters（发光体）is not gold.\nnot 与 all/both 等连用表部分否定</li></ol><h2 class=heading-element id=the-adj-表一类人做主语时谓语动词用复数><span>8 the +adj 表一类人做主语时，谓语动词用复数</span>\n<a href=#the-adj-%e8%a1%a8%e4%b8%80%e7%b1%bb%e4%ba%ba%e5%81%9a%e4%b8%bb%e8%af%ad%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>The injured are taken good care of in hospital.</li><li>The agreeable is not always the useful.（不表人）</li></ul><h2 class=heading-element id=成双成对的词做主语用复数><span>9 成双成对的词做主语，用复数</span>\n<a href=#%e6%88%90%e5%8f%8c%e6%88%90%e5%af%b9%e7%9a%84%e8%af%8d%e5%81%9a%e4%b8%bb%e8%af%ad%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>trousers（裤子）,chopsticks,scissors（剪刀）,glasses</p></blockquote><ol><li>Pants are what I want.</li><li>The pair of glasses seems expensive.（谓语动词与表示计量单位的名词形式一致）</li><li>Three set of fashionable socks are shown in today&rsquo;s evening proper（恰当地）.</li></ol><p>一系列：a piece/pair/set/suit/series of</p><h2 class=heading-element id=以-s-结尾特殊专用名词用单数><span>10 以 s 结尾特殊专用名词，用单数</span>\n<a href=#%e4%bb%a5-s-%e7%bb%93%e5%b0%be%e7%89%b9%e6%ae%8a%e4%b8%93%e7%94%a8%e5%90%8d%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>表学科，疾病，山脉，河流，书名，歌名，格言等\nmaths,physicsa（物理）,politics（政治）,classics,economics,Aids,SARs,diabetes（糖尿病）,arthritis（关节炎）,bronchitis（支气管炎）,Himalayas,Arabian Night</p></blockquote><p>Arabian Night sounds beautiful.</p><h2 class=heading-element id=many-a-单-n单谓-许多more-than-one-单-n单谓-不止一个><span>11 many a +单 n+单谓： “许多”more than one +单 n+单谓： “不止一个”</span>\n<a href=#many-a-%e5%8d%95-n%e5%8d%95%e8%b0%93-%e8%ae%b8%e5%a4%9amore-than-one-%e5%8d%95-n%e5%8d%95%e8%b0%93-%e4%b8%8d%e6%ad%a2%e4%b8%80%e4%b8%aa class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>Many a man thinks life is meaningless without a purpose/an aim.</li><li>More than one student has put forward the suggestion.</li><li>More students than one are against the proposal.</li><li>More than 20% students were absent at the meeting yesterday.（不止）</li></ol><h2 class=heading-element id=policepeoplecattle-做主语用复数><span>12 police,people,cattle 做主语，用复数</span>\n<a href=#policepeoplecattle-%e5%81%9a%e4%b8%bb%e8%af%ad%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>It is reported that police are trying their best to capture the murder.</p><h2 class=heading-element id=the-olympics--the-olympic-games><span>13 the Olympics & the Olympic games</span>\n<a href=#the-olympics--the-olympic-games class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The Olympices is hold every four years. == The Olympic games are hold every four year.</p><h2 class=heading-element id=集体名词做主语表整体用单数表成员用复数><span>14 集体名词做主语，表整体用单数，表成员用复数</span>\n<a href=#%e9%9b%86%e4%bd%93%e5%90%8d%e8%af%8d%e5%81%9a%e4%b8%bb%e8%af%ad%e8%a1%a8%e6%95%b4%e4%bd%93%e7%94%a8%e5%8d%95%e6%95%b0%e8%a1%a8%e6%88%90%e5%91%98%e7%94%a8%e5%a4%8d%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>family,class,group,team,army,public,crew,population</p></blockquote><ol><li>The innovation experiment（革新实验）class consists of 24 students and enjoy chinese.</li><li>Population in China is 1.4 billion <u>or so</u>(about) 20% (Population) have no access to clean water.</li></ol><h2 class=heading-element id=单复同形sheepdeermeanschinese-等谓语动词依据情况而定><span>15 单复同形，sheep,deer,means,Chinese 等谓语动词依据情况而定</span>\n<a href=#%e5%8d%95%e5%a4%8d%e5%90%8c%e5%bd%a2sheepdeermeanschinese-%e7%ad%89%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%be%9d%e6%8d%ae%e6%83%85%e5%86%b5%e8%80%8c%e5%ae%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Many deer live on the African grassland.</p><h2 class=heading-element id=地点状语位于句首><span>16 地点状语位于句首</span>\n<a href=#%e5%9c%b0%e7%82%b9%e7%8a%b6%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>Among the crow stand his parents.</li><li>On the wall hangs an alarm clock.</li></ol><h2 class=heading-element id=of-of-表所属时中心词在-of-之前谓语动词由中心词决定特例除外><span>17 &ldquo;of&rdquo;: of 表所属时，中心词在 of 之前，谓语动词由中心词决定，特例除外</span>\n<a href=#of-of-%e8%a1%a8%e6%89%80%e5%b1%9e%e6%97%b6%e4%b8%ad%e5%bf%83%e8%af%8d%e5%9c%a8-of-%e4%b9%8b%e5%89%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%b1%e4%b8%ad%e5%bf%83%e8%af%8d%e5%86%b3%e5%ae%9a%e7%89%b9%e4%be%8b%e9%99%a4%e5%a4%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/subject-verb/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/subject-verb.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/subject-verb.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E4%B8%BB%E8%B0%93%E4%B8%80%E8%87%B4&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E8%8B%B1%E8%AF%AD%E8%AF%AD%E6%B3%95--%E4%B8%BB%E8%B0%93%E4%B8%80%E8%87%B4%7c%0A%7cURL%7chttps://lruihao.cn/posts/subject-verb/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/subject-verb.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/subject-verb/ data-title=英语语法--主谓一致 data-hashtags=English><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/subject-verb/ data-hashtag=English><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/subject-verb/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/subject-verb/ data-title=英语语法--主谓一致 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/subject-verb/ data-title=英语语法--主谓一致><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/english/ class=post-tag title=\"标签 - English\">English</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/years/2018/ class=post-nav-item rel=prev title=\"2018 年度总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>2018 年度总结</a><a href=/posts/biaoshi/ class=post-nav-item rel=next title=\"Java 标识符\">Java 标识符<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#常见情况>常见情况</a><ol><li><a href=#由-and-或-both-and-连接的并列主语谓语动词一般用复数>由 and 或 both and 连接的并列主语，谓语动词一般用复数</a></li><li><a href=#一但主语前被-noeveryeach-所修饰时谓语动词用单数>一但主语前被 no,every,each 所修饰时，谓语动词用单数</a></li><li><a href=#当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数>当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数</a></li><li><a href=#两数相加或相乘单复皆可相减或相除只能用单数量词做主语用单数>两数相加或相乘，单复皆可，相减或相除，只能用单数，量词做主语，用单数</a></li></ol></li><li><a href=#就近原则>就近原则</a></li><li><a href=#就远原则>就远原则</a></li><li><a href=#时间金钱距离温度天气重量等不可数名词to-dodoing-从句做主语时谓-v-用单数>时间，金钱，距离，温度，天气，重量等不可数名词，to do,doing, 从句做主语时，谓 v 用单数</a></li><li><a href=#分数百分数the-restofn-做主语用单数>分数，百分数，the rest(+of+n) 做主语，用单数</a></li><li><a href=#一些短语>一些短语</a></li><li><a href=#不定代词做主语谓语动词用单数>不定代词做主语，谓语动词用单数</a></li><li><a href=#the-adj-表一类人做主语时谓语动词用复数>the +adj 表一类人做主语时，谓语动词用复数</a></li><li><a href=#成双成对的词做主语用复数>成双成对的词做主语，用复数</a></li><li><a href=#以-s-结尾特殊专用名词用单数>以 s 结尾特殊专用名词，用单数</a></li><li><a href=#many-a-单-n单谓-许多more-than-one-单-n单谓-不止一个>many a +单 n+单谓： “许多”more than one +单 n+单谓： “不止一个”</a></li><li><a href=#policepeoplecattle-做主语用复数>police,people,cattle 做主语，用复数</a></li><li><a href=#the-olympics--the-olympic-games>the Olympics & the Olympic games</a></li><li><a href=#集体名词做主语表整体用单数表成员用复数>集体名词做主语，表整体用单数，表成员用复数</a></li><li><a href=#单复同形sheepdeermeanschinese-等谓语动词依据情况而定>单复同形，sheep,deer,means,Chinese 等谓语动词依据情况而定</a></li><li><a href=#地点状语位于句首>地点状语位于句首</a></li><li><a href=#of-of-表所属时中心词在-of-之前谓语动词由中心词决定特例除外>&ldquo;of&rdquo;: of 表所属时，中心词在 of 之前，谓语动词由中心词决定，特例除外</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ee6eb6b7a814d20b2414551e5d0cd11d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ee6eb6b7a814d20b2414551e5d0cd11d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/subject-verb/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/subject-verb/index.md",
    "content": "# 英语语法--主谓一致\n\n\n<!-- markdownlint-disable MD033 -->\n\n## 常见情况\n\n### 由 and 或 both and 连接的并列主语，谓语动词一般用复数\n\n1. English <u>and</u> chinese are two quite different languages.\n2. <u>Both</u> brother <u>and</u> sister tire of city life.\n\n### 一但主语前被 no,every,each 所修饰时，谓语动词用单数\n\n1. <u>No</u> desk <u>and</u> (no) chair is seen in the hall.\n2. All work <u>and</u> <u>no</u> play makes Jack a dull boy.\n3. They each have been to the Forbidden city.\n   each 位于主语后，所以谓语动词用复数\n\n### 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数\n\n比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\n\n1. The horse and cart has fallen down the cliff（悬崖）.\n2. Butter and bread is his favourate.\n3. The poet（诗人）and writer has been sentenced（判决）to death.\n4. The poet and the writer have been sentenced（判决）to death.\n\n### 两数相加或相乘，单复皆可，相减或相除，只能用单数，量词做主语，用单数\n\n等于：be,equal,be equal to,make\n相加：and,plus\n相减：minus\n相乘：multily,time\n相除：divided by\n\nOne and one make(makes) two.\n\n## 就近原则\n\n> not only...but also\n> there/here be\n> or,nor,either...or,neither...nor,not...but\n\n1. There is a desk and two chairs in the room.\n2. Are you or your sister fond of classical music?\n3. An apple or two lies on the desk.（数量词后用单数）\n4. One or two apples lie on the desk.\n5. Not he but you have come.\n\n## 就远原则\n\n> 两单体两结构三 with 四除外\n> like,including\n> rather than,as well as\n> with,together with,along with\n> except,besides,but,in addition to\n\n1. The couple in addition to their child are mean.\n2. Lauren,rather than anyone else was chose his partener.\n3. A library together with 3000 books was destroyed in the fire.\n\n## 时间，金钱，距离，温度，天气，重量等不可数名词，to do,doing, 从句做主语时，谓 v 用单数\n\n1. To go to bed early and rise early is a good habit.\n2. What he says and behaives doesn't concern me.\n\n## 分数，百分数，the rest(+of+n) 做主语，用单数\n\n谓语动词由 of 后面的名词决定，一般用单数。\n分数用法：通常分子读基数，分母读序数，分子超过 1 时，分母加 s。即 基 + 序 (s)+of+n+谓\n\n1. Most students are in favaour of the contract（契约）but the rest disagree.\n   be favaour of: be for,approve of,support,agree with\n2. About two thirds of the earth's surface is covered by water.\n\n## 一些短语\n\n> one of+n 或 the only one of+n, 一般用单数（定从根据中心词在 of 前后）\n> a number of+n（用复数） & the number of+n（用单数）\n> one in 或 one out of+n（用单数）\n> a large quantity of & large quantity of + 可、不可数 n\n> a large amount of & large amounts of + 不可数 n\n\n1. He is one of the students who were awarded the other day.\n2. He is the only one of the students who was awarded the other day.\n3. One of his family was a traitor（卖国贼，叛徒）during the world war two.\n4. A number of teenagers are addicted to the Internet.\n5. The number of students who are addicted to the Internet is up to（接近于）15.\n6. Large amounts of power are foused on him alone.==a large amount of power is foused on him alone.\n\n## 不定代词做主语，谓语动词用单数\n\n> all 修饰人，谓语动词用复数，修饰物，谓语动词用单数\n\n1. All are present besides the professor.\n2. All that glitters（发光体）is not gold.\n   not 与 all/both 等连用表部分否定\n\n## the +adj 表一类人做主语时，谓语动词用复数\n\n- The injured are taken good care of in hospital.\n- The agreeable is not always the useful.（不表人）\n\n## 成双成对的词做主语，用复数\n\n> trousers（裤子）,chopsticks,scissors（剪刀）,glasses\n\n1. Pants are what I want.\n2. The pair of glasses seems expensive.（谓语动词与表示计量单位的名词形式一致）\n3. Three set of fashionable socks are shown in today's evening proper（恰当地）.\n\n一系列：a piece/pair/set/suit/series of\n\n## 以 s 结尾特殊专用名词，用单数\n\n> 表学科，疾病，山脉，河流，书名，歌名，格言等\n> maths,physicsa（物理）,politics（政治）,classics,economics,Aids,SARs,diabetes（糖尿病）,arthritis（关节炎）,bronchitis（支气管炎）,Himalayas,Arabian Night\n\nArabian Night sounds beautiful.\n\n## many a +单 n+单谓： “许多”more than one +单 n+单谓： “不止一个”\n\n1. Many a man thinks life is meaningless without a purpose/an aim.\n2. More than one student has put forward the suggestion.\n3. More students than one are against the proposal.\n4. More than 20% students were absent at the meeting yesterday.（不止）\n\n## police,people,cattle 做主语，用复数\n\nIt is reported that police are trying their best to capture the murder.\n\n## the Olympics & the Olympic games\n\nThe Olympices is hold every four years. == The Olympic games are hold every four year.\n\n## 集体名词做主语，表整体用单数，表成员用复数\n\n> family,class,group,team,army,public,crew,population\n\n<!-- markdownlint-disable MD033 -->\n\n1. The innovation experiment（革新实验）class consists of 24 students and enjoy chinese.\n2. Population in China is 1.4 billion <u>or so</u>(about) 20% (Population) have no access to clean water.\n\n## 单复同形，sheep,deer,means,Chinese 等谓语动词依据情况而定\n\nMany deer live on the African grassland.\n\n## 地点状语位于句首\n\n1. Among the crow stand his parents.\n2. On the wall hangs an alarm clock.\n\n## \"of\": of 表所属时，中心词在 of 之前，谓语动词由中心词决定，特例除外\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/subject-verb/  \n\n"
  },
  {
    "path": "posts/subl_imgpaste2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 插件地址 github.com/robinchenyu/imagepaste \"><meta name=keywords content='Markdown,Sublime'><meta itemprop=name content=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><meta itemprop=description content=\"插件地址 github.com/robinchenyu/imagepaste\"><meta itemprop=datePublished content=\"2021-10-05T21:54:06+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"244\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Markdown,Sublime\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/subl_imgpaste2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><meta property=\"og:description\" content=\"插件地址 github.com/robinchenyu/imagepaste\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2021-10-05T21:54:06+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Markdown\"><meta property=\"article:tag\" content=\"Sublime\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><meta name=twitter:description content=\"插件地址 github.com/robinchenyu/imagepaste\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/subl_imgpaste2/ title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hugo-cardlink/ title=\"Hugo 添加知乎卡片式链接 Shortcodes\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit/ title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/subl_imgpaste2/index.md title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/subl_imgpaste2\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Markdown, Sublime\",\"wordcount\":244,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/subl_imgpaste2\\/\",\"datePublished\":\"2021-10-05T21:54:06+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/subl_imgpaste2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2021-10-05 21:54:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-10-05>2021-10-05</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"244 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#功能>功能</a></li><li><a href=#食用说明>食用说明</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><a href=https://github.com/robinchenyu/imagepaste title=插件地址 target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>插件地址</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/robinchenyu/imagepaste</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><h2 class=heading-element id=功能><span>1 功能</span>\n<a href=#%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>支持 Windows/Linux 系统下，实现对剪切板图像的处理调用 (Ctrl+Shift+V)<br>默认使用 JPG 的方式保存，可以显著减小图片的存储体积。</p><ul><li>对剪切板图像保存到本地并在 Markdown 文本中插入链接地址</li><li>对剪切板中的图像地址，直接插入到 Markdown 文本中</li></ul><h2 class=heading-element id=食用说明><span>2 食用说明</span>\n<a href=#%e9%a3%9f%e7%94%a8%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>首先下载 zip 到本地，放到 sublime 安装目录的 <code>xxx\\sublime\\Data\\Packages</code> 中，注意不是 <code>xxx\\sublime\\Packages</code> 下哦。</p></li><li><p>记得要把 subl_imgpaste2-master 的 <code>-master</code> 删除掉。接着重新打开 sublime, 选择 <code>Preferences->Package Settings->ImaPaste2->settings-Default</code> 输入如下内容：</p><json-viewer value='\"{\\n  \\\"caption\\\": \\\"ImagePaste: Paste Image From Clipboard\\\",\\n  \\\"command\\\": \\\"image_paste\\\",\\n  \\\"image_dir_name\\\": \\\"images/\\\" # 图片保存目录\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer></li><li><p>然后就可以愉快的使用截图，然后在 sublime 里使用 <code>ctrl+shift+v</code> 粘贴 Markdown 格式的图片。默认会自动根据 md 文件名在同级目录下新建文件夹，图片就默认保存在那。如图：<br><figure><a class=lightgallery target=_blank href=/images/remote/imagepaste_18348428738505422890.gif title=使用演示 data-thumbnail=/images/remote/imagepaste_18348428738505422890.gif data-sub-html=\"<h2>演示</h2><p>使用演示</p>\"><img loading=lazy src=/images/remote/imagepaste_18348428738505422890.gif alt=演示 height=572 width=952></a><figcaption class=image-caption>使用演示</figcaption></figure></p></li></ol><blockquote><p>VScode 也有更好用的插件：Past Image</p></blockquote><json-viewer value='\"\\\"pasteImage.defaultName\\\": \\\"YY_X\\\",\\n\\\"pasteImage.path\\\": \\\"${currentFileDir}/images/\\\"\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/subl_imgpaste2/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/subl_imgpaste2.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/subl_imgpaste2.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Sublime+%E5%89%AA%E8%B4%B4%E6%9D%BF%E5%9B%BE%E7%89%87%E7%B2%98%E8%B4%B4%E6%8F%92%E4%BB%B6+%E2%80%94%E2%80%94+Markdown+%E5%BF%85%E5%A4%87&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cSublime+%E5%89%AA%E8%B4%B4%E6%9D%BF%E5%9B%BE%E7%89%87%E7%B2%98%E8%B4%B4%E6%8F%92%E4%BB%B6+%E2%80%94%E2%80%94+Markdown+%E5%BF%85%E5%A4%87%7c%0A%7cURL%7chttps://lruihao.cn/posts/subl_imgpaste2/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/subl_imgpaste2.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/subl_imgpaste2/ data-title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\" data-hashtags=Markdown,Sublime><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/subl_imgpaste2/ data-hashtag=Markdown><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/subl_imgpaste2/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/subl_imgpaste2/ data-title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/subl_imgpaste2/ data-title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/markdown/ class=post-tag title=\"标签 - Markdown\">Markdown</a><a href=/tags/sublime/ class=post-tag title=\"标签 - Sublime\">Sublime</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hugo-cardlink/ class=post-nav-item rel=prev title=\"Hugo 添加知乎卡片式链接 Shortcodes\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hugo 添加知乎卡片式链接 Shortcodes</a><a href=/projects/hugo-fixit/fixit/ class=post-nav-item rel=next title=hugo-fixit/FixIt>hugo-fixit/FixIt<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#功能>功能</a></li><li><a href=#食用说明>食用说明</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0c0b8df0ebba1c9ee318abc52a8229ef.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0c0b8df0ebba1c9ee318abc52a8229ef.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/subl_imgpaste2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/subl_imgpaste2/index.md",
    "content": "# Sublime 剪贴板图片粘贴插件 —— Markdown 必备\n\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"https://github.com/robinchenyu/imagepaste\" content=\"插件地址\" title=\"插件地址\" card=true >}}\n\n<!--more-->\n\n## 功能\n\n支持 Windows/Linux 系统下，实现对剪切板图像的处理调用 (Ctrl+Shift+V)  \n默认使用 JPG 的方式保存，可以显著减小图片的存储体积。\n\n- 对剪切板图像保存到本地并在 Markdown 文本中插入链接地址\n- 对剪切板中的图像地址，直接插入到 Markdown 文本中\n\n## 食用说明\n\n1. 首先下载 zip 到本地，放到 sublime 安装目录的 `xxx\\sublime\\Data\\Packages` 中，注意不是 `xxx\\sublime\\Packages` 下哦。\n2. 记得要把 subl_imgpaste2-master 的 `-master` 删除掉。接着重新打开 sublime, 选择 `Preferences->Package Settings->ImaPaste2->settings-Default` 输入如下内容：\n\n   ```json\n   {\n     \"caption\": \"ImagePaste: Paste Image From Clipboard\",\n     \"command\": \"image_paste\",\n     \"image_dir_name\": \"images/\" # 图片保存目录\n   }\n   ```\n\n3. 然后就可以愉快的使用截图，然后在 sublime 里使用 `ctrl+shift+v` 粘贴 Markdown 格式的图片。默认会自动根据 md 文件名在同级目录下新建文件夹，图片就默认保存在那。如图：  \n   ![演示](https://github.com/robinchenyu/imagepaste/raw/master/gif/imagepaste.gif '使用演示')\n\n> VScode 也有更好用的插件：Past Image\n\n```json\n\"pasteImage.defaultName\": \"YY_X\",\n\"pasteImage.path\": \"${currentFileDir}/images/\"\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/subl_imgpaste2/  \n\n"
  },
  {
    "path": "posts/sublime-text3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Sublime Text3 快捷键大全 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Sublime Text3 快捷键一览表\n\"><meta name=keywords content='Sublime,他山之石'><meta itemprop=name content=\"Sublime Text3 快捷键大全\"><meta itemprop=description content=\"Sublime Text3 快捷键一览表\"><meta itemprop=datePublished content=\"2019-08-15T20:59:10+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1334\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Sublime,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/sublime-text3/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Sublime Text3 快捷键大全\"><meta property=\"og:description\" content=\"Sublime Text3 快捷键一览表\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-08-15T20:59:10+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"Sublime\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Sublime Text3 快捷键大全\"><meta name=twitter:description content=\"Sublime Text3 快捷键一览表\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/sublime-text3/ title=\"Sublime Text3 快捷键大全 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/netbeans/ title=\"NetBeans IDE 开发设置\"><link rel=next type=text/html href=https://lruihao.cn/posts/async-defer/ title=\"script 的三种加载方式 (async, defer)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/sublime-text3/index.md title=\"Sublime Text3 快捷键大全 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Sublime Text3 快捷键大全\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/sublime-text3\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Sublime, 他山之石\",\"wordcount\":1334,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/sublime-text3\\/\",\"datePublished\":\"2019-08-15T20:59:10+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/sublime-text3/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sublime Text3 快捷键大全</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://www.cnblogs.com/rudong/p/7889114.html title=\"转载 -> https://www.cnblogs.com/rudong/p/7889114.html\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>Sublime Text3 快捷键大全</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-08-15 20:59:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-08-15>2019-08-15</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1334 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Sublime Text3 快捷键大全\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#tab-转-space>tab 转 space</a></li><li><a href=#选择类>选择类</a></li><li><a href=#编辑类>编辑类</a></li><li><a href=#搜索类>搜索类</a></li><li><a href=#显示类>显示类</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Sublime Text3 快捷键一览表</p><h2 class=heading-element id=tab-转-space><span>1 tab 转 space</span>\n<a href=#tab-%e8%bd%ac-space class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开 Settings, 加入几行配置</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>{\n</span></span><span class=line><span class=cl>  &#34;color_scheme&#34;: &#34;Packages/Color Scheme - Default/Monokai.sublime-color-scheme&#34;,\n</span></span><span class=line><span class=cl>  &#34;font_size&#34;: 14,\n</span></span><span class=line><span class=cl>  &#34;ignored_packages&#34;:\n</span></span><span class=line><span class=cl>  [\n</span></span><span class=line><span class=cl>    &#34;Vintage&#34;\n</span></span><span class=line><span class=cl>  ],\n</span></span><span class=line><span class=cl>  &#34;theme&#34;: &#34;Adaptive.sublime-theme&#34;,\n</span></span><span class=line><span class=cl><span class=gi>+  &#34;expand_tabs_on_save&#34;: true,\n</span></span></span><span class=line><span class=cl><span class=gi>+  &#34;tab_size&#34;: 2,\n</span></span></span><span class=line><span class=cl><span class=gi>+  &#34;translate_tabs_to_spaces&#34;: true\n</span></span></span><span class=line><span class=cl>}\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=选择类><span>2 选择类</span>\n<a href=#%e9%80%89%e6%8b%a9%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Ctrl+D 选中光标所占的文本，继续操作则会选中下一个相同的文本。</li><li>Alt+F3 选中文本按下快捷键，即可一次性选择全部的相同文本进行同时编辑。举个栗子：快速选中并更改所有相同的变量名、函数名等。</li><li>Ctrl+L 选中整行，继续操作则继续选择下一行，效果和 Shift+↓ 效果一样。</li><li>Ctrl+Shift+L 先选中多行，再按下快捷键，会在每行行尾插入光标，即可同时编辑这些行。</li><li>Ctrl+Shift+M 选择括号内的内容（继续选择父括号）。举个栗子：快速选中删除函数中的代码，重写函数体代码或重写括号内里的内容。</li><li>Ctrl+M 光标移动至括号内结束或开始的位置。</li><li>Ctrl+Enter 在下一行插入新行。举个栗子：即使光标不在行尾，也能快速向下插入一行。</li><li>Ctrl+Shift+Enter 在上一行插入新行。举个栗子：即使光标不在行首，也能快速向上插入一行。</li><li>Ctrl+Shift+[ 选中代码，按下快捷键，折叠代码。</li><li>Ctrl+Shift+] 选中代码，按下快捷键，展开代码。</li><li>Ctrl+K+0 展开所有折叠代码。</li><li>Ctrl+← 向左单位性地移动光标，快速移动光标。</li><li>Ctrl+→ 向右单位性地移动光标，快速移动光标。</li><li>shift+↑ 向上选中多行。</li><li>shift+↓ 向下选中多行。</li><li>Shift+← 向左选中文本。</li><li>Shift+→ 向右选中文本。</li><li>Ctrl+Shift+← 向左单位性地选中文本。</li><li>Ctrl+Shift+→ 向右单位性地选中文本。</li><li>Ctrl+Shift+↑ 将光标所在行和上一行代码互换（将光标所在行插入到上一行之前）。</li><li>Ctrl+Shift+↓ 将光标所在行和下一行代码互换（将光标所在行插入到下一行之后）。</li><li>Ctrl+Alt+↑ 向上添加多行光标，可同时编辑多行。</li><li>Ctrl+Alt+↓ 向下添加多行光标，可同时编辑多行。</li></ul><h2 class=heading-element id=编辑类><span>3 编辑类</span>\n<a href=#%e7%bc%96%e8%be%91%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Ctrl+J 合并选中的多行代码为一行。举个栗子：将多行格式的 CSS 属性合并为一行。</li><li>Ctrl+Shift+D 复制光标所在整行，插入到下一行。</li><li>Tab 向右缩进。</li><li>Shift+Tab 向左缩进。</li><li>Ctrl+K+K 从光标处开始删除代码至行尾。</li><li>Ctrl+Shift+K 删除整行。</li><li>Ctrl+/ 注释单行。</li><li>Ctrl+Shift+/ 注释多行。</li><li>Ctrl+K+U 转换大写。</li><li>Ctrl+K+L 转换小写。</li><li>Ctrl+Z 撤销。</li><li>Ctrl+Y 恢复撤销。</li><li>Ctrl+U 软撤销，感觉和 Gtrl+Z 一样。</li><li>Ctrl+F2 设置书签</li><li>Ctrl+T 左右字母互换。</li><li>F6 单词检测拼写</li></ul><h2 class=heading-element id=搜索类><span>4 搜索类</span>\n<a href=#%e6%90%9c%e7%b4%a2%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Ctrl+F 打开底部搜索框，查找关键字。</li><li>Ctrl+shift+F 在文件夹内查找，与普通编辑器不同的地方是 sublime 允许添加多个文件夹进行查找，略高端，未研究。</li><li>Ctrl+P 打开搜索框。举个栗子：1、输入当前项目中的文件名，快速搜索文件，2、输入@和关键字，查找文件中函数名，3、输入：和数字，跳转到文件中该行代码，4、输入#和关键字，查找变量名。</li><li>Ctrl+G 打开搜索框，自动带：，输入数字跳转到该行代码。举个栗子：在页面代码比较长的文件中快速定位。</li><li>Ctrl+R 打开搜索框，自动带@，输入关键字，查找文件中的函数名。举个栗子：在函数较多的页面快速查找某个函数。</li><li>Ctrl+：打开搜索框，自动带#，输入关键字，查找文件中的变量名、属性名等。</li><li>Ctrl+Shift+P 打开命令框。场景栗子：打开命名框，输入关键字，调用 sublime text 或插件的功能，例如使用 package 安装插件。</li><li>Esc 退出光标多行选择，退出搜索框，命令框等。</li></ul><h2 class=heading-element id=显示类><span>5 显示类</span>\n<a href=#%e6%98%be%e7%a4%ba%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Ctrl+Tab 按文件浏览过的顺序，切换当前窗口的标签页。</li><li>Ctrl+PageDown 向左切换当前窗口的标签页。</li><li>Ctrl+PageUp 向右切换当前窗口的标签页。</li><li>Alt+Shift+1 窗口分屏，恢复默认 1 屏（非小键盘的数字）</li><li>Alt+Shift+2 左右分屏 -2 列</li><li>Alt+Shift+3 左右分屏 -3 列</li><li>Alt+Shift+4 左右分屏 -4 列</li><li>Alt+Shift+5 等分 4 屏</li><li>Alt+Shift+8 垂直分屏 -2 屏</li><li>Alt+Shift+9 垂直分屏 -3 屏</li><li>Ctrl+K+B 开启/关闭侧边栏。</li><li>F11 全屏模式</li><li>Shift+F11 免打扰模式</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/sublime-text3/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/sublime-text3.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/sublime-text3.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Sublime+Text3+%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%A4%A7%E5%85%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cSublime+Text3+%E5%BF%AB%E6%8D%B7%E9%94%AE%E5%A4%A7%E5%85%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/sublime-text3/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/sublime-text3.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/sublime-text3/ data-title=\"Sublime Text3 快捷键大全\" data-hashtags=Sublime,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/sublime-text3/ data-hashtag=Sublime><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/sublime-text3/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/sublime-text3/ data-title=\"Sublime Text3 快捷键大全\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/sublime-text3/ data-title=\"Sublime Text3 快捷键大全\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/sublime/ class=post-tag title=\"标签 - Sublime\">Sublime</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/netbeans/ class=post-nav-item rel=prev title=\"NetBeans IDE 开发设置\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>NetBeans IDE 开发设置</a><a href=/posts/async-defer/ class=post-nav-item rel=next title=\"Script 的三种加载方式 (Async, Defer)\">Script 的三种加载方式 (Async, Defer)<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#tab-转-space>tab 转 space</a></li><li><a href=#选择类>选择类</a></li><li><a href=#编辑类>编辑类</a></li><li><a href=#搜索类>搜索类</a></li><li><a href=#显示类>显示类</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/13577df3a49a47c9d2b5d13beb4325e1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/13577df3a49a47c9d2b5d13beb4325e1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/sublime-text3/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/sublime-text3/index.md",
    "content": "# Sublime Text3 快捷键大全\n\n\nSublime Text3 快捷键一览表\n\n<!--more-->\n\n## tab 转 space\n\n打开 Settings, 加入几行配置\n\n```diff Preferences.sublime-setting--User\n{\n  \"color_scheme\": \"Packages/Color Scheme - Default/Monokai.sublime-color-scheme\",\n  \"font_size\": 14,\n  \"ignored_packages\":\n  [\n    \"Vintage\"\n  ],\n  \"theme\": \"Adaptive.sublime-theme\",\n+  \"expand_tabs_on_save\": true,\n+  \"tab_size\": 2,\n+  \"translate_tabs_to_spaces\": true\n}\n\n```\n\n## 选择类\n\n- Ctrl+D 选中光标所占的文本，继续操作则会选中下一个相同的文本。\n- Alt+F3 选中文本按下快捷键，即可一次性选择全部的相同文本进行同时编辑。举个栗子：快速选中并更改所有相同的变量名、函数名等。\n- Ctrl+L 选中整行，继续操作则继续选择下一行，效果和 Shift+↓ 效果一样。\n- Ctrl+Shift+L 先选中多行，再按下快捷键，会在每行行尾插入光标，即可同时编辑这些行。\n- Ctrl+Shift+M 选择括号内的内容（继续选择父括号）。举个栗子：快速选中删除函数中的代码，重写函数体代码或重写括号内里的内容。\n- Ctrl+M 光标移动至括号内结束或开始的位置。\n- Ctrl+Enter 在下一行插入新行。举个栗子：即使光标不在行尾，也能快速向下插入一行。\n- Ctrl+Shift+Enter 在上一行插入新行。举个栗子：即使光标不在行首，也能快速向上插入一行。\n- Ctrl+Shift+[ 选中代码，按下快捷键，折叠代码。\n- Ctrl+Shift+] 选中代码，按下快捷键，展开代码。\n- Ctrl+K+0 展开所有折叠代码。\n- Ctrl+← 向左单位性地移动光标，快速移动光标。\n- Ctrl+→ 向右单位性地移动光标，快速移动光标。\n- shift+↑ 向上选中多行。\n- shift+↓ 向下选中多行。\n- Shift+← 向左选中文本。\n- Shift+→ 向右选中文本。\n- Ctrl+Shift+← 向左单位性地选中文本。\n- Ctrl+Shift+→ 向右单位性地选中文本。\n- Ctrl+Shift+↑ 将光标所在行和上一行代码互换（将光标所在行插入到上一行之前）。\n- Ctrl+Shift+↓ 将光标所在行和下一行代码互换（将光标所在行插入到下一行之后）。\n- Ctrl+Alt+↑ 向上添加多行光标，可同时编辑多行。\n- Ctrl+Alt+↓ 向下添加多行光标，可同时编辑多行。\n\n## 编辑类\n\n- Ctrl+J 合并选中的多行代码为一行。举个栗子：将多行格式的 CSS 属性合并为一行。\n- Ctrl+Shift+D 复制光标所在整行，插入到下一行。\n- Tab 向右缩进。\n- Shift+Tab 向左缩进。\n- Ctrl+K+K 从光标处开始删除代码至行尾。\n- Ctrl+Shift+K 删除整行。\n- Ctrl+/ 注释单行。\n- Ctrl+Shift+/ 注释多行。\n- Ctrl+K+U 转换大写。\n- Ctrl+K+L 转换小写。\n- Ctrl+Z 撤销。\n- Ctrl+Y 恢复撤销。\n- Ctrl+U 软撤销，感觉和 Gtrl+Z 一样。\n- Ctrl+F2 设置书签\n- Ctrl+T 左右字母互换。\n- F6 单词检测拼写\n\n## 搜索类\n\n- Ctrl+F 打开底部搜索框，查找关键字。\n- Ctrl+shift+F 在文件夹内查找，与普通编辑器不同的地方是 sublime 允许添加多个文件夹进行查找，略高端，未研究。\n- Ctrl+P 打开搜索框。举个栗子：1、输入当前项目中的文件名，快速搜索文件，2、输入@和关键字，查找文件中函数名，3、输入：和数字，跳转到文件中该行代码，4、输入#和关键字，查找变量名。\n- Ctrl+G 打开搜索框，自动带：，输入数字跳转到该行代码。举个栗子：在页面代码比较长的文件中快速定位。\n- Ctrl+R 打开搜索框，自动带@，输入关键字，查找文件中的函数名。举个栗子：在函数较多的页面快速查找某个函数。\n- Ctrl+：打开搜索框，自动带#，输入关键字，查找文件中的变量名、属性名等。\n- Ctrl+Shift+P 打开命令框。场景栗子：打开命名框，输入关键字，调用 sublime text 或插件的功能，例如使用 package 安装插件。\n- Esc 退出光标多行选择，退出搜索框，命令框等。\n\n## 显示类\n\n- Ctrl+Tab 按文件浏览过的顺序，切换当前窗口的标签页。\n- Ctrl+PageDown 向左切换当前窗口的标签页。\n- Ctrl+PageUp 向右切换当前窗口的标签页。\n- Alt+Shift+1 窗口分屏，恢复默认 1 屏（非小键盘的数字）\n- Alt+Shift+2 左右分屏 -2 列\n- Alt+Shift+3 左右分屏 -3 列\n- Alt+Shift+4 左右分屏 -4 列\n- Alt+Shift+5 等分 4 屏\n- Alt+Shift+8 垂直分屏 -2 屏\n- Alt+Shift+9 垂直分屏 -3 屏\n- Ctrl+K+B 开启/关闭侧边栏。\n- F11 全屏模式\n- Shift+F11 免打扰模式\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/sublime-text3/  \n> 转载 URL: https://www.cnblogs.com/rudong/p/7889114.html\n"
  },
  {
    "path": "posts/substatus/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Java 父类子类的对象初始化过程 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\n\"><meta name=keywords content='Java'><meta itemprop=name content=\"Java 父类子类的对象初始化过程\"><meta itemprop=description content=\"摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\"><meta itemprop=datePublished content=\"2019-03-21T13:36:25+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"360\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"java\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/substatus/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Java 父类子类的对象初始化过程\"><meta property=\"og:description\" content=\"摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-21T13:36:25+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"java\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Java 父类子类的对象初始化过程\"><meta name=twitter:description content=\"摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/substatus/ title=\"Java 父类子类的对象初始化过程 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/windefault/ title=\"ubuntu + windows 双系统默认启动项设置\"><link rel=next type=text/html href=https://lruihao.cn/posts/hexo-theme-next/ title=\"hexo-theme-next @modified LRH\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/substatus/index.md title=\"Java 父类子类的对象初始化过程 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Java 父类子类的对象初始化过程\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/substatus\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Java\",\"wordcount\":360,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/substatus\\/\",\"datePublished\":\"2019-03-21T13:36:25+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/substatus/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java 父类子类的对象初始化过程</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Java 父类子类的对象初始化过程</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/java/ class=post-category title=\"分类 - Java\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Java</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-21 13:36:25\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-21>2019-03-21</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"360 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Java 父类子类的对象初始化过程\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#基本初始化过程>基本初始化过程</a></li><li><a href=#子类的初始化过程>子类的初始化过程</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。</p></blockquote><h2 class=heading-element id=基本初始化过程><span>1 基本初始化过程</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于一个简单类的初始化过程是：<br><code>static 修饰的模块（static 变量和 static 块） => 按照代码顺序依次执行。</code><br>↓<br><code>实例变量 及非 static 模块 => 按照代码顺序依次执行。</code><br>↓<br><code>构造函数 => 执行对应的构造函数。</code></p><h2 class=heading-element id=子类的初始化过程><span>2 子类的初始化过程</span>\n<a href=#%e5%ad%90%e7%b1%bb%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>父类 static 修饰的模块</code><br>↓<br><code>子类 static 修饰模块</code><br>↓<br><code>父类实例变量和非 static 块</code><br>↓<br><code>父类对应构造函数。当子类对应构造函数中没有显示调用时调用的是父类默认的构造函数。</code><br>↓<br><code>子类实例变量和非 static 块</code><br>↓<br><code>子类构造函数</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=kn>package</span><span class=w> </span><span class=nn>code0507</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>public</span><span class=w> </span><span class=kd>class</span> <span class=nc>Demo</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kd>static</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>main</span><span class=p>(</span><span class=n>String</span><span class=o>[]</span><span class=w> </span><span class=n>args</span><span class=p>)</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>Sub</span><span class=w> </span><span class=n>sub</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=k>new</span><span class=w> </span><span class=n>Sub</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>sub</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Super</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>6</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Super</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>test</span><span class=p>();</span><span class=w>  </span><span class=c1>//被子类同名函数覆盖，优先访问子类 test</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>b</span><span class=o>=</span><span class=n>9</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>test</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>a</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=kd>class</span> <span class=nc>Sub</span><span class=w> </span><span class=kd>extends</span><span class=w> </span><span class=n>Super</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kt>int</span><span class=w> </span><span class=n>a</span><span class=w> </span><span class=o>=</span><span class=w> </span><span class=n>8</span><span class=p>;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=nf>Sub</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>test</span><span class=p>();</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=kd>public</span><span class=w> </span><span class=kt>void</span><span class=w> </span><span class=nf>test</span><span class=p>()</span><span class=w> </span><span class=p>{</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>System</span><span class=p>.</span><span class=na>out</span><span class=p>.</span><span class=na>println</span><span class=p>(</span><span class=n>a</span><span class=p>);</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=p>}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>运行结果</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>0\n</span></span><span class=line><span class=cl>8</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/substatus/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/substatus.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_java/substatus.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Java+%E7%88%B6%E7%B1%BB%E5%AD%90%E7%B1%BB%E7%9A%84%E5%AF%B9%E8%B1%A1%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cJava+%E7%88%B6%E7%B1%BB%E5%AD%90%E7%B1%BB%E7%9A%84%E5%AF%B9%E8%B1%A1%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/substatus/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_java/substatus.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/substatus/ data-title=\"Java 父类子类的对象初始化过程\" data-hashtags=Java><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/substatus/ data-hashtag=Java><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/substatus/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/substatus/ data-title=\"Java 父类子类的对象初始化过程\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/substatus/ data-title=\"Java 父类子类的对象初始化过程\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/windefault/ class=post-nav-item rel=prev title=\"Ubuntu + Windows 双系统默认启动项设置\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Ubuntu + Windows 双系统默认启动项设置</a><a href=/posts/hexo-theme-next/ class=post-nav-item rel=next title=\"Hexo-Theme-Next @Modified LRH\">Hexo-Theme-Next @Modified LRH<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#基本初始化过程>基本初始化过程</a></li><li><a href=#子类的初始化过程>子类的初始化过程</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3bb5f4f8924127e723fa7746bf60bb4a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3bb5f4f8924127e723fa7746bf60bb4a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/substatus/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/substatus/index.md",
    "content": "# Java 父类子类的对象初始化过程\n\n\n> 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\n\n<!--more-->\n\n## 基本初始化过程\n\n对于一个简单类的初始化过程是：  \n`static 修饰的模块（static 变量和 static 块） => 按照代码顺序依次执行。`  \n↓  \n`实例变量  及非 static 模块 => 按照代码顺序依次执行。`  \n↓  \n`构造函数 => 执行对应的构造函数。`\n\n## 子类的初始化过程\n\n`父类 static 修饰的模块`  \n↓  \n`子类 static 修饰模块`  \n↓  \n`父类实例变量和非 static 块`  \n↓  \n`父类对应构造函数。当子类对应构造函数中没有显示调用时调用的是父类默认的构造函数。`  \n↓  \n`子类实例变量和非 static 块`  \n↓  \n`子类构造函数`\n\n```java Debug demo\npackage code0507;\n\npublic class Demo {\n  public static void main(String[] args) {\n\n    Sub sub = new Sub();\n    System.out.println(sub);\n\n  }\n}\n\nclass Super {\n  int a = 6;\n\n  public Super() {\n    test();  //被子类同名函数覆盖，优先访问子类 test\n  }\n  int b=9;\n\n  public void test() {\n    System.out.println(a);\n  }\n}\n\nclass Sub extends Super {\n  int a = 8;\n\n  public Sub() {\n    test();\n  }\n\n  public void test() {\n    System.out.println(a);\n  }\n}\n\n```\n\n运行结果\n\n```plain\n0\n8\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/substatus/  \n\n"
  },
  {
    "path": "posts/svg-dark-light/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>怎么生成暗黑模式和明亮模式的 SVG 图片？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\n\"><meta name=keywords content='CSS,SVG,hugo'><meta itemprop=name content=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><meta itemprop=description content=\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\"><meta itemprop=datePublished content=\"2024-06-06T22:13:26+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=wordCount content=\"1123\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CSS,SVG,Hugo\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/svg-dark-light/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><meta property=\"og:description\" content=\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2024-06-06T22:13:26+08:00\"><meta property=\"article:modified_time\" content=\"2024-10-06T10:24:30+08:00\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"SVG\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><meta name=twitter:description content=\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/svg-dark-light/ title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/404d6a2/ title=坐高铁去柳州吃螺狮粉><link rel=next type=text/html href=https://lruihao.cn/posts/design-principles/ title=架构之基：从根儿上了解设计原则><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/svg-dark-light/index.md title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/svg-dark-light\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CSS, SVG, hugo\",\"wordcount\":1123,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/svg-dark-light\\/\",\"datePublished\":\"2024-06-06T22:13:26+08:00\",\"dateModified\":\"2024-10-06T10:24:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/svg-dark-light/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>怎么生成暗黑模式和明亮模式的 SVG 图片？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>怎么生成暗黑模式和明亮模式的 SVG 图片？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/css/ class=post-category title=\"分类 - CSS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> CSS</a></span></div><div class=post-meta-line><span title=\"发布于 2024-06-06 22:13:26\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-06-06>2024-06-06</time></span>&nbsp;<span title=\"更新于 2024-10-06 10:24:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-10-06>2024-10-06</time></span>&nbsp;<span title=\"1123 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#方案一通过模板生成两张图片>方案一：通过模板生成两张图片</a></li><li><a href=#方案二通过-css-实现响应式>方案二：通过 CSS 实现响应式</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-10-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。</p><h2 class=heading-element id=方案一通过模板生成两张图片><span>1 方案一：通过模板生成两张图片</span>\n<a href=#%e6%96%b9%e6%a1%88%e4%b8%80%e9%80%9a%e8%bf%87%e6%a8%a1%e6%9d%bf%e7%94%9f%e6%88%90%e4%b8%a4%e5%bc%a0%e5%9b%be%e7%89%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>这是最容易想到的，也是我最初的想法，通过两张图片来实现暗黑模式和明亮模式的切换。</p><p>假设我们已经有了两张图片，<code>drop.min.svg</code> 和 <code>drop-dark.min.svg</code>，那么我们可以通过 CSS 来实现切换：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nn>#header-desktop</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=nd>::after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/drop.min.svg)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=o>[</span><span class=nt>data-theme</span><span class=o>=</span><span class=s1>&#39;dark&#39;</span><span class=o>]</span> <span class=k>&amp;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/drop-dark.min.svg)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>再创建一个模板文件 <code>drop.template.svg</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-go-html-template\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-go-html-template data-lang=go-html-template><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>$color</span><span class=w> </span><span class=o>:=</span><span class=w> </span><span class=nx>cond</span><span class=w> </span><span class=na>.isDark</span><span class=w> </span><span class=s>&#34;#252627&#34;</span><span class=w> </span><span class=s>&#34;#e6e5f8&#34;</span><span class=w> </span><span class=cp>-}}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>svg</span> <span class=na>viewBox</span><span class=o>=</span><span class=s>&#34;0 0 778.95 302.64&#34;</span> <span class=na>xmlns</span><span class=o>=</span><span class=s>&#34;http://www.w3.org/2000/svg&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>path</span>\n</span></span><span class=line><span class=cl>    <span class=na>d</span><span class=o>=</span><span class=s>&#34;m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>transform</span><span class=o>=</span><span class=s>&#34;translate(-27.76 -14.56)&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>svg</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>然后，我们可以通过 Hugo 的模板引擎来生成两张图片：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-go-html-template\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-go-html-template data-lang=go-html-template><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>$template</span><span class=w> </span><span class=o>:=</span><span class=w> </span><span class=nx>resources</span><span class=na>.Get</span><span class=w> </span><span class=s>&#34;images/drop.template.svg&#34;</span><span class=w> </span><span class=cp>-}}</span>\n</span></span><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>$resource</span><span class=w> </span><span class=o>:=</span><span class=w> </span><span class=o>(</span><span class=nx>$template</span><span class=w> </span><span class=o>|</span><span class=w> </span><span class=nx>resources</span><span class=na>.ExecuteAsTemplate</span><span class=w> </span><span class=s>&#34;images/drop.svg&#34;</span><span class=w> </span><span class=o>(</span><span class=nx>dict</span><span class=w> </span><span class=s>&#34;isDark&#34;</span><span class=w> </span><span class=k>false</span><span class=o>)</span><span class=w> </span><span class=o>|</span><span class=w> </span><span class=nx>minify</span><span class=o>)</span><span class=na>.RelPermalink</span><span class=w> </span><span class=cp>-}}</span>\n</span></span><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>$resourceDark</span><span class=w> </span><span class=o>:=</span><span class=w> </span><span class=o>(</span><span class=nx>$template</span><span class=w> </span><span class=o>|</span><span class=w> </span><span class=nx>resources</span><span class=na>.ExecuteAsTemplate</span><span class=w> </span><span class=s>&#34;images/drop-dark.svg&#34;</span><span class=w> </span><span class=o>(</span><span class=nx>dict</span><span class=w> </span><span class=s>&#34;isDark&#34;</span><span class=w> </span><span class=k>true</span><span class=o>)</span><span class=w> </span><span class=o>|</span><span class=w> </span><span class=nx>minify</span><span class=o>)</span><span class=na>.RelPermalink</span><span class=w> </span><span class=cp>-}}</span></span></span></code></pre></td></tr></table></div></div></div><p>这样，我们就得到了暗黑模式和明亮模式的两张图片，正如现在博客所看到的一样。</p><h2 class=heading-element id=方案二通过-css-实现响应式><span>2 方案二：通过 CSS 实现响应式</span>\n<a href=#%e6%96%b9%e6%a1%88%e4%ba%8c%e9%80%9a%e8%bf%87-css-%e5%ae%9e%e7%8e%b0%e5%93%8d%e5%ba%94%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>然后，我在想这两张图除了背景色，其他都一毛一样，能不能通过 CSS 来实现呢？</p><p>一番尝试过后，答案是肯定的。</p><p>假设我们只有一张图片，<code>drop.responsive.svg</code>，还是通过 CSS 来实现切换：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-scss\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-scss data-lang=scss><span class=line><span class=cl><span class=nn>#header-desktop</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>&amp;</span><span class=nd>::after</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/drop.responsive.svg)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=o>[</span><span class=nt>data-theme</span><span class=o>=</span><span class=s1>&#39;dark&#39;</span><span class=o>]</span> <span class=k>&amp;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=na>background-image</span><span class=o>:</span> <span class=sx>url(/images/drop.responsive.svg#drop-dark-only)</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>再创建一个 SVG 文件 <code>drop.responsive.svg</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-svg\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-svg data-lang=svg><span class=line><span class=cl><span class=nt>&lt;svg</span> <span class=na>id=</span><span class=s>&#34;drop-dark-only&#34;</span> <span class=na>viewBox=</span><span class=s>&#34;0 0 778.95 302.64&#34;</span> <span class=na>xmlns=</span><span class=s>&#34;http://www.w3.org/2000/svg&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>&lt;style&gt;</span>\n</span></span><span class=line><span class=cl>    #header-drop {\n</span></span><span class=line><span class=cl>      fill: #e6e5f8;\n</span></span><span class=line><span class=cl>    }\n</span></span><span class=line><span class=cl>    #drop-dark-only:target #header-drop {\n</span></span><span class=line><span class=cl>      fill: #252627;\n</span></span><span class=line><span class=cl>    }\n</span></span><span class=line><span class=cl>  <span class=nt>&lt;/style&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>&lt;path</span>\n</span></span><span class=line><span class=cl>    <span class=na>id=</span><span class=s>&#34;header-drop&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>d=</span><span class=s>&#34;m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=na>transform=</span><span class=s>&#34;translate(-27.76 -14.56)&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=nt>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;/svg&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>注意，这个图片没有任何模板执行的内容，只是一个 SVG 图片，那我们就可以拿来直接使用了，例如：</p><div class=table-wrapper><table><thead><tr><th style=text-align:center>主题</th><th style=text-align:center>图片</th></tr></thead><tbody><tr><td style=text-align:center>明亮</td><td style=text-align:center><a href=/images/drop.responsive.svg>light image</a></td></tr><tr><td style=text-align:center>暗黑</td><td style=text-align:center><a href=/images/drop.responsive.svg#drop-dark-only>dark image</a></td></tr></tbody></table></div><p>但是！这个方案有一个缺点，在 Safari 浏览器下，切换时会出现卡顿，不够丝滑。</p><p>唉，真实遗憾，所以还是继续使用方案一了。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-10-06 10:24:30\">更新于 2024-10-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/7345a8380b739bad7cc4a227e4b1a4a3e703b49a rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 调整内容适配器，保持和内容适配器一致&#10&#10Commit: 7345a8380b739bad7cc4a227e4b1a4a3e703b49a [7345a83]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 10:24:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>7345a83</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/svg-dark-light/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/svg-dark-light.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_css/svg-dark-light.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%80%8E%E4%B9%88%E7%94%9F%E6%88%90%E6%9A%97%E9%BB%91%E6%A8%A1%E5%BC%8F%E5%92%8C%E6%98%8E%E4%BA%AE%E6%A8%A1%E5%BC%8F%E7%9A%84+SVG+%E5%9B%BE%E7%89%87%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%80%8E%E4%B9%88%E7%94%9F%E6%88%90%E6%9A%97%E9%BB%91%E6%A8%A1%E5%BC%8F%E5%92%8C%E6%98%8E%E4%BA%AE%E6%A8%A1%E5%BC%8F%E7%9A%84+SVG+%E5%9B%BE%E7%89%87%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/posts/svg-dark-light/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_css/svg-dark-light.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/svg-dark-light/ data-title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\" data-hashtags=CSS,SVG,hugo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/svg-dark-light/ data-hashtag=CSS><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/svg-dark-light/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/svg-dark-light/ data-title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/svg-dark-light/ data-title=\"怎么生成暗黑模式和明亮模式的 SVG 图片？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/svg/ class=post-tag title=\"标签 - SVG\">SVG</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/404d6a2/ class=post-nav-item rel=prev title=坐高铁去柳州吃螺狮粉><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>坐高铁去柳州吃螺狮粉</a><a href=/posts/design-principles/ class=post-nav-item rel=next title=架构之基：从根儿上了解设计原则>架构之基：从根儿上了解设计原则<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#方案一通过模板生成两张图片>方案一：通过模板生成两张图片</a></li><li><a href=#方案二通过-css-实现响应式>方案二：通过 CSS 实现响应式</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c5c1aace2f9807f5a8433beacefb89d5.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c5c1aace2f9807f5a8433beacefb89d5.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/svg-dark-light/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/svg-dark-light/index.md",
    "content": "# 怎么生成暗黑模式和明亮模式的 SVG 图片？\n\n\n在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\n\n<!--more-->\n\n## 方案一：通过模板生成两张图片\n\n这是最容易想到的，也是我最初的想法，通过两张图片来实现暗黑模式和明亮模式的切换。\n\n假设我们已经有了两张图片，`drop.min.svg` 和 `drop-dark.min.svg`，那么我们可以通过 CSS 来实现切换：\n\n```scss\n#header-desktop {\n  &::after {\n    background-image: url(/images/drop.min.svg);\n  }\n  [data-theme='dark'] & {\n    background-image: url(/images/drop-dark.min.svg);\n  }\n}\n```\n\n再创建一个模板文件 `drop.template.svg`：\n\n```go-html-template\n{{- $color := cond .isDark \"#252627\" \"#e6e5f8\" -}}\n<svg viewBox=\"0 0 778.95 302.64\" xmlns=\"http://www.w3.org/2000/svg\">\n  <path\n    d=\"m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z\"\n    transform=\"translate(-27.76 -14.56)\"\n  />\n</svg>\n```\n\n然后，我们可以通过 Hugo 的模板引擎来生成两张图片：\n\n```go-html-template\n{{- $template := resources.Get \"images/drop.template.svg\" -}}\n{{- $resource := ($template | resources.ExecuteAsTemplate \"images/drop.svg\" (dict \"isDark\" false) | minify).RelPermalink -}}\n{{- $resourceDark := ($template | resources.ExecuteAsTemplate \"images/drop-dark.svg\" (dict \"isDark\" true) | minify).RelPermalink -}}\n```\n\n这样，我们就得到了暗黑模式和明亮模式的两张图片，正如现在博客所看到的一样。\n\n## 方案二：通过 CSS 实现响应式\n\n然后，我在想这两张图除了背景色，其他都一毛一样，能不能通过 CSS 来实现呢？\n\n一番尝试过后，答案是肯定的。\n\n假设我们只有一张图片，`drop.responsive.svg`，还是通过 CSS 来实现切换：\n\n```scss\n#header-desktop {\n  &::after {\n    background-image: url(/images/drop.responsive.svg);\n  }\n  [data-theme='dark'] & {\n    background-image: url(/images/drop.responsive.svg#drop-dark-only);\n  }\n}\n```\n\n再创建一个 SVG 文件 `drop.responsive.svg`：\n\n```svg\n<svg id=\"drop-dark-only\" viewBox=\"0 0 778.95 302.64\" xmlns=\"http://www.w3.org/2000/svg\">\n  <style>\n    #header-drop {\n      fill: #e6e5f8;\n    }\n    #drop-dark-only:target #header-drop {\n      fill: #252627;\n    }\n  </style>\n  <path\n    id=\"header-drop\"\n    d=\"m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z\"\n    transform=\"translate(-27.76 -14.56)\"\n  />\n</svg>\n```\n\n注意，这个图片没有任何模板执行的内容，只是一个 SVG 图片，那我们就可以拿来直接使用了，例如：\n\n| 主题 | 图片                                                     |\n| :--: | :------------------------------------------------------: |\n| 明亮 | [light image](/images/drop.responsive.svg)               |\n| 暗黑 | [dark image](/images/drop.responsive.svg#drop-dark-only) |\n\n但是！这个方案有一个缺点，在 Safari 浏览器下，切换时会出现卡顿，不够丝滑。\n\n唉，真实遗憾，所以还是继续使用方案一了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/svg-dark-light/  \n\n"
  },
  {
    "path": "posts/taotao要吃鸡/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>TaoTao 要吃鸡 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\n链接：https://www.nowcoder.com/acm/contest/74/B\n来源：牛客网\n1 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\n\"><meta name=keywords content='背包问题,Nowcoder,C++'><meta itemprop=name content=\"TaoTao 要吃鸡\"><meta itemprop=description content=\"2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\n链接：https://www.nowcoder.com/acm/contest/74/B\n来源：牛客网\n1 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\"><meta itemprop=datePublished content=\"2018-07-22T10:55:21+08:00\"><meta itemprop=dateModified content=\"2018-07-22T10:55:21+08:00\"><meta itemprop=wordCount content=\"760\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"背包问题,Nowcoder,C++\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"TaoTao 要吃鸡\"><meta property=\"og:description\" content=\"2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\n链接：https://www.nowcoder.com/acm/contest/74/B\n来源：牛客网\n1 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T10:55:21+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T10:55:21+08:00\"><meta property=\"article:tag\" content=\"背包问题\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"TaoTao 要吃鸡\"><meta name=twitter:description content=\"2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\n链接：https://www.nowcoder.com/acm/contest/74/B\n来源：牛客网\n1 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ title=\"TaoTao 要吃鸡 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wannafly-18/ title=\"Wannafly 挑战赛 18-序列\"><link rel=next type=text/html href=https://lruihao.cn/posts/dfs_bfs/ title=深搜广搜><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/index.md title=\"TaoTao 要吃鸡 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"TaoTao 要吃鸡\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/taotao%E8%A6%81%E5%90%83%E9%B8%A1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"背包问题, Nowcoder, C\\u002b\\u002b\",\"wordcount\":760,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/taotao%E8%A6%81%E5%90%83%E9%B8%A1\\/\",\"datePublished\":\"2018-07-22T10:55:21+08:00\",\"dateModified\":\"2018-07-22T10:55:21+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>TaoTao 要吃鸡</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>TaoTao 要吃鸡</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 10:55:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"760 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"TaoTao 要吃鸡\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li></ol></li><li><a href=#说明>说明</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）<br>链接：<a href=https://www.nowcoder.com/acm/contest/74/B target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/74/B<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p></blockquote><h2 class=heading-element id=题目描述><span>1 题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。</p><h2 class=heading-element id=输入描述><span>2 输入描述</span>\n<a href=#%e8%be%93%e5%85%a5%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本题有多组输入（小于 10），当 n=0 时结束输入。第一行输入 n,m,h。n，m，h 为整数，并且 0&lt;=n,m,h&lt;=100，接下来 n 行，每行输入第 i 个物品的物品的重量 Wi 和威力值 Vi。0&lt;=Wi,Vi&lt;=100.</p><h2 class=heading-element id=输出描述><span>3 输出描述</span>\n<a href=#%e8%be%93%e5%87%ba%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输出最大威力值，每组输出一行。</p><h2 class=heading-element id=示例-1><span>4 示例 1</span>\n<a href=#%e7%a4%ba%e4%be%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=输入><span>4.1 输入</span>\n<a href=#%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>3 3 3\n2 3\n3 2\n2 3\n0\n</code></pre><h3 class=heading-element id=输出><span>4.2 输出</span>\n<a href=#%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>8\n</code></pre><h2 class=heading-element id=说明><span>5 说明</span>\n<a href=#%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可携带的总重量为 6，当拿了前两件装备，此时容量为 5/6，还可以再拿第三件物品。</p><p>思路：0-1 背包的变形题目，h=0 的时候为背包的模板，h！=0 的时候枚举每一个需要特殊处理的物品再背包</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>v</span><span class=p>[</span><span class=mi>105</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>w</span><span class=p>[</span><span class=mi>105</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>h</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>dp</span><span class=p>[</span><span class=mi>205</span><span class=p>];</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>)</span><span class=o>==</span><span class=mi>1</span><span class=o>&amp;&amp;</span><span class=n>n</span><span class=o>!=</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=kt>int</span> <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>,</span><span class=o>&amp;</span><span class=n>h</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>],</span><span class=o>&amp;</span><span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>h</span><span class=o>==</span><span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>            <span class=n>memset</span><span class=p>(</span><span class=n>dp</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>dp</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>    <span class=c1>//前 i 个物品\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=n>m</span><span class=p>;</span><span class=n>j</span><span class=o>&gt;=</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>];</span><span class=n>j</span><span class=o>--</span><span class=p>)</span>   <span class=c1>//枚举背包重量\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=p>],</span><span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=o>-</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]]</span><span class=o>+</span><span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>  <span class=c1>//\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>               <span class=n>sum</span><span class=o>=</span><span class=n>dp</span><span class=p>[</span><span class=n>m</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>{</span>\n</span></span><span class=line><span class=cl>             <span class=n>m</span><span class=o>+=</span><span class=n>h</span>\n</span></span><span class=line><span class=cl>            <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>k</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>k</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>k</span><span class=o>++</span><span class=p>)</span> <span class=c1>//枚举可以被剩下的物品\n</span></span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=n>memset</span><span class=p>(</span><span class=n>dp</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>dp</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>  <span class=c1>//前 i 个物品\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                    <span class=k>if</span><span class=p>(</span><span class=n>i</span><span class=o>!=</span><span class=n>k</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                       <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=n>m</span><span class=p>;</span><span class=n>j</span><span class=o>&gt;=</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>];</span><span class=n>j</span><span class=o>--</span><span class=p>)</span>   <span class=c1>//枚举背包重量\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                       <span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=p>],</span><span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=o>-</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]]</span><span class=o>+</span><span class=n>v</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=p>}</span> <span class=c1>//留下来一个重量，即初始化威力为那个重量的威力\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>               <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span><span class=o>=</span><span class=n>m</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&gt;=</span><span class=n>m</span><span class=o>-</span><span class=n>w</span><span class=p>[</span><span class=n>k</span><span class=p>];</span><span class=n>j</span><span class=o>--</span><span class=p>)</span>   <span class=c1>//枚举背包重量 + 剩下物品\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>                <span class=n>dp</span><span class=p>[</span><span class=n>m</span><span class=p>]</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=n>dp</span><span class=p>[</span><span class=n>m</span><span class=p>],</span><span class=n>dp</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>+</span><span class=n>v</span><span class=p>[</span><span class=n>k</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>               <span class=c1>// printf(&#34;%d\\n&#34;,dp[m]);\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>               <span class=n>sum</span><span class=o>=</span><span class=n>max</span><span class=p>(</span><span class=n>sum</span><span class=p>,</span><span class=n>dp</span><span class=p>[</span><span class=n>m</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>sum</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 10:55:21\">更新于 2018-07-22&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/taotao%e8%a6%81%e5%90%83%e9%b8%a1.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/taotao%e8%a6%81%e5%90%83%e9%b8%a1.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20TaoTao+%E8%A6%81%E5%90%83%E9%B8%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cTaoTao+%E8%A6%81%E5%90%83%E9%B8%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/taotao%e8%a6%81%e5%90%83%e9%b8%a1.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ data-title=\"TaoTao 要吃鸡\" data-hashtags=背包问题,Nowcoder,C++><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ data-hashtag=背包问题><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ data-title=\"TaoTao 要吃鸡\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ data-title=\"TaoTao 要吃鸡\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ class=post-tag title=\"标签 - 背包问题\">背包问题</a><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wannafly-18/ class=post-nav-item rel=prev title=\"Wannafly 挑战赛 18-序列\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Wannafly 挑战赛 18-序列</a><a href=/posts/dfs_bfs/ class=post-nav-item rel=next title=深搜广搜>深搜广搜<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li></ol></li><li><a href=#说明>说明</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ffe22751f3c8e22b1d48d3c99cb99e5a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ffe22751f3c8e22b1d48d3c99cb99e5a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/taotao要吃鸡/index.md",
    "content": "# TaoTao 要吃鸡\n\n\n> 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）  \n> 链接：<https://www.nowcoder.com/acm/contest/74/B>  \n> 来源：牛客网\n\n## 题目描述\n\nTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\n\n## 输入描述\n\n本题有多组输入（小于 10），当 n=0 时结束输入。第一行输入 n,m,h。n，m，h 为整数，并且 0<=n,m,h<=100，接下来 n 行，每行输入第 i 个物品的物品的重量 Wi 和威力值 Vi。0<=Wi,Vi<=100.\n\n## 输出描述\n\n输出最大威力值，每组输出一行。\n\n## 示例 1\n\n### 输入\n\n    3 3 3\n    2 3\n    3 2\n    2 3\n    0\n\n### 输出\n\n    8\n\n## 说明\n\n可携带的总重量为 6，当拿了前两件装备，此时容量为 5/6，还可以再拿第三件物品。\n\n思路：0-1 背包的变形题目，h=0 的时候为背包的模板，h！=0 的时候枚举每一个需要特殊处理的物品再背包\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include <bits/stdc++.h>\nusing namespace std;\n\nint v[105];\nint w[105];\nint n,m,h;\nint dp[205];\nint main()\n{\n\n    while(scanf(\"%d\",&n)==1&&n!=0){\n\n        int sum=0;\n\n        scanf(\"%d%d\",&m,&h);\n\n        for(int i=1;i<=n;i++)\n\n            scanf(\"%d%d\",&w[i],&v[i]);\n\n        if(h==0){\n\n            memset(dp,0,sizeof(dp));\n\n            for(int i=1;i<=n;i++)    //前 i 个物品\n\n                for(int j=m;j>=w[i];j--)   //枚举背包重量\n\n                dp[j]=max(dp[j],dp[j-w[i]]+v[i]);  //\n\n               sum=dp[m];\n\n        }\n\n        else{\n             m+=h\n            for(int k=1;k<=n;k++) //枚举可以被剩下的物品\n            {\n                memset(dp,0,sizeof(dp));\n\n                for(int i=1;i<=n;i++){  //前 i 个物品\n\n                    if(i!=k){\n\n                       for(int j=m;j>=w[i];j--)   //枚举背包重量\n\n                       dp[j]=max(dp[j],dp[j-w[i]]+v[i]);\n\n                    }\n\n                } //留下来一个重量，即初始化威力为那个重量的威力\n\n               for(int j=m-1;j>=m-w[k];j--)   //枚举背包重量 + 剩下物品\n\n                dp[m]=max(dp[m],dp[j]+v[k]);\n\n               // printf(\"%d\\n\",dp[m]);\n\n               sum=max(sum,dp[m]);\n            }\n        }\n        printf(\"%d\\n\",sum);\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/  \n\n"
  },
  {
    "path": "posts/termux/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>在 Android 上搭建 Hexo 博客 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\n\"><meta name=keywords content='Hexo,Node.js,termux'><meta itemprop=name content=\"在 Android 上搭建 hexo 博客\"><meta itemprop=description content=\"暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\"><meta itemprop=datePublished content=\"2018-08-11T16:59:05+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=wordCount content=\"622\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hexo,Node.js,termux\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/termux/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"在 Android 上搭建 hexo 博客\"><meta property=\"og:description\" content=\"暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-11T16:59:05+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-29T15:20:16+08:00\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"termux\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"在 Android 上搭建 hexo 博客\"><meta name=twitter:description content=\"暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/termux/ title=\"在 Android 上搭建 hexo 博客 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/nowcoder157a/ title=石子阵列（组合数学）><link rel=next type=text/html href=https://lruihao.cn/posts/git-index-lock/ title=\"git index.lock\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/termux/index.md title=\"在 Android 上搭建 hexo 博客 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"在 Android 上搭建 hexo 博客\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/termux\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Hexo, Node.js, termux\",\"wordcount\":622,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/termux\\/\",\"datePublished\":\"2018-08-11T16:59:05+08:00\",\"dateModified\":\"2023-11-29T15:20:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/termux/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>在 Android 上搭建 Hexo 博客</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>在 Android 上搭建 Hexo 博客</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-11 16:59:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-11>2018-08-11</time></span>&nbsp;<span title=\"更新于 2023-11-29 15:20:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-29>2023-11-29</time></span>&nbsp;<span title=\"622 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"在 Android 上搭建 Hexo 博客\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#准备>准备</a></li><li><a href=#开始>开始</a></li><li><a href=#编辑>编辑</a></li><li><a href=#参考>参考</a></li><li><a href=#效果图未连接-githubcoding-等>效果图（未连接 github，coding 等）</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-29，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**<a href=https://lruihao.gitee.io target=_blank rel=\"external nofollow noopener noreferrer\">部署后的效果<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>**</p></blockquote><h2 class=heading-element id=准备><span>1 准备</span>\n<a href=#%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Termux</li><li>文件管理器（RE,MT 文件管理器等高级一点的）</li></ul><h2 class=heading-element id=开始><span>2 开始</span>\n<a href=#%e5%bc%80%e5%a7%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开 Termux，输入$<code>pkg install nodejs</code>安装 Nodejs，在输入<code>pkg install git</code>安装 Git。<br>过程会出现一个提示，输入 y 回车确认即可。<br>按照 Hexo 官网提示安装 Hexo。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hexo-cli -g\n</span></span><span class=line><span class=cl>hexo init blog\n</span></span><span class=line><span class=cl><span class=nb>cd</span> blog</span></span></code></pre></td></tr></table></div></div></div><p><strong>注意 ssh 配置先安装：</strong><code>pkg install openssh</code><br>然后按照基本操作配置 Hexo，GitHub 或者 gitee,coding 等连上，部署测试一次。<br>安装部署插件<code>npm install hexo-deployer-git --save</code>，部署<code>hexo d -g</code><br>没有问题的话进行下一步。</p><h2 class=heading-element id=编辑><span>3 编辑</span>\n<a href=#%e7%bc%96%e8%be%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>写文章的话创建 md 文件命令和电脑上一样，文件管理器打开<code>/data/data/com.termux/files/home/i/source/_posts/</code> 编辑文章 md 文件。这种方式需要 Root。<br>没有 Root 的话可以使用 Vim，网上很多教程。但是这种方式相对来说更麻烦。</p><h2 class=heading-element id=参考><span>4 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=_blank rel=\"external nofollow noopener noreferrer\">termux 高级终端安装使用配置教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.oyohyee.com/post/Note/Termux target=_blank rel=\"external nofollow noopener noreferrer\">使用 Termux 在手机上运行 linux 黑科技<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/hexo%20+%20github%20%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2.html target=_blank rel=\"external nofollow noopener noreferrer\">hexo 搭建过程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://my.oschina.net/ryaneLee/blog/638440 target=_blank rel=\"external nofollow noopener noreferrer\">超详细教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=效果图未连接-githubcoding-等><span>5 效果图（未连接 github，coding 等）</span>\n<a href=#%e6%95%88%e6%9e%9c%e5%9b%be%e6%9c%aa%e8%bf%9e%e6%8e%a5-githubcoding-%e7%ad%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://wx1.sinaimg.cn/mw690/006vSs63gy1ft2a0jo3hmj30u01hcguh.jpg target=_blank rel=\"external nofollow noopener noreferrer\">效果图 1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><a href=https://wx4.sinaimg.cn/mw690/006vSs63gy1ft2a0kmm5xj30u01hcn2a.jpg target=_blank rel=\"external nofollow noopener noreferrer\">效果图 2<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<a href=https://wx3.sinaimg.cn/mw690/006vSs63gy1ft2a0lqt61j30u01hctla.jpg target=_blank rel=\"external nofollow noopener noreferrer\">效果图 3<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br><a href=https://wx2.sinaimg.cn/mw690/006vSs63gy1ft2a0mgkm6j30u01hc78l.jpg target=_blank rel=\"external nofollow noopener noreferrer\">效果图 4<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-29 15:20:16\">更新于 2023-11-29&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/8ac99017138353dbb66bdb7cc0fb3d049440eea4 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 调整文章标签&#10&#10Commit: 8ac99017138353dbb66bdb7cc0fb3d049440eea4 [8ac9901]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-29 15:20:16&#10Commit Date: 2023-11-29 15:34:26\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>8ac9901</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/termux/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/termux.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/termux.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9C%A8+Android+%E4%B8%8A%E6%90%AD%E5%BB%BA+hexo+%E5%8D%9A%E5%AE%A2&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9C%A8+Android+%E4%B8%8A%E6%90%AD%E5%BB%BA+hexo+%E5%8D%9A%E5%AE%A2%7c%0A%7cURL%7chttps://lruihao.cn/posts/termux/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/termux.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/termux/ data-title=\"在 Android 上搭建 Hexo 博客\" data-hashtags=Hexo,Node.js,termux><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/termux/ data-hashtag=Hexo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/termux/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/termux/ data-title=\"在 Android 上搭建 Hexo 博客\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/termux/ data-title=\"在 Android 上搭建 Hexo 博客\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/termux/ class=post-tag title=\"标签 - termux\">termux</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/nowcoder157a/ class=post-nav-item rel=prev title=石子阵列（组合数学）><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>石子阵列（组合数学）</a><a href=/posts/git-index-lock/ class=post-nav-item rel=next title=\"Git Index.lock\">Git Index.lock<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#准备>准备</a></li><li><a href=#开始>开始</a></li><li><a href=#编辑>编辑</a></li><li><a href=#参考>参考</a></li><li><a href=#效果图未连接-githubcoding-等>效果图（未连接 github，coding 等）</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/79cb396d7e1fb56b5cf5a14b0b513b34.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/79cb396d7e1fb56b5cf5a14b0b513b34.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/termux/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/termux/index.md",
    "content": "# 在 Android 上搭建 Hexo 博客\n\n\n> 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**[部署后的效果](https://lruihao.gitee.io)**\n\n<!--more-->\n\n## 准备\n\n- Termux\n- 文件管理器（RE,MT 文件管理器等高级一点的）\n\n## 开始\n\n打开 Termux，输入$`pkg install nodejs`安装 Nodejs，在输入`pkg install git`安装 Git。  \n过程会出现一个提示，输入 y 回车确认即可。  \n按照 Hexo 官网提示安装 Hexo。\n\n```bash\nnpm install hexo-cli -g\nhexo init blog\ncd blog\n```\n\n**注意 ssh 配置先安装：**`pkg install openssh`  \n然后按照基本操作配置 Hexo，GitHub 或者 gitee,coding 等连上，部署测试一次。  \n安装部署插件`npm install hexo-deployer-git --save`，部署`hexo d -g`  \n没有问题的话进行下一步。\n\n## 编辑\n\n写文章的话创建 md 文件命令和电脑上一样，文件管理器打开`/data/data/com.termux/files/home/i/source/_posts/` 编辑文章 md 文件。这种方式需要 Root。  \n没有 Root 的话可以使用 Vim，网上很多教程。但是这种方式相对来说更麻烦。\n\n## 参考\n\n- [termux 高级终端安装使用配置教程](https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879)\n- [使用 Termux 在手机上运行 linux 黑科技](https://www.oyohyee.com/post/Note/Termux)\n- [hexo 搭建过程](https://lruihao.cn/hexo%20+%20github%20%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2.html)\n- [超详细教程](https://my.oschina.net/ryaneLee/blog/638440)\n\n## 效果图（未连接 github，coding 等）\n\n[效果图 1](https://wx1.sinaimg.cn/mw690/006vSs63gy1ft2a0jo3hmj30u01hcguh.jpg)  \n[效果图 2](https://wx4.sinaimg.cn/mw690/006vSs63gy1ft2a0kmm5xj30u01hcn2a.jpg)\n[效果图 3](https://wx3.sinaimg.cn/mw690/006vSs63gy1ft2a0lqt61j30u01hctla.jpg)  \n[效果图 4](https://wx2.sinaimg.cn/mw690/006vSs63gy1ft2a0mgkm6j30u01hc78l.jpg)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/termux/  \n\n"
  },
  {
    "path": "posts/termux1/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Termux 基本使用教程 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\n1 初始化 下载并初始化 termux\n\"><meta name=keywords content='Node.js,linux,termux'><meta itemprop=name content=\"termux 基本使用教程\"><meta itemprop=description content=\"前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\n1 初始化 下载并初始化 termux\"><meta itemprop=datePublished content=\"2018-10-23T22:16:02+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1303\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Node.js,linux,termux\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/termux1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"termux 基本使用教程\"><meta property=\"og:description\" content=\"前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\n1 初始化 下载并初始化 termux\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-23T22:16:02+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"termux\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"termux 基本使用教程\"><meta name=twitter:description content=\"前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\n1 初始化 下载并初始化 termux\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/termux1/ title=\"termux 基本使用教程 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/web-font/ title=\"ttf 字体压缩\"><link rel=next type=text/html href=https://lruihao.cn/posts/gituse/ title=\"使用 Git 上传代码到 github, coding 等仓库\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/termux1/index.md title=\"termux 基本使用教程 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"termux 基本使用教程\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/termux1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Node.js, linux, termux\",\"wordcount\":1303,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/termux1\\/\",\"datePublished\":\"2018-10-23T22:16:02+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/termux1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Termux 基本使用教程</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Termux 基本使用教程</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-23 22:16:02\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-23>2018-10-23</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1303 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Termux 基本使用教程\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#初始化>初始化</a><ol><li><a href=#安装-vim>安装 vim</a></li><li><a href=#解决中文乱码问题>解决中文乱码问题</a></li><li><a href=#修改启动问候语>修改启动问候语</a></li><li><a href=#管理员权限>管理员权限</a></li></ol></li><li><a href=#美化>美化</a><ol><li><a href=#使用>使用</a></li><li><a href=#设置色彩样式>设置色彩样式</a></li><li><a href=#设置字体>设置字体</a></li><li><a href=#需要软件包>需要软件包</a></li></ol></li><li><a href=#访问外置存储>访问外置存储</a><ol><li><a href=#创建-qq-文件夹软连接>创建 QQ 文件夹软连接</a></li><li><a href=#创建-blog2-文件夹软连接备份文件>创建 blog2 文件夹软连接备份文件</a></li></ol></li><li><a href=#安装-hexo>安装 hexo</a><ol><li><a href=#安装准备>安装准备</a></li><li><a href=#初始化-hexo>初始化 hexo</a></li><li><a href=#链接-githubcodinggitee-等远程仓库>链接 github,coding,gitee 等远程仓库</a></li><li><a href=#设置用户信息>设置用户信息</a></li><li><a href=#测试链接>测试链接</a></li><li><a href=#站点配置文件>站点配置文件</a></li><li><a href=#部署>部署</a></li></ol></li><li><a href=#ssh-连接电脑或者服务器>ssh 连接电脑或者服务器</a></li><li><a href=#解决-npm-安装报错未验证>解决 npm 安装报错（未验证）</a></li><li><a href=#nyancat-彩虹猫>nyancat 彩虹猫</a></li><li><a href=#termux-更多常用有趣命令适用于-linux>termux 更多常用有趣命令（适用于 linux）</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>前面有一篇文章写到一些，<a href=https://lruihao.cn/posts/termux/ target=_blank rel=\"external nofollow noopener noreferrer\">在 Android 上搭建 hexo 博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<strong>本文当初摘要自 <a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=_blank rel=\"external nofollow noopener noreferrer\">国光个人博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong>\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。<a href=https://www.freebuf.com/geek/170510.html target=_blank rel=\"external nofollow noopener noreferrer\">备用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h2 class=heading-element id=初始化><span>1 初始化</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>下载并初始化 termux</p><h3 class=heading-element id=安装-vim><span>1.1 安装 vim</span>\n<a href=#%e5%ae%89%e8%a3%85-vim class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>安装编辑器 vim</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pkg install vim</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=解决中文乱码问题><span>1.2 解决中文乱码问题</span>\n<a href=#%e8%a7%a3%e5%86%b3%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 home 目录下，新建 <code>.vimrc</code> 文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim .vimrc</span></span></code></pre></td></tr></table></div></div></div><p>添加内容如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>set</span> <span class=nv>fileencodings</span><span class=o>=</span>utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1\n</span></span><span class=line><span class=cl><span class=nb>set</span> <span class=nv>enc</span><span class=o>=</span>utf8\n</span></span><span class=line><span class=cl><span class=nb>set</span> <span class=nv>fencs</span><span class=o>=</span>utf8,gbk,gb2312,gb18030</span></span></code></pre></td></tr></table></div></div></div><p>然后 source 下变量：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>source</span> .vimrc</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=修改启动问候语><span>1.3 修改启动问候语</span>\n<a href=#%e4%bf%ae%e6%94%b9%e5%90%af%e5%8a%a8%e9%97%ae%e5%80%99%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim <span class=nv>$PREFIX</span>/etc/motd</span></span></code></pre></td></tr></table></div></div></div><p>按 i 然后编辑，比如</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>    www.lruihao.cn\n</span></span><span class=line><span class=cl>        李瑞豪</span></span></code></pre></td></tr></table></div></div></div><p>Esc 然后：wq 退出</p><h3 class=heading-element id=管理员权限><span>1.4 管理员权限</span>\n<a href=#%e7%ae%a1%e7%90%86%e5%91%98%e6%9d%83%e9%99%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>手机已经 root, 安装 tsu, 这是一个 su 的 termux 版本，用来在 termux 上替代 su:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pkg install tsu</span></span></code></pre></td></tr></table></div></div></div><p>然后终端下面输入：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>tsu</span></span></code></pre></td></tr></table></div></div></div><p>即可切换 root 用户，这个时候会弹出 root 授权提示。在管理员身份下，输入 exit 可回到普通用户身份。</p><h2 class=heading-element id=美化><span>2 美化</span>\n<a href=#%e7%be%8e%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Cabbagec/termux-ohmyzsh target=_blank rel=\"external nofollow noopener noreferrer\">Termux-ohmyzsh<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>作用：美化之外，主要使用了 zsh 来替代 bash 作为默认 shell。使用一键安装脚本来安装，一步到位，顺便启动了外置存储，可以直接访问 SD 卡下的目录，创建软文件夹。</p><h3 class=heading-element id=使用><span>2.1 使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>sh -c <span class=s2>&#34;</span><span class=k>$(</span>curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh<span class=k>)</span><span class=s2>&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=设置色彩样式><span>2.2 设置色彩样式</span>\n<a href=#%e8%ae%be%e7%bd%ae%e8%89%b2%e5%bd%a9%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>运行 chcolor 更换色彩样式，或者：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>~/.termux/colors.sh</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=设置字体><span>2.3 设置字体</span>\n<a href=#%e8%ae%be%e7%bd%ae%e5%ad%97%e4%bd%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>运行 chfont 更换字体，或者：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>~/.termux/fonts.sh</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=需要软件包><span>2.4 需要软件包</span>\n<a href=#%e9%9c%80%e8%a6%81%e8%bd%af%e4%bb%b6%e5%8c%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>curl</li></ul><h2 class=heading-element id=访问外置存储><span>3 访问外置存储</span>\n<a href=#%e8%ae%bf%e9%97%ae%e5%a4%96%e7%bd%ae%e5%ad%98%e5%82%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>执行过上面的 zsh 一键配置脚本后，并且授予文件访问权限的话，会在家目录生成 storage 目录，并且生成若干目录，软连接都指向外置存储卡的相应目录<br>可以让从外置储存复制文件进 system 分区</p><h3 class=heading-element id=创建-qq-文件夹软连接><span>3.1 创建 QQ 文件夹软连接</span>\n<a href=#%e5%88%9b%e5%bb%ba-qq-%e6%96%87%e4%bb%b6%e5%a4%b9%e8%bd%af%e8%bf%9e%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=创建-blog2-文件夹软连接备份文件><span>3.2 创建 blog2 文件夹软连接备份文件</span>\n<a href=#%e5%88%9b%e5%bb%ba-blog2-%e6%96%87%e4%bb%b6%e5%a4%b9%e8%bd%af%e8%bf%9e%e6%8e%a5%e5%a4%87%e4%bb%bd%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ln -s /data/data/com.termux/files/home/storage/shared/blog2 blog2</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=安装-hexo><span>4 安装 hexo</span>\n<a href=#%e5%ae%89%e8%a3%85-hexo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=安装准备><span>4.1 安装准备</span>\n<a href=#%e5%ae%89%e8%a3%85%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pkg install nodejs\n</span></span><span class=line><span class=cl>pkg install git\n</span></span><span class=line><span class=cl>npm install hexo-cli -g\n</span></span><span class=line><span class=cl>npm install hexo-deployer-git --save\n</span></span><span class=line><span class=cl>pkg install openssh</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=初始化-hexo><span>4.2 初始化 hexo</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96-hexo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hexo init blog\n</span></span><span class=line><span class=cl><span class=nb>cd</span> blog\n</span></span><span class=line><span class=cl>hexo g\n</span></span><span class=line><span class=cl>hexo s</span></span></code></pre></td></tr></table></div></div></div><p>浏览器输入<code>127.0.0.1:4000</code>查看效果</p><h3 class=heading-element id=链接-githubcodinggitee-等远程仓库><span>4.3 链接 github,coding,gitee 等远程仓库</span>\n<a href=#%e9%93%be%e6%8e%a5-githubcodinggitee-%e7%ad%89%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh-keygen -t rsa -C <span class=s2>&#34;your_email@example.com&#34;</span>\n</span></span><span class=line><span class=cl><span class=c1>#这将按照你提供的邮箱地址，创建一对密钥（个人喜欢一路回车）</span></span></span></code></pre></td></tr></table></div></div></div><p>找到<code>~/.ssh/id_rsa.pub</code>这个文件复制里面的内容，到对应的平台生成 SSH 公钥</p><h3 class=heading-element id=设置用户信息><span>4.4 设置用户信息</span>\n<a href=#%e8%ae%be%e7%bd%ae%e7%94%a8%e6%88%b7%e4%bf%a1%e6%81%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global user.name <span class=s2>&#34;lruihao&#34;</span>\n</span></span><span class=line><span class=cl>git config --global user.email  <span class=s2>&#34;1074627678@qq.com&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=测试链接><span>4.5 测试链接</span>\n<a href=#%e6%b5%8b%e8%af%95%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh -T git@github.com  <span class=c1>#github</span>\n</span></span><span class=line><span class=cl>ssh -T git@coding.net   <span class=c1>#coding</span>\n</span></span><span class=line><span class=cl>ssh -T git@gitee.com   <span class=c1>#gitee</span></span></span></code></pre></td></tr></table></div></div></div><p>注意#注释部分不要的</p><h3 class=heading-element id=站点配置文件><span>4.6 站点配置文件</span>\n<a href=#%e7%ab%99%e7%82%b9%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>打开站点配置文件填写代码库</p><p>例如我的</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>deploy:\n</span></span><span class=line><span class=cl>- type: git\n</span></span><span class=line><span class=cl>  repository:\n</span></span><span class=line><span class=cl>    github: git@github.com:Lruihao/Lruihao.github.io.git,master\n</span></span><span class=line><span class=cl>    coding: git@git.coding.net:liruihao/liruihao.git,master\n</span></span><span class=line><span class=cl>  <span class=c1>#message: &#34;日常更新&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=部署><span>4.7 部署</span>\n<a href=#%e9%83%a8%e7%bd%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hexo clean\n</span></span><span class=line><span class=cl>hexo g -d</span></span></code></pre></td></tr></table></div></div></div><p>没出错就可以正常通过相应域名访问了。\n<a href=https://lruihao.github.io target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<a href=https://liruihao.coding.me target=_blank rel=\"external nofollow noopener noreferrer\">https://liruihao.coding.me<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n<a href=https://lruihao.gitee.io target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.gitee.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <strong>//手机 hexo 效果展示</strong></p><h2 class=heading-element id=ssh-连接电脑或者服务器><span>5 ssh 连接电脑或者服务器</span>\n<a href=#ssh-%e8%bf%9e%e6%8e%a5%e7%94%b5%e8%84%91%e6%88%96%e8%80%85%e6%9c%8d%e5%8a%a1%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh root@118.24.217.167</span></span></code></pre></td></tr></table></div></div></div><p>会提示输入密码，linux 下输入密码是看不到的，大家都知道，小心点别输入错误。<br>之后就可以手机操作服务器了。</p><h2 class=heading-element id=解决-npm-安装报错未验证><span>6 解决 npm 安装报错（未验证）</span>\n<a href=#%e8%a7%a3%e5%86%b3-npm-%e5%ae%89%e8%a3%85%e6%8a%a5%e9%94%99%e6%9c%aa%e9%aa%8c%e8%af%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim <span class=nv>$PREFIX</span>/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js</span></span></code></pre></td></tr></table></div></div></div><p>把里面的 length 改成 4，我默认的是 1。</p><h2 class=heading-element id=nyancat-彩虹猫><span>7 nyancat 彩虹猫</span>\n<a href=#nyancat-%e5%bd%a9%e8%99%b9%e7%8c%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>彩虹貓（英语：Nyan Cat）是在 2011 年 4 月上传在 Youtube 的视频，并且迅速爆红于网络，並在 2011 年 YouTube 浏览量最高的视频中排名第五。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pkg install nyancat\n</span></span><span class=line><span class=cl>nyancat</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>还有更多姿势这里就不写了，只写一下日常用到的，就这样 OK 睡觉！</p></blockquote><h2 class=heading-element id=termux-更多常用有趣命令适用于-linux><span>8 termux 更多常用有趣命令（适用于 linux）</span>\n<a href=#termux-%e6%9b%b4%e5%a4%9a%e5%b8%b8%e7%94%a8%e6%9c%89%e8%b6%a3%e5%91%bd%e4%bb%a4%e9%80%82%e7%94%a8%e4%ba%8e-linux class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vim <span class=nv>$PREFIX</span>/etc/motd\n</span></span><span class=line><span class=cl>chcolor\n</span></span><span class=line><span class=cl>chfont\n</span></span><span class=line><span class=cl>~/.termux/colors.sh\n</span></span><span class=line><span class=cl>~/.termux/fonts.sh\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>echo</span> <span class=s2>&#34;https://www.lruihao.cn&#34;</span> <span class=p>|</span>curl -F-<span class=o>=</span><span class=se>\\&lt;</span>- qrenco.de\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>pkg install nyancat\n</span></span><span class=line><span class=cl>nyancat\n</span></span><span class=line><span class=cl>pkg install sl\n</span></span><span class=line><span class=cl>sl\n</span></span><span class=line><span class=cl>pkg install figlet\n</span></span><span class=line><span class=cl>figlet hello\n</span></span><span class=line><span class=cl>pkg install toilet\n</span></span><span class=line><span class=cl>toilet hello\n</span></span><span class=line><span class=cl>toilet -f mono12 -F gay <span class=s2>&#34;hello&#34;</span>\n</span></span><span class=line><span class=cl>pkg cowsay\n</span></span><span class=line><span class=cl>cowsay <span class=s2>&#34;hello&#34;</span>\n</span></span><span class=line><span class=cl>pkg install cmatrix\n</span></span><span class=line><span class=cl>cmatrix\n</span></span><span class=line><span class=cl>pkg install w3m\n</span></span><span class=line><span class=cl>w3m www.lruihao.cn</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>cmatrix 常用命令如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>cmatrix-a : 异步滚动（默认）\n</span></span><span class=line><span class=cl>cmatrix-b : 随机粗体\n</span></span><span class=line><span class=cl>cmatrix-B : 全部粗体\n</span></span><span class=line><span class=cl>cmatrix-o : 使用旧风格滚动\n</span></span><span class=line><span class=cl>cmatrix-x :X window 模式\n</span></span><span class=line><span class=cl>cmatrix-V : 显示版本信息\n</span></span><span class=line><span class=cl>cmatrix-u : 刷新频率，0-9，也就是滚动的快慢\n</span></span><span class=line><span class=cl>cmatrix-C : 显示的颜色，支持 green（默认）,red,blue,white,yellow,cyan,\n</span></span><span class=line><span class=cl>        magenta and black\n</span></span><span class=line><span class=cl>例如：使用红色\n</span></span><span class=line><span class=cl>cmatrix -b -C red\n</span></span><span class=line><span class=cl>使用蓝色\n</span></span><span class=line><span class=cl>cmatrix -b -C blue\n</span></span><span class=line><span class=cl>等等 ........\n</span></span><span class=line><span class=cl>主义：在运行状态下，使用 0-9 数字，可以改变运行速度快慢。</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>开启你的装逼之路把，骚年！</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/termux1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/termux1.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/termux1.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20termux+%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7ctermux+%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/termux1/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/termux1.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/termux1/ data-title=\"Termux 基本使用教程\" data-hashtags=Node.js,linux,termux><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/termux1/ data-hashtag=Node.js><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/termux1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/termux1/ data-title=\"Termux 基本使用教程\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/termux1/ data-title=\"Termux 基本使用教程\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/termux/ class=post-tag title=\"标签 - termux\">termux</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/web-font/ class=post-nav-item rel=prev title=\"Ttf 字体压缩\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Ttf 字体压缩</a><a href=/posts/gituse/ class=post-nav-item rel=next title=\"使用 Git 上传代码到 Github, Coding 等仓库\">使用 Git 上传代码到 Github, Coding 等仓库<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#初始化>初始化</a><ol><li><a href=#安装-vim>安装 vim</a></li><li><a href=#解决中文乱码问题>解决中文乱码问题</a></li><li><a href=#修改启动问候语>修改启动问候语</a></li><li><a href=#管理员权限>管理员权限</a></li></ol></li><li><a href=#美化>美化</a><ol><li><a href=#使用>使用</a></li><li><a href=#设置色彩样式>设置色彩样式</a></li><li><a href=#设置字体>设置字体</a></li><li><a href=#需要软件包>需要软件包</a></li></ol></li><li><a href=#访问外置存储>访问外置存储</a><ol><li><a href=#创建-qq-文件夹软连接>创建 QQ 文件夹软连接</a></li><li><a href=#创建-blog2-文件夹软连接备份文件>创建 blog2 文件夹软连接备份文件</a></li></ol></li><li><a href=#安装-hexo>安装 hexo</a><ol><li><a href=#安装准备>安装准备</a></li><li><a href=#初始化-hexo>初始化 hexo</a></li><li><a href=#链接-githubcodinggitee-等远程仓库>链接 github,coding,gitee 等远程仓库</a></li><li><a href=#设置用户信息>设置用户信息</a></li><li><a href=#测试链接>测试链接</a></li><li><a href=#站点配置文件>站点配置文件</a></li><li><a href=#部署>部署</a></li></ol></li><li><a href=#ssh-连接电脑或者服务器>ssh 连接电脑或者服务器</a></li><li><a href=#解决-npm-安装报错未验证>解决 npm 安装报错（未验证）</a></li><li><a href=#nyancat-彩虹猫>nyancat 彩虹猫</a></li><li><a href=#termux-更多常用有趣命令适用于-linux>termux 更多常用有趣命令（适用于 linux）</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a56da8a7ff577d3943d46542a4b838fe.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a56da8a7ff577d3943d46542a4b838fe.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/termux1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/termux1/index.md",
    "content": "# Termux 基本使用教程\n\n\n> 前面有一篇文章写到一些，[在 Android 上搭建 hexo 博客](https://lruihao.cn/posts/termux/)\n> **本文当初摘要自 [国光个人博客](https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879)**\n> 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。[备用](https://www.freebuf.com/geek/170510.html)\n\n## 初始化\n\n下载并初始化 termux\n\n### 安装 vim\n\n安装编辑器 vim\n\n```bash\npkg install vim\n```\n\n### 解决中文乱码问题\n\n在 home 目录下，新建 `.vimrc` 文件\n\n```bash\nvim .vimrc\n```\n\n添加内容如下：\n\n```bash\nset fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1\nset enc=utf8\nset fencs=utf8,gbk,gb2312,gb18030\n```\n\n然后 source 下变量：\n\n```bash\nsource .vimrc\n```\n\n### 修改启动问候语\n\n```bash\nvim $PREFIX/etc/motd\n```\n\n按 i 然后编辑，比如\n\n```bash\n    www.lruihao.cn\n        李瑞豪\n```\n\nEsc 然后：wq 退出\n\n### 管理员权限\n\n手机已经 root, 安装 tsu, 这是一个 su 的 termux 版本，用来在 termux 上替代 su:\n\n```bash\npkg install tsu\n```\n\n然后终端下面输入：\n\n```bash\ntsu\n```\n\n即可切换 root 用户，这个时候会弹出 root 授权提示。在管理员身份下，输入 exit 可回到普通用户身份。\n\n## 美化\n\n[Termux-ohmyzsh](https://github.com/Cabbagec/termux-ohmyzsh)\n\n作用：美化之外，主要使用了 zsh 来替代 bash 作为默认 shell。使用一键安装脚本来安装，一步到位，顺便启动了外置存储，可以直接访问 SD 卡下的目录，创建软文件夹。\n\n### 使用\n\n```bash\nsh -c \"$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)\"\n```\n\n### 设置色彩样式\n\n运行 chcolor 更换色彩样式，或者：\n\n```bash\n~/.termux/colors.sh\n```\n\n### 设置字体\n\n运行 chfont 更换字体，或者：\n\n```bash\n~/.termux/fonts.sh\n```\n\n### 需要软件包\n\n- curl\n\n## 访问外置存储\n\n执行过上面的 zsh 一键配置脚本后，并且授予文件访问权限的话，会在家目录生成 storage 目录，并且生成若干目录，软连接都指向外置存储卡的相应目录  \n可以让从外置储存复制文件进 system 分区\n\n### 创建 QQ 文件夹软连接\n\n```bash\nln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ\n```\n\n### 创建 blog2 文件夹软连接备份文件\n\n```bash\nln -s /data/data/com.termux/files/home/storage/shared/blog2 blog2\n```\n\n## 安装 hexo\n\n### 安装准备\n\n```bash\npkg install nodejs\npkg install git\nnpm install hexo-cli -g\nnpm install hexo-deployer-git --save\npkg install openssh\n```\n\n### 初始化 hexo\n\n```bash\nhexo init blog\ncd blog\nhexo g\nhexo s\n```\n\n浏览器输入`127.0.0.1:4000`查看效果\n\n### 链接 github,coding,gitee 等远程仓库\n\n```bash\nssh-keygen -t rsa -C \"your_email@example.com\"\n#这将按照你提供的邮箱地址，创建一对密钥（个人喜欢一路回车）\n```\n\n找到`~/.ssh/id_rsa.pub`这个文件复制里面的内容，到对应的平台生成 SSH 公钥\n\n### 设置用户信息\n\n```bash\ngit config --global user.name \"lruihao\"\ngit config --global user.email  \"1074627678@qq.com\"\n```\n\n### 测试链接\n\n```bash\nssh -T git@github.com  #github\nssh -T git@coding.net   #coding\nssh -T git@gitee.com   #gitee\n```\n\n注意#注释部分不要的\n\n### 站点配置文件\n\n打开站点配置文件填写代码库\n\n例如我的\n\n```bash\ndeploy:\n- type: git\n  repository:\n    github: git@github.com:Lruihao/Lruihao.github.io.git,master\n    coding: git@git.coding.net:liruihao/liruihao.git,master\n  #message: \"日常更新\"\n```\n\n### 部署\n\n```bash\nhexo clean\nhexo g -d\n```\n\n没出错就可以正常通过相应域名访问了。\n<https://lruihao.github.io>\n<https://liruihao.coding.me>\n<https://lruihao.gitee.io> **//手机 hexo 效果展示**\n\n## ssh 连接电脑或者服务器\n\n```bash\nssh root@118.24.217.167\n```\n\n会提示输入密码，linux 下输入密码是看不到的，大家都知道，小心点别输入错误。  \n之后就可以手机操作服务器了。\n\n## 解决 npm 安装报错（未验证）\n\n```bash\nvim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js\n```\n\n把里面的 length 改成 4，我默认的是 1。\n\n## nyancat 彩虹猫\n\n彩虹貓（英语：Nyan Cat）是在 2011 年 4 月上传在 Youtube 的视频，并且迅速爆红于网络，並在 2011 年 YouTube 浏览量最高的视频中排名第五。\n\n```bash\npkg install nyancat\nnyancat\n```\n\n> 还有更多姿势这里就不写了，只写一下日常用到的，就这样 OK 睡觉！\n\n## termux 更多常用有趣命令（适用于 linux）\n\n```bash\nvim $PREFIX/etc/motd\nchcolor\nchfont\n~/.termux/colors.sh\n~/.termux/fonts.sh\n\necho \"https://www.lruihao.cn\" |curl -F-=\\<- qrenco.de\n\npkg install nyancat\nnyancat\npkg install sl\nsl\npkg install figlet\nfiglet hello\npkg install toilet\ntoilet hello\ntoilet -f mono12 -F gay \"hello\"\npkg cowsay\ncowsay \"hello\"\npkg install cmatrix\ncmatrix\npkg install w3m\nw3m www.lruihao.cn\n```\n\ncmatrix 常用命令如下：\n\n```plain\ncmatrix-a : 异步滚动（默认）\ncmatrix-b : 随机粗体\ncmatrix-B : 全部粗体\ncmatrix-o : 使用旧风格滚动\ncmatrix-x :X window 模式\ncmatrix-V : 显示版本信息\ncmatrix-u : 刷新频率，0-9，也就是滚动的快慢\ncmatrix-C : 显示的颜色，支持 green（默认）,red,blue,white,yellow,cyan,\n        magenta and black\n例如：使用红色\ncmatrix -b -C red\n使用蓝色\ncmatrix -b -C blue\n等等 ........\n主义：在运行状态下，使用 0-9 数字，可以改变运行速度快慢。\n```\n\n开启你的装逼之路把，骚年！\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/termux1/  \n\n"
  },
  {
    "path": "posts/translation-guide/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>中文翻译的常见问题 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\n\"><meta name=keywords content='他山之石'><meta itemprop=name content=\"中文翻译的常见问题\"><meta itemprop=description content=\"以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\"><meta itemprop=datePublished content=\"2023-09-15T11:07:56+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:45:09+08:00\"><meta itemprop=wordCount content=\"1233\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/translation-guide/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"中文翻译的常见问题\"><meta property=\"og:description\" content=\"以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-15T11:07:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:45:09+08:00\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"中文翻译的常见问题\"><meta name=twitter:description content=\"以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/translation-guide/ title=\"中文翻译的常见问题 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vue-svg-icon/ title=\"在 Vue 项目中更优雅地使用 icon\"><link rel=next type=text/html href=https://lruihao.cn/posts/js-fullscreen/ title=\"JS 实现全屏和退出全屏\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/translation-guide/index.md title=\"中文翻译的常见问题 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"中文翻译的常见问题\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/translation-guide\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"他山之石\",\"wordcount\":1233,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/translation-guide\\/\",\"datePublished\":\"2023-09-15T11:07:56+08:00\",\"dateModified\":\"2023-11-17T20:45:09+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/translation-guide/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>中文翻译的常见问题</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md title=\"转载 -> https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>中文翻译的常见问题</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/spec/ class=post-category title=\"分类 - 程序猿的自我修养\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 程序猿的自我修养</a>&ensp;<a href=/categories/%E7%BF%BB%E8%AF%91/ class=post-category title=\"分类 - 翻译\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 翻译</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-15 11:07:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-15>2023-09-15</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:45:09\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1233 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=中文翻译的常见问题><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#标点符号>标点符号</a><ol><li><a href=#常见中英文标点>常见中/英文标点</a></li></ol></li><li><a href=#中文和拉丁语系文字间加空格>中文和拉丁语系文字间加空格</a></li><li><a href=#排版>排版</a></li><li><a href=#词语翻译>词语翻译</a></li><li><a href=#代名词>代名词</a></li><li><a href=#复数形式>复数形式</a></li><li><a href=#术语表>术语表</a></li><li><a href=#常用标题>常用标题</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>以下内容截取自 <a href=https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md target=_blank rel=\"external nofollow noopener noreferrer\">针对 MDN 文档的本地化指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的中文翻译的常见问题小节。</p><p>其中翻译的规范也是中文写作的规范，更多详见之前写的 <a href=/posts/document-style-guide/>中文技术文档的写作规范</a>。</p></blockquote><p>为保证简体中文文档格式的一致性，翻译指南列出了部分规范。</p><h2 class=heading-element id=标点符号><span>1 标点符号</span>\n<a href=#%e6%a0%87%e7%82%b9%e7%ac%a6%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>除了代码中使用的符号以及一些特殊情况外，请将英文（半角）符号替换成中文（大部分为全角）符号。</p><blockquote><p>但请注意，请不要使用<strong>全角数字</strong>（特殊情况除外）。</p></blockquote><p>示例如下：</p><ul><li>正确：<code>我们可以学习 JavaScript——一种很酷的语言</code></li><li>错误：<code>我们可以学习 JavaScript--一种很酷的语言</code></li><li>正确：<code>以下示例是“可交互的”</code></li><li>错误：<code>以下示例是\"可交互的\"</code></li></ul><p>另外，请注意并列的词语间应使用顿号而非逗号：</p><ul><li>原文：<code>a, b, and c</code></li><li>宜：<code>a、b 和 c</code></li><li>不宜：<code>a，b，和 c</code></li></ul><h3 class=heading-element id=常见中英文标点><span>1.1 常见中/英文标点</span>\n<a href=#%e5%b8%b8%e8%a7%81%e4%b8%ad%e8%8b%b1%e6%96%87%e6%a0%87%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>名称</th><th>中文</th><th>英文</th></tr></thead><tbody><tr><td>括号</td><td>（）</td><td>()</td></tr><tr><td>冒号</td><td>：</td><td>:</td></tr><tr><td>引号</td><td>“”</td><td>\"\"</td></tr><tr><td>破折号</td><td>——</td><td>&ndash; 、 —</td></tr></tbody></table></div><p>简体中文标点符号参考资源：</p><ul><li><a href=https://www.moe.gov.cn/ewebeditor/uploadfile/2015/01/13/20150113091548267.pdf target=_blank rel=\"external nofollow noopener noreferrer\">教育部《标点符号用法》<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://zh.wikipedia.org/zh-cn/%e6%a0%87%e7%82%b9%e7%ac%a6%e5%8f%b7 target=_blank rel=\"external nofollow noopener noreferrer\">维基百科：标点符号<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=中文和拉丁语系文字间加空格><span>2 中文和拉丁语系文字间加空格</span>\n<a href=#%e4%b8%ad%e6%96%87%e5%92%8c%e6%8b%89%e4%b8%81%e8%af%ad%e7%b3%bb%e6%96%87%e5%ad%97%e9%97%b4%e5%8a%a0%e7%a9%ba%e6%a0%bc class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>对于简体中文文档，请在中文和拉丁语系文字之间保留<strong>一个空格</strong>，但在拉丁语系文字和中文标点之间，则无需保留空格。</p><p>示例如下：</p><ul><li>正确：<code>学习 Web 开发</code></li><li>错误：<code>学习Web开发</code></li><li>正确：<code>学习 JavaScript、HTML、CSS 等</code></li><li>错误：<code>学习 JavaScript、 HTML、 CSS 等</code></li><li>正确：<code>应用程序接口（API）</code></li><li>错误：<code>应用程序接口（ API ）</code></li></ul><p>对于链接文字和非链接文字部分，同样适用此规则：</p><ul><li>正确：<code>它指向一个[示例](#示例)</code></li><li>错误：<code>它指向一个 [示例](#示例)</code></li><li>正确：<code>指向 [MDN 开发者文档](https://developer.mozilla.org/)的链接</code></li><li>错误：<code>指向[MDN开发者文档](https://developer.mozilla.org/)的链接</code></li></ul><p>请注意，数字与中文之间也请保留空格：</p><ul><li>正确：<code>需 10 个小时完成</code></li><li>错误：<code>需10个小时完成</code></li></ul><h2 class=heading-element id=排版><span>3 排版</span>\n<a href=#%e6%8e%92%e7%89%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>英文文档中，对于较长的段落，会通过断行的形式截断，以方便维护文档。但在 Markdown 中，断行会引入空格，在简体中文翻译中，我们有如下约定：</p><ul><li>在段落不是特别长的情况下（200 个字符以内），请不要断行。</li><li>若段落过长，也请在中文与拉丁语系文字、数字之间，或是句子末尾断行。</li></ul><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>This is an example.\n</span></span><span class=line><span class=cl>We usually write a paragraph into multiple lines.\n</span></span><span class=line><span class=cl>Like this.</span></span></code></pre></td></tr></table></div></div></div><p>而在中文文档中，应该使它们在同一行内：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>这是一个示例。我们不应该断行写这一段话。就像这样。</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=词语翻译><span>4 词语翻译</span>\n<a href=#%e8%af%8d%e8%af%ad%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=代名词><span>5 代名词</span>\n<a href=#%e4%bb%a3%e5%90%8d%e8%af%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我们无需将“you”翻译为“您”，在文档正文部分的翻译中，请统一使用“你”。</p><h2 class=heading-element id=复数形式><span>6 复数形式</span>\n<a href=#%e5%a4%8d%e6%95%b0%e5%bd%a2%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>英文文档中，为了使语句的语法正确，会使用大量的复数形式。在中文翻译中，则无需保留这些复数的形式（未翻译的英文名词也同理）。</p><ul><li>原文：<code>Application Programming Interfaces (APIs)</code></li><li>宜：<code>应用程序接口（API）</code></li><li>不宜：<code>应用程序接口（APIs）</code></li><li>不宜：<code>应用程序接口们（APIs）</code></li></ul><h2 class=heading-element id=术语表><span>7 术语表</span>\n<a href=#%e6%9c%af%e8%af%ad%e8%a1%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我们在仓库中维护了一个<a href=https://github.com/mdn/translated-content/blob/main/docs/zh-cn/glossary.md target=_blank rel=\"external nofollow noopener noreferrer\">术语表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，旨在统一目前还未有明确中文翻译的术语。在翻译文档时，请尽量使用术语表中的术语，以保证文档的一致性。</p><h2 class=heading-element id=常用标题><span>8 常用标题</span>\n<a href=#%e5%b8%b8%e7%94%a8%e6%a0%87%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>英文文档中使用了一些常见标题，为了保持简体中文文档的一致性，请在翻译时参考术语表中的<a href=https://github.com/mdn/translated-content/blob/main/docs/zh-cn/glossary.md#%e6%a0%87%e9%a2%98%e8%a1%a8%e6%a0%bc target=_blank rel=\"external nofollow noopener noreferrer\">标题和表格的翻译<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:45:09\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/88d0b41d55ad36f956365065e70ad101e5a8c467 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 修正相对文章链接错误&#10&#10Commit: 88d0b41d55ad36f956365065e70ad101e5a8c467 [88d0b41]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:45:09\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>88d0b41</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/translation-guide/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/translation-guide.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_spec/translation-guide.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%7c%0A%7cURL%7chttps://lruihao.cn/posts/translation-guide/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_spec/translation-guide.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/translation-guide/ data-title=中文翻译的常见问题 data-hashtags=他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/translation-guide/ data-hashtag=他山之石><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/translation-guide/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/translation-guide/ data-title=中文翻译的常见问题 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/translation-guide/ data-title=中文翻译的常见问题><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vue-svg-icon/ class=post-nav-item rel=prev title=\"在 Vue 项目中更优雅地使用 Icon\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>在 Vue 项目中更优雅地使用 Icon</a><a href=/posts/js-fullscreen/ class=post-nav-item rel=next title=\"JS 实现全屏和退出全屏\">JS 实现全屏和退出全屏<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#标点符号>标点符号</a><ol><li><a href=#常见中英文标点>常见中/英文标点</a></li></ol></li><li><a href=#中文和拉丁语系文字间加空格>中文和拉丁语系文字间加空格</a></li><li><a href=#排版>排版</a></li><li><a href=#词语翻译>词语翻译</a></li><li><a href=#代名词>代名词</a></li><li><a href=#复数形式>复数形式</a></li><li><a href=#术语表>术语表</a></li><li><a href=#常用标题>常用标题</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/0d8648db64976c5112e4fa3049752404.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/0d8648db64976c5112e4fa3049752404.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/translation-guide/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/translation-guide/index.md",
    "content": "# 中文翻译的常见问题\n\n\n> 以下内容截取自 [针对 MDN 文档的本地化指南](https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md) 的中文翻译的常见问题小节。\n>\n> 其中翻译的规范也是中文写作的规范，更多详见之前写的 [中文技术文档的写作规范](/posts/document-style-guide/)。\n\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\n\n<!--more-->\n\n## 标点符号\n\n除了代码中使用的符号以及一些特殊情况外，请将英文（半角）符号替换成中文（大部分为全角）符号。\n\n> 但请注意，请不要使用**全角数字**（特殊情况除外）。\n\n示例如下：\n\n- 正确：`我们可以学习 JavaScript——一种很酷的语言`\n- 错误：`我们可以学习 JavaScript--一种很酷的语言`\n- 正确：`以下示例是“可交互的”`\n- 错误：`以下示例是\"可交互的\"`\n\n另外，请注意并列的词语间应使用顿号而非逗号：\n\n- 原文：`a, b, and c`\n- 宜：`a、b 和 c`\n- 不宜：`a，b，和 c`\n\n### 常见中/英文标点\n\n<!-- markdownlint-disable search-replace -->\n\n| 名称   | 中文 | 英文    |\n| ------ | ---- | ------- |\n| 括号   | （） | ()      |\n| 冒号   | ：   | :       |\n| 引号   | “”   | \"\"      |\n| 破折号 | ——   | -- 、 — |\n\n<!-- markdownlint-enable search-replace -->\n\n简体中文标点符号参考资源：\n\n- [教育部《标点符号用法》](https://www.moe.gov.cn/ewebeditor/uploadfile/2015/01/13/20150113091548267.pdf)\n- [维基百科：标点符号](https://zh.wikipedia.org/zh-cn/标点符号)\n\n## 中文和拉丁语系文字间加空格\n\n对于简体中文文档，请在中文和拉丁语系文字之间保留**一个空格**，但在拉丁语系文字和中文标点之间，则无需保留空格。\n\n示例如下：\n\n- 正确：`学习 Web 开发`\n- 错误：`学习Web开发`\n- 正确：`学习 JavaScript、HTML、CSS 等`\n- 错误：`学习 JavaScript、 HTML、 CSS 等`\n- 正确：`应用程序接口（API）`\n- 错误：`应用程序接口（ API ）`\n\n对于链接文字和非链接文字部分，同样适用此规则：\n\n- 正确：`它指向一个[示例](#示例)`\n- 错误：`它指向一个 [示例](#示例)`\n- 正确：`指向 [MDN 开发者文档](https://developer.mozilla.org/)的链接`\n- 错误：`指向[MDN开发者文档](https://developer.mozilla.org/)的链接`\n\n请注意，数字与中文之间也请保留空格：\n\n- 正确：`需 10 个小时完成`\n- 错误：`需10个小时完成`\n\n## 排版\n\n英文文档中，对于较长的段落，会通过断行的形式截断，以方便维护文档。但在 Markdown 中，断行会引入空格，在简体中文翻译中，我们有如下约定：\n\n- 在段落不是特别长的情况下（200 个字符以内），请不要断行。\n- 若段落过长，也请在中文与拉丁语系文字、数字之间，或是句子末尾断行。\n\n例如：\n\n```md\nThis is an example.\nWe usually write a paragraph into multiple lines.\nLike this.\n```\n\n而在中文文档中，应该使它们在同一行内：\n\n```md\n这是一个示例。我们不应该断行写这一段话。就像这样。\n```\n\n## 词语翻译\n\n## 代名词\n\n<!-- markdownlint-disable search-replace -->\n\n我们无需将“you”翻译为“您”，在文档正文部分的翻译中，请统一使用“你”。\n\n<!-- markdownlint-enable search-replace -->\n\n## 复数形式\n\n英文文档中，为了使语句的语法正确，会使用大量的复数形式。在中文翻译中，则无需保留这些复数的形式（未翻译的英文名词也同理）。\n\n- 原文：`Application Programming Interfaces (APIs)`\n- 宜：`应用程序接口（API）`\n- 不宜：`应用程序接口（APIs）`\n- 不宜：`应用程序接口们（APIs）`\n\n## 术语表\n\n我们在仓库中维护了一个[术语表](https://github.com/mdn/translated-content/blob/main/docs/zh-cn/glossary.md)，旨在统一目前还未有明确中文翻译的术语。在翻译文档时，请尽量使用术语表中的术语，以保证文档的一致性。\n\n## 常用标题\n\n英文文档中使用了一些常见标题，为了保持简体中文文档的一致性，请在翻译时参考术语表中的[标题和表格的翻译](https://github.com/mdn/translated-content/blob/main/docs/zh-cn/glossary.md#标题表格)。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/translation-guide/  \n> 转载 URL: https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\n"
  },
  {
    "path": "posts/ubuntutime/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Win10,ubuntu 双系统时间不一致 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\n\"><meta name=keywords content='ubuntu,linux,windows'><meta itemprop=name content=\"win10,ubuntu 双系统时间不一致\"><meta itemprop=description content=\"我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\"><meta itemprop=datePublished content=\"2019-03-15T14:28:10+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"657\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"ubuntu,linux,windows\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/ubuntutime/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"win10,ubuntu 双系统时间不一致\"><meta property=\"og:description\" content=\"我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-15T14:28:10+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"ubuntu\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"windows\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"win10,ubuntu 双系统时间不一致\"><meta name=twitter:description content=\"我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/ubuntutime/ title=\"win10,ubuntu 双系统时间不一致 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/qqxml/ title=\"QQ 强制生成卡片式链接\"><link rel=next type=text/html href=https://lruihao.cn/posts/linkcard/ title=模仿知乎卡片式链接><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/ubuntutime/index.md title=\"win10,ubuntu 双系统时间不一致 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"win10,ubuntu 双系统时间不一致\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/ubuntutime\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ubuntu, linux, windows\",\"wordcount\":657,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/ubuntutime\\/\",\"datePublished\":\"2019-03-15T14:28:10+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/ubuntutime/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Win10,ubuntu 双系统时间不一致</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Win10,ubuntu 双系统时间不一致</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-15 14:28:10\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-15>2019-03-15</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"657 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Win10,ubuntu 双系统时间不一致\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#原因>原因</a></li><li><a href=#方法一>方法一</a></li><li><a href=#方法二>方法二</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。</p></blockquote><h2 class=heading-element id=原因><span>1 原因</span>\n<a href=#%e5%8e%9f%e5%9b%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在安装 Ubuntu 和 Windows 双系统的情况下，Ubuntu 的时间总会和 Windows 的时间相差 8 小时，原因在于 widows 认为 BIOS 时间是本地时间，Ubuntu 认为 BIOS 时间是 UTC 时间，即协调世界时，(Universal Time Coordinated) 英文缩写，是由国际无线电咨询委员会规定和推荐，并由国际时间局 (BIH) 负责保持的以秒为基础的时间标度。UTC 相当于本初子午线（即经度 0 度）上的平均太阳时，过去曾用格林威治平均时 (GMT) 来表示。北京时间比 UTC 时间早 8 小时，以 1999 年 1 月 1 日 00:00 UTC 为例，UTC 时间是零点，北京时间为 1999 年 1 月 1 日早上 8 点整。)，所以我们在时间上面相隔了 8 个小时。这个时候 bios 的时间和系统的时间当然是不一致，一个代表 utc 时间，一个代表 cst（＋ 8 时区），即我们常用的时间。</p><h2 class=heading-element id=方法一><span>2 方法一</span>\n<a href=#%e6%96%b9%e6%b3%95%e4%b8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 Windows 下 进行如下修改：（博主 win10,win7 自测）<br>以管理员身份运行 CMD（<code>win+x 后选择 Windows Powershell（管理员）</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>Reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1</span></span></code></pre></td></tr></table></div></div></div><p>重启看看时间发现 ok 了。</p><h2 class=heading-element id=方法二><span>3 方法二</span>\n<a href=#%e6%96%b9%e6%b3%95%e4%ba%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>老版 Ubuntu（Ubuntu10 左右）：<br>修改 <code>/etc/default/rcS</code> 文件<br>编辑 <code>/etc/default/rcS</code> 将 <code>UTC=yes</code>改成 <code>UTC=no</code> 。</p><p>新版 Ubuntu（Ubuntu16.04）：\n新版本的 Ubuntu 使用 systemd 启动之后，时间也改成了由 timedatectl 来管理，此方法就不适用了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>$sudo timedatectl set-local-rtc 1</span></span></code></pre></td></tr></table></div></div></div><p>先在 ubuntu 下更新一下时间，确保时间无误：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>$sudo apt-get install ntpdate\n</span></span><span class=line><span class=cl>$sudo ntpdate time.windows.com</span></span></code></pre></td></tr></table></div></div></div><p>然后将时间更新到硬件上：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>$sudo hwclock --localtime --systohc</span></span></code></pre></td></tr></table></div></div></div><p>重新进入 windows10，发现时间恢复正常了！</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/ubuntutime/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ubuntutime.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/ubuntutime.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20win10%2Cubuntu+%E5%8F%8C%E7%B3%BB%E7%BB%9F%E6%97%B6%E9%97%B4%E4%B8%8D%E4%B8%80%E8%87%B4&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cwin10%2Cubuntu+%E5%8F%8C%E7%B3%BB%E7%BB%9F%E6%97%B6%E9%97%B4%E4%B8%8D%E4%B8%80%E8%87%B4%7c%0A%7cURL%7chttps://lruihao.cn/posts/ubuntutime/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/ubuntutime.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/ubuntutime/ data-title=\"Win10,ubuntu 双系统时间不一致\" data-hashtags=ubuntu,linux,windows><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/ubuntutime/ data-hashtag=ubuntu><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/ubuntutime/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/ubuntutime/ data-title=\"Win10,ubuntu 双系统时间不一致\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/ubuntutime/ data-title=\"Win10,ubuntu 双系统时间不一致\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/ubuntu/ class=post-tag title=\"标签 - ubuntu\">ubuntu</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/windows/ class=post-tag title=\"标签 - windows\">windows</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/qqxml/ class=post-nav-item rel=prev title=\"QQ 强制生成卡片式链接\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>QQ 强制生成卡片式链接</a><a href=/posts/linkcard/ class=post-nav-item rel=next title=模仿知乎卡片式链接>模仿知乎卡片式链接<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#原因>原因</a></li><li><a href=#方法一>方法一</a></li><li><a href=#方法二>方法二</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/067f014b07ee3a506035596baf104864.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/067f014b07ee3a506035596baf104864.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/ubuntutime/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/ubuntutime/index.md",
    "content": "# Win10,ubuntu 双系统时间不一致\n\n\n> 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\n\n<!--more-->\n\n## 原因\n\n在安装 Ubuntu 和 Windows 双系统的情况下，Ubuntu 的时间总会和 Windows 的时间相差 8 小时，原因在于 widows 认为 BIOS 时间是本地时间，Ubuntu 认为 BIOS 时间是 UTC 时间，即协调世界时，(Universal Time Coordinated) 英文缩写，是由国际无线电咨询委员会规定和推荐，并由国际时间局 (BIH) 负责保持的以秒为基础的时间标度。UTC 相当于本初子午线（即经度 0 度）上的平均太阳时，过去曾用格林威治平均时 (GMT) 来表示。北京时间比 UTC 时间早 8 小时，以 1999 年 1 月 1 日 00:00 UTC 为例，UTC 时间是零点，北京时间为 1999 年 1 月 1 日早上 8 点整。)，所以我们在时间上面相隔了 8 个小时。这个时候 bios 的时间和系统的时间当然是不一致，一个代表 utc 时间，一个代表 cst（＋ 8 时区），即我们常用的时间。\n\n## 方法一\n\n在 Windows 下 进行如下修改：（博主 win10,win7 自测）  \n以管理员身份运行 CMD（`win+x 后选择 Windows Powershell（管理员）`\n\n```default windows cmd 命令\nReg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1\n```\n\n重启看看时间发现 ok 了。\n\n## 方法二\n\n老版 Ubuntu（Ubuntu10 左右）：  \n修改 `/etc/default/rcS` 文件  \n编辑 `/etc/default/rcS` 将 `UTC=yes`改成 `UTC=no` 。\n\n新版 Ubuntu（Ubuntu16.04）：\n新版本的 Ubuntu 使用 systemd 启动之后，时间也改成了由 timedatectl 来管理，此方法就不适用了。\n\n```default 重启完成将硬件时间 UTC 改为 CST，双系统时间保持一致。\n$sudo timedatectl set-local-rtc 1\n```\n\n先在 ubuntu 下更新一下时间，确保时间无误：\n\n```default ubuntu 命令\n$sudo apt-get install ntpdate\n$sudo ntpdate time.windows.com\n```\n\n然后将时间更新到硬件上：\n\n```default ubuntu 命令\n$sudo hwclock --localtime --systohc\n```\n\n重新进入 windows10，发现时间恢复正常了！\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/ubuntutime/  \n\n"
  },
  {
    "path": "posts/v2-tailwind/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue2 + Tailwindcss 初始化 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\n1 vue create vue2-tailwind 根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\n\"><meta name=keywords content='tailwindcss,Vue2,CSS,eslint'><meta itemprop=name content=\"Vue2 + tailwindcss 初始化\"><meta itemprop=description content=\"1 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\n1 vue create vue2-tailwind 根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\"><meta itemprop=datePublished content=\"2023-06-03T17:38:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"918\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"tailwindcss,Vue2,CSS,eslint\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/v2-tailwind/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue2 + tailwindcss 初始化\"><meta property=\"og:description\" content=\"1 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\n1 vue create vue2-tailwind 根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-06-03T17:38:44+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"tailwindcss\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"CSS\"><meta property=\"article:tag\" content=\"eslint\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue2 + tailwindcss 初始化\"><meta name=twitter:description content=\"1 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\n1 vue create vue2-tailwind 根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/v2-tailwind/ title=\"Vue2 + tailwindcss 初始化 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vue2-guid/ title=\"新手向：Vue 2.0 的建议学习顺序\"><link rel=next type=text/html href=https://lruihao.cn/posts/sourcetree-husky/ title=\"解决 SourceTree 提交时候 husky 命令失败问题\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/v2-tailwind/index.md title=\"Vue2 + tailwindcss 初始化 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Vue2 + tailwindcss 初始化\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/v2-tailwind\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"tailwindcss, Vue2, CSS, eslint\",\"wordcount\":918,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/v2-tailwind\\/\",\"datePublished\":\"2023-06-03T17:38:44+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/v2-tailwind/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue2 + Tailwindcss 初始化</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Vue2 + Tailwindcss 初始化</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-06-03 17:38:44\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-06-03>2023-06-03</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"918 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Vue2 + Tailwindcss 初始化\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#新建-vue2-项目>新建 Vue2 项目</a></li><li><a href=#安装-tailwindcss>安装 tailwindcss</a></li><li><a href=#启动项目>启动项目</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=新建-vue2-项目><span>1 新建 Vue2 项目</span>\n<a href=#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通过 <code>vue-cli</code> 创建一个叫 <code>v2-tailwind</code> 的项目：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>vue create vue2-tailwind</span></span></code></pre></td></tr></table></div></div></div><p>根据需要选择其他的功能插件，例如：<code>Babel, Router, Vuex, CSS Pre-processors, Linter</code>。</p><details><summary>关于 ESLint</summary>当在 Vue 创建项目时，你可以根据自己的需求选择不同的 ESLint 配置。以下是一些常见的选项及其优缺点和注意事项：<ol><li><p><strong>ESLint with error prevention only</strong>:</p><ul><li>优点：这个配置只会帮助你防止代码中的错误，它的规则相对宽松。适用于刚开始使用 ESLint 或者希望避免太多约束的开发者。</li><li>缺点：由于规则相对宽松，可能无法完全确保代码风格的一致性。</li><li>注意事项：如果你想要更严格的代码检查，可以考虑其他配置。</li></ul></li><li><p><strong>ESLint + Airbnb config</strong>:</p><ul><li>优点：Airbnb 的配置非常严格，能够帮助你遵循最佳实践和编写高质量的代码。此外，它也包含了许多 ES6+ 的规则。</li><li>缺点：由于其严格性，初学者可能需要花费更多时间来解决 ESLint 报告的问题。</li><li>注意事项：在使用此配置时，请确保你理解并接受 Airbnb 的代码规范。</li></ul></li><li><p><strong>ESLint + Standard config</strong>:</p><ul><li>优点：Standard 的配置旨在提供一个相对简单、一致的代码风格，适合那些喜欢“零配置”的开发者。</li><li>缺点：这个配置可能不适用于所有项目，因为它有自己的代码风格要求。</li><li>注意事项：如果你的团队或项目已经有自己的编码规范，使用 Standard 配置可能会导致不一致。</li></ul></li><li><p><strong>ESLint + Prettier</strong>:</p><ul><li>优点：Prettier 是一个自动格式化工具，可以与 ESLint 结合使用，以确保代码风格的一致性。这可以提高代码可读性，并减少在代码审查过程中关注格式问题的时间。</li><li>缺点：Prettier 可能会覆盖某些 ESLint 规则，所以需要花一些时间确保配置正确。</li><li>注意事项：为了避免冲突，请确保 ESLint 和 Prettier 的规则正确配置。</li></ul></li></ol><p>总之，在选择 ESLint 配置时，需要根据你的团队、项目需求和个人偏好来权衡。选择适当的配置可以帮助你提高代码质量并保持一致的代码风格。</p></details><h2 class=heading-element id=安装-tailwindcss><span>2 安装 tailwindcss</span>\n<a href=#%e5%ae%89%e8%a3%85-tailwindcss class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开项目，安装 <code>tailwindcss</code>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> vue2-tailwind\n</span></span><span class=line><span class=cl><span class=c1># 安装 tailwindcss 低版本及相关插件</span>\n</span></span><span class=line><span class=cl>npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9</span></span></code></pre></td></tr></table></div></div></div><p>然后创建配置文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 创建 postcss.config.js, tailwind.config.js</span>\n</span></span><span class=line><span class=cl>npx tailwindcss init -p</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=postcss.config.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>postcss.config.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>module</span><span class=p>.</span><span class=nx>exports</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>plugins</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>tailwindcss</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>autoprefixer</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=tailwind.config.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>tailwind.config.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>module</span><span class=p>.</span><span class=nx>exports</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>purge</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;./src/App.vue&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;./src/views/**/*.{vue,js,ts,jsx,tsx}&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;./src/components/**/*.{vue,js,ts,jsx,tsx}&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>],</span>\n</span></span><span class=line><span class=cl>  <span class=nx>darkMode</span><span class=o>:</span> <span class=s1>&#39;class&#39;</span><span class=p>,</span> <span class=c1>// or &#39;media&#39; or &#39;class&#39;\n</span></span></span><span class=line><span class=cl>  <span class=nx>mode</span><span class=o>:</span> <span class=s1>&#39;jit&#39;</span><span class=p>,</span> <span class=c1>// 是否开启 jit 模式，开启以后编译会更快，当然，tailwindcss 版本需要在 2.1 以上\n</span></span></span><span class=line><span class=cl>  <span class=nx>theme</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>extend</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>variants</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>extend</span><span class=o>:</span> <span class=p>{},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>plugins</span><span class=o>:</span> <span class=p>[],</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>最后在 <code>main.js</code> 中引入 <code>tailwindcss</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=s2>&#34;tailwindcss/tailwind.css&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=启动项目><span>3 启动项目</span>\n<a href=#%e5%90%af%e5%8a%a8%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>启动项目，修改模板中的 class 进行测试。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm run serve</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=src/App.vue><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>src/App.vue</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;app&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;bg-gray-100&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;container mx-auto&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;flex justify-center items-center h-screen&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>          <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;text-4xl text-gray-700&#34;</span><span class=p>&gt;</span><span class=nx>Hello</span> <span class=nx>Vue2</span> <span class=o>+</span> <span class=nx>tailwindcss</span><span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>        <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/v2-tailwind/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/v2-tailwind.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/v2-tailwind.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Vue2+%2B+tailwindcss+%E5%88%9D%E5%A7%8B%E5%8C%96&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cVue2+%2B+tailwindcss+%E5%88%9D%E5%A7%8B%E5%8C%96%7c%0A%7cURL%7chttps://lruihao.cn/posts/v2-tailwind/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/v2-tailwind.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/v2-tailwind/ data-title=\"Vue2 + Tailwindcss 初始化\" data-hashtags=tailwindcss,Vue2,CSS,eslint><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/v2-tailwind/ data-hashtag=tailwindcss><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/v2-tailwind/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/v2-tailwind/ data-title=\"Vue2 + Tailwindcss 初始化\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/v2-tailwind/ data-title=\"Vue2 + Tailwindcss 初始化\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/tailwindcss/ class=post-tag title=\"标签 - tailwindcss\">tailwindcss</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/css/ class=post-tag title=\"标签 - CSS\">CSS</a><a href=/tags/eslint/ class=post-tag title=\"标签 - eslint\">eslint</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vue2-guid/ class=post-nav-item rel=prev title=\"新手向：Vue 2.0 的建议学习顺序\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a><a href=/posts/sourcetree-husky/ class=post-nav-item rel=next title=\"解决 SourceTree 提交时候 Husky 命令失败问题\">解决 SourceTree 提交时候 Husky 命令失败问题<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#新建-vue2-项目>新建 Vue2 项目</a></li><li><a href=#安装-tailwindcss>安装 tailwindcss</a></li><li><a href=#启动项目>启动项目</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a6da1526d066440ae439665d78a814ba.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a6da1526d066440ae439665d78a814ba.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/v2-tailwind/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/v2-tailwind/index.md",
    "content": "# Vue2 + Tailwindcss 初始化\n\n\n## 新建 Vue2 项目\n\n通过 `vue-cli` 创建一个叫 `v2-tailwind` 的项目：\n\n```bash\nvue create vue2-tailwind\n```\n\n根据需要选择其他的功能插件，例如：`Babel, Router, Vuex, CSS Pre-processors, Linter`。\n\n<details>\n  <summary>关于 ESLint</summary>\n  当在 Vue 创建项目时，你可以根据自己的需求选择不同的 ESLint 配置。以下是一些常见的选项及其优缺点和注意事项：\n\n  1. **ESLint with error prevention only**:\n     - 优点：这个配置只会帮助你防止代码中的错误，它的规则相对宽松。适用于刚开始使用 ESLint 或者希望避免太多约束的开发者。\n     - 缺点：由于规则相对宽松，可能无法完全确保代码风格的一致性。\n     - 注意事项：如果你想要更严格的代码检查，可以考虑其他配置。\n\n  2. **ESLint + Airbnb config**:\n     - 优点：Airbnb 的配置非常严格，能够帮助你遵循最佳实践和编写高质量的代码。此外，它也包含了许多 ES6+ 的规则。\n     - 缺点：由于其严格性，初学者可能需要花费更多时间来解决 ESLint 报告的问题。\n     - 注意事项：在使用此配置时，请确保你理解并接受 Airbnb 的代码规范。\n\n  3. **ESLint + Standard config**:\n     - 优点：Standard 的配置旨在提供一个相对简单、一致的代码风格，适合那些喜欢“零配置”的开发者。\n     - 缺点：这个配置可能不适用于所有项目，因为它有自己的代码风格要求。\n     - 注意事项：如果你的团队或项目已经有自己的编码规范，使用 Standard 配置可能会导致不一致。\n\n  4. **ESLint + Prettier**:\n     - 优点：Prettier 是一个自动格式化工具，可以与 ESLint 结合使用，以确保代码风格的一致性。这可以提高代码可读性，并减少在代码审查过程中关注格式问题的时间。\n     - 缺点：Prettier 可能会覆盖某些 ESLint 规则，所以需要花一些时间确保配置正确。\n     - 注意事项：为了避免冲突，请确保 ESLint 和 Prettier 的规则正确配置。\n\n  总之，在选择 ESLint 配置时，需要根据你的团队、项目需求和个人偏好来权衡。选择适当的配置可以帮助你提高代码质量并保持一致的代码风格。\n</details>\n\n## 安装 tailwindcss\n\n打开项目，安装 `tailwindcss`：\n\n```bash\ncd vue2-tailwind\n# 安装 tailwindcss 低版本及相关插件\nnpm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9\n```\n\n然后创建配置文件：\n\n```bash\n# 创建 postcss.config.js, tailwind.config.js\nnpx tailwindcss init -p\n```\n\n```js {title=\"postcss.config.js\"}\nmodule.exports = {\n    plugins: {\n      tailwindcss: {},\n      autoprefixer: {},\n    }\n}\n```\n\n```js {title=\"tailwind.config.js\"}\nmodule.exports = {\n  purge: [\n    \"./src/App.vue\",\n    \"./src/views/**/*.{vue,js,ts,jsx,tsx}\",\n    \"./src/components/**/*.{vue,js,ts,jsx,tsx}\",\n  ],\n  darkMode: 'class', // or 'media' or 'class'\n  mode: 'jit', // 是否开启 jit 模式，开启以后编译会更快，当然，tailwindcss 版本需要在 2.1 以上\n  theme: {\n    extend: {},\n  },\n  variants: {\n    extend: {},\n  },\n  plugins: [],\n}\n```\n\n最后在 `main.js` 中引入 `tailwindcss`\n\n```js\nimport \"tailwindcss/tailwind.css\"\n```\n\n## 启动项目\n\n启动项目，修改模板中的 class 进行测试。\n\n```bash\nnpm run serve\n```\n\n```vue {title=\"src/App.vue\"}\n<template>\n  <div id=\"app\">\n    <div class=\"bg-gray-100\">\n      <div class=\"container mx-auto\">\n        <div class=\"flex justify-center items-center h-screen\">\n          <div class=\"text-4xl text-gray-700\">Hello Vue2 + tailwindcss</div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/v2-tailwind/  \n\n"
  },
  {
    "path": "posts/vim/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vim 速查表 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Vim 速查表 - 帮你提高 N 倍效率\n\"><meta name=keywords content='vim,他山之石'><meta itemprop=name content=\"Vim 速查表\"><meta itemprop=description content=\"Vim 速查表 - 帮你提高 N 倍效率\"><meta itemprop=datePublished content=\"2018-08-31T11:46:39+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1915\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"vim,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vim/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vim 速查表\"><meta property=\"og:description\" content=\"Vim 速查表 - 帮你提高 N 倍效率\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-31T11:46:39+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"vim\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vim 速查表\"><meta name=twitter:description content=\"Vim 速查表 - 帮你提高 N 倍效率\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vim/ title=\"Vim 速查表 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexo-wordcount/ title=\"hexo next 主题添加字数统计（2018）\"><link rel=next type=text/html href=https://lruihao.cn/posts/mood/ title=每一个优秀的人，都有一段沉默的时光><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vim/index.md title=\"Vim 速查表 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Vim 速查表\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vim\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"vim, 他山之石\",\"wordcount\":1915,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vim\\/\",\"datePublished\":\"2018-08-31T11:46:39+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vim/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vim 速查表</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://www.jianshu.com/p/6aa2e0e39f99 title=\"转载 -> https://www.jianshu.com/p/6aa2e0e39f99\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>Vim 速查表</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-31 11:46:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-31>2018-08-31</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1915 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Vim 速查表\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#进入-vim>进入 vim</a></li><li><a href=#vim-配置>vim 配置</a></li><li><a href=#移动光标>移动光标</a></li><li><a href=#屏幕滚动>屏幕滚动</a></li><li><a href=#插入文本类>插入文本类</a></li><li><a href=#删除命令>删除命令</a></li><li><a href=#复制粘贴>复制粘贴</a></li><li><a href=#撤销>撤销</a></li><li><a href=#搜索及替换>搜索及替换</a></li><li><a href=#书签>书签</a></li><li><a href=#visual-模式>visual 模式</a></li><li><a href=#行方式命令>行方式命令</a></li><li><a href=#宏>宏</a></li><li><a href=#窗口操作>窗口操作</a></li><li><a href=#文件及其他>文件及其他</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>Vim 速查表 - 帮你提高 N 倍效率</p><h2 class=heading-element id=进入-vim><span>1 进入 vim</span>\n<a href=#%e8%bf%9b%e5%85%a5-vim class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>vim filename</td><td style=text-align:left>打开或新建文件，并将光标置于第一行首</td></tr><tr><td style=text-align:left>vim +n filename</td><td style=text-align:left>打开文件，并将光标置于第 n 行首</td></tr><tr><td style=text-align:left>vim + filename</td><td style=text-align:left>打开文件，并将光标置于最后一行首</td></tr><tr><td style=text-align:left>vim +/pattern filename</td><td style=text-align:left>打开文件，并将光标置于第一个与 pattern 匹配的串处</td></tr><tr><td style=text-align:left>vim -r filename</td><td style=text-align:left>在上次正用 vim 编辑时发生系统崩溃，恢复 filename</td></tr><tr><td style=text-align:left>vim filename….filename</td><td style=text-align:left>打开多个文件，依次编辑</td></tr></tbody></table></div><h2 class=heading-element id=vim-配置><span>2 vim 配置</span>\n<a href=#vim-%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>all</td><td style=text-align:left>列出所有选项设置情况</td></tr><tr><td style=text-align:left>term</td><td style=text-align:left>设置终端类型</td></tr><tr><td style=text-align:left>ignorance</td><td style=text-align:left>在搜索中忽略大小写</td></tr><tr><td style=text-align:left>list</td><td style=text-align:left>显示制表位 (Ctrl+I) 和行尾标志（$)</td></tr><tr><td style=text-align:left>number</td><td style=text-align:left>显示行号</td></tr><tr><td style=text-align:left>report</td><td style=text-align:left>显示由面向行的命令修改过的数目</td></tr><tr><td style=text-align:left>terse</td><td style=text-align:left>显示简短的警告信息</td></tr><tr><td style=text-align:left>warn</td><td style=text-align:left>在转到别的文件时若没保存当前文件则显示 NO write 信息</td></tr><tr><td style=text-align:left>nomagic</td><td style=text-align:left>允许在搜索模式中，使用前面不带“\\”的特殊字符</td></tr><tr><td style=text-align:left>nowrapscan</td><td style=text-align:left>禁止 vi 在搜索到达文件两端时，又从另一端开始</td></tr><tr><td style=text-align:left>mesg</td><td style=text-align:left>允许 vi 显示其他用户用 write 写到自己终端上的信息</td></tr><tr><td style=text-align:left>:set number / set nonumber</td><td style=text-align:left>显示/不显示行号</td></tr><tr><td style=text-align:left>:set ruler /set noruler</td><td style=text-align:left>显示/不显示标尺</td></tr><tr><td style=text-align:left>:set hlsearch</td><td style=text-align:left>高亮显示查找到的单词</td></tr><tr><td style=text-align:left>:set nohlsearch</td><td style=text-align:left>关闭高亮显示</td></tr><tr><td style=text-align:left>:syntax on</td><td style=text-align:left>语法高亮</td></tr><tr><td style=text-align:left>:set nu</td><td style=text-align:left>显示行号</td></tr><tr><td style=text-align:left>:set tabstop=8</td><td style=text-align:left>设置 tab 大小，8 为最常用最普遍的设置</td></tr><tr><td style=text-align:left>:set softtabstop=8</td><td style=text-align:left>4:4 个空格，8: 正常的制表符，12: 一个制表符 4 个空格，16: 两个制表符</td></tr><tr><td style=text-align:left>:set autoindent</td><td style=text-align:left>自动缩进</td></tr><tr><td style=text-align:left>:set cindent</td><td style=text-align:left>C 语言格式里面的自动缩进</td></tr></tbody></table></div><h2 class=heading-element id=移动光标><span>3 移动光标</span>\n<a href=#%e7%a7%bb%e5%8a%a8%e5%85%89%e6%a0%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>k nk</td><td style=text-align:left>上 向上移动 n 行</td></tr><tr><td style=text-align:left>j nj</td><td style=text-align:left>下 向下移动 n 行</td></tr><tr><td style=text-align:left>h nh</td><td style=text-align:left>左 向左移动 n 行</td></tr><tr><td style=text-align:left>l nl</td><td style=text-align:left>右 向右移动 n 行</td></tr><tr><td style=text-align:left>Space</td><td style=text-align:left>光标右移一个字符</td></tr><tr><td style=text-align:left>Backspace</td><td style=text-align:left>光标左移一个字符</td></tr><tr><td style=text-align:left>Enter</td><td style=text-align:left>光标下移一行</td></tr><tr><td style=text-align:left>w/W</td><td style=text-align:left>光标右移一个字至字首</td></tr><tr><td style=text-align:left>b/B</td><td style=text-align:left>光标左移一个字至字首</td></tr><tr><td style=text-align:left>e 或 E</td><td style=text-align:left>光标右移一个字至字尾</td></tr><tr><td style=text-align:left>)</td><td style=text-align:left>光标移至句尾</td></tr><tr><td style=text-align:left>(</td><td style=text-align:left>光标移至句首</td></tr><tr><td style=text-align:left>}</td><td style=text-align:left>光标移至段落开头</td></tr><tr><td style=text-align:left>{</td><td style=text-align:left>光标移至段落结尾</td></tr><tr><td style=text-align:left>n$</td><td style=text-align:left>光标移至第 n 行尾</td></tr><tr><td style=text-align:left>H</td><td style=text-align:left>光标移至屏幕顶行</td></tr><tr><td style=text-align:left>M</td><td style=text-align:left>光标移至屏幕中间行</td></tr><tr><td style=text-align:left>L</td><td style=text-align:left>光标移至屏幕最后行</td></tr><tr><td style=text-align:left>0</td><td style=text-align:left>（注意是数字零）光标移至当前行首</td></tr><tr><td style=text-align:left>^</td><td style=text-align:left>移动光标到行首第一个非空字符上去</td></tr><tr><td style=text-align:left>$</td><td style=text-align:left>光标移至当前行尾</td></tr><tr><td style=text-align:left>gg</td><td style=text-align:left>移到第一行</td></tr><tr><td style=text-align:left>G</td><td style=text-align:left>移到最后一行</td></tr><tr><td style=text-align:left>f</td><td style=text-align:left>移动光标到当前行的字符 a 上</td></tr><tr><td style=text-align:left>F</td><td style=text-align:left>相反</td></tr><tr><td style=text-align:left>%</td><td style=text-align:left>移动到与制匹配的括号上去（），{}，[]，&lt;>等</td></tr><tr><td style=text-align:left>nG</td><td style=text-align:left>移动到第 n 行上</td></tr><tr><td style=text-align:left>G</td><td style=text-align:left>到最后一行</td></tr></tbody></table></div><h2 class=heading-element id=屏幕滚动><span>4 屏幕滚动</span>\n<a href=#%e5%b1%8f%e5%b9%95%e6%bb%9a%e5%8a%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>Ctrl+u</td><td style=text-align:left>向文件首翻半屏</td></tr><tr><td style=text-align:left>Ctrl+d</td><td style=text-align:left>向文件尾翻半屏</td></tr><tr><td style=text-align:left>Ctrl+f</td><td style=text-align:left>向文件尾翻一屏</td></tr><tr><td style=text-align:left>Ctrl ＋ b</td><td style=text-align:left>向文件首翻一屏</td></tr><tr><td style=text-align:left>nz</td><td style=text-align:left>将第 n 行滚至屏幕顶部，不指定 n 时将当前行滚至屏幕顶部</td></tr></tbody></table></div><h2 class=heading-element id=插入文本类><span>5 插入文本类</span>\n<a href=#%e6%8f%92%e5%85%a5%e6%96%87%e6%9c%ac%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>i</td><td style=text-align:left>在光标前</td></tr><tr><td style=text-align:left>I</td><td style=text-align:left>在当前行首</td></tr><tr><td style=text-align:left>a</td><td style=text-align:left>光标后</td></tr><tr><td style=text-align:left>A</td><td style=text-align:left>在当前行尾</td></tr><tr><td style=text-align:left>o</td><td style=text-align:left>在当前行之下新开一行</td></tr><tr><td style=text-align:left>O</td><td style=text-align:left>在当前行之上新开一行</td></tr><tr><td style=text-align:left>r</td><td style=text-align:left>替换当前字符</td></tr><tr><td style=text-align:left>R</td><td style=text-align:left>替换当前字符及其后的字符，直至按 ESC 键</td></tr><tr><td style=text-align:left>s</td><td style=text-align:left>从当前光标位置处开始，以输入的文本替代指定数目的字符</td></tr><tr><td style=text-align:left>S</td><td style=text-align:left>删除指定数目的行，并以所输入文本代替之</td></tr><tr><td style=text-align:left>ncw/nCW</td><td style=text-align:left>修改指定数目的字</td></tr><tr><td style=text-align:left>nCC</td><td style=text-align:left>修改指定数目的行</td></tr></tbody></table></div><h2 class=heading-element id=删除命令><span>6 删除命令</span>\n<a href=#%e5%88%a0%e9%99%a4%e5%91%bd%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>x/X</td><td style=text-align:left>删除一个字符，x 删除光标后的，而 X 删除光标前的</td></tr><tr><td style=text-align:left>dw</td><td style=text-align:left>删除一个单词（删除光标位置到下一个单词开始的位置）</td></tr><tr><td style=text-align:left>dnw</td><td style=text-align:left>删除 n 个单词</td></tr><tr><td style=text-align:left>dne</td><td style=text-align:left>也可，只是删除到单词尾</td></tr><tr><td style=text-align:left>do</td><td style=text-align:left>删至行首</td></tr><tr><td style=text-align:left>d$</td><td style=text-align:left>删至行尾</td></tr><tr><td style=text-align:left>dd</td><td style=text-align:left>删除一行</td></tr><tr><td style=text-align:left>ndd</td><td style=text-align:left>删除当前行及其后 n-1 行</td></tr><tr><td style=text-align:left>dnl</td><td style=text-align:left>向右删除 n 个字母</td></tr><tr><td style=text-align:left>dnh</td><td style=text-align:left>向左删除 n 个字母</td></tr><tr><td style=text-align:left>dnj</td><td style=text-align:left>向下删除 n 行，当前行 + 其上 n 行</td></tr><tr><td style=text-align:left>dnk</td><td style=text-align:left>向上删除 n 行，当期行 + 其下 n 行</td></tr><tr><td style=text-align:left>cnw[word]</td><td style=text-align:left>将 n 个 word 改变为 word</td></tr><tr><td style=text-align:left>C$</td><td style=text-align:left>改变到行尾</td></tr><tr><td style=text-align:left>cc</td><td style=text-align:left>改变整行</td></tr><tr><td style=text-align:left>shift+j</td><td style=text-align:left>删除行尾的换行符，下一行接上来了</td></tr></tbody></table></div><h2 class=heading-element id=复制粘贴><span>7 复制粘贴</span>\n<a href=#%e5%a4%8d%e5%88%b6%e7%b2%98%e8%b4%b4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>p</td><td style=text-align:left>粘贴用 x 或 d 删除的文本</td></tr><tr><td style=text-align:left>ynw</td><td style=text-align:left>复制 n 个单词</td></tr><tr><td style=text-align:left>yy</td><td style=text-align:left>复制一行</td></tr><tr><td style=text-align:left>ynl</td><td style=text-align:left>复制 n 个字符</td></tr><tr><td style=text-align:left>y$</td><td style=text-align:left>复制当前光标至行尾处</td></tr><tr><td style=text-align:left>nyy</td><td style=text-align:left>拷贝 n 行</td></tr></tbody></table></div><h2 class=heading-element id=撤销><span>8 撤销</span>\n<a href=#%e6%92%a4%e9%94%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>u</td><td style=text-align:left>撤销前一次的操作</td></tr><tr><td style=text-align:left>shif+u(U)</td><td style=text-align:left>撤销对该行的所有操作</td></tr></tbody></table></div><h2 class=heading-element id=搜索及替换><span>9 搜索及替换</span>\n<a href=#%e6%90%9c%e7%b4%a2%e5%8f%8a%e6%9b%bf%e6%8d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>/pattern</td><td style=text-align:left>从光标开始处向文件尾搜索 pattern</td></tr><tr><td style=text-align:left>?pattern</td><td style=text-align:left>从光标开始处向文件首搜索 pattern</td></tr><tr><td style=text-align:left>n</td><td style=text-align:left>在同一方向重复上一次搜索命令</td></tr><tr><td style=text-align:left>N</td><td style=text-align:left>在反方向上重复上一次搜索命令</td></tr><tr><td style=text-align:left>cw newword</td><td style=text-align:left>替换为 newword</td></tr><tr><td style=text-align:left>n</td><td style=text-align:left>继续查找</td></tr><tr><td style=text-align:left>.</td><td style=text-align:left>执行替换</td></tr><tr><td style=text-align:left>:s/p1/p2/g</td><td style=text-align:left>将当前行中所有 p1 均用 p2 替代，g 表示执行 用 c 表示需要确认</td></tr><tr><td style=text-align:left>:n1,n2 s/p1/p2/g</td><td style=text-align:left>将第 n1 至 n2 行中所有 p1 均用 p2 替代</td></tr><tr><td style=text-align:left>:g/p1/s//p2/g</td><td style=text-align:left>将文件中所有 p1 均用 p2 替换</td></tr><tr><td style=text-align:left>:1,$ s/string1/string2/g</td><td style=text-align:left>在全文中将 string1 替换为 string2</td></tr></tbody></table></div><h2 class=heading-element id=书签><span>10 书签</span>\n<a href=#%e4%b9%a6%e7%ad%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>m[a-z]</td><td style=text-align:left>在文中做标记，标记号可为 a-z 的 26 个字母</td></tr><tr><td style=text-align:left>`a</td><td style=text-align:left>移动到标记 a 处</td></tr></tbody></table></div><h2 class=heading-element id=visual-模式><span>11 visual 模式</span>\n<a href=#visual-%e6%a8%a1%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>v</td><td style=text-align:left>进入 visual 模式</td></tr><tr><td style=text-align:left>V</td><td style=text-align:left>进入行的 visual 模式</td></tr><tr><td style=text-align:left>ctrl+v</td><td style=text-align:left>进如块操作模式用 o 和 O 改变选择的边的大小</td></tr><tr><td style=text-align:left>在所有行插入相同的内容如 include&lt;</td><td style=text-align:left>将光标移到开始插入的位置，按 CTRL+V 进入 VISUAL 模式，选择好模块后按 I（shift+i)，后插入要插入的文本，按 [ESC] 完成</td></tr></tbody></table></div><h2 class=heading-element id=行方式命令><span>12 行方式命令</span>\n<a href=#%e8%a1%8c%e6%96%b9%e5%bc%8f%e5%91%bd%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>:n1,n2 co n3</td><td style=text-align:left>将 n1 行到 n2 行之间的内容拷贝到第 n3 行下</td></tr><tr><td style=text-align:left>:n1,n2 m n3</td><td style=text-align:left>将 n1 行到 n2 行之间的内容移至到第 n3 行下</td></tr><tr><td style=text-align:left>:n1,n2 d</td><td style=text-align:left>将 n1 行到 n2 行之间的内容删除</td></tr><tr><td style=text-align:left>:n1,n2 w!command</td><td style=text-align:left>将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之</td></tr><tr><td style=text-align:left>若不指定 n1，n2，则表示将整个文件内容作为 command 的输入</td><td style=text-align:left></td></tr></tbody></table></div><h2 class=heading-element id=宏><span>13 宏</span>\n<a href=#%e5%ae%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>q[a-z]</td><td style=text-align:left>开始记录但前开始的操作为宏，名称可为【a-z】，然后用 q 终止录制宏</td></tr><tr><td style=text-align:left>reg</td><td style=text-align:left>显示当前定义的所有的宏，用@[a-z] 来在当前光标处执行宏 [a-z]</td></tr></tbody></table></div><h2 class=heading-element id=窗口操作><span>14 窗口操作</span>\n<a href=#%e7%aa%97%e5%8f%a3%e6%93%8d%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>:split</td><td style=text-align:left>分割一个窗口</td></tr><tr><td style=text-align:left>:split file.c</td><td style=text-align:left>为另一个文件 file.c 分隔窗口</td></tr><tr><td style=text-align:left>:nsplit file.c</td><td style=text-align:left>为另一个文件 file.c 分隔窗口，并指定其行数</td></tr><tr><td style=text-align:left>ctrl ＋ w</td><td style=text-align:left>在窗口中切换</td></tr><tr><td style=text-align:left>:close</td><td style=text-align:left>关闭当前窗口</td></tr></tbody></table></div><h2 class=heading-element id=文件及其他><span>15 文件及其他</span>\n<a href=#%e6%96%87%e4%bb%b6%e5%8f%8a%e5%85%b6%e4%bb%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>命令</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left>:q</td><td style=text-align:left>退出 vi</td></tr><tr><td style=text-align:left>:q!</td><td style=text-align:left>不保存文件并退出 vi</td></tr><tr><td style=text-align:left>:e filename</td><td style=text-align:left>打开文件 filename 进行编辑</td></tr><tr><td style=text-align:left>:e!</td><td style=text-align:left>放弃修改文件内容，重新载入该文件编辑</td></tr><tr><td style=text-align:left>:w</td><td style=text-align:left>保存当前文件</td></tr><tr><td style=text-align:left>:wq</td><td style=text-align:left>存盘退出</td></tr><tr><td style=text-align:left>:ZZ</td><td style=text-align:left>保存当前文档并退出 VIM</td></tr><tr><td style=text-align:left>:!command</td><td style=text-align:left>执行 shell 命令 command</td></tr><tr><td style=text-align:left>:r!command</td><td style=text-align:left>将命令 command 的输出结果放到当前行</td></tr><tr><td style=text-align:left>:n1,n2 write temp.c</td><td style=text-align:left></td></tr><tr><td style=text-align:left>:read file.c</td><td style=text-align:left>将文件 file.c 的内容插入到当前光标所在的下面</td></tr></tbody></table></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vim/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/vim.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/vim.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Vim+%E9%80%9F%E6%9F%A5%E8%A1%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cVim+%E9%80%9F%E6%9F%A5%E8%A1%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/vim/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/vim.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vim/ data-title=\"Vim 速查表\" data-hashtags=vim,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vim/ data-hashtag=vim><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vim/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vim/ data-title=\"Vim 速查表\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vim/ data-title=\"Vim 速查表\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vim/ class=post-tag title=\"标签 - vim\">vim</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexo-wordcount/ class=post-nav-item rel=prev title=\"Hexo Next 主题添加字数统计（2018）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo Next 主题添加字数统计（2018）</a><a href=/posts/mood/ class=post-nav-item rel=next title=每一个优秀的人，都有一段沉默的时光>每一个优秀的人，都有一段沉默的时光<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#进入-vim>进入 vim</a></li><li><a href=#vim-配置>vim 配置</a></li><li><a href=#移动光标>移动光标</a></li><li><a href=#屏幕滚动>屏幕滚动</a></li><li><a href=#插入文本类>插入文本类</a></li><li><a href=#删除命令>删除命令</a></li><li><a href=#复制粘贴>复制粘贴</a></li><li><a href=#撤销>撤销</a></li><li><a href=#搜索及替换>搜索及替换</a></li><li><a href=#书签>书签</a></li><li><a href=#visual-模式>visual 模式</a></li><li><a href=#行方式命令>行方式命令</a></li><li><a href=#宏>宏</a></li><li><a href=#窗口操作>窗口操作</a></li><li><a href=#文件及其他>文件及其他</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/32933748836d9ddad6b8a9179d32bab3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/32933748836d9ddad6b8a9179d32bab3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vim/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vim/index.md",
    "content": "# Vim 速查表\n\n\nVim 速查表 - 帮你提高 N 倍效率\n\n<!--more-->\n\n## 进入 vim\n\n| 命令                   | 描述                                              |\n| :--------------------- | :------------------------------------------------ |\n| vim filename           | 打开或新建文件，并将光标置于第一行首              |\n| vim +n filename        | 打开文件，并将光标置于第 n 行首                   |\n| vim + filename         | 打开文件，并将光标置于最后一行首                  |\n| vim +/pattern filename | 打开文件，并将光标置于第一个与 pattern 匹配的串处 |\n| vim -r filename        | 在上次正用 vim 编辑时发生系统崩溃，恢复 filename  |\n| vim filename….filename | 打开多个文件，依次编辑                            |\n\n## vim 配置\n\n| 命令                       | 描述                                                                 |\n| :------------------------- | :------------------------------------------------------------------- |\n| all                        | 列出所有选项设置情况                                                 |\n| term                       | 设置终端类型                                                         |\n| ignorance                  | 在搜索中忽略大小写                                                   |\n| list                       | 显示制表位 (Ctrl+I) 和行尾标志（$)                                   |\n| number                     | 显示行号                                                             |\n| report                     | 显示由面向行的命令修改过的数目                                       |\n| terse                      | 显示简短的警告信息                                                   |\n| warn                       | 在转到别的文件时若没保存当前文件则显示 NO write 信息                 |\n| nomagic                    | 允许在搜索模式中，使用前面不带“\\”的特殊字符                          |\n| nowrapscan                 | 禁止 vi 在搜索到达文件两端时，又从另一端开始                         |\n| mesg                       | 允许 vi 显示其他用户用 write 写到自己终端上的信息                    |\n| :set number / set nonumber | 显示/不显示行号                                                      |\n| :set ruler /set noruler    | 显示/不显示标尺                                                      |\n| :set hlsearch              | 高亮显示查找到的单词                                                 |\n| :set nohlsearch            | 关闭高亮显示                                                         |\n| :syntax on                 | 语法高亮                                                             |\n| :set nu                    | 显示行号                                                             |\n| :set tabstop=8             | 设置 tab 大小，8 为最常用最普遍的设置                                |\n| :set softtabstop=8         | 4:4 个空格，8: 正常的制表符，12: 一个制表符 4 个空格，16: 两个制表符 |\n| :set autoindent            | 自动缩进                                                             |\n| :set cindent               | C 语言格式里面的自动缩进                                             |\n\n## 移动光标\n\n| 命令      | 描述                                       |\n| :-------- | :----------------------------------------- |\n| k nk      | 上 向上移动 n 行                           |\n| j nj      | 下 向下移动 n 行                           |\n| h nh      | 左 向左移动 n 行                           |\n| l nl      | 右 向右移动 n 行                           |\n| Space     | 光标右移一个字符                           |\n| Backspace | 光标左移一个字符                           |\n| Enter     | 光标下移一行                               |\n| w/W       | 光标右移一个字至字首                       |\n| b/B       | 光标左移一个字至字首                       |\n| e 或 E    | 光标右移一个字至字尾                       |\n| )         | 光标移至句尾                               |\n| (         | 光标移至句首                               |\n| }         | 光标移至段落开头                           |\n| {         | 光标移至段落结尾                           |\n| n$        | 光标移至第 n 行尾                          |\n| H         | 光标移至屏幕顶行                           |\n| M         | 光标移至屏幕中间行                         |\n| L         | 光标移至屏幕最后行                         |\n| 0         | （注意是数字零）光标移至当前行首           |\n| ^         | 移动光标到行首第一个非空字符上去           |\n| $         | 光标移至当前行尾                           |\n| gg        | 移到第一行                                 |\n| G         | 移到最后一行                               |\n| f         | 移动光标到当前行的字符 a 上                |\n| F         | 相反                                       |\n| %         | 移动到与制匹配的括号上去（），{}，[]，<>等 |\n| nG        | 移动到第 n 行上                            |\n| G         | 到最后一行                                 |\n\n## 屏幕滚动\n\n| 命令      | 描述                                                   |\n| :-------- | :----------------------------------------------------- |\n| Ctrl+u    | 向文件首翻半屏                                         |\n| Ctrl+d    | 向文件尾翻半屏                                         |\n| Ctrl+f    | 向文件尾翻一屏                                         |\n| Ctrl ＋ b | 向文件首翻一屏                                         |\n| nz        | 将第 n 行滚至屏幕顶部，不指定 n 时将当前行滚至屏幕顶部 |\n\n## 插入文本类\n\n| 命令    | 描述                                                 |\n| :------ | :--------------------------------------------------- |\n| i       | 在光标前                                             |\n| I       | 在当前行首                                           |\n| a       | 光标后                                               |\n| A       | 在当前行尾                                           |\n| o       | 在当前行之下新开一行                                 |\n| O       | 在当前行之上新开一行                                 |\n| r       | 替换当前字符                                         |\n| R       | 替换当前字符及其后的字符，直至按 ESC 键              |\n| s       | 从当前光标位置处开始，以输入的文本替代指定数目的字符 |\n| S       | 删除指定数目的行，并以所输入文本代替之               |\n| ncw/nCW | 修改指定数目的字                                     |\n| nCC     | 修改指定数目的行                                     |\n\n## 删除命令\n\n| 命令      | 描述                                               |\n| :-------- | :------------------------------------------------- |\n| x/X       | 删除一个字符，x 删除光标后的，而 X 删除光标前的    |\n| dw        | 删除一个单词（删除光标位置到下一个单词开始的位置） |\n| dnw       | 删除 n 个单词                                      |\n| dne       | 也可，只是删除到单词尾                             |\n| do        | 删至行首                                           |\n| d$        | 删至行尾                                           |\n| dd        | 删除一行                                           |\n| ndd       | 删除当前行及其后 n-1 行                            |\n| dnl       | 向右删除 n 个字母                                  |\n| dnh       | 向左删除 n 个字母                                  |\n| dnj       | 向下删除 n 行，当前行 + 其上 n 行                    |\n| dnk       | 向上删除 n 行，当期行 + 其下 n 行                    |\n| cnw[word] | 将 n 个 word 改变为 word                           |\n| C$        | 改变到行尾                                         |\n| cc        | 改变整行                                           |\n| shift+j   | 删除行尾的换行符，下一行接上来了                   |\n\n## 复制粘贴\n\n| 命令 | 描述                     |\n| :--- | :----------------------- |\n| p    | 粘贴用 x 或 d 删除的文本 |\n| ynw  | 复制 n 个单词            |\n| yy   | 复制一行                 |\n| ynl  | 复制 n 个字符            |\n| y$   | 复制当前光标至行尾处     |\n| nyy  | 拷贝 n 行                |\n\n## 撤销\n\n| 命令      | 描述                 |\n| :-------- | :------------------- |\n| u         | 撤销前一次的操作     |\n| shif+u(U) | 撤销对该行的所有操作 |\n\n## 搜索及替换\n\n| 命令                     | 描述                                                         |\n| :----------------------- | :----------------------------------------------------------- |\n| /pattern                 | 从光标开始处向文件尾搜索 pattern                             |\n| ?pattern                 | 从光标开始处向文件首搜索 pattern                             |\n| n                        | 在同一方向重复上一次搜索命令                                 |\n| N                        | 在反方向上重复上一次搜索命令                                 |\n| cw newword               | 替换为 newword                                               |\n| n                        | 继续查找                                                     |\n| .                        | 执行替换                                                     |\n| :s/p1/p2/g               | 将当前行中所有 p1 均用 p2 替代，g 表示执行 用 c 表示需要确认 |\n| :n1,n2 s/p1/p2/g         | 将第 n1 至 n2 行中所有 p1 均用 p2 替代                       |\n| :g/p1/s//p2/g            | 将文件中所有 p1 均用 p2 替换                                 |\n| :1,$ s/string1/string2/g | 在全文中将 string1 替换为 string2                            |\n\n## 书签\n\n| 命令   | 描述                                      |\n| :----- | :---------------------------------------- |\n| m[a-z] | 在文中做标记，标记号可为 a-z 的 26 个字母 |\n| `a     | 移动到标记 a 处                           |\n\n## visual 模式\n\n| 命令                              | 描述                                                                                                                |\n| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------ |\n| v                                 | 进入 visual 模式                                                                                                    |\n| V                                 | 进入行的 visual 模式                                                                                                |\n| ctrl+v                            | 进如块操作模式用 o 和 O 改变选择的边的大小                                                                          |\n| 在所有行插入相同的内容如 include< | 将光标移到开始插入的位置，按 CTRL+V 进入 VISUAL 模式，选择好模块后按 I（shift+i)，后插入要插入的文本，按 [ESC] 完成 |\n\n## 行方式命令\n\n| 命令                                                     | 描述                                                    |\n| :------------------------------------------------------- | :------------------------------------------------------ |\n| :n1,n2 co n3                                             | 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下              |\n| :n1,n2 m n3                                              | 将 n1 行到 n2 行之间的内容移至到第 n3 行下              |\n| :n1,n2 d                                                 | 将 n1 行到 n2 行之间的内容删除                          |\n| :n1,n2 w!command                                         | 将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之 |\n| 若不指定 n1，n2，则表示将整个文件内容作为 command 的输入 |                                                         |\n\n## 宏\n\n| 命令   | 描述                                                             |\n| :----- | :--------------------------------------------------------------- |\n| q[a-z] | 开始记录但前开始的操作为宏，名称可为【a-z】，然后用 q 终止录制宏 |\n| reg    | 显示当前定义的所有的宏，用@[a-z] 来在当前光标处执行宏 [a-z]      |\n\n## 窗口操作\n\n| 命令           | 描述                                       |\n| :------------- | :----------------------------------------- |\n| :split         | 分割一个窗口                               |\n| :split file.c  | 为另一个文件 file.c 分隔窗口               |\n| :nsplit file.c | 为另一个文件 file.c 分隔窗口，并指定其行数 |\n| ctrl ＋ w      | 在窗口中切换                               |\n| :close         | 关闭当前窗口                               |\n\n## 文件及其他\n\n| 命令                | 描述                                         |\n| :------------------ | :------------------------------------------- |\n| :q                  | 退出 vi                                      |\n| :q!                 | 不保存文件并退出 vi                          |\n| :e filename         | 打开文件 filename 进行编辑                   |\n| :e!                 | 放弃修改文件内容，重新载入该文件编辑         |\n| :w                  | 保存当前文件                                 |\n| :wq                 | 存盘退出                                     |\n| :ZZ                 | 保存当前文档并退出 VIM                       |\n| :!command           | 执行 shell 命令 command                      |\n| :r!command          | 将命令 command 的输出结果放到当前行          |\n| :n1,n2 write temp.c |                                              |\n| :read file.c        | 将文件 file.c 的内容插入到当前光标所在的下面 |\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vim/  \n> 转载 URL: https://www.jianshu.com/p/6aa2e0e39f99\n"
  },
  {
    "path": "posts/vscode-snippets/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>VSCode 添加用户代码片段，自定义用户代码片段 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\n\"><meta name=keywords content='Shortcodes'><meta itemprop=name content=\"VSCode 添加用户代码片段，自定义用户代码片段\"><meta itemprop=description content=\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\"><meta itemprop=datePublished content=\"2023-09-14T11:21:56+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"180\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Shortcodes\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vscode-snippets/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"VSCode 添加用户代码片段，自定义用户代码片段\"><meta property=\"og:description\" content=\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-14T11:21:56+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"VSCode 添加用户代码片段，自定义用户代码片段\"><meta name=twitter:description content=\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vscode-snippets/ title=\"VSCode 添加用户代码片段，自定义用户代码片段 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/grid-bg-image/ title=\"CSS 如何实现网格背景效果？\"><link rel=next type=text/html href=https://lruihao.cn/posts/vue-svg-icon/ title=\"在 Vue 项目中更优雅地使用 icon\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vscode-snippets/index.md title=\"VSCode 添加用户代码片段，自定义用户代码片段 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vscode-snippets\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Shortcodes\",\"wordcount\":180,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vscode-snippets\\/\",\"datePublished\":\"2023-09-14T11:21:56+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vscode-snippets/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>VSCode 添加用户代码片段，自定义用户代码片段</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>VSCode 添加用户代码片段，自定义用户代码片段</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-14 11:21:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-14>2023-09-14</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"180 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"VSCode 添加用户代码片段，自定义用户代码片段\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#新建代码片段>新建代码片段</a></li><li><a href=#代码片段格式>代码片段格式</a></li><li><a href=#常用代码片段>常用代码片段</a><ol><li><a href=#javascript>JavaScript</a></li><li><a href=#markdown>Markdown</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。</p><h2 class=heading-element id=新建代码片段><span>1 新建代码片段</span>\n<a href=#%e6%96%b0%e5%bb%ba%e4%bb%a3%e7%a0%81%e7%89%87%e6%ae%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 VScode 主界面->点击左下角设置图标->点击用户代码片段，可以建立全局代码片段，也可以建立单个项目的代码片段，也可以设置语言类型的代码片段。</p><p><a class=lightgallery target=_blank href=/posts/vscode-snippets/images/23_1694658794.png title=create-snippets data-thumbnail=/posts/vscode-snippets/images/23_1694658794.png data-sub-html=\"<h2>create-snippets</h2>\"><img loading=lazy src=/posts/vscode-snippets/images/23_1694658794.png alt=create-snippets height=424 width=1642></a></p><h2 class=heading-element id=代码片段格式><span>2 代码片段格式</span>\n<a href=#%e4%bb%a3%e7%a0%81%e7%89%87%e6%ae%b5%e6%a0%bc%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>代码片段格式如下：</p><json-viewer value='\"{\\n  // Example:\\n  // 在这里放置你的 JavaScript 代码片段。每个代码片段都有一个名称、前缀、代码块和描述。前缀用于触发代码片段，代码块将被展开并插入。可能使用的变量有：\\n  // $1、$2 表示标签停止点，$0 表示最终光标位置，${1:label}、${2:another} 表示占位符。具有相同 id 的占位符是相互关联的。\\n  // 示例：\\n  // \\\"Print to console\\\": {\\n  //  \\\"prefix\\\": \\\"log\\\",\\n  //  \\\"body\\\": [\\n  //   \\\"console.log(&#39;$1&#39;);\\\",\\n  //   \\\"$2\\\"\\n  //  ],\\n  //  \\\"description\\\": \\\"Log output to console\\\"\\n  // }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>可以使用工具 <a href=https://snippet-generator.app/ target=_blank rel=\"external nofollow noopener noreferrer\">snippet-generator<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 生成代码片段。</p><h2 class=heading-element id=常用代码片段><span>3 常用代码片段</span>\n<a href=#%e5%b8%b8%e7%94%a8%e4%bb%a3%e7%a0%81%e7%89%87%e6%ae%b5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=javascript><span>3.1 JavaScript</span>\n<a href=#javascript class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><json-viewer value='\"{\\n  \\\"Print to console\\\": {\\n    \\\"prefix\\\": \\\"cl\\\",\\n    \\\"body\\\": [\\n      \\\"console.log(&#39;$1&#39;);\\\",\\n    ],\\n    \\\"description\\\": \\\"Log output to console\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><h3 class=heading-element id=markdown><span>3.2 Markdown</span>\n<a href=#markdown class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><json-viewer value='\"{\\n  \\\"Font Matter\\\": {\\n    \\\"prefix\\\": \\\"fm\\\",\\n    \\\"body\\\": [\\n      \\\"---\\\",\\n      \\\"title: $1\\\",\\n      \\\"date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE$T$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND+08:00\\\",\\n      \\\"draft: true\\\",\\n      \\\"categories: $2\\\",\\n      \\\"tags: $3\\\",\\n      \\\"description: $4\\\",\\n      \\\"keywords: $5\\\",\\n      \\\"---\\\"\\n    ],\\n    \\\"description\\\": \\\"Font Matter\\\"\\n  },\\n  \\\"Markdown Table\\\": {\\n    \\\"prefix\\\": \\\"table\\\",\\n    \\\"body\\\": [\\n      \\\"| $1 | $2 |\\\",\\n      \\\"| --- | --- |\\\",\\n      \\\"| $3 | $4 |\\\"\\n    ],\\n    \\\"description\\\": \\\"Markdown Table\\\"\\n  },\\n  \\\"FixIt Shortcode TypeIt\\\": {\\n    \\\"prefix\\\": \\\"typeit\\\",\\n    \\\"body\\\": [\\n      \\\"{{\\u003c typeit \\u003e}}\\\",\\n      \\\"$1\\\",\\n      \\\"{{\\u003c /typeit \\u003e}}\\\"\\n    ],\\n    \\\"description\\\": \\\"FixIt Shortcode TypeIt\\\"\\n  },\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vscode-snippets/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/vscode-snippets/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/vscode-snippets/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20VSCode+%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%EF%BC%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E7%94%A8%E6%88%B7%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cVSCode+%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%EF%BC%8C%E8%87%AA%E5%AE%9A%E4%B9%89%E7%94%A8%E6%88%B7%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%7c%0A%7cURL%7chttps://lruihao.cn/posts/vscode-snippets/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/vscode-snippets/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vscode-snippets/ data-title=\"VSCode 添加用户代码片段，自定义用户代码片段\" data-hashtags=Shortcodes><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vscode-snippets/ data-hashtag=Shortcodes><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vscode-snippets/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vscode-snippets/ data-title=\"VSCode 添加用户代码片段，自定义用户代码片段\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vscode-snippets/ data-title=\"VSCode 添加用户代码片段，自定义用户代码片段\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/grid-bg-image/ class=post-nav-item rel=prev title=\"CSS 如何实现网格背景效果？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>CSS 如何实现网格背景效果？</a><a href=/posts/vue-svg-icon/ class=post-nav-item rel=next title=\"在 Vue 项目中更优雅地使用 Icon\">在 Vue 项目中更优雅地使用 Icon<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#新建代码片段>新建代码片段</a></li><li><a href=#代码片段格式>代码片段格式</a></li><li><a href=#常用代码片段>常用代码片段</a><ol><li><a href=#javascript>JavaScript</a></li><li><a href=#markdown>Markdown</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/90008290651fdeddf133bee26cc2e3e1.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/90008290651fdeddf133bee26cc2e3e1.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vscode-snippets/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vscode-snippets/index.md",
    "content": "# VSCode 添加用户代码片段，自定义用户代码片段\n\n\n在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\n\n<!--more-->\n\n## 新建代码片段\n\n在 VScode 主界面->点击左下角设置图标->点击用户代码片段，可以建立全局代码片段，也可以建立单个项目的代码片段，也可以设置语言类型的代码片段。\n\n![create-snippets](images/23_1694658794.png)\n\n## 代码片段格式\n\n代码片段格式如下：\n\n```json\n{\n  // Example:\n  // 在这里放置你的 JavaScript 代码片段。每个代码片段都有一个名称、前缀、代码块和描述。前缀用于触发代码片段，代码块将被展开并插入。可能使用的变量有：\n  // $1、$2 表示标签停止点，$0 表示最终光标位置，${1:label}、${2:another} 表示占位符。具有相同 id 的占位符是相互关联的。\n  // 示例：\n  // \"Print to console\": {\n  //  \"prefix\": \"log\",\n  //  \"body\": [\n  //   \"console.log('$1');\",\n  //   \"$2\"\n  //  ],\n  //  \"description\": \"Log output to console\"\n  // }\n}\n```\n\n可以使用工具 [snippet-generator](https://snippet-generator.app/) 生成代码片段。\n\n## 常用代码片段\n\n### JavaScript\n\n```json {title=javascript.json}\n{\n  \"Print to console\": {\n    \"prefix\": \"cl\",\n    \"body\": [\n      \"console.log('$1');\",\n    ],\n    \"description\": \"Log output to console\"\n  }\n}\n```\n\n### Markdown\n\n```json {title=markdown.json}\n{\n  \"Font Matter\": {\n    \"prefix\": \"fm\",\n    \"body\": [\n      \"---\",\n      \"title: $1\",\n      \"date: $CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE$T$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND+08:00\",\n      \"draft: true\",\n      \"categories: $2\",\n      \"tags: $3\",\n      \"description: $4\",\n      \"keywords: $5\",\n      \"---\"\n    ],\n    \"description\": \"Font Matter\"\n  },\n  \"Markdown Table\": {\n    \"prefix\": \"table\",\n    \"body\": [\n      \"| $1 | $2 |\",\n      \"| --- | --- |\",\n      \"| $3 | $4 |\"\n    ],\n    \"description\": \"Markdown Table\"\n  },\n  \"FixIt Shortcode TypeIt\": {\n    \"prefix\": \"typeit\",\n    \"body\": [\n      \"{{</* typeit */>}}\",\n      \"$1\",\n      \"{{</* /typeit */>}}\"\n    ],\n    \"description\": \"FixIt Shortcode TypeIt\"\n  },\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vscode-snippets/  \n\n"
  },
  {
    "path": "posts/vue-build/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue.js History 模式下的 NGINX 配置与 API 代理 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\n\"><meta name=keywords content='nginx,Vue3,proxy'><meta itemprop=name content=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><meta itemprop=description content=\"在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\"><meta itemprop=datePublished content=\"2025-06-11T10:05:36+08:00\"><meta itemprop=dateModified content=\"2025-06-11T10:15:18+08:00\"><meta itemprop=wordCount content=\"678\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"nginx,vue3,proxy\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vue-build/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><meta property=\"og:description\" content=\"在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-06-11T10:05:36+08:00\"><meta property=\"article:modified_time\" content=\"2025-06-11T10:15:18+08:00\"><meta property=\"article:tag\" content=\"nginx\"><meta property=\"article:tag\" content=\"vue3\"><meta property=\"article:tag\" content=\"proxy\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><meta name=twitter:description content=\"在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vue-build/ title=\"Vue.js History 模式下的 NGINX 配置与 API 代理 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/mmt-webfont/ title=\"The webfont package for the MMT typeface.\"><link rel=next type=text/html href=https://lruihao.cn/posts/at-layer/ title=\"CSS @layer：构建更高效、更可维护的样式层级\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vue-build/index.md title=\"Vue.js History 模式下的 NGINX 配置与 API 代理 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-build\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"nginx, Vue3, proxy\",\"wordcount\":678,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-build\\/\",\"datePublished\":\"2025-06-11T10:05:36+08:00\",\"dateModified\":\"2025-06-11T10:15:18+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vue-build/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue.js History 模式下的 NGINX 配置与 API 代理</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Vue.js History 模式下的 NGINX 配置与 API 代理</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2025-06-11 10:05:36\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-06-11>2025-06-11</time></span>&nbsp;<span title=\"更新于 2025-06-11 10:15:18\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-06-11>2025-06-11</time></span>&nbsp;<span title=\"678 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前提条件>前提条件</a></li><li><a href=#nginx-配置示例>NGINX 配置示例</a><ol><li><a href=#配置说明>配置说明</a></li><li><a href=#部署步骤>部署步骤</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-06-11，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。</p><h2 class=heading-element id=前提条件><span>1 前提条件</span>\n<a href=#%e5%89%8d%e6%8f%90%e6%9d%a1%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在开始之前，请确保你已经完成以下步骤：</p><ul><li>安装并配置好 NGINX。</li><li>完成 Vue.js 应用的开发，并使用 <code>npm run build</code> 命令打包应用。</li></ul><h2 class=heading-element id=nginx-配置示例><span>2 NGINX 配置示例</span>\n<a href=#nginx-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以下是一个典型的 NGINX 配置示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-nginx\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-nginx data-lang=nginx><span class=line><span class=cl><span class=k>server</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kn>listen</span> <span class=mi>80</span><span class=p>;</span>  <span class=c1># 监听80端口\n</span></span></span><span class=line><span class=cl>    <span class=kn>server_name</span> <span class=s>your_domain.com</span><span class=p>;</span>  <span class=c1># 替换为你的域名\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kn>location</span> <span class=s>/</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kn>root</span> <span class=s>/path/to/your/dist</span><span class=p>;</span>  <span class=c1># 指向打包后的文件夹\n</span></span></span><span class=line><span class=cl>        <span class=kn>try_files</span> <span class=nv>$uri</span> <span class=nv>$uri/</span> <span class=s>/index.html</span><span class=p>;</span>  <span class=c1># 尝试访问指定文件，如果找不到则重定向到index.html\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1># API 代理设置\n</span></span></span><span class=line><span class=cl>    <span class=kn>location</span> <span class=s>/api/</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=kn>proxy_pass</span> <span class=s>http://your_api_server</span><span class=p>;</span>  <span class=c1># 替换为你的 API 服务器地址\n</span></span></span><span class=line><span class=cl>        <span class=kn>proxy_set_header</span> <span class=s>Host</span> <span class=nv>$host</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kn>proxy_set_header</span> <span class=s>X-Real-IP</span> <span class=nv>$remote_addr</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kn>proxy_set_header</span> <span class=s>X-Forwarded-For</span> <span class=nv>$proxy_add_x_forwarded_for</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kn>proxy_set_header</span> <span class=s>X-Forwarded-Proto</span> <span class=nv>$scheme</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=配置说明><span>2.1 配置说明</span>\n<a href=#%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>listen</strong>: 指定 NGINX 监听的端口，通常是 80（HTTP）。</li><li><strong>server_name</strong>: 配置你的域名。</li><li><strong>root</strong>: 指向 Vue 应用的打包输出目录，通常是 <code>dist</code> 文件夹。</li><li><strong>try_files</strong>: 尝试访问请求的文件，如果不存在，则返回 <code>index.html</code>，以允许 Vue Router 处理前端路由。</li><li><strong>location /api/</strong>: 所有以 <code>/api/</code> 开头的请求会被代理到指定的 API 服务器。</li><li><strong>proxy_pass</strong>: 设置 API 请求转发到的后端服务器地址。</li></ul><h3 class=heading-element id=部署步骤><span>2.2 部署步骤</span>\n<a href=#%e9%83%a8%e7%bd%b2%e6%ad%a5%e9%aa%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p><strong>打包 Vue 应用</strong>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm run build</span></span></code></pre></td></tr></table></div></div></div></li><li><p><strong>上传内容</strong>：将 <code>dist</code> 文件夹的内容上传到服务器的指定路径。</p></li><li><p><strong>修改 NGINX 配置</strong>：编辑 NGINX 配置文件，通常在 <code>/etc/nginx/sites-available/default</code> 或 <code>/etc/nginx/nginx.conf</code>。</p></li><li><p><strong>检查配置</strong>：检查 NGINX 配置是否有语法错误：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>sudo nginx -t</span></span></code></pre></td></tr></table></div></div></div></li><li><p><strong>重新加载 NGINX</strong>：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>sudo systemctl reload nginx</span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=总结><span>3 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>通过上述配置，你的 Vue.js 应用将可以在 NGINX 上正常运行，并支持 history 模式的路由。同时，所有以 <code>/api/</code> 开头的请求将被有效地代理到后端服务器。这样，前端与后端的交互就更加流畅自然。</p><p>希望这篇文章能帮助你顺利部署 Vue 应用！如有任何问题，欢迎留言讨论。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-06-11 10:15:18\">更新于 2025-06-11&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/e64312f43c8b0d95dff245c0bccf93bf3d208fdb rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: Vue.js History 模式下的 NGINX 配置与 API 代理&#10&#10Commit: e64312f43c8b0d95dff245c0bccf93bf3d208fdb [e64312f]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-06-11 10:15:18\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>e64312f</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vue-build/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-build.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/vue-build.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Vue.js+History+%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84+NGINX+%E9%85%8D%E7%BD%AE%E4%B8%8E+API+%E4%BB%A3%E7%90%86&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cVue.js+History+%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84+NGINX+%E9%85%8D%E7%BD%AE%E4%B8%8E+API+%E4%BB%A3%E7%90%86%7c%0A%7cURL%7chttps://lruihao.cn/posts/vue-build/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-build.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vue-build/ data-title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\" data-hashtags=nginx,Vue3,proxy><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vue-build/ data-hashtag=nginx><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vue-build/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vue-build/ data-title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vue-build/ data-title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nginx/ class=post-tag title=\"标签 - nginx\">nginx</a><a href=/tags/vue3/ class=post-tag title=\"标签 - vue3\">vue3</a><a href=/tags/proxy/ class=post-tag title=\"标签 - proxy\">proxy</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/mmt-webfont/ class=post-nav-item rel=prev title=Lruihao/mmt-webfont><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/mmt-webfont</a><a href=/posts/at-layer/ class=post-nav-item rel=next title=\"CSS @Layer：构建更高效、更可维护的样式层级\">CSS @Layer：构建更高效、更可维护的样式层级<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前提条件>前提条件</a></li><li><a href=#nginx-配置示例>NGINX 配置示例</a><ol><li><a href=#配置说明>配置说明</a></li><li><a href=#部署步骤>部署步骤</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/3b6347f8a397754b4aa70388743c2721.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/3b6347f8a397754b4aa70388743c2721.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vue-build/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vue-build/index.md",
    "content": "# Vue.js History 模式下的 NGINX 配置与 API 代理\n\n\n<!-- 本文由 Poe AI 提供 -->\n\n在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\n\n<!--more-->\n\n## 前提条件\n\n在开始之前，请确保你已经完成以下步骤：\n\n- 安装并配置好 NGINX。\n- 完成 Vue.js 应用的开发，并使用 `npm run build` 命令打包应用。\n\n## NGINX 配置示例\n\n以下是一个典型的 NGINX 配置示例：\n\n```nginx\nserver {\n    listen 80;  # 监听80端口\n    server_name your_domain.com;  # 替换为你的域名\n\n    location / {\n        root /path/to/your/dist;  # 指向打包后的文件夹\n        try_files $uri $uri/ /index.html;  # 尝试访问指定文件，如果找不到则重定向到index.html\n    }\n\n    # API 代理设置\n    location /api/ {\n        proxy_pass http://your_api_server;  # 替换为你的 API 服务器地址\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n### 配置说明\n\n- **listen**: 指定 NGINX 监听的端口，通常是 80（HTTP）。\n- **server_name**: 配置你的域名。\n- **root**: 指向 Vue 应用的打包输出目录，通常是 `dist` 文件夹。\n- **try_files**: 尝试访问请求的文件，如果不存在，则返回 `index.html`，以允许 Vue Router 处理前端路由。\n- **location /api/**: 所有以 `/api/` 开头的请求会被代理到指定的 API 服务器。\n- **proxy_pass**: 设置 API 请求转发到的后端服务器地址。\n\n### 部署步骤\n\n1. **打包 Vue 应用**：\n\n   ```bash\n   npm run build\n   ```\n\n2. **上传内容**：将 `dist` 文件夹的内容上传到服务器的指定路径。\n\n3. **修改 NGINX 配置**：编辑 NGINX 配置文件，通常在 `/etc/nginx/sites-available/default` 或 `/etc/nginx/nginx.conf`。\n\n4. **检查配置**：检查 NGINX 配置是否有语法错误：\n\n   ```bash\n   sudo nginx -t\n   ```\n\n5. **重新加载 NGINX**：\n\n   ```bash\n   sudo systemctl reload nginx\n   ```\n\n## 总结\n\n通过上述配置，你的 Vue.js 应用将可以在 NGINX 上正常运行，并支持 history 模式的路由。同时，所有以 `/api/` 开头的请求将被有效地代理到后端服务器。这样，前端与后端的交互就更加流畅自然。\n\n希望这篇文章能帮助你顺利部署 Vue 应用！如有任何问题，欢迎留言讨论。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vue-build/  \n\n"
  },
  {
    "path": "posts/vue-fullscreen-toggler/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>封装 Vue FullScreenToggler 组件 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\n\"><meta name=keywords content='Vue2,JavaScript'><meta itemprop=name content=\"封装 Vue FullScreenToggler 组件\"><meta itemprop=description content=\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\"><meta itemprop=datePublished content=\"2023-09-17T19:44:07+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"932\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"封装 Vue FullScreenToggler 组件\"><meta property=\"og:description\" content=\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-17T19:44:07+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"封装 Vue FullScreenToggler 组件\"><meta name=twitter:description content=\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vue-fullscreen-toggler/ title=\"封装 Vue FullScreenToggler 组件 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/js-fullscreen/ title=\"JS 实现全屏和退出全屏\"><link rel=next type=text/html href=https://lruihao.cn/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vue-fullscreen-toggler/index.md title=\"封装 Vue FullScreenToggler 组件 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"封装 Vue FullScreenToggler 组件\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-fullscreen-toggler\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2, JavaScript\",\"wordcount\":932,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-fullscreen-toggler\\/\",\"datePublished\":\"2023-09-17T19:44:07+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vue-fullscreen-toggler/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>封装 Vue FullScreenToggler 组件</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>封装 Vue FullScreenToggler 组件</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-17 19:44:07\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-17>2023-09-17</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"932 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"封装 Vue FullScreenToggler 组件\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#简介>简介</a></li><li><a href=#在线演示>在线演示</a></li><li><a href=#安装>安装</a></li><li><a href=#封装组件>封装组件</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>基于 <a href=https://github.com/mirari/vue-fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">vue-fullscreen<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 封装一个的 Vue 全屏/退出全屏切换组件。</p><h2 class=heading-element id=简介><span>1 简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/mirari/vue-fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">vue-fullscreen<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 是一个用于将任意页面元素进行全屏切换的 Vue 插件，基于 <a href=https://github.com/sindresorhus/screenfull target=_blank rel=\"external nofollow noopener noreferrer\">screenfull<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。这个插件本身提供了组件、指令以及 API 三种使用方式，具体的使用方法请参考 <a href=https://github.com/mirari/vue-fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">vue-fullscreen<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=在线演示><span>2 <a href=https://lruihao.github.io/vue-el-demo/#/fullscreen target=_blank rel=\"external nofollow noopener noreferrer\">在线演示<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%9c%a8%e7%ba%bf%e6%bc%94%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=安装><span>3 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install vue-fullscreen@^2.6.1\n</span></span><span class=line><span class=cl><span class=c1># 或者</span>\n</span></span><span class=line><span class=cl>yarn add vue-fullscreen@^2.6.1</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=封装组件><span>4 封装组件</span>\n<a href=#%e5%b0%81%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>vue-fullscreen</code> 有 Vue2 和 Vue3 两个版本，本文将基于其 Vue2 版本的指令使用方式再封装一层。</p><p>这个组件会显示为一个切换按钮，通过绑定 <code>target</code> 属性来指定全屏的目标元素，通过 <code>bodyAgent</code> 属性来指定是否使用 <code>document.body</code> 代理全屏元素，目标元素则改为网页全屏，避免弹窗等元素在全屏模式下不可见的问题。</p><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><code>vue-fullscreen</code> 插件处理弹窗等元素在全屏模式下不可见问题的方案是通过 <code>teleport</code> 修饰符将目标元素移动到 <code>document.body</code> 下，从而避免层级遮挡问题。个人不太喜欢这种改变 DOM 结构的方式，所以封装的插件新增一个参数 <code>bodyAgent</code>，当设置为 <code>true</code> 时，会使用 <code>document.body</code> 代理全屏元素，目标元素则改为网页全屏，此时 <code>document.fullscreenElement</code> 为 <code>document.body</code> 而不是真实设置的 <code>target</code> 元素。</div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=FullScreenToggler.vue><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>FullScreenToggler.vue</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=3 style=--fi-max-shown-lines:10;--fi-line-digit:3;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>  1\n</span><span class=lnt>  2\n</span><span class=lnt>  3\n</span><span class=lnt>  4\n</span><span class=lnt>  5\n</span><span class=lnt>  6\n</span><span class=lnt>  7\n</span><span class=lnt>  8\n</span><span class=lnt>  9\n</span><span class=lnt> 10\n</span><span class=lnt> 11\n</span><span class=lnt> 12\n</span><span class=lnt> 13\n</span><span class=lnt> 14\n</span><span class=lnt> 15\n</span><span class=lnt> 16\n</span><span class=lnt> 17\n</span><span class=lnt> 18\n</span><span class=lnt> 19\n</span><span class=lnt> 20\n</span><span class=lnt> 21\n</span><span class=lnt> 22\n</span><span class=lnt> 23\n</span><span class=lnt> 24\n</span><span class=lnt> 25\n</span><span class=lnt> 26\n</span><span class=lnt> 27\n</span><span class=lnt> 28\n</span><span class=lnt> 29\n</span><span class=lnt> 30\n</span><span class=lnt> 31\n</span><span class=lnt> 32\n</span><span class=lnt> 33\n</span><span class=lnt> 34\n</span><span class=lnt> 35\n</span><span class=lnt> 36\n</span><span class=lnt> 37\n</span><span class=lnt> 38\n</span><span class=lnt> 39\n</span><span class=lnt> 40\n</span><span class=lnt> 41\n</span><span class=lnt> 42\n</span><span class=lnt> 43\n</span><span class=lnt> 44\n</span><span class=lnt> 45\n</span><span class=lnt> 46\n</span><span class=lnt> 47\n</span><span class=lnt> 48\n</span><span class=lnt> 49\n</span><span class=lnt> 50\n</span><span class=lnt> 51\n</span><span class=lnt> 52\n</span><span class=lnt> 53\n</span><span class=lnt> 54\n</span><span class=lnt> 55\n</span><span class=lnt> 56\n</span><span class=lnt> 57\n</span><span class=lnt> 58\n</span><span class=lnt> 59\n</span><span class=lnt> 60\n</span><span class=lnt> 61\n</span><span class=lnt> 62\n</span><span class=lnt> 63\n</span><span class=lnt> 64\n</span><span class=lnt> 65\n</span><span class=lnt> 66\n</span><span class=lnt> 67\n</span><span class=lnt> 68\n</span><span class=lnt> 69\n</span><span class=lnt> 70\n</span><span class=lnt> 71\n</span><span class=lnt> 72\n</span><span class=lnt> 73\n</span><span class=lnt> 74\n</span><span class=lnt> 75\n</span><span class=lnt> 76\n</span><span class=lnt> 77\n</span><span class=lnt> 78\n</span><span class=lnt> 79\n</span><span class=lnt> 80\n</span><span class=lnt> 81\n</span><span class=lnt> 82\n</span><span class=lnt> 83\n</span><span class=lnt> 84\n</span><span class=lnt> 85\n</span><span class=lnt> 86\n</span><span class=lnt> 87\n</span><span class=lnt> 88\n</span><span class=lnt> 89\n</span><span class=lnt> 90\n</span><span class=lnt> 91\n</span><span class=lnt> 92\n</span><span class=lnt> 93\n</span><span class=lnt> 94\n</span><span class=lnt> 95\n</span><span class=lnt> 96\n</span><span class=lnt> 97\n</span><span class=lnt> 98\n</span><span class=lnt> 99\n</span><span class=lnt>100\n</span><span class=lnt>101\n</span><span class=lnt>102\n</span><span class=lnt>103\n</span><span class=lnt>104\n</span><span class=lnt>105\n</span><span class=lnt>106\n</span><span class=lnt>107\n</span><span class=lnt>108\n</span><span class=lnt>109\n</span><span class=lnt>110\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=c>&lt;!--</span> <span class=nx>全屏</span><span class=o>/</span><span class=nx>退出全屏切换组件</span><span class=err>，</span><span class=nx>浏览器不支持时</span><span class=err>，</span><span class=nx>打开网页内全屏</span> <span class=o>--&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>directive</span> <span class=nx>as</span> <span class=nx>fullscreen</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;vue-fullscreen&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;FullScreenToggler&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>directives</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>fullscreen</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>target</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>String</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=s1>&#39;document.body&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 是否使用 document.body 代理全屏元素，目标元素则改为网页全屏\n</span></span></span><span class=line><span class=cl><span class=cm>     * 避免弹窗等元素在全屏模式下不可见的问题（推荐）\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>bodyAgent</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Boolean</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>fullscreenClass</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>String</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=s1>&#39;is-fullscreen&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * 不调用全屏 API，而是将当前元素撑满网页\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>pageOnly</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Boolean</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm>     * v-fullscreen 指令修饰符 teleport 进入全屏时目标元素会被移动到 document.body 下\n</span></span></span><span class=line><span class=cl><span class=cm>     * vue-fullscreen 插件处理弹窗等元素在全屏模式下不可见问题的方案（不推荐）\n</span></span></span><span class=line><span class=cl><span class=cm>     */</span>\n</span></span><span class=line><span class=cl>    <span class=nx>teleport</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>Boolean</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>isFullscreen</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>computed</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>options</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>target</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>bodyAgent</span> <span class=o>?</span> <span class=s1>&#39;document.body&#39;</span> <span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>callback</span><span class=o>:</span> <span class=p>(</span><span class=nx>isFullscreen</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=k>this</span><span class=p>.</span><span class=nx>isFullscreen</span> <span class=o>=</span> <span class=nx>isFullscreen</span>\n</span></span><span class=line><span class=cl>          <span class=c1>// 网页全屏\n</span></span></span><span class=line><span class=cl>          <span class=k>if</span> <span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>bodyAgent</span> <span class=o>&amp;&amp;</span> <span class=k>this</span><span class=p>.</span><span class=nx>target</span> <span class=o>!==</span> <span class=s1>&#39;document.body&#39;</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>target</span><span class=p>).</span><span class=nx>classList</span><span class=p>.</span><span class=nx>toggle</span><span class=p>(</span><span class=s1>&#39;is-fullscreen-fullpage&#39;</span><span class=p>,</span> <span class=nx>isFullscreen</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>          <span class=p>}</span>\n</span></span><span class=line><span class=cl>          <span class=c1>// 触发事件传递给父组件\n</span></span></span><span class=line><span class=cl>          <span class=k>this</span><span class=p>.</span><span class=nx>$emit</span><span class=p>(</span><span class=s1>&#39;change&#39;</span><span class=p>,</span> <span class=nx>isFullscreen</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>},</span>\n</span></span><span class=line><span class=cl>        <span class=nx>fullscreenClass</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>fullscreenClass</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>render</span><span class=p>(</span><span class=nx>h</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=nx>h</span><span class=p>(</span><span class=s1>&#39;span&#39;</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kr>class</span><span class=o>:</span> <span class=s1>&#39;full-screen-toggler&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>attrs</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>title</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>isFullscreen</span> <span class=o>?</span> <span class=s1>&#39;退出全屏&#39;</span> <span class=o>:</span> <span class=s1>&#39;全屏&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>directives</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>        <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;fullscreen&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=nx>value</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>options</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=nx>modifiers</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=nx>pageOnly</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>pageOnly</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=nx>teleport</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>teleport</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=p>},</span>\n</span></span><span class=line><span class=cl>        <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>],</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span>\n</span></span><span class=line><span class=cl>      <span class=nx>h</span><span class=p>(</span><span class=s1>&#39;svg-icon&#39;</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>iconClass</span><span class=o>:</span> <span class=k>this</span><span class=p>.</span><span class=nx>isFullscreen</span> <span class=o>?</span> <span class=s1>&#39;exit-fullscreen&#39;</span> <span class=o>:</span> <span class=s1>&#39;fullscreen&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>}),</span>\n</span></span><span class=line><span class=cl>    <span class=p>])</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;scss&#34;</span> <span class=na>scoped</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>full</span><span class=o>-</span><span class=nx>screen</span><span class=o>-</span><span class=nx>toggler</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>cursor</span><span class=o>:</span> <span class=nx>pointer</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>is</span><span class=o>-</span><span class=nx>fullscreen</span><span class=o>-</span><span class=nx>fullpage</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>position</span><span class=o>:</span> <span class=nx>fixed</span> <span class=o>!</span><span class=nx>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>top</span><span class=o>:</span> <span class=mi>0</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>left</span><span class=o>:</span> <span class=mi>0</span><span class=nx>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>width</span><span class=o>:</span> <span class=mi>100</span><span class=o>%</span> <span class=o>!</span><span class=nx>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>height</span><span class=o>:</span> <span class=mi>100</span><span class=o>%</span> <span class=o>!</span><span class=nx>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>background</span><span class=o>:</span> <span class=nx>white</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>z</span><span class=o>-</span><span class=nx>index</span><span class=o>:</span> <span class=mi>2000</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>box</span><span class=o>-</span><span class=nx>sizing</span><span class=o>:</span> <span class=nx>border</span><span class=o>-</span><span class=nx>box</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>使用方式如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=na>class</span><span class=o>=</span><span class=s>&#34;page-container&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>full-screen-toggler</span> <span class=na>target</span><span class=o>=</span><span class=s>&#34;.page-container&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>FullScreenToggler</span> <span class=nx>from</span> <span class=s1>&#39;@/components/FullScreenToggler&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>components</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>FullScreenToggler</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vue-fullscreen-toggler/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-fullscreen-toggler.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/vue-fullscreen-toggler.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%B0%81%E8%A3%85+Vue+FullScreenToggler+%E7%BB%84%E4%BB%B6&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%B0%81%E8%A3%85+Vue+FullScreenToggler+%E7%BB%84%E4%BB%B6%7c%0A%7cURL%7chttps://lruihao.cn/posts/vue-fullscreen-toggler/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-fullscreen-toggler.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vue-fullscreen-toggler/ data-title=\"封装 Vue FullScreenToggler 组件\" data-hashtags=Vue2,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vue-fullscreen-toggler/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vue-fullscreen-toggler/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vue-fullscreen-toggler/ data-title=\"封装 Vue FullScreenToggler 组件\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vue-fullscreen-toggler/ data-title=\"封装 Vue FullScreenToggler 组件\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/js-fullscreen/ class=post-nav-item rel=prev title=\"JS 实现全屏和退出全屏\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>JS 实现全屏和退出全屏</a><a href=/projects/el-table-sticky/ class=post-nav-item rel=next title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#简介>简介</a></li><li><a href=#在线演示>在线演示</a></li><li><a href=#安装>安装</a></li><li><a href=#封装组件>封装组件</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f05ec885592fe8fc3e08767f078656fc.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f05ec885592fe8fc3e08767f078656fc.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vue-fullscreen-toggler/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vue-fullscreen-toggler/index.md",
    "content": "# 封装 Vue FullScreenToggler 组件\n\n\n基于 [vue-fullscreen](https://github.com/mirari/vue-fullscreen) 封装一个的 Vue 全屏/退出全屏切换组件。\n\n<!--more-->\n\n## 简介\n\n[vue-fullscreen](https://github.com/mirari/vue-fullscreen) 是一个用于将任意页面元素进行全屏切换的 Vue 插件，基于 [screenfull](https://github.com/sindresorhus/screenfull)。这个插件本身提供了组件、指令以及 API 三种使用方式，具体的使用方法请参考 [vue-fullscreen](https://github.com/mirari/vue-fullscreen)。\n\n## [在线演示](https://lruihao.github.io/vue-el-demo/#/fullscreen)\n\n## 安装\n\n```bash\nnpm install vue-fullscreen@^2.6.1\n# 或者\nyarn add vue-fullscreen@^2.6.1\n```\n\n## 封装组件\n\n`vue-fullscreen` 有 Vue2 和 Vue3 两个版本，本文将基于其 Vue2 版本的指令使用方式再封装一层。\n\n这个组件会显示为一个切换按钮，通过绑定 `target` 属性来指定全屏的目标元素，通过 `bodyAgent` 属性来指定是否使用 `document.body` 代理全屏元素，目标元素则改为网页全屏，避免弹窗等元素在全屏模式下不可见的问题。\n\n{{< admonition info >}}\n`vue-fullscreen` 插件处理弹窗等元素在全屏模式下不可见问题的方案是通过 `teleport` 修饰符将目标元素移动到 `document.body` 下，从而避免层级遮挡问题。个人不太喜欢这种改变 DOM 结构的方式，所以封装的插件新增一个参数 `bodyAgent`，当设置为 `true` 时，会使用 `document.body` 代理全屏元素，目标元素则改为网页全屏，此时 `document.fullscreenElement` 为 `document.body` 而不是真实设置的 `target` 元素。\n{{< /admonition >}}\n\n```vue {title=FullScreenToggler.vue}\n<!-- 全屏/退出全屏切换组件，浏览器不支持时，打开网页内全屏 -->\n<script>\nimport { directive as fullscreen } from 'vue-fullscreen'\n\nexport default {\n  name: 'FullScreenToggler',\n  directives: {\n    fullscreen,\n  },\n  props: {\n    target: {\n      type: String,\n      default: 'document.body',\n    },\n    /**\n     * 是否使用 document.body 代理全屏元素，目标元素则改为网页全屏\n     * 避免弹窗等元素在全屏模式下不可见的问题（推荐）\n     */\n    bodyAgent: {\n      type: Boolean,\n      default: true,\n    },\n    fullscreenClass: {\n      type: String,\n      default: 'is-fullscreen',\n    },\n    /**\n     * 不调用全屏 API，而是将当前元素撑满网页\n     */\n    pageOnly: {\n      type: Boolean,\n      default: false,\n    },\n    /**\n     * v-fullscreen 指令修饰符 teleport 进入全屏时目标元素会被移动到 document.body 下\n     * vue-fullscreen 插件处理弹窗等元素在全屏模式下不可见问题的方案（不推荐）\n     */\n    teleport: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isFullscreen: false,\n    }\n  },\n  computed: {\n    options() {\n      return {\n        target: this.bodyAgent ? 'document.body' : this.target,\n        callback: (isFullscreen) => {\n          this.isFullscreen = isFullscreen\n          // 网页全屏\n          if (this.bodyAgent && this.target !== 'document.body') {\n            document.querySelector(this.target).classList.toggle('is-fullscreen-fullpage', isFullscreen)\n          }\n          // 触发事件传递给父组件\n          this.$emit('change', isFullscreen)\n        },\n        fullscreenClass: this.fullscreenClass,\n      }\n    },\n  },\n  render(h) {\n    return h('span', {\n      class: 'full-screen-toggler',\n      attrs: {\n        title: this.isFullscreen ? '退出全屏' : '全屏',\n      },\n      directives: [\n        {\n          name: 'fullscreen',\n          value: this.options,\n          modifiers: {\n            pageOnly: this.pageOnly,\n            teleport: this.teleport,\n          },\n        },\n      ],\n    },\n    [\n      h('svg-icon', {\n        props: {\n          iconClass: this.isFullscreen ? 'exit-fullscreen' : 'fullscreen',\n        }\n      }),\n    ])\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.full-screen-toggler {\n  cursor: pointer;\n}\n</style>\n\n<style>\n.is-fullscreen-fullpage {\n  position: fixed !important;\n  top: 0px;\n  left: 0px;\n  width: 100% !important;\n  height: 100% !important;\n  background: white;\n  z-index: 2000;\n  box-sizing: border-box;\n}\n</style>\n```\n\n使用方式如下：\n\n```vue\n<template>\n  <div class=\"page-container\">\n    <full-screen-toggler target=\".page-container\" />\n  </div>\n</template>\n\n<script>\nimport FullScreenToggler from '@/components/FullScreenToggler'\n\nexport default {\n  components: {\n    FullScreenToggler,\n  },\n}\n</script>\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vue-fullscreen-toggler/  \n\n"
  },
  {
    "path": "posts/vue-svg-icon/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>在 Vue 项目中更优雅地使用 Icon | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\n\"><meta name=keywords content='SVG,Vue2'><meta itemprop=name content=\"在 Vue 项目中更优雅地使用 icon\"><meta itemprop=description content=\"1 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\"><meta itemprop=datePublished content=\"2023-09-14T11:24:48+08:00\"><meta itemprop=dateModified content=\"2024-06-06T23:01:28+08:00\"><meta itemprop=wordCount content=\"908\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"SVG,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vue-svg-icon/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"在 Vue 项目中更优雅地使用 icon\"><meta property=\"og:description\" content=\"1 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-09-14T11:24:48+08:00\"><meta property=\"article:modified_time\" content=\"2024-06-06T23:01:28+08:00\"><meta property=\"article:tag\" content=\"SVG\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"在 Vue 项目中更优雅地使用 icon\"><meta name=twitter:description content=\"1 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vue-svg-icon/ title=\"在 Vue 项目中更优雅地使用 icon | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vscode-snippets/ title=\"VSCode 添加用户代码片段，自定义用户代码片段\"><link rel=next type=text/html href=https://lruihao.cn/posts/translation-guide/ title=中文翻译的常见问题><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vue-svg-icon/index.md title=\"在 Vue 项目中更优雅地使用 icon | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"在 Vue 项目中更优雅地使用 icon\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-svg-icon\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"SVG, Vue2\",\"wordcount\":908,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vue-svg-icon\\/\",\"datePublished\":\"2023-09-14T11:24:48+08:00\",\"dateModified\":\"2024-06-06T23:01:28+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vue-svg-icon/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>在 Vue 项目中更优雅地使用 Icon</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>在 Vue 项目中更优雅地使用 Icon</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-14 11:24:48\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-14>2023-09-14</time></span>&nbsp;<span title=\"更新于 2024-06-06 23:01:28\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-06-06>2024-06-06</time></span>&nbsp;<span title=\"908 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1000 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"在 Vue 项目中更优雅地使用 Icon\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#工具>工具</a></li><li><a href=#封装组件>封装组件</a></li><li><a href=#安装>安装</a></li><li><a href=#配置>配置</a></li><li><a href=#自动引入>自动引入</a></li><li><a href=#使用-icon>使用 icon</a><ol><li><a href=#颜色>颜色</a></li><li><a href=#大小>大小</a></li></ol></li><li><a href=#示例>示例</a></li><li><a href=#参考资料>参考资料</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-06-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、<a href=https://fontawesome.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://www.iconfont.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">Iconfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 等等。</p><p>随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。</p><h2 class=heading-element id=工具><span>2 工具</span>\n<a href=#%e5%b7%a5%e5%85%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/JetBrains/svg-sprite-loader target=_blank rel=\"external nofollow noopener noreferrer\">svg-sprite-loader<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/svg/svgo-loader target=_blank rel=\"external nofollow noopener noreferrer\">svgo-loader<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p><code>svg-sprite-loader</code>用来打包 svg 图标，<code>svgo-loader</code> 来精简我们的 svg 内容。</p><h2 class=heading-element id=封装组件><span>3 封装组件</span>\n<a href=#%e5%b0%81%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 <code>src/components</code> 目录下新建 <code>SvgIcon.vue</code> 组件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span> <span class=nt>v-if</span><span class=o>=</span><span class=s>&#34;isExternal&#34; :style=&#34;styleExternalIcon&#34; class=&#34;svg-external-icon svg-icon&#34; v-on=&#34;$listeners&#34;</span><span class=p> /&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>svg</span> <span class=nt>v-else</span><span class=p> </span><span class=na>class</span><span class=o>=</span><span class=s>&#34;svg-icon&#34;</span> <span class=na>aria</span><span class=nt>-hidden</span><span class=err>=&#34;</span><span class=na>true</span><span class=err>&#34;</span> <span class=nt>v-on</span><span class=o>=</span><span class=s>&#34;$listeners&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>use</span> <span class=nt>:href</span><span class=o>=</span><span class=s>&#34;iconName&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>svg</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;SvgIcon&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>props</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>iconClass</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>String</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>required</span><span class=o>:</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>className</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>type</span><span class=o>:</span> <span class=nb>String</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=k>default</span><span class=o>:</span> <span class=s1>&#39;&#39;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>computed</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>isExternal</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=sr>/^(https?:\\/\\/|data:image)/</span><span class=p>.</span><span class=nx>test</span><span class=p>(</span><span class=k>this</span><span class=p>.</span><span class=nx>iconClass</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>iconName</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=sb>`#icon-</span><span class=si>${</span><span class=k>this</span><span class=p>.</span><span class=nx>iconClass</span><span class=si>}</span><span class=sb>`</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=nx>styleExternalIcon</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>mask</span><span class=o>:</span> <span class=sb>`url(</span><span class=si>${</span><span class=k>this</span><span class=p>.</span><span class=nx>iconClass</span><span class=si>}</span><span class=sb>) no-repeat 50% 50%`</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=s1>&#39;-webkit-mask&#39;</span><span class=o>:</span> <span class=sb>`url(</span><span class=si>${</span><span class=k>this</span><span class=p>.</span><span class=nx>iconClass</span><span class=si>}</span><span class=sb>) no-repeat 50% 50%`</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>style</span> <span class=na>scoped</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>svg</span><span class=o>-</span><span class=nx>icon</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>width</span><span class=o>:</span> <span class=mi>1</span><span class=nx>em</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>height</span><span class=o>:</span> <span class=mi>1</span><span class=nx>em</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>vertical</span><span class=o>-</span><span class=nx>align</span><span class=o>:</span> <span class=o>-</span><span class=mf>0.15</span><span class=nx>em</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>fill</span><span class=o>:</span> <span class=nx>currentColor</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>overflow</span><span class=o>:</span> <span class=nx>hidden</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>.</span><span class=nx>svg</span><span class=o>-</span><span class=nx>external</span><span class=o>-</span><span class=nx>icon</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>background</span><span class=o>-</span><span class=nx>color</span><span class=o>:</span> <span class=nx>currentColor</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>mask</span><span class=o>-</span><span class=nx>size</span><span class=o>:</span> <span class=nx>cover</span><span class=o>!</span><span class=nx>important</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>display</span><span class=o>:</span> <span class=nx>inline</span><span class=o>-</span><span class=nx>block</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=安装><span>4 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install svg-sprite-loader svgo-loader -D\n</span></span><span class=line><span class=cl><span class=c1># 或</span>\n</span></span><span class=line><span class=cl>yarn add svg-sprite-loader svgo-loader -D</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>5 配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>统一将所有的 icon 都以 svg 的形式都放在 <code>src/assets/icons</code> 目录中。</p><p>然后在 <code>vue.config.js</code> 中添加如下配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=p>{</span> <span class=nx>defineConfig</span> <span class=p>}</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;@vue/cli-service&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>path</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s1>&#39;path&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>resolve</span><span class=p>(</span><span class=nx>dir</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nx>path</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=nx>__dirname</span><span class=p>,</span> <span class=nx>dir</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>module</span><span class=p>.</span><span class=nx>exports</span> <span class=o>=</span> <span class=nx>defineConfig</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// ...\n</span></span></span><span class=line><span class=cl>  <span class=nx>chainWebpack</span><span class=o>:</span> <span class=p>(</span><span class=nx>config</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// set svg-sprite-loader\n</span></span></span><span class=line><span class=cl>    <span class=kr>const</span> <span class=nx>svgPath</span> <span class=o>=</span> <span class=nx>resolve</span><span class=p>(</span><span class=s1>&#39;src/assets/icons&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nx>config</span><span class=p>.</span><span class=nx>module</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>rule</span><span class=p>(</span><span class=s1>&#39;svg&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>exclude</span><span class=p>.</span><span class=nx>add</span><span class=p>(</span><span class=nx>svgPath</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>end</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=nx>config</span><span class=p>.</span><span class=nx>module</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>rule</span><span class=p>(</span><span class=s1>&#39;svg-icon&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>test</span><span class=p>(</span><span class=sr>/.svg$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>include</span><span class=p>.</span><span class=nx>add</span><span class=p>(</span><span class=nx>svgPath</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>end</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=s1>&#39;svg-sprite-loader&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>loader</span><span class=p>(</span><span class=s1>&#39;svg-sprite-loader&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>options</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>        <span class=nx>symbolId</span><span class=o>:</span> <span class=s1>&#39;icon-[name]&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>})</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>end</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// remove origin svg fill attr\n</span></span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=s1>&#39;svgo-loader&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>loader</span><span class=p>(</span><span class=s1>&#39;svgo-loader&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>tap</span><span class=p>((</span><span class=nx>options</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>({</span>\n</span></span><span class=line><span class=cl>        <span class=p>...</span><span class=nx>options</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 删除 svg 中 fill 和 fill-rule\n</span></span></span><span class=line><span class=cl>        <span class=nx>plugins</span><span class=o>:</span> <span class=p>[{</span> <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;removeAttrs&#39;</span><span class=p>,</span> <span class=nx>params</span><span class=o>:</span> <span class=p>{</span> <span class=nx>attrs</span><span class=o>:</span> <span class=s1>&#39;fill|fill-rule&#39;</span> <span class=p>}</span> <span class=p>}],</span>\n</span></span><span class=line><span class=cl>      <span class=p>}))</span>\n</span></span><span class=line><span class=cl>      <span class=p>.</span><span class=nx>end</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// ...\n</span></span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=自动引入><span>6 自动引入</span>\n<a href=#%e8%87%aa%e5%8a%a8%e5%bc%95%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>自动引入 <code>src/assets/icons</code> 中的 icon，需要用到 webpack 中的 <a href=https://webpack.docschina.org/guides/dependency-management/ target=_blank rel=\"external nofollow noopener noreferrer\">require.context<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>在 <code>src/main.js</code> 中引入所有的 svg 图标，之后可在文件夹自行添加或者删除图标，所以图标都会被自动导入，无需手动操作：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Vue</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>SvgIcon</span> <span class=nx>from</span> <span class=s1>&#39;@/components/SvgIcon&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// register svg component globally \n</span></span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>component</span><span class=p>(</span><span class=s1>&#39;SvgIcon&#39;</span><span class=p>,</span> <span class=nx>SvgIcon</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=c1>// require all svg\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>requireAll</span> <span class=o>=</span> <span class=p>(</span><span class=nx>requireContext</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>requireContext</span><span class=p>.</span><span class=nx>keys</span><span class=p>().</span><span class=nx>map</span><span class=p>(</span><span class=nx>requireContext</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>req</span> <span class=o>=</span> <span class=nx>require</span><span class=p>.</span><span class=nx>context</span><span class=p>(</span><span class=s1>&#39;@/assets/icons&#39;</span><span class=p>,</span> <span class=kc>false</span><span class=p>,</span> <span class=sr>/\\.svg$/</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nx>requireAll</span><span class=p>(</span><span class=nx>req</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用-icon><span>7 使用 icon</span>\n<a href=#%e4%bd%bf%e7%94%a8-icon class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>svg-icon</span> <span class=na>icon-class</span><span class=o>=</span><span class=s>&#34;fullscreen&#34;</span>  <span class=na>class</span><span class=o>=</span><span class=s>&#39;custom-class&#39;</span> <span class=p>/&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=颜色><span>7.1 颜色</span>\n<a href=#%e9%a2%9c%e8%89%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>svg-icon</code> 默认会读取其父级的 <code>color fill: currentColor;</code></p><p>你可以改变父级的 <code>color</code> 或者直接改变 <code>fill</code> 的颜色即可。</p><h3 class=heading-element id=大小><span>7.2 大小</span>\n<a href=#%e5%a4%a7%e5%b0%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>图标可从 <a href=https://www.iconfont.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">iconfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 项目中下载或者由 UI 切图，同一个项目中使用的 Svg Icon 图标建议统一大小规格，比如 <code>128*128</code>。</p><h2 class=heading-element id=示例><span>8 示例</span>\n<a href=#%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本文 <a href=https://lruihao.github.io/vue-el-demo/#/icons target=_blank rel=\"external nofollow noopener noreferrer\">示例<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 代码已上传至 <a href=https://github.com/Lruihao/vue-el-demo target=_blank rel=\"external nofollow noopener noreferrer\">vue-el-demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 项目中，可自行下载查看。</p><h2 class=heading-element id=参考资料><span>9 参考资料</span>\n<a href=#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://juejin.cn/post/6844903517564436493 target=_blank rel=\"external nofollow noopener noreferrer\">手摸手，带你优雅的使用 icon<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.zhangxinxu.com/wordpress/2014/07/introduce-svg-sprite-technology/ target=_blank rel=\"external nofollow noopener noreferrer\">未来必热：SVG Sprites 技术介绍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.zhangxinxu.com/wordpress/2016/02/svg-compress-tool-svgo-experience/ target=_blank rel=\"external nofollow noopener noreferrer\">SVG 精简压缩工具 svgo 简介和初体验<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/JetBrains/svg-sprite-loader target=_blank rel=\"external nofollow noopener noreferrer\">svg-sprite-loader<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/svg/svgo target=_blank rel=\"external nofollow noopener noreferrer\">svgo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/svg/svgo-loader target=_blank rel=\"external nofollow noopener noreferrer\">svgo-loader<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-06-06 23:01:28\">更新于 2024-06-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/26eb59b9a0d794caba5b4615e4038286ebc25f52 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 发布文章“怎么生成暗黑模式和明亮模式的 SVG 图片？”&#10&#10Commit: 26eb59b9a0d794caba5b4615e4038286ebc25f52 [26eb59b]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-06-06 23:01:28&#10Commit Date: 2024-06-06 23:23:15\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>26eb59b</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vue-svg-icon/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-svg-icon.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_vue.js/vue-svg-icon.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9C%A8+Vue+%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%9B%B4%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8+icon&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9C%A8+Vue+%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%9B%B4%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8+icon%7c%0A%7cURL%7chttps://lruihao.cn/posts/vue-svg-icon/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_vue.js/vue-svg-icon.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vue-svg-icon/ data-title=\"在 Vue 项目中更优雅地使用 Icon\" data-hashtags=SVG,Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vue-svg-icon/ data-hashtag=SVG><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vue-svg-icon/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vue-svg-icon/ data-title=\"在 Vue 项目中更优雅地使用 Icon\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vue-svg-icon/ data-title=\"在 Vue 项目中更优雅地使用 Icon\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/svg/ class=post-tag title=\"标签 - SVG\">SVG</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vscode-snippets/ class=post-nav-item rel=prev title=\"VSCode 添加用户代码片段，自定义用户代码片段\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>VSCode 添加用户代码片段，自定义用户代码片段</a><a href=/posts/translation-guide/ class=post-nav-item rel=next title=中文翻译的常见问题>中文翻译的常见问题<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#工具>工具</a></li><li><a href=#封装组件>封装组件</a></li><li><a href=#安装>安装</a></li><li><a href=#配置>配置</a></li><li><a href=#自动引入>自动引入</a></li><li><a href=#使用-icon>使用 icon</a><ol><li><a href=#颜色>颜色</a></li><li><a href=#大小>大小</a></li></ol></li><li><a href=#示例>示例</a></li><li><a href=#参考资料>参考资料</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/bdd184c51212429fcf35500b71c86829.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/bdd184c51212429fcf35500b71c86829.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vue-svg-icon/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vue-svg-icon/index.md",
    "content": "# 在 Vue 项目中更优雅地使用 Icon\n\n\n## 前言\n\n在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、[Font Awesome](https://fontawesome.com/)、[Iconfont](https://www.iconfont.cn/) 等等。\n\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\n\n<!--more-->\n\n## 工具\n\n- [svg-sprite-loader](https://github.com/JetBrains/svg-sprite-loader)\n- [svgo-loader](https://github.com/svg/svgo-loader)\n\n`svg-sprite-loader`用来打包 svg 图标，`svgo-loader` 来精简我们的 svg 内容。\n\n## 封装组件\n\n在 `src/components` 目录下新建 `SvgIcon.vue` 组件：\n\n```vue\n<template>\n  <div v-if=\"isExternal\" :style=\"styleExternalIcon\" class=\"svg-external-icon svg-icon\" v-on=\"$listeners\" />\n  <svg v-else class=\"svg-icon\" aria-hidden=\"true\" v-on=\"$listeners\">\n    <use :href=\"iconName\" />\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: 'SvgIcon',\n  props: {\n    iconClass: {\n      type: String,\n      required: true\n    },\n    className: {\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    isExternal() {\n      return /^(https?:\\/\\/|data:image)/.test(this.iconClass)\n    },\n    iconName() {\n      return `#icon-${this.iconClass}`\n    },\n    styleExternalIcon() {\n      return {\n        mask: `url(${this.iconClass}) no-repeat 50% 50%`,\n        '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`\n      }\n    }\n  }\n}\n</script>\n\n<style scoped>\n.svg-icon {\n  width: 1em;\n  height: 1em;\n  vertical-align: -0.15em;\n  fill: currentColor;\n  overflow: hidden;\n}\n\n.svg-external-icon {\n  background-color: currentColor;\n  mask-size: cover!important;\n  display: inline-block;\n}\n</style>\n```\n\n## 安装\n\n```bash\nnpm install svg-sprite-loader svgo-loader -D\n# 或\nyarn add svg-sprite-loader svgo-loader -D\n```\n\n## 配置\n\n统一将所有的 icon 都以 svg 的形式都放在 `src/assets/icons` 目录中。\n\n然后在 `vue.config.js` 中添加如下配置：\n\n```js\nconst { defineConfig } = require('@vue/cli-service')\nconst path = require('path')\n\nfunction resolve(dir) {\n  return path.join(__dirname, dir)\n}\n\nmodule.exports = defineConfig({\n  // ...\n  chainWebpack: (config) => {\n    // set svg-sprite-loader\n    const svgPath = resolve('src/assets/icons')\n    config.module\n      .rule('svg')\n      .exclude.add(svgPath)\n      .end()\n    config.module\n      .rule('svg-icon')\n      .test(/.svg$/)\n      .include.add(svgPath)\n      .end()\n      .use('svg-sprite-loader')\n      .loader('svg-sprite-loader')\n      .options({\n        symbolId: 'icon-[name]',\n      })\n      .end()\n      // remove origin svg fill attr\n      .use('svgo-loader')\n      .loader('svgo-loader')\n      .tap((options) => ({\n        ...options,\n        // 删除 svg 中 fill 和 fill-rule\n        plugins: [{ name: 'removeAttrs', params: { attrs: 'fill|fill-rule' } }],\n      }))\n      .end()\n  },\n  // ...\n})\n```\n\n## 自动引入\n\n自动引入 `src/assets/icons` 中的 icon，需要用到 webpack 中的 [require.context](https://webpack.docschina.org/guides/dependency-management/)。\n\n在 `src/main.js` 中引入所有的 svg 图标，之后可在文件夹自行添加或者删除图标，所以图标都会被自动导入，无需手动操作：\n\n```js\nimport Vue from 'vue'\nimport SvgIcon from '@/components/SvgIcon'\n\n// register svg component globally \nVue.component('SvgIcon', SvgIcon)\n// require all svg\nconst requireAll = (requireContext) => requireContext.keys().map(requireContext)\nconst req = require.context('@/assets/icons', false, /\\.svg$/)\nrequireAll(req)\n```\n\n## 使用 icon\n\n```html\n<svg-icon icon-class=\"fullscreen\"  class='custom-class' />\n```\n\n### 颜色\n\n`svg-icon` 默认会读取其父级的 `color fill: currentColor;`\n\n你可以改变父级的 `color` 或者直接改变 `fill` 的颜色即可。\n\n### 大小\n\n图标可从 [iconfont](https://www.iconfont.cn/) 项目中下载或者由 UI 切图，同一个项目中使用的 Svg Icon 图标建议统一大小规格，比如 `128*128`。\n\n## 示例\n\n本文 [示例](https://lruihao.github.io/vue-el-demo/#/icons) 代码已上传至 [vue-el-demo](https://github.com/Lruihao/vue-el-demo) 项目中，可自行下载查看。\n\n## 参考资料\n\n- [手摸手，带你优雅的使用 icon](https://juejin.cn/post/6844903517564436493)\n- [未来必热：SVG Sprites 技术介绍](https://www.zhangxinxu.com/wordpress/2014/07/introduce-svg-sprite-technology/)\n- [SVG 精简压缩工具 svgo 简介和初体验](https://www.zhangxinxu.com/wordpress/2016/02/svg-compress-tool-svgo-experience/)\n- [svg-sprite-loader](https://github.com/JetBrains/svg-sprite-loader)\n- [svgo](https://github.com/svg/svgo)\n- [svgo-loader](https://github.com/svg/svgo-loader)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vue-svg-icon/  \n\n"
  },
  {
    "path": "posts/vue2-guid/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>新手向：Vue 2.0 的建议学习顺序 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\n此指南仅供参考，请根据自身实际情况灵活调整。\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\n\"><meta name=keywords content='Vue2,他山之石'><meta itemprop=name content=\"新手向：Vue 2.0 的建议学习顺序\"><meta itemprop=description content=\"注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\n此指南仅供参考，请根据自身实际情况灵活调整。\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\"><meta itemprop=datePublished content=\"2023-03-14T08:37:59+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"1353\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Vue2,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/vue2-guid/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"新手向：Vue 2.0 的建议学习顺序\"><meta property=\"og:description\" content=\"注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\n此指南仅供参考，请根据自身实际情况灵活调整。\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2023-03-14T08:37:59+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"新手向：Vue 2.0 的建议学习顺序\"><meta name=twitter:description content=\"注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\n此指南仅供参考，请根据自身实际情况灵活调整。\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/vue2-guid/ title=\"新手向：Vue 2.0 的建议学习顺序 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><link rel=next type=text/html href=https://lruihao.cn/posts/v2-tailwind/ title=\"Vue2 + tailwindcss 初始化\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/vue2-guid/index.md title=\"新手向：Vue 2.0 的建议学习顺序 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"新手向：Vue 2.0 的建议学习顺序\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/vue2-guid\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2, 他山之石\",\"wordcount\":1353,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/vue2-guid\\/\",\"datePublished\":\"2023-03-14T08:37:59+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/vue2-guid/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>新手向：Vue 2.0 的建议学习顺序</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://zhuanlan.zhihu.com/p/23134551 title=\"转载 -> https://zhuanlan.zhihu.com/p/23134551\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>新手向：Vue 2.0 的建议学习顺序</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a></span></div><div class=post-meta-line><span title=\"发布于 2023-03-14 08:37:59\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-03-14>2023-03-14</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"1353 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"新手向：Vue 2.0 的建议学习顺序\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#起步>起步</a></li><li><a href=#前端生态工程化>前端生态/工程化</a></li><li><a href=#vue-进阶>Vue 进阶</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>注：2.0 已经有<a href=https://v2.cn.vuejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">中文文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 。如果对自己英文有信心，也可以直接阅读<a href=https://v2.vuejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">英文文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。<br>此指南仅供参考，请根据自身实际情况灵活调整。<br>转载自： <a href=https://www.zhihu.com/people/evanyou target=_blank rel=\"external nofollow noopener noreferrer\">尤雨溪<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，<a href=https://zhuanlan.zhihu.com/p/23134551 target=_blank rel=\"external nofollow noopener noreferrer\">新手向：Vue 2.0 的建议学习顺序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，2017-08-04 14:51</p></blockquote><h2 class=heading-element id=起步><span>1 起步</span>\n<a href=#%e8%b5%b7%e6%ad%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>扎实的 JavaScript / HTML / CSS 基本功。这是前置条件。</li><li>通读官方教程 (guide) 的基础篇。不要用任何构建工具，就只用最简单的 <code>&lt;script></code>，把教程里的例子模仿一遍，理解用法。<strong>不推荐上来就直接用 vue-cli 构建项目，尤其是如果没有 Node/Webpack 基础。</strong></li><li>照着官网上的示例，自己想一些类似的例子，模仿着实现来练手，加深理解。</li><li>阅读官方教程进阶篇的前半部分，到『自定义指令 (Custom Directive) 』为止。着重理解 Vue 的响应式机制和组件生命周期。『渲染函数（Render Function)』如果理解吃力可以先跳过。</li><li>阅读教程里关于路由和状态管理的章节，然后根据需要学习 vue-router 和 vuex。同样的，先不要管构建工具，以跟着文档里的例子理解用法为主。</li><li>走完基础文档后，如果你对于基于 Node 的前端工程化不熟悉，就需要补课了。下面这些严格来说并不是 Vue 本身的内容，也不涵盖所有的前端工程化知识，但对于大型的 Vue 工程是前置条件，也是合格的『前端工程师』应当具备的知识。</li></ol><h2 class=heading-element id=前端生态工程化><span>2 前端生态/工程化</span>\n<a href=#%e5%89%8d%e7%ab%af%e7%94%9f%e6%80%81%e5%b7%a5%e7%a8%8b%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>了解 JavaScript 背后的规范，ECMAScript 的历史和目前的规范制定方式。学习 ES2015/16 的新特性，理解 ES2015 modules，适当关注<a href=https://github.com/tc39/proposals target=_blank rel=\"external nofollow noopener noreferrer\">还未成为标准的提案<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li><li>学习命令行的使用。建议用 Mac。</li><li>学习 Node.js 基础。<strong>建议使用 <a href=https://github.com/creationix/nvm target=_blank rel=\"external nofollow noopener noreferrer\">nvm<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这样的工具来管理机器上的 Node 版本，并且将 npm 的 registry 注册表配置为<a href=https://npm.taobao.org/ target=_blank rel=\"external nofollow noopener noreferrer\">淘宝的镜像源<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</strong> 至少要了解 npm 的常用命令，npm scripts 如何使用，语义化版本号规则，CommonJS 模块规范（了解它和 ES2015 Modules 的异同），Node 包的解析规则，以及 Node 的常用 API。应当做到可以自己写一些基本的命令行程序。注意最新版本的 Node (6+) 已经支持绝大部分 ES2015 的特性，可以借此巩固 ES2015。</li><li>了解如何使用 / 配置 Babel 来将 ES2015 编译到 ES5 用于浏览器环境。</li><li>学习 Webpack。Webpack 是一个极其强大同时也复杂的工具，作为起步，理解它的『一切皆模块』的思想，并基本了解其常用配置选项和 loader 的概念/使用方法即可，比如如何搭配 Webpack 使用 Babel。学习 Webpack 的一个挑战在于其本身文档的混乱，建议多搜索搜索，应该还是有质量不错的第三方教程的。英文好的建议阅读 <a href=https://webpack.js.org/get-started/ target=_blank rel=\"external nofollow noopener noreferrer\">Webpack 2.0 的文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，比起 1.0 有极大的改善，但需要注意<a href=https://webpack.js.org/how-to/upgrade-from-webpack-1/ target=_blank rel=\"external nofollow noopener noreferrer\">和 1.0 的不兼容之处<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li></ol><h2 class=heading-element id=vue-进阶><span>3 Vue 进阶</span>\n<a href=#vue-%e8%bf%9b%e9%98%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>有了 Node 和 Webpack 的基础，可以通过 vue-cli 来搭建基于 Webpack，并且支持单文件组件的项目了。建议用 webpack-simple 这个模板开始，并阅读官方教程进阶篇剩余的内容以及 <a href=https://vue-loader.vuejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">vue-loader 的文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，了解一些进阶配置。有兴趣的可以自己亲手从零开始搭一个项目加深理解。</li><li>根据 <a href=https://github.com/vuejs/vue-hackernews-2.0 target=_blank rel=\"external nofollow noopener noreferrer\">例子<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 尝试在 Webpack 模板基础上整合 vue-router 和 vuex</li><li>深入理解 Virtual DOM 和『渲染函数 (Render Functions)』这一章节（可选择性使用 JSX)，理解模板和渲染函数之间的对应关系，了解其使用方法和适用场景。</li><li>（可选）根据需求，了解服务端渲染的使用（需要配合 Node 服务器开发的知识）。其实更重要的是理解它所解决的问题并搞清楚你是否需要它。</li><li>阅读开源的 Vue 应用、组件、插件源码，自己尝试编写开源的 Vue 组件、插件。</li><li>参考 <a href=https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md%23development-setup target=_blank rel=\"external nofollow noopener noreferrer\">贡献指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 阅读 Vue 的源码，理解内部实现细节。（需要了解 <a href=https://flowtype.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Flow<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）</li><li>参与 Vue GitHub issue 的定位 -> 贡献 PR -> 加入核心团队 -> 升任 CTO -> 迎娶白富美&mldr;（误</li></ol><blockquote><p>注：目前 Vue3 已经发布并广泛使用，文章 Vue 相关文档链接可能重定向至 Vue3，请自行甄别。</p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/vue2-guid/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/vue2-guid.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/vue2-guid.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%96%B0%E6%89%8B%E5%90%91%EF%BC%9AVue+2.0+%E7%9A%84%E5%BB%BA%E8%AE%AE%E5%AD%A6%E4%B9%A0%E9%A1%BA%E5%BA%8F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%96%B0%E6%89%8B%E5%90%91%EF%BC%9AVue+2.0+%E7%9A%84%E5%BB%BA%E8%AE%AE%E5%AD%A6%E4%B9%A0%E9%A1%BA%E5%BA%8F%7c%0A%7cURL%7chttps://lruihao.cn/posts/vue2-guid/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/vue2-guid.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/vue2-guid/ data-title=\"新手向：Vue 2.0 的建议学习顺序\" data-hashtags=Vue2,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/vue2-guid/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/vue2-guid/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/vue2-guid/ data-title=\"新手向：Vue 2.0 的建议学习顺序\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/vue2-guid/ data-title=\"新手向：Vue 2.0 的建议学习顺序\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=post-nav-item rel=prev title=hugo-fixit/shortcode-mmt-netease><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/shortcode-mmt-netease</a><a href=/posts/v2-tailwind/ class=post-nav-item rel=next title=\"Vue2 + Tailwindcss 初始化\">Vue2 + Tailwindcss 初始化<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#起步>起步</a></li><li><a href=#前端生态工程化>前端生态/工程化</a></li><li><a href=#vue-进阶>Vue 进阶</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6dba2d2635ebf1a0a76c65b1308b8eaa.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6dba2d2635ebf1a0a76c65b1308b8eaa.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/vue2-guid/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/vue2-guid/index.md",
    "content": "# 新手向：Vue 2.0 的建议学习顺序\n\n\n> 注：2.0 已经有[中文文档](https://v2.cn.vuejs.org/) 。如果对自己英文有信心，也可以直接阅读[英文文档](https://v2.vuejs.org/)。\\\n> 此指南仅供参考，请根据自身实际情况灵活调整。\\\n> 转载自： [尤雨溪](https://www.zhihu.com/people/evanyou)，[新手向：Vue 2.0 的建议学习顺序](https://zhuanlan.zhihu.com/p/23134551)，2017-08-04 14:51\n\n<!--more-->\n\n## 起步\n\n1. 扎实的 JavaScript / HTML / CSS 基本功。这是前置条件。\n2. 通读官方教程 (guide) 的基础篇。不要用任何构建工具，就只用最简单的 `<script>`，把教程里的例子模仿一遍，理解用法。**不推荐上来就直接用 vue-cli 构建项目，尤其是如果没有 Node/Webpack 基础。**\n3. 照着官网上的示例，自己想一些类似的例子，模仿着实现来练手，加深理解。\n4. 阅读官方教程进阶篇的前半部分，到『自定义指令 (Custom Directive) 』为止。着重理解 Vue 的响应式机制和组件生命周期。『渲染函数（Render Function)』如果理解吃力可以先跳过。\n5. 阅读教程里关于路由和状态管理的章节，然后根据需要学习 vue-router 和 vuex。同样的，先不要管构建工具，以跟着文档里的例子理解用法为主。\n6. 走完基础文档后，如果你对于基于 Node 的前端工程化不熟悉，就需要补课了。下面这些严格来说并不是 Vue 本身的内容，也不涵盖所有的前端工程化知识，但对于大型的 Vue 工程是前置条件，也是合格的『前端工程师』应当具备的知识。\n\n## 前端生态/工程化\n\n1. 了解 JavaScript 背后的规范，ECMAScript 的历史和目前的规范制定方式。学习 ES2015/16 的新特性，理解 ES2015 modules，适当关注[还未成为标准的提案](https://github.com/tc39/proposals)。\n2. 学习命令行的使用。建议用 Mac。\n3. 学习 Node.js 基础。**建议使用 [nvm](https://github.com/creationix/nvm) 这样的工具来管理机器上的 Node 版本，并且将 npm 的 registry 注册表配置为[淘宝的镜像源](https://npm.taobao.org/)。** 至少要了解 npm 的常用命令，npm scripts 如何使用，语义化版本号规则，CommonJS 模块规范（了解它和 ES2015 Modules 的异同），Node 包的解析规则，以及 Node 的常用 API。应当做到可以自己写一些基本的命令行程序。注意最新版本的 Node (6+) 已经支持绝大部分 ES2015 的特性，可以借此巩固 ES2015。\n4. 了解如何使用 / 配置 Babel 来将 ES2015 编译到 ES5 用于浏览器环境。\n5. 学习 Webpack。Webpack 是一个极其强大同时也复杂的工具，作为起步，理解它的『一切皆模块』的思想，并基本了解其常用配置选项和 loader 的概念/使用方法即可，比如如何搭配 Webpack 使用 Babel。学习 Webpack 的一个挑战在于其本身文档的混乱，建议多搜索搜索，应该还是有质量不错的第三方教程的。英文好的建议阅读 [Webpack 2.0 的文档](https://webpack.js.org/get-started/)，比起 1.0 有极大的改善，但需要注意[和 1.0 的不兼容之处](https://webpack.js.org/how-to/upgrade-from-webpack-1/)。\n\n## Vue 进阶\n\n1. 有了 Node 和 Webpack 的基础，可以通过 vue-cli 来搭建基于 Webpack，并且支持单文件组件的项目了。建议用 webpack-simple 这个模板开始，并阅读官方教程进阶篇剩余的内容以及 [vue-loader 的文档](https://vue-loader.vuejs.org/)，了解一些进阶配置。有兴趣的可以自己亲手从零开始搭一个项目加深理解。\n2. 根据 [例子](https://github.com/vuejs/vue-hackernews-2.0) 尝试在 Webpack 模板基础上整合 vue-router 和 vuex\n3. 深入理解 Virtual DOM 和『渲染函数 (Render Functions)』这一章节（可选择性使用 JSX)，理解模板和渲染函数之间的对应关系，了解其使用方法和适用场景。\n4. （可选）根据需求，了解服务端渲染的使用（需要配合 Node 服务器开发的知识）。其实更重要的是理解它所解决的问题并搞清楚你是否需要它。\n5. 阅读开源的 Vue 应用、组件、插件源码，自己尝试编写开源的 Vue 组件、插件。\n6. 参考 [贡献指南](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md%23development-setup) 阅读 Vue 的源码，理解内部实现细节。（需要了解 [Flow](https://flowtype.org/)）\n7. 参与 Vue GitHub issue 的定位 -> 贡献 PR -> 加入核心团队 -> 升任 CTO -> 迎娶白富美...（误\n\n> 注：目前 Vue3 已经发布并广泛使用，文章 Vue 相关文档链接可能重定向至 Vue3，请自行甄别。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/vue2-guid/  \n> 转载 URL: https://zhuanlan.zhihu.com/p/23134551\n"
  },
  {
    "path": "posts/wamproot/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>WAMPServer 自定义网站根目录等设置 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 使用 WAMPServer 时自定义网站根目录。\n\"><meta name=keywords content='WAMP,PHP,windows,server'><meta itemprop=name content=\"WAMPServer 自定义网站根目录等设置\"><meta itemprop=description content=\"使用 WAMPServer 时自定义网站根目录。\"><meta itemprop=datePublished content=\"2019-07-12T18:44:36+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"747\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"WAMP,PHP,windows,server\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wamproot/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"WAMPServer 自定义网站根目录等设置\"><meta property=\"og:description\" content=\"使用 WAMPServer 时自定义网站根目录。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-07-12T18:44:36+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"WAMP\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"article:tag\" content=\"windows\"><meta property=\"article:tag\" content=\"server\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"WAMPServer 自定义网站根目录等设置\"><meta name=twitter:description content=\"使用 WAMPServer 时自定义网站根目录。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wamproot/ title=\"WAMPServer 自定义网站根目录等设置 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/pysx2/ title=\"python 实训总结Ⅱ\"><link rel=next type=text/html href=https://lruihao.cn/posts/phpfunc/ title=\"php 函数学习\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wamproot/index.md title=\"WAMPServer 自定义网站根目录等设置 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"WAMPServer 自定义网站根目录等设置\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wamproot\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"WAMP, PHP, windows, server\",\"wordcount\":747,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wamproot\\/\",\"datePublished\":\"2019-07-12T18:44:36+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wamproot/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>WAMPServer 自定义网站根目录等设置</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>WAMPServer 自定义网站根目录等设置</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-07-12 18:44:36\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-07-12>2019-07-12</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"747 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"WAMPServer 自定义网站根目录等设置\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#wampserver-自定义网站根目录>WAMPServer 自定义网站根目录</a><ol><li><a href=#修改-apache-配置文件>修改 apache 配置文件</a></li><li><a href=#修改-wampmanager-文件>修改 wampmanager 文件</a></li><li><a href=#编写-php-文件测试>编写 php 文件测试</a></li></ol></li><li><a href=#wampserver-多站点配置>WAMPServer 多站点配置</a></li><li><a href=#wampserver-自拟定端口>WAMPServer 自拟定端口</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>使用 WAMPServer 时自定义网站根目录。</p></blockquote><h2 class=heading-element id=wampserver-自定义网站根目录><span>1 WAMPServer 自定义网站根目录</span>\n<a href=#wampserver-%e8%87%aa%e5%ae%9a%e4%b9%89%e7%bd%91%e7%ab%99%e6%a0%b9%e7%9b%ae%e5%bd%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=修改-apache-配置文件><span>1.1 修改 apache 配置文件</span>\n<a href=#%e4%bf%ae%e6%94%b9-apache-%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>打开<code>httpd.conf</code>文件搜索<code>documentroot</code>后，找到路径修改为自定义的。<br><a class=lightgallery target=_blank href=/posts/wamproot/images/httpd.png title=\"修改 httpd.conf 文件\" data-thumbnail=/posts/wamproot/images/httpd.png data-sub-html=\"<h2>修改 httpd.conf 文件</h2>\"><img loading=lazy src=/posts/wamproot/images/httpd.png alt=\"修改 httpd.conf 文件\" height=309 width=892></a></p><p>再打开<code>httpd-vhost.conf</code>文件修改对应的路径。<br><code>修改完配置文件需要重启所有服务！</code></p><h3 class=heading-element id=修改-wampmanager-文件><span>1.2 修改 wampmanager 文件</span>\n<a href=#%e4%bf%ae%e6%94%b9-wampmanager-%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 wampserver 安装路径根目录知道<code>wampmanager.ini</code>和<code>wampmanager.tpl</code>两个文件。搜索<code>menu.left</code>, 然后也修改为自定义的路径。\n<code>然后退出，重启软件！</code></p><p><a class=lightgallery target=_blank href=/posts/wamproot/images/wampmanager-ini.png title=\"修改 wampmanager.ini 文件\" data-thumbnail=/posts/wamproot/images/wampmanager-ini.png data-sub-html=\"<h2>修改 wampmanager.ini 文件</h2>\"><img loading=lazy src=/posts/wamproot/images/wampmanager-ini.png alt=\"修改 wampmanager.ini 文件\" height=415 width=967></a><br><a class=lightgallery target=_blank href=/posts/wamproot/images/wampmanager-tpl.png title=\"修改 wampmanager.tpl 文件\" data-thumbnail=/posts/wamproot/images/wampmanager-tpl.png data-sub-html=\"<h2>修改 wampmanager.tpl 文件</h2>\"><img loading=lazy src=/posts/wamproot/images/wampmanager-tpl.png alt=\"修改 wampmanager.tpl 文件\" height=380 width=913></a></p><h3 class=heading-element id=编写-php-文件测试><span>1.3 编写 php 文件测试</span>\n<a href=#%e7%bc%96%e5%86%99-php-%e6%96%87%e4%bb%b6%e6%b5%8b%e8%af%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl><span class=o>&lt;?</span><span class=nx>php</span>\n</span></span><span class=line><span class=cl>  <span class=k>echo</span> <span class=s2>&#34;hello world&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=cp>?&gt;</span><span class=err>\n</span></span></span></code></pre></td></tr></table></div></div></div><p><a class=lightgallery target=_blank href=/posts/wamproot/images/test.png title=测试结果 data-thumbnail=/posts/wamproot/images/test.png data-sub-html=\"<h2>测试结果</h2>\"><img loading=lazy src=/posts/wamproot/images/test.png alt=测试结果 height=255 width=710></a></p><h2 class=heading-element id=wampserver-多站点配置><span>2 WAMPServer 多站点配置</span>\n<a href=#wampserver-%e5%a4%9a%e7%ab%99%e7%82%b9%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>打开<code>httpd-vhost.conf</code>文件，复制原有的几行配置文件，粘贴修改路径和域名等配置。比如</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>## Virtual Hosts\n</span></span><span class=line><span class=cl>#\n</span></span><span class=line><span class=cl>&lt;VirtualHost *:80&gt;\n</span></span><span class=line><span class=cl>  ServerName localhost\n</span></span><span class=line><span class=cl>  ServerAlias localhost\n</span></span><span class=line><span class=cl>  DocumentRoot &#34;g:/Demo&#34;\n</span></span><span class=line><span class=cl>  &lt;Directory &#34;g:/Demo&#34;&gt;\n</span></span><span class=line><span class=cl>    Options +Indexes +Includes +FollowSymLinks +MultiViews\n</span></span><span class=line><span class=cl>    AllowOverride All\n</span></span><span class=line><span class=cl>    Require local\n</span></span><span class=line><span class=cl>  &lt;/Directory&gt;\n</span></span><span class=line><span class=cl>&lt;/VirtualHost&gt;\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>&lt;VirtualHost *:80&gt;\n</span></span><span class=line><span class=cl>  ServerName test01.com\n</span></span><span class=line><span class=cl>  DocumentRoot &#34;g:/Demo/test01&#34;\n</span></span><span class=line><span class=cl>&lt;/VirtualHost&gt;\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>&lt;VirtualHost *:80&gt;\n</span></span><span class=line><span class=cl>  ServerName test02.com\n</span></span><span class=line><span class=cl>  DocumentRoot &#34;g:/Demo/test02&#34;\n</span></span><span class=line><span class=cl>&lt;/VirtualHost&gt;</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>再打开<code>C:\\Windows\\System32\\drivers\\etc\\hosts</code>文件，在文件最后添加类似于云服务器的域名解析，进行本地域名解析，当输入域名时优先从本地申请资源。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>...\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>## For example:\n</span></span><span class=line><span class=cl>#\n</span></span><span class=line><span class=cl>## 102.54.94.97 rhino.acme.com ## source server\n</span></span><span class=line><span class=cl>## 38.25.63.10 x.acme.com ## x client host\n</span></span><span class=line><span class=cl>## localhost name resolution is handled within DNS itself.\n</span></span><span class=line><span class=cl>#  127.0.0.1 localhost\n</span></span><span class=line><span class=cl>#  ::1 localhost\n</span></span><span class=line><span class=cl>127.0.0.1 steamcommunity.com\n</span></span><span class=line><span class=cl>192.168.28.1 windows10.microdone.cn\n</span></span><span class=line><span class=cl>127.0.0.1 localhost\n</span></span><span class=line><span class=cl>::1 localhost\n</span></span><span class=line><span class=cl>127.0.0.1 test01.com\n</span></span><span class=line><span class=cl>127.0.0.1 test02.com</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=wampserver-自拟定端口><span>3 WAMPServer 自拟定端口</span>\n<a href=#wampserver-%e8%87%aa%e6%8b%9f%e5%ae%9a%e7%ab%af%e5%8f%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>WAMP 服务我安装了好几次，每次因为修改配置文件搞崩了。第一次装的时候发现 80 端口被占用了，因为以前玩了一下 Windows 的 IIS，暂停 IIS 的网站，再使用命令或者直接在控制面板关掉就好了。</p><ol><li><p>如果不使用 80 多为默认端口，比如修改为 8080，还是在<code>httpd.conf</code>文件里修改。搜索<code>80</code>都改成<code>8080</code>然后，Ctrl+S 保存，重新启动 WampServer<br>在浏览器地址栏输入<code>localhost:8000</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>#监听端口\n</span></span><span class=line><span class=cl>Listen 0.0.0.0:8080\n</span></span><span class=line><span class=cl>Listen [::0]:8080\n</span></span><span class=line><span class=cl>ServerName localhost:8080</span></span></code></pre></td></tr></table></div></div></div></li><li><p>使用 Notepad++打开 C:\\wamp 目录下的 wampmanager.ini 和 wampmanager.tpl<br>Ctrl+F 查找 <code>localhost</code><br>将其全部替换为<code>localhost:8000</code><br>然后，Ctrl+S 保存，重新启动 WampServer</p></li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wamproot/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/wamproot/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/wamproot/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20WAMPServer+%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BD%91%E7%AB%99%E6%A0%B9%E7%9B%AE%E5%BD%95%E7%AD%89%E8%AE%BE%E7%BD%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cWAMPServer+%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BD%91%E7%AB%99%E6%A0%B9%E7%9B%AE%E5%BD%95%E7%AD%89%E8%AE%BE%E7%BD%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/wamproot/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/wamproot/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wamproot/ data-title=\"WAMPServer 自定义网站根目录等设置\" data-hashtags=WAMP,PHP,windows,server><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wamproot/ data-hashtag=WAMP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wamproot/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wamproot/ data-title=\"WAMPServer 自定义网站根目录等设置\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wamproot/ data-title=\"WAMPServer 自定义网站根目录等设置\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/wamp/ class=post-tag title=\"标签 - WAMP\">WAMP</a><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/windows/ class=post-tag title=\"标签 - windows\">windows</a><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/pysx2/ class=post-nav-item rel=prev title=\"Python 实训总结Ⅱ\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Python 实训总结Ⅱ</a><a href=/posts/phpfunc/ class=post-nav-item rel=next title=\"Php 函数学习\">Php 函数学习<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#wampserver-自定义网站根目录>WAMPServer 自定义网站根目录</a><ol><li><a href=#修改-apache-配置文件>修改 apache 配置文件</a></li><li><a href=#修改-wampmanager-文件>修改 wampmanager 文件</a></li><li><a href=#编写-php-文件测试>编写 php 文件测试</a></li></ol></li><li><a href=#wampserver-多站点配置>WAMPServer 多站点配置</a></li><li><a href=#wampserver-自拟定端口>WAMPServer 自拟定端口</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1a0fd4e09739a1836a4fb4215952202d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1a0fd4e09739a1836a4fb4215952202d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wamproot/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wamproot/index.md",
    "content": "# WAMPServer 自定义网站根目录等设置\n\n\n> 使用 WAMPServer 时自定义网站根目录。\n\n<!--more-->\n\n## WAMPServer 自定义网站根目录\n\n### 修改 apache 配置文件\n\n打开`httpd.conf`文件搜索`documentroot`后，找到路径修改为自定义的。  \n![修改 httpd.conf 文件](images/httpd.png)\n\n再打开`httpd-vhost.conf`文件修改对应的路径。  \n`修改完配置文件需要重启所有服务！`\n\n### 修改 wampmanager 文件\n\n在 wampserver 安装路径根目录知道`wampmanager.ini`和`wampmanager.tpl`两个文件。搜索`menu.left`, 然后也修改为自定义的路径。\n`然后退出，重启软件！`\n\n![修改 wampmanager.ini 文件](images/wampmanager-ini.png)  \n![修改 wampmanager.tpl 文件](images/wampmanager-tpl.png)\n\n### 编写 php 文件测试\n\n```php test.php\n<?php\n  echo \"hello world\";\n?>\n```\n\n![测试结果](images/test.png)\n\n## WAMPServer 多站点配置\n\n打开`httpd-vhost.conf`文件，复制原有的几行配置文件，粘贴修改路径和域名等配置。比如\n\n```conf\n## Virtual Hosts\n#\n<VirtualHost *:80>\n  ServerName localhost\n  ServerAlias localhost\n  DocumentRoot \"g:/Demo\"\n  <Directory \"g:/Demo\">\n    Options +Indexes +Includes +FollowSymLinks +MultiViews\n    AllowOverride All\n    Require local\n  </Directory>\n</VirtualHost>\n\n<VirtualHost *:80>\n  ServerName test01.com\n  DocumentRoot \"g:/Demo/test01\"\n</VirtualHost>\n\n<VirtualHost *:80>\n  ServerName test02.com\n  DocumentRoot \"g:/Demo/test02\"\n</VirtualHost>\n```\n\n再打开`C:\\Windows\\System32\\drivers\\etc\\hosts`文件，在文件最后添加类似于云服务器的域名解析，进行本地域名解析，当输入域名时优先从本地申请资源。\n\n```plain\n...\n\n## For example:\n#\n## 102.54.94.97 rhino.acme.com ## source server\n## 38.25.63.10 x.acme.com ## x client host\n## localhost name resolution is handled within DNS itself.\n#  127.0.0.1 localhost\n#  ::1 localhost\n127.0.0.1 steamcommunity.com\n192.168.28.1 windows10.microdone.cn\n127.0.0.1 localhost\n::1 localhost\n127.0.0.1 test01.com\n127.0.0.1 test02.com\n```\n\n## WAMPServer 自拟定端口\n\nWAMP 服务我安装了好几次，每次因为修改配置文件搞崩了。第一次装的时候发现 80 端口被占用了，因为以前玩了一下 Windows 的 IIS，暂停 IIS 的网站，再使用命令或者直接在控制面板关掉就好了。\n\n1. 如果不使用 80 多为默认端口，比如修改为 8080，还是在`httpd.conf`文件里修改。搜索`80`都改成`8080`然后，Ctrl+S 保存，重新启动 WampServer  \n    在浏览器地址栏输入`localhost:8000`\n\n    ```conf\n    #监听端口\n    Listen 0.0.0.0:8080\n    Listen [::0]:8080\n    ServerName localhost:8080\n    ```\n\n2. 使用 Notepad++打开 C:\\wamp 目录下的 wampmanager.ini 和 wampmanager.tpl  \n   Ctrl+F 查找 `localhost`  \n   将其全部替换为`localhost:8000`  \n   然后，Ctrl+S 保存，重新启动 WampServer\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wamproot/  \n\n"
  },
  {
    "path": "posts/wannafly-18/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Wannafly 挑战赛 18-序列 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"时间限制：C/C++ 1 秒，其他语言 2 秒\n空间限制：C/C++ 262144K，其他语言 524288K\n64bit IO Format: %lld\n1 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 <= x <= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\n\"><meta name=keywords content='组合数学,ACM,Nowcoder,C++,C'><meta itemprop=name content=\"Wannafly 挑战赛 18-序列\"><meta itemprop=description content=\"时间限制：C/C++ 1 秒，其他语言 2 秒\n空间限制：C/C++ 262144K，其他语言 524288K\n64bit IO Format: %lld\n1 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 <= x <= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\"><meta itemprop=datePublished content=\"2018-07-18T08:40:21+08:00\"><meta itemprop=dateModified content=\"2018-07-18T08:40:21+08:00\"><meta itemprop=wordCount content=\"479\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"组合数学,acm,Nowcoder,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wannafly-18/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Wannafly 挑战赛 18-序列\"><meta property=\"og:description\" content=\"时间限制：C/C++ 1 秒，其他语言 2 秒\n空间限制：C/C++ 262144K，其他语言 524288K\n64bit IO Format: %lld\n1 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 <= x <= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-18T08:40:21+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-18T08:40:21+08:00\"><meta property=\"article:tag\" content=\"组合数学\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Wannafly 挑战赛 18-序列\"><meta name=twitter:description content=\"时间限制：C/C++ 1 秒，其他语言 2 秒\n空间限制：C/C++ 262144K，其他语言 524288K\n64bit IO Format: %lld\n1 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 <= x <= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wannafly-18/ title=\"Wannafly 挑战赛 18-序列 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ title=简单背包><link rel=next type=text/html href=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ title=\"TaoTao 要吃鸡\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wannafly-18/index.md title=\"Wannafly 挑战赛 18-序列 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Wannafly 挑战赛 18-序列\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wannafly-18\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"组合数学, ACM, Nowcoder, C\\u002b\\u002b, C\",\"wordcount\":479,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wannafly-18\\/\",\"datePublished\":\"2018-07-18T08:40:21+08:00\",\"dateModified\":\"2018-07-18T08:40:21+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wannafly-18/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Wannafly 挑战赛 18-序列</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Wannafly 挑战赛 18-序列</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-18 08:40:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-18>2018-07-18</time></span>&nbsp;<span title=\"479 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Wannafly 挑战赛 18-序列\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>时间限制：C/C++ 1 秒，其他语言 2 秒<br>空间限制：C/C++ 262144K，其他语言 524288K<br>64bit IO Format: %lld</p><h2 class=heading-element id=题目描述><span>1 题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &lt;= x &lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。<br>两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。</p><h2 class=heading-element id=输入描述><span>2 输入描述</span>\n<a href=#%e8%be%93%e5%85%a5%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一个整数 表示 n (1&lt;= n &lt;= 1e3)</p><h2 class=heading-element id=输出描述><span>3 输出描述</span>\n<a href=#%e8%be%93%e5%87%ba%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一个整数 表示答案模 109+7</p><h2 class=heading-element id=示例-1><span>4 示例 1</span>\n<a href=#%e7%a4%ba%e4%be%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入</p><p><code>5</code>\n输出</p><p><code>7</code></p><blockquote><p>解题思路：<br>整体来看，a[x] = a[x-1] <em>[1, -2, 0.5]，那么等于从 n-1 个 [1,-2,0.5] 中选出 n-1 个数值相乘（a[x-1]=a[x-2]</em> [1,-2,0.5] 同理化简式子），<br>最后答案要是 1，所以 -2 就必须有偶数个，同理 0.5 的个数要等于 -2. 顺序无关。\n那所有的转换中，就只要保证有若干组 (-2,-2,0.5,0.5) 存在</p></blockquote><p><a class=lightgallery target=_blank href=/images/remote/20180717145303103_17579208869132673894.png title=表达式 data-thumbnail=/images/remote/20180717145303103_17579208869132673894.png data-sub-html=\"<h2>表达式</h2>\"><img loading=lazy src=/images/remote/20180717145303103_17579208869132673894.png alt=表达式 height=60 width=166></a> 表示偶数个 2 的个数与偶数个 0.5 的个数组合；组合数用二项式系数，杨辉三角来求。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>maxn</span> <span class=o>=</span> <span class=mf>1e3</span> <span class=o>+</span> <span class=mi>5</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>mod</span> <span class=o>=</span> <span class=mf>1e9</span> <span class=o>+</span> <span class=mi>7</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>long</span> <span class=kt>long</span> <span class=n>c</span><span class=p>[</span><span class=n>maxn</span><span class=p>][</span><span class=n>maxn</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>maxn</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>){</span><span class=c1>//杨辉三角\n</span></span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=mi>0</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>j</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>j</span> <span class=o>&lt;</span> <span class=n>i</span><span class=p>;</span> <span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>=</span> <span class=p>(</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=p>]</span> <span class=o>+</span> <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>][</span><span class=n>j</span><span class=o>-</span><span class=mi>1</span><span class=p>])</span> <span class=o>%</span> <span class=n>mod</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=o>~</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>n</span><span class=p>)){</span>\n</span></span><span class=line><span class=cl>        <span class=n>n</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=kt>long</span> <span class=kt>long</span> <span class=n>ans</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span><span class=o>*</span><span class=mi>2</span> <span class=o>&lt;=</span> <span class=n>n</span><span class=p>;</span> <span class=n>i</span> <span class=o>+=</span> <span class=mi>2</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>ans</span> <span class=o>=</span> <span class=p>(</span><span class=n>ans</span><span class=o>%</span><span class=n>mod</span> <span class=o>+</span> <span class=p>(</span><span class=n>c</span><span class=p>[</span><span class=n>n</span><span class=p>][</span><span class=n>i</span><span class=p>]</span><span class=o>*</span><span class=n>c</span><span class=p>[</span><span class=n>n</span><span class=o>-</span><span class=n>i</span><span class=p>][</span><span class=n>i</span><span class=p>])</span><span class=o>%</span><span class=n>mod</span><span class=p>)</span><span class=o>%</span><span class=n>mod</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%lld</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-18 08:40:21\">更新于 2018-07-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wannafly-18/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/wannafly-18.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/wannafly-18.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Wannafly+%E6%8C%91%E6%88%98%E8%B5%9B+18-%E5%BA%8F%E5%88%97&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cWannafly+%E6%8C%91%E6%88%98%E8%B5%9B+18-%E5%BA%8F%E5%88%97%7c%0A%7cURL%7chttps://lruihao.cn/posts/wannafly-18/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/wannafly-18.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wannafly-18/ data-title=\"Wannafly 挑战赛 18-序列\" data-hashtags=组合数学,ACM,Nowcoder,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wannafly-18/ data-hashtag=组合数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wannafly-18/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wannafly-18/ data-title=\"Wannafly 挑战赛 18-序列\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wannafly-18/ data-title=\"Wannafly 挑战赛 18-序列\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 组合数学\">组合数学</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=post-nav-item rel=prev title=简单背包><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>简单背包</a><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=post-nav-item rel=next title=\"TaoTao 要吃鸡\">TaoTao 要吃鸡<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/34ad5ea3680cfc3332eb04da39f4f743.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/34ad5ea3680cfc3332eb04da39f4f743.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wannafly-18/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wannafly-18/index.md",
    "content": "# Wannafly 挑战赛 18-序列\n\n\n时间限制：C/C++ 1 秒，其他语言 2 秒  \n空间限制：C/C++ 262144K，其他语言 524288K  \n64bit IO Format: %lld\n\n## 题目描述\n\n有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 <= x <= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。  \n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\n\n## 输入描述\n\n一个整数 表示 n (1<= n <= 1e3)\n\n## 输出描述\n\n一个整数 表示答案模 109+7\n\n## 示例 1\n\n输入\n\n`5`\n输出\n\n`7`\n\n> 解题思路：  \n> 整体来看，a[x] = a[x-1] _[1, -2, 0.5]，那么等于从 n-1 个 [1,-2,0.5] 中选出 n-1 个数值相乘（a[x-1]=a[x-2]_ [1,-2,0.5] 同理化简式子），  \n> 最后答案要是 1，所以 -2 就必须有偶数个，同理 0.5 的个数要等于 -2. 顺序无关。\n> 那所有的转换中，就只要保证有若干组 (-2,-2,0.5,0.5) 存在\n\n![表达式](https://img-blog.csdn.net/20180717145303103?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTIwNDE3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 表示偶数个 2 的个数与偶数个 0.5 的个数组合；组合数用二项式系数，杨辉三角来求。\n\n```cpp\n#include <bits/stdc++.h>\nusing namespace std;\n\nconst int maxn = 1e3 + 5;\nconst int mod = 1e9 + 7;\nlong long c[maxn][maxn];\n\nint main(){\n    for(int i = 0; i < maxn; i++){//杨辉三角\n        c[i][0] = 1;\n        c[i][i] = 1;\n        for(int j = 1; j < i; j++)\n            c[i][j] = (c[i-1][j] + c[i-1][j-1]) % mod;\n    }\n    int n;\n    while(~scanf(\"%d\", &n)){\n        n--;\n        long long ans = 0;\n        for(int i = 0; i*2 <= n; i += 2){\n            ans = (ans%mod + (c[n][i]*c[n-i][i])%mod)%mod;\n        }\n        printf(\"%lld\\n\", ans);\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wannafly-18/  \n\n"
  },
  {
    "path": "posts/wannafly-20/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Wannafly 挑战赛 20-染色 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"链接：https://www.nowcoder.com/acm/contest/133/A\n来源：牛客网\n1 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\n\"><meta name=keywords content='ACM,Nowcoder,C++,C'><meta itemprop=name content=\"Wannafly 挑战赛 20-染色\"><meta itemprop=description content=\"链接：https://www.nowcoder.com/acm/contest/133/A\n来源：牛客网\n1 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\"><meta itemprop=datePublished content=\"2018-07-22T11:46:25+08:00\"><meta itemprop=dateModified content=\"2018-07-22T11:46:25+08:00\"><meta itemprop=wordCount content=\"632\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,Nowcoder,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wannafly-20/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Wannafly 挑战赛 20-染色\"><meta property=\"og:description\" content=\"链接：https://www.nowcoder.com/acm/contest/133/A\n来源：牛客网\n1 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:46:25+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-22T11:46:25+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Wannafly 挑战赛 20-染色\"><meta name=twitter:description content=\"链接：https://www.nowcoder.com/acm/contest/133/A\n来源：牛客网\n1 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wannafly-20/ title=\"Wannafly 挑战赛 20-染色 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ title=杨辉三角><link rel=next type=text/html href=https://lruihao.cn/posts/poj-3984/ title=\"poj-3984-迷宫问题 (bfs 路径）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wannafly-20/index.md title=\"Wannafly 挑战赛 20-染色 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Wannafly 挑战赛 20-染色\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wannafly-20\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, Nowcoder, C\\u002b\\u002b, C\",\"wordcount\":632,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wannafly-20\\/\",\"datePublished\":\"2018-07-22T11:46:25+08:00\",\"dateModified\":\"2018-07-22T11:46:25+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wannafly-20/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Wannafly 挑战赛 20-染色</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Wannafly 挑战赛 20-染色</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:46:25\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"632 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Wannafly 挑战赛 20-染色\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-22，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>链接：<a href=https://www.nowcoder.com/acm/contest/133/A target=_blank rel=\"external nofollow noopener noreferrer\">https://www.nowcoder.com/acm/contest/133/A<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>来源：牛客网</p><h2 class=heading-element id=题目描述><span>1 题目描述</span>\n<a href=#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，<br>现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价</p><h2 class=heading-element id=输入描述><span>2 输入描述</span>\n<a href=#%e8%be%93%e5%85%a5%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入包括若干行第一行包括一个数 n，表示这棵树有 n 个节点第二行包括 n 个数，第 i 个数表示第 i 个节点的颜色 coli<br>注意：一个颜色的标号即价值接下来的 n - 1 行，每行包括两个数 u, v，表示 u 节点与 v 节点之间有一条无向边 n ≤ 100000, 1 ≤ coli ≤ 1e9，数据保证是一棵树</p><h2 class=heading-element id=输出描述><span>3 输出描述</span>\n<a href=#%e8%be%93%e5%87%ba%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输出包括一行第一行包括一个数，表示最小代价</p><h2 class=heading-element id=示例-1><span>4 示例 1</span>\n<a href=#%e7%a4%ba%e4%be%8b-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=输入><span>4.1 输入</span>\n<a href=#%e8%be%93%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>4\n2 3 4 3\n1 2\n2 3\n3 4\n</code></pre><h3 class=heading-element id=输出><span>4.2 输出</span>\n<a href=#%e8%be%93%e5%87%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><pre><code>12\n</code></pre><p>蒟蒻暴力枚举<code>-_-!</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>const</span> <span class=kt>int</span> <span class=n>MAXN</span><span class=o>=</span><span class=mf>1e5</span><span class=o>+</span><span class=mi>10</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=n>MAXN</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>map</span><span class=o>&lt;</span><span class=kt>int</span><span class=p>,</span> <span class=kt>int</span> <span class=o>&gt;</span><span class=n>ma</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>set</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;</span><span class=n>se</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>x</span><span class=p>[</span><span class=n>MAXN</span><span class=p>],</span><span class=n>y</span><span class=p>[</span><span class=n>MAXN</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;=</span><span class=n>n</span> <span class=p>;</span> <span class=o>++</span><span class=n>i</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>se</span><span class=p>.</span><span class=n>insert</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span><span class=n>n</span> <span class=p>;</span> <span class=o>++</span><span class=n>i</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>x</span><span class=p>[</span><span class=n>i</span><span class=p>],</span><span class=o>&amp;</span><span class=n>y</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=kt>long</span> <span class=kt>long</span> <span class=n>ans</span><span class=o>=</span><span class=mf>1e14</span><span class=p>,</span><span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>set</span><span class=o>&lt;</span><span class=kt>int</span><span class=o>&gt;::</span><span class=n>iterator</span> <span class=n>it</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=n>it</span><span class=o>=</span><span class=n>se</span><span class=p>.</span><span class=n>begin</span><span class=p>();</span> <span class=n>it</span> <span class=o>!=</span><span class=n>se</span><span class=p>.</span><span class=n>end</span><span class=p>()</span> <span class=p>;</span> <span class=o>++</span><span class=n>it</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=kt>int</span> <span class=n>j</span> <span class=o>=</span> <span class=mi>1</span><span class=p>;</span> <span class=n>j</span> <span class=o>&lt;=</span><span class=n>n</span> <span class=p>;</span> <span class=o>++</span><span class=n>j</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>((</span><span class=o>*</span><span class=n>it</span><span class=p>)</span><span class=o>!=</span><span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>])</span> <span class=n>sum</span><span class=o>+=</span><span class=p>((</span><span class=o>*</span><span class=n>it</span><span class=p>)</span><span class=o>+</span><span class=n>a</span><span class=p>[</span><span class=n>j</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        <span class=n>ans</span><span class=o>=</span><span class=n>min</span><span class=p>(</span><span class=n>sum</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%lld</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>最后想说这都过了什么鬼，不会数据这么弱吧？？！? 我只枚举了最小的价值颜色的情况，唉，不管了不管了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>a</span><span class=p>[</span><span class=mi>1000000</span><span class=p>],</span><span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>k</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span><span class=n>t</span><span class=p>,</span><span class=n>ans</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=o>++</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>    <span class=n>sort</span><span class=p>(</span><span class=n>a</span><span class=o>+</span><span class=mi>1</span><span class=p>,</span><span class=n>a</span><span class=o>+</span><span class=n>n</span><span class=o>+</span><span class=mi>1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>2</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=o>++</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>!=</span><span class=n>a</span><span class=p>[</span><span class=mi>1</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>            <span class=n>ans</span><span class=o>+=</span><span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>+</span><span class=n>a</span><span class=p>[</span><span class=mi>1</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=n>ans</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-22 11:46:25\">更新于 2018-07-22&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wannafly-20/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/wannafly-20.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/wannafly-20.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Wannafly+%E6%8C%91%E6%88%98%E8%B5%9B+20-%E6%9F%93%E8%89%B2&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cWannafly+%E6%8C%91%E6%88%98%E8%B5%9B+20-%E6%9F%93%E8%89%B2%7c%0A%7cURL%7chttps://lruihao.cn/posts/wannafly-20/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/wannafly-20.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wannafly-20/ data-title=\"Wannafly 挑战赛 20-染色\" data-hashtags=ACM,Nowcoder,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wannafly-20/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wannafly-20/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wannafly-20/ data-title=\"Wannafly 挑战赛 20-染色\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wannafly-20/ data-title=\"Wannafly 挑战赛 20-染色\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=post-nav-item rel=prev title=杨辉三角><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>杨辉三角</a><a href=/posts/poj-3984/ class=post-nav-item rel=next title=\"Poj-3984-迷宫问题 (Bfs 路径）\">Poj-3984-迷宫问题 (Bfs 路径）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#题目描述>题目描述</a></li><li><a href=#输入描述>输入描述</a></li><li><a href=#输出描述>输出描述</a></li><li><a href=#示例-1>示例 1</a><ol><li><a href=#输入>输入</a></li><li><a href=#输出>输出</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/d56b48a046a639a406a699708812cf07.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/d56b48a046a639a406a699708812cf07.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wannafly-20/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wannafly-20/index.md",
    "content": "# Wannafly 挑战赛 20-染色\n\n\n链接：<https://www.nowcoder.com/acm/contest/133/A>  \n来源：牛客网\n\n## 题目描述\n\n现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，  \n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\n\n## 输入描述\n\n输入包括若干行第一行包括一个数 n，表示这棵树有 n 个节点第二行包括 n 个数，第 i 个数表示第 i 个节点的颜色 coli  \n注意：一个颜色的标号即价值接下来的 n - 1 行，每行包括两个数 u, v，表示 u 节点与 v 节点之间有一条无向边 n ≤ 100000, 1 ≤ coli ≤ 1e9，数据保证是一棵树\n\n## 输出描述\n\n输出包括一行第一行包括一个数，表示最小代价\n\n## 示例 1\n\n### 输入\n\n    4\n    2 3 4 3\n    1 2\n    2 3\n    3 4\n\n### 输出\n\n    12\n\n蒟蒻暴力枚举`-_-!`\n\n<!-- markdownlint-disable MD046 -->\n\n```cpp\n#include <bits/stdc++.h>\n\nusing namespace std;\n\nconst int MAXN=1e5+10;\n\nint a[MAXN];\n\nmap<int, int >ma;\n\nset<int>se;\n\nint x[MAXN],y[MAXN];\n\nint main()\n\n{\n\n    int n;\n\n    scanf(\"%d\",&n);\n\n    for (int i = 1; i <=n ; ++i) {\n\n        scanf(\"%d\",&a[i]);\n\n        se.insert(a[i]);\n\n    }\n\n    for (int i = 1; i <n ; ++i) {\n\n        scanf(\"%d%d\",&x[i],&y[i]);\n\n    }\n\n    long long ans=1e14,sum=0;\n\n    set<int>::iterator it;\n\n    for (it=se.begin(); it !=se.end() ; ++it) {\n\n        sum=0;\n\n        for (int j = 1; j <=n ; ++j) {\n\n            if((*it)!=a[j]) sum+=((*it)+a[j]);\n\n        }\n\n        ans=min(sum,ans);\n\n    }\n\n    printf(\"%lld\\n\",ans);\n\n    return 0;\n\n}\n```\n\n最后想说这都过了什么鬼，不会数据这么弱吧？？！? 我只枚举了最小的价值颜色的情况，唉，不管了不管了。\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\nint a[1000000],n,m,k=1,t,ans=0;\nint main()\n{\n    scanf(\"%d\",&n);\n    for(int i=1;i<=n;++i)\n    scanf(\"%d\",&a[i]);\n    sort(a+1,a+n+1);\n    for(int i=2;i<=n;++i)\n        if(a[i]!=a[1])\n            ans+=a[i]+a[1];\n    printf(\"%d\",ans);\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wannafly-20/  \n\n"
  },
  {
    "path": "posts/watermark-fixed/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/projects/cell-watermark/</title><link rel=canonical href=https://lruihao.cn/projects/cell-watermark/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/projects/cell-watermark/\"></head></html>"
  },
  {
    "path": "posts/wc-01-prologue/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>黑盒出关・三把钥匙定江湖 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\n\"><meta name=keywords content='Custom element,Shadow DOM,template,slot'><meta itemprop=name content=\"黑盒出关・三把钥匙定江湖\"><meta itemprop=description content=\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=wordCount content=\"1723\"><meta itemprop=image content=\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\"><meta itemprop=keywords content=\"Custom element,Shadow DOM,template,slot\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wc-01-prologue/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"黑盒出关・三把钥匙定江湖\"><meta property=\"og:description\" content=\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2025-08-05T11:31:52+08:00\"><meta property=\"article:modified_time\" content=\"2025-08-05T15:37:16+08:00\"><meta property=\"article:tag\" content=\"Custom element\"><meta property=\"article:tag\" content=\"Shadow DOM\"><meta property=\"article:tag\" content=\"template\"><meta property=\"article:tag\" content=\"slot\"><meta property=\"og:image\" content=\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\"><meta name=twitter:title content=\"黑盒出关・三把钥匙定江湖\"><meta name=twitter:description content=\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wc-01-prologue/ title=\"黑盒出关・三把钥匙定江湖 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/code-playground/ title=\"Code Playground\"><link rel=next type=text/html href=https://lruihao.cn/posts/mermaid-theming/ title=\"让 Mermaid 图表自动跟随系统深浅色\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wc-01-prologue/index.md title=\"黑盒出关・三把钥匙定江湖 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"黑盒出关・三把钥匙定江湖\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wc-01-prologue\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wc-01-prologue\\/featured-image.webp\",\"width\":1720,\"height\":722}],\"genre\":\"posts\",\"keywords\":\"Custom element, Shadow DOM, template, slot\",\"wordcount\":1723,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wc-01-prologue\\/\",\"datePublished\":\"2025-08-05T11:31:52+08:00\",\"dateModified\":\"2025-08-05T15:37:16+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wc-01-prologue/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=breadcrumb-item data-separator=/><a href=/posts/web-components/ title=\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\">Web Components</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>黑盒出关・三把钥匙定江湖</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>Web Components</span>\n<span class=collection-count>1</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><span class=active title=黑盒出关・三把钥匙定江湖>黑盒出关・三把钥匙定江湖</span></li></ul><div class=collection-nav-simple><i class=\"fa-solid fa-angle-left collection-nav-item text-secondary\" aria-hidden=true></i><span class=text-secondary>1/1</span><i class=\"fa-solid fa-angle-right collection-nav-item text-secondary\" aria-hidden=true></i></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>黑盒出关・三把钥匙定江湖</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">大话 Web Components</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a>&ensp;<a href=/categories/html/ class=post-category title=\"分类 - HTML\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> HTML</a> 和 <a href=/collections/web-components/ class=post-collection title=\"合集 - Web Components\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> Web Components</a></span></div><div class=post-meta-line><span title=\"发布于 2025-08-05 11:31:52\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-08-05>2025-08-05</time></span>&nbsp;<span title=\"更新于 2025-08-05 15:37:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-08-05>2025-08-05</time></span>&nbsp;<span title=\"1723 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=黑盒出关・三把钥匙定江湖><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/wc-01-prologue/featured-image.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/wc-01-prologue/featured-image.webp height=722 width=1720></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#第一折黑盒现世>第一折・黑盒现世</a></li><li><a href=#第二折三把钥匙镇山门>第二折・三把钥匙镇山门</a><ul><li><a href=#铸兵符custom-elements>铸兵符・Custom Elements</a></li><li><a href=#影分身shadow-dom>影分身・Shadow DOM</a></li><li><a href=#袖里乾坤html-templates--slots>袖里乾坤・HTML Templates & Slots</a></li></ul></li><li><a href=#第三折风云再起>第三折・风云再起</a></li><li><a href=#第四折范式转移浏览器登堂入室>第四折・范式转移・浏览器登堂入室</a><ul><li><a href=#旧朝遗诏从虚拟机到原生执政>旧朝遗诏：从“虚拟机”到“原生执政”</a></li><li><a href=#三权分立新标准下的江湖秩序>三权分立：新标准下的江湖秩序</a></li><li><a href=#去框架化的三重暗涌>去框架化的三重暗涌</a></li><li><a href=#未来图景十年后的登基大典>未来图景：十年后的登基大典</a></li></ul></li><li><a href=#尾声血雨腥风>尾声・血雨腥风</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-08-05，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！</p><h2 class=heading-element id=第一折黑盒现世><span>第一折・黑盒现世</span>\n<a href=#%e7%ac%ac%e4%b8%80%e6%8a%98%e9%bb%91%e7%9b%92%e7%8e%b0%e4%b8%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>昔日，React 少侠仗虚拟 DOM 之剑，Vue 剑仙携响应式绫罗，双雄争霸，血溅前端。</p><p>忽一日，电闪雷鸣，Chrome 山、Firefox 谷、Safari 崖三地同时金光乍现——一只乌漆嘛黑的小盒破空而出，盒上无门无派，只刻八字：</p><blockquote class=blockquote-center><p><strong>不拜山头，自成一派。</strong></p></blockquote><p>盒盖一开，三股真气冲天而起，惊得 React 剑锋一抖，Vue 绫罗乱颤。众修士齐呼：</p><p>“此乃何物？”</p><p>盒中悠悠传出一声：</p><p>“Web Components——浏览器亲儿子，江湖诨号：黑盒扫地僧。”</p><hr><h2 class=heading-element id=第二折三把钥匙镇山门><span>第二折・三把钥匙镇山门</span>\n<a href=#%e7%ac%ac%e4%ba%8c%e6%8a%98%e4%b8%89%e6%8a%8a%e9%92%a5%e5%8c%99%e9%95%87%e5%b1%b1%e9%97%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=铸兵符custom-elements><span>铸兵符・Custom Elements</span>\n<a href=#%e9%93%b8%e5%85%b5%e7%ac%a6custom-elements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>凡得此符者，可铸自家神兵。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>my-dog</span> <span class=na>food</span><span class=o>=</span><span class=s>&#34;hotpot&#34;</span> <span class=na>mood</span><span class=o>=</span><span class=s>&#34;happy&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>my-dog</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>今日起，标签随你姓，语义随你编，浏览器照单全收，不查户口。</p><h3 class=heading-element id=影分身shadow-dom><span>影分身・Shadow DOM</span>\n<a href=#%e5%bd%b1%e5%88%86%e8%ba%abshadow-dom class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>此术一开，样式、DOM、事件皆入黑屋，外头 CSS 千军万马，休想踏进半步。</p><blockquote><p>“兄弟，你的 <code>!important</code> 呢？”<br>“抱歉，进了影分身，天王老子也得排队。”</p></blockquote><h3 class=heading-element id=袖里乾坤html-templates--slots><span>袖里乾坤・HTML Templates & Slots</span>\n<a href=#%e8%a2%96%e9%87%8c%e4%b9%be%e5%9d%a4html-templates--slots class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>袖中一抖，模板千军万马；插槽轻点，内容各就各位。</p><p>无需编译，无需打包，一颗 <code>&lt;template></code> 漂洋过海，落地即插即用。</p><blockquote><p>这是真正意义上的“一次编写，到处运行”——比 Java 当年喊的口号还真。</p></blockquote><hr><h2 class=heading-element id=第三折风云再起><span>第三折・风云再起</span>\n<a href=#%e7%ac%ac%e4%b8%89%e6%8a%98%e9%a3%8e%e4%ba%91%e5%86%8d%e8%b5%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>黑盒既出，江湖格局瞬变：</p><ul><li><strong>微前端</strong>：Vue2、Vue3、React18、Angular 同屏共舞，互不打脸。</li><li><strong>设计系统</strong>：按钮、输入框、LOGO 化身“原子暗器”，任何门派伸手即取。</li><li><strong>长尾奇袭</strong>：Chrome 插件、VS Code 插件、微信小程序、低代码山寨，皆呼“真香”。</li><li><strong>长寿秘籍</strong>：框架蜜月三年，黑盒随浏览器升级十年，npm 弃坑它不弃。</li></ul><hr><h2 class=heading-element id=第四折范式转移浏览器登堂入室><span>第四折・范式转移・浏览器登堂入室</span>\n<a href=#%e7%ac%ac%e5%9b%9b%e6%8a%98%e8%8c%83%e5%bc%8f%e8%bd%ac%e7%a7%bb%e6%b5%8f%e8%a7%88%e5%99%a8%e7%99%bb%e5%a0%82%e5%85%a5%e5%ae%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>当日头西斜，江湖忽然风起。众侠回头一看，浏览器老馆主身披龙袍、脚踏赤霄，一步跨上金銮殿。</p><h3 class=heading-element id=旧朝遗诏从虚拟机到原生执政><span>旧朝遗诏：从“虚拟机”到“原生执政”</span>\n<a href=#%e6%97%a7%e6%9c%9d%e9%81%97%e8%af%8f%e4%bb%8e%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%88%b0%e5%8e%9f%e7%94%9f%e6%89%a7%e6%94%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>过去二十年，前端史是一部“夺权史”：</p><ul><li>jQuery 夺的是 DOM 的刀；</li><li>Angular 夺的是模块的印；</li><li>React 夺的是渲染的剑；</li><li>Vue 夺的是状态的符。</li></ul><p>四把大印加身，浏览器反成“空壳天子”。</p><p>而今，老馆主一声令下：“朕即框架，诸卿退班！”</p><h3 class=heading-element id=三权分立新标准下的江湖秩序><span>三权分立：新标准下的江湖秩序</span>\n<a href=#%e4%b8%89%e6%9d%83%e5%88%86%e7%ab%8b%e6%96%b0%e6%a0%87%e5%87%86%e4%b8%8b%e7%9a%84%e6%b1%9f%e6%b9%96%e7%a7%a9%e5%ba%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>权柄</th><th>归属</th><th>职责</th><th>口号</th></tr></thead><tbody><tr><td><strong>立法权</strong></td><td>WHATWG/W3C</td><td>写圣旨（HTML、CSS、DOM 标准）</td><td>“凡入典章，万世不易。”</td></tr><tr><td><strong>执法权</strong></td><td>浏览器内核</td><td>掌御林军（渲染管线、沙箱、安全）</td><td>“有朕一日，天下无刀兵。”</td></tr><tr><td><strong>行政权</strong></td><td>开发者 & 工具链</td><td>管民生（DX、脚手架、调试器）</td><td>“百姓只用敲锣，不必造炮。”</td></tr></tbody></table></div><p>Web Components 正是老馆主钦点的 <strong>“锦衣卫”</strong>。</p><h3 class=heading-element id=去框架化的三重暗涌><span>去框架化的三重暗涌</span>\n<a href=#%e5%8e%bb%e6%a1%86%e6%9e%b6%e5%8c%96%e7%9a%84%e4%b8%89%e9%87%8d%e6%9a%97%e6%b6%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p><strong>编译终点迁移</strong></p><p>昨日：Babel/Vite → React/Vue 运行时；</p><p>今日：Babel/Vite → Web Components 原生指令。</p><p>框架退居“DX 大臣”，不再染指最终字节码。</p></li><li><p><strong>生态颗粒度下沉</strong></p><p>UI 库不再打包成“全家桶”，而是 CDN 单文件组件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>https://unpkg.com/@ui/button.js</span></span></code></pre></td></tr></table></div></div></div><p>按需即取，HTTP 缓存即版本管理，npm install 沦为可选项。</p></li><li><p><strong>生命周期归一</strong></p><p>React 的 <code>useEffect</code>、Vue 的 <code>onMounted</code>、Svelte 的 <code>onMount</code>，</p><p>最终都得翻译成同一套浏览器生命周期：</p><p><code>connectedCallback</code>、<code>disconnectedCallback</code>、<code>attributeChangedCallback</code>。</p><p>框架语法糖越甜，底层 API 越收敛，直至“糖衣”可有可无。</p></li></ol><h3 class=heading-element id=未来图景十年后的登基大典><span>未来图景：十年后的登基大典</span>\n<a href=#%e6%9c%aa%e6%9d%a5%e5%9b%be%e6%99%af%e5%8d%81%e5%b9%b4%e5%90%8e%e7%9a%84%e7%99%bb%e5%9f%ba%e5%a4%a7%e5%85%b8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>2027</strong>：浏览器内置 signals 提案落地，状态管理回归原生；</li><li><strong>2029</strong>：CSS <code>@scope</code> + <code>@state</code> 双剑合璧，Shadow DOM 自带响应式；</li><li><strong>2031</strong>：HTTP/4 多路复用 + Import Map 2.0，让“一行 <code>&lt;script type=importmap></code> 即 CDN 全图”成为标配。</li></ul><p>届时，开发者只需写：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>my-app</span><span class=p>&gt;&lt;/</span><span class=nt>my-app</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;module&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;app.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>框架？</p><p>“哦，那是旧朝遗老，偶尔进宫讲史罢了。”</p><blockquote><p>老馆主抚须长笑：<br>“昔日你们借我地基起高楼，今日我把高楼收归国有。</p><p>范式逆流，不是革命，是回家。”</p></blockquote><hr><h2 class=heading-element id=尾声血雨腥风><span>尾声・血雨腥风</span>\n<a href=#%e5%b0%be%e5%a3%b0%e8%a1%80%e9%9b%a8%e8%85%a5%e9%a3%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>“老衲不挑框架，不拒工具，但有一语相赠：<br>十年之后，你迁移的是框架，还是我？”</p></blockquote><p>江湖血雨腥风，黑盒已开。</p><p>要么守着旧山门，十年后再为迁移埋单；</p><p>要么此刻随扫地僧下山，让代码像 HTML 一样长青。</p><p><strong>下回分解</strong>：</p><p>“5 分钟，一指定乾坤——纯原生撸一只可复用计数器，再扔进 React、Vue、Svelte 乱炖！”</p><hr><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>哈哈哈哈哈哈哈，以抖机灵的形式简单聊了一下 Web Components 的发展历程和未来趋势。</p><p>我对 Web Components 充满了浓厚的兴趣，决定花点时间研究研究。<br>剩余的内容在 <a href=/collections/web-components/>Web Components 系列文章</a> 将会持续更新，敬请期待！</p></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/web-components/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・Web Components</span></span></a> 1</div><div class=collection-nav></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-08-05 15:37:16\">更新于 2025-08-05&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/2fb05e7c57ffecf564a5a4fc33dba9f73357d38d rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 文章“大话 Web Components”&#10&#10Commit: 2fb05e7c57ffecf564a5a4fc33dba9f73357d38d [2fb05e7]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-08-05 15:37:16&#10Commit Date: 2025-08-05 15:42:57\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>2fb05e7</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wc-01-prologue/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/web-components/wc-01-prologue/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/web-components/wc-01-prologue/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E9%BB%91%E7%9B%92%E5%87%BA%E5%85%B3%E3%83%BB%E4%B8%89%E6%8A%8A%E9%92%A5%E5%8C%99%E5%AE%9A%E6%B1%9F%E6%B9%96&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E9%BB%91%E7%9B%92%E5%87%BA%E5%85%B3%E3%83%BB%E4%B8%89%E6%8A%8A%E9%92%A5%E5%8C%99%E5%AE%9A%E6%B1%9F%E6%B9%96%7c%0A%7cURL%7chttps://lruihao.cn/posts/wc-01-prologue/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/web-components/wc-01-prologue/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wc-01-prologue/ data-title=黑盒出关・三把钥匙定江湖 data-hashtags=\"Custom element,Shadow DOM,template,slot\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wc-01-prologue/ data-hashtag=\"Custom element\"><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wc-01-prologue/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wc-01-prologue/ data-title=黑盒出关・三把钥匙定江湖 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wc-01-prologue/ data-title=黑盒出关・三把钥匙定江湖><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/custom-element/ class=post-tag title=\"标签 - Custom element\">Custom element</a><a href=/tags/shadow-dom/ class=post-tag title=\"标签 - Shadow DOM\">Shadow DOM</a><a href=/tags/template/ class=post-tag title=\"标签 - template\">template</a><a href=/tags/slot/ class=post-tag title=\"标签 - slot\">slot</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/code-playground/ class=post-nav-item rel=prev title=\"Code Playground\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Code Playground</a><a href=/posts/mermaid-theming/ class=post-nav-item rel=next title=\"让 Mermaid 图表自动跟随系统深浅色\">让 Mermaid 图表自动跟随系统深浅色<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#第一折黑盒现世>第一折・黑盒现世</a></li><li><a href=#第二折三把钥匙镇山门>第二折・三把钥匙镇山门</a><ul><li><a href=#铸兵符custom-elements>铸兵符・Custom Elements</a></li><li><a href=#影分身shadow-dom>影分身・Shadow DOM</a></li><li><a href=#袖里乾坤html-templates--slots>袖里乾坤・HTML Templates & Slots</a></li></ul></li><li><a href=#第三折风云再起>第三折・风云再起</a></li><li><a href=#第四折范式转移浏览器登堂入室>第四折・范式转移・浏览器登堂入室</a><ul><li><a href=#旧朝遗诏从虚拟机到原生执政>旧朝遗诏：从“虚拟机”到“原生执政”</a></li><li><a href=#三权分立新标准下的江湖秩序>三权分立：新标准下的江湖秩序</a></li><li><a href=#去框架化的三重暗涌>去框架化的三重暗涌</a></li><li><a href=#未来图景十年后的登基大典>未来图景：十年后的登基大典</a></li></ul></li><li><a href=#尾声血雨腥风>尾声・血雨腥风</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1de9df7c4c69cb31234c5c05cb69693e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1de9df7c4c69cb31234c5c05cb69693e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wc-01-prologue/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wc-01-prologue/index.md",
    "content": "# 黑盒出关・三把钥匙定江湖\n\n\n江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\n\n<!--more-->\n\n## 第一折・黑盒现世\n\n昔日，React 少侠仗虚拟 DOM 之剑，Vue 剑仙携响应式绫罗，双雄争霸，血溅前端。\n\n忽一日，电闪雷鸣，Chrome 山、Firefox 谷、Safari 崖三地同时金光乍现——一只乌漆嘛黑的小盒破空而出，盒上无门无派，只刻八字：\n\n> **不拜山头，自成一派。**\n{.blockquote-center}\n\n盒盖一开，三股真气冲天而起，惊得 React 剑锋一抖，Vue 绫罗乱颤。众修士齐呼：\n\n“此乃何物？”\n\n盒中悠悠传出一声：\n\n“Web Components——浏览器亲儿子，江湖诨号：黑盒扫地僧。”\n\n---\n\n## 第二折・三把钥匙镇山门\n\n### 铸兵符・Custom Elements\n\n凡得此符者，可铸自家神兵。  \n\n```html\n<my-dog food=\"hotpot\" mood=\"happy\"></my-dog>\n```\n\n今日起，标签随你姓，语义随你编，浏览器照单全收，不查户口。\n\n### 影分身・Shadow DOM\n\n此术一开，样式、DOM、事件皆入黑屋，外头 CSS 千军万马，休想踏进半步。\n\n> “兄弟，你的 `!important` 呢？”  \n> “抱歉，进了影分身，天王老子也得排队。”\n\n### 袖里乾坤・HTML Templates & Slots\n\n袖中一抖，模板千军万马；插槽轻点，内容各就各位。\n\n无需编译，无需打包，一颗 `<template>` 漂洋过海，落地即插即用。  \n\n> 这是真正意义上的“一次编写，到处运行”——比 Java 当年喊的口号还真。\n\n---\n\n## 第三折・风云再起\n\n黑盒既出，江湖格局瞬变：\n\n- **微前端**：Vue2、Vue3、React18、Angular 同屏共舞，互不打脸。  \n- **设计系统**：按钮、输入框、LOGO 化身“原子暗器”，任何门派伸手即取。  \n- **长尾奇袭**：Chrome 插件、VS Code 插件、微信小程序、低代码山寨，皆呼“真香”。  \n- **长寿秘籍**：框架蜜月三年，黑盒随浏览器升级十年，npm 弃坑它不弃。\n\n---\n\n## 第四折・范式转移・浏览器登堂入室\n\n当日头西斜，江湖忽然风起。众侠回头一看，浏览器老馆主身披龙袍、脚踏赤霄，一步跨上金銮殿。  \n\n### 旧朝遗诏：从“虚拟机”到“原生执政”  \n\n过去二十年，前端史是一部“夺权史”：  \n\n- jQuery 夺的是 DOM 的刀；  \n- Angular 夺的是模块的印；  \n- React 夺的是渲染的剑；  \n- Vue 夺的是状态的符。  \n\n四把大印加身，浏览器反成“空壳天子”。\n\n而今，老馆主一声令下：“朕即框架，诸卿退班！”\n\n### 三权分立：新标准下的江湖秩序  \n\n| 权柄 | 归属 | 职责 | 口号 |\n|---|---|---|---|\n| **立法权** | WHATWG/W3C | 写圣旨（HTML、CSS、DOM 标准） | “凡入典章，万世不易。” |\n| **执法权** | 浏览器内核 | 掌御林军（渲染管线、沙箱、安全） | “有朕一日，天下无刀兵。” |\n| **行政权** | 开发者 & 工具链 | 管民生（DX、脚手架、调试器） | “百姓只用敲锣，不必造炮。” |\n\nWeb Components 正是老馆主钦点的 **“锦衣卫”**。\n\n### 去框架化的三重暗涌  \n\n1. **编译终点迁移**\n\n   昨日：Babel/Vite → React/Vue 运行时；\n\n   今日：Babel/Vite → Web Components 原生指令。\n\n   框架退居“DX 大臣”，不再染指最终字节码。\n\n2. **生态颗粒度下沉**\n\n   UI 库不再打包成“全家桶”，而是 CDN 单文件组件：\n\n   ```\n   https://unpkg.com/@ui/button.js\n   ```  \n\n   按需即取，HTTP 缓存即版本管理，npm install 沦为可选项。\n\n3. **生命周期归一**\n\n   React 的 `useEffect`、Vue 的 `onMounted`、Svelte 的 `onMount`，\n\n   最终都得翻译成同一套浏览器生命周期：\n\n   `connectedCallback`、`disconnectedCallback`、`attributeChangedCallback`。\n\n   框架语法糖越甜，底层 API 越收敛，直至“糖衣”可有可无。\n\n### 未来图景：十年后的登基大典  \n\n- **2027**：浏览器内置 signals 提案落地，状态管理回归原生；  \n- **2029**：CSS `@scope` + `@state` 双剑合璧，Shadow DOM 自带响应式；  \n- **2031**：HTTP/4 多路复用 + Import Map 2.0，让“一行 `<script type=importmap>` 即 CDN 全图”成为标配。  \n\n届时，开发者只需写：  \n\n```html\n<my-app></my-app>\n<script type=\"module\" src=\"app.js\"></script>\n```  \n\n框架？\n\n“哦，那是旧朝遗老，偶尔进宫讲史罢了。”\n\n> 老馆主抚须长笑：  \n> “昔日你们借我地基起高楼，今日我把高楼收归国有。\n>\n> 范式逆流，不是革命，是回家。”\n\n---\n\n## 尾声・血雨腥风\n\n> “老衲不挑框架，不拒工具，但有一语相赠：  \n> 十年之后，你迁移的是框架，还是我？”\n\n江湖血雨腥风，黑盒已开。\n\n要么守着旧山门，十年后再为迁移埋单；\n\n要么此刻随扫地僧下山，让代码像 HTML 一样长青。\n\n**下回分解**：\n\n“5 分钟，一指定乾坤——纯原生撸一只可复用计数器，再扔进 React、Vue、Svelte 乱炖！”\n\n---\n\n> [!NOTE]\n> 哈哈哈哈哈哈哈，以抖机灵的形式简单聊了一下 Web Components 的发展历程和未来趋势。\n>\n> 我对 Web Components 充满了浓厚的兴趣，决定花点时间研究研究。  \n> 剩余的内容在 [Web Components 系列文章](/collections/web-components/) 将会持续更新，敬请期待！\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wc-01-prologue/  \n\n"
  },
  {
    "path": "posts/web-components/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Web Components | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "posts/web-components/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Web Components | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Web Components\"><meta itemprop=description content=\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"><meta itemprop=datePublished content=\"2023-10-12T15:16:48+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Custom element,Shadow DOM,template,slot\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/web-components/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Web Components\"><meta property=\"og:description\" content=\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Web Components\"><meta name=twitter:description content=\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/web-components/ title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/posts/web-components/index.xml title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/posts/web-components/feed.json title=\"Web Components | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/posts/web-components/feed.json title=\"Web Components | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/web-components/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web Components</li></ol></nav><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-feather me-1\" aria-hidden=true></i>Web Components <sup>1</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 1723 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 1.72K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/f0f94f24c4bc9a4d90c7e11b521f3f5f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/f0f94f24c4bc9a4d90c7e11b521f3f5f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/web-components/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/web-components/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Web Components | 菠菜眾長</title><link>https://lruihao.cn/posts/web-components/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/posts/web-components/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "posts/web-components/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/posts/web-components/</title><link rel=canonical href=https://lruihao.cn/posts/web-components/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/posts/web-components/\"></head></html>"
  },
  {
    "path": "posts/web-font/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Ttf 字体压缩 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\n\"><meta name=keywords content='Node.js,字体压缩'><meta itemprop=name content=\"ttf 字体压缩\"><meta itemprop=description content=\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\"><meta itemprop=datePublished content=\"2018-10-17T21:38:06+08:00\"><meta itemprop=dateModified content=\"2024-08-16T16:43:36+08:00\"><meta itemprop=wordCount content=\"322\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Node.js,字体压缩\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/web-font/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ttf 字体压缩\"><meta property=\"og:description\" content=\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-17T21:38:06+08:00\"><meta property=\"article:modified_time\" content=\"2024-08-16T16:43:36+08:00\"><meta property=\"article:tag\" content=\"Node.js\"><meta property=\"article:tag\" content=\"字体压缩\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ttf 字体压缩\"><meta name=twitter:description content=\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/web-font/ title=\"ttf 字体压缩 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/linux-hello-c/ title=\"linux 编程初体验\"><link rel=next type=text/html href=https://lruihao.cn/posts/termux1/ title=\"termux 基本使用教程\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/web-font/index.md title=\"ttf 字体压缩 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"ttf 字体压缩\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/web-font\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Node.js, 字体压缩\",\"wordcount\":322,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/web-font\\/\",\"datePublished\":\"2018-10-17T21:38:06+08:00\",\"dateModified\":\"2024-08-16T16:43:36+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/web-font/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Ttf 字体压缩</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Ttf 字体压缩</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-17 21:38:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-17>2018-10-17</time></span>&nbsp;<span title=\"更新于 2024-08-16 16:43:36\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-08-16>2024-08-16</time></span>&nbsp;<span title=\"322 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Ttf 字体压缩\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#安装-nodejs>安装 Node.js</a></li><li><a href=#安装字蛛>安装字蛛</a></li><li><a href=#编写-html>编写 HTML</a></li><li><a href=#压缩字体>压缩字体</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-08-16，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。</p><h2 class=heading-element id=安装-nodejs><span>1 安装 Node.js</span>\n<a href=#%e5%ae%89%e8%a3%85-nodejs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>font-spider 是 Node.js 的一个模块，所以需要安装 Node.js。</p><h2 class=heading-element id=安装字蛛><span>2 安装字蛛</span>\n<a href=#%e5%ae%89%e8%a3%85%e5%ad%97%e8%9b%9b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入命令</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install font-spider -g</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=编写-html><span>3 编写 HTML</span>\n<a href=#%e7%bc%96%e5%86%99-html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/posts/web-font/images/24_1723796848.webp title=文件结构 data-thumbnail=/posts/web-font/images/24_1723796848.webp data-sub-html=\"<h2>文件结构</h2>\"><img loading=lazy src=/posts/web-font/images/24_1723796848.webp alt=文件结构 height=928 width=1840></a></p><p>新建一个 HTML 文件，引用字体文件，并使用自定义字体。如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=cp>&lt;!DOCTYPE html&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>html</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>charset</span><span class=o>=</span><span class=s>&#34;utf-8&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>name</span><span class=o>=</span><span class=s>&#34;viewport&#34;</span> <span class=na>content</span><span class=o>=</span><span class=s>&#34;width=device-width, initial-scale=1&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>title</span><span class=p>&gt;&lt;/</span><span class=nt>title</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>style</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/css&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=p>@</span><span class=k>font-face</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nt>font-family</span><span class=o>:</span> <span class=nt>MMT</span><span class=o>;</span>\n</span></span><span class=line><span class=cl>        <span class=nt>src</span><span class=o>:</span> <span class=nt>url</span><span class=o>(</span><span class=s1>&#39;MMT_579767_SOAJ0.ttf&#39;</span><span class=o>);</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=nt>body</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=k>font-family</span><span class=p>:</span> <span class=n>MMT</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>style</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  这里写要压缩的文字，吧啦吧啦……\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>html</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=压缩字体><span>4 压缩字体</span>\n<a href=#%e5%8e%8b%e7%bc%a9%e5%ad%97%e4%bd%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在当前目录下执行以下命令生成新的字体库：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>font-spider index.html</span></span></code></pre></td></tr></table></div></div></div><p><figure><a class=lightgallery target=_blank href=/posts/web-font/images/24_1723797191.webp title=\"更新这篇文章时在 Mac 下执行的结果\" data-thumbnail=/posts/web-font/images/24_1723797191.webp data-sub-html=\"<h2>执行结果（Mac）</h2><p>更新这篇文章时在 Mac 下执行的结果</p>\"><img loading=lazy src=/posts/web-font/images/24_1723797191.webp alt=执行结果（Mac） height=994 width=1560></a><figcaption class=image-caption>更新这篇文章时在 Mac 下执行的结果</figcaption></figure></p><p><figure><a class=lightgallery target=_blank href=/posts/web-font/images/result.webp title=\"写这篇文章时最开始在 Windows 下执行的结果\" data-thumbnail=/posts/web-font/images/result.webp data-sub-html=\"<h2>执行结果（Windows）</h2><p>写这篇文章时最开始在 Windows 下执行的结果</p>\"><img loading=lazy src=/posts/web-font/images/result.webp alt=执行结果（Windows） height=639 width=1223></a><figcaption class=image-caption>写这篇文章时最开始在 Windows 下执行的结果</figcaption></figure></p><p>执行完后，它会把原来的字体文件移动到 <code>.font-spider</code> 文件夹，而 CSS 中引用的字体文件会被替换为新的压缩后的字体文件，这就是我们需要部署的字体文件。</p><p>下次执行只需要往 HTML 文件中添加新的文字，然后再执行 <code>font-spider index.html</code> 命令即可。</p><h2 class=heading-element id=参考><span>5 参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/aui/font-spider target=_blank rel=\"external nofollow noopener noreferrer\">font-spider<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-08-16 16:43:36\">更新于 2024-08-16&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/09b4ab31900a8ad3c32b33a201d661b62223ad39 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 更新文章“ttf 字体压缩”&#10&#10Commit: 09b4ab31900a8ad3c32b33a201d661b62223ad39 [09b4ab3]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-08-16 16:43:36\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>09b4ab3</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/web-font/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/web-font/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_frontend/_node.js/web-font/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20ttf+%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cttf+%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9%7c%0A%7cURL%7chttps://lruihao.cn/posts/web-font/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_frontend/_node.js/web-font/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/web-font/ data-title=\"Ttf 字体压缩\" data-hashtags=Node.js,字体压缩><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/web-font/ data-hashtag=Node.js><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/web-font/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/web-font/ data-title=\"Ttf 字体压缩\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/web-font/ data-title=\"Ttf 字体压缩\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/node.js/ class=post-tag title=\"标签 - Node.js\">Node.js</a><a href=/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/ class=post-tag title=\"标签 - 字体压缩\">字体压缩</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/linux-hello-c/ class=post-nav-item rel=prev title=\"Linux 编程初体验\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Linux 编程初体验</a><a href=/posts/termux1/ class=post-nav-item rel=next title=\"Termux 基本使用教程\">Termux 基本使用教程<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#安装-nodejs>安装 Node.js</a></li><li><a href=#安装字蛛>安装字蛛</a></li><li><a href=#编写-html>编写 HTML</a></li><li><a href=#压缩字体>压缩字体</a></li><li><a href=#参考>参考</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/379d6c0822bcdcec980d5a8b073966e0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/379d6c0822bcdcec980d5a8b073966e0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/web-font/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/web-font/index.md",
    "content": "# Ttf 字体压缩\n\n\nHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\n\n<!--more-->\n\n## 安装 Node.js\n\nfont-spider 是 Node.js 的一个模块，所以需要安装 Node.js。\n\n## 安装字蛛\n\n输入命令\n\n```bash\nnpm install font-spider -g\n```\n\n## 编写 HTML\n\n![文件结构](images/24_1723796848.webp)\n\n新建一个 HTML 文件，引用字体文件，并使用自定义字体。如下：\n\n```html\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <title></title>\n    <style type=\"text/css\">\n      @font-face {\n        font-family: MMT;\n        src: url('MMT_579767_SOAJ0.ttf');\n      }\n      body {\n        font-family: MMT;\n      }\n    </style>\n  </head>\n  <body>\n  这里写要压缩的文字，吧啦吧啦……\n  </body>\n</html>\n```\n\n## 压缩字体\n\n在当前目录下执行以下命令生成新的字体库：\n\n```bash\nfont-spider index.html\n```\n\n![执行结果（Mac）](images/24_1723797191.webp \"更新这篇文章时在 Mac 下执行的结果\")\n\n![执行结果（Windows）](images/result.webp \"写这篇文章时最开始在 Windows 下执行的结果\")\n\n执行完后，它会把原来的字体文件移动到 `.font-spider` 文件夹，而 CSS 中引用的字体文件会被替换为新的压缩后的字体文件，这就是我们需要部署的字体文件。\n\n下次执行只需要往 HTML 文件中添加新的文字，然后再执行 `font-spider index.html` 命令即可。\n\n## 参考\n\n[font-spider](https://github.com/aui/font-spider)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/web-font/  \n\n"
  },
  {
    "path": "posts/web-server-win/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Windows 上搭建 Web 服务器 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 我用的 win10\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\n\"><meta name=keywords content='server,windows'><meta itemprop=name content=\"windows 上搭建 web 服务器\"><meta itemprop=description content=\"我用的 win10\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\"><meta itemprop=datePublished content=\"2018-10-26T21:56:18+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"544\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"server,windows\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/web-server-win/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"windows 上搭建 web 服务器\"><meta property=\"og:description\" content=\"我用的 win10\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-26T21:56:18+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"server\"><meta property=\"article:tag\" content=\"windows\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"windows 上搭建 web 服务器\"><meta name=twitter:description content=\"我用的 win10\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/web-server-win/ title=\"windows 上搭建 web 服务器 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/gituse/ title=\"使用 Git 上传代码到 github, coding 等仓库\"><link rel=next type=text/html href=https://lruihao.cn/posts/href-301/ title=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/web-server-win/index.md title=\"windows 上搭建 web 服务器 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"windows 上搭建 web 服务器\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/web-server-win\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"server, windows\",\"wordcount\":544,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/web-server-win\\/\",\"datePublished\":\"2018-10-26T21:56:18+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/web-server-win/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Windows 上搭建 Web 服务器</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Windows 上搭建 Web 服务器</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-26 21:56:18\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-26>2018-10-26</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"544 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Windows 上搭建 Web 服务器\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#打开控制面板>打开控制面板</a></li><li><a href=#查看>查看</a></li><li><a href=#网站设置>网站设置</a></li><li><a href=#设置防火墙>设置防火墙</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>我用的 win10</p></blockquote><h3 class=heading-element id=打开控制面板><span>0.1 打开控制面板</span>\n<a href=#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。<br><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/1.png title=打开控制面板 data-thumbnail=/posts/web-server-win/images/1.png data-sub-html=\"<h2>打开控制面板</h2><p>打开控制面板</p>\"><img loading=lazy src=/posts/web-server-win/images/1.png alt=打开控制面板 height=742 width=1408></a><figcaption class=image-caption>打开控制面板</figcaption></figure></p><h3 class=heading-element id=查看><span>0.2 查看</span>\n<a href=#%e6%9f%a5%e7%9c%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更新完成后，打开浏览器，输入<code>http://localhost</code>或者<code>127.0.0.1</code>回车，如果此时出现 IIS7 欢迎界面，说明 Web 服务器已经搭建成功。<br><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/2.png title=查看 data-thumbnail=/posts/web-server-win/images/2.png data-sub-html=\"<h2>查看</h2><p>查看</p>\"><img loading=lazy src=/posts/web-server-win/images/2.png alt=查看 height=1030 width=1920></a><figcaption class=image-caption>查看</figcaption></figure></p><h3 class=heading-element id=网站设置><span>0.3 网站设置</span>\n<a href=#%e7%bd%91%e7%ab%99%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当 web 服务器搭建成功后，我们下一步所要做的就是把我们开发的网站安装到 Web 服务器的目录中。一般情况下，当 Web 服务器安装完成后，会创建路径<code>%系统根目录%inetpub/wwwroot</code>，将我们开发的网站 COPY 到该路径下。即可实现本地访问该网站。<br><a class=lightgallery target=_blank href=/posts/web-server-win/images/3.png title=/posts/web-server-win/images/3.png data-thumbnail=/posts/web-server-win/images/3.png data-sub-html=\"<h2>/posts/web-server-win/images/3.png</h2>\"><img loading=lazy src=/posts/web-server-win/images/3.png alt=/posts/web-server-win/images/3.png height=239 width=886></a></p><p>也可以更改根目录，搜索 IIS，点击网站，Default Web Site，基本设置修改物理路径（<strong>默认站点名称不要改</strong>）<br>我这里改到了 hexo 的 public 相当于 hexo 部署在本地服务器<code>58.45.227.225</code><br><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/5.png title=\"网站设置 1\" data-thumbnail=/posts/web-server-win/images/5.png data-sub-html=\"<h2>/posts/web-server-win/images/5.png</h2><p>网站设置 1</p>\"><img loading=lazy src=/posts/web-server-win/images/5.png alt=/posts/web-server-win/images/5.png height=854 width=487></a><figcaption class=image-caption>网站设置 1</figcaption></figure><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/6.png title=\"网站设置 2\" data-thumbnail=/posts/web-server-win/images/6.png data-sub-html=\"<h2>/posts/web-server-win/images/6.png</h2><p>网站设置 2</p>\"><img loading=lazy src=/posts/web-server-win/images/6.png alt=/posts/web-server-win/images/6.png height=619 width=1156></a><figcaption class=image-caption>网站设置 2</figcaption></figure><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/7.png title=\"网站设置 3\" data-thumbnail=/posts/web-server-win/images/7.png data-sub-html=\"<h2>/posts/web-server-win/images/7.png</h2><p>网站设置 3</p>\"><img loading=lazy src=/posts/web-server-win/images/7.png alt=/posts/web-server-win/images/7.png height=1032 width=1920></a><figcaption class=image-caption>网站设置 3</figcaption></figure></p><h3 class=heading-element id=设置防火墙><span>0.4 设置防火墙</span>\n<a href=#%e8%ae%be%e7%bd%ae%e9%98%b2%e7%81%ab%e5%a2%99 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>让局域网当其它计算机也能访问本地网站资源。具体方法：打开控制面板，选择“系统和安全”，点击“允许程序通过 Windows 防火墙”，在弹出的对话框中勾选“万维网服务 HTTP”右侧的两个复选框，最后点击确定退出。<br><figure><a class=lightgallery target=_blank href=/posts/web-server-win/images/4.png title=设置防火墙 data-thumbnail=/posts/web-server-win/images/4.png data-sub-html=\"<h2>/posts/web-server-win/images/4.png</h2><p>设置防火墙</p>\"><img loading=lazy src=/posts/web-server-win/images/4.png alt=/posts/web-server-win/images/4.png height=742 width=1408></a><figcaption class=image-caption>设置防火墙</figcaption></figure></p><p>在局域网中其它计算机上，打开浏览器就可以通过你电脑的 ip 地址访问了（手机也可以）<br>本地 ip 可以通过 cmd 用 ipconfig 查看</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/web-server-win/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/web-server-win/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/web-server-win/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20windows+%E4%B8%8A%E6%90%AD%E5%BB%BA+web+%E6%9C%8D%E5%8A%A1%E5%99%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cwindows+%E4%B8%8A%E6%90%AD%E5%BB%BA+web+%E6%9C%8D%E5%8A%A1%E5%99%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/web-server-win/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/web-server-win/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/web-server-win/ data-title=\"Windows 上搭建 Web 服务器\" data-hashtags=server,windows><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/web-server-win/ data-hashtag=server><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/web-server-win/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/web-server-win/ data-title=\"Windows 上搭建 Web 服务器\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/web-server-win/ data-title=\"Windows 上搭建 Web 服务器\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a><a href=/tags/windows/ class=post-tag title=\"标签 - windows\">windows</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/gituse/ class=post-nav-item rel=prev title=\"使用 Git 上传代码到 Github, Coding 等仓库\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>使用 Git 上传代码到 Github, Coding 等仓库</a><a href=/posts/href-301/ class=post-nav-item rel=next title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\">使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#打开控制面板>打开控制面板</a></li><li><a href=#查看>查看</a></li><li><a href=#网站设置>网站设置</a></li><li><a href=#设置防火墙>设置防火墙</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/abd7d90c084fce01e013a12cd9dfb8d4.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/abd7d90c084fce01e013a12cd9dfb8d4.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/web-server-win/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/web-server-win/index.md",
    "content": "# Windows 上搭建 Web 服务器\n\n\n> 我用的 win10\n\n### 打开控制面板\n\n选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。  \n![打开控制面板](images/1.png '打开控制面板')\n\n### 查看\n\n更新完成后，打开浏览器，输入`http://localhost`或者`127.0.0.1`回车，如果此时出现 IIS7 欢迎界面，说明 Web 服务器已经搭建成功。  \n![查看](images/2.png '查看')\n\n### 网站设置\n\n当 web 服务器搭建成功后，我们下一步所要做的就是把我们开发的网站安装到 Web 服务器的目录中。一般情况下，当 Web 服务器安装完成后，会创建路径`%系统根目录%inetpub/wwwroot`，将我们开发的网站 COPY 到该路径下。即可实现本地访问该网站。  \n![](images/3.png)\n\n也可以更改根目录，搜索 IIS，点击网站，Default Web Site，基本设置修改物理路径（**默认站点名称不要改**）  \n我这里改到了 hexo 的 public 相当于 hexo 部署在本地服务器`58.45.227.225`  \n![](images/5.png '网站设置 1')\n![](images/6.png '网站设置 2')\n![](images/7.png '网站设置 3')\n\n### 设置防火墙\n\n让局域网当其它计算机也能访问本地网站资源。具体方法：打开控制面板，选择“系统和安全”，点击“允许程序通过 Windows 防火墙”，在弹出的对话框中勾选“万维网服务 HTTP”右侧的两个复选框，最后点击确定退出。  \n![](images/4.png '设置防火墙')\n\n在局域网中其它计算机上，打开浏览器就可以通过你电脑的 ip 地址访问了（手机也可以）  \n本地 ip 可以通过 cmd 用 ipconfig 查看\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/web-server-win/  \n\n"
  },
  {
    "path": "posts/web-server-yun/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>云服务器 CentOS 系统搭建 Web 服务 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"0.1 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 1 [root@VM_0_6_centos /]# yum install -y httpd 注意安装目录，可通过 cd 命令切换。\n\"><meta name=keywords content='server,linux,他山之石'><meta itemprop=name content=\"云服务器 CentOS 系统搭建 web 服务\"><meta itemprop=description content=\"0.1 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 1 [root@VM_0_6_centos /]# yum install -y httpd 注意安装目录，可通过 cd 命令切换。\"><meta itemprop=datePublished content=\"2018-10-29T09:15:58+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"524\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"server,linux,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/web-server-yun/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"云服务器 CentOS 系统搭建 web 服务\"><meta property=\"og:description\" content=\"0.1 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 1 [root@VM_0_6_centos /]# yum install -y httpd 注意安装目录，可通过 cd 命令切换。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-10-29T09:15:58+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"server\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"云服务器 CentOS 系统搭建 web 服务\"><meta name=twitter:description content=\"0.1 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 1 [root@VM_0_6_centos /]# yum install -y httpd 注意安装目录，可通过 cd 命令切换。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/web-server-yun/ title=\"云服务器 CentOS 系统搭建 web 服务 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/href-301/ title=\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\"><link rel=next type=text/html href=https://lruihao.cn/posts/shell/ title=\"shell 脚本初体验\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/web-server-yun/index.md title=\"云服务器 CentOS 系统搭建 web 服务 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"云服务器 CentOS 系统搭建 web 服务\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/web-server-yun\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"server, linux, 他山之石\",\"wordcount\":524,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/web-server-yun\\/\",\"datePublished\":\"2018-10-29T09:15:58+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/web-server-yun/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>云服务器 CentOS 系统搭建 Web 服务</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><a href=https://www.jianshu.com/p/0b67c6c5d21d title=\"转载 -> https://www.jianshu.com/p/0b67c6c5d21d\" target=_blank rel=\"external nofollow noopener noreferrer\" class=icon-repost><i class=\"fa-solid fa-share\" aria-hidden=true></i>\n</a><span>云服务器 CentOS 系统搭建 Web 服务</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-29 09:15:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-29>2018-10-29</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"524 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"云服务器 CentOS 系统搭建 Web 服务\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><ol><li><a href=#搭建-apache-web-服务>搭建 Apache web 服务</a></li><li><a href=#使用-ssh-连接服务器>使用 SSH 连接服务器</a><ol><li><a href=#xshell-方式>Xshell 方式</a></li></ol></li><li><a href=#修改-http-配置>修改 HTTP 配置</a></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h3 class=heading-element id=搭建-apache-web-服务><span>0.1 搭建 Apache web 服务</span>\n<a href=#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li>安装 Apache 超文本传输协议 (HTTP) 服务器的主程序</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>[root@VM_0_6_centos /]# yum install -y httpd</span></span></code></pre></td></tr></table></div></div></div><p>注意安装目录，可通过 cd 命令切换。</p><ol start=2><li>启动 HTTP 服务</li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>[root@VM_0_6_centos /]# systemctl start httpd.service</span></span></code></pre></td></tr></table></div></div></div><p>如果启动失败，可通过 systemctl status httpd.service 查看错误原因。<br>启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。<br>默认根目录<code>/var/www/html/</code></p><h3 class=heading-element id=使用-ssh-连接服务器><span>0.2 使用 SSH 连接服务器</span>\n<a href=#%e4%bd%bf%e7%94%a8-ssh-%e8%bf%9e%e6%8e%a5%e6%9c%8d%e5%8a%a1%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>尝试了两种方式：PuTTY 和 Xshell（推荐）</p><h4 class=heading-element id=xshell-方式><span>0.2.1 Xshell 方式</span>\n<a href=#xshell-%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>官网下载安装 Xshell 打开，输入 ip 账号密码连接主机。</p><p>使用 lrzsz 方式上传下载文件<br>步骤 1：在服务器安装 lrzsz</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>[root@VM_0_6_centos /]# yum -y install lrzsz</span></span></code></pre></td></tr></table></div></div></div><p>步骤 2：输入命令<code>rz</code>打开上传窗口（可以选择多个文件。)<br>使用<code>sz</code>文件名命令可打开从服务器下载文件的保存窗口。</p><h3 class=heading-element id=修改-http-配置><span>0.3 修改 HTTP 配置</span>\n<a href=#%e4%bf%ae%e6%94%b9-http-%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>1.VIM 编辑器打开配置文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>[root@VM_0_6_centos /]# vim /etc/httpd/conf/httpd.conf</span></span></code></pre></td></tr></table></div></div></div><ol start=2><li><p>按<code>I</code>键进入编辑模式</p></li><li><p>找到并修改以下内容</p></li></ol><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl><span class=n>ServerAdmin</span> <span class=err>管理员邮箱，用于浏览器请求报错时展示</span>\n</span></span><span class=line><span class=cl><span class=n>DocumentRoot</span> <span class=err>访问根目录（默认：</span><span class=o>/</span><span class=k>var</span><span class=o>/</span><span class=n>www</span><span class=o>/</span><span class=n>html</span><span class=err>），如项目存放在其他地方，可修改为项目存放位置</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=ne>Directory</span> <span class=s2>&#34;/var/www/html&#34;</span><span class=o>&gt;</span> <span class=err>同</span> <span class=n>DocumentRoot</span> <span class=err>配置</span>\n</span></span><span class=line><span class=cl><span class=n>ServerName</span> <span class=err>服务器</span> <span class=ne>IP</span> <span class=err>或</span> <span class=err>域名</span></span></span></code></pre></td></tr></table></div></div></div><ol start=4><li><p>按下 ESC 键输入<code>:wq</code>保存退出</p></li><li><p>重启服务<code>service httpd restart</code></p></li><li><p>打开浏览器，输入地址访问<br>如：我的项目索引 html 路径为 <code>love/index.html</code>，输入<br><code>http://IP 地址或域名/love/index.html</code></p></li><li><p>访问不成功，先检查网络，再查看 http 服务是否开启，最后检查配置；<br>访问成功，配置完成。</p></li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/web-server-yun/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/web-server-yun.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_repost/web-server-yun.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8+CentOS+%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA+web+%E6%9C%8D%E5%8A%A1&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8+CentOS+%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA+web+%E6%9C%8D%E5%8A%A1%7c%0A%7cURL%7chttps://lruihao.cn/posts/web-server-yun/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_repost/web-server-yun.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/web-server-yun/ data-title=\"云服务器 CentOS 系统搭建 Web 服务\" data-hashtags=server,linux,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/web-server-yun/ data-hashtag=server><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/web-server-yun/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/web-server-yun/ data-title=\"云服务器 CentOS 系统搭建 Web 服务\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/web-server-yun/ data-title=\"云服务器 CentOS 系统搭建 Web 服务\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/server/ class=post-tag title=\"标签 - server\">server</a><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/href-301/ class=post-nav-item rel=prev title=\"使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a><a href=/posts/shell/ class=post-nav-item rel=next title=\"Shell 脚本初体验\">Shell 脚本初体验<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><ol><li><a href=#搭建-apache-web-服务>搭建 Apache web 服务</a></li><li><a href=#使用-ssh-连接服务器>使用 SSH 连接服务器</a><ol><li><a href=#xshell-方式>Xshell 方式</a></li></ol></li><li><a href=#修改-http-配置>修改 HTTP 配置</a></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1d24d2422bd3fe23b32d8f5ed5a26c3f.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1d24d2422bd3fe23b32d8f5ed5a26c3f.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/web-server-yun/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/web-server-yun/index.md",
    "content": "# 云服务器 CentOS 系统搭建 Web 服务\n\n\n### 搭建 Apache web 服务\n\n1. 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\n\n```\n[root@VM_0_6_centos /]# yum install -y httpd\n```\n\n注意安装目录，可通过 cd 命令切换。\n\n2. 启动 HTTP 服务\n\n```\n[root@VM_0_6_centos /]# systemctl start httpd.service\n```\n\n如果启动失败，可通过 systemctl status httpd.service 查看错误原因。  \n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。  \n默认根目录`/var/www/html/`\n\n### 使用 SSH 连接服务器\n\n尝试了两种方式：PuTTY 和 Xshell（推荐）\n\n#### Xshell 方式\n\n官网下载安装 Xshell 打开，输入 ip 账号密码连接主机。\n\n使用 lrzsz 方式上传下载文件  \n步骤 1：在服务器安装 lrzsz\n\n```\n[root@VM_0_6_centos /]# yum -y install lrzsz\n```\n\n步骤 2：输入命令`rz`打开上传窗口（可以选择多个文件。)  \n使用`sz`文件名命令可打开从服务器下载文件的保存窗口。\n\n### 修改 HTTP 配置\n\n1.VIM 编辑器打开配置文件\n\n```\n[root@VM_0_6_centos /]# vim /etc/httpd/conf/httpd.conf\n```\n\n2. 按`I`键进入编辑模式\n\n3. 找到并修改以下内容\n\n```\nServerAdmin 管理员邮箱，用于浏览器请求报错时展示\nDocumentRoot 访问根目录（默认：/var/www/html），如项目存放在其他地方，可修改为项目存放位置\n<Directory \"/var/www/html\"> 同 DocumentRoot 配置\nServerName 服务器 IP 或 域名\n```\n\n4. 按下 ESC 键输入`:wq`保存退出\n\n5. 重启服务`service httpd restart`\n\n6. 打开浏览器，输入地址访问  \n   如：我的项目索引 html 路径为 `love/index.html`，输入  \n   `http://IP 地址或域名/love/index.html`\n\n7. 访问不成功，先检查网络，再查看 http 服务是否开启，最后检查配置；  \n   访问成功，配置完成。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/web-server-yun/  \n> 转载 URL: https://www.jianshu.com/p/0b67c6c5d21d\n"
  },
  {
    "path": "posts/webbiji/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Web 汇总 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\n\"><meta name=keywords content='JavaScript'><meta itemprop=name content=\"web 汇总\"><meta itemprop=description content=\"下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\"><meta itemprop=datePublished content=\"2019-03-18T20:40:55+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1471\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/webbiji/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"web 汇总\"><meta property=\"og:description\" content=\"下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-18T20:40:55+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"web 汇总\"><meta name=twitter:description content=\"下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/webbiji/ title=\"web 汇总 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/fanxing/ title=\"java 泛型 test\"><link rel=next type=text/html href=https://lruihao.cn/posts/bt/ title=宝塔面板安装><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/webbiji/index.md title=\"web 汇总 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"web 汇总\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/webbiji\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript\",\"wordcount\":1471,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/webbiji\\/\",\"datePublished\":\"2019-03-18T20:40:55+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/webbiji/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web 汇总</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Web 汇总</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/memo/ class=post-category title=\"分类 - Memo\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Memo</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-18 20:40:55\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-18>2019-03-18</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1471 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Web 汇总\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#front-end>front-end</a><ol><li><a href=#html>html</a><ol><li><a href=#oblique-和-intalic-的区别>oblique 和 intalic 的区别</a></li><li><a href=#title-显示换行>title 显示换行</a></li><li><a href=#图片类型选择>图片类型选择</a></li></ol></li><li><a href=#css>css</a><ol><li><a href=#flexbox>flexbox</a></li></ol></li><li><a href=#javascript>javascript</a><ol><li><a href=#keydown-和-keypress>keydown 和 keypress</a></li><li><a href=#textcontentinnertext-和-innerhtml-的区别>textContent、innerText 和 innerHTML 的区别</a></li></ol></li><li><a href=#图床方案>图床方案</a></li><li><a href=#font-awesome>font-awesome</a></li><li><a href=#响应式自适应>响应式（自适应）</a></li><li><a href=#jquery>jquery</a></li><li><a href=#qq-推广链接>QQ 推广链接</a></li><li><a href=#google-fonts>Google fonts</a></li><li><a href=#fancybox>fancybox</a></li></ol></li><li><a href=#back-end>back-end</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！</p></blockquote><h2 class=heading-element id=front-end><span>1 front-end</span>\n<a href=#front-end class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=html><span>1.1 html</span>\n<a href=#html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><ul><li><a href=https://lruihao.cn/posts/ms-html-css.html target=_blank rel=\"external nofollow noopener noreferrer\">HTML+CSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></blockquote><h4 class=heading-element id=oblique-和-intalic-的区别><span>1.1.1 oblique 和 intalic 的区别</span>\n<a href=#oblique-%e5%92%8c-intalic-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>这两个都是<code>font-style</code>属性的值，这两个值都能实现倾斜的效果，但是有区别的。</p><ul><li><code>intalic</code>: 这个是字体的倾斜，相当于<strong>斜体</strong>，字体必须有倾斜属性。</li><li><code>oblique</code>: 这个准确地说是让文字倾斜。相当于<strong>斜字</strong>，字体不一定要有倾斜属性。</li></ul><h4 class=heading-element id=title-显示换行><span>1.1.2 title 显示换行</span>\n<a href=#title-%e6%98%be%e7%a4%ba%e6%8d%a2%e8%a1%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><a href=# title=\"第一行\n 第二行\n 第三行\">使用<code>&amp;#10;</code></a>或<a href=# title=\"第一排\r 第二排\r 第三排\">使用<code>&amp;#13;</code></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;a href=&#34;#&#34; title=&#34;第一行&amp;#10; 第二行&amp;#10; 第三行&#34;&gt;使用`&amp;#10;`&lt;/a&gt;\n</span></span><span class=line><span class=cl>&lt;a href=&#34;#&#34; title=&#34;第一排&amp;#13; 第二排&amp;#13; 第三排&#34;&gt;使用`&amp;#13;`&lt;/a&gt;</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=图片类型选择><span>1.1.3 图片类型选择</span>\n<a href=#%e5%9b%be%e7%89%87%e7%b1%bb%e5%9e%8b%e9%80%89%e6%8b%a9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p><figure><a class=lightgallery target=_blank href=/posts/webbiji/images/imgType.jpg title=图片类型选择 data-thumbnail=/posts/webbiji/images/imgType.jpg data-sub-html=\"<h2>图片类型选择</h2><p>图片类型选择</p>\"><img loading=lazy src=/posts/webbiji/images/imgType.jpg alt=图片类型选择 height=525 width=800></a><figcaption class=image-caption>图片类型选择</figcaption></figure></p><h3 class=heading-element id=css><span>1.2 css</span>\n<a href=#css class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=flexbox><span>1.2.1 flexbox</span>\n<a href=#flexbox class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Flex 布局将成为未来布局的首选方案，比如说常见的 bootstrap4 的版本就用 flex 替代了 float 来进行排版。<br>我在网上看到几个很好的教程，图文并茂，一目了然。</p><blockquote><ul><li><a href=https://css-tricks.com/snippets/css/a-guide-to-flexbox/ target=_blank rel=\"external nofollow noopener noreferrer\">A Complete Guide to Flexbox<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></blockquote><ul><li><a href=http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html target=_blank rel=\"external nofollow noopener noreferrer\">Flex 布局教程：语法篇<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>实在懒癌发作，笔记本上手抄了笔记我就不写学习总结了，还有网友 <a href=http://static.vgee.cn/static/index.html target=_blank rel=\"external nofollow noopener noreferrer\">Demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 也写了。</p><h3 class=heading-element id=javascript><span>1.3 javascript</span>\n<a href=#javascript class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=keydown-和-keypress><span>1.3.1 keydown 和 keypress</span>\n<a href=#keydown-%e5%92%8c-keypress class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ul><li><code>keydown</code>：按下键盘键</li><li><code>keypress</code>：紧接着<code>keydown</code>事件触发（只有按下字符键时触发）</li><li>如果用户按下了一个<strong>字符键</strong>不放，就会重复触发<code>keydown</code>和<code>keypress</code>事件，直到用户松开该键为止。</li><li>如果用户按下了一个<strong>非字符键</strong>不放，就会重复触发<code>keydown</code>事件，直到用户松开该键为止。</li></ul><p><a href=https://www.jianshu.com/p/8f839f558319 target=_blank rel=\"external nofollow noopener noreferrer\">详解键盘事件 (keydown，keypress，keyup)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h4 class=heading-element id=textcontentinnertext-和-innerhtml-的区别><span>1.3.2 textContent、innerText 和 innerHTML 的区别</span>\n<a href=#textcontentinnertext-%e5%92%8c-innerhtml-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><blockquote><ol><li>设置标签中的文本内容，应该使用<code>textContent</code>或<code>innerText</code>（更老）属性，区别在于浏览器支援程度</li><li><code>innerHTML</code>能够获得元素内的所有标签内容，也可以设置标签使之生效。（<strong>注意防止 XSS 注入</strong>）</li></ol></blockquote><p>如果某个属性在浏览器中不支持，那么这个属性的类型是<code>undefined</code>，判断这个属性的类型是不是<code>undefined</code>，就知道浏览器是否支持。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// 设置任意的标签中间的任意文本内容\n</span></span></span><span class=line><span class=cl>  <span class=kd>function</span> <span class=nx>setInnerText</span><span class=p>(</span><span class=nx>element</span><span class=p>,</span> <span class=nx>text</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=c1>//判断浏览器是否支持这个属性\n</span></span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=k>typeof</span> <span class=nx>element</span><span class=p>.</span><span class=nx>textContent</span> <span class=o>==</span> <span class=s2>&#34;undefined&#34;</span><span class=p>)</span> <span class=p>{</span><span class=c1>//不支持\n</span></span></span><span class=line><span class=cl>          <span class=nx>element</span><span class=p>.</span><span class=nx>innerText</span> <span class=o>=</span> <span class=nx>text</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span> <span class=k>else</span> <span class=p>{</span><span class=c1>//支持这个属性\n</span></span></span><span class=line><span class=cl>          <span class=nx>element</span><span class=p>.</span><span class=nx>textContent</span> <span class=o>=</span> <span class=nx>text</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=图床方案><span>1.4 图床方案</span>\n<a href=#%e5%9b%be%e5%ba%8a%e6%96%b9%e6%a1%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><ul><li>自行搭建\n比如使用开源图床 ImgURL 搭建的<code>img.lruihao.cn</code>（<strong>需要服务器</strong>）<br>使用上传工具加第三方免费空间，比如<code>PicGo + 腾讯云 COS</code>（<strong>无需服务器</strong>）</li></ul></blockquote><ul><li>使用各大图床<br>诸如 sm.ms，腾讯云 COS，阿里云 OSS，七牛云，又拍云，Github，微博图床，ImgURL 图床等等</li></ul><h3 class=heading-element id=font-awesome><span>1.5 font-awesome</span>\n<a href=#font-awesome class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>现在使用 5 的版本，可以使用<code>webfont+css</code>或<code>svg+js</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;link</span> <span class=na>rel=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href=</span><span class=s>&#34;https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css&#34;</span><span class=nt>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>其他的图标 js</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;script src=&#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js&#34;&gt;&lt;/script&gt;\n</span></span><span class=line><span class=cl>&lt;svg class=&#34;card-avatar&#34; aria-hidden=&#34;true&#34;&gt;\n</span></span><span class=line><span class=cl>  &lt;use xlink:href=&#34;#icon-{{n+1}}&#34;&gt;&lt;/use&gt;                &lt;!--n 为一个数字--&gt;\n</span></span><span class=line><span class=cl>&lt;/svg&gt;</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=响应式自适应><span>1.6 响应式（自适应）</span>\n<a href=#%e5%93%8d%e5%ba%94%e5%bc%8f%e8%87%aa%e9%80%82%e5%ba%94 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;link</span> <span class=na>rel=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href=</span><span class=s>&#34;https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js&#34;</span><span class=nt>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;meta</span> <span class=na>name=</span><span class=s>&#34;viewport&#34;</span> <span class=na>content=</span><span class=s>&#34;width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0&#34;</span><span class=nt>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><blockquote><ul><li>.col-xs- 超小屏幕 手机 &lt;768px</li><li>.col-sm- 小屏幕 平板 >=768px</li><li>.col-md- 中等屏幕 >=992px</li><li>.col-lg- 大屏幕 >1200px</li></ul></blockquote><p>css3 写法 @media（宽度具体调整）</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=c>/* 手机等小屏幕手持设备 */</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>media</span> <span class=nt>screen</span> <span class=nt>and</span> <span class=o>(</span><span class=nt>min-width</span><span class=o>:</span> <span class=nt>320px</span><span class=o>)</span> <span class=nt>and</span> <span class=o>(</span><span class=nt>max-width</span><span class=o>:</span> <span class=nt>480px</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c>/*手机端 css 样式表*/</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=c>/* 平板之类的宽度 1024 以下设备 */</span>\n</span></span><span class=line><span class=cl><span class=p>@</span><span class=k>media</span> <span class=nt>only</span> <span class=nt>screen</span> <span class=nt>and</span> <span class=o>(</span><span class=nt>min-width</span><span class=o>:</span> <span class=nt>321px</span><span class=o>)</span> <span class=nt>and</span> <span class=o>(</span><span class=nt>max-width</span><span class=o>:</span> <span class=nt>1024px</span><span class=o>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=c>/*电脑端 css 样式表*/</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>link 引入不同 css</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=c>&lt;!--手机端--&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;link</span> <span class=na>rel=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>type=</span><span class=s>&#34;text/css&#34;</span> <span class=na>href=</span><span class=s>&#34;style_phone.css&#34;</span> <span class=na>media=</span><span class=s>&#34;screen and (max-width: 960px)&#34;</span><span class=nt>/&gt;</span>\n</span></span><span class=line><span class=cl><span class=c>&lt;!--电脑端--&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;link</span> <span class=na>rel=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>type=</span><span class=s>&#34;text/css&#34;</span> <span class=na>href=</span><span class=s>&#34;style_PC.css&#34;</span> <span class=na>media=</span><span class=s>&#34;screen and (min-width: 960px)&#34;</span><span class=nt>/&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=jquery><span>1.7 jquery</span>\n<a href=#jquery class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://code.jquery.com/jquery-3.3.1.min.js&#34;</span><span class=nt>&gt;&lt;/script&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js&#34;</span><span class=nt>&gt;&lt;/script&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js&#34;</span><span class=nt>&gt;&lt;/script&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js&#34;</span><span class=nt>&gt;&lt;/script&gt;</span>\n</span></span><span class=line><span class=cl>//还有其他的源 ...</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=qq-推广链接><span>1.8 QQ 推广链接</span>\n<a href=#qq-%e6%8e%a8%e5%b9%bf%e9%93%be%e6%8e%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p><a href=https://shang.qq.com/v3/widget.html target=_blank rel=\"external nofollow noopener noreferrer\">QQ 推广<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <a href=https://qun.qq.com/join.html target=_blank rel=\"external nofollow noopener noreferrer\">QQ 群<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>&lt;a target=&#34;_blank&#34; href=&#34;https://wpa.qq.com/msgrd?v=3&amp;uin=1074627678&amp;site=qq&amp;menu=yes&#34;&gt;&lt;img border=&#34;0&#34; src=&#34;http://wpa.qq.com/pa?p=2:1074627678:51&#34; alt=&#34;点击这里给我发消息&#34; title=&#34;点击这里给我发消息&#34;/&gt;&lt;/a&gt;</span></span></code></pre></td></tr></table></div></div></div><p><a target=_blank href=\"https://wpa.qq.com/msgrd?v=3&uin=1074627678&site=qq&menu=yes\"><img border=0 src=\"https://wpa.qq.com/pa?p=2:1074627678:51\" alt=点击这里给我发消息 title=点击这里给我发消息></a></p><h3 class=heading-element id=google-fonts><span>1.9 Google fonts</span>\n<a href=#google-fonts class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>https://fonts.google.com/\n</span></span><span class=line><span class=cl>一般选用国内源镜像替代（待补充 ...）\n</span></span><span class=line><span class=cl><span class=gi>+ https://fonts.loli.net\n</span></span></span><span class=line><span class=cl><span class=gi>+ //fonts.lug.ustc.edu.cn\n</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=fancybox><span>1.10 fancybox</span>\n<a href=#fancybox class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://github.com/fancyapps/fancybox target=_blank rel=\"external nofollow noopener noreferrer\">github 介绍<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <a href=https://www.bootcdn.cn/fancybox/ target=_blank rel=\"external nofollow noopener noreferrer\">fancybox 源<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;link</span> <span class=na>href=</span><span class=s>&#34;https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css&#34;</span> <span class=na>rel=</span><span class=s>&#34;stylesheet&#34;</span><span class=nt>&gt;</span>\n</span></span><span class=line><span class=cl><span class=nt>&lt;script</span> <span class=na>src=</span><span class=s>&#34;https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js&#34;</span><span class=nt>&gt;&lt;/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=back-end><span>2 back-end</span>\n<a href=#back-end class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>更多学习内容见 <a href=https://github.com/Lruihao/web-dev-data target=_blank rel=\"external nofollow noopener noreferrer\">学习课件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>练习作业 <a href=https://github.com/Lruihao/hw target=_blank rel=\"external nofollow noopener noreferrer\">源码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>+<a href=http://hw.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">Demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/webbiji/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/webbiji/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_memo/webbiji/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20web+%E6%B1%87%E6%80%BB&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cweb+%E6%B1%87%E6%80%BB%7c%0A%7cURL%7chttps://lruihao.cn/posts/webbiji/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_memo/webbiji/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/webbiji/ data-title=\"Web 汇总\" data-hashtags=JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/webbiji/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/webbiji/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/webbiji/ data-title=\"Web 汇总\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/webbiji/ data-title=\"Web 汇总\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/fanxing/ class=post-nav-item rel=prev title=\"Java 泛型 Test\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 泛型 Test</a><a href=/posts/bt/ class=post-nav-item rel=next title=宝塔面板安装>宝塔面板安装<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#front-end>front-end</a><ol><li><a href=#html>html</a><ol><li><a href=#oblique-和-intalic-的区别>oblique 和 intalic 的区别</a></li><li><a href=#title-显示换行>title 显示换行</a></li><li><a href=#图片类型选择>图片类型选择</a></li></ol></li><li><a href=#css>css</a><ol><li><a href=#flexbox>flexbox</a></li></ol></li><li><a href=#javascript>javascript</a><ol><li><a href=#keydown-和-keypress>keydown 和 keypress</a></li><li><a href=#textcontentinnertext-和-innerhtml-的区别>textContent、innerText 和 innerHTML 的区别</a></li></ol></li><li><a href=#图床方案>图床方案</a></li><li><a href=#font-awesome>font-awesome</a></li><li><a href=#响应式自适应>响应式（自适应）</a></li><li><a href=#jquery>jquery</a></li><li><a href=#qq-推广链接>QQ 推广链接</a></li><li><a href=#google-fonts>Google fonts</a></li><li><a href=#fancybox>fancybox</a></li></ol></li><li><a href=#back-end>back-end</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/27e1cf5e4c051c452d3a3b4306864a77.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/27e1cf5e4c051c452d3a3b4306864a77.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/webbiji/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/webbiji/index.md",
    "content": "# Web 汇总\n\n\n> 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\n\n<!--more-->\n\n## front-end\n\n### html\n\n> - [HTML+CSS](https://lruihao.cn/posts/ms-html-css.html)\n\n#### oblique 和 intalic 的区别\n\n这两个都是`font-style`属性的值，这两个值都能实现倾斜的效果，但是有区别的。\n\n- `intalic`: 这个是字体的倾斜，相当于**斜体**，字体必须有倾斜属性。\n- `oblique`: 这个准确地说是让文字倾斜。相当于**斜字**，字体不一定要有倾斜属性。\n\n#### title 显示换行\n\n<a href=\"#\" title=\"第一行&#10; 第二行&#10; 第三行\">使用`&#10;`</a>或<a href=\"#\" title=\"第一排&#13; 第二排&#13; 第三排\">使用`&#13;`</a>\n\n```\n<a href=\"#\" title=\"第一行&#10; 第二行&#10; 第三行\">使用`&#10;`</a>\n<a href=\"#\" title=\"第一排&#13; 第二排&#13; 第三排\">使用`&#13;`</a>\n```\n\n#### 图片类型选择\n\n![图片类型选择](images/imgType.jpg '图片类型选择')\n\n### css\n\n#### flexbox\n\nFlex 布局将成为未来布局的首选方案，比如说常见的 bootstrap4 的版本就用 flex 替代了 float 来进行排版。  \n我在网上看到几个很好的教程，图文并茂，一目了然。\n\n> - [A Complete Guide to Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)\n\n- [Flex 布局教程：语法篇](http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)\n\n实在懒癌发作，笔记本上手抄了笔记我就不写学习总结了，还有网友 [Demo](http://static.vgee.cn/static/index.html) 也写了。\n\n### javascript\n\n#### keydown 和 keypress\n\n- `keydown`：按下键盘键\n- `keypress`：紧接着`keydown`事件触发（只有按下字符键时触发）\n- 如果用户按下了一个**字符键**不放，就会重复触发`keydown`和`keypress`事件，直到用户松开该键为止。\n- 如果用户按下了一个**非字符键**不放，就会重复触发`keydown`事件，直到用户松开该键为止。\n\n[详解键盘事件 (keydown，keypress，keyup)](https://www.jianshu.com/p/8f839f558319)\n\n#### textContent、innerText 和 innerHTML 的区别\n\n> 1. 设置标签中的文本内容，应该使用`textContent`或`innerText`（更老）属性，区别在于浏览器支援程度\n> 2. `innerHTML`能够获得元素内的所有标签内容，也可以设置标签使之生效。（**注意防止 XSS 注入**）\n\n如果某个属性在浏览器中不支持，那么这个属性的类型是`undefined`，判断这个属性的类型是不是`undefined`，就知道浏览器是否支持。\n\n```js 兼容代码 设置任意的标签中间的任意文本内容\n<script>\n  // 设置任意的标签中间的任意文本内容\n  function setInnerText(element, text) {\n      //判断浏览器是否支持这个属性\n      if (typeof element.textContent == \"undefined\") {//不支持\n          element.innerText = text;\n      } else {//支持这个属性\n          element.textContent = text;\n      }\n  };\n</script>\n```\n\n### 图床方案\n\n> - 自行搭建\n>   比如使用开源图床 ImgURL 搭建的`img.lruihao.cn`（**需要服务器**）  \n>   使用上传工具加第三方免费空间，比如`PicGo + 腾讯云 COS`（**无需服务器**）\n\n- 使用各大图床  \n  诸如 sm.ms，腾讯云 COS，阿里云 OSS，七牛云，又拍云，Github，微博图床，ImgURL 图床等等\n\n### font-awesome\n\n现在使用 5 的版本，可以使用`webfont+css`或`svg+js`\n\n```xml font-awesome\n<link rel=\"stylesheet\" href=\"https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css\">\n```\n\n其他的图标 js\n\n```\n<script src=\"//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\"></script>\n<svg class=\"card-avatar\" aria-hidden=\"true\">\n  <use xlink:href=\"#icon-{{n+1}}\"></use>                <!--n 为一个数字-->\n</svg>\n```\n\n### 响应式（自适应）\n\n```xml bootstrap\n<link rel=\"stylesheet\" href=\"https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css\">\n<script src=\"https://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js\">\n```\n\n```xml\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0\">\n```\n\n> - .col-xs- 超小屏幕 手机 <768px\n> - .col-sm- 小屏幕 平板 >=768px\n> - .col-md- 中等屏幕 >=992px\n> - .col-lg- 大屏幕 >1200px\n\ncss3 写法 @media（宽度具体调整）\n\n```css css3 写法@media （宽度具体调整）\n/* 手机等小屏幕手持设备 */\n@media screen and (min-width: 320px) and (max-width: 480px) {\n  /*手机端 css 样式表*/\n}\n/* 平板之类的宽度 1024 以下设备 */\n@media only screen and (min-width: 321px) and (max-width: 1024px) {\n  /*电脑端 css 样式表*/\n}\n```\n\nlink 引入不同 css\n\n```xml link 引入不同 css\n<!--手机端-->\n<link rel=\"stylesheet\" type=\"text/css\" href=\"style_phone.css\" media=\"screen and (max-width: 960px)\"/>\n<!--电脑端-->\n<link rel=\"stylesheet\" type=\"text/css\" href=\"style_PC.css\" media=\"screen and (min-width: 960px)\"/>\n```\n\n### jquery\n\n```xml jquery\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n\n<script src=\"https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js\"></script>\n\n<script src=\"https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js\"></script>\n\n<script src=\"http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\"></script>\n//还有其他的源 ...\n```\n\n### QQ 推广链接\n\n> [QQ 推广](https://shang.qq.com/v3/widget.html) [QQ 群](https://qun.qq.com/join.html)\n\n```\n<a target=\"_blank\" href=\"https://wpa.qq.com/msgrd?v=3&uin=1074627678&site=qq&menu=yes\"><img border=\"0\" src=\"http://wpa.qq.com/pa?p=2:1074627678:51\" alt=\"点击这里给我发消息\" title=\"点击这里给我发消息\"/></a>\n```\n\n<a target=\"_blank\" href=\"https://wpa.qq.com/msgrd?v=3&uin=1074627678&site=qq&menu=yes\"><img border=\"0\" src=\"https://wpa.qq.com/pa?p=2:1074627678:51\" alt=\"点击这里给我发消息\" title=\"点击这里给我发消息\"/></a>\n\n### Google fonts\n\n```diff\nhttps://fonts.google.com/\n一般选用国内源镜像替代（待补充 ...）\n+ https://fonts.loli.net\n+ //fonts.lug.ustc.edu.cn\n```\n\n### fancybox\n\n[github 介绍](https://github.com/fancyapps/fancybox)&emsp;[fancybox 源](https://www.bootcdn.cn/fancybox/)\n\n```xml fancybox 源\n<link href=\"https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css\" rel=\"stylesheet\">\n<script src=\"https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js\"></script>\n```\n\n## back-end\n\n> 更多学习内容见 [学习课件](https://github.com/Lruihao/web-dev-data)  \n> 练习作业 [源码](https://github.com/Lruihao/hw)+[Demo](http://hw.lruihao.cn/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/webbiji/  \n\n"
  },
  {
    "path": "posts/windefault/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Ubuntu + Windows 双系统默认启动项设置 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\n\"><meta name=keywords content='linux,windows,ubuntu'><meta itemprop=name content=\"ubuntu + windows 双系统默认启动项设置\"><meta itemprop=description content=\"双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\"><meta itemprop=datePublished content=\"2019-03-21T12:48:30+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=wordCount content=\"397\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"linux,windows,ubuntu\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/windefault/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ubuntu + windows 双系统默认启动项设置\"><meta property=\"og:description\" content=\"双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-03-21T12:48:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-17T20:39:48+08:00\"><meta property=\"article:tag\" content=\"linux\"><meta property=\"article:tag\" content=\"windows\"><meta property=\"article:tag\" content=\"ubuntu\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ubuntu + windows 双系统默认启动项设置\"><meta name=twitter:description content=\"双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/windefault/ title=\"ubuntu + windows 双系统默认启动项设置 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/player/ title=宅音乐播放器><link rel=next type=text/html href=https://lruihao.cn/posts/substatus/ title=\"Java 父类子类的对象初始化过程\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/windefault/index.md title=\"ubuntu + windows 双系统默认启动项设置 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"ubuntu + windows 双系统默认启动项设置\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/windefault\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"linux, windows, ubuntu\",\"wordcount\":397,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/windefault\\/\",\"datePublished\":\"2019-03-21T12:48:30+08:00\",\"dateModified\":\"2023-11-17T20:39:48+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/windefault/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Ubuntu + Windows 双系统默认启动项设置</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Ubuntu + Windows 双系统默认启动项设置</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/os/ class=post-category title=\"分类 - OS\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> OS</a></span></div><div class=post-meta-line><span title=\"发布于 2019-03-21 12:48:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-03-21>2019-03-21</time></span>&nbsp;<span title=\"更新于 2023-11-17 20:39:48\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-17>2023-11-17</time></span>&nbsp;<span title=\"397 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Ubuntu + Windows 双系统默认启动项设置\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/windefault/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/windefault/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#修改etcdefaultgrub文件>修改<code>/etc/default/grub</code>文件</a></li><li><a href=#更新启动配置文件>更新启动配置文件</a></li><li><a href=#重启>重启</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-17，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。</p></blockquote><h2 class=heading-element id=修改etcdefaultgrub文件><span>1 修改<code>/etc/default/grub</code>文件</span>\n<a href=#%e4%bf%ae%e6%94%b9etcdefaultgrub%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>同时按住键盘上的“Ctrl Alt T”三个键（即快捷键“Ctrl+Alt+T”），打开终端窗口。在终端内输入 sudo gedit /etc/default/grub 按 Enter 键确认，提示输入用户密码，输入的用户密码是看不见的，不要管它，输入完成确认即可打开 grub 文件。</p></blockquote><p><a class=lightgallery target=_blank href=/posts/windefault/images/1.png title=1 data-thumbnail=/posts/windefault/images/1.png data-sub-html=\"<h2>1</h2>\"><img loading=lazy src=/posts/windefault/images/1.png alt=1 height=1080 width=1920></a></p><blockquote><p>把 grub 文件中的 <code>GRUB_DEFAULT=0</code> 中的 0 改为 <code>saved</code>, 把 <code>GRUB_TIMEOUT=10</code> 中的 10 改为 5。（这里的 5 表示开机时等待选择操作系统是时间是 5 秒）\n在文件末尾添加 <code>GRUB_SAVEDEFAULT=true</code>后保存文件并退出。</p></blockquote><p><a class=lightgallery target=_blank href=/posts/windefault/images/2.png title=2 data-thumbnail=/posts/windefault/images/2.png data-sub-html=\"<h2>2</h2>\"><img loading=lazy src=/posts/windefault/images/2.png alt=2 height=1080 width=1920></a></p><h2 class=heading-element id=更新启动配置文件><span>2 更新启动配置文件</span>\n<a href=#%e6%9b%b4%e6%96%b0%e5%90%af%e5%8a%a8%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>在终端输入 sudo update-grub 按 Enter 键确认</p></blockquote><p><a class=lightgallery target=_blank href=/posts/windefault/images/3.png title=3 data-thumbnail=/posts/windefault/images/3.png data-sub-html=\"<h2>3</h2>\"><img loading=lazy src=/posts/windefault/images/3.png alt=3 height=1080 width=1920></a></p><h2 class=heading-element id=重启><span>3 重启</span>\n<a href=#%e9%87%8d%e5%90%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>sudo reboot</code>或者点击重启，重启到启动菜单时，选择你要更改为默认启动项的系统，按 Enter 键确认启动即可，下次启动时刚刚选择的系统即为默认启动系统，直到你手动选择启动其他的系统为止。以后可以轻松的来回切换默认系统了。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-17 20:39:48\">更新于 2023-11-17&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/b034df8bf933c0c3253d4950797da157bfed5ce9 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 整理系统文件夹分类&#10_ 开头的为物理分类，和 Hugo 的文件夹区分开来&#10Commit: b034df8bf933c0c3253d4950797da157bfed5ce9 [b034df8]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-17 20:39:48\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>b034df8</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/windefault/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/windefault/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_grocery/windefault/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20ubuntu+%2B+windows+%E5%8F%8C%E7%B3%BB%E7%BB%9F%E9%BB%98%E8%AE%A4%E5%90%AF%E5%8A%A8%E9%A1%B9%E8%AE%BE%E7%BD%AE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cubuntu+%2B+windows+%E5%8F%8C%E7%B3%BB%E7%BB%9F%E9%BB%98%E8%AE%A4%E5%90%AF%E5%8A%A8%E9%A1%B9%E8%AE%BE%E7%BD%AE%7c%0A%7cURL%7chttps://lruihao.cn/posts/windefault/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_grocery/windefault/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/windefault/ data-title=\"Ubuntu + Windows 双系统默认启动项设置\" data-hashtags=linux,windows,ubuntu><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/windefault/ data-hashtag=linux><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/windefault/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/windefault/ data-title=\"Ubuntu + Windows 双系统默认启动项设置\" data-image=/posts/windefault/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/windefault/ data-title=\"Ubuntu + Windows 双系统默认启动项设置\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/linux/ class=post-tag title=\"标签 - linux\">linux</a><a href=/tags/windows/ class=post-tag title=\"标签 - windows\">windows</a><a href=/tags/ubuntu/ class=post-tag title=\"标签 - ubuntu\">ubuntu</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/player/ class=post-nav-item rel=prev title=宅音乐播放器><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>宅音乐播放器</a><a href=/posts/substatus/ class=post-nav-item rel=next title=\"Java 父类子类的对象初始化过程\">Java 父类子类的对象初始化过程<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#修改etcdefaultgrub文件>修改<code>/etc/default/grub</code>文件</a></li><li><a href=#更新启动配置文件>更新启动配置文件</a></li><li><a href=#重启>重启</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1c5bbc39c6512b61cc5c915f8ad0b839.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1c5bbc39c6512b61cc5c915f8ad0b839.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/windefault/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/windefault/index.md",
    "content": "# Ubuntu + Windows 双系统默认启动项设置\n\n\n> 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\n\n<!--more-->\n\n## 修改`/etc/default/grub`文件\n\n> 同时按住键盘上的“Ctrl Alt T”三个键（即快捷键“Ctrl+Alt+T”），打开终端窗口。在终端内输入 sudo gedit /etc/default/grub 按 Enter 键确认，提示输入用户密码，输入的用户密码是看不见的，不要管它，输入完成确认即可打开 grub 文件。\n\n![1](images/1.png)\n\n> 把 grub 文件中的 `GRUB_DEFAULT=0` 中的 0 改为 `saved`, 把 `GRUB_TIMEOUT=10` 中的 10 改为 5。（这里的 5 表示开机时等待选择操作系统是时间是 5 秒）\n> 在文件末尾添加 `GRUB_SAVEDEFAULT=true`后保存文件并退出。\n\n![2](images/2.png)\n\n## 更新启动配置文件\n\n> 在终端输入 sudo update-grub 按 Enter 键确认\n\n![3](images/3.png)\n\n## 重启\n\n`sudo reboot`或者点击重启，重启到启动菜单时，选择你要更改为默认启动项的系统，按 Enter 键确认启动即可，下次启动时刚刚选择的系统即为默认启动系统，直到你手动选择启动其他的系统为止。以后可以轻松的来回切换默认系统了。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/windefault/  \n\n"
  },
  {
    "path": "posts/wximgpy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>基本 Python 实现的爬取微信好友头像，并拼接成大图 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\n\"><meta name=keywords content='wxpy,pillow,Python'><meta itemprop=name content=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><meta itemprop=description content=\"Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\"><meta itemprop=datePublished content=\"2019-04-20T13:32:58+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=wordCount content=\"1466\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"wxpy,pillow,Python\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wximgpy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><meta property=\"og:description\" content=\"Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-20T13:32:58+08:00\"><meta property=\"article:modified_time\" content=\"2023-12-08T20:26:13+08:00\"><meta property=\"article:tag\" content=\"wxpy\"><meta property=\"article:tag\" content=\"pillow\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><meta name=twitter:description content=\"Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wximgpy/ title=\"基本 python 实现的爬取微信好友头像，并拼接成大图 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hellojava/ title=\"用记事本编写第一个 java 程序\"><link rel=next type=text/html href=https://lruihao.cn/posts/wxpy1/ title=\"python 玩微信：初探 wxpy\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wximgpy/index.md title=\"基本 python 实现的爬取微信好友头像，并拼接成大图 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wximgpy\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"wxpy, pillow, Python\",\"wordcount\":1466,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wximgpy\\/\",\"datePublished\":\"2019-04-20T13:32:58+08:00\",\"dateModified\":\"2023-12-08T20:26:13+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wximgpy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>基本 Python 实现的爬取微信好友头像，并拼接成大图</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>基本 Python 实现的爬取微信好友头像，并拼接成大图</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-20 13:32:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-20>2019-04-20</time></span>&nbsp;<span title=\"更新于 2023-12-08 20:26:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-08>2023-12-08</time></span>&nbsp;<span title=\"1466 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/wximgpy/images/1.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/wximgpy/images/1.jpg></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#依赖>依赖</a></li><li><a href=#安装>安装</a></li><li><a href=#运行>运行</a></li><li><a href=#群友全家福>群友全家福</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）<br><strong><em>文中涉及的图片涉及个人隐私，仅做举例，请勿传播</em></strong><br><strong>文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删</strong></p></blockquote><h2 class=heading-element id=依赖><span>1 依赖</span>\n<a href=#%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>wxpy（Pythone 登录微信）</li><li>pillow（拼接头像）</li><li>os（文件夹操作）</li><li>math（数学计算）</li></ul><blockquote><p><a href=https://github.com/youfou/wxpy target=_blank rel=\"external nofollow noopener noreferrer\">wxpy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>:<br>  wxpy 在 itchat 的基础上，通过大量接口优化提升了模块的易用性，并进行丰富的功能扩展。<br><a href=https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000 target=_blank rel=\"external nofollow noopener noreferrer\">PIL<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>：<br>  Python Imaging Library，已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大，但 API 却非常简单易用。由于 PIL 仅支持到 Python 2.7，加上年久失修，于是一群志愿者在 PIL 的基础上创建了兼容的版本，名字叫 Pillow，支持最新 Python 3.x，又加入了许多新特性，因此，我们可以直接安装使用 Pillow。</p></blockquote><h2 class=heading-element id=安装><span>2 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pip install -U wxpy -i <span class=s2>&#34;https://pypi.doubanio.com/simple/&#34;</span>\n</span></span><span class=line><span class=cl>pip install pillow</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=运行><span>3 运行</span>\n<a href=#%e8%bf%90%e8%a1%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>如果在 Python IDE 运行出错，可能是因为微信好友的 id 是特殊字符，在 IDE 打印出错，注释掉代码 36 行即可。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>from</span> <span class=nn>wxpy</span> <span class=kn>import</span> <span class=o>*</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>math</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>PIL.Image</span> <span class=k>as</span> <span class=nn>Image</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>sys</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>shutil</span>\n</span></span><span class=line><span class=cl><span class=c1>#</span>\n</span></span><span class=line><span class=cl><span class=c1>### 获取文件所在的绝对路径</span>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>get_dir</span><span class=p>(</span><span class=n>sys_arg</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>  <span class=n>sys_arg</span> <span class=o>=</span> <span class=n>sys_arg</span><span class=o>.</span><span class=n>split</span><span class=p>(</span><span class=s2>&#34;/&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=n>dir_str</span> <span class=o>=</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=n>count</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=n>cur_dir</span> <span class=ow>in</span> <span class=n>sys_arg</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>count</span> <span class=o>==</span> <span class=mi>0</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>count</span> <span class=o>=</span> <span class=n>count</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>count</span> <span class=o>==</span> <span class=nb>len</span><span class=p>(</span><span class=n>sys_arg</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>      <span class=k>break</span>\n</span></span><span class=line><span class=cl>    <span class=n>dir_str</span> <span class=o>=</span> <span class=n>dir_str</span> <span class=o>+</span> <span class=n>cur_dir</span> <span class=o>+</span> <span class=s2>&#34;/&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=n>count</span> <span class=o>=</span> <span class=n>count</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=n>dir_str</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>curr_dir</span> <span class=o>=</span> <span class=n>get_dir</span><span class=p>(</span><span class=n>sys</span><span class=o>.</span><span class=n>argv</span><span class=p>[</span><span class=mi>0</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>bot</span> <span class=o>=</span> <span class=n>Bot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 机器人账号自身</span>\n</span></span><span class=line><span class=cl><span class=n>myself</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>self</span>\n</span></span><span class=line><span class=cl><span class=n>my_friends</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>friends</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=ow>not</span> <span class=n>os</span><span class=o>.</span><span class=n>path</span><span class=o>.</span><span class=n>exists</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;group-images/&#34;</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>  <span class=n>os</span><span class=o>.</span><span class=n>mkdir</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;group-images/&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>count</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>friend</span> <span class=ow>in</span> <span class=n>my_friends</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=n>friend</span><span class=o>.</span><span class=n>nick_name</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>friend</span><span class=o>.</span><span class=n>get_avatar</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;group-images/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>count</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;.jpg&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>count</span> <span class=o>=</span> <span class=n>count</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 获取下载的头像文件</span>\n</span></span><span class=line><span class=cl><span class=n>ls</span> <span class=o>=</span> <span class=n>os</span><span class=o>.</span><span class=n>listdir</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s1>&#39;group-images&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 去除非 .jpg 文件</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>filter_ls</span> <span class=ow>in</span> <span class=n>ls</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=s2>&#34;.jpg&#34;</span> <span class=ow>in</span> <span class=n>filter_ls</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=k>continue</span>\n</span></span><span class=line><span class=cl>  <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>ls</span><span class=o>.</span><span class=n>remove</span><span class=p>(</span><span class=n>filter_ls</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 排序</span>\n</span></span><span class=line><span class=cl><span class=n>ls</span><span class=o>.</span><span class=n>sort</span><span class=p>(</span><span class=n>key</span><span class=o>=</span><span class=k>lambda</span> <span class=n>x</span><span class=p>:</span><span class=nb>int</span><span class=p>(</span><span class=n>x</span><span class=p>[:</span><span class=o>-</span><span class=mi>4</span><span class=p>]))</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 头像墙尺寸</span>\n</span></span><span class=line><span class=cl><span class=n>image_size</span> <span class=o>=</span> <span class=mi>2560</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>each_size</span> <span class=o>=</span> <span class=n>math</span><span class=o>.</span><span class=n>floor</span><span class=p>(</span><span class=n>image_size</span><span class=o>/</span><span class=n>math</span><span class=o>.</span><span class=n>floor</span><span class=p>(</span><span class=n>math</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>))))</span>\n</span></span><span class=line><span class=cl><span class=n>x_lines</span> <span class=o>=</span> <span class=n>math</span><span class=o>.</span><span class=n>ceil</span><span class=p>(</span><span class=n>math</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl><span class=n>y_lines</span> <span class=o>=</span> <span class=n>math</span><span class=o>.</span><span class=n>ceil</span><span class=p>(</span><span class=n>math</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl><span class=n>image</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>new</span><span class=p>(</span><span class=s1>&#39;RGB&#39;</span><span class=p>,</span> <span class=p>(</span><span class=n>each_size</span> <span class=o>*</span> <span class=n>x_lines</span><span class=p>,</span> <span class=n>each_size</span> <span class=o>*</span> <span class=n>y_lines</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=n>y</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>file_names</span> <span class=ow>in</span> <span class=n>ls</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=k>try</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>img</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>open</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;group-images/&#34;</span> <span class=o>+</span> <span class=n>file_names</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;正在处理&#34;</span> <span class=o>+</span> <span class=n>file_names</span><span class=o>.</span><span class=n>split</span><span class=p>(</span><span class=s1>&#39;.jpg&#39;</span><span class=p>)[</span><span class=mi>0</span><span class=p>]</span> <span class=o>+</span> <span class=s2>&#34;/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl>  <span class=k>except</span> <span class=ne>IOError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=k>continue</span>\n</span></span><span class=line><span class=cl>  <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>img</span> <span class=o>=</span> <span class=n>img</span><span class=o>.</span><span class=n>resize</span><span class=p>((</span><span class=n>each_size</span><span class=p>,</span> <span class=n>each_size</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=n>image</span><span class=o>.</span><span class=n>paste</span><span class=p>(</span><span class=n>img</span><span class=p>,</span> <span class=p>(</span><span class=n>x</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>,</span> <span class=n>y</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>x</span> <span class=o>==</span> <span class=n>x_lines</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>      <span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>      <span class=n>y</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>img</span> <span class=o>=</span> <span class=n>image</span><span class=o>.</span><span class=n>save</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;all.jpg&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>try</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=n>shutil</span><span class=o>.</span><span class=n>rmtree</span><span class=p>(</span><span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;group-images/&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;收尾，清理临时文件&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=k>except</span> <span class=ne>FileNotFoundError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>  <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;没什么好删的&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;！！！</span><span class=se>\\n</span><span class=s2> 生成完毕了，放在了目录&#34;</span> <span class=o>+</span> <span class=n>curr_dir</span> <span class=o>+</span> <span class=s2>&#34;，去看看吧。&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;工具作者：@Sunbelife（新浪微博）&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;公众号：Sunbelife&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;感谢使用&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;v1.2&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>print</span><span class=p>(</span><span class=s2>&#34;2019.4.18&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=群友全家福><span>4 群友全家福</span>\n<a href=#%e7%be%a4%e5%8f%8b%e5%85%a8%e5%ae%b6%e7%a6%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>修改 11 行群名称</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>import</span> <span class=nn>itchat</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>math</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>PIL.Image</span> <span class=k>as</span> <span class=nn>Image</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>shutil</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 变量</span>\n</span></span><span class=line><span class=cl><span class=n>itchat</span><span class=o>.</span><span class=n>auto_login</span><span class=p>(</span><span class=n>hotReload</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span><span class=n>enableCmdQR</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>roomslist</span> <span class=o>=</span> <span class=n>itchat</span><span class=o>.</span><span class=n>get_chatrooms</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>True</span><span class=p>)[</span><span class=mi>0</span><span class=p>:]</span>\n</span></span><span class=line><span class=cl><span class=n>itchat</span><span class=o>.</span><span class=n>dump_login_status</span><span class=p>()</span> <span class=c1>## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊</span>\n</span></span><span class=line><span class=cl><span class=n>myroom</span><span class=o>=</span><span class=n>itchat</span><span class=o>.</span><span class=n>search_chatrooms</span><span class=p>(</span><span class=n>name</span><span class=o>=</span><span class=sa>u</span><span class=s1>&#39;绥宁一中高 396 班&#39;</span><span class=p>)</span> <span class=c1>#群聊名称</span>\n</span></span><span class=line><span class=cl><span class=n>gsq</span><span class=o>=</span><span class=n>itchat</span><span class=o>.</span><span class=n>update_chatroom</span><span class=p>(</span><span class=n>myroom</span><span class=p>[</span><span class=mi>0</span><span class=p>][</span><span class=s1>&#39;UserName&#39;</span><span class=p>],</span> <span class=n>detailedMember</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>num</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=ow>not</span> <span class=n>os</span><span class=o>.</span><span class=n>path</span><span class=o>.</span><span class=n>exists</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>os</span><span class=o>.</span><span class=n>mkdir</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>gsq</span><span class=p>[</span><span class=s1>&#39;MemberList&#39;</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>i</span><span class=p>[</span><span class=s2>&#34;UserName&#34;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>img</span> <span class=o>=</span> <span class=n>itchat</span><span class=o>.</span><span class=n>get_head_img</span><span class=p>(</span><span class=n>userName</span><span class=o>=</span><span class=n>i</span><span class=p>[</span><span class=s2>&#34;UserName&#34;</span><span class=p>],</span><span class=n>chatroomUserName</span><span class=o>=</span><span class=n>myroom</span><span class=p>[</span><span class=mi>0</span><span class=p>][</span><span class=s1>&#39;UserName&#39;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>fileImage</span> <span class=o>=</span> <span class=nb>open</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>num</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;.jpg&#34;</span><span class=p>,</span><span class=s1>&#39;wb&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>fileImage</span><span class=o>.</span><span class=n>write</span><span class=p>(</span><span class=n>img</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>fileImage</span><span class=o>.</span><span class=n>close</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=n>num</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>ls</span> <span class=o>=</span> <span class=n>os</span><span class=o>.</span><span class=n>listdir</span><span class=p>(</span><span class=s1>&#39;./group-images&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>each_size</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=n>math</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=nb>float</span><span class=p>(</span><span class=mi>640</span><span class=o>*</span><span class=mi>640</span><span class=p>)</span><span class=o>/</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl><span class=n>lines</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=mi>640</span><span class=o>/</span><span class=n>each_size</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>image</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>new</span><span class=p>(</span><span class=s1>&#39;RGBA&#39;</span><span class=p>,</span> <span class=p>(</span><span class=mi>640</span><span class=p>,</span> <span class=mi>640</span><span class=p>))</span>\n</span></span><span class=line><span class=cl><span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=n>y</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)</span><span class=o>+</span><span class=mi>1</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>try</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>img</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>open</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>i</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;.jpg&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>except</span> <span class=ne>IOError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;Error&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>img</span> <span class=o>=</span> <span class=n>img</span><span class=o>.</span><span class=n>resize</span><span class=p>((</span><span class=n>each_size</span><span class=p>,</span> <span class=n>each_size</span><span class=p>),</span> <span class=n>Image</span><span class=o>.</span><span class=n>ANTIALIAS</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>image</span><span class=o>.</span><span class=n>paste</span><span class=p>(</span><span class=n>img</span><span class=p>,</span> <span class=p>(</span><span class=n>x</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>,</span> <span class=n>y</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>x</span> <span class=o>==</span> <span class=n>lines</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>            <span class=n>y</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=n>image</span><span class=o>.</span><span class=n>save</span><span class=p>(</span><span class=s2>&#34;all.png&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>shutil</span><span class=o>.</span><span class=n>rmtree</span><span class=p>(</span><span class=s2>&#34;./group-images&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><figure><a class=lightgallery target=_blank href=/posts/wximgpy/images/2.png title=\"绥宁一中高 396 班\" data-thumbnail=/posts/wximgpy/images/2.png data-sub-html=\"<h2>绥宁一中高 396 班</h2><p>绥宁一中高 396 班</p>\"><img loading=lazy src=/posts/wximgpy/images/2.png alt=\"绥宁一中高 396 班\" height=640 width=640></a><figcaption class=image-caption>绥宁一中高 396 班</figcaption></figure></p><blockquote><p>加个列表，加个循环实现自动爬取所有群聊头像并发送</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>import</span> <span class=nn>itchat</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>math</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>PIL.Image</span> <span class=k>as</span> <span class=nn>Image</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>os</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>shutil</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>## 变量</span>\n</span></span><span class=line><span class=cl><span class=n>itchat</span><span class=o>.</span><span class=n>auto_login</span><span class=p>(</span><span class=n>hotReload</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span><span class=n>enableCmdQR</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>roomslist</span> <span class=o>=</span> <span class=n>itchat</span><span class=o>.</span><span class=n>get_chatrooms</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>True</span><span class=p>)[</span><span class=mi>0</span><span class=p>:]</span>\n</span></span><span class=line><span class=cl><span class=n>itchat</span><span class=o>.</span><span class=n>dump_login_status</span><span class=p>()</span> <span class=c1>## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>room</span> <span class=ow>in</span> <span class=n>roomslist</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>room</span><span class=p>[</span><span class=s1>&#39;UserName&#39;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>gsq</span><span class=o>=</span><span class=n>itchat</span><span class=o>.</span><span class=n>update_chatroom</span><span class=p>(</span><span class=n>room</span><span class=p>[</span><span class=s1>&#39;UserName&#39;</span><span class=p>],</span> <span class=n>detailedMember</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>num</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=ow>not</span> <span class=n>os</span><span class=o>.</span><span class=n>path</span><span class=o>.</span><span class=n>exists</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=n>os</span><span class=o>.</span><span class=n>mkdir</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>gsq</span><span class=p>[</span><span class=s1>&#39;MemberList&#39;</span><span class=p>]:</span>\n</span></span><span class=line><span class=cl>        <span class=nb>print</span><span class=p>(</span><span class=n>i</span><span class=p>[</span><span class=s2>&#34;UserName&#34;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>img</span> <span class=o>=</span> <span class=n>itchat</span><span class=o>.</span><span class=n>get_head_img</span><span class=p>(</span><span class=n>userName</span><span class=o>=</span><span class=n>i</span><span class=p>[</span><span class=s2>&#34;UserName&#34;</span><span class=p>],</span><span class=n>chatroomUserName</span><span class=o>=</span><span class=n>room</span><span class=p>[</span><span class=s1>&#39;UserName&#39;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>fileImage</span> <span class=o>=</span> <span class=nb>open</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>num</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;.jpg&#34;</span><span class=p>,</span><span class=s1>&#39;wb&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>fileImage</span><span class=o>.</span><span class=n>write</span><span class=p>(</span><span class=n>img</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>fileImage</span><span class=o>.</span><span class=n>close</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>        <span class=n>num</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=n>ls</span> <span class=o>=</span> <span class=n>os</span><span class=o>.</span><span class=n>listdir</span><span class=p>(</span><span class=s1>&#39;./group-images&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>each_size</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=n>math</span><span class=o>.</span><span class=n>sqrt</span><span class=p>(</span><span class=nb>float</span><span class=p>(</span><span class=mi>640</span><span class=o>*</span><span class=mi>640</span><span class=p>)</span><span class=o>/</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)))</span>\n</span></span><span class=line><span class=cl>    <span class=n>lines</span> <span class=o>=</span> <span class=nb>int</span><span class=p>(</span><span class=mi>640</span><span class=o>/</span><span class=n>each_size</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>image</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>new</span><span class=p>(</span><span class=s1>&#39;RGB&#39;</span><span class=p>,</span> <span class=p>(</span><span class=mi>640</span><span class=p>,</span> <span class=mi>640</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>    <span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=n>y</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=nb>range</span><span class=p>(</span><span class=mi>0</span><span class=p>,</span><span class=nb>len</span><span class=p>(</span><span class=n>ls</span><span class=p>)</span><span class=o>+</span><span class=mi>1</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>        <span class=k>try</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>img</span> <span class=o>=</span> <span class=n>Image</span><span class=o>.</span><span class=n>open</span><span class=p>(</span><span class=s2>&#34;./group-images/&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>i</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;.jpg&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>except</span> <span class=ne>IOError</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;Error&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>img</span> <span class=o>=</span> <span class=n>img</span><span class=o>.</span><span class=n>resize</span><span class=p>((</span><span class=n>each_size</span><span class=p>,</span> <span class=n>each_size</span><span class=p>),</span> <span class=n>Image</span><span class=o>.</span><span class=n>ANTIALIAS</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>image</span><span class=o>.</span><span class=n>paste</span><span class=p>(</span><span class=n>img</span><span class=p>,</span> <span class=p>(</span><span class=n>x</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>,</span> <span class=n>y</span> <span class=o>*</span> <span class=n>each_size</span><span class=p>))</span>\n</span></span><span class=line><span class=cl>            <span class=n>x</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span> <span class=n>x</span> <span class=o>==</span> <span class=n>lines</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>                <span class=n>x</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>                <span class=n>y</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>    <span class=n>image</span><span class=o>.</span><span class=n>save</span><span class=p>(</span><span class=s2>&#34;all.jpg&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>itchat</span><span class=o>.</span><span class=n>send</span><span class=p>(</span><span class=s2>&#34;写了个好玩的… 测试一下&#34;</span><span class=p>,</span> <span class=n>room</span><span class=p>[</span><span class=s1>&#39;UserName&#39;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>itchat</span><span class=o>.</span><span class=n>send_image</span><span class=p>(</span><span class=s2>&#34;all.jpg&#34;</span><span class=p>,</span> <span class=n>room</span><span class=p>[</span><span class=s1>&#39;UserName&#39;</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>    <span class=n>shutil</span><span class=o>.</span><span class=n>rmtree</span><span class=p>(</span><span class=s2>&#34;./group-images&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-08 20:26:13\">更新于 2023-12-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wximgpy/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/wximgpy/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/wximgpy/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9F%BA%E6%9C%AC+python+%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%88%AC%E5%8F%96%E5%BE%AE%E4%BF%A1%E5%A5%BD%E5%8F%8B%E5%A4%B4%E5%83%8F%EF%BC%8C%E5%B9%B6%E6%8B%BC%E6%8E%A5%E6%88%90%E5%A4%A7%E5%9B%BE&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9F%BA%E6%9C%AC+python+%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%88%AC%E5%8F%96%E5%BE%AE%E4%BF%A1%E5%A5%BD%E5%8F%8B%E5%A4%B4%E5%83%8F%EF%BC%8C%E5%B9%B6%E6%8B%BC%E6%8E%A5%E6%88%90%E5%A4%A7%E5%9B%BE%7c%0A%7cURL%7chttps://lruihao.cn/posts/wximgpy/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/wximgpy/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wximgpy/ data-title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\" data-hashtags=wxpy,pillow,Python><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wximgpy/ data-hashtag=wxpy><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wximgpy/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wximgpy/ data-title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\" data-image=/posts/wximgpy/images/1.jpg data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wximgpy/ data-title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/wxpy/ class=post-tag title=\"标签 - wxpy\">wxpy</a><a href=/tags/pillow/ class=post-tag title=\"标签 - pillow\">pillow</a><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hellojava/ class=post-nav-item rel=prev title=\"用记事本编写第一个 Java 程序\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>用记事本编写第一个 Java 程序</a><a href=/posts/wxpy1/ class=post-nav-item rel=next title=\"Python 玩微信：初探 Wxpy\">Python 玩微信：初探 Wxpy<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#依赖>依赖</a></li><li><a href=#安装>安装</a></li><li><a href=#运行>运行</a></li><li><a href=#群友全家福>群友全家福</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c6ef9ca883d83930d49ac7d07559852c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c6ef9ca883d83930d49ac7d07559852c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wximgpy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wximgpy/index.md",
    "content": "# 基本 Python 实现的爬取微信好友头像，并拼接成大图\n\n\n> Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）  \n> **_文中涉及的图片涉及个人隐私，仅做举例，请勿传播_**  \n> **文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删**\n\n<!--more-->\n\n## 依赖\n\n- wxpy（Pythone 登录微信）\n- pillow（拼接头像）\n- os（文件夹操作）\n- math（数学计算）\n\n> [wxpy](https://github.com/youfou/wxpy):  \n> &ensp;&ensp;wxpy 在 itchat 的基础上，通过大量接口优化提升了模块的易用性，并进行丰富的功能扩展。  \n> [PIL](https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000)：  \n> &ensp;&ensp;Python Imaging Library，已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大，但 API 却非常简单易用。由于 PIL 仅支持到 Python 2.7，加上年久失修，于是一群志愿者在 PIL 的基础上创建了兼容的版本，名字叫 Pillow，支持最新 Python 3.x，又加入了许多新特性，因此，我们可以直接安装使用 Pillow。\n\n## 安装\n\n```bash\npip install -U wxpy -i \"https://pypi.doubanio.com/simple/\"\npip install pillow\n```\n\n## 运行\n\n> 如果在 Python IDE 运行出错，可能是因为微信好友的 id 是特殊字符，在 IDE 打印出错，注释掉代码 36 行即可。\n\n```py @Sunbelife\nfrom wxpy import *\nimport math\nimport PIL.Image as Image\nimport os\nimport sys\nimport shutil\n#\n### 获取文件所在的绝对路径\ndef get_dir(sys_arg):\n  sys_arg = sys_arg.split(\"/\")\n\n  dir_str = \"\"\n  count = 0\n  for cur_dir in sys_arg:\n    if count == 0:\n      count = count + 1\n    if count == len(sys_arg):\n      break\n    dir_str = dir_str + cur_dir + \"/\"\n    count = count + 1\n  return dir_str\n\ncurr_dir = get_dir(sys.argv[0])\n\nbot = Bot()\n\n## 机器人账号自身\nmyself = bot.self\nmy_friends = bot.friends(update=True)\n\nif not os.path.exists(curr_dir + \"group-images/\"):\n  os.mkdir(curr_dir + \"group-images/\")\n\ncount = 0\nfor friend in my_friends:\n  print(friend.nick_name)\n  friend.get_avatar(curr_dir + \"group-images/\" + str(count) + \".jpg\")\n  count = count + 1\n\n## 获取下载的头像文件\nls = os.listdir(curr_dir + 'group-images')\n\n## 去除非 .jpg 文件\nfor filter_ls in ls:\n  if \".jpg\" in filter_ls:\n    continue\n  else:\n    ls.remove(filter_ls)\n\n## 排序\nls.sort(key=lambda x:int(x[:-4]))\n\n## 头像墙尺寸\nimage_size = 2560\n\neach_size = math.floor(image_size/math.floor(math.sqrt(len(ls))))\nx_lines = math.ceil(math.sqrt(len(ls)))\ny_lines = math.ceil(math.sqrt(len(ls)))\nimage = Image.new('RGB', (each_size * x_lines, each_size * y_lines))\n\nx = 0\ny = 0\n\nfor file_names in ls:\n  try:\n    img = Image.open(curr_dir + \"group-images/\" + file_names)\n    print(\"正在处理\" + file_names.split('.jpg')[0] + \"/\" + str(len(ls)))\n  except IOError:\n    continue\n  else:\n    img = img.resize((each_size, each_size))\n    image.paste(img, (x * each_size, y * each_size))\n    x += 1\n    if x == x_lines:\n      x = 0\n      y += 1\n\nimg = image.save(curr_dir + \"all.jpg\")\n\ntry:\n  shutil.rmtree(curr_dir + \"group-images/\")\n  print(\"收尾，清理临时文件\")\nexcept FileNotFoundError:\n  print(\"没什么好删的\")\n\nprint(\"！！！\\n 生成完毕了，放在了目录\" + curr_dir + \"，去看看吧。\")\nprint(\"工具作者：@Sunbelife（新浪微博）\")\nprint(\"公众号：Sunbelife\")\nprint(\"感谢使用\")\nprint(\"v1.2\")\nprint(\"2019.4.18\")\n```\n\n## 群友全家福\n\n> 修改 11 行群名称\n\n```py @Sunbelife\nimport itchat\nimport math\nimport PIL.Image as Image\nimport os\nimport shutil\n\n## 变量\nitchat.auto_login(hotReload=True,enableCmdQR=False)\nroomslist = itchat.get_chatrooms(update=True)[0:]\nitchat.dump_login_status() ## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊\nmyroom=itchat.search_chatrooms(name=u'绥宁一中高 396 班') #群聊名称\ngsq=itchat.update_chatroom(myroom[0]['UserName'], detailedMember=True)\n\nnum = 0\n\nif not os.path.exists(\"./group-images/\"):\n    os.mkdir(\"./group-images/\")\n\nfor i in gsq['MemberList']:\n    print(i[\"UserName\"])\n    img = itchat.get_head_img(userName=i[\"UserName\"],chatroomUserName=myroom[0]['UserName'])\n    fileImage = open(\"./group-images/\" + str(num) + \".jpg\",'wb')\n    fileImage.write(img)\n    fileImage.close()\n    num += 1\n\nls = os.listdir('./group-images')\neach_size = int(math.sqrt(float(640*640)/len(ls)))\nlines = int(640/each_size)\nimage = Image.new('RGBA', (640, 640))\nx = 0\ny = 0\nfor i in range(0,len(ls)+1):\n    try:\n        img = Image.open(\"./group-images/\" + str(i) + \".jpg\")\n    except IOError:\n        print(\"Error\")\n    else:\n        img = img.resize((each_size, each_size), Image.ANTIALIAS)\n        image.paste(img, (x * each_size, y * each_size))\n        x += 1\n        if x == lines:\n            x = 0\n            y += 1\nimage.save(\"all.png\")\nshutil.rmtree(\"./group-images\")\n```\n\n![绥宁一中高 396 班](images/2.png '绥宁一中高 396 班')\n\n> 加个列表，加个循环实现自动爬取所有群聊头像并发送\n\n```py @Sunbelife\nimport itchat\nimport math\nimport PIL.Image as Image\nimport os\nimport shutil\n\n## 变量\nitchat.auto_login(hotReload=True,enableCmdQR=False)\nroomslist = itchat.get_chatrooms(update=True)[0:]\nitchat.dump_login_status() ## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊\n\nfor room in roomslist:\n    print(room['UserName'])\n    gsq=itchat.update_chatroom(room['UserName'], detailedMember=True)\n    num = 0\n\n    if not os.path.exists(\"./group-images/\"):\n        os.mkdir(\"./group-images/\")\n\n    for i in gsq['MemberList']:\n        print(i[\"UserName\"])\n        img = itchat.get_head_img(userName=i[\"UserName\"],chatroomUserName=room['UserName'])\n        fileImage = open(\"./group-images/\" + str(num) + \".jpg\",'wb')\n        fileImage.write(img)\n        fileImage.close()\n        num += 1\n\n    ls = os.listdir('./group-images')\n    each_size = int(math.sqrt(float(640*640)/len(ls)))\n    lines = int(640/each_size)\n    image = Image.new('RGB', (640, 640))\n    x = 0\n    y = 0\n    for i in range(0,len(ls)+1):\n        try:\n            img = Image.open(\"./group-images/\" + str(i) + \".jpg\")\n        except IOError:\n            print(\"Error\")\n        else:\n            img = img.resize((each_size, each_size), Image.ANTIALIAS)\n            image.paste(img, (x * each_size, y * each_size))\n            x += 1\n            if x == lines:\n                x = 0\n                y += 1\n    image.save(\"all.jpg\")\n    itchat.send(\"写了个好玩的… 测试一下\", room['UserName'])\n    itchat.send_image(\"all.jpg\", room['UserName'])\n    shutil.rmtree(\"./group-images\")\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wximgpy/  \n\n"
  },
  {
    "path": "posts/wxpy1/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python 玩微信：初探 Wxpy | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计 \"><meta name=keywords content='Python,wxpy,pyecharts,jieba,他山之石'><meta itemprop=name content=\"python 玩微信：初探 wxpy\"><meta itemprop=description content=\"文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计\"><meta itemprop=datePublished content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=dateModified content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=wordCount content=\"1052\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Python,wxpy,pyecharts,jieba,他山之石\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/wxpy1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"python 玩微信：初探 wxpy\"><meta property=\"og:description\" content=\"文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2019-04-20T15:44:57+08:00\"><meta property=\"article:modified_time\" content=\"2019-04-20T15:44:57+08:00\"><meta property=\"article:tag\" content=\"Python\"><meta property=\"article:tag\" content=\"wxpy\"><meta property=\"article:tag\" content=\"pyecharts\"><meta property=\"article:tag\" content=\"jieba\"><meta property=\"article:tag\" content=\"他山之石\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"python 玩微信：初探 wxpy\"><meta name=twitter:description content=\"文中涉及的图片涉及个人隐私，仅做举例，请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/wxpy1/ title=\"python 玩微信：初探 wxpy | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/wximgpy/ title=\"基本 python 实现的爬取微信好友头像，并拼接成大图\"><link rel=next type=text/html href=https://lruihao.cn/posts/mmtimgpy/ title=\"python 爬取网站图片（图片链接相似）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/wxpy1/index.md title=\"python 玩微信：初探 wxpy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"python 玩微信：初探 wxpy\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/wxpy1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Python, wxpy, pyecharts, jieba, 他山之石\",\"wordcount\":1052,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/wxpy1\\/\",\"datePublished\":\"2019-04-20T15:44:57+08:00\",\"dateModified\":\"2019-04-20T15:44:57+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/wxpy1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python 玩微信：初探 Wxpy</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Python 玩微信：初探 Wxpy</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a>&ensp;<a href=/categories/python/ class=post-category title=\"分类 - Python\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Python</a></span></div><div class=post-meta-line><span title=\"发布于 2019-04-20 15:44:57\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-04-20>2019-04-20</time></span>&nbsp;<span title=\"1052 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Python 玩微信：初探 Wxpy\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/wxpy1/images/1.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/wxpy1/images/1.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前期准备>前期准备</a></li><li><a href=#查看微信好友男女比例>查看微信好友男女比例</a></li><li><a href=#查看好友地区分布>查看好友地区分布</a></li><li><a href=#统计所有群男女数目>统计所有群男女数目</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2019-04-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><strong><em>文中涉及的图片涉及个人隐私，仅做举例，请勿传播</em></strong></p><ul><li>查看微信好友男女比例</li><li>查看好友地区分布</li><li>群性别统计</li></ul></blockquote><h2 class=heading-element id=前期准备><span>1 前期准备</span>\n<a href=#%e5%89%8d%e6%9c%9f%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/youfou/wxpy target=_blank rel=\"external nofollow noopener noreferrer\">wxpy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/pyecharts/pyecharts target=_blank rel=\"external nofollow noopener noreferrer\">pyecharts<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（百度 echarts）</li></ul><h2 class=heading-element id=查看微信好友男女比例><span>2 查看微信好友男女比例</span>\n<a href=#%e6%9f%a5%e7%9c%8b%e5%be%ae%e4%bf%a1%e5%a5%bd%e5%8f%8b%e7%94%b7%e5%a5%b3%e6%af%94%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>from</span> <span class=nn>wxpy</span> <span class=kn>import</span> <span class=o>*</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>pyecharts</span> <span class=kn>import</span> <span class=n>Pie</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>bot</span> <span class=o>=</span> <span class=n>Bot</span><span class=p>(</span><span class=n>cache_path</span> <span class=o>=</span> <span class=kc>True</span><span class=p>)</span>   <span class=c1>#定义一个微信机器人</span>\n</span></span><span class=line><span class=cl><span class=n>friends</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>friends</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>   <span class=c1>#获取更新好友列表</span>\n</span></span><span class=line><span class=cl><span class=n>male</span> <span class=o>=</span> <span class=n>female</span> <span class=o>=</span> <span class=n>other</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>friends</span><span class=p>[</span><span class=mi>1</span><span class=p>:]:</span>     <span class=c1>#[1:] 自己是第一个，排除掉</span>\n</span></span><span class=line><span class=cl>    <span class=n>sex</span> <span class=o>=</span> <span class=n>i</span><span class=o>.</span><span class=n>sex</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=n>sex</span> <span class=o>==</span> <span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>male</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>    <span class=k>elif</span> <span class=n>sex</span> <span class=o>==</span> <span class=mi>2</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>female</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>    <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>other</span> <span class=o>+=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=n>total</span> <span class=o>=</span> <span class=nb>len</span><span class=p>(</span><span class=n>friends</span><span class=p>[</span><span class=mi>1</span><span class=p>:])</span>   <span class=c1>#计算总数</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#下面为分析</span>\n</span></span><span class=line><span class=cl><span class=n>attr</span> <span class=o>=</span> <span class=p>[</span><span class=s2>&#34;男性&#34;</span><span class=p>,</span><span class=s2>&#34;女性&#34;</span><span class=p>,</span><span class=s2>&#34;其他&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=n>v1</span> <span class=o>=</span> <span class=p>[</span><span class=nb>float</span><span class=p>(</span><span class=n>male</span><span class=p>),</span><span class=nb>float</span><span class=p>(</span><span class=n>female</span><span class=p>),</span><span class=nb>float</span><span class=p>(</span><span class=n>other</span><span class=p>)]</span>\n</span></span><span class=line><span class=cl><span class=n>pie</span> <span class=o>=</span> <span class=n>Pie</span><span class=p>(</span><span class=s2>&#34;饼图 - 圆环图示例&#34;</span><span class=p>,</span> <span class=n>title_pos</span><span class=o>=</span><span class=s1>&#39;center&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>pie</span><span class=o>.</span><span class=n>add</span><span class=p>(</span><span class=s2>&#34;&#34;</span><span class=p>,</span> <span class=n>attr</span><span class=p>,</span> <span class=n>v1</span><span class=p>,</span> <span class=n>radius</span><span class=o>=</span><span class=p>[</span><span class=mi>40</span><span class=p>,</span> <span class=mi>75</span><span class=p>],</span> <span class=n>label_text_color</span><span class=o>=</span><span class=kc>None</span><span class=p>,</span> <span class=n>is_label_show</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=n>legend_orient</span><span class=o>=</span><span class=s1>&#39;vertical&#39;</span><span class=p>,</span> <span class=n>legend_pos</span><span class=o>=</span><span class=s1>&#39;left&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>pie</span><span class=o>.</span><span class=n>render</span><span class=p>(</span><span class=s2>&#34;sex.html&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/wxpy1/images/1.png title=微信好友男女比例 data-thumbnail=/posts/wxpy1/images/1.png data-sub-html=\"<h2>微信好友男女比例</h2>\"><img loading=lazy src=/posts/wxpy1/images/1.png alt=微信好友男女比例 height=400 width=800></a></p><h2 class=heading-element id=查看好友地区分布><span>3 查看好友地区分布</span>\n<a href=#%e6%9f%a5%e7%9c%8b%e5%a5%bd%e5%8f%8b%e5%9c%b0%e5%8c%ba%e5%88%86%e5%b8%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=kn>from</span> <span class=nn>wxpy</span> <span class=kn>import</span> <span class=o>*</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>pyecharts</span> <span class=kn>import</span> <span class=n>Map</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#因为获取的列表城市都没有带市字，而 pyecharts 需要带个市字</span>\n</span></span><span class=line><span class=cl><span class=n>b</span> <span class=o>=</span> <span class=s1>&#39;市&#39;</span>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>s</span><span class=p>(</span><span class=n>x</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>x</span><span class=o>+</span><span class=n>b</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#只提取湖南的</span>\n</span></span><span class=line><span class=cl><span class=n>bot</span> <span class=o>=</span> <span class=n>Bot</span><span class=p>(</span><span class=n>cache_path</span> <span class=o>=</span> <span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>friends</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>friends</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span><span class=o>.</span><span class=n>search</span><span class=p>(</span><span class=n>province</span> <span class=o>=</span> <span class=s1>&#39;湖南&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>citys</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>f</span> <span class=ow>in</span> <span class=n>friends</span> <span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>city</span> <span class=o>=</span> <span class=n>f</span><span class=o>.</span><span class=n>city</span>\n</span></span><span class=line><span class=cl>    <span class=n>citys</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=n>city</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>r</span> <span class=o>=</span> <span class=nb>map</span><span class=p>(</span><span class=n>s</span><span class=p>,</span><span class=n>citys</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>cityss</span> <span class=o>=</span> <span class=nb>list</span><span class=p>(</span><span class=n>r</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#为城市计数</span>\n</span></span><span class=line><span class=cl><span class=n>a</span> <span class=o>=</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=n>cityss</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=n>a</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=n>cityss</span><span class=o>.</span><span class=n>count</span><span class=p>(</span><span class=n>i</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=n>a</span><span class=o>.</span><span class=n>pop</span><span class=p>(</span><span class=s1>&#39;市&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>#把字典进行有序拆分为 2 个列表</span>\n</span></span><span class=line><span class=cl><span class=n>attrs</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=n>values</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>value</span><span class=p>,</span> <span class=n>attr</span> <span class=ow>in</span> <span class=n>a</span><span class=o>.</span><span class=n>items</span><span class=p>():</span>\n</span></span><span class=line><span class=cl>    <span class=n>values</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=n>attr</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>attrs</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=n>value</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=c1>#开始绘图</span>\n</span></span><span class=line><span class=cl><span class=nb>map</span> <span class=o>=</span> <span class=n>Map</span><span class=p>(</span><span class=s2>&#34;湖南地图示例&#34;</span><span class=p>,</span> <span class=n>width</span><span class=o>=</span><span class=mi>1200</span><span class=p>,</span> <span class=n>height</span><span class=o>=</span><span class=mi>600</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>map</span><span class=o>.</span><span class=n>add</span><span class=p>(</span><span class=s2>&#34;&#34;</span><span class=p>,</span> <span class=n>attrs</span><span class=p>,</span> <span class=n>values</span><span class=p>,</span> <span class=n>maptype</span><span class=o>=</span><span class=s1>&#39;湖南&#39;</span><span class=p>,</span> <span class=n>is_visualmap</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span> <span class=n>visual_text_color</span><span class=o>=</span><span class=s1>&#39;#000&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nb>map</span><span class=o>.</span><span class=n>render</span><span class=p>(</span><span class=s2>&#34;city.html&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a class=lightgallery target=_blank href=/posts/wxpy1/images/2.png title=微信地区分布 data-thumbnail=/posts/wxpy1/images/2.png data-sub-html=\"<h2>微信地区分布</h2>\"><img loading=lazy src=/posts/wxpy1/images/2.png alt=微信地区分布 height=457 width=628></a></p><blockquote><p><strong>以上参考简书 <a href=https://www.jianshu.com/p/c0baf3c6db15 target=_blank rel=\"external nofollow noopener noreferrer\">陈思煜<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></p></blockquote><h2 class=heading-element id=统计所有群男女数目><span>4 统计所有群男女数目</span>\n<a href=#%e7%bb%9f%e8%ae%a1%e6%89%80%e6%9c%89%e7%be%a4%e7%94%b7%e5%a5%b3%e6%95%b0%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>统计结果会自动发送到所有群聊\n男女人数和不一定等于总数（有些人不显示性别）</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-py\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-py data-lang=py><span class=line><span class=cl><span class=c1>#encoding=utf-8</span>\n</span></span><span class=line><span class=cl><span class=kn>from</span> <span class=nn>wxpy</span> <span class=kn>import</span> <span class=o>*</span>\n</span></span><span class=line><span class=cl><span class=kn>import</span> <span class=nn>numpy</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>removeAll</span><span class=p>(</span><span class=n>the_list</span><span class=p>,</span> <span class=n>val</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>[</span><span class=n>value</span> <span class=k>for</span> <span class=n>value</span> <span class=ow>in</span> <span class=n>the_list</span> <span class=k>if</span> <span class=n>value</span> <span class=o>!=</span> <span class=n>val</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>stats_text</span><span class=p>(</span><span class=n>target_group</span><span class=p>,</span> <span class=n>group_name</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>group_name</span> <span class=o>+</span> <span class=s2>&#34;群共有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>target_group</span><span class=p>))</span> <span class=o>+</span> <span class=s2>&#34;人，其中：&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>all_stats_text</span> <span class=o>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=n>all_dict</span> <span class=o>=</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=c1>## 乱序先整理一份省份 + 地点的列表</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>user</span> <span class=ow>in</span> <span class=n>target_group</span><span class=o>.</span><span class=n>members</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=n>trimed_data</span> <span class=o>=</span> <span class=n>user</span><span class=o>.</span><span class=n>province</span><span class=o>.</span><span class=n>replace</span><span class=p>(</span><span class=s1>&#39; &#39;</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>)</span> <span class=o>+</span> <span class=n>user</span><span class=o>.</span><span class=n>city</span><span class=o>.</span><span class=n>replace</span><span class=p>(</span><span class=s1>&#39; &#39;</span><span class=p>,</span> <span class=s1>&#39;&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>trimed_data</span> <span class=o>!=</span> <span class=s1>&#39;&#39;</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>all_stats_text</span><span class=o>.</span><span class=n>append</span><span class=p>(</span><span class=n>trimed_data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## 计数</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>data</span> <span class=ow>in</span> <span class=n>all_stats_text</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>all_stats_text</span><span class=o>.</span><span class=n>count</span><span class=p>(</span><span class=n>data</span><span class=p>)</span> <span class=o>!=</span> <span class=mi>0</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>all_dict</span><span class=p>[</span><span class=n>data</span><span class=p>]</span> <span class=o>=</span> <span class=n>all_stats_text</span><span class=o>.</span><span class=n>count</span><span class=p>(</span><span class=n>data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>all_stats_text</span> <span class=o>=</span> <span class=n>removeAll</span><span class=p>(</span><span class=n>all_stats_text</span><span class=p>,</span> <span class=n>data</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>final_dict</span> <span class=o>=</span> <span class=p>{}</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>i</span> <span class=ow>in</span> <span class=nb>sorted</span><span class=p>(</span><span class=n>all_dict</span><span class=o>.</span><span class=n>keys</span><span class=p>()):</span>\n</span></span><span class=line><span class=cl>        <span class=n>final_dict</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=n>all_dict</span><span class=p>[</span><span class=n>i</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>final_dict</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>def</span> <span class=nf>stats_sex</span><span class=p>(</span><span class=n>target_group</span><span class=p>):</span>\n</span></span><span class=line><span class=cl>    <span class=n>male</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=n>female</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=n>other</span> <span class=o>=</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=n>user</span> <span class=ow>in</span> <span class=n>target_group</span><span class=o>.</span><span class=n>members</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>user</span><span class=o>.</span><span class=n>sex</span> <span class=o>==</span> <span class=mi>1</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>male</span> <span class=o>=</span> <span class=n>male</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span> <span class=n>user</span><span class=o>.</span><span class=n>sex</span> <span class=o>==</span> <span class=mi>2</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>female</span> <span class=o>=</span> <span class=n>female</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>        <span class=k>else</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>            <span class=n>other</span> <span class=o>=</span> <span class=n>other</span> <span class=o>+</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;男的有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>male</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;人&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=s2>&#34;女的有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>female</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;人&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>msg</span> <span class=o>=</span> <span class=s2>&#34;男的有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>male</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;人、n&#34;</span> <span class=o>+</span> <span class=s2>&#34;女的有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=n>female</span><span class=p>)</span> <span class=o>+</span> <span class=s2>&#34;人、n&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>msg</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>bot</span> <span class=o>=</span> <span class=n>Bot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=n>target_group</span> <span class=o>=</span> <span class=n>bot</span><span class=o>.</span><span class=n>groups</span><span class=p>(</span><span class=n>update</span><span class=o>=</span><span class=kc>True</span><span class=p>,</span> <span class=n>contact_only</span><span class=o>=</span><span class=kc>False</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>for</span> <span class=n>curr_group</span> <span class=ow>in</span> <span class=n>target_group</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>    <span class=c1>## 小于 10 人的群过滤掉</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=nb>len</span><span class=p>(</span><span class=n>curr_group</span><span class=p>)</span> <span class=o>&lt;</span> <span class=mi>10</span><span class=p>:</span>\n</span></span><span class=line><span class=cl>        <span class=k>continue</span>\n</span></span><span class=line><span class=cl>    <span class=n>curr_group</span><span class=o>.</span><span class=n>update_group</span><span class=p>(</span><span class=n>members_details</span><span class=o>=</span><span class=kc>True</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nb>print</span><span class=p>(</span><span class=n>curr_group</span><span class=o>.</span><span class=n>name</span> <span class=o>+</span> <span class=s2>&#34;一共有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>curr_group</span><span class=p>))</span> <span class=o>+</span> <span class=s2>&#34;人、n&#34;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>msg</span> <span class=o>=</span> <span class=n>stats_sex</span><span class=p>(</span><span class=n>curr_group</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>curr_group</span><span class=o>.</span><span class=n>send</span><span class=p>(</span><span class=n>curr_group</span><span class=o>.</span><span class=n>name</span> <span class=o>+</span> <span class=s2>&#34;群，一共有：&#34;</span> <span class=o>+</span> <span class=nb>str</span><span class=p>(</span><span class=nb>len</span><span class=p>(</span><span class=n>curr_group</span><span class=p>))</span> <span class=o>+</span> <span class=s2>&#34;人、n&#34;</span> <span class=o>+</span> <span class=n>msg</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-04-20 15:44:57\">更新于 2019-04-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/85367adca11e152e34d5e7f67533ca4b7bbf625e rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化本地文章文件夹分类&#10&#10Commit: 85367adca11e152e34d5e7f67533ca4b7bbf625e [85367ad]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-12-08 20:26:13&#10Commit Date: 2023-12-08 20:33:30\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>85367ad</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/wxpy1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/wxpy1/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_backend/_py/wxpy1/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20python+%E7%8E%A9%E5%BE%AE%E4%BF%A1%EF%BC%9A%E5%88%9D%E6%8E%A2+wxpy&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cpython+%E7%8E%A9%E5%BE%AE%E4%BF%A1%EF%BC%9A%E5%88%9D%E6%8E%A2+wxpy%7c%0A%7cURL%7chttps://lruihao.cn/posts/wxpy1/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_backend/_py/wxpy1/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/wxpy1/ data-title=\"Python 玩微信：初探 Wxpy\" data-hashtags=Python,wxpy,pyecharts,jieba,他山之石><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/wxpy1/ data-hashtag=Python><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/wxpy1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/wxpy1/ data-title=\"Python 玩微信：初探 Wxpy\" data-image=/posts/wxpy1/images/1.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/wxpy1/ data-title=\"Python 玩微信：初探 Wxpy\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/wxpy/ class=post-tag title=\"标签 - wxpy\">wxpy</a><a href=/tags/pyecharts/ class=post-tag title=\"标签 - pyecharts\">pyecharts</a><a href=/tags/jieba/ class=post-tag title=\"标签 - jieba\">jieba</a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=post-tag title=\"标签 - 他山之石\">他山之石</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/wximgpy/ class=post-nav-item rel=prev title=\"基本 Python 实现的爬取微信好友头像，并拼接成大图\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>基本 Python 实现的爬取微信好友头像，并拼接成大图</a><a href=/posts/mmtimgpy/ class=post-nav-item rel=next title=\"Python 爬取网站图片（图片链接相似）\">Python 爬取网站图片（图片链接相似）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前期准备>前期准备</a></li><li><a href=#查看微信好友男女比例>查看微信好友男女比例</a></li><li><a href=#查看好友地区分布>查看好友地区分布</a></li><li><a href=#统计所有群男女数目>统计所有群男女数目</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8e86957d7556b9d8b7ddc1e31bbed823.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8e86957d7556b9d8b7ddc1e31bbed823.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/wxpy1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/wxpy1/index.md",
    "content": "# Python 玩微信：初探 Wxpy\n\n\n> **_文中涉及的图片涉及个人隐私，仅做举例，请勿传播_**\n>\n> - 查看微信好友男女比例\n> - 查看好友地区分布\n> - 群性别统计\n\n<!--more-->\n\n## 前期准备\n\n- [wxpy](https://github.com/youfou/wxpy)\n- [pyecharts](https://github.com/pyecharts/pyecharts)（百度 echarts）\n\n## 查看微信好友男女比例\n\n```py 生成结果在源文件同目录在的 sex.html\nfrom wxpy import *\nfrom pyecharts import Pie\n\nbot = Bot(cache_path = True)   #定义一个微信机器人\nfriends = bot.friends(update=False)   #获取更新好友列表\nmale = female = other = 0\n\nfor i in friends[1:]:     #[1:] 自己是第一个，排除掉\n    sex = i.sex\n    if sex == 1:\n        male += 1\n    elif sex == 2:\n        female += 1\n    else:\n        other += 1\ntotal = len(friends[1:])   #计算总数\n\n#下面为分析\nattr = [\"男性\",\"女性\",\"其他\"]\nv1 = [float(male),float(female),float(other)]\npie = Pie(\"饼图 - 圆环图示例\", title_pos='center')\npie.add(\"\", attr, v1, radius=[40, 75], label_text_color=None, is_label_show=True,\n        legend_orient='vertical', legend_pos='left')\npie.render(\"sex.html\")\n```\n\n![微信好友男女比例](images/1.png)\n\n## 查看好友地区分布\n\n```py 生成结果在源文件同目录在的 city.html\nfrom wxpy import *\nfrom pyecharts import Map\n\n#因为获取的列表城市都没有带市字，而 pyecharts 需要带个市字\nb = '市'\ndef s(x):\n    return x+b\n\n#只提取湖南的\nbot = Bot(cache_path = True)\nfriends = bot.friends(update=False).search(province = '湖南')\ncitys = []\nfor f in friends :\n    city = f.city\n    citys.append(city)\nr = map(s,citys)\ncityss = list(r)\n\n#为城市计数\na = {}\nfor i in cityss:\n    a[i] = cityss.count(i)\na.pop('市')\n\n#把字典进行有序拆分为 2 个列表\nattrs = []\nvalues = []\nfor value, attr in a.items():\n    values.append(attr)\n    attrs.append(value)\n#开始绘图\nmap = Map(\"湖南地图示例\", width=1200, height=600)\nmap.add(\"\", attrs, values, maptype='湖南', is_visualmap=True, visual_text_color='#000')\nmap.render(\"city.html\")\n```\n\n![微信地区分布](images/2.png)\n\n> **以上参考简书 [陈思煜](https://www.jianshu.com/p/c0baf3c6db15)**\n\n## 统计所有群男女数目\n\n> 统计结果会自动发送到所有群聊\n> 男女人数和不一定等于总数（有些人不显示性别）\n\n```py @Sunbelife\n#encoding=utf-8\nfrom wxpy import *\nimport numpy\n\ndef removeAll(the_list, val):\n    return [value for value in the_list if value != val]\n\ndef stats_text(target_group, group_name):\n    print(group_name + \"群共有：\" + str(len(target_group)) + \"人，其中：\")\n    all_stats_text = []\n    all_dict = {}\n\n    ## 乱序先整理一份省份 + 地点的列表\n    for user in target_group.members:\n        trimed_data = user.province.replace(' ', '') + user.city.replace(' ', '')\n        if trimed_data != '':\n            all_stats_text.append(trimed_data)\n    ## 计数\n    for data in all_stats_text:\n        if all_stats_text.count(data) != 0:\n            all_dict[data] = all_stats_text.count(data)\n            all_stats_text = removeAll(all_stats_text, data)\n    final_dict = {}\n    for i in sorted(all_dict.keys()):\n        final_dict[i] = all_dict[i]\n    return final_dict\n\ndef stats_sex(target_group):\n    male = 0\n    female = 0\n    other = 0\n\n    for user in target_group.members:\n        if user.sex == 1:\n            male = male + 1\n        if user.sex == 2:\n            female = female + 1\n        else:\n            other = other + 1\n\n    print(\"男的有：\" + str(male) + \"人\")\n    print(\"女的有：\" + str(female) + \"人\")\n    msg = \"男的有：\" + str(male) + \"人、n\" + \"女的有：\" + str(female) + \"人、n\"\n    return msg\n\nbot = Bot()\n\ntarget_group = bot.groups(update=True, contact_only=False)\n\nfor curr_group in target_group:\n    ## 小于 10 人的群过滤掉\n    if len(curr_group) < 10:\n        continue\n    curr_group.update_group(members_details=True)\n    print(curr_group.name + \"一共有：\" + str(len(curr_group)) + \"人、n\")\n    msg = stats_sex(curr_group)\n    curr_group.send(curr_group.name + \"群，一共有：\" + str(len(curr_group)) + \"人、n\" + msg)\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/wxpy1/  \n\n"
  },
  {
    "path": "posts/zuiduanlu/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>最短路入门 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\n\"><meta name=keywords content='最短路,ACM'><meta itemprop=name content=\"最短路入门\"><meta itemprop=description content=\"1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\"><meta itemprop=datePublished content=\"2018-08-03T16:27:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=wordCount content=\"1503\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"最短路,acm\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/zuiduanlu/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"最短路入门\"><meta property=\"og:description\" content=\"1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-08-03T16:27:16+08:00\"><meta property=\"article:modified_time\" content=\"2023-11-30T23:35:38+08:00\"><meta property=\"article:tag\" content=\"最短路\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"最短路入门\"><meta name=twitter:description content=\"1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/zuiduanlu/ title=\"最短路入门 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/nowcodersummer-5th/ title=牛客暑假多校第五场><link rel=next type=text/html href=https://lruihao.cn/posts/poj2387/ title=\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/zuiduanlu/index.md title=\"最短路入门 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"最短路入门\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/zuiduanlu\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"最短路, ACM\",\"wordcount\":1503,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/zuiduanlu\\/\",\"datePublished\":\"2018-08-03T16:27:16+08:00\",\"dateModified\":\"2023-11-30T23:35:38+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/zuiduanlu/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>最短路入门</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>最短路入门</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-08-03 16:27:16\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-08-03>2018-08-03</time></span>&nbsp;<span title=\"更新于 2023-11-30 23:35:38\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-11-30>2023-11-30</time></span>&nbsp;<span title=\"1503 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=最短路入门><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#dijkstra-算法>Dijkstra 算法</a><ol><li><a href=#1-定义概览>1. 定义概览</a></li><li><a href=#2-算法描述>2. 算法描述</a><ol><li><a href=#算法思想>算法思想</a></li><li><a href=#算法步骤>算法步骤</a></li></ol></li></ol></li><li><a href=#spfa-算法>spfa 算法</a></li><li><a href=#几乎所有的最短路算法其步骤都可以分为两步>几乎所有的最短路算法其步骤都可以分为两步</a><ol><li><a href=#初始化>初始化</a></li><li><a href=#队列--松弛操作>队列 + 松弛操作</a></li></ol></li><li><a href=#spfa-可以处理负权边>SPFA 可以处理负权边</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-11-30，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=dijkstra-算法><span>1 Dijkstra 算法</span>\n<a href=#dijkstra-%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=1-定义概览><span>1.1 1. 定义概览</span>\n<a href=#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。</p><p>问题描述：在无向图 G=(V,E) 中，假设每条边 E[i] 的长度为 w[i]，找到由顶点 V0 到其余各点的最短路径。（单源最短路径）</p><h3 class=heading-element id=2-算法描述><span>1.2 2. 算法描述</span>\n<a href=#2-%e7%ae%97%e6%b3%95%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=算法思想><span>1.2.1 算法思想</span>\n<a href=#%e7%ae%97%e6%b3%95%e6%80%9d%e6%83%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>设 G=(V,E) 是一个带权有向图，把图中顶点集合 V 分成两组，第一组为已求出最短路径的顶点集合（用 S 表示，初始时 S 中只有一个源点，以后每求得一条最短路径 , 就将加入到集合 S 中，直到全部顶点都加入到 S 中，算法就结束了），第二组为其余未确定最短路径的顶点集合（用 U 表示），按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中，总保持从源点 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外，每个顶点对应一个距离，S 中的顶点的距离就是从 v 到此顶点的最短路径长度，U 中的顶点的距离，是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。</p><h4 class=heading-element id=算法步骤><span>1.2.2 算法步骤</span>\n<a href=#%e7%ae%97%e6%b3%95%e6%ad%a5%e9%aa%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>a. 初始时，S 只包含源点，即 S ＝{v}，v 的距离为 0。U 包含除 v 外的其他顶点，即：U={其余顶点}，若 v 与 U 中顶点 u 有边，则&lt;u,v>正常有权值，若 u 不是 v 的出边邻接点，则&lt;u,v>权值为 ∞。</p><p>b. 从 U 中选取一个距离 v 最小的顶点 k，把 k，加入 S 中（该选定的距离就是 v 到 k 的最短路径长度）。</p><p>c. 以 k 为新考虑的中间点，修改 U 中各顶点的距离；若从源点 v 到顶点 u 的距离（经过顶点 k）比原来距离（不经过顶点 k）短，则修改顶点 u 的距离值，修改后的距离值的顶点 k 的距离加上边上的权。</p><p>d. 重复步骤 b 和 c 直到所有顶点都包含在 S 中。</p><p>执行动画过程如下图\n<a class=lightgallery target=_blank href=/images/remote/5b7d134a26755_4319728108683537693.gif title=执行动画 data-thumbnail=/images/remote/5b7d134a26755_4319728108683537693.gif data-sub-html=\"<h2>执行动画</h2>\"><img loading=lazy src=/images/remote/5b7d134a26755_4319728108683537693.gif alt=执行动画 height=222 width=283></a></p><h2 class=heading-element id=spfa-算法><span>2 spfa 算法</span>\n<a href=#spfa-%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>spfa 是一种求单源最短路的算法</p><p>算法中需要用到的主要变量</p><p>int n; //表示 n 个点，从 1 到 n 标号</p><p>int s,t; //s 为源点，t 为终点</p><p>int d[N]; //d[i] 表示源点 s 到点 i 的最短路</p><p>int p[N]; //记录路径（或者说记录前驱）</p><p>queue <int>q; //一个队列，用 STL 实现，当然可有手打队列，无所谓</p><p>bool vis[N]; //vis[i]=1 表示点 i 在队列中 vis[i]=0 表示不在队列中</p><h2 class=heading-element id=几乎所有的最短路算法其步骤都可以分为两步><span>3 几乎所有的最短路算法其步骤都可以分为两步</span>\n<a href=#%e5%87%a0%e4%b9%8e%e6%89%80%e6%9c%89%e7%9a%84%e6%9c%80%e7%9f%ad%e8%b7%af%e7%ae%97%e6%b3%95%e5%85%b6%e6%ad%a5%e9%aa%a4%e9%83%bd%e5%8f%af%e4%bb%a5%e5%88%86%e4%b8%ba%e4%b8%a4%e6%ad%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>初始化</p></li><li><p>松弛操作</p></li></ol><h3 class=heading-element id=初始化><span>3.1 初始化</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>d 数组全部赋值为 INF（无穷大）；p 数组全部赋值为 s（即源点），或者赋值为 -1，表示还没有知道前驱，然后 d[s]=0; 表示源点不用求最短路径，或者说最短路就是 0。将源点入队；\n（另外记住在整个算法中有顶点入队了要记得标记 vis 数组，有顶点出队了记得消除那个标记）</p><h3 class=heading-element id=队列--松弛操作><span>3.2 队列 + 松弛操作</span>\n<a href=#%e9%98%9f%e5%88%97--%e6%9d%be%e5%bc%9b%e6%93%8d%e4%bd%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>读取队头顶点 u，并将队头顶点 u 出队（记得消除标记）；将与点 u 相连的所有点 v 进行松弛操作，如果能更新估计值（即令 d[v] 变小），那么就更新，另外，如果点 v 没有在队列中，那么要将点 v 入队（记得标记），如果已经在队列中了，那么就不用入队</p><p>以此循环，直到队空为止就完成了单源最短路的求解</p><h2 class=heading-element id=spfa-可以处理负权边><span>4 SPFA 可以处理负权边</span>\n<a href=#spfa-%e5%8f%af%e4%bb%a5%e5%a4%84%e7%90%86%e8%b4%9f%e6%9d%83%e8%be%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>定理：只要最短路径存在，上述 SPFA 算法必定能求出最小值。</p><p>证明：<br>每次将点放入队尾，都是经过松弛操作达到的。换言之，每次的优化将会有某个点 v 的最短路径估计值 d[v] 变小。所以算法的执行会使 d 越来越小。由于我们假定图中不存在负权回路，所以每个结点都有最短路径值。因此，算法不会无限执行下去，随着 d 值的逐渐变小，直到到达最短路径值时，算法结束，这时的最短路径估计值就是对应结点的最短路径值。（证毕）</p><p>期望的时间复杂度 O(ke)，其中 k 为所有顶点进队的平均次数，可以证明 k 一般小于等于 2。</p><p>判断有无负环：<br>如果某个点进入队列的次数超过 N 次则存在负环（SPFA 无法处理带负环的图）</p><p><a href=https://www.cnblogs.com/cyd308/p/4470762.html target=_blank rel=\"external nofollow noopener noreferrer\">代码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-11-30 23:35:38\">更新于 2023-11-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 格式化文章内容&#10&#10Commit: da8eba0cea23ea18dcc8bef44f6b7be9ebc6aed5 [da8eba0]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2023-11-30 23:35:38&#10Commit Date: 2023-12-01 00:30:12\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>da8eba0</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/zuiduanlu/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/zuiduanlu.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/zuiduanlu.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%85%A5%E9%97%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9C%80%E7%9F%AD%E8%B7%AF%E5%85%A5%E9%97%A8%7c%0A%7cURL%7chttps://lruihao.cn/posts/zuiduanlu/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/zuiduanlu.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/zuiduanlu/ data-title=最短路入门 data-hashtags=最短路,ACM><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/zuiduanlu/ data-hashtag=最短路><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/zuiduanlu/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/zuiduanlu/ data-title=最短路入门 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/zuiduanlu/ data-title=最短路入门><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=post-tag title=\"标签 - 最短路\">最短路</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/nowcodersummer-5th/ class=post-nav-item rel=prev title=牛客暑假多校第五场><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>牛客暑假多校第五场</a><a href=/posts/poj2387/ class=post-nav-item rel=next title=\"Til the Cows Come Home-Poj2387(dijkstra 判断重边）\">Til the Cows Come Home-Poj2387(dijkstra 判断重边）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#dijkstra-算法>Dijkstra 算法</a><ol><li><a href=#1-定义概览>1. 定义概览</a></li><li><a href=#2-算法描述>2. 算法描述</a><ol><li><a href=#算法思想>算法思想</a></li><li><a href=#算法步骤>算法步骤</a></li></ol></li></ol></li><li><a href=#spfa-算法>spfa 算法</a></li><li><a href=#几乎所有的最短路算法其步骤都可以分为两步>几乎所有的最短路算法其步骤都可以分为两步</a><ol><li><a href=#初始化>初始化</a></li><li><a href=#队列--松弛操作>队列 + 松弛操作</a></li></ol></li><li><a href=#spfa-可以处理负权边>SPFA 可以处理负权边</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a543b622ee68b6d53c4400bab804d910.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a543b622ee68b6d53c4400bab804d910.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/zuiduanlu/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/zuiduanlu/index.md",
    "content": "# 最短路入门\n\n\n<!-- markdownlint-disable MD033 -->\n\n## Dijkstra 算法\n\n### 1. 定义概览\n\nDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\n\n问题描述：在无向图 G=(V,E) 中，假设每条边 E[i] 的长度为 w[i]，找到由顶点 V0 到其余各点的最短路径。（单源最短路径）\n\n### 2. 算法描述\n\n#### 算法思想\n\n设 G=(V,E) 是一个带权有向图，把图中顶点集合 V 分成两组，第一组为已求出最短路径的顶点集合（用 S 表示，初始时 S 中只有一个源点，以后每求得一条最短路径 , 就将加入到集合 S 中，直到全部顶点都加入到 S 中，算法就结束了），第二组为其余未确定最短路径的顶点集合（用 U 表示），按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中，总保持从源点 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外，每个顶点对应一个距离，S 中的顶点的距离就是从 v 到此顶点的最短路径长度，U 中的顶点的距离，是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。\n\n#### 算法步骤\n\na. 初始时，S 只包含源点，即 S ＝{v}，v 的距离为 0。U 包含除 v 外的其他顶点，即：U={其余顶点}，若 v 与 U 中顶点 u 有边，则<u,v>正常有权值，若 u 不是 v 的出边邻接点，则<u,v>权值为 ∞。\n\nb. 从 U 中选取一个距离 v 最小的顶点 k，把 k，加入 S 中（该选定的距离就是 v 到 k 的最短路径长度）。\n\nc. 以 k 为新考虑的中间点，修改 U 中各顶点的距离；若从源点 v 到顶点 u 的距离（经过顶点 k）比原来距离（不经过顶点 k）短，则修改顶点 u 的距离值，修改后的距离值的顶点 k 的距离加上边上的权。\n\nd. 重复步骤 b 和 c 直到所有顶点都包含在 S 中。\n\n执行动画过程如下图\n![执行动画](https://i.loli.net/2018/08/22/5b7d134a26755.gif)\n\n## spfa 算法\n\nspfa 是一种求单源最短路的算法\n\n算法中需要用到的主要变量\n\nint n; //表示 n 个点，从 1 到 n 标号\n\nint s,t; //s 为源点，t 为终点\n\nint d[N]; //d[i] 表示源点 s 到点 i 的最短路\n\nint p[N]; //记录路径（或者说记录前驱）\n\nqueue <int> q; //一个队列，用 STL 实现，当然可有手打队列，无所谓\n\nbool vis[N]; //vis[i]=1 表示点 i 在队列中 vis[i]=0 表示不在队列中\n\n## 几乎所有的最短路算法其步骤都可以分为两步\n\n1. 初始化\n\n2. 松弛操作\n\n### 初始化\n\nd 数组全部赋值为 INF（无穷大）；p 数组全部赋值为 s（即源点），或者赋值为 -1，表示还没有知道前驱，然后 d[s]=0; 表示源点不用求最短路径，或者说最短路就是 0。将源点入队；\n（另外记住在整个算法中有顶点入队了要记得标记 vis 数组，有顶点出队了记得消除那个标记）\n\n### 队列 + 松弛操作\n\n读取队头顶点 u，并将队头顶点 u 出队（记得消除标记）；将与点 u 相连的所有点 v 进行松弛操作，如果能更新估计值（即令 d[v] 变小），那么就更新，另外，如果点 v 没有在队列中，那么要将点 v 入队（记得标记），如果已经在队列中了，那么就不用入队\n\n以此循环，直到队空为止就完成了单源最短路的求解\n\n## SPFA 可以处理负权边\n\n定理：只要最短路径存在，上述 SPFA 算法必定能求出最小值。\n\n证明：  \n  每次将点放入队尾，都是经过松弛操作达到的。换言之，每次的优化将会有某个点 v 的最短路径估计值 d[v] 变小。所以算法的执行会使 d 越来越小。由于我们假定图中不存在负权回路，所以每个结点都有最短路径值。因此，算法不会无限执行下去，随着 d 值的逐渐变小，直到到达最短路径值时，算法结束，这时的最短路径估计值就是对应结点的最短路径值。（证毕）\n\n期望的时间复杂度 O(ke)，其中 k 为所有顶点进队的平均次数，可以证明 k 一般小于等于 2。\n\n判断有无负环：  \n  如果某个点进入队列的次数超过 N 次则存在负环（SPFA 无法处理带负环的图）\n\n[代码](https://www.cnblogs.com/cyd308/p/4470762.html)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/zuiduanlu/  \n\n"
  },
  {
    "path": "posts/位运算/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>位运算 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 1. &运算 &运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\n\"><meta name=keywords content='位运算'><meta itemprop=name content=\"位运算\"><meta itemprop=description content=\"1 1. &运算 &运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\"><meta itemprop=datePublished content=\"2018-06-14T20:22:21+08:00\"><meta itemprop=dateModified content=\"2018-06-14T20:22:21+08:00\"><meta itemprop=wordCount content=\"1029\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"位运算\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"位运算\"><meta property=\"og:description\" content=\"1 1. &运算 &运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-14T20:22:21+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-14T20:22:21+08:00\"><meta property=\"article:tag\" content=\"位运算\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"位运算\"><meta name=twitter:description content=\"1 1. &运算 &运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ title=\"位运算 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/c-with-stl/ title=\"C++ with STL\"><link rel=next type=text/html href=https://lruihao.cn/posts/c-sort/ title=\"sort 排序\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/index.md title=\"位运算 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"位运算\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E4%BD%8D%E8%BF%90%E7%AE%97\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"位运算\",\"wordcount\":1029,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E4%BD%8D%E8%BF%90%E7%AE%97\\/\",\"datePublished\":\"2018-06-14T20:22:21+08:00\",\"dateModified\":\"2018-06-14T20:22:21+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>位运算</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>位运算</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-14 20:22:21\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-14>2018-06-14</time></span>&nbsp;<span title=\"1029 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=位运算><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#1-运算>1. &运算</a></li><li><a href=#2-运算>2. |运算</a></li><li><a href=#3-运算>3. ^运算</a></li><li><a href=#4--运算>4. ~ 运算</a></li><li><a href=#5-运算>5. &#171;运算</a></li><li><a href=#6-运算>6. &#187;运算</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-06-14，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=1-运算><span>1 1. &运算</span>\n<a href=#1-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>&运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。</p><h2 class=heading-element id=2-运算><span>2 2. |运算</span>\n<a href=#2-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>|运算通常用于二进制特定位上的无条件赋值，例如一个数 or 1 的结果就是把二进制最末位强行变成 1。如果需要把二进制最末位变成 0，对这个数 | 1 之后再减一就可以了，其实际意义就是把这个数强行变成最接近的偶数。</p><h2 class=heading-element id=3-运算><span>3 3. ^运算</span>\n<a href=#3-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>^运算通常用于对二进制的特定一位进行取反操作，因为异或可以这样定义：异或 0 都不变，异或 1 则取反。 ^运算的逆运算是它本身，也就是说两次异或同一个数最后结果不变，即 a ^ b ^ b = a。<sup>运算可以用于简单的加密，比如你想对你 MM 说 1314520，但怕别人知道，于是双方约定拿你的生日 19880516 作为密钥。1314520</sup>19880516 = 20665500，你就把 20665500 告诉 MM。MM 再次计算 20665500 ^ 19880516 的值，得到 1314520，于是她就明白了你的企图。</p><p>还可以用异或来进行快速地交换数据，</p><p>a=2;b=3;//先转化成二进制</p><p>a=a^b;</p><p>b=a^b;</p><p>a=a^b;</p><p>操作后 a=3;b=2;</p><h2 class=heading-element id=4--运算><span>4 4. ~ 运算</span>\n<a href=#4--%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><sub>运算的定义是把内存中的 0 和 1 全部取反。使用</sub>运算时要格外小心，你需要注意整数类型有没有符号。如果~的对象是无符号整数（不能表示负数），那么得到的值就是它与该类型上界的差，因为无符号类型的数是用0000 到FFFF 依次表示的。</p><h2 class=heading-element id=5-运算><span>5 5. &#171;运算</span>\n<a href=#5-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>a &#171; b 就表示把 a 转为二进制后左移 b 位（在后面添 b 个 0）。例如 100 的二进制为 1100100，而 110010000 转成十进制是 400，那么 100 &#171;2 = 400。可以看出，a &#171; b 的值实际上就是 a 乘以 2 的 b 次方，因为在二进制数后添一个 0 就相当于该数乘以 2。</p><p>通常认为 a &#171; 1 比 a * 2 更快，因为前者是更底层一些的操作。因此程序中乘以 2 的操作请尽量用左移一位来代替。</p><p>定义一些常量可能会用到&#171;运算。你可以方便地用 1 &#171;16 – 1 来表示 65535。很多算法和数据结构要求数据规模必须是 2 的幂，此时可以用&#171;来定义 Max_N 等常量。</p><h2 class=heading-element id=6-运算><span>6 6. &#187;运算</span>\n<a href=#6-%e8%bf%90%e7%ae%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>和&#171;相似，a &#187; b 表示二进制右移 b 位（去掉末 b 位），相当于 a 除以 2 的 b 次方（取整）。我们也经常用&#187; 1 来代替 div 2，比如二分查找、堆的插入操作等等。想办法用&#187;代替除法运算可以使程序效率大大提高。最大公约数的二进制算法用除以 2 操作来代替慢得出奇的 mod 运算，效率可以提高 60%</p><p><a href=\"https://weibo.com/ttarticle/p/show?id=2309404238259097064884&amp;mod=zwenzhang\" target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>原文：<code>http://www.matrix67.com/blog/archives/263</code></p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-14 20:22:21\">更新于 2018-06-14&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/%e4%bd%8d%e8%bf%90%e7%ae%97.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/%e4%bd%8d%e8%bf%90%e7%ae%97.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%BD%8D%E8%BF%90%E7%AE%97&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%BD%8D%E8%BF%90%E7%AE%97%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/%e4%bd%8d%e8%bf%90%e7%ae%97.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-title=位运算 data-hashtags=位运算><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-hashtag=位运算><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-title=位运算 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-title=位运算><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=post-tag title=\"标签 - 位运算\">位运算</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/c-with-stl/ class=post-nav-item rel=prev title=\"C++ With STL\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>C++ With STL</a><a href=/posts/c-sort/ class=post-nav-item rel=next title=\"Sort 排序\">Sort 排序<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#1-运算>1. &运算</a></li><li><a href=#2-运算>2. |运算</a></li><li><a href=#3-运算>3. ^运算</a></li><li><a href=#4--运算>4. ~ 运算</a></li><li><a href=#5-运算>5. &#171;运算</a></li><li><a href=#6-运算>6. &#187;运算</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/e6f8f40ad771f3bf9592bd0b23cf9435.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/e6f8f40ad771f3bf9592bd0b23cf9435.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/位运算/index.md",
    "content": "# 位运算\n\n\n## 1. &运算\n\n&运算通常用于二进制取位操作，例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\n\n## 2. |运算\n\n|运算通常用于二进制特定位上的无条件赋值，例如一个数 or 1 的结果就是把二进制最末位强行变成 1。如果需要把二进制最末位变成 0，对这个数 | 1 之后再减一就可以了，其实际意义就是把这个数强行变成最接近的偶数。\n\n## 3. ^运算\n\n^运算通常用于对二进制的特定一位进行取反操作，因为异或可以这样定义：异或 0 都不变，异或 1 则取反。 ^运算的逆运算是它本身，也就是说两次异或同一个数最后结果不变，即 a ^ b ^ b = a。^运算可以用于简单的加密，比如你想对你 MM 说 1314520，但怕别人知道，于是双方约定拿你的生日 19880516 作为密钥。1314520^19880516 = 20665500，你就把 20665500 告诉 MM。MM 再次计算 20665500 ^ 19880516 的值，得到 1314520，于是她就明白了你的企图。\n\n还可以用异或来进行快速地交换数据，\n\na=2;b=3;//先转化成二进制\n\na=a^b;\n\nb=a^b;\n\na=a^b;\n\n操作后 a=3;b=2;\n\n## 4. ~ 运算\n\n~运算的定义是把内存中的 0 和 1 全部取反。使用~运算时要格外小心，你需要注意整数类型有没有符号。如果~的对象是无符号整数（不能表示负数），那么得到的值就是它与该类型上界的差，因为无符号类型的数是用$0000 到$FFFF 依次表示的。\n\n## 5. <<运算\n\na << b 就表示把 a 转为二进制后左移 b 位（在后面添 b 个 0）。例如 100 的二进制为 1100100，而 110010000 转成十进制是 400，那么 100 <<2 = 400。可以看出，a << b 的值实际上就是 a 乘以 2 的 b 次方，因为在二进制数后添一个 0 就相当于该数乘以 2。\n\n通常认为 a << 1 比 a \\* 2 更快，因为前者是更底层一些的操作。因此程序中乘以 2 的操作请尽量用左移一位来代替。\n\n定义一些常量可能会用到<<运算。你可以方便地用 1 <<16 – 1 来表示 65535。很多算法和数据结构要求数据规模必须是 2 的幂，此时可以用<<来定义 Max_N 等常量。\n\n## 6. >>运算\n\n和<<相似，a >> b 表示二进制右移 b 位（去掉末 b 位），相当于 a 除以 2 的 b 次方（取整）。我们也经常用>> 1 来代替 div 2，比如二分查找、堆的插入操作等等。想办法用>>代替除法运算可以使程序效率大大提高。最大公约数的二进制算法用除以 2 操作来代替慢得出奇的 mod 运算，效率可以提高 60%\n\n[传送门](https://weibo.com/ttarticle/p/show?id=2309404238259097064884&mod=zwenzhang)\n\n> 原文：`http://www.matrix67.com/blog/archives/263`\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/  \n\n"
  },
  {
    "path": "posts/在线离线算法/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>在线离线算法 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\n\"><meta name=keywords content='在线离线算法'><meta itemprop=name content=\"在线离线算法\"><meta itemprop=description content=\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\"><meta itemprop=datePublished content=\"2018-07-26T09:57:32+08:00\"><meta itemprop=dateModified content=\"2018-07-26T09:57:32+08:00\"><meta itemprop=wordCount content=\"765\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"在线离线算法\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"在线离线算法\"><meta property=\"og:description\" content=\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-26T09:57:32+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-26T09:57:32+08:00\"><meta property=\"article:tag\" content=\"在线离线算法\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"在线离线算法\"><meta name=twitter:description content=\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ title=\"在线离线算法 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu-1495/ title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ title=\"牛客练习赛 23\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/index.md title=\"在线离线算法 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"在线离线算法\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"在线离线算法\",\"wordcount\":765,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95\\/\",\"datePublished\":\"2018-07-26T09:57:32+08:00\",\"dateModified\":\"2018-07-26T09:57:32+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>在线离线算法</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>在线离线算法</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/grocery/ class=post-category title=\"分类 - Grocery\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Grocery</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-26 09:57:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-26>2018-07-26</time></span>&nbsp;<span title=\"765 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=在线离线算法><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#在线算法>在线算法</a></li><li><a href=#离线算法>离线算法</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-26，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=在线算法><span>1 <a href=https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947 target=_blank rel=\"external nofollow noopener noreferrer\">在线算法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。</p><p>在计算机科学中，一个在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。相对的，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。例如，选择排序在排序前就需要知道所有待排序元素，然而插入排序就不必。<br>因为在线算法并不知道整个的输入，所以它被迫做出的选择最后可能会被证明不是最优的，对在线算法的研究主要集中在当前环境下怎么做出选择。对相同问题的在线算法和离线算法的对比分析形成了以上观点。如果想从其他角度了解在线算法可以看一下流算法（关注精确呈现过去的输入所使用的内存的量），动态算法（关注维护一个在线输入的结果所需要的时间复杂度）和在线机器学习。<br>一个很好的展示在线算法概念的例子是 加拿大旅行者问题，这个问题的目标是在一个有权图中以最小的代价到达一个目标节点，但这个有权图中有些边是不可靠的可能已经被剔除。然而一个旅行者只有到某个边的一个端点时才能确定该边是否已经被移除了。最坏情况下，该问题会变得简单了，即所有的不确定的边都被移除该问题将会变成通常的最短路径问题。</p><h2 class=heading-element id=离线算法><span>2 <a href=https://baike.baidu.com/item/%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95 target=_blank rel=\"external nofollow noopener noreferrer\">离线算法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e7%a6%bb%e7%ba%bf%e7%ae%97%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>离线算法 ( off line algorithms)，是指基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。</p><p>设计策略 在执行算法前输入已知的基本假设<br>前提 具有问题完全信息<br>算法设计策略都是基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果，通常将这类具有问题完全信息前提下设计出的算法称为离线算法 ( off line algorithms)</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-26 09:57:32\">更新于 2018-07-26&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/%e5%9c%a8%e7%ba%bf%e7%a6%bb%e7%ba%bf%e7%ae%97%e6%b3%95.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_basic/%e5%9c%a8%e7%ba%bf%e7%a6%bb%e7%ba%bf%e7%ae%97%e6%b3%95.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_basic/%e5%9c%a8%e7%ba%bf%e7%a6%bb%e7%ba%bf%e7%ae%97%e6%b3%95.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-title=在线离线算法 data-hashtags=在线离线算法><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-hashtag=在线离线算法><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-title=在线离线算法 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-title=在线离线算法><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=post-tag title=\"标签 - 在线离线算法\">在线离线算法</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu-1495/ class=post-nav-item rel=prev title=\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=post-nav-item rel=next title=\"牛客练习赛 23\">牛客练习赛 23<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#在线算法>在线算法</a></li><li><a href=#离线算法>离线算法</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/6f3e0ca7308179c11374fd8095d64f64.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/6f3e0ca7308179c11374fd8095d64f64.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/在线离线算法/index.md",
    "content": "# 在线离线算法\n\n\n## [在线算法](https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947)\n\n在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\n\n在计算机科学中，一个在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。相对的，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。例如，选择排序在排序前就需要知道所有待排序元素，然而插入排序就不必。  \n因为在线算法并不知道整个的输入，所以它被迫做出的选择最后可能会被证明不是最优的，对在线算法的研究主要集中在当前环境下怎么做出选择。对相同问题的在线算法和离线算法的对比分析形成了以上观点。如果想从其他角度了解在线算法可以看一下流算法（关注精确呈现过去的输入所使用的内存的量），动态算法（关注维护一个在线输入的结果所需要的时间复杂度）和在线机器学习。  \n一个很好的展示在线算法概念的例子是 加拿大旅行者问题，这个问题的目标是在一个有权图中以最小的代价到达一个目标节点，但这个有权图中有些边是不可靠的可能已经被剔除。然而一个旅行者只有到某个边的一个端点时才能确定该边是否已经被移除了。最坏情况下，该问题会变得简单了，即所有的不确定的边都被移除该问题将会变成通常的最短路径问题。\n\n## [离线算法](https://baike.baidu.com/item/%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95)\n\n离线算法 ( off line algorithms)，是指基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。\n\n设计策略 在执行算法前输入已知的基本假设  \n前提 具有问题完全信息  \n算法设计策略都是基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果，通常将这类具有问题完全信息前提下设计出的算法称为离线算法 ( off line algorithms)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/  \n\n"
  },
  {
    "path": "posts/戏子春秋/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>戏子春秋 | 菠菜眾長</title><meta name=author content=\"杨灿\"><meta name=description content=\"从此故乡只有冬夏，再无春秋。\"><meta name=keywords content='随笔'><meta itemprop=name content=\"戏子春秋\"><meta itemprop=description content=\"从此故乡只有冬夏，再无春秋。\"><meta itemprop=datePublished content=\"2018-06-03T19:41:32+08:00\"><meta itemprop=dateModified content=\"2018-06-03T19:41:32+08:00\"><meta itemprop=wordCount content=\"1172\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"戏子春秋\"><meta property=\"og:description\" content=\"从此故乡只有冬夏，再无春秋。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-03T19:41:32+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-03T19:41:32+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"戏子春秋\"><meta name=twitter:description content=\"从此故乡只有冬夏，再无春秋。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ title=\"戏子春秋 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hexobuild/ title=\"hexo+github 搭建个人博客及美化\"><link rel=next type=text/html href=https://lruihao.cn/posts/links/ title=\"各种 Links 汇总与分享\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/index.md title=\"戏子春秋 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"戏子春秋\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔\",\"wordcount\":1172,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B\\/\",\"datePublished\":\"2018-06-03T19:41:32+08:00\",\"dateModified\":\"2018-06-03T19:41:32+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"杨灿\"},\"description\":\"从此故乡只有冬夏，再无春秋。\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>戏子春秋</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>戏子春秋</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=mailto:1845280636@qq.com title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><i class=\"fa-solid fa-user-circle\" aria-hidden=true></i>\n杨灿</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-03 19:41:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-03>2018-06-03</time></span>&nbsp;<span title=\"1172 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=戏子春秋><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>从此故乡只有冬夏，再无春秋。</p></blockquote><p>  时间急促得仿佛还在昨天，还没有清楚地认识到这句话的其中含义时，我早已离开它，远去。</p><p>自此，一江绿水东去，桃花竞开，春洒满园；瑟瑟秋风里，稻谷黄时，落木萧萧；故乡的春秋成为回忆尘封在我的脑海深处。</p><p>三月，这里和故乡一样雨下得缠绵，却尽带着他乡的味道。在不是滋润自己的那方水土上，哪怕是喜雨之人，亦只有料峭的寒意。雨下到这里才懂得，为何古来才子佳人逢阴雨连绵天总是带着一股莫名的惆怅。原是这般由头！我与他们，并无二般，想起故乡来。</p><p>故乡的春是在牛耕上的。太爷说，老牛伏在岸边饮水时节就是春耕了。到那时，耕牛头角披红挂彩，鼻挂铜色大铃，以祈愿今年平安，田地丰收；当耕牛喘着鼻息，缓缓地哞哞叫着走下田，是其在田地里大展身手的机会。故而，二月春耕总是会见到红布条装扮的水牛在田间劳作，彩带飘逸，好生招摇，尤其是农夫哼起那极具故乡气息的耕牛民歌，如高山流水般，伴着清脆的铜铃声隐隐飘去……在春末，三月桃花尽开，漫山望去，粉红红一片，甚是好看。小时看到总以为身处仙山，而后来，陶渊明一篇《桃花源记》就以为自己是那秦时避乱而住在桃花源中的后人。每每与外人谈起家乡的桃花山时，必然是一副神气十足的傲气样子。我想，这也是自己不知不觉中受家人影响，又倾心桃花的缘故吧。</p><p>印象中，家里人都爱这漫山遍野的桃花。太爷爱赏花，山上桃花开得极好的时候，便移栽了数株桃花留在了院子里，天好天坏，都能观赏上好一会儿。太婆还在的时候，桃花次第开，她就会拾掇许多桃花下来做成桃花糕，那桃花糕香香糯糯的味道飘散四周，总能把我馋来。后来，太婆故去，奶奶学着太婆开始做起了桃花糕，却总是没有太婆做的如意。但奶奶的桃花酒，受到父辈们的一致好评。每当酒坛从土里挖出，揭开红布，酒气便带着桃花的香甜扑鼻而来。父辈们在太爷种的桃花树下把酒话桑麻，颇有一副桃花坞里桃花庵，桃花庵里桃花仙的样子。现如今记忆远去，酒香却长留下来，记起时，那酒酣甜得喜人。</p><p>故乡的秋从九月农收渐起，那时候一家老小在浓浓的秋意里忙忙碌碌，直至十月方才得些许闲暇日子。</p><p>稻谷黄时，是秋最盛的时候。父辈们清晨便出发去地里收稻谷。晌午，我兴起与祖母前去送饭。正午的太阳烈得很，父辈们大颗大颗的汗直往下掉，稻谷机嘈杂得很。这才想起太爷教我的诗，“妇姑荷箪食，童稚携壶浆”，就是这样的情景无差。那时候不懂得父辈的辛苦，只知奔入山间，捕捉蚱蜢，蛐蛐等趣物。等傍晚将近，坐在板车谷袋上，兴尽而回，一天就算结束。渐渐长大，再也不敢胡闹，不知是童趣少了还是知了人事愈发迷惘了？</p><p>窗外又下起雨，心里竟也惆怅起来。并非是洗过的衣服久晾未干，而是伴着那股湿意而来，藏在雨里的那点点乡愁。这边的桃花也开得好，往窗外，密密一片，不免想起了太爷书房里的书画：花是春时花，却非故乡花。人是故乡人，却是他乡客。所见时，不过是从戏子变成看客了罢。</p></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-03 19:41:32\">更新于 2018-06-03&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/%e6%88%8f%e5%ad%90%e6%98%a5%e7%a7%8b.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/%e6%88%8f%e5%ad%90%e6%98%a5%e7%a7%8b.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/%e6%88%8f%e5%ad%90%e6%98%a5%e7%a7%8b.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ data-title=戏子春秋 data-hashtags=随笔><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ data-title=戏子春秋 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ data-title=戏子春秋><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hexobuild/ class=post-nav-item rel=prev title=\"Hexo+github 搭建个人博客及美化\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hexo+github 搭建个人博客及美化</a><a href=/posts/links/ class=post-nav-item rel=next title=\"各种 Links 汇总与分享\">各种 Links 汇总与分享<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/690c84bc951f94458e7fe0075907e31a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/690c84bc951f94458e7fe0075907e31a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/戏子春秋/index.md",
    "content": "# 戏子春秋\n\n\n> 从此故乡只有冬夏，再无春秋。\n\n<!--more-->\n\n&emsp;&emsp;时间急促得仿佛还在昨天，还没有清楚地认识到这句话的其中含义时，我早已离开它，远去。\n\n自此，一江绿水东去，桃花竞开，春洒满园；瑟瑟秋风里，稻谷黄时，落木萧萧；故乡的春秋成为回忆尘封在我的脑海深处。\n\n三月，这里和故乡一样雨下得缠绵，却尽带着他乡的味道。在不是滋润自己的那方水土上，哪怕是喜雨之人，亦只有料峭的寒意。雨下到这里才懂得，为何古来才子佳人逢阴雨连绵天总是带着一股莫名的惆怅。原是这般由头！我与他们，并无二般，想起故乡来。\n\n故乡的春是在牛耕上的。太爷说，老牛伏在岸边饮水时节就是春耕了。到那时，耕牛头角披红挂彩，鼻挂铜色大铃，以祈愿今年平安，田地丰收；当耕牛喘着鼻息，缓缓地哞哞叫着走下田，是其在田地里大展身手的机会。故而，二月春耕总是会见到红布条装扮的水牛在田间劳作，彩带飘逸，好生招摇，尤其是农夫哼起那极具故乡气息的耕牛民歌，如高山流水般，伴着清脆的铜铃声隐隐飘去……在春末，三月桃花尽开，漫山望去，粉红红一片，甚是好看。小时看到总以为身处仙山，而后来，陶渊明一篇《桃花源记》就以为自己是那秦时避乱而住在桃花源中的后人。每每与外人谈起家乡的桃花山时，必然是一副神气十足的傲气样子。我想，这也是自己不知不觉中受家人影响，又倾心桃花的缘故吧。\n\n印象中，家里人都爱这漫山遍野的桃花。太爷爱赏花，山上桃花开得极好的时候，便移栽了数株桃花留在了院子里，天好天坏，都能观赏上好一会儿。太婆还在的时候，桃花次第开，她就会拾掇许多桃花下来做成桃花糕，那桃花糕香香糯糯的味道飘散四周，总能把我馋来。后来，太婆故去，奶奶学着太婆开始做起了桃花糕，却总是没有太婆做的如意。但奶奶的桃花酒，受到父辈们的一致好评。每当酒坛从土里挖出，揭开红布，酒气便带着桃花的香甜扑鼻而来。父辈们在太爷种的桃花树下把酒话桑麻，颇有一副桃花坞里桃花庵，桃花庵里桃花仙的样子。现如今记忆远去，酒香却长留下来，记起时，那酒酣甜得喜人。\n\n故乡的秋从九月农收渐起，那时候一家老小在浓浓的秋意里忙忙碌碌，直至十月方才得些许闲暇日子。\n\n稻谷黄时，是秋最盛的时候。父辈们清晨便出发去地里收稻谷。晌午，我兴起与祖母前去送饭。正午的太阳烈得很，父辈们大颗大颗的汗直往下掉，稻谷机嘈杂得很。这才想起太爷教我的诗，“妇姑荷箪食，童稚携壶浆”，就是这样的情景无差。那时候不懂得父辈的辛苦，只知奔入山间，捕捉蚱蜢，蛐蛐等趣物。等傍晚将近，坐在板车谷袋上，兴尽而回，一天就算结束。渐渐长大，再也不敢胡闹，不知是童趣少了还是知了人事愈发迷惘了？\n\n窗外又下起雨，心里竟也惆怅起来。并非是洗过的衣服久晾未干，而是伴着那股湿意而来，藏在雨里的那点点乡愁。这边的桃花也开得好，往窗外，密密一片，不免想起了太爷书房里的书画：花是春时花，却非故乡花。人是故乡人，却是他乡客。所见时，不过是从戏子变成看客了罢。\n\n\n---\n\n> 作者: [杨灿](mailto:1845280636@qq.com)  \n> URL: https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/  \n\n"
  },
  {
    "path": "posts/杨辉三角/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>杨辉三角 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\n\"><meta name=keywords content='数学,杨辉三角'><meta itemprop=name content=\"杨辉三角\"><meta itemprop=description content=\"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\"><meta itemprop=datePublished content=\"2018-07-22T11:41:15+08:00\"><meta itemprop=dateModified content=\"2021-09-26T12:04:42+08:00\"><meta itemprop=wordCount content=\"416\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"数学,杨辉三角\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"杨辉三角\"><meta property=\"og:description\" content=\"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-22T11:41:15+08:00\"><meta property=\"article:modified_time\" content=\"2021-09-26T12:04:42+08:00\"><meta property=\"article:tag\" content=\"数学\"><meta property=\"article:tag\" content=\"杨辉三角\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"杨辉三角\"><meta name=twitter:description content=\"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ title=\"杨辉三角 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hdu-1241/ title=\"hdu-1241-Oil Deposits (dfs)\"><link rel=next type=text/html href=https://lruihao.cn/posts/wannafly-20/ title=\"Wannafly 挑战赛 20-染色\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/index.md title=\"杨辉三角 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"杨辉三角\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"数学, 杨辉三角\",\"wordcount\":416,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92\\/\",\"datePublished\":\"2018-07-22T11:41:15+08:00\",\"dateModified\":\"2021-09-26T12:04:42+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>杨辉三角</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>杨辉三角</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-22 11:41:15\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-22>2018-07-22</time></span>&nbsp;<span title=\"更新于 2021-09-26 12:04:42\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2021-09-26>2021-09-26</time></span>&nbsp;<span title=\"416 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=杨辉三角><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2021-09-26，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><a href=https://zhidao.baidu.com/question/367384574464313844.html target=_blank rel=\"external nofollow noopener noreferrer\">百度知道<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n1</p><p>1 1</p><p>1 2 1</p><p>1 3 3 1</p><p>1 4 6 4 1</p><p>1 5 10 10 5 1</p><p>1 6 15 20 15 6 1</p><hr><p>1、每行数字左右对称，由 1 开始逐渐变大，然后变小，回到 1。\n2、第 n 行的数字个数为 n 个。\n3、第 n 行数字和为 2^(n－1)。\n4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。\n5、将第 2n+1 行第 1 个数，跟第 2n+2 行第 3 个数、第 2n+3 行第 5 个数……连成一线，这些数的和是第 2n 个斐波那契数。将第 2n 行第 2 个数，跟第 2n+1 行第 4 个数、第 2n+2 行第 6 个数……这些数之和是第 2n-1 个斐波那契数。\n6、第 n 行的第 1 个数为 1，第二个数为 1×(n-1)，第三个数为 1×(n-1)×（n-2）/2，第四个数为 1×(n-1)×（n-2）/2×（n-3）/3…依此类推。</p><p>此数列中各行中的数字正好是二项式 a+b 乘方后，展开始终各项的系数。如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>(a+b)^1=a^1+b^1\n</span></span><span class=line><span class=cl>(a+b)^2=a^2+2ab+b^2\n</span></span><span class=line><span class=cl>(a+b)^3=a^3+3a^2b+3ab^2+b^3\n</span></span><span class=line><span class=cl>……\n</span></span><span class=line><span class=cl>(a+b)^6=a^6+6a^5b+15a^4b^2+20a^3b^3+15a^2b^4+6ab^5+b^6（注意发现规律）\n</span></span><span class=line><span class=cl>……</span></span></code></pre></td></tr></table></div></div></div><p>二项式展开式：<a class=lightgallery target=_blank href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/images/20180721192815130.jpg title=二项式展开式： data-thumbnail=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/images/20180721192815130.jpg data-sub-html=\"<h2>二项式展开式：</h2>\"><img loading=lazy src=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/images/20180721192815130.jpg alt=二项式展开式： height=3120 width=4160></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-09-26 12:04:42\">更新于 2021-09-26&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e6%9d%a8%e8%be%89%e4%b8%89%e8%a7%92/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/%e6%9d%a8%e8%be%89%e4%b8%89%e8%a7%92/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e6%9d%a8%e8%be%89%e4%b8%89%e8%a7%92/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-title=杨辉三角 data-hashtags=数学,杨辉三角><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-hashtag=数学><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-title=杨辉三角 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-title=杨辉三角><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%95%B0%E5%AD%A6/ class=post-tag title=\"标签 - 数学\">数学</a><a href=/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=post-tag title=\"标签 - 杨辉三角\">杨辉三角</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hdu-1241/ class=post-nav-item rel=prev title=\"Hdu-1241-Oil Deposits (Dfs)\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hdu-1241-Oil Deposits (Dfs)</a><a href=/posts/wannafly-20/ class=post-nav-item rel=next title=\"Wannafly 挑战赛 20-染色\">Wannafly 挑战赛 20-染色<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/50a19c19b19fb06da7fc1e0b7a611a2e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/50a19c19b19fb06da7fc1e0b7a611a2e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/杨辉三角/index.md",
    "content": "# 杨辉三角\n\n\n[百度知道](https://zhidao.baidu.com/question/367384574464313844.html)\n1\n\n1 1\n\n1 2 1\n\n1 3 3 1\n\n1 4 6 4 1\n\n1 5 10 10 5 1\n\n1 6 15 20 15 6 1\n\n---\n\n<!--more-->\n\n1、每行数字左右对称，由 1 开始逐渐变大，然后变小，回到 1。\n2、第 n 行的数字个数为 n 个。\n3、第 n 行数字和为 2^(n－1)。\n4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。\n5、将第 2n+1 行第 1 个数，跟第 2n+2 行第 3 个数、第 2n+3 行第 5 个数……连成一线，这些数的和是第 2n 个斐波那契数。将第 2n 行第 2 个数，跟第 2n+1 行第 4 个数、第 2n+2 行第 6 个数……这些数之和是第 2n-1 个斐波那契数。\n6、第 n 行的第 1 个数为 1，第二个数为 1×(n-1)，第三个数为 1×(n-1)×（n-2）/2，第四个数为 1×(n-1)×（n-2）/2×（n-3）/3…依此类推。\n\n此数列中各行中的数字正好是二项式 a+b 乘方后，展开始终各项的系数。如：\n\n```plain\n(a+b)^1=a^1+b^1\n(a+b)^2=a^2+2ab+b^2\n(a+b)^3=a^3+3a^2b+3ab^2+b^3\n……\n(a+b)^6=a^6+6a^5b+15a^4b^2+20a^3b^3+15a^2b^4+6ab^5+b^6（注意发现规律）\n……\n```\n\n二项式展开式：![二项式展开式：](images/20180721192815130.jpg)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/  \n\n"
  },
  {
    "path": "posts/牛客练习赛23/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>牛客练习赛 23 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"两题水过，暴力，找规律。\n1 托米的赌球 2 托米的划分 \"><meta name=keywords content='Nowcoder,ACM,C++,C'><meta itemprop=name content=\"牛客练习赛 23\"><meta itemprop=description content=\"两题水过，暴力，找规律。\n1 托米的赌球 2 托米的划分\"><meta itemprop=datePublished content=\"2018-07-27T21:56:08+08:00\"><meta itemprop=dateModified content=\"2018-07-27T21:56:08+08:00\"><meta itemprop=wordCount content=\"148\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Nowcoder,acm,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"牛客练习赛 23\"><meta property=\"og:description\" content=\"两题水过，暴力，找规律。\n1 托米的赌球 2 托米的划分\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-27T21:56:08+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-27T21:56:08+08:00\"><meta property=\"article:tag\" content=\"Nowcoder\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"牛客练习赛 23\"><meta name=twitter:description content=\"两题水过，暴力，找规律。\n1 托米的赌球 2 托米的划分\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ title=\"牛客练习赛 23 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ title=在线离线算法><link rel=next type=text/html href=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ title=畅通工程-HDU-1232（并查集经典模板）><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/index.md title=\"牛客练习赛 23 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"牛客练习赛 23\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Nowcoder, ACM, C\\u002b\\u002b, C\",\"wordcount\":148,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23\\/\",\"datePublished\":\"2018-07-27T21:56:08+08:00\",\"dateModified\":\"2018-07-27T21:56:08+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>牛客练习赛 23</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>牛客练习赛 23</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-27 21:56:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-27>2018-07-27</time></span>&nbsp;<span title=\"148 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"牛客练习赛 23\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#托米的赌球>托米的赌球</a></li><li><a href=#托米的划分>托米的划分</a></li><li><a href=#a>a</a></li><li><a href=#b>b</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-27，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>两题水过，暴力，找规律。</p><h2 class=heading-element id=托米的赌球><span>1 <a href=https://www.nowcoder.com/acm/contest/156/A target=_blank rel=\"external nofollow noopener noreferrer\">托米的赌球<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=托米的划分><span>2 <a href=https://www.nowcoder.com/acm/contest/156/B target=_blank rel=\"external nofollow noopener noreferrer\">托米的划分<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=a><span>3 a</span>\n<a href=#a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;bits/stdc++.h&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>c</span><span class=p>[</span><span class=mi>13</span><span class=p>],</span><span class=n>d</span><span class=p>[</span><span class=mi>13</span><span class=p>]</span><span class=o>=</span><span class=p>{</span><span class=mi>100</span><span class=p>,</span><span class=mi>50</span><span class=p>,</span><span class=mi>20</span><span class=p>,</span><span class=mi>10</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>1</span><span class=p>,</span><span class=mi>50</span><span class=p>,</span><span class=mi>20</span><span class=p>,</span><span class=mi>10</span><span class=p>,</span><span class=mi>5</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>1</span><span class=p>};</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>a</span><span class=p>,</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>t</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>memset</span><span class=p>(</span><span class=n>c</span><span class=p>,</span><span class=mi>0</span><span class=p>,</span><span class=k>sizeof</span><span class=p>(</span><span class=n>c</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>a</span><span class=o>&gt;&gt;</span><span class=n>b</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>7</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>x</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>a</span><span class=o>&gt;</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>            <span class=n>x</span><span class=o>=</span><span class=n>a</span><span class=o>/</span><span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>+=</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>a</span><span class=o>-=</span><span class=n>x</span><span class=o>*</span><span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>7</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>13</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=kt>int</span> <span class=n>x</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>b</span><span class=o>&gt;</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>            <span class=n>x</span><span class=o>=</span><span class=n>b</span><span class=o>/</span><span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>            <span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>+=</span><span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=n>b</span><span class=o>-=</span><span class=n>x</span><span class=o>*</span><span class=n>d</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>c</span><span class=p>[</span><span class=mi>0</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=mi>13</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=s>&#34; &#34;</span><span class=o>&lt;&lt;</span><span class=n>c</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=b><span>4 b</span>\n<a href=#b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>f(n)=f(n-1)+n-1;</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span><span class=cpf>&lt;bits/stdc++.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=n>using</span> <span class=n>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>long</span> <span class=kt>long</span> <span class=n>sum</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>t</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>cin</span><span class=o>&gt;&gt;</span><span class=n>n</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>if</span><span class=p>(</span><span class=n>n</span><span class=o>==</span><span class=mi>1</span><span class=p>)</span> <span class=n>sum</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=kt>int</span> <span class=n>i</span><span class=o>=</span><span class=mi>3</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>sum</span><span class=o>+=</span><span class=n>i</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>cout</span><span class=o>&lt;&lt;</span><span class=n>sum</span><span class=o>&lt;&lt;</span><span class=n>endl</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-27 21:56:08\">更新于 2018-07-27&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%89%9b%e5%ae%a2%e7%bb%83%e4%b9%a0%e8%b5%9b23.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/%e7%89%9b%e5%ae%a2%e7%bb%83%e4%b9%a0%e8%b5%9b23.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B+23&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B+23%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%89%9b%e5%ae%a2%e7%bb%83%e4%b9%a0%e8%b5%9b23.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ data-title=\"牛客练习赛 23\" data-hashtags=Nowcoder,ACM,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ data-hashtag=Nowcoder><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ data-title=\"牛客练习赛 23\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ data-title=\"牛客练习赛 23\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/nowcoder/ class=post-tag title=\"标签 - Nowcoder\">Nowcoder</a><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=post-nav-item rel=prev title=在线离线算法><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>在线离线算法</a><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=post-nav-item rel=next title=畅通工程-HDU-1232（并查集经典模板）>畅通工程-HDU-1232（并查集经典模板）<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#托米的赌球>托米的赌球</a></li><li><a href=#托米的划分>托米的划分</a></li><li><a href=#a>a</a></li><li><a href=#b>b</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/38fd272149f9ea5fb309874b8348e534.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/38fd272149f9ea5fb309874b8348e534.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/牛客练习赛23/index.md",
    "content": "# 牛客练习赛 23\n\n\n两题水过，暴力，找规律。\n\n## [托米的赌球](https://www.nowcoder.com/acm/contest/156/A)\n\n## [托米的划分](https://www.nowcoder.com/acm/contest/156/B)\n\n<!--more-->\n\n## a\n\n```cpp\n#include<bits/stdc++.h>\nusing namespace std;\n\nint main(){\n    int c[13],d[13]={100,50,20,10,5,2,1,50,20,10,5,2,1};\n    int i,t;\n    cin>>t;\n    int a,b;\n    while(t--){\n        memset(c,0,sizeof(c));\n        cin>>a>>b;\n        for(i=0;i<7;i++){\n            int x=0;\n        if(a>c[i]){\n            x=a/d[i];\n            c[i]+=x;\n            a-=x*d[i];\n        }\n        for(i=7;i<13;i++){\n            int x=0;\n        if(b>c[i]){\n            x=b/d[i];\n            c[i]+=x;\n            b-=x*d[i];\n        }\n        cout<<c[0];\n        for(i=1;i<13;i++)\n            cout<<\" \"<<c[i];\n        cout<<endl;\n    }\n    return 0;\n}\n```\n\n## b\n\nf(n)=f(n-1)+n-1;\n\n```c\n#include<bits/stdc++.h>\nusing namespace std;\n\nlong long sum;\n\nint main(){\n    int n;\n    int t;\n    cin>>t;\n    while(t--){\n        sum=1;\n        cin>>n;\n        if(n==1) sum=0;\n        for(int i=3;i<=n;i++)\n            sum+=i-1;\n        cout<<sum<<endl;\n    }\n    return 0;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/  \n\n"
  },
  {
    "path": "posts/猴子与哪吒/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>猴子与哪吒 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"一直觉得中国古代神话\n能称得上传奇的只有两个人物：\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\n\"><meta name=keywords content='随笔'><meta itemprop=name content=\"猴子与哪吒\"><meta itemprop=description content=\"一直觉得中国古代神话\n能称得上传奇的只有两个人物：\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\"><meta itemprop=datePublished content=\"2018-05-31T10:09:15+08:00\"><meta itemprop=dateModified content=\"2018-05-31T10:09:15+08:00\"><meta itemprop=wordCount content=\"200\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"随笔\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"猴子与哪吒\"><meta property=\"og:description\" content=\"一直觉得中国古代神话\n能称得上传奇的只有两个人物：\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-05-31T10:09:15+08:00\"><meta property=\"article:modified_time\" content=\"2018-05-31T10:09:15+08:00\"><meta property=\"article:tag\" content=\"随笔\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"猴子与哪吒\"><meta name=twitter:description content=\"一直觉得中国古代神话\n能称得上传奇的只有两个人物：\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ title=\"猴子与哪吒 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/lruihao.github.io/ title=\"博客构建档（HTML & Markdown）\"><link rel=next type=text/html href=https://lruihao.cn/posts/hexowrite/ title=\"hexo 添加图片，音乐，链接，视频\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/index.md title=\"猴子与哪吒 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"猴子与哪吒\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"随笔\",\"wordcount\":200,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92\\/\",\"datePublished\":\"2018-05-31T10:09:15+08:00\",\"dateModified\":\"2018-05-31T10:09:15+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>猴子与哪吒</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>猴子与哪吒</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2018-05-31 10:09:15\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-05-31>2018-05-31</time></span>&nbsp;<span title=\"200 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=猴子与哪吒><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/posts/猴子与哪吒/images/hznz.jpg sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/posts/猴子与哪吒/images/hznz.jpg></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>一直觉得中国古代神话</p><p>能称得上传奇的只有两个人物：</p><p>一是猴子</p><p>一是哪吒</p><p>百世蕴灵育出只石猴 大闹天宫腾云驾雾</p><p>三年怀胎生了个哪吒 东海屠龙翻江倒海</p><p>可以说 除了这两人 没人再能当得起离经放纵四个字的</p><p>但称得上悲剧的 约摸也只有这两个</p><p>一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空</p><p>一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子</p><p>这尘世最擅长的事 大抵就是抹杀疏狂者的落拓 磨平豪纵者的傲骨 斩灭叛世者的孤妄</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-05-31 10:09:15\">更新于 2018-05-31&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/%e7%8c%b4%e5%ad%90%e4%b8%8e%e5%93%aa%e5%90%92/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_thoughts/%e7%8c%b4%e5%ad%90%e4%b8%8e%e5%93%aa%e5%90%92/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_thoughts/%e7%8c%b4%e5%ad%90%e4%b8%8e%e5%93%aa%e5%90%92/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ data-title=猴子与哪吒 data-hashtags=随笔><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ data-hashtag=随笔><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ data-title=猴子与哪吒 data-image=/posts/猴子与哪吒/images/hznz.jpg data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ data-title=猴子与哪吒><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E9%9A%8F%E7%AC%94/ class=post-tag title=\"标签 - 随笔\">随笔</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/lruihao.github.io/ class=post-nav-item rel=prev title=Lruihao/lruihao.github.io><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/lruihao.github.io</a><a href=/posts/hexowrite/ class=post-nav-item rel=next title=\"Hexo 添加图片，音乐，链接，视频\">Hexo 添加图片，音乐，链接，视频<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/9b5d8d6ca9926e02fff9fac8113762be.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/9b5d8d6ca9926e02fff9fac8113762be.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/猴子与哪吒/index.md",
    "content": "# 猴子与哪吒\n\n\n一直觉得中国古代神话\n\n能称得上传奇的只有两个人物：\n\n一是猴子\n\n一是哪吒\n\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n\n但称得上悲剧的 约摸也只有这两个\n\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\n\n这尘世最擅长的事 大抵就是抹杀疏狂者的落拓 磨平豪纵者的傲骨 斩灭叛世者的孤妄\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/  \n\n"
  },
  {
    "path": "posts/畅通工程/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>畅通工程-HDU-1232（并查集经典模板） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 并查集入门推荐：超有爱的并查集~ 2 题目链接：畅通工程 3 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\n\"><meta name=keywords content='ACM,并查集,HDU,C++,C'><meta itemprop=name content=\"畅通工程-HDU-1232（并查集经典模板）\"><meta itemprop=description content=\"1 并查集入门推荐：超有爱的并查集~ 2 题目链接：畅通工程 3 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\"><meta itemprop=datePublished content=\"2018-07-31T11:08:43+08:00\"><meta itemprop=dateModified content=\"2018-07-31T11:08:43+08:00\"><meta itemprop=wordCount content=\"380\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,并查集,HDU,C++,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"畅通工程-HDU-1232（并查集经典模板）\"><meta property=\"og:description\" content=\"1 并查集入门推荐：超有爱的并查集~ 2 题目链接：畅通工程 3 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-07-31T11:08:43+08:00\"><meta property=\"article:modified_time\" content=\"2018-07-31T11:08:43+08:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"并查集\"><meta property=\"article:tag\" content=\"HDU\"><meta property=\"article:tag\" content=\"C++\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"畅通工程-HDU-1232（并查集经典模板）\"><meta name=twitter:description content=\"1 并查集入门推荐：超有爱的并查集~ 2 题目链接：畅通工程 3 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ title=\"畅通工程-HDU-1232（并查集经典模板） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ title=\"牛客练习赛 23\"><link rel=next type=text/html href=https://lruihao.cn/posts/piles-with-stones/ title=Piles-with-stones><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/index.md title=\"畅通工程-HDU-1232（并查集经典模板） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"畅通工程-HDU-1232（并查集经典模板）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"ACM, 并查集, HDU, C\\u002b\\u002b, C\",\"wordcount\":380,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B\\/\",\"datePublished\":\"2018-07-31T11:08:43+08:00\",\"dateModified\":\"2018-07-31T11:08:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>畅通工程-HDU-1232（并查集经典模板）</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>畅通工程-HDU-1232（并查集经典模板）</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-07-31 11:08:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-07-31>2018-07-31</time></span>&nbsp;<span title=\"380 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=畅通工程-HDU-1232（并查集经典模板）><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#并查集入门推荐超有爱的并查集>并查集入门推荐：超有爱的并查集~</a></li><li><a href=#题目链接畅通工程>题目链接：畅通工程</a></li><li><a href=#题意分析>题意分析</a></li><li><a href=#基础回顾>基础回顾</a><ol><li><a href=#find-函数找根结点的两种写法如下>find() 函数找根结点的两种写法如下</a><ol><li><a href=#合并函数>合并函数</a></li></ol></li></ol></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-07-31，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=并查集入门推荐超有爱的并查集><span>1 并查集入门推荐：<a href=https://blog.csdn.net/iteye_10189/article/details/82103035 target=_blank rel=\"external nofollow noopener noreferrer\">超有爱的并查集~<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=题目链接畅通工程><span>2 题目链接：<a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=_blank rel=\"external nofollow noopener noreferrer\">畅通工程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=题意分析><span>3 题意分析</span>\n<a href=#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-cpp\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-cpp data-lang=cpp><span class=line><span class=cl><span class=cp>#include&lt;iostream&gt;\n</span></span></span><span class=line><span class=cl><span class=cp>#include&lt;cstdio&gt;\n</span></span></span><span class=line><span class=cl><span class=k>using</span> <span class=k>namespace</span> <span class=n>std</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=n>pre</span><span class=p>[</span><span class=mi>1010</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>findd</span><span class=p>(</span><span class=kt>int</span> <span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>son</span><span class=p>,</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>son</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span><span class=o>!=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>son</span><span class=o>!=</span><span class=n>root</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>t</span><span class=o>=</span><span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>son</span><span class=p>]</span><span class=o>=</span><span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>son</span><span class=o>=</span><span class=n>t</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>(){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>n</span><span class=p>,</span><span class=n>m</span><span class=p>,</span><span class=n>i</span><span class=p>,</span><span class=n>sum</span><span class=p>,</span><span class=n>r1</span><span class=p>,</span><span class=n>r2</span><span class=p>,</span><span class=n>star</span><span class=p>,</span><span class=n>end1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>n</span><span class=p>)</span><span class=o>&amp;&amp;</span><span class=n>n</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>        <span class=n>sum</span><span class=o>=</span><span class=n>n</span><span class=o>-</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;=</span><span class=n>n</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>            <span class=n>pre</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>i</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>m</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=k>while</span><span class=p>(</span><span class=n>m</span><span class=o>--</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>            <span class=n>scanf</span><span class=p>(</span><span class=s>&#34;%d%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>star</span><span class=p>,</span><span class=o>&amp;</span><span class=n>end1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>r1</span><span class=o>=</span><span class=n>findd</span><span class=p>(</span><span class=n>star</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=n>r2</span><span class=o>=</span><span class=n>findd</span><span class=p>(</span><span class=n>end1</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>            <span class=k>if</span><span class=p>(</span><span class=n>r1</span><span class=o>!=</span><span class=n>r2</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>                <span class=n>pre</span><span class=p>[</span><span class=n>r1</span><span class=p>]</span><span class=o>=</span><span class=n>r2</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>                <span class=n>sum</span><span class=o>--</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>        <span class=n>printf</span><span class=p>(</span><span class=s>&#34;%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span><span class=n>sum</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl> <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=基础回顾><span>4 基础回顾</span>\n<a href=#%e5%9f%ba%e7%a1%80%e5%9b%9e%e9%a1%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=find-函数找根结点的两种写法如下><span>4.1 find() 函数找根结点的两种写法如下</span>\n<a href=#find-%e5%87%bd%e6%95%b0%e6%89%be%e6%a0%b9%e7%bb%93%e7%82%b9%e7%9a%84%e4%b8%a4%e7%a7%8d%e5%86%99%e6%b3%95%e5%a6%82%e4%b8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>第一种递归：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-C data-lang=C><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>x</span> <span class=o>==</span> <span class=n>pre</span><span class=p>[</span><span class=n>x</span><span class=p>]</span> <span class=o>?</span> <span class=nl>x</span> <span class=p>:</span> <span class=nf>find</span><span class=p>(</span><span class=n>pre</span><span class=p>[</span><span class=n>x</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>第二种：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>int</span> <span class=nf>find</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>root</span><span class=p>,</span> <span class=n>temp</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>root</span> <span class=o>=</span> <span class=n>x</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>root</span> <span class=o>!=</span> <span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>])</span>\n</span></span><span class=line><span class=cl>        <span class=n>root</span> <span class=o>=</span> <span class=n>pre</span><span class=p>[</span><span class=n>root</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span><span class=p>(</span><span class=n>x</span> <span class=o>!=</span> <span class=n>root</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>temp</span> <span class=o>=</span> <span class=n>pre</span><span class=p>[</span><span class=n>x</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>temp</span><span class=p>]</span> <span class=o>=</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>x</span> <span class=o>=</span> <span class=n>temp</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=n>root</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h4 class=heading-element id=合并函数><span>4.1.1 合并函数</span>\n<a href=#%e5%90%88%e5%b9%b6%e5%87%bd%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=kt>void</span> <span class=nf>join</span><span class=p>(</span><span class=kt>int</span> <span class=n>x</span><span class=p>,</span><span class=kt>int</span> <span class=n>y</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fx</span><span class=o>=</span><span class=nf>find</span><span class=p>(</span><span class=n>x</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>fy</span><span class=o>=</span><span class=nf>find</span><span class=p>(</span><span class=n>y</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=k>if</span><span class=p>(</span><span class=n>fx</span><span class=o>!=</span><span class=n>fy</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=n>pre</span><span class=p>[</span><span class=n>fx</span><span class=p>]</span><span class=o>=</span><span class=n>fy</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-07-31 11:08:43\">更新于 2018-07-31&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B-HDU-1232%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%E7%BB%8F%E5%85%B8%E6%A8%A1%E6%9D%BF%EF%BC%89&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B-HDU-1232%EF%BC%88%E5%B9%B6%E6%9F%A5%E9%9B%86%E7%BB%8F%E5%85%B8%E6%A8%A1%E6%9D%BF%EF%BC%89%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ data-title=畅通工程-HDU-1232（并查集经典模板） data-hashtags=ACM,并查集,HDU,C++,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ data-hashtag=ACM><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ data-title=畅通工程-HDU-1232（并查集经典模板） data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ data-title=畅通工程-HDU-1232（并查集经典模板）><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=post-tag title=\"标签 - 并查集\">并查集</a><a href=/tags/hdu/ class=post-tag title=\"标签 - HDU\">HDU</a><a href=/tags/c++/ class=post-tag title=\"标签 - C++\">C++</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=post-nav-item rel=prev title=\"牛客练习赛 23\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>牛客练习赛 23</a><a href=/posts/piles-with-stones/ class=post-nav-item rel=next title=Piles-With-Stones>Piles-With-Stones<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#并查集入门推荐超有爱的并查集>并查集入门推荐：超有爱的并查集~</a></li><li><a href=#题目链接畅通工程>题目链接：畅通工程</a></li><li><a href=#题意分析>题意分析</a></li><li><a href=#基础回顾>基础回顾</a><ol><li><a href=#find-函数找根结点的两种写法如下>find() 函数找根结点的两种写法如下</a><ol><li><a href=#合并函数>合并函数</a></li></ol></li></ol></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/1ef18b020da0fb5d3b2e79d1d399e62c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/1ef18b020da0fb5d3b2e79d1d399e62c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/畅通工程/index.md",
    "content": "# 畅通工程-HDU-1232（并查集经典模板）\n\n\n## 并查集入门推荐：[超有爱的并查集~](https://blog.csdn.net/iteye_10189/article/details/82103035)\n\n## 题目链接：[畅通工程](http://acm.hdu.edu.cn/showproblem.php?pid=1232)\n\n## 题意分析\n\n首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\n\n<!--more-->\n\n```cpp\n#include<iostream>\n#include<cstdio>\nusing namespace std;\nint pre[1010];\n\nint findd(int root){\n    int son,t;\n    son=root;\n    while(root!=pre[root])\n        root=pre[root];\n    while(son!=root){\n        t=pre[son];\n        pre[son]=root;\n        son=t;\n    }\n    return root;\n}\n\nint main(){\n    int n,m,i,sum,r1,r2,star,end1;\n    while(scanf(\"%d\",&n)&&n){\n        sum=n-1;\n        for(i=1;i<=n;i++)\n            pre[i]=i;\n        scanf(\"%d\",&m);\n        while(m--){\n            scanf(\"%d%d\",&star,&end1);\n            r1=findd(star);\n            r2=findd(end1);\n            if(r1!=r2){\n                pre[r1]=r2;\n                sum--;\n            }\n        }\n        printf(\"%d\\n\",sum);\n    }\n return 0;\n}\n\n```\n\n## 基础回顾\n\n### find() 函数找根结点的两种写法如下\n\n第一种递归：\n\n```C\nint find(int x)\n{\n    return x == pre[x] ? x : find(pre[x]);\n}\n```\n\n第二种：\n\n```c\nint find(int x)\n{\n    int root, temp;\n    root = x;\n    while(root != pre[root])\n        root = pre[root];\n    while(x != root)\n    {\n        temp = pre[x];\n        pre[temp] = root;\n        x = temp;\n    }\n    return root;\n}\n```\n\n#### 合并函数\n\n```c\nvoid join(int x,int y){\n    int fx=find(x);\n    int fy=find(y);\n    if(fx!=fy)\n        pre[fx]=fy;\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/  \n\n"
  },
  {
    "path": "posts/简单背包/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>简单背包 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"弱鸡还是弱鸡啊最简单的背包问题——。——！\n1 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\n\"><meta name=keywords content='背包问题,C'><meta itemprop=name content=\"简单背包\"><meta itemprop=description content=\"弱鸡还是弱鸡啊最简单的背包问题——。——！\n1 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\"><meta itemprop=datePublished content=\"2018-06-16T13:18:43+08:00\"><meta itemprop=dateModified content=\"2018-06-16T13:18:43+08:00\"><meta itemprop=wordCount content=\"1169\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"背包问题,C\"><meta property=\"og:url\" content=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"简单背包\"><meta property=\"og:description\" content=\"弱鸡还是弱鸡啊最简单的背包问题——。——！\n1 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"posts\"><meta property=\"article:published_time\" content=\"2018-06-16T13:18:43+08:00\"><meta property=\"article:modified_time\" content=\"2018-06-16T13:18:43+08:00\"><meta property=\"article:tag\" content=\"背包问题\"><meta property=\"article:tag\" content=\"C\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"简单背包\"><meta name=twitter:description content=\"弱鸡还是弱鸡啊最简单的背包问题——。——！\n1 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ title=\"简单背包 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ title=\"18 湘潭邀请赛参赛队员代表发言\"><link rel=next type=text/html href=https://lruihao.cn/posts/wannafly-18/ title=\"Wannafly 挑战赛 18-序列\"><link rel=alternate type=text/markdown href=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/index.md title=\"简单背包 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"简单背包\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"背包问题, C\",\"wordcount\":1169,\"url\":\"https:\\/\\/lruihao.cn\\/posts\\/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85\\/\",\"datePublished\":\"2018-06-16T13:18:43+08:00\",\"dateModified\":\"2018-06-16T13:18:43+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/posts/ title=Posts>文章</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>简单背包</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>简单背包</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/acm/ class=post-category title=\"分类 - ACM\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> ACM</a></span></div><div class=post-meta-line><span title=\"发布于 2018-06-16 13:18:43\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-06-16>2018-06-16</time></span>&nbsp;<span title=\"1169 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=简单背包><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#问题描述>问题描述</a></li><li><a href=#实现提示>实现提示</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-06-16，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><code>弱鸡还是弱鸡啊最简单的背包问题——。——！</code></p><h2 class=heading-element id=问题描述><span>1 问题描述</span>\n<a href=#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。</p><h2 class=heading-element id=实现提示><span>2 实现提示</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e6%8f%90%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可利用回溯法的设计思想来解决背包问题。首先，将物品排成一列，然后顺序选取物品装入背包，假设已选取了前 i 件物品之后背包还没有装满，则继续选取第 i+1 件物品，若该件物品“太大”不能装入，则丢弃而继续选取下一件，直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包，则说明“刚刚”装入背包的那件物品“不合适”，应将它取出“丢弃一边”，继续再从“它之后”的物品中选取，如此重复，直至求得满足条件的解，或者无解。由于回溯求解的规则是“后进先出”，因此要用到栈。</p><p>使用栈作为该程序的数据结构，利用栈进行语法检查，以深度优先的搜索方式解空间，实现递归过程和函数的调用，在设计时还使用 C 语言的数组及其循环语言来实现程序。<br>运用回溯法解题，在搜索解空间树时，只要其左儿子节点是一个可行结点，搜索就进入左子树，在右子树中有可能包含最优解是才进入右子树搜索。否则将右子树剪去。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-c\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span><span class=lnt>92\n</span><span class=lnt>93\n</span><span class=lnt>94\n</span><span class=lnt>95\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-c data-lang=c><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;stdio.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#include</span> <span class=cpf>&lt;windows.h&gt;</span><span class=cp>\n</span></span></span><span class=line><span class=cl><span class=cp>#define size 50\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>struct</span> <span class=n>stacks</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>data</span><span class=p>[</span><span class=n>size</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>top</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=n>stack</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>backpack</span><span class=p>(</span><span class=kt>int</span> <span class=n>number</span><span class=p>,</span><span class=kt>int</span> <span class=n>V</span><span class=p>,</span><span class=kt>int</span> <span class=n>w</span><span class=p>[]){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>j</span><span class=o>=</span><span class=mi>1</span><span class=p>,</span><span class=n>k</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>flag</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=k>do</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>while</span> <span class=p>(</span><span class=n>V</span> <span class=o>&gt;</span> <span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>k</span> <span class=o>&lt;=</span> <span class=n>number</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=n>V</span> <span class=o>&gt;=</span> <span class=n>w</span><span class=p>[</span><span class=n>k</span><span class=p>])</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>stack</span><span class=p>.</span><span class=n>data</span><span class=p>[</span><span class=n>stack</span><span class=p>.</span><span class=n>top</span><span class=p>]</span> <span class=o>=</span> <span class=n>k</span><span class=p>;</span><span class=c1>//第 k 个物品的体积下标\n</span></span></span><span class=line><span class=cl>        <span class=n>stack</span><span class=p>.</span><span class=n>top</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=n>V</span> <span class=o>-=</span> <span class=n>w</span><span class=p>[</span><span class=n>k</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=n>k</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=n>V</span> <span class=o>==</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=n>flag</span><span class=o>=</span><span class=mi>1</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;第%d 个符合条件的解：&#34;</span><span class=p>,</span> <span class=n>j</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>      <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>stack</span><span class=p>.</span><span class=n>top</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;%d &#34;</span><span class=p>,</span> <span class=n>w</span><span class=p>[</span><span class=n>stack</span><span class=p>.</span><span class=n>data</span><span class=p>[</span><span class=n>i</span><span class=p>]]);</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=n>j</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=c1>//k 满时回溯\n</span></span></span><span class=line><span class=cl>    <span class=n>k</span> <span class=o>=</span> <span class=n>stack</span><span class=p>.</span><span class=n>data</span><span class=p>[</span><span class=o>--</span><span class=n>stack</span><span class=p>.</span><span class=n>top</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>stack</span><span class=p>.</span><span class=n>data</span><span class=p>[</span><span class=n>stack</span><span class=p>.</span><span class=n>top</span><span class=p>]</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=n>V</span> <span class=o>+=</span> <span class=n>w</span><span class=p>[</span><span class=n>k</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>    <span class=n>k</span><span class=o>++</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span> <span class=k>while</span> <span class=p>(</span><span class=o>!</span><span class=p>(</span><span class=n>stack</span><span class=p>.</span><span class=n>top</span> <span class=o>==</span> <span class=mi>0</span> <span class=o>&amp;&amp;</span> <span class=n>k</span> <span class=o>==</span> <span class=n>number</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span><span class=p>(</span><span class=o>!</span><span class=n>flag</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;背包无解！</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>void</span> <span class=nf>judge</span><span class=p>(</span><span class=kt>int</span> <span class=n>number</span><span class=p>,</span><span class=kt>int</span> <span class=n>V</span><span class=p>,</span><span class=kt>int</span> <span class=n>w</span><span class=p>[]){</span>\n</span></span><span class=line><span class=cl>    <span class=kt>int</span> <span class=n>i</span><span class=p>,</span><span class=n>s</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>number</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=n>s</span> <span class=o>=</span> <span class=n>s</span> <span class=o>+</span> <span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span><span class=p>(</span><span class=n>V</span> <span class=o>&gt;</span> <span class=n>s</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;背包无解！</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nf>exit</span><span class=p>(</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span><span class=p>(</span><span class=n>V</span><span class=o>==</span><span class=n>s</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;只有一个符合条件的解：%d</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>,</span> <span class=n>V</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nf>exit</span><span class=p>(</span><span class=mi>0</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kt>int</span> <span class=nf>main</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>w</span><span class=p>[</span><span class=n>size</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>V</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>j</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kt>int</span> <span class=n>number</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;</span><span class=se>\\t</span><span class=s> **简单背包问题**</span><span class=se>\\n\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;</span><span class=se>\\n</span><span class=s> 请输入可供选择装入物品的个数：</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>number</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;</span><span class=se>\\n</span><span class=s> 请输入各件物品的体积：</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>number</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//排序\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span><span class=p>(</span><span class=n>i</span><span class=o>=</span><span class=mi>0</span><span class=p>;</span><span class=n>i</span><span class=o>&lt;</span><span class=n>number</span><span class=p>;</span><span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span><span class=p>(</span><span class=n>j</span><span class=o>=</span><span class=n>i</span><span class=o>+</span><span class=mi>1</span><span class=p>;</span><span class=n>j</span><span class=o>&lt;</span><span class=n>number</span><span class=p>;</span><span class=n>j</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span><span class=p>(</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>&gt;</span><span class=n>w</span><span class=p>[</span><span class=n>j</span><span class=p>]){</span>\n</span></span><span class=line><span class=cl>        <span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>^</span><span class=n>w</span><span class=p>[</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>w</span><span class=p>[</span><span class=n>j</span><span class=p>]</span><span class=o>=</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>^</span><span class=n>w</span><span class=p>[</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>        <span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>=</span><span class=n>w</span><span class=p>[</span><span class=n>i</span><span class=p>]</span><span class=o>^</span><span class=n>w</span><span class=p>[</span><span class=n>j</span><span class=p>];</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;</span><span class=se>\\n</span><span class=s> 请输入背包的总体积：</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span> <span class=o>&amp;</span><span class=n>V</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>while</span><span class=p>(</span><span class=n>V</span> <span class=o>&lt;</span> <span class=mi>0</span><span class=p>){</span>\n</span></span><span class=line><span class=cl>    <span class=nf>printf</span><span class=p>(</span><span class=s>&#34;输入背包体积错误！重新输入！</span><span class=se>\\n</span><span class=s>&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=nf>scanf</span><span class=p>(</span><span class=s>&#34;%d&#34;</span><span class=p>,</span><span class=o>&amp;</span><span class=n>V</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nf>judge</span><span class=p>(</span><span class=n>number</span><span class=p>,</span><span class=n>V</span><span class=p>,</span><span class=n>w</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>//初始化栈\n</span></span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=n>i</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span> <span class=n>i</span> <span class=o>&lt;</span> <span class=n>number</span><span class=p>;</span> <span class=n>i</span><span class=o>++</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=n>stack</span><span class=p>.</span><span class=n>data</span><span class=p>[</span><span class=n>i</span><span class=p>]</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=n>stack</span><span class=p>.</span><span class=n>top</span> <span class=o>=</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nf>backpack</span><span class=p>(</span><span class=n>number</span><span class=p>,</span><span class=n>V</span><span class=p>,</span><span class=n>w</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=mi>0</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>&ndash;这么简单的问题我都费力，太辣鸡了，还是要多练习啊！&ndash;</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-06-16 13:18:43\">更新于 2018-06-16&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%ae%80%e5%8d%95%e8%83%8c%e5%8c%85.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/posts/_acm/%e7%ae%80%e5%8d%95%e8%83%8c%e5%8c%85.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85%7c%0A%7cURL%7chttps://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/posts/_acm/%e7%ae%80%e5%8d%95%e8%83%8c%e5%8c%85.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ data-title=简单背包 data-hashtags=背包问题,C><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ data-hashtag=背包问题><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ data-title=简单背包 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ data-title=简单背包><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ class=post-tag title=\"标签 - 背包问题\">背包问题</a><a href=/tags/c/ class=post-tag title=\"标签 - C\">C</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=post-nav-item rel=prev title=\"18 湘潭邀请赛参赛队员代表发言\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>18 湘潭邀请赛参赛队员代表发言</a><a href=/posts/wannafly-18/ class=post-nav-item rel=next title=\"Wannafly 挑战赛 18-序列\">Wannafly 挑战赛 18-序列<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#问题描述>问题描述</a></li><li><a href=#实现提示>实现提示</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/431ad847b2fa08d7740410546f00bf5b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/431ad847b2fa08d7740410546f00bf5b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "posts/简单背包/index.md",
    "content": "# 简单背包\n\n\n`弱鸡还是弱鸡啊最简单的背包问题——。——！`\n\n## 问题描述\n\n假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\n\n<!--more-->\n\n## 实现提示\n\n可利用回溯法的设计思想来解决背包问题。首先，将物品排成一列，然后顺序选取物品装入背包，假设已选取了前 i 件物品之后背包还没有装满，则继续选取第 i+1 件物品，若该件物品“太大”不能装入，则丢弃而继续选取下一件，直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包，则说明“刚刚”装入背包的那件物品“不合适”，应将它取出“丢弃一边”，继续再从“它之后”的物品中选取，如此重复，直至求得满足条件的解，或者无解。由于回溯求解的规则是“后进先出”，因此要用到栈。\n\n使用栈作为该程序的数据结构，利用栈进行语法检查，以深度优先的搜索方式解空间，实现递归过程和函数的调用，在设计时还使用 C 语言的数组及其循环语言来实现程序。  \n运用回溯法解题，在搜索解空间树时，只要其左儿子节点是一个可行结点，搜索就进入左子树，在右子树中有可能包含最优解是才进入右子树搜索。否则将右子树剪去。\n\n```c\n#include <stdio.h>\n#include <windows.h>\n#define size 50\n\nstruct stacks {\n  int data[size];\n  int top;\n} stack;\n\nvoid backpack(int number,int V,int w[]){\n    int i,j=1,k=0;\n    int flag=0;\n    do {\n    while (V > 0 && k <= number) {\n      if (V >= w[k]) {\n        stack.data[stack.top] = k;//第 k 个物品的体积下标\n        stack.top++;\n        V -= w[k];\n      }\n      k++;\n    }\n\n    if (V == 0) {\n      flag=1;\n      printf(\"第%d 个符合条件的解：\", j);\n      for (i = 0; i < stack.top; i++) {\n        printf(\"%d \", w[stack.data[i]]);\n      }\n      j++;\n      printf(\"\\n\");\n    }\n    //k 满时回溯\n    k = stack.data[--stack.top];\n    stack.data[stack.top] = 0;\n    V += w[k];\n    k++;\n  } while (!(stack.top == 0 && k == number));\n  if(!flag){\n    printf(\"背包无解！\\n\");\n  }\n}\n\nvoid judge(int number,int V,int w[]){\n    int i,s = 0;\n  for (i = 0; i < number; i++)\n    s = s + w[i];\n  if(V > s){\n    printf(\"背包无解！\\n\");\n    exit(0);\n  }\n  if(V==s){\n    printf(\"只有一个符合条件的解：%d\\n\", V);\n    exit(0);\n  }\n}\n\nint main() {\n  int w[size];\n  int V;\n  int i = 0;\n  int j = 0;\n  int number;\n  printf(\"\\t **简单背包问题**\\n\\n\");\n  printf(\"\\n 请输入可供选择装入物品的个数：\\n\");\n  scanf(\"%d\", &number);\n  printf(\"\\n 请输入各件物品的体积：\\n\");\n  for (i = 0; i < number; i++)\n    scanf(\"%d\", &w[i]);\n\n  //排序\n  for(i=0;i<number;i++)\n    for(j=i+1;j<number;j++)\n      if(w[i]>w[j]){\n        w[i]=w[i]^w[j];\n        w[j]=w[i]^w[j];\n        w[i]=w[i]^w[j];\n      }\n\n  printf(\"\\n 请输入背包的总体积：\\n\");\n  scanf(\"%d\", &V);\n  while(V < 0){\n    printf(\"输入背包体积错误！重新输入！\\n\");\n    scanf(\"%d\",&V);\n  }\n\n  judge(number,V,w);\n\n  //初始化栈\n  for (i = 0; i < number; i++)\n  stack.data[i] = 0;\n  stack.top = 0;\n\n  backpack(number,V,w);\n  return 0;\n}\n```\n\n--这么简单的问题我都费力，太辣鸡了，还是要多练习啊！--\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/  \n\n"
  },
  {
    "path": "projects/apple-devices-preview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>临时决定再写一个小工具 - 网站预览图生成器 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\n\"><meta name=keywords content='Vue2'><meta itemprop=name content=\"临时决定再写一个小工具 - 网站预览图生成器\"><meta itemprop=description content=\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\"><meta itemprop=datePublished content=\"2024-04-04T13:23:37+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"334\"><meta itemprop=image content=\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\"><meta itemprop=keywords content=\"Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/apple-devices-preview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"临时决定再写一个小工具 - 网站预览图生成器\"><meta property=\"og:description\" content=\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-04-04T13:23:37+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\"><meta name=twitter:title content=\"临时决定再写一个小工具 - 网站预览图生成器\"><meta name=twitter:description content=\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/component-projects/ title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/apple-devices-preview/index.md title=\"临时决定再写一个小工具 - 网站预览图生成器 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/apple-devices-preview\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/apple-devices-preview\\/images\\/cover.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2\",\"wordcount\":334,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/apple-devices-preview\\/\",\"datePublished\":\"2024-04-04T13:23:37+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/apple-devices-preview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>临时决定再写一个小工具 - 网站预览图生成器</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><span class=active title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</span></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/coverview/ class=collection-nav-item rel=prev title=用五天时间给自己制作一个封面图生成工具><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>29/51</span><a href=/projects/hugo-fixit/component-projects/ class=collection-nav-item rel=next title=hugo-fixit/component-projects><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>临时决定再写一个小工具 - 网站预览图生成器</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a>&ensp;<a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-04-04 13:23:37\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-04-04>2024-04-04</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"334 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/projects/apple-devices-preview/images/cover.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/projects/apple-devices-preview/images/cover.webp height=1508 width=2880></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#在线体验>在线体验</a></li><li><a href=#实现原理>实现原理</a></li><li><a href=#卡壳点>卡壳点</a></li><li><a href=#效果图>效果图</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>开发完 <a href=https://github.com/Lruihao/CoverView target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。</p><h2 class=heading-element id=在线体验><span>1 在线体验</span>\n<a href=#%e5%9c%a8%e7%ba%bf%e4%bd%93%e9%aa%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://lruihao.github.io/vue-el-demo/#/apple-devices-preview target=_blank rel=\"external nofollow noopener noreferrer\">vue-el-demo#apple-devices-preview<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/vue-el-demo/blob/main/src/views/apple-devices-preview.vue target=_blank rel=\"external nofollow noopener noreferrer\">源码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=实现原理><span>2 实现原理</span>\n<a href=#%e5%ae%9e%e7%8e%b0%e5%8e%9f%e7%90%86 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>实现原理很简单，就是先写好布局，然后每个设备里面套一个 iframe，然后通过 iframe 的 <code>src</code> 属性来加载网页。</p><h2 class=heading-element id=卡壳点><span>3 卡壳点</span>\n<a href=#%e5%8d%a1%e5%a3%b3%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>iframe 存在跨域问题。</li><li>在将 DOM 转图片的时候，iframe 里面的内容无法转换，尝试了 <code>html2canvas</code> 和 <code>dom-to-image-more</code> 都不行，放弃了，改为用浏览器插件 <code>Fireshot</code> 截图。</li></ul><p>一个未尝试的思路，如果跨域问题得以解决，转换图片的步骤可以分解为：</p><ol><li>拿到每个 iframe 里的 body 内容，转为图片，然后将图片相对定位到对应的设备 iframe 里</li><li>隐藏原来的 iframe</li><li>最后将父容器的 DOM 转为图片</li></ol><h2 class=heading-element id=效果图><span>4 效果图</span>\n<a href=#%e6%95%88%e6%9e%9c%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>输入不同设备的 URL，选择背景颜色，点击预览，然后自行截图即可，比如用 <code>Fireshot</code> 插件捕获可见区域。</p><p><a class=lightgallery target=_blank href=/projects/apple-devices-preview/images/screenshot.webp title=screenshot data-thumbnail=/projects/apple-devices-preview/images/screenshot.webp data-sub-html=\"<h2>screenshot</h2>\"><img loading=lazy src=/projects/apple-devices-preview/images/screenshot.webp alt=screenshot height=1506 width=2878></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/coverview/ class=collection-nav-item rel=prev title=用五天时间给自己制作一个封面图生成工具><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>用五天时间给自己制作一个封面图生成工具</span>\n</a><a href=/projects/hugo-fixit/component-projects/ class=collection-nav-item rel=next title=hugo-fixit/component-projects><span>hugo-fixit/component-projects</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/apple-devices-preview/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/apple-devices-preview/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/apple-devices-preview/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E4%B8%B4%E6%97%B6%E5%86%B3%E5%AE%9A%E5%86%8D%E5%86%99%E4%B8%80%E4%B8%AA%E5%B0%8F%E5%B7%A5%E5%85%B7+-+%E7%BD%91%E7%AB%99%E9%A2%84%E8%A7%88%E5%9B%BE%E7%94%9F%E6%88%90%E5%99%A8&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E4%B8%B4%E6%97%B6%E5%86%B3%E5%AE%9A%E5%86%8D%E5%86%99%E4%B8%80%E4%B8%AA%E5%B0%8F%E5%B7%A5%E5%85%B7+-+%E7%BD%91%E7%AB%99%E9%A2%84%E8%A7%88%E5%9B%BE%E7%94%9F%E6%88%90%E5%99%A8%7c%0A%7cURL%7chttps://lruihao.cn/projects/apple-devices-preview/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/apple-devices-preview/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/apple-devices-preview/ data-title=\"临时决定再写一个小工具 - 网站预览图生成器\" data-hashtags=Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/apple-devices-preview/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/apple-devices-preview/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/apple-devices-preview/ data-title=\"临时决定再写一个小工具 - 网站预览图生成器\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/apple-devices-preview/ data-title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/coverview/ class=post-nav-item rel=prev title=用五天时间给自己制作一个封面图生成工具><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>用五天时间给自己制作一个封面图生成工具</a><a href=/projects/hugo-fixit/component-projects/ class=post-nav-item rel=next title=hugo-fixit/component-projects>hugo-fixit/component-projects<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#在线体验>在线体验</a></li><li><a href=#实现原理>实现原理</a></li><li><a href=#卡壳点>卡壳点</a></li><li><a href=#效果图>效果图</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/74efae613deccc0dcd4093c3f44c600a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/74efae613deccc0dcd4093c3f44c600a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/apple-devices-preview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/apple-devices-preview/index.md",
    "content": "# 临时决定再写一个小工具 - 网站预览图生成器\n\n\n开发完 [CoverView](https://github.com/Lruihao/CoverView)之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\n\n<!--more-->\n\n## 在线体验\n\n- [vue-el-demo#apple-devices-preview](https://lruihao.github.io/vue-el-demo/#/apple-devices-preview)\n- [源码](https://github.com/Lruihao/vue-el-demo/blob/main/src/views/apple-devices-preview.vue)\n\n## 实现原理\n\n实现原理很简单，就是先写好布局，然后每个设备里面套一个 iframe，然后通过 iframe 的 `src` 属性来加载网页。\n\n## 卡壳点\n\n- iframe 存在跨域问题。\n- 在将 DOM 转图片的时候，iframe 里面的内容无法转换，尝试了 `html2canvas` 和 `dom-to-image-more` 都不行，放弃了，改为用浏览器插件 `Fireshot` 截图。\n\n一个未尝试的思路，如果跨域问题得以解决，转换图片的步骤可以分解为：\n\n1. 拿到每个 iframe 里的 body 内容，转为图片，然后将图片相对定位到对应的设备 iframe 里\n2. 隐藏原来的 iframe\n3. 最后将父容器的 DOM 转为图片\n\n## 效果图\n\n输入不同设备的 URL，选择背景颜色，点击预览，然后自行截图即可，比如用 `Fireshot` 插件捕获可见区域。\n\n![screenshot](images/screenshot.webp)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/apple-devices-preview/  \n\n"
  },
  {
    "path": "projects/bill-note/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>基于 Leancloud-Storage 实现的无后端记账本 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"1 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\n\"><meta name=keywords content='JavaScript,Vue2,leancloud'><meta itemprop=name content=\"基于 leancloud-storage 实现的无后端记账本\"><meta itemprop=description content=\"1 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\"><meta itemprop=datePublished content=\"2021-03-02T21:46:40+08:00\"><meta itemprop=dateModified content=\"2021-03-02T21:46:40+08:00\"><meta itemprop=wordCount content=\"1188\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"javascript,Vue2,leancloud\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/bill-note/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"基于 leancloud-storage 实现的无后端记账本\"><meta property=\"og:description\" content=\"1 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-03-02T21:46:40+08:00\"><meta property=\"article:modified_time\" content=\"2021-03-02T21:46:40+08:00\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"article:tag\" content=\"leancloud\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"基于 leancloud-storage 实现的无后端记账本\"><meta name=twitter:description content=\"1 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/me/whysmoke/ title=你为什么吸烟？><link rel=next type=text/html href=https://lruihao.cn/posts/codereview/ title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/bill-note/index.md title=\"基于 leancloud-storage 实现的无后端记账本 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"基于 leancloud-storage 实现的无后端记账本\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/bill-note\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"JavaScript, Vue2, leancloud\",\"wordcount\":1188,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/bill-note\\/\",\"datePublished\":\"2021-03-02T21:46:40+08:00\",\"dateModified\":\"2021-03-02T21:46:40+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/bill-note/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>基于 Leancloud-Storage 实现的无后端记账本</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><span class=active title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</span></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/bill-note/ class=collection-nav-item rel=prev title=Lruihao/bill-note><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>10/51</span><a href=/projects/cell-watermark/ class=collection-nav-item rel=next title=\"Cell Watermark\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>基于 Leancloud-Storage 实现的无后端记账本</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-03-02 21:46:40\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-03-02>2021-03-02</time></span>&nbsp;<span title=\"1188 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#起因>起因</a></li><li><a href=#經過>經過</a></li><li><a href=#結果>結果</a><ol><li><a href=#數據設計>數據設計</a></li><li><a href=#主要邏輯>主要邏輯</a><ol><li><a href=#初始化>初始化</a></li><li><a href=#存數據>存數據</a></li><li><a href=#取數據>取數據</a></li></ol></li><li><a href=#技術棧>技術棧</a></li></ol></li><li><a href=#總結>總結</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2021-03-02，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=起因><span>1 起因</span>\n<a href=#%e8%b5%b7%e5%9b%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>起因<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><p>事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！</p><p>自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；<br>三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (<code>AB, AC, BC, ABC</code>)。好麻煩啊！！！</p></div></div></div><h2 class=heading-element id=經過><span>2 經過</span>\n<a href=#%e7%b6%93%e9%81%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>作為一個程序猿，怎麼能接受這麼麻煩的記賬方式呢，拿起筆就開始畫，於是有了下面這張圖的公式。簡單說明一下就是：<br>設前面說的四種組合為：<code>X1, X2, X3, X4</code>，個人實際付款總額為：<code>Y1, Y2, Y3</code>，那麼帶入未知數，我們就可以算出每個人最後結算時的錢：<code>S1, S2, S3</code>，<br>綜上所述，很好理解，當 <code>S >= 0</code> 時，收紅包，當 <code>S &lt; 0</code> 時，發紅包。</p><p><a class=lightgallery target=_blank href=/projects/bill-note/images/gs.jpg title=计算公式 data-thumbnail=/projects/bill-note/images/gs.jpg data-sub-html=\"<h2>计算公式</h2>\"><img loading=lazy src=/projects/bill-note/images/gs.jpg alt=计算公式 height=3000 width=4000></a></p><p>OK，一個簡單的初中方程式已經到位了，下一步，思考一下，用什麼來運作這個這個方程。來，先跑個題，春節期間，不是每天都要在騰訊文檔上填表記錄活動軌跡嗎？再回來，那不如就用 excel 實現吧，三個人都可以在手機上編輯。好的，說做就做。</p><p>一頓操作，10 minutes later&mldr;<br>只新建了一個 excel 文件，O.o! 不會 excel，果斷放棄，另尋他路。</p><h2 class=heading-element id=結果><span>3 結果</span>\n<a href=#%e7%b5%90%e6%9e%9c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>回到本職，那不如寫個網站吧，可是畢業後，學生機服務器也過期了，怎麼搞？那就寫個純前端的，數據呢存哪裡？<br>別急，重新擼一擼需求先：</p><ul><li>存取消費數據</li><li>計算每月，實付（總分），應付以及最後計算結算金額</li><li>按月查詢，月結賬單</li><li>三人皆可編輯</li></ul><p>主要就是存取數據這點，沒有服務器，數據庫怎麼實現？<br>valine 可以實現無後端，那我是不是也可以，leancloud 文檔走一波，然後“數據表”設計一下，其實是 leancloud-storage Object，於是有了以下東西，源碼放在 Github</p><a href=http://github.com/Lruihao/bill-note target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>bill-note</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/bill-note</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><h3 class=heading-element id=數據設計><span>3.1 數據設計</span>\n<a href=#%e6%95%b8%e6%93%9a%e8%a8%ad%e8%a8%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：</p><div class=table-wrapper><table><thead><tr><th>name</th><th>type</th><th>description</th></tr></thead><tbody><tr><td>pay</td><td>Number</td><td>消费金额</td></tr><tr><td>pay_description</td><td>String</td><td>消费描述</td></tr><tr><td>pay_type</td><td>String</td><td>消费类型</td></tr><tr><td>pay_user</td><td>String</td><td>付款人</td></tr></tbody></table></div><h3 class=heading-element id=主要邏輯><span>3.2 主要邏輯</span>\n<a href=#%e4%b8%bb%e8%a6%81%e9%82%8f%e8%bc%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=初始化><span>3.2.1 初始化</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>set for yourself.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=nx>AV</span><span class=p>.</span><span class=nx>init</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>appId</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>appKey</span><span class=o>:</span> <span class=s1>&#39;&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>serverURL</span><span class=o>:</span> <span class=s1>&#39;&#39;</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=存數據><span>3.2.2 存數據</span>\n<a href=#%e5%ad%98%e6%95%b8%e6%93%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>//記賬提交按鈕事件監聽\n</span></span></span><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;.submit&#39;</span><span class=p>).</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;click&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>event</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>event</span><span class=p>.</span><span class=nx>preventDefault</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>formPay</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>(</span><span class=s1>&#39;#form-pay&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>bill</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>AV</span><span class=p>.</span><span class=nb>Object</span><span class=p>(</span><span class=s1>&#39;Bill&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>bill</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s1>&#39;pay&#39;</span><span class=p>,</span> <span class=nb>Number</span><span class=p>(</span><span class=nx>formPay</span><span class=p>.</span><span class=nx>pay</span><span class=p>.</span><span class=nx>value</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=nx>bill</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s1>&#39;pay_type&#39;</span><span class=p>,</span> <span class=nb>Number</span><span class=p>(</span><span class=nx>formPay</span><span class=p>.</span><span class=nx>pay_type</span><span class=p>.</span><span class=nx>value</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=nx>bill</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s1>&#39;pay_user&#39;</span><span class=p>,</span> <span class=nb>Number</span><span class=p>(</span><span class=nx>formPay</span><span class=p>.</span><span class=nx>pay_user</span><span class=p>.</span><span class=nx>value</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=nx>bill</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s1>&#39;pay_description&#39;</span><span class=p>,</span> <span class=nx>formPay</span><span class=p>.</span><span class=nx>pay_description</span><span class=p>.</span><span class=nx>value</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>bill</span><span class=p>.</span><span class=nx>save</span><span class=p>().</span><span class=nx>then</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=p>(</span><span class=nx>object</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>formPay</span><span class=p>.</span><span class=nx>reset</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=kd>function</span> <span class=p>(</span><span class=nx>error</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=nx>JSON</span><span class=p>.</span><span class=nx>stringify</span><span class=p>(</span><span class=nx>error</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>      <span class=nx>alert</span><span class=p>(</span><span class=s1>&#39;保存失敗&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h4 class=heading-element id=取數據><span>3.2.3 取數據</span>\n<a href=#%e5%8f%96%e6%95%b8%e6%93%9a class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 獲取歷史消費記錄數據\n</span></span></span><span class=line><span class=cl><span class=cm> * @param [start=0] 開始位置\n</span></span></span><span class=line><span class=cl><span class=cm> * @param [count=15] 每次查詢筆數\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>getBillData</span><span class=p>(</span><span class=nx>start</span> <span class=o>=</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>count</span> <span class=o>=</span> <span class=mi>15</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>queryBill</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nx>descending</span><span class=p>(</span><span class=s1>&#39;createdAt&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nx>skip</span><span class=p>(</span><span class=nx>start</span> <span class=o>*</span> <span class=nx>count</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nx>limit</span><span class=p>(</span><span class=nx>count</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nx>find</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>.</span><span class=nx>then</span><span class=p>(</span><span class=kd>function</span> <span class=p>(</span><span class=nx>response</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kd>let</span> <span class=nx>billLength</span> <span class=o>=</span> <span class=nx>response</span><span class=p>.</span><span class=nx>length</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=k>if</span> <span class=p>(</span><span class=nx>billLength</span> <span class=o>&gt;</span> <span class=mi>0</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>billVm</span><span class=p>.</span><span class=nx>noMore</span> <span class=o>=</span> <span class=nx>billLength</span> <span class=o>!==</span> <span class=nx>count</span> <span class=o>?</span> <span class=kc>true</span> <span class=o>:</span> <span class=kc>false</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>        <span class=k>for</span> <span class=p>(</span><span class=nx>bill</span> <span class=k>of</span> <span class=nx>response</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>billVm</span><span class=p>.</span><span class=nx>bills</span><span class=p>.</span><span class=nx>push</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>            <span class=nx>pay</span><span class=o>:</span> <span class=nx>bill</span><span class=p>.</span><span class=nx>attributes</span><span class=p>.</span><span class=nx>pay</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=nx>payType</span><span class=o>:</span> <span class=nx>payType</span><span class=p>[</span><span class=nx>bill</span><span class=p>.</span><span class=nx>attributes</span><span class=p>.</span><span class=nx>pay_type</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>            <span class=nx>payUser</span><span class=o>:</span> <span class=nx>payUser</span><span class=p>[</span><span class=nx>bill</span><span class=p>.</span><span class=nx>attributes</span><span class=p>.</span><span class=nx>pay_user</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>            <span class=nx>payDescription</span><span class=o>:</span> <span class=nx>bill</span><span class=p>.</span><span class=nx>attributes</span><span class=p>.</span><span class=nx>pay_description</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=nx>payDt</span><span class=o>:</span> <span class=k>new</span> <span class=nb>Date</span><span class=p>(</span><span class=nx>bill</span><span class=p>.</span><span class=nx>createdAt</span><span class=p>).</span><span class=nx>toLocaleString</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>          <span class=p>});</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span> <span class=k>else</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>billVm</span><span class=p>.</span><span class=nx>noMore</span> <span class=o>=</span> <span class=kc>true</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * 獲取月賬單數據\n</span></span></span><span class=line><span class=cl><span class=cm> * @param month 年月份 fmt: yyyy-MM\n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>getMonthBill</span><span class=p>(</span><span class=nx>month</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>dateTime</span> <span class=o>=</span> <span class=sb>`</span><span class=si>${</span><span class=nx>month</span><span class=si>}</span><span class=sb> 00:00:00`</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>startMonth</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Date</span><span class=p>(</span><span class=nx>dateTime</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>nextMonth</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>Date</span><span class=p>(</span><span class=k>new</span> <span class=nb>Date</span><span class=p>(</span><span class=nx>dateTime</span><span class=p>).</span><span class=nx>setMonth</span><span class=p>(</span><span class=nx>startMonth</span><span class=p>.</span><span class=nx>getMonth</span><span class=p>()</span> <span class=o>+</span> <span class=mi>1</span><span class=p>));</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>startDateQuery</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>AV</span><span class=p>.</span><span class=nx>Query</span><span class=p>(</span><span class=s1>&#39;Bill&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>startDateQuery</span><span class=p>.</span><span class=nx>greaterThanOrEqualTo</span><span class=p>(</span><span class=s1>&#39;createdAt&#39;</span><span class=p>,</span> <span class=nx>startMonth</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>endDateQuery</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>AV</span><span class=p>.</span><span class=nx>Query</span><span class=p>(</span><span class=s1>&#39;Bill&#39;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>endDateQuery</span><span class=p>.</span><span class=nx>lessThan</span><span class=p>(</span><span class=s1>&#39;createdAt&#39;</span><span class=p>,</span> <span class=nx>nextMonth</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>MonthBillQuery</span> <span class=o>=</span> <span class=nx>AV</span><span class=p>.</span><span class=nx>Query</span><span class=p>.</span><span class=nx>and</span><span class=p>(</span><span class=nx>startDateQuery</span><span class=p>,</span> <span class=nx>endDateQuery</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>MonthBillQuery</span><span class=p>.</span><span class=nx>find</span><span class=p>().</span><span class=nx>then</span><span class=p>(</span><span class=kd>function</span> <span class=p>(</span><span class=nx>response</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>billVm</span><span class=p>.</span><span class=nx>monthBill</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payType0</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payType1</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payType2</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payType3</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payUser0</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payUser1</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>payUser2</span><span class=o>:</span> <span class=mi>0</span>\n</span></span><span class=line><span class=cl>    <span class=p>};</span>\n</span></span><span class=line><span class=cl>    <span class=k>for</span> <span class=p>(</span><span class=nx>bill</span> <span class=k>of</span> <span class=nx>response</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=kd>let</span> <span class=p>{</span> <span class=nx>pay</span><span class=p>,</span> <span class=nx>pay_type</span><span class=p>,</span> <span class=nx>pay_user</span> <span class=p>}</span> <span class=o>=</span> <span class=nx>bill</span><span class=p>.</span><span class=nx>attributes</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>billVm</span><span class=p>.</span><span class=nx>monthBill</span><span class=p>[</span><span class=sb>`payType</span><span class=si>${</span><span class=nx>pay_type</span><span class=si>}</span><span class=sb>`</span><span class=p>]</span> <span class=o>+=</span> <span class=nx>pay</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>      <span class=nx>billVm</span><span class=p>.</span><span class=nx>monthBill</span><span class=p>[</span><span class=sb>`payUser</span><span class=si>${</span><span class=nx>pay_user</span><span class=si>}</span><span class=sb>`</span><span class=p>]</span> <span class=o>+=</span> <span class=nx>pay</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=技術棧><span>3.3 技術棧</span>\n<a href=#%e6%8a%80%e8%a1%93%e6%a3%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>leancloud-storage</li><li>Vue.js</li><li>HTML,CSS,JS</li></ul><h2 class=heading-element id=總結><span>4 總結</span>\n<a href=#%e7%b8%bd%e7%b5%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>簡單總結一下，登录功能不做，安不安全自己说了算。删除修改功能也不做，直接上 leancloud 操作，css 美化的样式也不写，干净又卫生！<br>然后衍生一下，什么过年斗地主，天炸，麻将，字牌记账系统那不也是同理可得嘛！</p><p>over!</p><p><figure><a class=lightgallery target=_blank href=/projects/bill-note/images/demo.jpg title=Demo data-thumbnail=/projects/bill-note/images/demo.jpg data-sub-html=\"<h2>效果</h2><p>Demo</p>\"><img loading=lazy src=/projects/bill-note/images/demo.jpg alt=效果 height=6005 width=1080></a><figcaption class=image-caption>Demo</figcaption></figure></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/bill-note/ class=collection-nav-item rel=prev title=Lruihao/bill-note><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/bill-note</span>\n</a><a href=/projects/cell-watermark/ class=collection-nav-item rel=next title=\"Cell Watermark\"><span>Cell Watermark</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2021-03-02 21:46:40\">更新于 2021-03-02&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/bill-note/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/bill-note/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/bill-note/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%9F%BA%E4%BA%8E+leancloud-storage+%E5%AE%9E%E7%8E%B0%E7%9A%84%E6%97%A0%E5%90%8E%E7%AB%AF%E8%AE%B0%E8%B4%A6%E6%9C%AC&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%9F%BA%E4%BA%8E+leancloud-storage+%E5%AE%9E%E7%8E%B0%E7%9A%84%E6%97%A0%E5%90%8E%E7%AB%AF%E8%AE%B0%E8%B4%A6%E6%9C%AC%7c%0A%7cURL%7chttps://lruihao.cn/projects/bill-note/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/bill-note/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/bill-note/ data-title=\"基于 Leancloud-Storage 实现的无后端记账本\" data-hashtags=JavaScript,Vue2,leancloud><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/bill-note/ data-hashtag=JavaScript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/bill-note/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/bill-note/ data-title=\"基于 Leancloud-Storage 实现的无后端记账本\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/bill-note/ data-title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a><a href=/tags/leancloud/ class=post-tag title=\"标签 - leancloud\">leancloud</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/me/whysmoke/ class=post-nav-item rel=prev title=你为什么吸烟？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>你为什么吸烟？</a><a href=/posts/codereview/ class=post-nav-item rel=next title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\">Code Review 怎麼做？新手工程師如何提升「程式碼品質」<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#起因>起因</a></li><li><a href=#經過>經過</a></li><li><a href=#結果>結果</a><ol><li><a href=#數據設計>數據設計</a></li><li><a href=#主要邏輯>主要邏輯</a><ol><li><a href=#初始化>初始化</a></li><li><a href=#存數據>存數據</a></li><li><a href=#取數據>取數據</a></li></ol></li><li><a href=#技術棧>技術棧</a></li></ol></li><li><a href=#總結>總結</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7c52c93570e8548e38dea375ddc00481.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7c52c93570e8548e38dea375ddc00481.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/bill-note/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/bill-note/index.md",
    "content": "# 基于 Leancloud-Storage 实现的无后端记账本\n\n\n## 起因\n\n{{< admonition info \"起因\" >}}\n事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\n\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；  \n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (`AB, AC, BC, ABC`)。好麻煩啊！！！\n{{< /admonition >}}\n\n<!--more-->\n\n## 經過\n\n作為一個程序猿，怎麼能接受這麼麻煩的記賬方式呢，拿起筆就開始畫，於是有了下面這張圖的公式。簡單說明一下就是：  \n設前面說的四種組合為：`X1, X2, X3, X4`，個人實際付款總額為：`Y1, Y2, Y3`，那麼帶入未知數，我們就可以算出每個人最後結算時的錢：`S1, S2, S3`，  \n綜上所述，很好理解，當 `S >= 0` 時，收紅包，當 `S < 0` 時，發紅包。\n\n![计算公式](images/gs.jpg)\n\nOK，一個簡單的初中方程式已經到位了，下一步，思考一下，用什麼來運作這個這個方程。來，先跑個題，春節期間，不是每天都要在騰訊文檔上填表記錄活動軌跡嗎？再回來，那不如就用 excel 實現吧，三個人都可以在手機上編輯。好的，說做就做。\n\n一頓操作，10 minutes later...  \n只新建了一個 excel 文件，O.o! 不會 excel，果斷放棄，另尋他路。\n\n## 結果\n\n回到本職，那不如寫個網站吧，可是畢業後，學生機服務器也過期了，怎麼搞？那就寫個純前端的，數據呢存哪裡？  \n別急，重新擼一擼需求先：\n\n- 存取消費數據\n- 計算每月，實付（總分），應付以及最後計算結算金額\n- 按月查詢，月結賬單\n- 三人皆可編輯\n\n主要就是存取數據這點，沒有服務器，數據庫怎麼實現？  \nvaline 可以實現無後端，那我是不是也可以，leancloud 文檔走一波，然後“數據表”設計一下，其實是 leancloud-storage Object，於是有了以下東西，源碼放在 Github\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"http://github.com/Lruihao/bill-note\" content=\"bill-note\" card=true >}}\n\n### 數據設計\n\n去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\n\n| name            | type   | description |\n| --------------- | ------ | ----------- |\n| pay             | Number | 消费金额    |\n| pay_description | String | 消费描述    |\n| pay_type        | String | 消费类型    |\n| pay_user        | String | 付款人      |\n\n### 主要邏輯\n\n#### 初始化\n\nset for yourself.\n\n```js\nAV.init({\n  appId: '',\n  appKey: '',\n  serverURL: ''\n});\n```\n\n#### 存數據\n\n```js\n//記賬提交按鈕事件監聽\ndocument.querySelector('.submit').addEventListener('click', function (event) {\n  event.preventDefault();\n  let formPay = document.querySelector('#form-pay');\n  let bill = new AV.Object('Bill');\n  bill.set('pay', Number(formPay.pay.value));\n  bill.set('pay_type', Number(formPay.pay_type.value));\n  bill.set('pay_user', Number(formPay.pay_user.value));\n  bill.set('pay_description', formPay.pay_description.value);\n  bill.save().then(\n    (object) => {\n      formPay.reset();\n    },\n    function (error) {\n      console.log(JSON.stringify(error));\n      alert('保存失敗');\n    }\n  );\n});\n```\n\n#### 取數據\n\n```js\n/**\n * 獲取歷史消費記錄數據\n * @param [start=0] 開始位置\n * @param [count=15] 每次查詢筆數\n */\nfunction getBillData(start = 0, count = 15) {\n  queryBill\n    .descending('createdAt')\n    .skip(start * count)\n    .limit(count)\n    .find()\n    .then(function (response) {\n      let billLength = response.length;\n      if (billLength > 0) {\n        billVm.noMore = billLength !== count ? true : false;\n        for (bill of response) {\n          billVm.bills.push({\n            pay: bill.attributes.pay,\n            payType: payType[bill.attributes.pay_type],\n            payUser: payUser[bill.attributes.pay_user],\n            payDescription: bill.attributes.pay_description,\n            payDt: new Date(bill.createdAt).toLocaleString()\n          });\n        }\n      } else {\n        billVm.noMore = true;\n      }\n    });\n}\n\n/**\n * 獲取月賬單數據\n * @param month 年月份 fmt: yyyy-MM\n */\nfunction getMonthBill(month) {\n  let dateTime = `${month} 00:00:00`;\n  let startMonth = new Date(dateTime);\n  let nextMonth = new Date(new Date(dateTime).setMonth(startMonth.getMonth() + 1));\n  let startDateQuery = new AV.Query('Bill');\n  startDateQuery.greaterThanOrEqualTo('createdAt', startMonth);\n  let endDateQuery = new AV.Query('Bill');\n  endDateQuery.lessThan('createdAt', nextMonth);\n  let MonthBillQuery = AV.Query.and(startDateQuery, endDateQuery);\n  MonthBillQuery.find().then(function (response) {\n    billVm.monthBill = {\n      payType0: 0,\n      payType1: 0,\n      payType2: 0,\n      payType3: 0,\n      payUser0: 0,\n      payUser1: 0,\n      payUser2: 0\n    };\n    for (bill of response) {\n      let { pay, pay_type, pay_user } = bill.attributes;\n      billVm.monthBill[`payType${pay_type}`] += pay;\n      billVm.monthBill[`payUser${pay_user}`] += pay;\n    }\n  });\n}\n```\n\n### 技術棧\n\n- leancloud-storage\n- Vue.js\n- HTML,CSS,JS\n\n## 總結\n\n簡單總結一下，登录功能不做，安不安全自己说了算。删除修改功能也不做，直接上 leancloud 操作，css 美化的样式也不写，干净又卫生！  \n然后衍生一下，什么过年斗地主，天炸，麻将，字牌记账系统那不也是同理可得嘛！\n\nover!\n\n![效果](images/demo.jpg 'Demo')\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/bill-note/  \n\n"
  },
  {
    "path": "projects/cell-blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Cell-Blog 功能介绍与安装 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\n\"><meta name=keywords content='PHP,Laravel,Markdown'><meta itemprop=name content=\"cell-blog 功能介绍与安装\"><meta itemprop=description content=\"基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\"><meta itemprop=datePublished content=\"2020-07-25T20:51:11+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"758\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"PHP,Laravel,Markdown\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/cell-blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cell-blog 功能介绍与安装\"><meta property=\"og:description\" content=\"基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2020-07-25T20:51:11+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"PHP\"><meta property=\"article:tag\" content=\"Laravel\"><meta property=\"article:tag\" content=\"Markdown\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cell-blog 功能介绍与安装\"><meta name=twitter:description content=\"基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/cell-blog/ title=\"cell-blog 功能介绍与安装 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/cell-blog-dev/ title=\"cell-blog 开发记录\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/cell-blog/index.md title=\"cell-blog 功能介绍与安装 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"cell-blog 功能介绍与安装\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/cell-blog\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"PHP, Laravel, Markdown\",\"wordcount\":758,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/cell-blog\\/\",\"datePublished\":\"2020-07-25T20:51:11+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/cell-blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cell-Blog 功能介绍与安装</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><span class=active title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</span></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/cell-blog/ class=collection-nav-item rel=prev title=Lruihao/cell-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>8/51</span><a href=/projects/lruihao/bill-note/ class=collection-nav-item rel=next title=Lruihao/bill-note><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Cell-Blog 功能介绍与安装</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/php/ class=post-category title=\"分类 - PHP\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> PHP</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2020-07-25 20:51:11\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-07-25>2020-07-25</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"758 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Cell-Blog 功能介绍与安装\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png height=837 width=1383></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#功能>功能</a></li><li><a href=#截图>截图</a></li><li><a href=#安装>安装</a></li><li><a href=#license>License</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p>基于 Laravel7 开发，Markdown 语法的个人独立博客。<a href=https://github.com/Lruihao/cell-blog target=_blank rel=\"external nofollow noopener noreferrer\">Cell Blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, 也是我的毕业设计作品，目前已開源。</p></blockquote><h2 class=heading-element id=功能><span>1 功能</span>\n<a href=#%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>支持 Markdown, 文章实时预览效果</li><li>支持多种编程语言代码高亮</li><li>编辑器图片上传</li><li>后台上传文件管理</li><li>文章搜索</li><li>文章分类</li><li>文章标签</li><li>热门文章</li><li>随机格言</li><li>文章管理（发布，评论开关，排序）</li><li>自定义导航（显示开关，排序）</li><li>自定义页面（发布开关）</li><li>友情链接（显示开关，排序）</li><li><a href=https://github.com/Lruihao/cos-album target=_blank rel=\"external nofollow noopener noreferrer\">COS 桶相册<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>丰富的博客配置（方便扩展，支持自定义 JS 脚本）</li><li>不蒜子计数</li><li>Leancloud 计数</li><li>Valine 评论插件</li><li>文章分享插件</li></ul><h2 class=heading-element id=截图><span>2 截图</span>\n<a href=#%e6%88%aa%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a class=lightgallery target=_blank href=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png title=前台首页。png data-thumbnail=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png data-sub-html=\"<h2>前台首页。png</h2>\"><img loading=lazy src=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png alt=前台首页。png height=837 width=1383></a>\n<a class=lightgallery target=_blank href=/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png title=管理文章。png data-thumbnail=/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png data-sub-html=\"<h2>管理文章。png</h2>\"><img loading=lazy src=/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png alt=管理文章。png height=649 width=1385></a>\n<a class=lightgallery target=_blank href=/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png title=编辑文章。png data-thumbnail=/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png data-sub-html=\"<h2>编辑文章。png</h2>\"><img loading=lazy src=/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png alt=编辑文章。png height=629 width=1385></a></p><h2 class=heading-element id=安装><span>3 安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>注意事项：PHP 取消禁用函数<code>putenv()</code>和<code>symlink()</code>，安装<code>fileinfo</code>扩展。</p></blockquote><p>下载</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone https://github.com/Lruihao/cell-blog.git</span></span></code></pre></td></tr></table></div></div></div><p>进入站点</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> cell-blog</span></span></code></pre></td></tr></table></div></div></div><p>生成。env</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>cp .env.example .env</span></span></code></pre></td></tr></table></div></div></div><p>编辑。env 环境配置</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl><span class=nv>APP_URL</span><span class=o>=</span>http://localhost <span class=c1>#使用本地文件系统存储文件时，必须填写正确地址</span>\n</span></span><span class=line><span class=cl><span class=nv>APP_DEBUG</span><span class=o>=</span><span class=nb>false</span> <span class=c1>#关闭调试</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_HOST</span><span class=o>=</span> <span class=c1>#数据库地址</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_PORT</span><span class=o>=</span><span class=m>3306</span> <span class=c1>#数据库端口</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_DATABASE</span><span class=o>=</span> <span class=c1>#数据库名称</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_USERNAME</span><span class=o>=</span> <span class=c1>#数据库用户</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_PASSWORD</span><span class=o>=</span> <span class=c1>#数据库密码</span></span></span></code></pre></td></tr></table></div></div></div><p>打开<code>app\\Providers\\AppServiceProvider.php</code>, 注释<code>SystemController:load()</code> 防止后续步骤报错</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl>    <span class=k>public</span> <span class=k>function</span> <span class=nf>boot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>Schema</span><span class=o>::</span><span class=na>defaultStringLength</span><span class=p>(</span><span class=mi>191</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=c1>//SystemController::load();\n</span></span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>安装项目依赖</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>composer install</span></span></code></pre></td></tr></table></div></div></div><p>生成 key</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>php artisan key:generate</span></span></code></pre></td></tr></table></div></div></div><p>运行数据迁移和后台数据填充</p><blockquote><p><code>php artisan admin:install</code>已包含数据迁移命令<code>php artisan migrate</code>\n<code>G:\\cell-blog\\app\\Admin directory already exists !</code>无需理会，继续执行剩下命令即可。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>php artisan admin:install\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>php artisan admin:import media-manager\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>php artisan db:seed</span></span></code></pre></td></tr></table></div></div></div><p>默认下使用了本地文件系统，创建 storage 目录在 public 的软链接</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>php artisan storage:link</span></span></code></pre></td></tr></table></div></div></div><p>打开<code>app\\Providers\\AppServiceProvider.php</code>, 取消注释<code>SystemController:load()</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-php\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-php data-lang=php><span class=line><span class=cl>    <span class=k>public</span> <span class=k>function</span> <span class=nf>boot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>Schema</span><span class=o>::</span><span class=na>defaultStringLength</span><span class=p>(</span><span class=mi>191</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=nx>SystemController</span><span class=o>::</span><span class=na>load</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>将博客网站根目录指向入口 public 目录</p><p>如果使用 Nginx，要设置伪静态</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-nginx\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-Nginx data-lang=Nginx><span class=line><span class=cl><span class=k>location</span> <span class=s>/</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=kn>try_files</span> <span class=nv>$uri</span> <span class=nv>$uri/</span> <span class=s>/index.php?</span><span class=nv>$query_string</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>启动服务后，在浏览器打开<code>http://localhost/admin/</code>, 使用用户名<code>admin</code>和密码<code>admin</code>登录。</p><h2 class=heading-element id=license><span>4 License</span>\n<a href=#license class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Cell Blog is open-sourced software licensed under the MIT license.</p><p><a class=lightgallery target=_blank href=/images/remote/cell-blog_1741689262493908108.svg title=\"Stargazers over time\" data-thumbnail=/images/remote/cell-blog_1741689262493908108.svg data-sub-html=\"<h2>Stargazers over time</h2>\"><img loading=lazy src=/images/remote/cell-blog_1741689262493908108.svg alt=\"Stargazers over time\"></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/cell-blog/ class=collection-nav-item rel=prev title=Lruihao/cell-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/cell-blog</span>\n</a><a href=/projects/lruihao/bill-note/ class=collection-nav-item rel=next title=Lruihao/bill-note><span>Lruihao/bill-note</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/cell-blog/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cell-blog.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/cell-blog.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20cell-blog+%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D%E4%B8%8E%E5%AE%89%E8%A3%85&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7ccell-blog+%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D%E4%B8%8E%E5%AE%89%E8%A3%85%7c%0A%7cURL%7chttps://lruihao.cn/projects/cell-blog/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cell-blog.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/cell-blog/ data-title=\"Cell-Blog 功能介绍与安装\" data-hashtags=PHP,Laravel,Markdown><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/cell-blog/ data-hashtag=PHP><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/cell-blog/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/cell-blog/ data-title=\"Cell-Blog 功能介绍与安装\" data-image=https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/cell-blog/ data-title=\"Cell-Blog 功能介绍与安装\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/laravel/ class=post-tag title=\"标签 - Laravel\">Laravel</a><a href=/tags/markdown/ class=post-tag title=\"标签 - Markdown\">Markdown</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/cell-blog-dev/ class=post-nav-item rel=prev title=\"Cell-Blog 开发记录\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Cell-Blog 开发记录</a><a href=/projects/lruihao/bill-note/ class=post-nav-item rel=next title=Lruihao/bill-note>Lruihao/bill-note<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#功能>功能</a></li><li><a href=#截图>截图</a></li><li><a href=#安装>安装</a></li><li><a href=#license>License</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/daae8dd216a8d0163756498e642e4f01.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/daae8dd216a8d0163756498e642e4f01.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/cell-blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/cell-blog/index.md",
    "content": "# Cell-Blog 功能介绍与安装\n\n\n> 基于 Laravel7 开发，Markdown 语法的个人独立博客。[Cell Blog](https://github.com/Lruihao/cell-blog), 也是我的毕业设计作品，目前已開源。\n\n<!--more-->\n\n## 功能\n\n- 支持 Markdown, 文章实时预览效果\n- 支持多种编程语言代码高亮\n- 编辑器图片上传\n- 后台上传文件管理\n- 文章搜索\n- 文章分类\n- 文章标签\n- 热门文章\n- 随机格言\n- 文章管理（发布，评论开关，排序）\n- 自定义导航（显示开关，排序）\n- 自定义页面（发布开关）\n- 友情链接（显示开关，排序）\n- [COS 桶相册](https://github.com/Lruihao/cos-album)\n- 丰富的博客配置（方便扩展，支持自定义 JS 脚本）\n- 不蒜子计数\n- Leancloud 计数\n- Valine 评论插件\n- 文章分享插件\n\n## 截图\n\n![前台首页。png](https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png)\n![管理文章。png](https://i.loli.net/2020/05/11/tMEQe7WvYmw3jd4.png)\n![编辑文章。png](https://i.loli.net/2020/05/11/DeOWyJ3zluLKvBn.png)\n\n## 安装\n\n> 注意事项：PHP 取消禁用函数`putenv()`和`symlink()`，安装`fileinfo`扩展。\n\n下载\n\n```bash\ngit clone https://github.com/Lruihao/cell-blog.git\n```\n\n进入站点\n\n```bash\ncd cell-blog\n```\n\n生成。env\n\n```shell\ncp .env.example .env\n```\n\n编辑。env 环境配置\n\n```shell\nAPP_URL=http://localhost #使用本地文件系统存储文件时，必须填写正确地址\nAPP_DEBUG=false #关闭调试\nDB_HOST= #数据库地址\nDB_PORT=3306 #数据库端口\nDB_DATABASE= #数据库名称\nDB_USERNAME= #数据库用户\nDB_PASSWORD= #数据库密码\n```\n\n打开`app\\Providers\\AppServiceProvider.php`, 注释`SystemController:load()` 防止后续步骤报错\n\n```php\n    public function boot()\n    {\n        Schema::defaultStringLength(191);\n        //SystemController::load();\n    }\n```\n\n安装项目依赖\n\n```shell\ncomposer install\n```\n\n生成 key\n\n```bash\nphp artisan key:generate\n```\n\n运行数据迁移和后台数据填充\n\n> `php artisan admin:install`已包含数据迁移命令`php artisan migrate`\n> `G:\\cell-blog\\app\\Admin directory already exists !`无需理会，继续执行剩下命令即可。\n\n```bash\nphp artisan admin:install\n\nphp artisan admin:import media-manager\n\nphp artisan db:seed\n```\n\n默认下使用了本地文件系统，创建 storage 目录在 public 的软链接\n\n```bash\nphp artisan storage:link\n```\n\n打开`app\\Providers\\AppServiceProvider.php`, 取消注释`SystemController:load()`\n\n```php\n    public function boot()\n    {\n        Schema::defaultStringLength(191);\n        SystemController::load();\n    }\n```\n\n将博客网站根目录指向入口 public 目录\n\n如果使用 Nginx，要设置伪静态\n\n```Nginx\nlocation / {\n    try_files $uri $uri/ /index.php?$query_string;\n}\n```\n\n启动服务后，在浏览器打开`http://localhost/admin/`, 使用用户名`admin`和密码`admin`登录。\n\n## License\n\nCell Blog is open-sourced software licensed under the MIT license.\n\n![Stargazers over time](https://starchart.cc/Lruihao/cell-blog.svg)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/cell-blog/  \n\n"
  },
  {
    "path": "projects/cell-watermark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Cell Watermark | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta name=keywords content='watermark,JavaScript'><meta itemprop=name content=\"Cell Watermark\"><meta itemprop=description content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta itemprop=datePublished content=\"2021-05-23T17:15:41+08:00\"><meta itemprop=dateModified content=\"2024-12-12T14:56:25+08:00\"><meta itemprop=wordCount content=\"200\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"watermark,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/cell-watermark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Cell Watermark\"><meta property=\"og:description\" content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-05-23T17:15:41+08:00\"><meta property=\"article:modified_time\" content=\"2024-12-12T14:56:25+08:00\"><meta property=\"article:tag\" content=\"watermark\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Cell Watermark\"><meta name=twitter:description content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/cell-watermark/ title=\"Cell Watermark | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/codereview/ title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/watermark/ title=\"Create watermark for webpage and automatic adjust when window resize.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/cell-watermark/index.md title=\"Cell Watermark | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Cell Watermark\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/cell-watermark\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"watermark, JavaScript\",\"wordcount\":200,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/cell-watermark\\/\",\"datePublished\":\"2021-05-23T17:15:41+08:00\",\"dateModified\":\"2024-12-12T14:56:25+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/cell-watermark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cell Watermark</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><span class=active title=\"Cell Watermark\">Cell Watermark</span></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/bill-note/ class=collection-nav-item rel=prev title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>11/51</span><a href=/projects/lruihao/watermark/ class=collection-nav-item rel=next title=Lruihao/watermark><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Cell Watermark</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">Create watermark for webpage and automatic adjust when window resize.</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-05-23 17:15:41\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-05-23>2021-05-23</time></span>&nbsp;<span title=\"更新于 2024-12-12 14:56:25\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-12-12>2024-12-12</time></span>&nbsp;<span title=\"200 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Cell Watermark\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul><ul><li><a href=#watermarkoptions>Watermark(options)</a><ul><li><ul><li><a href=#new-watermarkoptions>new Watermark(options)</a><ul><li><a href=#parameters>Parameters</a><ul><li><a href=#properties>Properties</a></li></ul></li></ul></li></ul></li><li><a href=#methods>Methods</a><ul><li><a href=#uploadcontent>upload(content)</a><ul><li><a href=#parameters-1>Parameters</a></li></ul></li><li><a href=#renderoptions>render(options)</a><ul><li><a href=#parameters-2>Parameters</a></li></ul></li><li><a href=#destroy>destroy()</a></li></ul></li></ul></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-12-12，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=usage data-decreased><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=browser><span>Browser</span>\n<a href=#browser class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>Clone source</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git clone git@github.com:Lruihao/watermark.git</span></span></code></pre></td></tr></table></div></div></div></li><li><p>Load <code>Watermark</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;./src/watermark.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;./src/watermark.min.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=c>&lt;!-- Or CDN --&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.min.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>Initialization</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;DOMContentLoaded&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>new</span> <span class=nx>Watermark</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>content</span><span class=o>:</span> <span class=s2>&#34;cell-watermark&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>})</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=npm><span>NPM</span>\n<a href=#npm class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li><p>Install</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm i cell-watermark</span></span></code></pre></td></tr></table></div></div></div></li><li><p>Import</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Watermark</span> <span class=nx>from</span> <span class=s1>&#39;cell-watermark&#39;</span>\n</span></span><span class=line><span class=cl><span class=cm>/* Or */</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>Watermark</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s2>&#34;cell-watermark&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=class-watermark data-decreased><span>Class: Watermark</span>\n<a href=#class-watermark class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=watermarkoptions><span>Watermark(options)</span>\n<a href=#watermarkoptions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h4 class=heading-element id=new-watermarkoptions><span>new Watermark(options)</span>\n<a href=#new-watermarkoptions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><h5 class=heading-element id=parameters><span>Parameters</span>\n<a href=#parameters class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><div class=table-wrapper><table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>options</td><td>Object</td><td>The options of watermark（<a href=#properties>Properties</a>）</td></tr></tbody></table></div><h6 class=heading-element id=properties><span>Properties</span>\n<a href=#properties class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h6><div class=table-wrapper><table><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th style=text-align:left>Default</th><th>Description</th></tr></thead><tbody><tr><td>content</td><td>String</td><td>&lt;optional></td><td style=text-align:left></td><td>watermark&rsquo;s text</td></tr><tr><td>appendTo</td><td>String</td><td>&lt;optional></td><td style=text-align:left>&lsquo;body&rsquo;</td><td>parent of watermark&rsquo;s container</td></tr><tr><td>width</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>150</td><td>watermark&rsquo;s width. unit: px</td></tr><tr><td>height</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>20</td><td>watermark&rsquo;s height. unit: px</td></tr><tr><td>rowSpacing</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>60</td><td>row spacing of watermarks. unit: px</td></tr><tr><td>colSpacing</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>30</td><td>col spacing of watermarks. unit: px</td></tr><tr><td>rotate</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>15</td><td>watermark&rsquo;s tangent angle. unit: deg</td></tr><tr><td>opacity</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>0.1</td><td>watermark&rsquo;s transparency</td></tr><tr><td>fontSize</td><td>Number</td><td>&lt;optional></td><td style=text-align:left>0.85</td><td>watermark&rsquo;s fontSize. unit: rem</td></tr><tr><td>fontFamily</td><td>String</td><td>&lt;optional></td><td style=text-align:left>&lsquo;inherit&rsquo;</td><td>watermark&rsquo;s fontFamily</td></tr></tbody></table></div><blockquote><p>Author: <a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><h3 class=heading-element id=methods><span>Methods</span>\n<a href=#methods class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=uploadcontent><span>upload(content)</span>\n<a href=#uploadcontent class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Upload watermark&rsquo;s text content</p><h5 class=heading-element id=parameters-1><span>Parameters</span>\n<a href=#parameters-1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><div class=table-wrapper><table><thead><tr><th style=text-align:center>Name</th><th style=text-align:center>Type</th><th style=text-align:center>Description</th></tr></thead><tbody><tr><td style=text-align:center>content</td><td style=text-align:center>String</td><td style=text-align:center>watermark&rsquo;s text</td></tr></tbody></table></div><h4 class=heading-element id=renderoptions><span>render(options)</span>\n<a href=#renderoptions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Rerender watermark</p><h5 class=heading-element id=parameters-2><span>Parameters</span>\n<a href=#parameters-2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h5><div class=table-wrapper><table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>options</td><td>Object</td><td>The options of watermark（<a href=#properties>Properties</a>）</td></tr></tbody></table></div><h4 class=heading-element id=destroy><span>destroy()</span>\n<a href=#destroy class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><p>Force destroy watermark</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/bill-note/ class=collection-nav-item rel=prev title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>基于 Leancloud-Storage 实现的无后端记账本</span>\n</a><a href=/projects/lruihao/watermark/ class=collection-nav-item rel=next title=Lruihao/watermark><span>Lruihao/watermark</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-12-12 14:56:25\">更新于 2024-12-12&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/54e385fd07ea37ef04abeced5015ac71cf4f0fea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Chore: 修复自定义翻译部分 BUG&#10&#10Commit: 54e385fd07ea37ef04abeced5015ac71cf4f0fea [54e385f]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-12-12 14:56:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>54e385f</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/cell-watermark/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cell-watermark.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/cell-watermark.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20Cell+Watermark&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7cCell+Watermark%7c%0A%7cURL%7chttps://lruihao.cn/projects/cell-watermark/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cell-watermark.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/cell-watermark/ data-title=\"Cell Watermark\" data-hashtags=watermark,JavaScript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/cell-watermark/ data-hashtag=watermark><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/cell-watermark/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/cell-watermark/ data-title=\"Cell Watermark\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/cell-watermark/ data-title=\"Cell Watermark\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/watermark/ class=post-tag title=\"标签 - watermark\">watermark</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/codereview/ class=post-nav-item rel=prev title=\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a><a href=/projects/lruihao/watermark/ class=post-nav-item rel=next title=Lruihao/watermark>Lruihao/watermark<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul><ul><li><a href=#watermarkoptions>Watermark(options)</a><ul><li><ul><li><a href=#new-watermarkoptions>new Watermark(options)</a><ul><li><a href=#parameters>Parameters</a><ul><li><a href=#properties>Properties</a></li></ul></li></ul></li></ul></li><li><a href=#methods>Methods</a><ul><li><a href=#uploadcontent>upload(content)</a><ul><li><a href=#parameters-1>Parameters</a></li></ul></li><li><a href=#renderoptions>render(options)</a><ul><li><a href=#parameters-2>Parameters</a></li></ul></li><li><a href=#destroy>destroy()</a></li></ul></li></ul></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/ecfcf3d2db9f233abd64137387ea9a9d.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/ecfcf3d2db9f233abd64137387ea9a9d.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/cell-watermark/\"},local:\"english\"}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/cell-watermark/index.md",
    "content": "# Cell Watermark\n\n\n<!-- markdownlint-disable -->\n\n# Usage\n\n## Browser\n\n1. Clone source\n\n    ```\n    git clone git@github.com:Lruihao/watermark.git\n    ```\n\n2. Load `Watermark`\n\n    ```html\n    <script type=\"text/javascript\" src=\"./src/watermark.js\"></script>\n    <script type=\"text/javascript\" src=\"./src/watermark.min.js\"></script>\n    <!-- Or CDN -->\n    <script type=\"text/javascript\" src=\"https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.js\"></script>\n    <script type=\"text/javascript\" src=\"https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.min.js\"></script>\n    ```\n\n3. Initialization\n\n    ```javascript\n    document.addEventListener('DOMContentLoaded', function () {\n      new Watermark({\n        content: \"cell-watermark\"\n      })\n    });\n    ```\n\n## NPM\n\n1. Install\n\n    ```bash\n    npm i cell-watermark\n    ```\n\n2. Import\n\n    ```javascript\n    import Watermark from 'cell-watermark'\n    /* Or */\n    var Watermark = require(\"cell-watermark\")\n    ```\n\n# Class: Watermark\n\n## Watermark(options)\n\n#### new Watermark(options)\n\n##### Parameters\n\n| Name    | Type   | Description                       |\n| ------- | ------ | --------------------------------- |\n| options | Object | The options of watermark（[Properties](#properties)） |\n\n###### Properties\n\n| Name       | Type   | Attributes | Default  | Description                          |\n| ---------- | ------ | ---------- | :------- | ------------------------------------ |\n| content    | String | \\<optional\\> |        | watermark's text                     |\n| appendTo   | String | \\<optional\\> | 'body' | parent of watermark's container      |\n| width      | Number | \\<optional\\> | 150    | watermark's width. unit: px          |\n| height     | Number | \\<optional\\> | 20     | watermark's height. unit: px         |\n| rowSpacing | Number | \\<optional\\> | 60     | row spacing of watermarks. unit: px  |\n| colSpacing | Number | \\<optional\\> | 30     | col spacing of watermarks. unit: px  |\n| rotate     | Number | \\<optional\\> | 15     | watermark's tangent angle. unit: deg |\n| opacity    | Number | \\<optional\\> | 0.1    | watermark's transparency             |\n| fontSize   | Number | \\<optional\\> | 0.85   | watermark's fontSize. unit: rem      |\n| fontFamily | String | \\<optional\\> | 'inherit'| watermark's fontFamily             |\n\n> Author: [Lruihao](https://lruihao.cn)\n\n### Methods\n\n#### upload(content)\n\nUpload watermark's text content\n\n##### Parameters\n\n|  Name   |  Type  |   Description    |\n| :-----: | :----: | :--------------: |\n| content | String | watermark's text |\n\n#### render(options)\n\nRerender watermark\n\n##### Parameters\n\n| Name    | Type   | Description                         |\n| ------- | ------ | ----------------------------------- |\n| options | Object | The options of watermark（[Properties](#properties)） |\n\n#### destroy()\n\nForce destroy watermark\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/cell-watermark/  \n\n"
  },
  {
    "path": "projects/cos-album/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>利用腾讯云为静态页面添加“动态”相册 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\n功能虽好，但是还是先友情提示！\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \"><meta name=keywords content='CosAlbum,腾讯云 cos 桶,JavaScript'><meta itemprop=name content=\"利用腾讯云为静态页面添加“动态”相册\"><meta itemprop=description content=\"信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\n功能虽好，但是还是先友情提示！\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\"><meta itemprop=datePublished content=\"2019-11-24T10:52:34+08:00\"><meta itemprop=dateModified content=\"2019-11-24T10:52:34+08:00\"><meta itemprop=wordCount content=\"784\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"CosAlbum,腾讯云 cos 桶,javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/cos-album/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"利用腾讯云为静态页面添加“动态”相册\"><meta property=\"og:description\" content=\"信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\n功能虽好，但是还是先友情提示！\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2019-11-24T10:52:34+08:00\"><meta property=\"article:modified_time\" content=\"2019-11-24T10:52:34+08:00\"><meta property=\"article:tag\" content=\"CosAlbum\"><meta property=\"article:tag\" content=\"腾讯云 cos 桶\"><meta property=\"article:tag\" content=\"javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"利用腾讯云为静态页面添加“动态”相册\"><meta name=twitter:description content=\"信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\n功能虽好，但是还是先友情提示！\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/cos-album/ title=\"利用腾讯云为静态页面添加“动态”相册 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/cos-album/ title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><link rel=next type=text/html href=https://lruihao.cn/posts/sql/ title=\"SQL 总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/cos-album/index.md title=\"利用腾讯云为静态页面添加“动态”相册 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"利用腾讯云为静态页面添加“动态”相册\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/cos-album\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"CosAlbum, 腾讯云 cos 桶, JavaScript\",\"wordcount\":784,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/cos-album\\/\",\"datePublished\":\"2019-11-24T10:52:34+08:00\",\"dateModified\":\"2019-11-24T10:52:34+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/cos-album/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>利用腾讯云为静态页面添加“动态”相册</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><span class=active title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</span></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/cos-album/ class=collection-nav-item rel=prev title=Lruihao/cos-album><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>6/51</span><a href=/projects/lruihao/cell-blog/ class=collection-nav-item rel=next title=Lruihao/cell-blog><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>利用腾讯云为静态页面添加“动态”相册</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/javascript/ class=post-category title=\"分类 - JavaScript\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> JavaScript</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2019-11-24 10:52:34\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-11-24>2019-11-24</time></span>&nbsp;<span title=\"784 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 800 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=利用腾讯云为静态页面添加“动态”相册><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/projects/cos-album/images/view.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/projects/cos-album/images/view.png></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#创建腾讯云-cos-存储桶>创建腾讯云 cos 存储桶</a></li><li><a href=#上传照片>上传照片</a><ol><li><a href=#上传工具>上传工具</a></li></ol></li><li><a href=#食用方式>食用方式</a><ol><li><a href=#step1>Step1</a></li><li><a href=#step2>Step2</a></li><li><a href=#params>Params</a></li></ol></li><li><a href=#changelog>changelog</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2019-11-24，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition info open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-circle-info\" aria-hidden=true></i>信息<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，<br><strong><span style=color:#428bca>功能虽好，但是还是先友情提示！</span></strong><br>开放 API 是一个<strong>很危险</strong>的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！</div></div></div><h2 class=heading-element id=创建腾讯云-cos-存储桶><span>1 创建腾讯云 cos 存储桶</span>\n<a href=#%e5%88%9b%e5%bb%ba%e8%85%be%e8%ae%af%e4%ba%91-cos-%e5%ad%98%e5%82%a8%e6%a1%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>就创建一个 COS 就好了！有几点注意事项：</p><ol><li>权限设置为共有读私有写</li><li>policy 权限设置整个桶的读操作</li><li>跨域访问 CORS 设置，自己随意</li></ol><h2 class=heading-element id=上传照片><span>2 上传照片</span>\n<a href=#%e4%b8%8a%e4%bc%a0%e7%85%a7%e7%89%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先我这个 cos 相册，相册分类就是文件夹分类，所以 cos 桶里面先新建不同的文件夹，<strong>文件夹名称就是相册名称</strong>，\n每个相册里面需要放置一张名称为**“封面.jpg”**的图片作为该相册的封面。</p><h3 class=heading-element id=上传工具><span>2.1 上传工具</span>\n<a href=#%e4%b8%8a%e4%bc%a0%e5%b7%a5%e5%85%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>COSBrowser</strong> GUI 工具，桌面/移动版【官方、推荐】</li><li><strong>COSCMD</strong> 命令行工具【官方】</li><li><strong>PicGo</strong> 图床上传工具【第三方、推荐】</li></ul><h2 class=heading-element id=食用方式><span>3 食用方式</span>\n<a href=#%e9%a3%9f%e7%94%a8%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><a href=http://github.com/Lruihao/cos-album target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>cos album 相册源码下载地址，别忘点赞哈</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/cos-album</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><ol><li>首先，下载源码，引入 <code>cos-album.css</code> 和 <code>cos-album.js</code></li><li>然后，在你的 js 中 new 一个 Cosalbum 对象 ( xmlLink 后不需要添加<code>/</code>)</li></ol><h3 class=heading-element id=step1><span>3.1 Step1</span>\n<a href=#step1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>link</span> <span class=nx>rel</span><span class=o>=</span><span class=s2>&#34;stylesheet&#34;</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/css&#34;</span> <span class=nx>href</span><span class=o>=</span><span class=s2>&#34;cos-album.min.css?v=1.1.2&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span> <span class=nx>src</span><span class=o>=</span><span class=s2>&#34;cos-album.min.js?v=1.1.2&#34;</span><span class=o>&gt;&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=step2><span>3.2 Step2</span>\n<a href=#step2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=k>new</span> <span class=nx>Cosalbum</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;xmlLink&#39;</span><span class=o>:</span> <span class=s1>&#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;prependTo&#39;</span><span class=o>:</span> <span class=s1>&#39;.cos-album&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;viewNum&#39;</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;imgUrl&#39;</span><span class=o>:</span> <span class=s1>&#39;//img.lruihao.cn&#39;</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=params><span>3.3 Params</span>\n<a href=#params class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:left>param</th><th style=text-align:left>type</th><th style=text-align:left>default</th><th style=text-align:left>description</th></tr></thead><tbody><tr><td style=text-align:left>xmlLink</td><td style=text-align:left>String</td><td style=text-align:left></td><td style=text-align:left>需要解析的騰訊云 COS 桶 XML 鏈接</td></tr><tr><td style=text-align:left>prependTo</td><td style=text-align:left>String</td><td style=text-align:left>&lsquo;body&rsquo;</td><td style=text-align:left>可選解析相冊到某個節點</td></tr><tr><td style=text-align:left>viewNum</td><td style=text-align:left>Number</td><td style=text-align:left>4</td><td style=text-align:left>每個相冊顯示的照片數目</td></tr><tr><td style=text-align:left>copyUrl</td><td style=text-align:left>String</td><td style=text-align:left>href</td><td style=text-align:left>CDN 链接，雙擊複製 URL Since: 1.1.6</td></tr><tr><td style=text-align:left>imgType</td><td style=text-align:left>String</td><td style=text-align:left>[&lsquo;jpg&rsquo;, &lsquo;jpeg&rsquo;, &lsquo;png&rsquo;, &lsquo;gif&rsquo;, &lsquo;svg&rsquo;]</td><td style=text-align:left>图片類型 Since: 1.1.6</td></tr><tr><td style=text-align:left>videoType</td><td style=text-align:left>String</td><td style=text-align:left>[&lsquo;mp4&rsquo;, &lsquo;mp3&rsquo;, &lsquo;avi&rsquo;, &lsquo;mov&rsquo;, &lsquo;qt&rsquo;]</td><td style=text-align:left>視頻類型 Since: 1.1.6</td></tr></tbody></table></div><p><code>viewport</code> 视个人情况添加。<br>hexo 中使用时 css 和 js 都需要做适当调整，配合加密功能使用等等，这里不再展开。<br><strong><em>注：代码设定不加载根目录文件，所以可以利用静态服务把源码部署在根目录，配合 PicGo、COSBrowser 上传来搭建个人图床。</em></strong></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=cp>&lt;!DOCTYPE html&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>html</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>meta</span> <span class=na>charset</span><span class=o>=</span><span class=s>&#34;UTF-8&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>title</span><span class=p>&gt;</span>cos-album<span class=p>&lt;/</span><span class=nt>title</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=c>&lt;!-- &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt; --&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/css&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;cos-album.css&#34;</span> <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;cos-album.js&#34;</span> <span class=na>defer</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>head</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>      <span class=k>new</span> <span class=nx>Cosalbum</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>        <span class=nx>xmlLink</span><span class=o>:</span> <span class=s1>&#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>prependTo</span><span class=o>:</span> <span class=s1>&#39;.cos-album&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>viewNum</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>copyUrl</span><span class=o>:</span> <span class=s1>&#39;//img.lruihao.cn&#39;</span>\n</span></span><span class=line><span class=cl>      <span class=p>});</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=c>&lt;!-- 你的其他内容，如评论等 --&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>body</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>html</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://img.lruihao.cn target=_blank class=LinkCard>cos-album demo</a></p><p><a class=lightgallery target=_blank href=/projects/cos-album/images/view.png title=大屏显示 data-thumbnail=/projects/cos-album/images/view.png data-sub-html=\"<h2>大屏显示</h2>\"><img loading=lazy src=/projects/cos-album/images/view.png alt=大屏显示 height=900 width=1898></a><div id=id-1><a class=lightgallery target=_blank href=/projects/cos-album/images/mobile.png title=手机显示 data-thumbnail=/projects/cos-album/images/mobile.png data-sub-html=\"<h2>手机显示</h2>\"><img loading=lazy src=/projects/cos-album/images/mobile.png alt=手机显示 height=776 width=438></a></div></p><h2 class=heading-element id=changelog><span>4 changelog</span>\n<a href=#changelog class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>2020-9-28 22:46<ol><li>升級：相冊封裝成類，可以更方便 new 出來</li><li>優化：相冊圖片樣式優化</li></ol></li><li>2019-11-24 10:52:34\n修改整理了一下代码，分割功能为函数，并写了注释，更加方便 <a href=https://github.com/Lruihao/cos-album target=_blank rel=\"external nofollow noopener noreferrer\">伸手党<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>!</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/cos-album/ class=collection-nav-item rel=prev title=Lruihao/cos-album><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/cos-album</span>\n</a><a href=/projects/lruihao/cell-blog/ class=collection-nav-item rel=next title=Lruihao/cell-blog><span>Lruihao/cell-blog</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-11-24 10:52:34\">更新于 2019-11-24&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/cos-album/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cos-album/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/cos-album/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%88%A9%E7%94%A8%E8%85%BE%E8%AE%AF%E4%BA%91%E4%B8%BA%E9%9D%99%E6%80%81%E9%A1%B5%E9%9D%A2%E6%B7%BB%E5%8A%A0%E2%80%9C%E5%8A%A8%E6%80%81%E2%80%9D%E7%9B%B8%E5%86%8C&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%88%A9%E7%94%A8%E8%85%BE%E8%AE%AF%E4%BA%91%E4%B8%BA%E9%9D%99%E6%80%81%E9%A1%B5%E9%9D%A2%E6%B7%BB%E5%8A%A0%E2%80%9C%E5%8A%A8%E6%80%81%E2%80%9D%E7%9B%B8%E5%86%8C%7c%0A%7cURL%7chttps://lruihao.cn/projects/cos-album/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/cos-album/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/cos-album/ data-title=利用腾讯云为静态页面添加“动态”相册 data-hashtags=\"CosAlbum,腾讯云 cos 桶,JavaScript\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/cos-album/ data-hashtag=CosAlbum><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/cos-album/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/cos-album/ data-title=利用腾讯云为静态页面添加“动态”相册 data-image=/projects/cos-album/images/view.png data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/cos-album/ data-title=利用腾讯云为静态页面添加“动态”相册><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cosalbum/ class=post-tag title=\"标签 - CosAlbum\">CosAlbum</a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=post-tag title=\"标签 - 腾讯云 cos 桶\">腾讯云 cos 桶</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/cos-album/ class=post-nav-item rel=prev title=Lruihao/cos-album><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/cos-album</a><a href=/posts/sql/ class=post-nav-item rel=next title=\"SQL 总结\">SQL 总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#创建腾讯云-cos-存储桶>创建腾讯云 cos 存储桶</a></li><li><a href=#上传照片>上传照片</a><ol><li><a href=#上传工具>上传工具</a></li></ol></li><li><a href=#食用方式>食用方式</a><ol><li><a href=#step1>Step1</a></li><li><a href=#step2>Step2</a></li><li><a href=#params>Params</a></li></ol></li><li><a href=#changelog>changelog</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><link rel=stylesheet href=/css/page/80acd2330a03632340c6961a055f9fc3.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/80acd2330a03632340c6961a055f9fc3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/80acd2330a03632340c6961a055f9fc3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/cos-album/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/cos-album/index.md",
    "content": "# 利用腾讯云为静态页面添加“动态”相册\n\n\n<!-- markdownlint-disable MD033 -->\n\n{{< admonition info >}}\ncos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，  \n**<span style=\"color: #428bca;\">功能虽好，但是还是先友情提示！</span>**  \n开放 API 是一个**很危险**的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\n{{< /admonition >}}\n\n<!--more-->\n\n## 创建腾讯云 cos 存储桶\n\n就创建一个 COS 就好了！有几点注意事项：\n\n1. 权限设置为共有读私有写\n2. policy 权限设置整个桶的读操作\n3. 跨域访问 CORS 设置，自己随意\n\n## 上传照片\n\n首先我这个 cos 相册，相册分类就是文件夹分类，所以 cos 桶里面先新建不同的文件夹，**文件夹名称就是相册名称**，\n每个相册里面需要放置一张名称为**“封面.jpg”**的图片作为该相册的封面。\n\n### 上传工具\n\n- **COSBrowser** GUI 工具，桌面/移动版【官方、推荐】\n- **COSCMD** 命令行工具【官方】\n- **PicGo** 图床上传工具【第三方、推荐】\n\n## 食用方式\n\n<!-- markdownlint-disable MD034 -->\n\n{{< link href=\"http://github.com/Lruihao/cos-album\" content=\"cos album 相册源码下载地址，别忘点赞哈\" card=true >}}\n\n1. 首先，下载源码，引入 `cos-album.css` 和 `cos-album.js`\n2. 然后，在你的 js 中 new 一个 Cosalbum 对象 ( xmlLink 后不需要添加`/`)\n\n### Step1\n\n```js config\n<link rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.min.css?v=1.1.2\">\n<script type=\"text/javascript\" src=\"cos-album.min.js?v=1.1.2\"></script>\n```\n\n### Step2\n\n```js\n<script type=\"text/javascript\">\n  new Cosalbum({\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n    'prependTo': '.cos-album',\n    'viewNum': 8,\n    'imgUrl': '//img.lruihao.cn'\n  });\n</script>\n```\n\n### Params\n\n| param     | type   | default                              | description                         |\n| :-------- | :----- | :----------------------------------- | :---------------------------------- |\n| xmlLink   | String |                                      | 需要解析的騰訊云 COS 桶 XML 鏈接    |\n| prependTo | String | 'body'                               | 可選解析相冊到某個節點              |\n| viewNum   | Number | 4                                    | 每個相冊顯示的照片數目              |\n| copyUrl   | String | href                                 | CDN 链接，雙擊複製 URL Since: 1.1.6 |\n| imgType   | String | ['jpg', 'jpeg', 'png', 'gif', 'svg'] | 图片類型 Since: 1.1.6               |\n| videoType | String | ['mp4', 'mp3', 'avi', 'mov', 'qt']   | 視頻類型 Since: 1.1.6               |\n\n`viewport` 视个人情况添加。  \nhexo 中使用时 css 和 js 都需要做适当调整，配合加密功能使用等等，这里不再展开。  \n**_注：代码设定不加载根目录文件，所以可以利用静态服务把源码部署在根目录，配合 PicGo、COSBrowser 上传来搭建个人图床。_**\n\n```html demo\n<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"UTF-8\" />\n    <title>cos-album</title>\n    <!-- <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"> -->\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.css\" />\n    <script type=\"text/javascript\" src=\"cos-album.js\" defer></script>\n  </head>\n  <body>\n    <script type=\"text/javascript\">\n      new Cosalbum({\n        xmlLink: 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n        prependTo: '.cos-album',\n        viewNum: 8,\n        copyUrl: '//img.lruihao.cn'\n      });\n    </script>\n    <!-- 你的其他内容，如评论等 -->\n  </body>\n</html>\n```\n\n<a href=\"https://img.lruihao.cn\" target=\"_blank\" class=\"LinkCard\">cos-album demo</a>\n\n![大屏显示](images/view.png)\n{{< style \"text-align: center;\" div >}}\n![手机显示](images/mobile.png)\n{{< /style >}}\n\n## changelog\n\n- 2020-9-28 22:46\n  1. 升級：相冊封裝成類，可以更方便 new 出來\n  2. 優化：相冊圖片樣式優化\n- 2019-11-24 10:52:34\n  修改整理了一下代码，分割功能为函数，并写了注释，更加方便 [伸手党](https://github.com/Lruihao/cos-album)!\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/cos-album/  \n\n"
  },
  {
    "path": "projects/coverview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>用五天时间给自己制作一个封面图生成工具 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta name=keywords content='react,coverview,cover,generator,tool'><meta itemprop=name content=\"用五天时间给自己制作一个封面图生成工具\"><meta itemprop=description content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta itemprop=datePublished content=\"2024-04-02T18:05:34+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"1257\"><meta itemprop=image content=\"https://lruihao.cn/projects/coverview/images/cover.webp\"><meta itemprop=keywords content=\"react,coverview,cover,generator,tool\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/coverview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"用五天时间给自己制作一个封面图生成工具\"><meta property=\"og:description\" content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-04-02T18:05:34+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"CoverView\"><meta property=\"article:tag\" content=\"React\"><meta property=\"og:image\" content=\"https://lruihao.cn/projects/coverview/images/cover.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/projects/coverview/images/cover.webp\"><meta name=twitter:title content=\"用五天时间给自己制作一个封面图生成工具\"><meta name=twitter:description content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/coverview/ title=\"用五天时间给自己制作一个封面图生成工具 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/coverview/ title=\"🛠 Create awesome cover images for your blog posts quickly.\"><link rel=next type=text/html href=https://lruihao.cn/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/coverview/index.md title=\"用五天时间给自己制作一个封面图生成工具 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"用五天时间给自己制作一个封面图生成工具\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/coverview\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/coverview\\/images\\/cover.webp\",\"width\":1720,\"height\":722}],\"genre\":\"posts\",\"keywords\":\"CoverView, React\",\"wordcount\":1257,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/coverview\\/\",\"datePublished\":\"2024-04-02T18:05:34+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"🛠 Create awesome cover images for your blog posts quickly.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/coverview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>用五天时间给自己制作一个封面图生成工具</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><span class=active title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</span></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/coverview/ class=collection-nav-item rel=prev title=Lruihao/CoverView><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>28/51</span><a href=/projects/apple-devices-preview/ class=collection-nav-item rel=next title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>用五天时间给自己制作一个封面图生成工具</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/react/ class=post-category title=\"分类 - React\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> React</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-04-02 18:05:34\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-04-02>2024-04-02</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"1257 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=用五天时间给自己制作一个封面图生成工具><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/projects/coverview/images/cover.webp sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/projects/coverview/images/cover.webp height=722 width=1720></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#心路历程>心路历程</a></li><li><a href=#项目介绍>项目介绍</a></li><li><a href=#如何使用>如何使用</a></li><li><a href=#图片压缩>图片压缩</a></li><li><a href=#收获>收获</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><div class=\"details admonition success open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-check\" aria-hidden=true></i>Cool!<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>苦封面图久矣，今日终有所成。</div></div></div><h2 class=heading-element id=心路历程><span>1 心路历程</span>\n<a href=#%e5%bf%83%e8%b7%af%e5%8e%86%e7%a8%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>写博客一直都懒得配图，主要是除了截图一直懒得找素材，然后还得考虑压缩等，直到心血来潮写文档时加上了封面图，发现效果还不错，就开始思考如何快速地搞定封面图，经历了以下几个阶段：</p><ol><li><strong>Google 搜图</strong>：最开始的时候，直接 Google 搜图，然而很难找到合适的图片。</li><li><strong>手动制作</strong>：然后开始用 <a href=https://excalidraw.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Excalidraw<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 制作，但是每篇文章都要重新画，太麻烦了。</li><li><strong>稿定</strong>: FixIt 主题群群友推荐了 <a href=https://www.gaoding.com/ target=_blank rel=\"external nofollow noopener noreferrer\">稿定<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，可以快速生成封面图，但是要付费啊，受不了一点。</li><li><strong>原 CoverView</strong>：最后还是 FixIt 主题群群友又推荐了 <a href=https://github.com/rutikwankhade/CoverView target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，哎！这个可以，但是样式有点跑版，还有图片无法下载等诸多 BUG，主要还无法适配 Hugo FixIt 主题的封面尺寸。</li><li><strong>自己写</strong>：既然 CoverView 是开源的，那就先克隆一份，自己改改啰。</li></ol><dl><dt>为什么封面图片比你想象的更重要？</dt><dd>每天约有 700 万篇博文被发表。随着新时代博客工具的兴起，这个数字还会持续上升。一个好的封面图片比随机的库存图片能带来更高的转化率。</dd></dl><h2 class=heading-element id=项目介绍><span>2 项目介绍</span>\n<a href=#%e9%a1%b9%e7%9b%ae%e4%bb%8b%e7%bb%8d class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>该项目基于原项目 CoverView 修改而成，感谢原作者 Rutik Wankhade 的优秀作品，我又连夜花了五天时间，做了如下改动和优化：</p><ul><li>修复了带有图案背景的图片无法下载的问题</li><li>修复了无法下载和上传 SVG 格式图标的问题</li><li>修复了移动端样式混乱的问题</li><li>修复了重置所有按钮功能异常的问题</li><li>添加了 ESLint 支持</li><li>添加了 I18n 支持</li><li>增强了 Unsplash 图片搜索功能</li><li>添加了下载图片格式选择（PNG/JPEG），并支持 JPEG 图片质量调整</li><li>优化了图片下载速度</li><li>优化了 Devicons 以多色 SVG 图标显示</li><li>添加了更多字体和平台支持</li><li>统一了不同主题下载图片的大小</li><li>以及更多 &mldr;</li></ul><p>至此已经足以让我感到满足和使用了，当然还有一些正在开发或者尝试开发的需求：</p><ul><li>支持复制到剪切板和从剪切板上传截图 <a href=https://github.com/Lruihao/CoverView/issues/8 target=_blank rel=\"external nofollow noopener noreferrer\">#8<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>尝试实现拖拽文本或者图标 <a href=https://github.com/Lruihao/CoverView/issues/9 target=_blank rel=\"external nofollow noopener noreferrer\">#9<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>设置自定义平台封面图片的宽高比、适配常用尺寸宽高比 <a href=https://github.com/Lruihao/CoverView/issues/10 target=_blank rel=\"external nofollow noopener noreferrer\">#10<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>现在 demo 版本已经上线，Unsplash API 的 <code>production</code> 版本还在审核中，最后传承开源精神开源出来，并保留了原作者 commit 记录聊表敬意。</p><a href=https://github.com/Lruihao/CoverView target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>🛠 Create awesome cover images for your blog posts quickly.</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/CoverView</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><h2 class=heading-element id=如何使用><span>3 如何使用</span>\n<a href=#%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以看到，本文的封面图就是它生成的，很快啊！我当时大意了！没有闪！（玩个梗😂）</p><p>在线使用地址：</p><ul><li><a href=https://coverview.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://coverview.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://coverview-x.vercel.app target=_blank rel=\"external nofollow noopener noreferrer\">https://coverview-x.vercel.app<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><ol><li>添加博客文章的标题和作者</li><li>自定义颜色、字体、图标等</li><li>从不同的主题中选择</li><li>点击下载按钮，即可下载封面图</li></ol><p>有了简单、快速、易用的 CoverView，为博客创建封面图片现在变得非常容易，这样大家就可以专注于撰写博客，而不必担心封面图片了。</p><h2 class=heading-element id=图片压缩><span>4 图片压缩</span>\n<a href=#%e5%9b%be%e7%89%87%e5%8e%8b%e7%bc%a9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>关于图片压缩问题，当时在开发之初 <a href=https://github.com/Lruihao/CoverView/issues/9 target=_blank rel=\"external nofollow noopener noreferrer\">#9<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，是准备增加下载为 WebP 格式的功能，但是由于没找到合适的实现库，所以很遗憾没有实现，可手动通过 <a href=https://developers.google.com/speed/webp/docs/cwebp target=_blank rel=\"external nofollow noopener noreferrer\">Cwebp<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 工具转换。</p><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>cwebp -q <span class=m>50</span> cover_*.jpeg -o cover.webp \n</span></span><span class=line><span class=cl>cwebp -q <span class=m>50</span> -lossless cover_*.png -o cover_lossless.webp </span></span></code></pre></td></tr></table></div></div></div><p>幸运的是，我增加了下载为 JPEG 格式的功能，可以在下载时调整图片质量，以减少图片大小。</p><p><a class=lightgallery target=_blank href=/projects/coverview/images/cover_279101.jpeg title=cover_279101.jpeg data-thumbnail=/projects/coverview/images/cover_279101.jpeg data-sub-html=\"<h2>cover_279101.jpeg</h2>\"><img loading=lazy src=/projects/coverview/images/cover_279101.jpeg alt=cover_279101.jpeg height=840 width=1600></a></p><p>比如上面这张图片，选择 JPEG 格式，图片质量选择 50%，下载下来的体积仅仅 <code>70kb</code>，wow! 太棒了！只需要简单输入，然后轻轻一点。</p><p>当然啦，可以找压缩工具进行压缩，例如：<a href=https://tinify.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">TinyPNG<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，它可以帮助你快速压缩图片，减少图片大小，提高网站加载速度。</p><h2 class=heading-element id=收获><span>5 收获</span>\n<a href=#%e6%94%b6%e8%8e%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了这个完善开发这个工具，先顺手学了一下 React，发现其实入门上手也很简单。</p><p>就这样，我又多了一个得心应手的工具 🛠️。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/coverview/ class=collection-nav-item rel=prev title=Lruihao/CoverView><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/CoverView</span>\n</a><a href=/projects/apple-devices-preview/ class=collection-nav-item rel=next title=\"临时决定再写一个小工具 - 网站预览图生成器\"><span>临时决定再写一个小工具 - 网站预览图生成器</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/coverview/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/coverview/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/coverview/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%94%A8%E4%BA%94%E5%A4%A9%E6%97%B6%E9%97%B4%E7%BB%99%E8%87%AA%E5%B7%B1%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%B0%81%E9%9D%A2%E5%9B%BE%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%94%A8%E4%BA%94%E5%A4%A9%E6%97%B6%E9%97%B4%E7%BB%99%E8%87%AA%E5%B7%B1%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E5%B0%81%E9%9D%A2%E5%9B%BE%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7%7c%0A%7cURL%7chttps://lruihao.cn/projects/coverview/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/coverview/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/coverview/ data-title=用五天时间给自己制作一个封面图生成工具 data-hashtags=CoverView,React><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/coverview/ data-hashtag=CoverView><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/coverview/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/coverview/ data-title=用五天时间给自己制作一个封面图生成工具 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/coverview/ data-title=用五天时间给自己制作一个封面图生成工具><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/coverview/ class=post-tag title=\"标签 - CoverView\">CoverView</a><a href=/tags/react/ class=post-tag title=\"标签 - React\">React</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/coverview/ class=post-nav-item rel=prev title=Lruihao/CoverView><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/CoverView</a><a href=/projects/apple-devices-preview/ class=post-nav-item rel=next title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#心路历程>心路历程</a></li><li><a href=#项目介绍>项目介绍</a></li><li><a href=#如何使用>如何使用</a></li><li><a href=#图片压缩>图片压缩</a></li><li><a href=#收获>收获</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/960bf92a61acbc81aafd4f8882506ca9.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/960bf92a61acbc81aafd4f8882506ca9.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/coverview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/coverview/index.md",
    "content": "# 用五天时间给自己制作一个封面图生成工具\n\n\n{{< admonition success \"Cool! \" >}}\n苦封面图久矣，今日终有所成。\n{{< /admonition >}}\n\n<!--more-->\n\n## 心路历程\n\n写博客一直都懒得配图，主要是除了截图一直懒得找素材，然后还得考虑压缩等，直到心血来潮写文档时加上了封面图，发现效果还不错，就开始思考如何快速地搞定封面图，经历了以下几个阶段：\n\n1. **Google 搜图**：最开始的时候，直接 Google 搜图，然而很难找到合适的图片。\n2. **手动制作**：然后开始用 [Excalidraw](https://excalidraw.com/) 制作，但是每篇文章都要重新画，太麻烦了。\n3. **稿定**: FixIt 主题群群友推荐了 [稿定](https://www.gaoding.com/)，可以快速生成封面图，但是要付费啊，受不了一点。\n4. **原 CoverView**：最后还是 FixIt 主题群群友又推荐了 [CoverView](https://github.com/rutikwankhade/CoverView)，哎！这个可以，但是样式有点跑版，还有图片无法下载等诸多 BUG，主要还无法适配 Hugo FixIt 主题的封面尺寸。\n5. **自己写**：既然 CoverView 是开源的，那就先克隆一份，自己改改啰。\n\n为什么封面图片比你想象的更重要？\n: 每天约有 700 万篇博文被发表。随着新时代博客工具的兴起，这个数字还会持续上升。一个好的封面图片比随机的库存图片能带来更高的转化率。\n\n## 项目介绍\n\n该项目基于原项目 CoverView 修改而成，感谢原作者 Rutik Wankhade 的优秀作品，我又连夜花了五天时间，做了如下改动和优化：\n\n- 修复了带有图案背景的图片无法下载的问题\n- 修复了无法下载和上传 SVG 格式图标的问题\n- 修复了移动端样式混乱的问题\n- 修复了重置所有按钮功能异常的问题\n- 添加了 ESLint 支持\n- 添加了 I18n 支持\n- 增强了 Unsplash 图片搜索功能\n- 添加了下载图片格式选择（PNG/JPEG），并支持 JPEG 图片质量调整\n- 优化了图片下载速度\n- 优化了 Devicons 以多色 SVG 图标显示\n- 添加了更多字体和平台支持\n- 统一了不同主题下载图片的大小\n- 以及更多 ...\n\n至此已经足以让我感到满足和使用了，当然还有一些正在开发或者尝试开发的需求：\n\n- 支持复制到剪切板和从剪切板上传截图 [#8](https://github.com/Lruihao/CoverView/issues/8)\n- 尝试实现拖拽文本或者图标 [#9](https://github.com/Lruihao/CoverView/issues/9)\n- 设置自定义平台封面图片的宽高比、适配常用尺寸宽高比 [#10](https://github.com/Lruihao/CoverView/issues/10)\n\n现在 demo 版本已经上线，Unsplash API 的 `production` 版本还在审核中，最后传承开源精神开源出来，并保留了原作者 commit 记录聊表敬意。\n\n{{< link href=\"https://github.com/Lruihao/CoverView\" content=\"🛠 Create awesome cover images for your blog posts quickly.\" card=true >}}\n\n## 如何使用\n\n可以看到，本文的封面图就是它生成的，很快啊！我当时大意了！没有闪！（玩个梗😂）\n\n在线使用地址：\n\n- <https://coverview.lruihao.cn>\n- <https://coverview-x.vercel.app>\n\n1. 添加博客文章的标题和作者\n2. 自定义颜色、字体、图标等\n3. 从不同的主题中选择\n4. 点击下载按钮，即可下载封面图\n\n有了简单、快速、易用的 CoverView，为博客创建封面图片现在变得非常容易，这样大家就可以专注于撰写博客，而不必担心封面图片了。\n\n## 图片压缩\n\n关于图片压缩问题，当时在开发之初 [#9](https://github.com/Lruihao/CoverView/issues/9)，是准备增加下载为 WebP 格式的功能，但是由于没找到合适的实现库，所以很遗憾没有实现，可手动通过 [Cwebp](https://developers.google.com/speed/webp/docs/cwebp) 工具转换。\n\n例如：\n\n```bash\ncwebp -q 50 cover_*.jpeg -o cover.webp \ncwebp -q 50 -lossless cover_*.png -o cover_lossless.webp \n```\n\n幸运的是，我增加了下载为 JPEG 格式的功能，可以在下载时调整图片质量，以减少图片大小。\n\n![cover_279101.jpeg](images/cover_279101.jpeg)\n\n比如上面这张图片，选择 JPEG 格式，图片质量选择 50%，下载下来的体积仅仅 `70kb`，wow! 太棒了！只需要简单输入，然后轻轻一点。\n\n当然啦，可以找压缩工具进行压缩，例如：[TinyPNG](https://tinify.cn/)，它可以帮助你快速压缩图片，减少图片大小，提高网站加载速度。\n\n## 收获\n\n为了这个完善开发这个工具，先顺手学了一下 React，发现其实入门上手也很简单。\n\n就这样，我又多了一个得心应手的工具 🛠️。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/coverview/  \n\n"
  },
  {
    "path": "projects/el-table-sticky/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\"><meta name=keywords content='vue,vue2,vue-directive,element-ui,el-table,el-table-sticky,v-sticky-header,v-sticky-footer,v-sticky-h-scroll,horizontal-scroll'><meta itemprop=name content=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><meta itemprop=description content=\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\"><meta itemprop=datePublished content=\"2023-09-25T17:49:58+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"1552\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"vue,vue2,vue-directive,element-ui,el-table,el-table-sticky,v-sticky-header,v-sticky-footer,v-sticky-h-scroll,horizontal-scroll\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/el-table-sticky/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><meta property=\"og:description\" content=\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-09-25T17:49:58+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><meta name=twitter:description content=\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/vue-fullscreen-toggler/ title=\"封装 Vue FullScreenToggler 组件\"><link rel=next type=text/html href=https://lruihao.cn/posts/article-structure/ title=写作技巧：如何搭建文章的框架结构？><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/el-table-sticky/index.md title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/el-table-sticky\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vue2\",\"wordcount\":1552,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/el-table-sticky\\/\",\"datePublished\":\"2023-09-25T17:49:58+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/el-table-sticky/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><span class=active title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</span></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/vue-el-demo/ class=collection-nav-item rel=prev title=Lruihao/vue-el-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>23/51</span><a href=/projects/hugo-fixit/fixit-cli/ class=collection-nav-item rel=next title=hugo-fixit/fixit-cli><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/vue.js/ class=post-category title=\"分类 - Vue.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Vue.js</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-09-25 17:49:58\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-09-25>2023-09-25</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"1552 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#背景>背景</a></li><li><a href=#解决思路>解决思路</a><ol><li><a href=#表头吸顶表尾吸底>表头吸顶&表尾吸底</a></li><li><a href=#高度自适应>高度自适应</a></li><li><a href=#横向滚动条吸底>横向滚动条吸底</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。</p><h2 class=heading-element id=背景><span>1 背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。</p><p><strong>Element UI 的解决办法</strong>：通过设置 <code>max-height</code> 或者 <code>height</code> 属性来实现上述需求。</p><p><strong>Element UI 的解决不足点</strong>：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。</p><p>为了解决以上痛点/需求，减少开发和维护成本，于是我开发了 <a href=https://github.com/Lruihao/el-table-sticky target=_blank rel=\"external nofollow noopener noreferrer\">el-table-sticky<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 插件，<a href=https://lruihao.github.io/el-table-sticky/ target=_blank rel=\"external nofollow noopener noreferrer\">在线示例<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><a href=https://github.com/Lruihao/el-table-sticky target=_blank rel=\"external nofollow noopener noreferrer\" class=card-link><span class=cl-backdrop></span>\n<span class=cl-content><span class=cl-text><span class=cl-title>el-table-stick</span>\n<span class=cl-meta><svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" width=\"16\" height=\"16\"><path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3.0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2.0-204l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3.0L191.4 526.5c-84.6 84.6-84.6 221.5.0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2.0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2.0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2.0 204L665.3 562.6c-3.1 3.1-3.1 8.2.0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3.0l116.2-116.2c84.5-84.6 84.5-221.5.0-306.1z\" fill=\"#a9a9b3\"/><path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3.0L372.3 598.7c-3.1 3.1-3.1 8.2.0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3.0l226.4-226.4c3.1-3.1 3.1-8.2.0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"/></svg>\n<span class=cl-url>github.com/Lruihao/el-table-sticky</span>\n</span></span><img src=/images/remote/github_14075797050460861398.png alt=\"card image\" class=cl-shortcut-image></span></a><blockquote><p><em>如果你觉得这个插件还不错，赏个 star 吧 😛，如果你有更好的实现方案，欢迎提 issue 或者 PR。</em></p></blockquote><h2 class=heading-element id=解决思路><span>2 解决思路</span>\n<a href=#%e8%a7%a3%e5%86%b3%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>el-table-sticky 插件从两个不同的角度解决问题：</p><ol><li><p>通过 <code>position: sticky</code> 属性，让 el-table 的表头等元素固定</p></li><li><p>沿用 Element UI 的 <code>max-height</code> 和 <code>height</code> 属性，通过自定义指令的方式，让 el-table 的表格内容高度自适应</p></li></ol><p>插件包含 4 个指令：</p><ul><li><code>v-sticky-header</code>：表头吸顶</li><li><code>v-sticky-footer</code>：表尾吸底</li><li><code>v-sticky-scroller</code>：横向滚动条吸底</li><li><code>v-height-adaptive</code>：高度自适应</li></ul><p>目前 4 个指令在 1.x 版本都已开发完成，已发布到 npm 上，可通过以下命令安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install @cell-x/el-table-sticky</span></span></code></pre></td></tr></table></div></div></div><p>具体使用方式，本文不做赘述，详见 README.md。</p><p>接下来，我们来看看如何实现这些功能。</p><h3 class=heading-element id=表头吸顶表尾吸底><span>2.1 表头吸顶&表尾吸底</span>\n<a href=#%e8%a1%a8%e5%a4%b4%e5%90%b8%e9%a1%b6%e8%a1%a8%e5%b0%be%e5%90%b8%e5%ba%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>表头吸顶是我最迫切想要解决的问题，所以在 0.x 版本开发完，我就马上发布并在公司老项目中引入了。</p><p>思路拆解：</p><ol><li>找到 el-table__header 并赋予 sticky top 特性</li><li>Debug 发现如果 el-table-column 设置了 fixed 值，Element UI 使用的是 fixed 定位，并将 el-table__header 对应的栏位隐藏</li><li>el-table__header sticky 后为了让固定栏位保持和 Element UI 一样的效果，需要找到这些栏位，设置为 sticky，然后按左右方向堆叠位置</li></ol><p>实现表头吸顶后，再看表尾合并行吸底效果也就是依葫芦画瓢，思路一样，于是为了复用代码，我抽离出来一个 <a href=https://github.com/Lruihao/el-table-sticky/blob/main/src/utils/sticky.js#L9 target=_blank rel=\"external nofollow noopener noreferrer\">Sticky Class<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=高度自适应><span>2.2 高度自适应</span>\n<a href=#%e9%ab%98%e5%ba%a6%e8%87%aa%e9%80%82%e5%ba%94 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><blockquote><p>沿用 Element UI 的 <code>max-height</code> 和 <code>height</code> 属性，所以 el-table 初始化时必须设置高度。</p></blockquote><p>这个就比较简单了，监听 el-table 元素的 resize，然后 JS 计算出表格的可用高度，最后调用 <code>$table.layout.setHeight</code> 设置高度即可。</p><h3 class=heading-element id=横向滚动条吸底><span>2.3 横向滚动条吸底</span>\n<a href=#%e6%a8%aa%e5%90%91%e6%bb%9a%e5%8a%a8%e6%9d%a1%e5%90%b8%e5%ba%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>这个指令的实现我放在最后，主要的难点在于如何创建自定义滚动条代替原生滚动条的问题，以下是我的开发过程：</p><ol><li>最开始看到了一个插件 <a href=https://github.com/mizuka-wu/el-table-horizontal-scroll target=_blank rel=\"external nofollow noopener noreferrer\">el-table-horizontal-scroll<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，它的做法是手动给 el-table 加上一个 el-scrollbar 并绑定事件处理，于是决定使用它的方案，但是看了源码，它使用的 fixed 定位和我预想有差距，而且手动绑定事件，可能有很多细节遗漏，维护起来或有诸多不便。</li><li>然后，我想能不能通过 render 函数直接渲染一个 el-scrollbar，我就去看 el-scrollbar 的源码，打开源码有惊喜，第一行注释找到了<a href=https://github.com/noeldelgado/gemini-scrollbar target=_blank rel=\"external nofollow noopener noreferrer\">gemini-scrollbar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个插件，打开 Github 看了一下，能够实现预期效果。</li><li>开造思路：<ol><li>在 el-table 中创建一个空元素当作 scroller，宽度保持和表格内容宽度一致</li><li>为 scroller 创建自定义滚动条，并赋予 sticky bottom 特性</li><li>同步 el-table 横向滚动的行为到 scroller</li><li>同步 scroller 横向滚动的行为到 el-table</li></ol></li></ol><p>A few moments later&mldr;</p><p>经过一番 code，实现了横向滚动条的吸底固定效果，但是基于 <a href=https://github.com/noeldelgado/gemini-scrollbar target=_blank rel=\"external nofollow noopener noreferrer\">gemini-scrollbar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 实现，存在以下已知问题：</p><ul><li data-task=\" \" title=未完成><p><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i>safari 浏览器存在兼容性<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup></p></li><li data-task=x title=已完成><p><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>当禁用原生滚动条时，gemini-scrollbar 计算滑块偏移距离时存在误差，<a href=https://github.com/Lruihao/el-table-sticky/blob/5c80091e21841fdb78264cde52ab1588b7991e02/src/utils/scroller.js#L75-L83 target=_blank rel=\"external nofollow noopener noreferrer\">详见<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></li></ul><p>最后为了简化使用，将 <code>v-sticky-scroller</code> 的功能内置到了 <code>v-sticky-header</code> 和 <code>v-sticky-footer</code> 指令中，使用时无需重复使用。</p><h2 class=heading-element id=总结><span>3 总结</span>\n<a href=#%e6%80%bb%e7%bb%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一念对开源蠢蠢欲动，一念对维护犹豫不决，一念成就开源，一念成就自己。</p><blockquote class=blockquote-center><p>Non sunt multiplicanda entia sine necessitate</p><p>若无必要，勿增实体</p></blockquote><p>不到迫不得已，不要轻易造轮子，要善于发现和利用已有的轮子、最理想的状态就是永远站在巨人的肩膀上。</p><p>但是通过造轮子，可以更好的学习和理解技术，也能体会到很多写业务代码不能感受到的快乐。</p><p>学而不思则罔，思而不学则殆。</p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p><em>如有必要，以后版本需要替换 gemini-scrollbar 实现自定义滚动条的功能。</em>&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/vue-el-demo/ class=collection-nav-item rel=prev title=Lruihao/vue-el-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/vue-el-demo</span>\n</a><a href=/projects/hugo-fixit/fixit-cli/ class=collection-nav-item rel=next title=hugo-fixit/fixit-cli><span>hugo-fixit/fixit-cli</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/el-table-sticky/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/el-table-sticky.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/el-table-sticky.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%A6%82%E4%BD%95%E8%AE%A9+Element+UI+%E8%A1%A8%E5%A4%B4%E3%80%81%E8%A1%A8%E5%B0%BE%E3%80%81%E6%A8%AA%E5%90%91%E6%BB%9A%E5%8A%A8%E6%9D%A1%E5%90%B8%E9%A1%B6%E5%90%B8%E5%BA%95%E5%9B%BA%E5%AE%9A%EF%BC%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%A6%82%E4%BD%95%E8%AE%A9+Element+UI+%E8%A1%A8%E5%A4%B4%E3%80%81%E8%A1%A8%E5%B0%BE%E3%80%81%E6%A8%AA%E5%90%91%E6%BB%9A%E5%8A%A8%E6%9D%A1%E5%90%B8%E9%A1%B6%E5%90%B8%E5%BA%95%E5%9B%BA%E5%AE%9A%EF%BC%9F%7c%0A%7cURL%7chttps://lruihao.cn/projects/el-table-sticky/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/el-table-sticky.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/el-table-sticky/ data-title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\" data-hashtags=Vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/el-table-sticky/ data-hashtag=Vue2><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/el-table-sticky/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/el-table-sticky/ data-title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/el-table-sticky/ data-title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/vue-fullscreen-toggler/ class=post-nav-item rel=prev title=\"封装 Vue FullScreenToggler 组件\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>封装 Vue FullScreenToggler 组件</a><a href=/posts/article-structure/ class=post-nav-item rel=next title=写作技巧：如何搭建文章的框架结构？>写作技巧：如何搭建文章的框架结构？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#背景>背景</a></li><li><a href=#解决思路>解决思路</a><ol><li><a href=#表头吸顶表尾吸底>表头吸顶&表尾吸底</a></li><li><a href=#高度自适应>高度自适应</a></li><li><a href=#横向滚动条吸底>横向滚动条吸底</a></li></ol></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/8c8e5f3cee9fd116b04e25d061ee3488.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/8c8e5f3cee9fd116b04e25d061ee3488.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/el-table-sticky/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/el-table-sticky/index.md",
    "content": "# 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\n\n\n本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\n\n<!--more-->\n\n## 背景\n\nElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\n\n**Element UI 的解决办法**：通过设置 `max-height` 或者 `height` 属性来实现上述需求。\n\n**Element UI 的解决不足点**：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。\n\n为了解决以上痛点/需求，减少开发和维护成本，于是我开发了 [el-table-sticky](https://github.com/Lruihao/el-table-sticky) 插件，[在线示例](https://lruihao.github.io/el-table-sticky/)。\n\n<!-- markdownlint-disable-next-line no-bare-urls -->\n{{< link href=\"https://github.com/Lruihao/el-table-sticky\" content=\"el-table-stick\" card=true >}}\n\n> _如果你觉得这个插件还不错，赏个 star 吧 😛，如果你有更好的实现方案，欢迎提 issue 或者 PR。_\n\n## 解决思路\n\nel-table-sticky 插件从两个不同的角度解决问题：\n\n1. 通过 `position: sticky` 属性，让 el-table 的表头等元素固定\n\n2. 沿用 Element UI 的 `max-height` 和 `height` 属性，通过自定义指令的方式，让 el-table 的表格内容高度自适应\n\n插件包含 4 个指令：\n\n- `v-sticky-header`：表头吸顶\n- `v-sticky-footer`：表尾吸底\n- `v-sticky-scroller`：横向滚动条吸底\n- `v-height-adaptive`：高度自适应\n\n目前 4 个指令在 1.x 版本都已开发完成，已发布到 npm 上，可通过以下命令安装：\n\n```bash\nnpm install @cell-x/el-table-sticky\n```\n\n具体使用方式，本文不做赘述，详见 README.md。\n\n接下来，我们来看看如何实现这些功能。\n\n### 表头吸顶&表尾吸底\n\n表头吸顶是我最迫切想要解决的问题，所以在 0.x 版本开发完，我就马上发布并在公司老项目中引入了。\n\n思路拆解：\n\n1. 找到 el-table__header 并赋予 sticky top 特性\n2. Debug 发现如果 el-table-column 设置了 fixed 值，Element UI 使用的是 fixed 定位，并将 el-table__header 对应的栏位隐藏\n3. el-table__header sticky 后为了让固定栏位保持和 Element UI 一样的效果，需要找到这些栏位，设置为 sticky，然后按左右方向堆叠位置\n\n实现表头吸顶后，再看表尾合并行吸底效果也就是依葫芦画瓢，思路一样，于是为了复用代码，我抽离出来一个 [Sticky Class](https://github.com/Lruihao/el-table-sticky/blob/main/src/utils/sticky.js#L9)。\n\n### 高度自适应\n\n> 沿用 Element UI 的 `max-height` 和 `height` 属性，所以 el-table 初始化时必须设置高度。\n\n这个就比较简单了，监听 el-table 元素的 resize，然后 JS 计算出表格的可用高度，最后调用 `$table.layout.setHeight` 设置高度即可。\n\n### 横向滚动条吸底\n\n这个指令的实现我放在最后，主要的难点在于如何创建自定义滚动条代替原生滚动条的问题，以下是我的开发过程：\n\n1. 最开始看到了一个插件 [el-table-horizontal-scroll](https://github.com/mizuka-wu/el-table-horizontal-scroll)，它的做法是手动给 el-table 加上一个 el-scrollbar 并绑定事件处理，于是决定使用它的方案，但是看了源码，它使用的 fixed 定位和我预想有差距，而且手动绑定事件，可能有很多细节遗漏，维护起来或有诸多不便。\n2. 然后，我想能不能通过 render 函数直接渲染一个 el-scrollbar，我就去看 el-scrollbar 的源码，打开源码有惊喜，第一行注释找到了[gemini-scrollbar](https://github.com/noeldelgado/gemini-scrollbar) 这个插件，打开 Github 看了一下，能够实现预期效果。\n3. 开造思路：\n   1. 在 el-table 中创建一个空元素当作 scroller，宽度保持和表格内容宽度一致\n   2. 为 scroller 创建自定义滚动条，并赋予 sticky bottom 特性\n   3. 同步 el-table 横向滚动的行为到 scroller\n   4. 同步 scroller 横向滚动的行为到 el-table\n\nA few moments later...\n\n经过一番 code，实现了横向滚动条的吸底固定效果，但是基于 [gemini-scrollbar](https://github.com/noeldelgado/gemini-scrollbar) 实现，存在以下已知问题：\n\n- [ ] safari 浏览器存在兼容性[^1]\n\n- [x] 当禁用原生滚动条时，gemini-scrollbar 计算滑块偏移距离时存在误差，[详见](https://github.com/Lruihao/el-table-sticky/blob/5c80091e21841fdb78264cde52ab1588b7991e02/src/utils/scroller.js#L75-L83)\n\n最后为了简化使用，将 `v-sticky-scroller` 的功能内置到了 `v-sticky-header` 和 `v-sticky-footer` 指令中，使用时无需重复使用。\n\n## 总结\n\n一念对开源蠢蠢欲动，一念对维护犹豫不决，一念成就开源，一念成就自己。\n\n{{< center-quote >}}\nNon sunt multiplicanda entia sine necessitate\n\n若无必要，勿增实体\n{{< /center-quote >}}\n\n不到迫不得已，不要轻易造轮子，要善于发现和利用已有的轮子、最理想的状态就是永远站在巨人的肩膀上。\n\n但是通过造轮子，可以更好的学习和理解技术，也能体会到很多写业务代码不能感受到的快乐。\n\n学而不思则罔，思而不学则殆。\n\n<!-- footnote reference definition -->\n[^1]: _如有必要，以后版本需要替换 gemini-scrollbar 实现自定义滚动条的功能。_\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/el-table-sticky/  \n\n"
  },
  {
    "path": "projects/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"我的开源 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"一个轻量化 Tooltip 组件。\",\"date_published\":\"2026-03-06T06:58:23Z\",\"date_modified\":\"2026-03-30T06:51:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap tooltip.js，保留常用能力并尽量减少体积与依赖。\\n特性 支持触发方式：hover / focus / click / manual 支持位置：top / bottom / left / right / auto 支持延迟配置（show / hide） 支持 data-ct-* 属性初始化 支持实例方法：show / hide / toggle / update / dispose 内置箭头与基础样式，无第三方依赖 本地运行 pnpm install pnpm dev构建库产物：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cell-tooltip\\\" data-decreased\\u003e\\u003cspan\\u003ecell-tooltip\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cell-tooltip\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap \\u003ccode\\u003etooltip.js\\u003c/code\\u003e，保留常用能力并尽量减少体积与依赖。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持触发方式：\\u003ccode\\u003ehover\\u003c/code\\u003e / \\u003ccode\\u003efocus\\u003c/code\\u003e / \\u003ccode\\u003eclick\\u003c/code\\u003e / \\u003ccode\\u003emanual\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持位置：\\u003ccode\\u003etop\\u003c/code\\u003e / \\u003ccode\\u003ebottom\\u003c/code\\u003e / \\u003ccode\\u003eleft\\u003c/code\\u003e / \\u003ccode\\u003eright\\u003c/code\\u003e / \\u003ccode\\u003eauto\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e支持延迟配置（\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持 \\u003ccode\\u003edata-ct-*\\u003c/code\\u003e 属性初始化\\u003c/li\\u003e\\n\\u003cli\\u003e支持实例方法：\\u003ccode\\u003eshow\\u003c/code\\u003e / \\u003ccode\\u003ehide\\u003c/code\\u003e / \\u003ccode\\u003etoggle\\u003c/code\\u003e / \\u003ccode\\u003eupdate\\u003c/code\\u003e / \\u003ccode\\u003edispose\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e内置箭头与基础样式，无第三方依赖\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"本地运行\\\"\\u003e\\u003cspan\\u003e本地运行\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epnpm install\\npnpm dev\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e构建库产物：\\u003c/p\\u003e\"},{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"A custom element for viewing and interacting with JSON data.\",\"date_published\":\"2025-07-19T07:05:07Z\",\"date_modified\":\"2026-04-08T08:42:59Z\",\"id\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/json-viewer-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"\\u0026lt;json-viewer\\u0026gt; Element 简体中文 | English\\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\n功能特性 🌟 Web 组件：原生，无框架依赖 🎨 主题：支持明暗模式 📦 盒装：可选边框与内边距 📋 可复制：一键复制 JSON 🔑 排序：支持键排序 🔍 展开深度：可控初始展开层级 🧩 自定义复制按钮：slot 插槽支持 🧬 类型高亮：多种类型高亮 🛠️ 自定义事件：支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"json-viewer-element\\\" data-decreased\\u003e\\u003cspan\\u003e\\u0026lt;json-viewer\\u0026gt; Element\\u003c/span\\u003e\\n  \\u003ca href=\\\"#json-viewer-element\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e简体中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能特性\\\"\\u003e\\u003cspan\\u003e功能特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e🌟 \\u003cstrong\\u003eWeb 组件\\u003c/strong\\u003e：原生，无框架依赖\\u003c/li\\u003e\\n\\u003cli\\u003e🎨 \\u003cstrong\\u003e主题\\u003c/strong\\u003e：支持明暗模式\\u003c/li\\u003e\\n\\u003cli\\u003e📦 \\u003cstrong\\u003e盒装\\u003c/strong\\u003e：可选边框与内边距\\u003c/li\\u003e\\n\\u003cli\\u003e📋 \\u003cstrong\\u003e可复制\\u003c/strong\\u003e：一键复制 JSON\\u003c/li\\u003e\\n\\u003cli\\u003e🔑 \\u003cstrong\\u003e排序\\u003c/strong\\u003e：支持键排序\\u003c/li\\u003e\\n\\u003cli\\u003e🔍 \\u003cstrong\\u003e展开深度\\u003c/strong\\u003e：可控初始展开层级\\u003c/li\\u003e\\n\\u003cli\\u003e🧩 \\u003cstrong\\u003e自定义复制按钮\\u003c/strong\\u003e：slot 插槽支持\\u003c/li\\u003e\\n\\u003cli\\u003e🧬 \\u003cstrong\\u003e类型高亮\\u003c/strong\\u003e：多种类型高亮\\u003c/li\\u003e\\n\\u003cli\\u003e🛠️ \\u003cstrong\\u003e自定义事件\\u003c/strong\\u003e：支持 copy/toggle 事件监听\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"使用方法\\\"\\u003e\\u003cspan\\u003e使用方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install json-viewer-element\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"引入\\\"\\u003e\\u003cspan\\u003e引入\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bc%95%e5%85%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"作为模块\\\"\\u003e\\u003cspan\\u003e作为模块\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport 'json-viewer-element'\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch4 class=\\\"heading-element\\\" id=\\\"umd-cdn\\\"\\u003e\\u003cspan\\u003eUMD (CDN)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#umd-cdn\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h4\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript src=\\\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"基本用法\\\"\\u003e\\u003cspan\\u003e基本用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e手动绑定 value：\\u003c/p\\u003e\"},{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"Generate a list of all hugo-fixit theme components.\",\"date_published\":\"2025-01-14T09:10:09Z\",\"date_modified\":\"2026-05-06T03:13:04Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"github-actions\"],\"summary\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"action-component-list--fixit\\\" data-decreased\\u003e\\u003cspan\\u003eaction-component-list | FixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#action-component-list--fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/super-linter/super-linter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_14033786788092036044.svg' alt=\\\"GitHub Super-Linter\\\"\\u003e\\u003c/a\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_12862037500024650352.svg' alt=\\\"CI\\\"\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_17453161718063467893.svg' alt=\\\"Check dist/\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_9366593515159455299.svg' alt=\\\"CodeQL\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"how-to-use\\\"\\u003e\\u003cspan\\u003eHow to use\\u003c/span\\u003e\\n  \\u003ca href=\\\"#how-to-use\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eYou can reference different stable versions of this action. For more\\ninformation, see\\n\\u003ca href=\\\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVersioning\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\nin the GitHub Actions toolkit.\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date_published\":\"2024-09-13T02:36:29Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"html-css-javascript\"],\"summary\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"html-demos\\\" data-decreased\\u003e\\u003cspan\\u003eHTML demos\\u003c/span\\u003e\\n  \\u003ca href=\\\"#html-demos\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"文件预览\\\"\\u003e\\u003cspan\\u003e文件预览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e直接浏览器打开 \\u003ccode\\u003esrc\\u003c/code\\u003e 目录下的 HTML 文件。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"date_published\":\"2024-03-28T06:14:16Z\",\"date_modified\":\"2026-05-06T03:02:25Z\",\"id\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"url\":\"https://lruihao.cn/projects/lruihao/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"CoverView 👉 简体中文说明 | English README\\n该项目基于原始的 CoverView。\\n现在为你的博客创建封面图片变得非常简单。\\n💥 变更通知 自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"coverview\\\" data-decreased\\u003e\\u003cspan\\u003eCoverView\\u003c/span\\u003e\\n  \\u003ca href=\\\"#coverview\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish README\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/open-source_18217824114769177106.svg' alt=\\\"用爱发电\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e该项目基于原始的 \\u003ca href=\\\"https://github.com/rutikwankhade/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e现在为你的博客创建封面图片变得非常简单。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\\\"cover_169570\\\" height=\\\"840\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-变更通知\\\"\\u003e\\u003cspan\\u003e💥 变更通知\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\\u003c/p\\u003e\"},{\"title\":\"强大的脑图可视化工具\",\"date_published\":\"2024-01-21T06:24:42Z\",\"date_modified\":\"2024-07-07T02:44:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"url\":\"https://lruihao.cn/projects/lruihao/kityminder-core/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"KityMinder Core 注意\\n由于原项目 KityMinder Core 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 @cell-x/kityminder-core。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"kityminder-core\\\" data-decreased\\u003e\\u003cspan\\u003eKityMinder Core\\u003c/span\\u003e\\n  \\u003ca href=\\\"#kityminder-core\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003e由于原项目 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKityMinder Core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 \\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e@cell-x/kityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"date_published\":\"2023-09-25T17:49:58&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\u003c/p\\u003e\"},{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Using frequently-used Hugo commands by shell.\",\"date_published\":\"2022-09-04T04:18:42Z\",\"date_modified\":\"2025-09-12T09:38:50Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\"],\"summary\":\"Hugo Shell Using frequently-used Hugo commands by shell.\\nDownload Add a submodule for your Hugo blog project.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shell\\\" data-decreased\\u003e\\u003cspan\\u003eHugo Shell\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shell\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eUsing frequently-used Hugo commands by shell.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"download\\\"\\u003e\\u003cspan\\u003eDownload\\u003c/span\\u003e\\n  \\u003ca href=\\\"#download\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eAdd a submodule for your Hugo blog project.\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-02-28T03:44:09Z\",\"date_modified\":\"2025-01-16T02:53:15Z\",\"id\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"url\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vue\"],\"summary\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"preparation\\\" data-decreased\\u003e\\u003cspan\\u003ePreparation\\u003c/span\\u003e\\n  \\u003ca href=\\\"#preparation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\u003c/p\\u003e\\n\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth\\u003ename\\u003c/th\\u003e\\n          \\u003cth\\u003etype\\u003c/th\\u003e\\n          \\u003cth\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay\\u003c/td\\u003e\\n          \\u003ctd\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费金额\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_description\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费描述\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_type\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费类型\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_user\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e付款人\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"init\\\" data-decreased\\u003e\\u003cspan\\u003eInit\\u003c/span\\u003e\\n  \\u003ca href=\\\"#init\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eset for yourself.\\u003c/p\\u003e\"},{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Elegant and powerful theme for Hexo.\",\"date_published\":\"2019-01-31T09:57:45Z\",\"date_modified\":\"2023-12-21T02:39:42Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"url\":\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"summary\":\"hexo-theme-next 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib资源已打包github。\\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，修改内容以博採眾長为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\n\",\"content_html\":\"\\u003ch1 align=center\\u003ehexo-theme-next\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对next的主题的自定义修改\\u003c/strong\\u003e，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib资源已打包github。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于\\u003ca href=\\\"https://github.com/theme-next/hexo-theme-next\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next 6.0+\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; \\u003ca href=\\\"https://theme-next.org\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://theme-next.org\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e \\u003cbr\\u003e\\n记录一下折腾过程，修改内容以\\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见\\u003ca href=\\\"https://lruihao.cn/categories/hexo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo分类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\n\\u003cstrong\\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"沐目体\",\"date_published\":\"2018-10-12T19:39:19&#43;08:00\",\"date_modified\":\"2018-10-12T19:39:19&#43;08:00\",\"id\":\"https://lruihao.cn/projects/font-mmt/\",\"url\":\"https://lruihao.cn/projects/font-mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"沐目体\"],\"summary\":\" \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ciframe class=\\\"manuscript\\\" src=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026a=fontshowPics\\u0026u=qbfRl8gPF2s-\\u0026z=Kqz%2FRroVGYc-\\\" style=\\\"width: 100%;height: 370px;margin-top: .25rem;\\\" frameborder=\\\"0\\\" allowfullscreen\\u003e\\u003c/iframe\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "projects/fixit-cli/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>用 Node.js 开发一个轻量脚手架 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\n\"><meta name=keywords content='脚手架,FixIt'><meta itemprop=name content=\"用 Node.js 开发一个轻量脚手架\"><meta itemprop=description content=\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\"><meta itemprop=datePublished content=\"2023-11-28T10:48:07+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"1057\"><meta itemprop=image content=\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\"><meta itemprop=keywords content=\"脚手架,FixIt\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/fixit-cli/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"用 Node.js 开发一个轻量脚手架\"><meta property=\"og:description\" content=\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-11-28T10:48:07+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"脚手架\"><meta property=\"article:tag\" content=\"FixIt\"><meta property=\"og:image\" content=\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\"><meta name=twitter:title content=\"用 Node.js 开发一个轻量脚手架\"><meta name=twitter:description content=\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ title=\"🛠️ A node-based tooling for FixIt site initialization.\"><link rel=next type=text/html href=https://lruihao.cn/posts/d8ae205/ title=\"尝试在 Python 中使用 Amazon Titan 文本模型\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/fixit-cli/index.md title=\"用 Node.js 开发一个轻量脚手架 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"用 Node.js 开发一个轻量脚手架\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/fixit-cli\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/fixit-cli\\/images\\/featured-image.png\",\"width\":650,\"height\":386}],\"genre\":\"posts\",\"keywords\":\"脚手架, FixIt\",\"wordcount\":1057,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/fixit-cli\\/\",\"datePublished\":\"2023-11-28T10:48:07+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/repo-card.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/fixit-cli/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>用 Node.js 开发一个轻量脚手架</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><span class=active title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</span></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/fixit-cli/ class=collection-nav-item rel=prev title=hugo-fixit/fixit-cli><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>25/51</span><a href=/projects/lruihao/kityminder-core/ class=collection-nav-item rel=next title=Lruihao/kityminder-core><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>用 Node.js 开发一个轻量脚手架</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/node.js/ class=post-category title=\"分类 - Node.js\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> Node.js</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-11-28 10:48:07\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-11-28>2023-11-28</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"1057 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"用 Node.js 开发一个轻量脚手架\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=featured-image><img loading=eager src=/projects/fixit-cli/images/featured-image.png sizes=\"(max-width: 680px) 100vw, (max-width: 960px) 80vw, (max-width: 1440px) 56vw, 800px\" alt=/projects/fixit-cli/images/featured-image.png height=386 width=650></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#前言>前言</a></li><li><a href=#思路>思路</a></li><li><a href=#开发>开发</a><ol><li><a href=#初始化项目>初始化项目</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#定义一个-cli>定义一个 CLI</a></li><li><a href=#命令行交互>命令行交互</a></li></ol></li><li><a href=#源码>源码</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>本文将介绍如何用 Node.js 开发一个轻量脚手架，以 <a href=https://github.com/hugo-fixit/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\">fixit-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 为例。</p><h2 class=heading-element id=前言><span>1 前言</span>\n<a href=#%e5%89%8d%e8%a8%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在维护 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 这个项目时，很多新人可能第一次接触 Hugo，第一次使用 FixIt 主题，可能觉得无从下手。在之前的工作中，为了避免这个问题，我新增了两个模板项目：</p><ul><li><a href=https://github.com/hugo-fixit/hugo-fixit-blog-go target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-blog-go<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit/hugo-fixit-blog-git target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-blog-git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>然并卵哈哈哈🤣，大家似乎都有种惰性，不愿意认真地读一遍 README，即使只需简单几步就能通过 GitHub template 创建一个拥有完整主题配置、自动化部署完善的博客。</p><p>懒惰是人类进步的源泉，想到 Vue CLI、Create React App 这些脚手架，我决定开发一个轻量级的脚手架 <a href=https://github.com/hugo-fixit/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\">fixit-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，让大家能够快速地上手 FixIt 主题。</p><h2 class=heading-element id=思路><span>2 思路</span>\n<a href=#%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>fixit-cli 的思路很简单，就是通过命令行交互，让用户输入一些信息，然后根据这些信息生成一个完整的博客项目。</p><ul><li><code>fixit create my-blog</code> 创建一个名为 <code>my-blog</code> 的项目</li><li><code>fixit check</code> 检查 FixIt 主题的最新版本</li></ul><h2 class=heading-element id=开发><span>3 开发</span>\n<a href=#%e5%bc%80%e5%8f%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=初始化项目><span>3.1 初始化项目</span>\n<a href=#%e5%88%9d%e5%a7%8b%e5%8c%96%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>mkdir fixit-cli\n</span></span><span class=line><span class=cl><span class=nb>cd</span> fixit-cli\n</span></span><span class=line><span class=cl>npm init -y</span></span></code></pre></td></tr></table></div></div></div><p>然后在 <code>package.json</code> 中写点项目信息。</p><h3 class=heading-element id=安装依赖><span>3.2 安装依赖</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install commander inquirer chalk simple-git ora --save</span></span></code></pre></td></tr></table></div></div></div><p>主要依赖：</p><div class=table-wrapper><table><thead><tr><th>依赖</th><th>用途</th></tr></thead><tbody><tr><td><a href=https://www.npmjs.com/package/commander target=_blank rel=\"external nofollow noopener noreferrer\">commander<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>完整的 Node.js 命令行解决方案</td></tr><tr><td><a href=https://www.npmjs.com/package/inquirer target=_blank rel=\"external nofollow noopener noreferrer\">inquirer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>常见交互式命令行用户界面的集合</td></tr><tr><td><a href=https://www.npmjs.com/package/chalk target=_blank rel=\"external nofollow noopener noreferrer\">chalk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>命令行输出样式</td></tr><tr><td><a href=https://www.npmjs.com/package/simple-git target=_blank rel=\"external nofollow noopener noreferrer\">simple-git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>用于在任何 Node.js 应用程序中运行 Git 命令的轻量级接口</td></tr><tr><td><a href=https://www.npmjs.com/package/ora target=_blank rel=\"external nofollow noopener noreferrer\">ora<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td>命令行 loading 效果</td></tr></tbody></table></div><p>如果需要使用简单的 <code>git clone</code> 下载模板，可以使用 <a href=https://www.npmjs.com/package/download-git-repo target=_blank rel=\"external nofollow noopener noreferrer\">download-git-repo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 替代 <code>simple-git</code>。</p><h3 class=heading-element id=定义一个-cli><span>3.3 定义一个 CLI</span>\n<a href=#%e5%ae%9a%e4%b9%89%e4%b8%80%e4%b8%aa-cli class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在 <code>package.json</code> 中添加 <code>bin</code> 字段，指定 CLI 的入口文件。</p><json-viewer value='\"{\\n  \\\"bin\\\": {\\n    \\\"fixit\\\": \\\"bin/cli.js\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>然后在 <code>bin</code> 目录下创建 <code>cli.js</code> 文件，写入以下内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=ch>#!/usr/bin/env node\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>console</span><span class=p>.</span><span class=nx>log</span><span class=p>(</span><span class=s1>&#39;Hello, FixIt!&#39;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>代码顶部的 <code>#!/usr/bin/env node</code> 是告诉终端，这个文件要使用 <code>node</code> 去执行，等同于 <code>node bin/cli.js</code>。</p><p>如果我们想要在终端执行 <code>fixit</code> 命令，可以使用 <code>npm link</code> 将 <code>fixit</code> 命令链接到全局。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm link\n</span></span><span class=line><span class=cl><span class=c1># 卸载本地包</span>\n</span></span><span class=line><span class=cl>npm unlink fixit</span></span></code></pre></td></tr></table></div></div></div><p>或者也可以使用 <code>npm install -g</code> 全局安装。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install -g fixit-cli /Users/cell/workspace/fixit-cli/</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=命令行交互><span>3.4 命令行交互</span>\n<a href=#%e5%91%bd%e4%bb%a4%e8%a1%8c%e4%ba%a4%e4%ba%92 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>先把要实现的命令和选项列出来：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=bin/cli.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>bin/cli.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=ch>#!/usr/bin/env node\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>Command</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;commander&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// ...\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// define commands\n</span></span></span><span class=line><span class=cl><span class=nx>program</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>command</span><span class=p>(</span><span class=s1>&#39;create &lt;project-name&gt;&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>description</span><span class=p>(</span><span class=s1>&#39;create a new FixIt project from a template&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>action</span><span class=p>(</span><span class=nx>createAction</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nx>program</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>command</span><span class=p>(</span><span class=s1>&#39;check&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>description</span><span class=p>(</span><span class=s1>&#39;check the latest version of FixIt theme&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>action</span><span class=p>(</span><span class=nx>checkAction</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nx>program</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>command</span><span class=p>(</span><span class=s1>&#39;help &lt;command&gt;&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>description</span><span class=p>(</span><span class=s1>&#39;display help for a specific command&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>action</span><span class=p>(</span><span class=nx>helpAction</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// define cli\n</span></span></span><span class=line><span class=cl><span class=nx>program</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>usage</span><span class=p>(</span><span class=s1>&#39;&lt;command&gt; [options]&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>description</span><span class=p>(</span><span class=nx>description</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>version</span><span class=p>(</span><span class=sb>`</span><span class=si>${</span><span class=nx>pkg</span><span class=p>.</span><span class=nx>name</span><span class=si>}</span><span class=sb> v</span><span class=si>${</span><span class=nx>pkg</span><span class=p>.</span><span class=nx>version</span><span class=si>}</span><span class=sb>`</span><span class=p>,</span> <span class=s1>&#39;-v, --version&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>showHelpAfterError</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>  <span class=p>.</span><span class=nx>parse</span><span class=p>(</span><span class=nx>process</span><span class=p>.</span><span class=nx>argv</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>然后再去实现这些命令所执行的动作：<code>createAction</code>、<code>checkAction</code>、<code>helpAction</code> 和完善一下 logo 和 description 等细节。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=\"fixit --help\"><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>fixit --help</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>Usage: fixit &lt;command&gt; [options]\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>=============================================\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        ▄████  ▄█     ▄  ▄█    ▄▄▄▄▀ \n</span></span><span class=line><span class=cl>        █▀   ▀ ██ ▀▄   █ ██ ▀▀▀ █    \n</span></span><span class=line><span class=cl>        █▀▀    ██   █ ▀  ██     █    \n</span></span><span class=line><span class=cl>        █      ▐█  ▄ █   ▐█    █     \n</span></span><span class=line><span class=cl>         █      ▐ █   ▀▄  ▐   ▀      \n</span></span><span class=line><span class=cl>          ▀        ▀                \n</span></span><span class=line><span class=cl>              fixit-cli v1.0.2\n</span></span><span class=line><span class=cl>         A cli tool for FixIt theme.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>=============================================\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>FixIt is a clean, elegant but advanced blog theme for Hugo\n</span></span><span class=line><span class=cl>built with love by Lruihao and his friends.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Complete documentation is available at https://fixit.lruihao.cn/.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Options:\n</span></span><span class=line><span class=cl>  -v, --version          output the version number\n</span></span><span class=line><span class=cl>  -h, --help             display help for command\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Commands:\n</span></span><span class=line><span class=cl>  create &lt;project-name&gt;  create a new FixIt project from a template\n</span></span><span class=line><span class=cl>  check                  check the latest version of FixIt theme\n</span></span><span class=line><span class=cl>  help &lt;command&gt;         display help for a specific command</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>最后发布到 npm 上就完活了。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm login\n</span></span><span class=line><span class=cl>npm publish</span></span></code></pre></td></tr></table></div></div></div><p>发布后，就可以通过 <code>npm install -g fixit-cli</code> 全局安装了。</p><p>安装后，例如，创建一个名为 my-blog 的站点：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit create my-blog</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=源码><span>4 源码</span>\n<a href=#%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>命令动作的具体实现详见 FixIt CLI 源码。</p><div class=\"gh-repo-card-container single\"><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/fixit-cli class=repo-url title=hugo-fixit/fixit-cli target=_blank><span>hugo-fixit/</span><span>fixit-cli</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🛠️ A node-based tooling for FixIt site initialization.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/hugo-fixit/fixit-cli/stargazers title=\"28 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>28</a><a href=https://github.com/hugo-fixit/fixit-cli/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/fixit-cli/ class=collection-nav-item rel=prev title=hugo-fixit/fixit-cli><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/fixit-cli</span>\n</a><a href=/projects/lruihao/kityminder-core/ class=collection-nav-item rel=next title=Lruihao/kityminder-core><span>Lruihao/kityminder-core</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/fixit-cli/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/fixit-cli/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/fixit-cli/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E7%94%A8+Node.js+%E5%BC%80%E5%8F%91%E4%B8%80%E4%B8%AA%E8%BD%BB%E9%87%8F%E8%84%9A%E6%89%8B%E6%9E%B6&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E7%94%A8+Node.js+%E5%BC%80%E5%8F%91%E4%B8%80%E4%B8%AA%E8%BD%BB%E9%87%8F%E8%84%9A%E6%89%8B%E6%9E%B6%7c%0A%7cURL%7chttps://lruihao.cn/projects/fixit-cli/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/fixit-cli/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/fixit-cli/ data-title=\"用 Node.js 开发一个轻量脚手架\" data-hashtags=脚手架,FixIt><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/fixit-cli/ data-hashtag=脚手架><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/fixit-cli/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/fixit-cli/ data-title=\"用 Node.js 开发一个轻量脚手架\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/fixit-cli/ data-title=\"用 Node.js 开发一个轻量脚手架\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/ class=post-tag title=\"标签 - 脚手架\">脚手架</a><a href=/tags/fixit/ class=post-tag title=\"标签 - FixIt\">FixIt</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/fixit-cli/ class=post-nav-item rel=prev title=hugo-fixit/fixit-cli><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/fixit-cli</a><a href=/posts/d8ae205/ class=post-nav-item rel=next title=\"Amazon Titan 文本模型\">Amazon Titan 文本模型<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#前言>前言</a></li><li><a href=#思路>思路</a></li><li><a href=#开发>开发</a><ol><li><a href=#初始化项目>初始化项目</a></li><li><a href=#安装依赖>安装依赖</a></li><li><a href=#定义一个-cli>定义一个 CLI</a></li><li><a href=#命令行交互>命令行交互</a></li></ol></li><li><a href=#源码>源码</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/2053578da0514057166c13965ec58b4e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/2053578da0514057166c13965ec58b4e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/fixit-cli/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/fixit-cli/index.md",
    "content": "# 用 Node.js 开发一个轻量脚手架\n\n\n本文将介绍如何用 Node.js 开发一个轻量脚手架，以 [fixit-cli](https://github.com/hugo-fixit/fixit-cli) 为例。\n\n<!--more-->\n\n## 前言\n\n在维护 [FixIt](https://github.com/hugo-fixit/FixIt) 这个项目时，很多新人可能第一次接触 Hugo，第一次使用 FixIt 主题，可能觉得无从下手。在之前的工作中，为了避免这个问题，我新增了两个模板项目：\n\n- [hugo-fixit-blog-go](https://github.com/hugo-fixit/hugo-fixit-blog-go)\n- [hugo-fixit-blog-git](https://github.com/hugo-fixit/hugo-fixit-blog-git)\n\n然并卵哈哈哈🤣，大家似乎都有种惰性，不愿意认真地读一遍 README，即使只需简单几步就能通过 GitHub template 创建一个拥有完整主题配置、自动化部署完善的博客。\n\n懒惰是人类进步的源泉，想到 Vue CLI、Create React App 这些脚手架，我决定开发一个轻量级的脚手架 [fixit-cli](https://github.com/hugo-fixit/fixit-cli)，让大家能够快速地上手 FixIt 主题。\n\n## 思路\n\nfixit-cli 的思路很简单，就是通过命令行交互，让用户输入一些信息，然后根据这些信息生成一个完整的博客项目。\n\n- `fixit create my-blog` 创建一个名为 `my-blog` 的项目\n- `fixit check` 检查 FixIt 主题的最新版本\n\n## 开发\n\n### 初始化项目\n\n```bash\nmkdir fixit-cli\ncd fixit-cli\nnpm init -y\n```\n\n然后在 `package.json` 中写点项目信息。\n\n### 安装依赖\n\n```bash\nnpm install commander inquirer chalk simple-git ora --save\n```\n\n主要依赖：\n\n| 依赖                                                   | 用途                                                   |\n| ------------------------------------------------------ | ------------------------------------------------------ |\n| [commander](https://www.npmjs.com/package/commander)   | 完整的 Node.js 命令行解决方案                          |\n| [inquirer](https://www.npmjs.com/package/inquirer)     | 常见交互式命令行用户界面的集合                         |\n| [chalk](https://www.npmjs.com/package/chalk)           | 命令行输出样式                                         |\n| [simple-git](https://www.npmjs.com/package/simple-git) | 用于在任何 Node.js 应用程序中运行 Git 命令的轻量级接口 |\n| [ora](https://www.npmjs.com/package/ora)               | 命令行 loading 效果                                    |\n\n如果需要使用简单的 `git clone` 下载模板，可以使用 [download-git-repo](https://www.npmjs.com/package/download-git-repo) 替代 `simple-git`。\n\n### 定义一个 CLI\n\n在 `package.json` 中添加 `bin` 字段，指定 CLI 的入口文件。\n\n```json\n{\n  \"bin\": {\n    \"fixit\": \"bin/cli.js\"\n  }\n}\n```\n\n然后在 `bin` 目录下创建 `cli.js` 文件，写入以下内容：\n\n```js\n#!/usr/bin/env node\n\nconsole.log('Hello, FixIt!')\n```\n\n代码顶部的 `#!/usr/bin/env node` 是告诉终端，这个文件要使用 `node` 去执行，等同于 `node bin/cli.js`。\n\n如果我们想要在终端执行 `fixit` 命令，可以使用 `npm link` 将 `fixit` 命令链接到全局。\n\n```bash\nnpm link\n# 卸载本地包\nnpm unlink fixit\n```\n\n或者也可以使用 `npm install -g` 全局安装。\n\n```bash\nnpm install -g fixit-cli /Users/cell/workspace/fixit-cli/\n```\n\n### 命令行交互\n\n先把要实现的命令和选项列出来：\n\n```js {title=\"bin/cli.js\"}\n#!/usr/bin/env node\nimport { Command } from 'commander'\n\n// ...\n\n// define commands\nprogram\n  .command('create <project-name>')\n  .description('create a new FixIt project from a template')\n  .action(createAction)\nprogram\n  .command('check')\n  .description('check the latest version of FixIt theme')\n  .action(checkAction)\nprogram\n  .command('help <command>')\n  .description('display help for a specific command')\n  .action(helpAction)\n\n// define cli\nprogram\n  .usage('<command> [options]')\n  .description(description)\n  .version(`${pkg.name} v${pkg.version}`, '-v, --version')\n  .showHelpAfterError()\n  .parse(process.argv)\n```\n\n然后再去实现这些命令所执行的动作：`createAction`、`checkAction`、`helpAction` 和完善一下 logo 和 description 等细节。\n\n```plain {title=\"fixit --help\"}\nUsage: fixit <command> [options]\n\n=============================================\n\n        ▄████  ▄█     ▄  ▄█    ▄▄▄▄▀ \n        █▀   ▀ ██ ▀▄   █ ██ ▀▀▀ █    \n        █▀▀    ██   █ ▀  ██     █    \n        █      ▐█  ▄ █   ▐█    █     \n         █      ▐ █   ▀▄  ▐   ▀      \n          ▀        ▀                \n              fixit-cli v1.0.2\n         A cli tool for FixIt theme.\n\n=============================================\n\nFixIt is a clean, elegant but advanced blog theme for Hugo\nbuilt with love by Lruihao and his friends.\n\nComplete documentation is available at https://fixit.lruihao.cn/.\n\nOptions:\n  -v, --version          output the version number\n  -h, --help             display help for command\n\nCommands:\n  create <project-name>  create a new FixIt project from a template\n  check                  check the latest version of FixIt theme\n  help <command>         display help for a specific command\n```\n\n最后发布到 npm 上就完活了。\n\n```bash\nnpm login\nnpm publish\n```\n\n发布后，就可以通过 `npm install -g fixit-cli` 全局安装了。\n\n安装后，例如，创建一个名为 my-blog 的站点：\n\n```bash\nfixit create my-blog\n```\n\n## 源码\n\n命令动作的具体实现详见 FixIt CLI 源码。\n\n{{< gh-repo-card-container >}}\n  {{< gh-repo-card repo=\"hugo-fixit/fixit-cli\" >}}\n{{< /gh-repo-card-container >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/fixit-cli/  \n\n"
  },
  {
    "path": "projects/font-mmt/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>沐目体 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" \"><meta name=keywords content='沐目体'><meta itemprop=name content=\"沐目体\"><meta itemprop=description content><meta itemprop=datePublished content=\"2018-10-12T19:39:19+08:00\"><meta itemprop=dateModified content=\"2018-10-12T19:39:19+08:00\"><meta itemprop=wordCount content=\"236\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"沐目体\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/font-mmt/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"沐目体\"><meta property=\"og:description\" content><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2018-10-12T19:39:19+08:00\"><meta property=\"article:modified_time\" content=\"2018-10-12T19:39:19+08:00\"><meta property=\"article:tag\" content=\"沐目体\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"沐目体\"><meta name=twitter:description content><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/font-mmt/ title=\"沐目体 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/liushuixian/ title=流水线><link rel=next type=text/html href=https://lruihao.cn/posts/linux-hello-c/ title=\"linux 编程初体验\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/font-mmt/index.md title=\"沐目体 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"沐目体\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/font-mmt\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"沐目体\",\"wordcount\":236,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/font-mmt\\/\",\"datePublished\":\"2018-10-12T19:39:19+08:00\",\"dateModified\":\"2018-10-12T19:39:19+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=wide><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/font-mmt/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>沐目体</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><span class=active title=沐目体>沐目体</span></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/lruihao.github.io/ class=collection-nav-item rel=prev title=Lruihao/lruihao.github.io><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>2/51</span><a href=/projects/lruihao/hexo-theme-next/ class=collection-nav-item rel=next title=Lruihao/hexo-theme-next><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>沐目体</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">一款手写给她的字体</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2018-10-12 19:39:19\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-10-12>2018-10-12</time></span>&nbsp;<span title=\"236 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=沐目体><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#预览>预览</a></li><li><a href=#下载>下载</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2018-10-12，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><iframe class=manuscript src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&a=fontshowPics&u=qbfRl8gPF2s-&z=Kqz%2FRroVGYc-\" style=width:100%;height:370px;margin-top:.25rem frameborder=0 allowfullscreen></iframe><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p><a href=https://lruihao.github.io/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">在线预览<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><h2 class=heading-element id=预览><span>预览</span>\n<a href=#%e9%a2%84%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div id=app-mmt v-cloak><p class=live-content>{{ message || '「沐目之，湘也」\\n 从下笔到停笔，从开始到结束，沐目体见证了我们稚嫩到成熟。\\n故事的开头往往极具温柔，但结局常常不尽人意。\\n那些忘不掉的人和事，岁月都已替我轻描淡写。' }}</p><textarea class=live-textarea v-model=message placeholder=\"请输入文字 ...\"></textarea></div><hr><link rel=stylesheet href=https://unpkg.com/mmt-webfont/dist/result.css><link rel=stylesheet href=https://unpkg.com/aplayer/dist/APlayer.min.css><link rel=stylesheet href='/shortcodes/mmt-netease/css/index.css?v=1.4.0'><div class=netease-music data-mid=2280569152 data-autoplay=true><meting-js server=netease type=playlist id=2280569152 list-folded=true autoplay></meting-js></div><section class=section-comment><div class=comment-163 title=随机下一条><span class=pic-backdrop></span><div class=commentator><img class=\"comment-avatar d-none\"><div class=comment-user><span class=comment-nickname></span>\n<small class=comment-time></small></div><span class=comment-liked></span></div><div class=comment-content></div><div class=music-info><span class=music-name></span>\n<span class=artists-name></span></div></div><div class=\"loading-indicator-wrapper d-none\"><div class=aether-spinner><div class=rect-one></div><div class=rect-two></div><div class=rect-three></div></div></div></section><div class=mmt-netease-powered><span>From <a href=\"https://music.163.com/#/playlist?id=2280569152\" target=_blank>playlist</a>, </span><span>Powered by <a href=https://github.com/Lruihao/hugo-shortcode-mmt-netease title=\"mmt-netease v1.4.0\" target=_blank>mmt-netease</a>.</span></div><script src='/shortcodes/mmt-netease/js/index.js?v=1.4.0'></script><hr><details close><summary>点击展开更多</summary><meting-js server=tencent type=playlist id=8305844774 theme=#448aff loop list-folded=true></meting-js><div class=preview-lyric><div class=table-wrapper><table><thead><tr><th style=text-align:center>《富士山下》</th><th style=text-align:center>《爱情转移》</th></tr></thead><tbody><tr><td style=text-align:center>前尘硬化像石头</td><td style=text-align:center>阳光在身上流转</td></tr><tr><td style=text-align:center>随缘地抛下便逃走</td><td style=text-align:center>等所有业障被原谅</td></tr><tr><td style=text-align:center>我绝不罕有</td><td style=text-align:center>爱情不停站</td></tr><tr><td style=text-align:center>往街里绕过一周</td><td style=text-align:center>想开往地老天荒</td></tr><tr><td style=text-align:center>我便化乌有</td><td style=text-align:center>需要多勇敢</td></tr><tr><td style=text-align:center>你还嫌不够</td><td style=text-align:center>你不要失望</td></tr><tr><td style=text-align:center>我把这陈年风褛</td><td style=text-align:center>荡气回肠是为了</td></tr><tr><td style=text-align:center>送赠你解咒</td><td style=text-align:center>最美的平凡</td></tr></tbody></table></div></div><p><a class=lightgallery target=_blank href=/projects/font-mmt/images/word1.png title=word data-thumbnail=/projects/font-mmt/images/word1.png data-sub-html=\"<h2>word</h2>\"><img loading=lazy src=/projects/font-mmt/images/word1.png alt=word height=1039 width=1920></a></p><div class=preview-images><p><a class=lightgallery target=_blank href=/projects/font-mmt/images/preview.png title=preview data-thumbnail=/projects/font-mmt/images/preview.png data-sub-html=\"<h2>preview</h2>\"><img loading=lazy src=/projects/font-mmt/images/preview.png alt=preview height=847 width=839></a>\n<a class=lightgallery target=_blank href=/projects/font-mmt/images/setting.png title=\"mobile setting\" data-thumbnail=/projects/font-mmt/images/setting.png data-sub-html=\"<h2>mobile setting</h2>\"><img loading=lazy src=/projects/font-mmt/images/setting.png alt=\"mobile setting\" height=1920 width=1080></a>\n<a class=lightgallery target=_blank href=/projects/font-mmt/images/wechat.png title=wechat data-thumbnail=/projects/font-mmt/images/wechat.png data-sub-html=\"<h2>wechat</h2>\"><img loading=lazy src=/projects/font-mmt/images/wechat.png alt=wechat height=1920 width=1080></a></p></div></details><h2 class=heading-element id=下载><span>下载</span>\n<a href=#%e4%b8%8b%e8%bd%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content><a href=https://github.com/Lruihao/MMT/releases target=_blank rel=\"external nofollow noopener noreferrer\">沐目体<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> <em>仅用于个人非商用！</em></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/lruihao.github.io/ class=collection-nav-item rel=prev title=Lruihao/lruihao.github.io><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/lruihao.github.io</span>\n</a><a href=/projects/lruihao/hexo-theme-next/ class=collection-nav-item rel=next title=Lruihao/hexo-theme-next><span>Lruihao/hexo-theme-next</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2018-10-12 19:39:19\">更新于 2018-10-12&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/f706e09bbcc0e58c24f7166b6c07464044e1581f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 增加 Demo&#10&#10Commit: f706e09bbcc0e58c24f7166b6c07464044e1581f [f706e09]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2025-04-17 15:45:09\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>f706e09</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/font-mmt/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/font-mmt/index.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/font-mmt/index.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E6%B2%90%E7%9B%AE%E4%BD%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E6%B2%90%E7%9B%AE%E4%BD%93%7c%0A%7cURL%7chttps://lruihao.cn/projects/font-mmt/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/font-mmt/index.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/font-mmt/ data-title=沐目体 data-hashtags=沐目体><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/font-mmt/ data-hashtag=沐目体><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/font-mmt/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/font-mmt/ data-title=沐目体 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/font-mmt/ data-title=沐目体><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/ class=post-tag title=\"标签 - 沐目体\">沐目体</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/liushuixian/ class=post-nav-item rel=prev title=流水线><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>流水线</a><a href=/posts/linux-hello-c/ class=post-nav-item rel=next title=\"Linux 编程初体验\">Linux 编程初体验<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#预览>预览</a></li><li><a href=#下载>下载</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=preload href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.css></noscript><link rel=stylesheet href=/lib/aplayer/dark.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><link rel=stylesheet href=mmt.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.js defer></script><script src=https://unpkg.com/meting@2.0.1/dist/Meting.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a0ccfff49c4e05313f93e04c41df9e58.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=https://npm.elemecdn.com/vue@2.6.14/dist/vue.min.js defer></script><script src=/js/config/a0ccfff49c4e05313f93e04c41df9e58.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/font-mmt/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script src=/js/page/a0ccfff49c4e05313f93e04c41df9e58.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/font-mmt/index.md",
    "content": "# 沐目体\n\n\n<!-- markdownlint-disable MD033 -->\n\n<iframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&a=fontshowPics&u=qbfRl8gPF2s-&z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen></iframe>\n\n<!--more-->\n\n> [!TIP]\n> [在线预览](https://lruihao.github.io/mmt-webfont/)\n\n## 预览\n\n<div id=\"app-mmt\" v-cloak>\n  <p class=\"live-content\">{{ message || '「沐目之，湘也」\\n 从下笔到停笔，从开始到结束，沐目体见证了我们稚嫩到成熟。\\n故事的开头往往极具温柔，但结局常常不尽人意。\\n那些忘不掉的人和事，岁月都已替我轻描淡写。' }}</p>\n  <textarea class=\"live-textarea\" v-model=\"message\" placeholder=\"请输入文字 ...\"></textarea>\n</div>\n\n---\n\n{{< mmt-netease \"2280569152\" true >}}\n\n---\n\n<details close>\n  <summary>点击展开更多</summary>\n\n{{< music server=\"tencent\" type=\"playlist\" id=\"8305844774\" loop=\"all\" list-folded=\"true\">}}\n\n<div class=\"preview-lyric\">\n\n|   《富士山下》   |   《爱情转移》   |\n| :--------------: | :--------------: |\n| 前尘硬化像石头  | 阳光在身上流转  |\n| 随缘地抛下便逃走 | 等所有业障被原谅 |\n|    我绝不罕有    |    爱情不停站    |\n| 往街里绕过一周  | 想开往地老天荒  |\n|    我便化乌有    |    需要多勇敢    |\n|    你还嫌不够    |    你不要失望    |\n| 我把这陈年风褛  | 荡气回肠是为了  |\n|    送赠你解咒    |    最美的平凡    |\n\n</div>\n\n![word](images/word1.png)\n\n<div class=\"preview-images\">\n\n![preview](images/preview.png)\n![mobile setting](images/setting.png)\n![wechat](images/wechat.png)\n\n</div>\n\n</details>\n\n## 下载\n\n{{< admonition warning \"警告\" >}}\n[沐目体](https://github.com/Lruihao/MMT/releases) _仅用于个人非商用！_\n{{< /admonition >}}\n\n{{< script >}}\ndocument.addEventListener('DOMContentLoaded', () => {\n  new Vue({ el: '#app-mmt', data: { message: '' }});\n});\n{{< /script >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/font-mmt/  \n\n"
  },
  {
    "path": "projects/font-mmt/mmt.css",
    "content": ".preview-images p {\n  display: flex;\n  width: 100%;\n  justify-content: space-around;\n}\n.preview-images img {\n  display: inline-block;\n  width: 30%;\n}\n\n@font-face {\n  font-family: MMT;\n  src: url('/fonts/MMT-Regular.ttf');\n  font-display: swap;\n}\n\n.preview-lyric {\n  font-family: MMT, '沐目体';\n  font-size: 1.5rem;\n}\n\n.live-textarea {\n  width: calc(100% - 1rem);\n  height: 6rem;\n  padding: 0.5rem;\n  resize: vertical;\n  border: 1px solid #f5f5f5;\n  margin: 0 auto;\n  display: block;\n  border-radius: 0.75rem;\n}\n.live-content {\n  white-space: pre-line;\n  font-family: MMT, '沐目体';\n  font-size: 1.5rem;\n  margin-left: 0.5rem !important;\n  margin-right: 0.5rem !important;\n  margin-bottom: 1rem !important;\n}\n[v-cloak] {\n  display: none;\n}\n"
  },
  {
    "path": "projects/hugo-fixit/action-component-list/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Generate a list of all hugo-fixit theme components. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\"><meta name=keywords content='github-actions'><meta itemprop=name content=\"Generate a list of all hugo-fixit theme components.\"><meta itemprop=description content=\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\"><meta itemprop=datePublished content=\"2025-01-14T09:10:09+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:13:04+00:00\"><meta itemprop=wordCount content=\"649\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub Actions\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Generate a list of all hugo-fixit theme components.\"><meta property=\"og:description\" content=\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-01-14T09:10:09+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:13:04+00:00\"><meta property=\"article:tag\" content=\"GitHub Actions\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Generate a list of all hugo-fixit theme components.\"><meta name=twitter:description content=\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/action-component-list/ title=\"Generate a list of all hugo-fixit theme components. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ title=\"A Hugo theme component with asciinema-embed shortcode.\"><link rel=next type=text/html href=https://lruihao.cn/posts/flexbox/ title=\"CSS Flexbox 布局指南\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/action-component-list/index.md title=\"Generate a list of all hugo-fixit theme components. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Generate a list of all hugo-fixit theme components.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/action-component-list\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"github-actions\",\"wordcount\":649,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/action-component-list\\/\",\"datePublished\":\"2025-01-14T09:10:09+00:00\",\"dateModified\":\"2026-05-06T03:13:04+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/action-component-list/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/action-component-list</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><span class=active title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</span></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/shortcode-asciinema/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-asciinema><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>44/51</span><a href=/projects/lruihao/vercel-proxy/ class=collection-nav-item rel=next title=Lruihao/vercel-proxy><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Generate a list of all hugo-fixit theme components.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/action-component-list target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/action-component-list<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-01-14 09:10:09\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-01-14>2025-01-14</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:13:04\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"649 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Generate a list of all hugo-fixit theme components.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#how-to-use>How to use</a></li><li><a href=#inputs>Inputs</a></li><li><a href=#outputs>Outputs</a></li><li><a href=#example>Example</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=action-component-list--fixit data-decreased><span>action-component-list | FixIt</span>\n<a href=#action-component-list--fixit class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/super-linter/super-linter target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/badge_14033786788092036044.svg alt=\"GitHub Super-Linter\"></a>\n<img loading=lazy src=/images/remote/badge_12862037500024650352.svg alt=CI>\n<a href=https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/badge_17453161718063467893.svg alt=\"Check dist/\"></a>\n<a href=https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/badge_9366593515159455299.svg alt=CodeQL></a></p><p>This is a GitHub Action to generate a list of all hugo-fixit theme components.</p><h2 class=heading-element id=how-to-use><span>How to use</span>\n<a href=#how-to-use class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>You can reference different stable versions of this action. For more\ninformation, see\n<a href=https://github.com/actions/toolkit/blob/master/docs/action-versioning.md target=_blank rel=\"external nofollow noopener noreferrer\">Versioning<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\nin the GitHub Actions toolkit.</p><p>To include the action in a workflow in another repository, you can use the\n<code>uses</code> syntax with the <code>@</code> symbol to reference a specific branch, tag, or commit\nhash.</p><ol><li><p>Star this repository 😉</p></li><li><p>Go to your repository</p></li><li><p>Add the following section to your <strong>README.md</strong> file, you can give whatever\ntitle you want. Just make sure that you use\n<code>&lt;!-- HUGO_FIXIT_COMPONENTS:START -->&lt;!-- HUGO_FIXIT_COMPONENTS:END --></code> in\nyour readme. The workflow will replace this comment with the actual blog post\nlist:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl><span class=gh># Hugo FixIt Components\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>&lt;!-- HUGO_FIXIT_COMPONENTS:START --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- HUGO_FIXIT_COMPONENTS:END --&gt;</span></span></code></pre></td></tr></table></div></div></div></li><li><p>Create a folder named <code>.github</code> and create a <code>workflows</code> folder inside it, if\nit doesn&rsquo;t exist.</p></li><li><p>Create a new file named <code>fixit-component-list.yml</code> with the following\ncontents inside the workflows folder:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Generate hugo-fixit component list</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>on</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>schedule</span><span class=p>:</span><span class=w> </span><span class=c># Run workflow automatically</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span>- <span class=nt>cron</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;0 0 * * *&#39;</span><span class=w> </span><span class=c># Runs every day at 00:00 UTC</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>workflow_dispatch</span><span class=p>:</span><span class=w> </span><span class=c># Run workflow manually (without waiting for the cron to be called), through the GitHub Actions Workflow page directly</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>permissions</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>contents</span><span class=p>:</span><span class=w> </span><span class=l>write</span><span class=w> </span><span class=c># To write the generated contents to the readme</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>jobs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>generate-component-list</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>name</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span><span class=l>Update this repo&#39;s README with the list of hugo-fixit theme components</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>runs-on</span><span class=p>:</span><span class=w> </span><span class=l>ubuntu-latest</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>steps</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Checkout</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>actions/checkout@v6</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Generate hugo-fixit component list</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>id</span><span class=p>:</span><span class=w> </span><span class=l>test-action</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>hugo-fixit/action-component-list@v1</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>env</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>GITHUB_TOKEN</span><span class=p>:</span><span class=w> </span><span class=l>${{ secrets.GITHUB_TOKEN }}</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>comment_tag_name</span><span class=p>:</span><span class=w> </span><span class=l>HUGO_FIXIT_COMPONENTS</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>template</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;- [{$repo.name}]({$repo.html_url}): {$repo.description}&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Print Output</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>id</span><span class=p>:</span><span class=w> </span><span class=l>output</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=l>echo &#34;${{ steps.test-action.outputs.repos }}&#34;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Create Pull Request</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>peter-evans/create-pull-request@v8</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>title</span><span class=p>:</span><span class=w> </span><span class=l>Update hugo-fixit component list</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>commit-message: &#39;docs(readme)</span><span class=p>:</span><span class=w> </span><span class=l>update hugo-fixit component list&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>body</span><span class=p>:</span><span class=w> </span><span class=l>This PR updates the hugo-fixit component list in the README.</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>base</span><span class=p>:</span><span class=w> </span><span class=l>main</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>branch</span><span class=p>:</span><span class=w> </span><span class=l>update-component-list</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>labels</span><span class=p>:</span><span class=w> </span><span class=l>documentation</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=c># reviewers: Lruihao</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></li><li><p>Go to repository settings, Click on Actions > General. Update the &ldquo;Workflow\npermissions&rdquo; to &ldquo;Read and write permissions&rdquo;. Click on save.</p></li><li><p>Wait for it to run automatically, or you can also trigger it manually to see\nthe result instantly.</p></li></ol><h2 class=heading-element id=inputs><span>Inputs</span>\n<a href=#inputs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>Name</th><th style=text-align:left>Description</th><th style=text-align:left>Default</th></tr></thead><tbody><tr><td style=text-align:left><code>comment_tag_name</code></td><td style=text-align:left>The tag name to look for in the readme file</td><td style=text-align:left><code>HUGO_FIXIT_COMPONENTS</code></td></tr><tr><td style=text-align:left><code>readme_path</code></td><td style=text-align:left>Comma separated paths of the readme files you want to update</td><td style=text-align:left><code>./README.md</code></td></tr><tr><td style=text-align:left><code>exclude_repos</code></td><td style=text-align:left>Comma separated list of repos to exclude from the list</td><td style=text-align:left></td></tr><tr><td style=text-align:left><code>template</code></td><td style=text-align:left>Template to use while creating the list of hugo-fixit theme components. It can contain {$repo.name} etc. as variables</td><td style=text-align:left><code>- [{$repo.name}]({$repo.html_url}): {$repo.description}</code></td></tr></tbody></table></div><h2 class=heading-element id=outputs><span>Outputs</span>\n<a href=#outputs class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>Name</th><th style=text-align:left>Description</th></tr></thead><tbody><tr><td style=text-align:left><code>repos</code></td><td style=text-align:left>The list of hugo-fixit theme components repos that were updated.</td></tr></tbody></table></div><h2 class=heading-element id=example><span>Example</span>\n<a href=#example class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Insert the following code block in your Markdown file to display the list of\nhugo-fixit components.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-md\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-md data-lang=md><span class=line><span class=cl>The list of hugo-fixit components will be displayed here.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>&lt;!-- HUGO_FIXIT_COMPONENTS:START --&gt;\n</span></span><span class=line><span class=cl>&lt;!-- HUGO_FIXIT_COMPONENTS:END --&gt;</span></span></code></pre></td></tr></table></div></div></div><p>The list of hugo-fixit components will be displayed here.</p><ul><li><a href=https://github.com/hugo-fixit/fixit-bundle target=_blank rel=\"external nofollow noopener noreferrer\">fixit-bundle<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component.</li><li><a href=https://github.com/hugo-fixit/cmpt-flyfish target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-flyfish<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🐟 A canvas implemented animation effect of small fish swimming.</li><li><a href=https://github.com/hugo-fixit/cmpt-mdevtools target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-mdevtools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Mobile devtools component powered by vConsole and eruda.</li><li><a href=https://github.com/hugo-fixit/cmpt-santa-hat target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-santa-hat<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Christmas Easter Egg by JavaScript.</li><li><a href=https://github.com/hugo-fixit/cmpt-translate target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-translate<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🌐 A component for site automatic translation.</li><li><a href=https://github.com/hugo-fixit/component-projects target=_blank rel=\"external nofollow noopener noreferrer\">component-projects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</li><li><a href=https://github.com/hugo-fixit/hugo-atom-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-atom-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Hugo theme component for ATOM feed custom Output Format.</li><li><a href=https://github.com/hugo-fixit/hugo-json-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-json-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Hugo theme component for JSON feed custom Output Format.</li><li><a href=https://github.com/hugo-fixit/shortcode-asciinema target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-asciinema<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with asciinema-embed shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-caniuse target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-caniuse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with caniuse shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-docs-bookmark target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-docs-bookmark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🔖 Embed bookmark of FixIt Docs.</li><li><a href=https://github.com/hugo-fixit/shortcode-missing-translation target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-missing-translation<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with missing-translation shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-mmt-netease target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-mmt-netease<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-rewards target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-rewards<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with reward-log or sponsor-log shortcode.</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/shortcode-asciinema/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-asciinema><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/shortcode-asciinema</span>\n</a><a href=/projects/lruihao/vercel-proxy/ class=collection-nav-item rel=next title=Lruihao/vercel-proxy><span>Lruihao/vercel-proxy</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:13:04\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/action-component-list/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/action-component-list/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/action-component-list/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/action-component-list/ data-title=\"Generate a list of all hugo-fixit theme components.\" data-hashtags=github-actions><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/action-component-list/ data-hashtag=github-actions><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/action-component-list/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/action-component-list/ data-title=\"Generate a list of all hugo-fixit theme components.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/action-component-list/ data-title=\"Generate a list of all hugo-fixit theme components.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/github-actions/ class=post-tag title=\"标签 - GitHub Actions\">GitHub Actions</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/shortcode-asciinema/ class=post-nav-item rel=prev title=hugo-fixit/shortcode-asciinema><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/shortcode-asciinema</a><a href=/posts/flexbox/ class=post-nav-item rel=next title=\"CSS Flexbox 布局指南\">CSS Flexbox 布局指南<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#how-to-use>How to use</a></li><li><a href=#inputs>Inputs</a></li><li><a href=#outputs>Outputs</a></li><li><a href=#example>Example</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/action-component-list/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/action-component-list/index.md",
    "content": "# Generate a list of all hugo-fixit theme components.\n\n# action-component-list | FixIt\n\n[![GitHub Super-Linter](https://github.com/hugo-fixit/action-component-list/actions/workflows/linter.yml/badge.svg)](https://github.com/super-linter/super-linter)\n![CI](https://github.com/hugo-fixit/action-component-list/actions/workflows/ci.yml/badge.svg)\n[![Check dist/](https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml/badge.svg)](https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml)\n[![CodeQL](https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml)\n\nThis is a GitHub Action to generate a list of all hugo-fixit theme components.\n\n## How to use\n\nYou can reference different stable versions of this action. For more\ninformation, see\n[Versioning](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)\nin the GitHub Actions toolkit.\n\nTo include the action in a workflow in another repository, you can use the\n`uses` syntax with the `@` symbol to reference a specific branch, tag, or commit\nhash.\n\n1. Star this repository 😉\n2. Go to your repository\n3. Add the following section to your **README.md** file, you can give whatever\n   title you want. Just make sure that you use\n   `<!-- HUGO_FIXIT_COMPONENTS:START --><!-- HUGO_FIXIT_COMPONENTS:END -->` in\n   your readme. The workflow will replace this comment with the actual blog post\n   list:\n\n   ```markdown\n   # Hugo FixIt Components\n\n   <!-- HUGO_FIXIT_COMPONENTS:START -->\n   <!-- HUGO_FIXIT_COMPONENTS:END -->\n   ```\n\n4. Create a folder named `.github` and create a `workflows` folder inside it, if\n   it doesn't exist.\n5. Create a new file named `fixit-component-list.yml` with the following\n   contents inside the workflows folder:\n\n   ```yaml\n   name: Generate hugo-fixit component list\n   on:\n     schedule: # Run workflow automatically\n       - cron: '0 0 * * *' # Runs every day at 00:00 UTC\n     workflow_dispatch: # Run workflow manually (without waiting for the cron to be called), through the GitHub Actions Workflow page directly\n   permissions:\n     contents: write # To write the generated contents to the readme\n\n   jobs:\n     generate-component-list:\n       name:\n         Update this repo's README with the list of hugo-fixit theme components\n       runs-on: ubuntu-latest\n       steps:\n         - name: Checkout\n           uses: actions/checkout@v6\n         - name: Generate hugo-fixit component list\n           id: test-action\n           uses: hugo-fixit/action-component-list@v1\n           env:\n             GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n           with:\n             comment_tag_name: HUGO_FIXIT_COMPONENTS\n             template: '- [{$repo.name}]({$repo.html_url}): {$repo.description}'\n         - name: Print Output\n           id: output\n           run: echo \"${{ steps.test-action.outputs.repos }}\"\n         - name: Create Pull Request\n           uses: peter-evans/create-pull-request@v8\n           with:\n             title: Update hugo-fixit component list\n             commit-message: 'docs(readme): update hugo-fixit component list'\n             body: This PR updates the hugo-fixit component list in the README.\n             base: main\n             branch: update-component-list\n             labels: documentation\n             # reviewers: Lruihao\n   ```\n\n6. Go to repository settings, Click on Actions > General. Update the \"Workflow\n   permissions\" to \"Read and write permissions\". Click on save.\n7. Wait for it to run automatically, or you can also trigger it manually to see\n   the result instantly.\n\n## Inputs\n\n| Name               | Description                                                                                                           | Default                                                   |\n| :----------------- | :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------- |\n| `comment_tag_name` | The tag name to look for in the readme file                                                                           | `HUGO_FIXIT_COMPONENTS`                                   |\n| `readme_path`      | Comma separated paths of the readme files you want to update                                                          | `./README.md`                                             |\n| `exclude_repos`    | Comma separated list of repos to exclude from the list                                                                |                                                           |\n| `template`         | Template to use while creating the list of hugo-fixit theme components. It can contain {$repo.name} etc. as variables | `- [{$repo.name}]({$repo.html_url}): {$repo.description}` |\n\n## Outputs\n\n| Name    | Description                                                      |\n| :------ | :--------------------------------------------------------------- |\n| `repos` | The list of hugo-fixit theme components repos that were updated. |\n\n## Example\n\nInsert the following code block in your Markdown file to display the list of\nhugo-fixit components.\n\n```md\nThe list of hugo-fixit components will be displayed here.\n\n<!-- HUGO_FIXIT_COMPONENTS:START -->\n<!-- HUGO_FIXIT_COMPONENTS:END -->\n```\n\nThe list of hugo-fixit components will be displayed here.\n\n<!-- FIXIT_COMPONENTS:START -->\n- [fixit-bundle](https://github.com/hugo-fixit/fixit-bundle)\\\n  🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component.\n- [cmpt-flyfish](https://github.com/hugo-fixit/cmpt-flyfish)\\\n  🐟 A canvas implemented animation effect of small fish swimming.\n- [cmpt-mdevtools](https://github.com/hugo-fixit/cmpt-mdevtools)\\\n  Mobile devtools component powered by vConsole and eruda.\n- [cmpt-santa-hat](https://github.com/hugo-fixit/cmpt-santa-hat)\\\n  A Christmas Easter Egg by JavaScript.\n- [cmpt-translate](https://github.com/hugo-fixit/cmpt-translate)\\\n  🌐 A component for site automatic translation.\n- [component-projects](https://github.com/hugo-fixit/component-projects)\\\n  🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\n- [hugo-atom-feed](https://github.com/hugo-fixit/hugo-atom-feed)\\\n  Hugo theme component for ATOM feed custom Output Format.\n- [hugo-json-feed](https://github.com/hugo-fixit/hugo-json-feed)\\\n  Hugo theme component for JSON feed custom Output Format.\n- [shortcode-asciinema](https://github.com/hugo-fixit/shortcode-asciinema)\\\n  A Hugo theme component with asciinema-embed shortcode.\n- [shortcode-caniuse](https://github.com/hugo-fixit/shortcode-caniuse)\\\n  A Hugo theme component with caniuse shortcode.\n- [shortcode-docs-bookmark](https://github.com/hugo-fixit/shortcode-docs-bookmark)\\\n  🔖 Embed bookmark of FixIt Docs.\n- [shortcode-missing-translation](https://github.com/hugo-fixit/shortcode-missing-translation)\\\n  A Hugo theme component with missing-translation shortcode.\n- [shortcode-mmt-netease](https://github.com/hugo-fixit/shortcode-mmt-netease)\\\n  🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\n- [shortcode-rewards](https://github.com/hugo-fixit/shortcode-rewards)\\\n  A Hugo theme component with reward-log or sponsor-log shortcode.\n<!-- FIXIT_COMPONENTS:END -->\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/action-component-list/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/cmpt-flyfish/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🐟 A canvas implemented animation effect of small fish swimming. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\"><meta name=keywords content='canvas,hugo,hugo-fixit,theme-component'><meta itemprop=name content=\"🐟 A canvas implemented animation effect of small fish swimming.\"><meta itemprop=description content=\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\"><meta itemprop=datePublished content=\"2024-11-05T08:23:29+00:00\"><meta itemprop=dateModified content=\"2025-12-27T08:05:18+00:00\"><meta itemprop=wordCount content=\"152\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"canvas,Hugo,hugo-fixit,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🐟 A canvas implemented animation effect of small fish swimming.\"><meta property=\"og:description\" content=\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-11-05T08:23:29+00:00\"><meta property=\"article:modified_time\" content=\"2025-12-27T08:05:18+00:00\"><meta property=\"article:tag\" content=\"canvas\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🐟 A canvas implemented animation effect of small fish swimming.\"><meta name=twitter:description content=\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ title=\"🐟 A canvas implemented animation effect of small fish swimming. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/content-adapters/ title=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><link rel=next type=text/html href=https://lruihao.cn/posts/91db0fa/ title=\"Amazon 如何让服务器享受着持续集群安全？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/index.md title=\"🐟 A canvas implemented animation effect of small fish swimming. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-flyfish\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"canvas, hugo, hugo-fixit, theme-component\",\"wordcount\":152,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-flyfish\\/\",\"datePublished\":\"2024-11-05T08:23:29+00:00\",\"dateModified\":\"2025-12-27T08:05:18+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/cmpt-flyfish/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/cmpt-flyfish</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><span class=active title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</span></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/html-demo/ class=collection-nav-item rel=prev title=Lruihao/html-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>41/51</span><a href=/projects/hugo-fixit/cmpt-translate/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-translate><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🐟 A canvas implemented animation effect of small fish swimming.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/cmpt-flyfish target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/cmpt-flyfish<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-11-05 08:23:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-11-05>2024-11-05</time></span>&nbsp;<span title=\"更新于 2025-12-27 08:05:18\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-12-27>2025-12-27</time></span>&nbsp;<span title=\"152 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🐟 A canvas implemented animation effect of small fish swimming.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-12-27，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=fly-fish data-decreased><span>Fly Fish</span>\n<a href=#fly-fish class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>👉 简体中文说明 | <a href=https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English README<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>一个 canvas 实现的小鱼游动动画效果。</p><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=要求><span>要求</span>\n<a href=#%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>FixIt v0.4.0 或更高版本。</li></ul><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方法与 <a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同。有几种安装方式，请选择一种，例如，通过 Hugo 模块安装：</p><h3 class=heading-element id=作为-hugo-模块安装><span>作为 Hugo 模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/cmpt-flyfish&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在 Hugo 的第一次启动时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=作为-git-子模块安装><span>作为 Git 子模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/cmpt-flyfish.git themes/cmpt-flyfish</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;FixIt&#34;</span><span class=p>,</span> <span class=s2>&#34;cmpt-flyfish&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了通过 FixIt 主题在 <code>layouts/_partials/custom.html</code> 文件中开放的 <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">自定义块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 将 <code>cmpt-flyfish.html</code> 注入到 <code>custom-assets</code> 中，你需要填写以下必要配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl>    <span class=nx>assets</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/cmpt-flyfish.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><p>配置小鱼主题色，并启用动画：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>flyfish</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>enable</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=nx>light</span> <span class=p>=</span> <span class=s2>&#34;rgb(0 119 190 / 10%)&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=nx>dark</span> <span class=p>=</span> <span class=s2>&#34;rgb(255 255 255 / 10%)&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=参考><span>参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/contributing/components/ target=_blank rel=\"external nofollow noopener noreferrer\">开发主题组件 | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/components/dev-component/ target=_blank rel=\"external nofollow noopener noreferrer\">如何开发 Hugo 主题组件 | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/html-demo/ class=collection-nav-item rel=prev title=Lruihao/html-demo><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/html-demo</span>\n</a><a href=/projects/hugo-fixit/cmpt-translate/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-translate><span>hugo-fixit/cmpt-translate</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-12-27 08:05:18\">更新于 2025-12-27&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/cmpt-flyfish/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/cmpt-flyfish/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/cmpt-flyfish/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ data-title=\"🐟 A canvas implemented animation effect of small fish swimming.\" data-hashtags=canvas,hugo,hugo-fixit,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ data-hashtag=canvas><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ data-title=\"🐟 A canvas implemented animation effect of small fish swimming.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ data-title=\"🐟 A canvas implemented animation effect of small fish swimming.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/canvas/ class=post-tag title=\"标签 - canvas\">canvas</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/content-adapters/ class=post-nav-item rel=prev title=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>自动获取 GitHub README 内容添加到 Hugo 文章</a><a href=/posts/91db0fa/ class=post-nav-item rel=next title=\"Amazon Inspector\">Amazon Inspector<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/cmpt-flyfish/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/cmpt-flyfish/index.md",
    "content": "# 🐟 A canvas implemented animation effect of small fish swimming.\n\n# Fly Fish\n\n👉 简体中文说明 | [English README](https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md)\n\n一个 canvas 实现的小鱼游动动画效果。\n\n## Demo\n\n<https://lruihao.cn>\n\n## 要求\n\n- FixIt v0.4.0 或更高版本。\n\n## 安装组件\n\n安装方法与 [安装主题](https://fixit.lruihao.cn/zh-cn/documentation/installation/) 相同。有几种安装方式，请选择一种，例如，通过 Hugo 模块安装：\n\n### 作为 Hugo 模块安装\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/cmpt-flyfish\"\n```\n\n在 Hugo 的第一次启动时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 作为 Git 子模块安装\n\n将 [FixIt](https://github.com/hugo-fixit/FixIt) 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/cmpt-flyfish.git themes/cmpt-flyfish\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\"FixIt\", \"cmpt-flyfish\"]\n```\n\n## 配置\n\n为了通过 FixIt 主题在 `layouts/_partials/custom.html` 文件中开放的 [自定义块](https://fixit.lruihao.cn/references/blocks/) 将 `cmpt-flyfish.html` 注入到 `custom-assets` 中，你需要填写以下必要配置：\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    assets = [ \"inject/cmpt-flyfish.html\" ]\n    # ... other partials\n```\n\n配置小鱼主题色，并启用动画：\n\n```toml\n[params]\n  [params.flyfish]\n    enable = true\n    light = \"rgb(0 119 190 / 10%)\"\n    dark = \"rgb(255 255 255 / 10%)\"\n```\n\n## 参考\n\n- [开发主题组件 | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [如何开发 Hugo 主题组件 | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/cmpt-mdevtools/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Mobile devtools component powered by vConsole and eruda. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\"><meta name=keywords content='eruda,hugo,theme-component,vconsole'><meta itemprop=name content=\"Mobile devtools component powered by vConsole and eruda.\"><meta itemprop=description content=\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\"><meta itemprop=datePublished content=\"2024-08-07T05:49:13+00:00\"><meta itemprop=dateModified content=\"2025-07-04T02:38:28+00:00\"><meta itemprop=wordCount content=\"148\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"eruda,Hugo,theme-component,vconsole\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Mobile devtools component powered by vConsole and eruda.\"><meta property=\"og:description\" content=\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-08-07T05:49:13+00:00\"><meta property=\"article:modified_time\" content=\"2025-07-04T02:38:28+00:00\"><meta property=\"article:tag\" content=\"eruda\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"article:tag\" content=\"vconsole\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Mobile devtools component powered by vConsole and eruda.\"><meta name=twitter:description content=\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ title=\"Mobile devtools component powered by vConsole and eruda. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/css-round/ title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><link rel=next type=text/html href=https://lruihao.cn/reward/ title=赞赏记录><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/index.md title=\"Mobile devtools component powered by vConsole and eruda. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Mobile devtools component powered by vConsole and eruda.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-mdevtools\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"eruda, hugo, theme-component, vconsole\",\"wordcount\":148,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-mdevtools\\/\",\"datePublished\":\"2024-08-07T05:49:13+00:00\",\"dateModified\":\"2025-07-04T02:38:28+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/cmpt-mdevtools/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/cmpt-mdevtools</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><span class=active title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</span></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/shortcode-rewards/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-rewards><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>36/51</span><a href=/projects/hugo-fixit/hugo-json-feed/ class=collection-nav-item rel=next title=hugo-fixit/hugo-json-feed><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Mobile devtools component powered by vConsole and eruda.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/cmpt-mdevtools target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/cmpt-mdevtools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-08-07 05:49:13\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-08-07>2024-08-07</time></span>&nbsp;<span title=\"更新于 2025-07-04 02:38:28\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-07-04>2025-07-04</time></span>&nbsp;<span title=\"148 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Mobile devtools component powered by vConsole and eruda.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#inject-partial>Inject Partial</a></li><li><a href=#references>References</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-07-04，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=cmpt-mdevtools data-decreased><span>cmpt-mdevtools</span>\n<a href=#cmpt-mdevtools class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Mobile devtools component powered by vConsole and eruda.</p><h2 class=heading-element id=requirements><span>Requirements</span>\n<a href=#requirements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> v0.4.0 or later.</li><li><a href=https://github.com/liriliri/eruda target=_blank rel=\"external nofollow noopener noreferrer\">eruda<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Tencent/vConsole target=_blank rel=\"external nofollow noopener noreferrer\">vConsole<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=install-component><span>Install Component</span>\n<a href=#install-component class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The installation method is the same as <a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">installing a theme<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>[module]\n</span></span><span class=line><span class=cl>  [[module.imports]]\n</span></span><span class=line><span class=cl>    path = &#34;github.com/hugo-fixit/FixIt&#34;\n</span></span><span class=line><span class=cl><span class=gi>+ [[module.imports]]\n</span></span></span><span class=line><span class=cl><span class=gi>+   path = &#34;github.com/hugo-fixit/cmpt-mdevtools&#34;\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=configuration><span>Configuration</span>\n<a href=#configuration class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=c># Mobile Devtools config</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>mDevtools</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=nx>enable</span> <span class=p>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>  <span class=c># &#34;eruda&#34;, &#34;vConsole&#34; supported</span>\n</span></span><span class=line><span class=cl>  <span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;eruda&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=inject-partial><span>Inject Partial</span>\n<a href=#inject-partial class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>In order to Inject the partial <code>cmpt-mdevtools.html</code> into the <code>custom-assets</code> through the <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">custom block<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> opened by the FixIt theme in the <code>layouts/_partials/custom.html</code> file, you need to fill in the following necessary configurations:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl>    <span class=nx>head</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/cmpt-mdevtools.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=references><span>References</span>\n<a href=#references class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/contributing/components/ target=_blank rel=\"external nofollow noopener noreferrer\">Develop Theme Components | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/components/dev-component/ target=_blank rel=\"external nofollow noopener noreferrer\">How to Develop a Hugo Theme Component | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/shortcode-rewards/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-rewards><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/shortcode-rewards</span>\n</a><a href=/projects/hugo-fixit/hugo-json-feed/ class=collection-nav-item rel=next title=hugo-fixit/hugo-json-feed><span>hugo-fixit/hugo-json-feed</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-07-04 02:38:28\">更新于 2025-07-04&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/cmpt-mdevtools/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/cmpt-mdevtools/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/cmpt-mdevtools/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ data-title=\"Mobile devtools component powered by vConsole and eruda.\" data-hashtags=eruda,hugo,theme-component,vconsole><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ data-hashtag=eruda><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ data-title=\"Mobile devtools component powered by vConsole and eruda.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ data-title=\"Mobile devtools component powered by vConsole and eruda.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/eruda/ class=post-tag title=\"标签 - eruda\">eruda</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a><a href=/tags/vconsole/ class=post-tag title=\"标签 - vconsole\">vconsole</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/css-round/ class=post-nav-item rel=prev title=\"CSS 四舍五入数值单位\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>CSS 四舍五入数值单位</a><a href=/projects/hugo-fixit/hugo-json-feed/ class=post-nav-item rel=next title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#inject-partial>Inject Partial</a></li><li><a href=#references>References</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/cmpt-mdevtools/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/cmpt-mdevtools/index.md",
    "content": "# Mobile devtools component powered by vConsole and eruda.\n\n# cmpt-mdevtools\n\nMobile devtools component powered by vConsole and eruda.\n\n## Requirements\n\n- [FixIt](https://github.com/hugo-fixit/FixIt) v0.4.0 or later.\n- [eruda](https://github.com/liriliri/eruda)\n- [vConsole](https://github.com/Tencent/vConsole)\n\n## Install Component\n\nThe installation method is the same as [installing a theme](https://fixit.lruihao.cn/documentation/installation/). There are several ways to install, choose one, for example, install through Hugo Modules:\n\n```diff\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n+ [[module.imports]]\n+   path = \"github.com/hugo-fixit/cmpt-mdevtools\"\n```\n\n## Configuration\n\n```toml\n# Mobile Devtools config\n[params.mDevtools]\n  enable = false\n  # \"eruda\", \"vConsole\" supported\n  type = \"eruda\"\n```\n\n## Inject Partial\n\nIn order to Inject the partial `cmpt-mdevtools.html` into the `custom-assets` through the [custom block](https://fixit.lruihao.cn/references/blocks/) opened by the FixIt theme in the `layouts/_partials/custom.html` file, you need to fill in the following necessary configurations:\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    head = [ \"inject/cmpt-mdevtools.html\" ]\n    # ... other partials\n```\n\n## References\n\n- [Develop Theme Components | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [How to Develop a Hugo Theme Component | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/cmpt-santa-hat/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A Christmas Easter Egg by JavaScript. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\"><meta name=keywords content='hugo,hugo-fixit,theme-component'><meta itemprop=name content=\"A Christmas Easter Egg by JavaScript.\"><meta itemprop=description content=\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\"><meta itemprop=datePublished content=\"2025-12-24T03:31:47+00:00\"><meta itemprop=dateModified content=\"2026-05-04T16:54:23+00:00\"><meta itemprop=wordCount content=\"171\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,hugo-fixit,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A Christmas Easter Egg by JavaScript.\"><meta property=\"og:description\" content=\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-12-24T03:31:47+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-04T16:54:23+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A Christmas Easter Egg by JavaScript.\"><meta name=twitter:description content=\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ title=\"A Christmas Easter Egg by JavaScript. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ title=\"Command line tool for generating a changelog from git tags and commit history\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/cell-tooltip/ title=\"一个轻量化 Tooltip 组件。\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/index.md title=\"A Christmas Easter Egg by JavaScript. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A Christmas Easter Egg by JavaScript.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-santa-hat\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, hugo-fixit, theme-component\",\"wordcount\":171,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-santa-hat\\/\",\"datePublished\":\"2025-12-24T03:31:47+00:00\",\"dateModified\":\"2026-05-04T16:54:23+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/cmpt-santa-hat/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/cmpt-santa-hat</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><span class=active title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</span></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/auto-changelog-plus/ class=collection-nav-item rel=prev title=Lruihao/auto-changelog-plus><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>50/51</span><a href=/projects/lruihao/cell-tooltip/ class=collection-nav-item rel=next title=Lruihao/cell-tooltip><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A Christmas Easter Egg by JavaScript.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/cmpt-santa-hat target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/cmpt-santa-hat<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-12-24 03:31:47\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-12-24>2025-12-24</time></span>&nbsp;<span title=\"更新于 2026-05-04 16:54:23\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-04>2026-05-04</time></span>&nbsp;<span title=\"171 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A Christmas Easter Egg by JavaScript.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#样式控制>样式控制</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>🎄 Santa Hat | FixIt</h1><div align=center class=ignore><p>一个 JavaScript 实现的圣诞节小彩蛋。</p>简体中文 |\n<a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\">繁體中文</a> |\n<a href=https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md>English</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\">Français</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\">Русский язык</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\">Español</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\">हिन्दी</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\">Deutsch</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\">한국어</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\">日本語</a></div><h2 class=heading-element id=特性><span>特性</span>\n<a href=#%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><img loading=lazy src=https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d alt=santa-hat></p><ul><li>🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰</li><li>🎯 自动检测当前日期，无需手动开关</li><li>💫 轻量级实现，不影响网站性能</li></ul><h2 class=heading-element id=要求><span>要求</span>\n<a href=#%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>FixIt v0.4.0 或更高版本。</li></ul><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方式与 <a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。</p><h3 class=heading-element id=作为-hugo-模块安装><span>作为 Hugo 模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/cmpt-santa-hat&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在 Hugo 的第一次启动时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=作为-git-子模块安装><span>作为 Git 子模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/cmpt-santa-hat.git themes/cmpt-santa-hat</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;FixIt&#34;</span><span class=p>,</span> <span class=s2>&#34;cmpt-santa-hat&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了通过 FixIt 主题在 <code>layouts/_partials/custom.html</code> 文件中开放的 <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">自定义块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 将 <code>santa-hat.fixit.html</code> 注入到 <code>custom-assets</code> 中，你需要填写以下必要配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl><span class=nx>assets</span> <span class=p>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;inject/santa-hat.fixit.html&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=样式控制><span>样式控制</span>\n<a href=#%e6%a0%b7%e5%bc%8f%e6%8e%a7%e5%88%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Logo 尺寸推荐：32x32 像素。</li><li>CSS 变量：<ul><li><code>--fi-santa-hat-offset</code>：控制圣诞帽相对于 Logo 的平移偏移，默认值 <code>8px 2px</code>。</li><li><code>--fi-santa-hat-shadow</code>：控制帽子阴影的 RGB 值，默认值 <code>0, 0, 0</code>，暗色模式下会自动切换为 <code>255, 255, 255</code>。</li></ul></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/auto-changelog-plus/ class=collection-nav-item rel=prev title=Lruihao/auto-changelog-plus><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/auto-changelog-plus</span>\n</a><a href=/projects/lruihao/cell-tooltip/ class=collection-nav-item rel=next title=Lruihao/cell-tooltip><span>Lruihao/cell-tooltip</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-04 16:54:23\">更新于 2026-05-04&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/cmpt-santa-hat/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/cmpt-santa-hat/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/cmpt-santa-hat/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ data-title=\"A Christmas Easter Egg by JavaScript.\" data-hashtags=hugo,hugo-fixit,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ data-title=\"A Christmas Easter Egg by JavaScript.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ data-title=\"A Christmas Easter Egg by JavaScript.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/auto-changelog-plus/ class=post-nav-item rel=prev title=Lruihao/auto-changelog-plus><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/auto-changelog-plus</a><a href=/projects/lruihao/cell-tooltip/ class=post-nav-item rel=next title=Lruihao/cell-tooltip>Lruihao/cell-tooltip<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#样式控制>样式控制</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/cmpt-santa-hat/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/cmpt-santa-hat/index.md",
    "content": "# A Christmas Easter Egg by JavaScript.\n\n<!-- markdownlint-disable-file MD033 MD041 -->\n<h1 align=\"center\">🎄 Santa Hat | FixIt</h1>\n\n<div align=\"center\" class=\"ignore\">\n  <p>一个 JavaScript 实现的圣诞节小彩蛋。</p>\n  简体中文 |\n  <a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\">繁體中文</a> |\n  <a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\">English</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\">Français</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\">Русский язык</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\">Español</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\">हिन्दी</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\">Deutsch</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\">한국어</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\">日本語</a>\n</div>\n\n## 特性\n\n![santa-hat](https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d)\n\n- 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\n- 🎯 自动检测当前日期，无需手动开关\n- 💫 轻量级实现，不影响网站性能\n\n## 要求\n\n- FixIt v0.4.0 或更高版本。\n\n## 安装组件\n\n安装方式与 [安装主题](https://fixit.lruihao.cn/zh-cn/documentation/installation/) 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\n\n### 作为 Hugo 模块安装\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/FixIt\"\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/cmpt-santa-hat\"\n```\n\n在 Hugo 的第一次启动时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 作为 Git 子模块安装\n\n将 [FixIt](https://github.com/hugo-fixit/FixIt) 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/cmpt-santa-hat.git themes/cmpt-santa-hat\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\"FixIt\", \"cmpt-santa-hat\"]\n```\n\n## 配置\n\n为了通过 FixIt 主题在 `layouts/_partials/custom.html` 文件中开放的 [自定义块](https://fixit.lruihao.cn/references/blocks/) 将 `santa-hat.fixit.html` 注入到 `custom-assets` 中，你需要填写以下必要配置：\n\n```toml\n[params]\n\n[params.customPartials]\n# ... other partials\nassets = [\n  \"inject/santa-hat.fixit.html\",\n]\n# ... other partials\n```\n\n## 样式控制\n\n- Logo 尺寸推荐：32x32 像素。\n- CSS 变量：\n  - `--fi-santa-hat-offset`：控制圣诞帽相对于 Logo 的平移偏移，默认值 `8px 2px`。\n  - `--fi-santa-hat-shadow`：控制帽子阴影的 RGB 值，默认值 `0, 0, 0`，暗色模式下会自动切换为 `255, 255, 255`。\n\n<!-- \n## 参考\n\n- [开发主题组件 | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [如何开发 Hugo 主题组件 | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n-->\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/cmpt-translate/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🌐 A component for site automatic translation. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\"><meta name=keywords content='hugo,hugo-fixit,i18n,theme-component,translatejs'><meta itemprop=name content=\"🌐 A component for site automatic translation.\"><meta itemprop=description content=\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\"><meta itemprop=datePublished content=\"2024-12-02T07:29:57+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=wordCount content=\"456\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,hugo-fixit,I18n,theme-component,translatejs\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🌐 A component for site automatic translation.\"><meta property=\"og:description\" content=\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-12-02T07:29:57+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:30+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"I18n\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"article:tag\" content=\"translatejs\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🌐 A component for site automatic translation.\"><meta name=twitter:description content=\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ title=\"🌐 A component for site automatic translation. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/search/ title=搜索><link rel=next type=text/html href=https://lruihao.cn/posts/css-viewport/ title=\"震惊！CSS 竟然能获取视口尺寸？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/index.md title=\"🌐 A component for site automatic translation. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🌐 A component for site automatic translation.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-translate\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, hugo-fixit, i18n, theme-component, translatejs\",\"wordcount\":456,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/cmpt-translate\\/\",\"datePublished\":\"2024-12-02T07:29:57+00:00\",\"dateModified\":\"2026-05-06T03:02:30+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/cmpt-translate/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/cmpt-translate</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><span class=active title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</span></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/cmpt-flyfish/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-flyfish><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>42/51</span><a href=/projects/hugo-fixit/shortcode-asciinema/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-asciinema><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🌐 A component for site automatic translation.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/cmpt-translate target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/cmpt-translate<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=\"https://fixit.lruihao.cn?lang=chinese_traditional\" target=_blank rel=\"external nofollow noopener noreferrer\">https://fixit.lruihao.cn?lang=chinese_traditional<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-12-02 07:29:57\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-12-02>2024-12-02</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"456 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🌐 A component for site automatic translation.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#front-matter>Front Matter</a></li><li><a href=#自定义翻译术语>自定义翻译术语</a></li><li><a href=#企业级翻译通道>企业级翻译通道</a><ul><li><a href=#赞助费用>赞助费用</a></li><li><a href=#赞助方式>赞助方式</a></li></ul></li><li><a href=#致谢>致谢</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>Auto Translate | FixIt</h1><p><img loading=lazy src=/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif alt=auto-translate height=293 width=797></p><div align=center class=ignore><p>一个基于 <a href=https://github.com/xnx3/translate>translate.js</a> 实现网站自动翻译的组件。</p>简体中文 |\n<a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\">繁體中文</a> |\n<a href=https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md>English</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\">Français</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\">Русский язык</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\">Español</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\">हिन्दी</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\">Deutsch</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\">한국어</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\">日本語</a></div><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。</p><ul><li>多语言 Hugo 站点：<a href=https://fixit.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">fixit.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>单语言 Hugo 站点：<a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>在网站右上角切换配置的翻译语言，或者在 URL 中添加 <code>?lang=</code> 参数指定任意<a href=https://api.translate.zvo.cn/language.json target=_blank rel=\"external nofollow noopener noreferrer\">支持的翻译语言<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。例如：<code>?lang=korean</code>。</p><h2 class=heading-element id=特性><span>特性</span>\n<a href=#%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>每日翻译字符 <strong>200 万</strong>！<br><em>无语言配置文件、无 API Key、对 SEO 友好！</em></p></blockquote><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持整页自动翻译</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持指定翻译语言</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持可选翻译服务</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持忽略翻译元素</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持忽略选择器</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持忽略关键词翻译</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持检测本地语言</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持自定义翻译术语</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持 CDN</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持<a href=#enterprise>企业级翻译通道</a> *</li></ul><h2 class=heading-element id=要求><span>要求</span>\n<a href=#%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>Hugo v0.156.0 或更高版本。</li><li>FixIt v0.4.5 或更高版本。</li></ul><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方式与 <a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。</p><h3 class=heading-element id=作为-hugo-模块安装><span>作为 Hugo 模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/cmpt-translate&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在 Hugo 的第一次启动时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=作为-git-子模块安装><span>作为 Git 子模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/cmpt-translate.git themes/cmpt-translate</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;FixIt&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;cmpt-translate&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了通过 FixIt 主题开放的 <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">自定义块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 将 <code>cmpt-translate.html</code> 注入到 <code>custom-assets</code> 中，你需要填写以下必要配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl><span class=nx>menuDesktop</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/translate-menu-desktop.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>menuMobile</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/translate-menu-mobile.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>assets</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/cmpt-translate.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><p>另外，你还可以通过以下配置来自定义翻译的语言：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>languages</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>languages</span><span class=p>.</span><span class=nx>zh-cn</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>languageCode</span> <span class=p>=</span> <span class=s2>&#34;zh-CN&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>languageName</span> <span class=p>=</span> <span class=s2>&#34;简体中文&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>autoTranslate</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>enable</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl><span class=nx>service</span> <span class=p>=</span> <span class=s1>&#39;client.edge&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>languages</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=nx>ignoreID</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=nx>ignoreClass</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=nx>ignoreTag</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl><span class=nx>detectLocalLanguage</span> <span class=p>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl><span class=nx>cdn</span> <span class=p>=</span> <span class=s2>&#34;&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>enterprise</span> <span class=p>=</span> <span class=kc>false</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><ul><li><code>enable</code>：是否启用自动翻译。</li><li><code>service</code>：翻译服务提供商，可选值为 <code>client.edge</code> 和 <code>translate.service</code>，详见：<a href=https://translate.zvo.cn/43086.html target=_blank rel=\"external nofollow noopener noreferrer\">翻译服务提供商<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li><li><code>languages</code>：要翻译到的语言 ID 列表，例如 <code>[\"english\", \"chinese_simplified\", \"chinese_traditional\", ...]</code>，详见：<a href=https://api.translate.zvo.cn/language.json target=_blank rel=\"external nofollow noopener noreferrer\">完整语言列表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li><li><code>ignoreID</code>：需要忽略翻译的元素 ID，例如 <code>[\"comment\", ...]</code>。</li><li><code>ignoreClass</code>：需要忽略翻译的类名，例如 <code>[\"post-category\", ...]</code>。</li><li><code>ignoreTag</code>：需要忽略翻译的标签，例如 <code>[\"title\", ...]</code>。</li><li><code>ignoreText</code>：需要忽略翻译的文本，例如 <code>[\"FixIt\", \"Lruihao\", ...]</code>。</li><li><code>detectLocalLanguage</code>：是否检测本地语言。</li><li><code>cdn</code>：translate.js 的 CDN，例如 <code>https://cdn.jsdelivr.net/npm/i18n-jsautotranslate@latest</code>。</li><li><code>enterprise</code>：是否启用<a href=#enterprise>企业级翻译通道</a>。</li></ul><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>为了避免翻译语言获取失败，即使你的站点本身是单语言的，也需要配置 <code>languageCode</code> 和 <code>languageName</code>，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>languages</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>languages</span><span class=p>.</span><span class=nx>zh-cn</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>languageCode</span> <span class=p>=</span> <span class=s2>&#34;zh-CN&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>languageName</span> <span class=p>=</span> <span class=s2>&#34;简体中文&#34;</span></span></span></code></pre></td></tr></table></div></div></div></div><h2 class=heading-element id=front-matter><span>Front Matter</span>\n<a href=#front-matter class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>autoTranslate</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>local</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>fromLanguages</span><span class=p>:</span><span class=w> </span><span class=p>[]</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>onlyLocalLang</span><span class=p>:</span><span class=w> </span><span class=kc>false</span></span></span></code></pre></td></tr></table></div></div></div><ul><li><p><code>local</code>: <code>String</code> 用于指定当前页面的本地语言，例如 <code>local: english</code>。</p><p>默认本地语言同 Hugo 站点配置相同，如果某个页面实际语言与站点配置不同，可以通过 <code>local</code> 参数指定。</p></li><li><p><code>fromLanguages</code>: <code>Array</code> 类型，用于指定当前页面内容中出现的语种是否需要翻译。</p><p>例如：网页本身是中文，但是内容中还有其他语言，你可以指定需要翻译的语种，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>fromLanguages</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span>- <span class=l>chinese_simplified</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span>- <span class=l>chinese_traditional</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p><code>onlyLocalLang</code>: <code>Boolean</code> 类型，用于指定是否只翻译当前页面本地语言，默认为 <code>false</code>。</p><p>例如：网页本身是中文，但是内容中其他语言的摘要引用，设置 <code>onlyLocalLang: true</code> 可以只翻译中文。</p></li></ul><h2 class=heading-element id=自定义翻译术语><span>自定义翻译术语</span>\n<a href=#%e8%87%aa%e5%ae%9a%e4%b9%89%e7%bf%bb%e8%af%91%e6%9c%af%e8%af%ad class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在你的项目目录 <code>data</code> 文件夹下创建 <code>nomenclature.yml</code> 文件，然后添加自定义翻译术语，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl>- <span class=nt>from</span><span class=p>:</span><span class=w> </span><span class=l>english</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>to</span><span class=p>:</span><span class=w> </span><span class=l>chinese_simplified</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>properties</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>Hello</span><span class=p>:</span><span class=w> </span><span class=l>你好</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>World</span><span class=p>:</span><span class=w> </span><span class=l>世界</span><span class=w>\n</span></span></span><span class=line><span class=cl>- <span class=nt>from</span><span class=p>:</span><span class=w> </span><span class=l>english</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>to</span><span class=p>:</span><span class=w> </span><span class=l>french</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>properties</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>Hello</span><span class=p>:</span><span class=w> </span><span class=l>Bonjour</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>World</span><span class=p>:</span><span class=w> </span><span class=l>Monde</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=企业级翻译通道><span>企业级翻译通道 <a id=enterprise></a></span><a href=#%e4%bc%81%e4%b8%9a%e7%ba%a7%e7%bf%bb%e8%af%91%e9%80%9a%e9%81%93 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>企业级稳定翻译通道，仅针对<strong>付费用户</strong>开放。<br><strong>体验额度</strong>：每天有 5 万字符的体验额度，超出部分将不再翻译！</p></blockquote><p>在 FixIt 里启用企业级翻译通道，设置 <code>params.autoTranslate.enterprise</code> 为 <code>true</code> 即可，<a href=https://translate.zvo.cn/4087.html target=_blank rel=\"external nofollow noopener noreferrer\">企业级翻译通道<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>相对于普通翻译通道有以下优势：</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>服务</th><th style=text-align:left>开源翻译通道</th><th style=text-align:left>企业级翻译通道</th></tr></thead><tbody><tr><td style=text-align:left>服务端缓存层数</td><td style=text-align:left>1 层 (文件式缓存)</td><td style=text-align:left>1 层 (内存 + 文件式缓存)</td></tr><tr><td style=text-align:left>翻译响应速度</td><td style=text-align:left>1.5~5 秒</td><td style=text-align:left>0.8~1.5 秒</td></tr><tr><td style=text-align:left>翻译服务器</td><td style=text-align:left>1 台</td><td style=text-align:left>>=3 台</td></tr><tr><td style=text-align:left>网络节点</td><td style=text-align:left>2 个</td><td style=text-align:left>>=4 个</td></tr><tr><td style=text-align:left>翻译通道</td><td style=text-align:left>手动设置</td><td style=text-align:left>自动匹配最优</td></tr><tr><td style=text-align:left>国内缓存节点</td><td style=text-align:left>无</td><td style=text-align:left>有</td></tr><tr><td style=text-align:left>每日翻译字符</td><td style=text-align:left>200 万</td><td style=text-align:left>5000 万</td></tr></tbody></table></div><h3 class=heading-element id=赞助费用><span>赞助费用</span>\n<a href=#%e8%b5%9e%e5%8a%a9%e8%b4%b9%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>考虑到 FixIt 生态受众群体大多为个人用户，因此我（<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">@Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>）以<strong>个人名义</strong>拿出赞助收入进行补贴。</p><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p><strong>FixIt 项目补贴价</strong>：<strong>¥10</strong> <del><em>¥50</em></del> / 域名 / 月<br><em>到期自动禁用，需要重新赞助续费！</em></p></div><p>符合以下性质的可以免费联系我开通企业级翻译通道：</p><ul><li><a href=https://github.com/xnx3/translate target=_blank rel=\"external nofollow noopener noreferrer\">translate.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 及相关生态产品的开发者</li><li><a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 及相关生态产品的开发者</li></ul><h3 class=heading-element id=赞助方式><span>赞助方式</span>\n<a href=#%e8%b5%9e%e5%8a%a9%e6%96%b9%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://lruihao.cn/images/wechatpay.jpg target=_blank rel=\"external nofollow noopener noreferrer\">微信支付<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/images/alipay.jpg target=_blank rel=\"external nofollow noopener noreferrer\">支付宝<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>选择赞助金额，然后在留言中备注 <code>AutoTranslate: 你的域名</code> 即可。</p><p>通过以下方式联系作者：</p><ul><li>邮箱：<code>1024#lruihao.cn</code> (将 <code>#</code> 替换为 <code>@</code>)</li><li>微信：<a href=https://lruihao.cn/images/qr-wx-mp_s.webp target=_blank rel=\"external nofollow noopener noreferrer\">关注公众号回复“Cell”获取作者微信<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=致谢><span>致谢</span>\n<a href=#%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/xnx3/translate target=_blank rel=\"external nofollow noopener noreferrer\">translate.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 提供技术支持和赞助<a href=https://translate.zvo.cn/4087.html target=_blank rel=\"external nofollow noopener noreferrer\">企业级翻译通道<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/cmpt-flyfish/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-flyfish><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/cmpt-flyfish</span>\n</a><a href=/projects/hugo-fixit/shortcode-asciinema/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-asciinema><span>hugo-fixit/shortcode-asciinema</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:30\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/cmpt-translate/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/cmpt-translate/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/cmpt-translate/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ data-title=\"🌐 A component for site automatic translation.\" data-hashtags=hugo,hugo-fixit,i18n,theme-component,translatejs><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ data-title=\"🌐 A component for site automatic translation.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ data-title=\"🌐 A component for site automatic translation.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/i18n/ class=post-tag title=\"标签 - I18n\">I18n</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a><a href=/tags/translatejs/ class=post-tag title=\"标签 - translatejs\">translatejs</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/91db0fa/ class=post-nav-item rel=prev title=\"Amazon Inspector\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Amazon Inspector</a><a href=/posts/css-viewport/ class=post-nav-item rel=next title=\"震惊！CSS 竟然能获取视口尺寸？\">震惊！CSS 竟然能获取视口尺寸？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#front-matter>Front Matter</a></li><li><a href=#自定义翻译术语>自定义翻译术语</a></li><li><a href=#企业级翻译通道>企业级翻译通道</a><ul><li><a href=#赞助费用>赞助费用</a></li><li><a href=#赞助方式>赞助方式</a></li></ul></li><li><a href=#致谢>致谢</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/cmpt-translate/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/cmpt-translate/index.md",
    "content": "# 🌐 A component for site automatic translation.\n\n<!-- markdownlint-disable-file MD033 MD041 -->\n<h1 align=\"center\">Auto Translate | FixIt</h1>\n\n![auto-translate](https://github.com/user-attachments/assets/10ab49bb-973f-4630-9a79-9639783bab06)\n\n<div align=\"center\" class=\"ignore\">\n  <p>一个基于 <a href=\"https://github.com/xnx3/translate\">translate.js</a> 实现网站自动翻译的组件。</p>\n  简体中文 |\n  <a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\">繁體中文</a> |\n  <a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\">English</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\">Français</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\">Русский язык</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\">Español</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\">हिन्दी</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\">Deutsch</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\">한국어</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\">日本語</a>\n</div>\n\n## Demo\n\n无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\n\n- 多语言 Hugo 站点：[fixit.lruihao.cn](https://fixit.lruihao.cn)\n- 单语言 Hugo 站点：[lruihao.cn](https://lruihao.cn)\n\n在网站右上角切换配置的翻译语言，或者在 URL 中添加 `?lang=` 参数指定任意[支持的翻译语言](https://api.translate.zvo.cn/language.json)。例如：`?lang=korean`。\n\n## 特性\n\n> 每日翻译字符 **200 万**！\\\n> _无语言配置文件、无 API Key、对 SEO 友好！_\n\n- [x] 支持整页自动翻译\n- [x] 支持指定翻译语言\n- [x] 支持可选翻译服务\n- [x] 支持忽略翻译元素\n- [x] 支持忽略选择器\n- [x] 支持忽略关键词翻译\n- [x] 支持检测本地语言\n- [x] 支持自定义翻译术语\n- [x] 支持 CDN\n- [x] 支持[企业级翻译通道](#enterprise) *\n\n## 要求\n\n- Hugo v0.156.0 或更高版本。\n- FixIt v0.4.5 或更高版本。\n\n## 安装组件\n\n安装方式与 [安装主题](https://fixit.lruihao.cn/zh-cn/documentation/installation/) 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\n\n### 作为 Hugo 模块安装\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/FixIt\"\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/cmpt-translate\"\n```\n\n在 Hugo 的第一次启动时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 作为 Git 子模块安装\n\n将 [FixIt](https://github.com/hugo-fixit) 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/cmpt-translate.git themes/cmpt-translate\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\n  \"FixIt\",\n  \"cmpt-translate\"\n]\n```\n\n## 配置\n\n为了通过 FixIt 主题开放的 [自定义块](https://fixit.lruihao.cn/references/blocks/) 将 `cmpt-translate.html` 注入到 `custom-assets` 中，你需要填写以下必要配置：\n\n```toml\n[params]\n\n[params.customPartials]\n# ... other partials\nmenuDesktop = [ \"inject/translate-menu-desktop.html\" ]\nmenuMobile = [ \"inject/translate-menu-mobile.html\" ]\nassets = [ \"inject/cmpt-translate.html\" ]\n# ... other partials\n```\n\n另外，你还可以通过以下配置来自定义翻译的语言：\n\n```toml\n[languages]\n\n[languages.zh-cn]\nlanguageCode = \"zh-CN\"\nlanguageName = \"简体中文\"\n\n[params]\n\n[params.autoTranslate]\nenable = true\nservice = 'client.edge'\nlanguages = []\nignoreID = []\nignoreClass = []\nignoreTag = []\ndetectLocalLanguage = false\ncdn = \"\"\nenterprise = false\n```\n\n- `enable`：是否启用自动翻译。\n- `service`：翻译服务提供商，可选值为 `client.edge` 和 `translate.service`，详见：[翻译服务提供商](https://translate.zvo.cn/43086.html)。\n- `languages`：要翻译到的语言 ID 列表，例如 `[\"english\", \"chinese_simplified\", \"chinese_traditional\", ...]`，详见：[完整语言列表](https://api.translate.zvo.cn/language.json)。\n- `ignoreID`：需要忽略翻译的元素 ID，例如 `[\"comment\", ...]`。\n- `ignoreClass`：需要忽略翻译的类名，例如 `[\"post-category\", ...]`。\n- `ignoreTag`：需要忽略翻译的标签，例如 `[\"title\", ...]`。\n- `ignoreText`：需要忽略翻译的文本，例如 `[\"FixIt\", \"Lruihao\", ...]`。\n- `detectLocalLanguage`：是否检测本地语言。\n- `cdn`：translate.js 的 CDN，例如 `https://cdn.jsdelivr.net/npm/i18n-jsautotranslate@latest`。\n- `enterprise`：是否启用[企业级翻译通道](#enterprise)。\n\n> [!NOTE]\n> 为了避免翻译语言获取失败，即使你的站点本身是单语言的，也需要配置 `languageCode` 和 `languageName`，例如：\n>\n> ```toml\n> [languages]\n>\n> [languages.zh-cn]\n> languageCode = \"zh-CN\"\n> languageName = \"简体中文\"\n> ```\n\n## Front Matter\n\n```yaml\nautoTranslate:\n  local: ''\n  fromLanguages: []\n  onlyLocalLang: false\n```\n\n- `local`: `String` 用于指定当前页面的本地语言，例如 `local: english`。\n\n    默认本地语言同 Hugo 站点配置相同，如果某个页面实际语言与站点配置不同，可以通过 `local` 参数指定。\n\n- `fromLanguages`: `Array` 类型，用于指定当前页面内容中出现的语种是否需要翻译。\n\n    例如：网页本身是中文，但是内容中还有其他语言，你可以指定需要翻译的语种，例如：\n\n    ```yaml\n    fromLanguages:\n      - chinese_simplified\n      - chinese_traditional\n    ```\n\n- `onlyLocalLang`: `Boolean` 类型，用于指定是否只翻译当前页面本地语言，默认为 `false`。\n\n    例如：网页本身是中文，但是内容中其他语言的摘要引用，设置 `onlyLocalLang: true` 可以只翻译中文。\n\n## 自定义翻译术语\n\n在你的项目目录 `data` 文件夹下创建 `nomenclature.yml` 文件，然后添加自定义翻译术语，例如：\n\n```yaml\n- from: english\n  to: chinese_simplified\n  properties:\n    Hello: 你好\n    World: 世界\n- from: english\n  to: french\n  properties:\n    Hello: Bonjour\n    World: Monde\n```\n\n<!-- markdownlint-disable-next-line MD033 -->\n## 企业级翻译通道 <a id=\"enterprise\"></a>\n\n> 企业级稳定翻译通道，仅针对**付费用户**开放。\\\n> **体验额度**：每天有 5 万字符的体验额度，超出部分将不再翻译！\n\n在 FixIt 里启用企业级翻译通道，设置 `params.autoTranslate.enterprise` 为 `true` 即可，[企业级翻译通道](https://translate.zvo.cn/4087.html)相对于普通翻译通道有以下优势：\n\n| 服务           | 开源翻译通道      | 企业级翻译通道           |\n| :------------- | :---------------- | :----------------------- |\n| 服务端缓存层数 | 1 层 (文件式缓存) | 1 层 (内存 + 文件式缓存) |\n| 翻译响应速度   | 1.5~5 秒          | 0.8~1.5 秒               |\n| 翻译服务器     | 1 台              | >=3 台                   |\n| 网络节点       | 2 个              | >=4 个                   |\n| 翻译通道       | 手动设置          | 自动匹配最优             |\n| 国内缓存节点   | 无                | 有                       |\n| 每日翻译字符   | 200 万            | 5000 万                  |\n\n### 赞助费用\n\n考虑到 FixIt 生态受众群体大多为个人用户，因此我（[@Lruihao](https://github.com/Lruihao)）以**个人名义**拿出赞助收入进行补贴。\n\n> [!TIP]\n> **FixIt 项目补贴价**：**¥10** ~~_¥50_~~ / 域名 / 月\\\n> _到期自动禁用，需要重新赞助续费！_\n\n符合以下性质的可以免费联系我开通企业级翻译通道：\n\n- [translate.js](https://github.com/xnx3/translate) 及相关生态产品的开发者\n- [FixIt](https://github.com/hugo-fixit/FixIt) 及相关生态产品的开发者\n\n### 赞助方式\n\n- [微信支付](https://lruihao.cn/images/wechatpay.jpg)\n- [支付宝](https://lruihao.cn/images/alipay.jpg)\n\n选择赞助金额，然后在留言中备注 `AutoTranslate: 你的域名` 即可。\n\n通过以下方式联系作者：\n\n- 邮箱：`1024#lruihao.cn` (将 `#` 替换为 `@`)\n- 微信：[关注公众号回复“Cell”获取作者微信](https://lruihao.cn/images/qr-wx-mp_s.webp)\n\n## 致谢\n\n[translate.js](https://github.com/xnx3/translate) 提供技术支持和赞助[企业级翻译通道](https://translate.zvo.cn/4087.html)。\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/cmpt-translate/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/component-projects/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta name=keywords content='hugo,hugo-fixit,shortcodes,theme-component'><meta itemprop=name content=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta itemprop=description content=\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta itemprop=datePublished content=\"2024-04-09T21:38:42+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:26+00:00\"><meta itemprop=wordCount content=\"521\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,hugo-fixit,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta property=\"og:description\" content=\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-04-09T21:38:42+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:26+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta name=twitter:description content=\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/component-projects/ title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/vercel-gravatar/ title=\"Gravatar Proxy powered by Vercel.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/component-projects/index.md title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/component-projects\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, hugo-fixit, shortcodes, theme-component\",\"wordcount\":521,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/component-projects\\/\",\"datePublished\":\"2024-04-09T21:38:42+00:00\",\"dateModified\":\"2026-05-06T03:02:26+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/component-projects/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/component-projects</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><span class=active title=hugo-fixit/component-projects>hugo-fixit/component-projects</span></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/apple-devices-preview/ class=collection-nav-item rel=prev title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>30/51</span><a href=/projects/lruihao/vercel-gravatar/ class=collection-nav-item rel=next title=Lruihao/vercel-gravatar><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/component-projects target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/component-projects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://fixit.lruihao.cn/ecosystem/ target=_blank rel=\"external nofollow noopener noreferrer\">https://fixit.lruihao.cn/ecosystem/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-04-09 21:38:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-04-09>2024-04-09</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:26\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"521 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 600 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装>安装</a><ul><li><a href=#安装为-hugo-模块>安装为 Hugo 模块</a></li><li><a href=#安装为-git-子模块>安装为 Git 子模块</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#访问令牌可选>访问令牌（可选）</a></li><li><a href=#使用>使用</a><ul><li><a href=#布局>布局</a></li><li><a href=#shortcodes>Shortcodes</a></li><li><a href=#内容适配器>内容适配器</a></li><li><a href=#自定义块>自定义块</a></li></ul></li><li><a href=#定时任务>定时任务</a><ul><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#部署到-vercel>部署到 Vercel</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>GitHub Projects Embed | FixIt</h1><p><img loading=lazy src=/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png alt=apple-devices-preview height=1508 width=2880></p><div align=center class=ignore><p>在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。</p>简体中文 |\n<a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\">繁體中文</a> |\n<a href=https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md>English</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\">Français</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\">Русский язык</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\">Español</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\">हिन्दी</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\">deutsch</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\">한국어</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\">しろうと</a></div><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/zh-cn/ecosystem/ target=_blank rel=\"external nofollow noopener noreferrer\">生态系统 | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/projects/ target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao 的开源项目<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=特性><span>特性</span>\n<a href=#%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>支持 GitHub 项目卡片展示（<code>layout</code> 或者 <code>shortcodes</code>）</li><li>支持根据 README 自动生成博客文章（<code>content adapter</code>）</li></ul><h2 class=heading-element id=要求><span>要求</span>\n<a href=#%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> v0.4.0 或更高版本</li></ul><h2 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方法与 <a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同。有几种安装方法，请选择一种。</p><h3 class=heading-element id=安装为-hugo-模块><span>安装为 Hugo 模块</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/component-projects&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在第一次启动 Hugo 时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=安装为-git-子模块><span>安装为 Git 子模块</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/component-projects.git themes/component-projects</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;FixIt&#34;</span><span class=p>,</span> <span class=s2>&#34;component-projects&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>最后，为了通过 FixIt 主题在 <code>layouts/_partials/custom.html</code> 文件中开放的 <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">自定义块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 将 <code>component-projects.html</code> 注入到 <code>custom-head</code> 或 <code>custom-assets</code> 中，你需要填写以下必要配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl>    <span class=nx>assets</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/component-projects.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=访问令牌可选><span>访问令牌（可选）</span>\n<a href=#%e8%ae%bf%e9%97%ae%e4%bb%a4%e7%89%8c%e5%8f%af%e9%80%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>获取仓库信息依赖 GitHub 官方 API。在开始使用之前，建议在 GitHub 上生成个人访问令牌，以防止 GitHub API 使用限制。</p><ol><li>点击跳到 GitHub <a href=https://github.com/settings/tokens/new target=_blank rel=\"external nofollow noopener noreferrer\">生成 token<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，选择名为 <code>public_repo</code> 的范围以生成个人访问令牌。</li><li>配置环境变量 <code>HUGO_PARAMS_GHTOKEN=your-person-access-token</code>，详细信息请参见 <a href=https://gohugo.io/functions/os/getenv/#examples target=_blank rel=\"external nofollow noopener noreferrer\">os.Getenv | Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ol><h2 class=heading-element id=使用><span>使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=布局><span>布局</span>\n<a href=#%e5%b8%83%e5%b1%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先，创建 <code>projects.yml</code> 文件并编辑数据：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>cp themes/component-projects/projects.yml.example data/projects.yml</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>如果你的网站是多语言的，你可以为英语创建一个 <code>projects.en.yml</code> 文件，为中文创建一个 <code>projects.zh-cn.yml</code> 文件。</p></blockquote><p>接下来，使用 <code>projects</code> 布局创建一个新页面：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo new projects/_index.md</span></span></code></pre></td></tr></table></div></div></div><p>编辑新页面的标题和内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nn>---</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>title</span><span class=p>:</span><span class=w> </span><span class=l>My Projects</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>titleIcon</span><span class=p>:</span><span class=w> </span><span class=l>fa-solid fa-laptop-code</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>subtitle</span><span class=p>:</span><span class=w> </span><span class=l>&lt;https://github.com/Lruihao&gt;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>sectionSlot</span><span class=p>:</span><span class=w> </span><span class=l>Some text to display in the section slot which is above the related articles list.</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>hiddenAdapters</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>layout</span><span class=p>:</span><span class=w> </span><span class=l>projects</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nn>---</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=l>Some text to display at the start of the page.</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=shortcodes><span>Shortcodes</span>\n<a href=#shortcodes class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在任何页面中使用 <code>gh-repo-card-container</code> 和 <code>gh-repo-card</code> 短代码来显示卡片式 GitHub 存储库：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; gh-repo-card-container &gt;}}\n</span></span><span class=line><span class=cl>  {{&lt; gh-repo-card repo=&#34;hugo-fixit/component-projects&#34; &gt;}}\n</span></span><span class=line><span class=cl>  {{&lt; gh-repo-card repo=&#34;Lruihao/hugo-blog&#34; &gt;}}\n</span></span><span class=line><span class=cl>{{&lt; /gh-repo-card-container &gt;}}</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=内容适配器><span>内容适配器</span>\n<a href=#%e5%86%85%e5%ae%b9%e9%80%82%e9%85%8d%e5%99%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>&#x1f389; 这是一个很棒的功能！它能够根据你配置的项目数据，把仓库的 README 自动生成博客文章。</p><p>在项目文件夹中创建 <code>_content.gotmpl</code>，添加以下代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-go-html-template\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-go-html-template data-lang=go-html-template><span class=line><span class=cl><span class=cp>{{-</span><span class=w> </span><span class=nx>partial</span><span class=w> </span><span class=s>&#34;adapters/projects.html&#34;</span><span class=w> </span><span class=na>.</span><span class=w> </span><span class=cp>-}}</span></span></span></code></pre></td></tr></table></div></div></div><p>目录结构如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>content/\n</span></span><span class=line><span class=cl>├── projects/\n</span></span><span class=line><span class=cl>│   ├── _content.gotmpl  &lt;-- content adapter\n</span></span><span class=line><span class=cl>│   └── _index.md        &lt;-- layout: projects\n</span></span><span class=line><span class=cl>data/\n</span></span><span class=line><span class=cl>└── projects.yml         &lt;-- projects data</span></span></code></pre></td></tr></table></div></div></div><p>然后，打开 <code>hugo.toml</code> 文件，配置的 <code>projectsAdapters</code> 选项，启用内容适配器：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>projectsAdapters</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>enable</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=nx>onlyPublic</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=nx>categories</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>collections</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>ignoreList</span> <span class=p>=</span> <span class=p>[]</span>\n</span></span><span class=line><span class=cl>    <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>projectsAdapters</span><span class=p>.</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>      <span class=nx>hiddenFromHomePage</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>      <span class=c># more font matter here ...</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=自定义块><span>自定义块</span>\n<a href=#%e8%87%aa%e5%ae%9a%e4%b9%89%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>你可以通过 <code>define</code> 来实现这些块。</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>块名称</th><th style=text-align:left>描述</th></tr></thead><tbody><tr><td style=text-align:left><code>projects-aside</code></td><td style=text-align:left>显示在项目页面的侧边栏中</td></tr><tr><td style=text-align:left><code>projects-meta</code></td><td style=text-align:left>显示在项目页面的开始处</td></tr><tr><td style=text-align:left><code>projects-footer</code></td><td style=text-align:left>显示在项目页面的底部处</td></tr></tbody></table></div><h2 class=heading-element id=定时任务><span>定时任务</span>\n<a href=#%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>由于采用服务端渲染，所有数据是在构建时获取的，而不会在每次访问时都请求 GitHub API。因此，我们可以使用定时任务来更新数据，从而保持其最新状态。</p><h3 class=heading-element id=部署到-github-pages><span>部署到 GitHub Pages</span>\n<a href=#%e9%83%a8%e7%bd%b2%e5%88%b0-github-pages class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>如果你的网站托管在 GitHub Pages 上，你可以使用 GitHub Actions 自动部署。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Hugo build and deploy</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>on</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>schedule</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c># Rebuid the site every day at 00:00 UTC to update the projects data</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span>- <span class=nt>cron</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;0 0 * * *&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>push</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>branches</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=w> </span><span class=l>main ]</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>workflow_dispatch</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>jobs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c># Your build and deploy jobs here</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=部署到-vercel><span>部署到 Vercel</span>\n<a href=#%e9%83%a8%e7%bd%b2%e5%88%b0-vercel class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>如果你的网站托管在 Vercel 上，你可以使用 Vercel 的 <a href=https://vercel.com/docs/deployments/deploy-hooks#creating-&-triggering-deploy-hooks target=_blank rel=\"external nofollow noopener noreferrer\">Deploy Hooks<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 功能配合 GitHub Actions 自动部署。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Vercel deploy hook</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>on</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>schedule</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=c># Rebuid the site every day at 00:00 UTC to update the projects data</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span>- <span class=nt>cron</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;0 0 * * *&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>jobs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>Vercel-Deploy</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>runs-on</span><span class=p>:</span><span class=w> </span><span class=l>ubuntu-latest</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>steps</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Trigger Vercel deploy hook</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=p>|</span><span class=sd>\n</span></span></span><span class=line><span class=cl><span class=sd>          curl -X POST ${{ secrets.VERCEL_DEPLOY_HOOK }}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>在 Vercel 的项目设置中，创建一个部署钩子，并在 GitHub 项目的 Secrets 中添加 <code>VERCEL_DEPLOY_HOOK</code> 变量。</p><h2 class=heading-element id=故障排除><span>故障排除</span>\n<a href=#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本地调试时，可以在 <code>hugo server</code> 命令后加上 <code>--ignoreCache</code> 参数以清除缓存。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/apple-devices-preview/ class=collection-nav-item rel=prev title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>临时决定再写一个小工具 - 网站预览图生成器</span>\n</a><a href=/projects/lruihao/vercel-gravatar/ class=collection-nav-item rel=next title=Lruihao/vercel-gravatar><span>Lruihao/vercel-gravatar</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:26\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/component-projects/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/component-projects/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/component-projects/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/component-projects/ data-title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\" data-hashtags=hugo,hugo-fixit,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/component-projects/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/component-projects/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/component-projects/ data-title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/component-projects/ data-title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/apple-devices-preview/ class=post-nav-item rel=prev title=\"临时决定再写一个小工具 - 网站预览图生成器\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>临时决定再写一个小工具 - 网站预览图生成器</a><a href=/projects/lruihao/vercel-gravatar/ class=post-nav-item rel=next title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#特性>特性</a></li><li><a href=#要求>要求</a></li><li><a href=#安装>安装</a><ul><li><a href=#安装为-hugo-模块>安装为 Hugo 模块</a></li><li><a href=#安装为-git-子模块>安装为 Git 子模块</a></li></ul></li><li><a href=#配置>配置</a></li><li><a href=#访问令牌可选>访问令牌（可选）</a></li><li><a href=#使用>使用</a><ul><li><a href=#布局>布局</a></li><li><a href=#shortcodes>Shortcodes</a></li><li><a href=#内容适配器>内容适配器</a></li><li><a href=#自定义块>自定义块</a></li></ul></li><li><a href=#定时任务>定时任务</a><ul><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#部署到-vercel>部署到 Vercel</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/component-projects/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/component-projects/index.md",
    "content": "# 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\n\n<!-- markdownlint-disable-file MD033 MD041 -->\n<h1 align=\"center\">GitHub Projects Embed | FixIt</h1>\n\n![apple-devices-preview](https://github.com/hugo-fixit/component-projects/assets/33419593/3f75bd94-90df-4057-bee5-cbe2a61422f1)\n\n<div align=\"center\" class=\"ignore\">\n  <p>在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。</p>\n  简体中文 |\n  <a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\">繁體中文</a> |\n  <a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\">English</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\">Français</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\">Русский язык</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\">Español</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\">हिन्दी</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\">deutsch</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\">한국어</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\">しろうと</a>\n</div>\n\n## Demo\n\n- [生态系统 | FixIt](https://fixit.lruihao.cn/zh-cn/ecosystem/)\n- [Lruihao 的开源项目](https://lruihao.cn/projects/)\n\n## 特性\n\n- 支持 GitHub 项目卡片展示（`layout` 或者 `shortcodes`）\n- 支持根据 README 自动生成博客文章（`content adapter`）\n\n## 要求\n\n- [FixIt](https://github.com/hugo-fixit) v0.4.0 或更高版本\n\n## 安装\n\n安装方法与 [安装主题](https://fixit.lruihao.cn/documentation/installation/) 相同。有几种安装方法，请选择一种。\n\n### 安装为 Hugo 模块\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/component-projects\"\n```\n\n在第一次启动 Hugo 时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 安装为 Git 子模块\n\n将 [FixIt](https://github.com/hugo-fixit/FixIt) 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/component-projects.git themes/component-projects\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\"FixIt\", \"component-projects\"]\n```\n\n## 配置\n\n最后，为了通过 FixIt 主题在 `layouts/_partials/custom.html` 文件中开放的 [自定义块](https://fixit.lruihao.cn/references/blocks/) 将 `component-projects.html` 注入到 `custom-head` 或 `custom-assets` 中，你需要填写以下必要配置：\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    assets = [ \"inject/component-projects.html\" ]\n    # ... other partials\n```\n\n## 访问令牌（可选）\n\n获取仓库信息依赖 GitHub 官方 API。在开始使用之前，建议在 GitHub 上生成个人访问令牌，以防止 GitHub API 使用限制。\n\n1. 点击跳到 GitHub [生成 token](https://github.com/settings/tokens/new)，选择名为 `public_repo` 的范围以生成个人访问令牌。\n2. 配置环境变量 `HUGO_PARAMS_GHTOKEN=your-person-access-token`，详细信息请参见 [os.Getenv | Hugo](https://gohugo.io/functions/os/getenv/#examples)\n\n## 使用\n\n### 布局\n\n首先，创建 `projects.yml` 文件并编辑数据：\n\n```bash\ncp themes/component-projects/projects.yml.example data/projects.yml\n```\n\n> 如果你的网站是多语言的，你可以为英语创建一个 `projects.en.yml` 文件，为中文创建一个 `projects.zh-cn.yml` 文件。\n\n接下来，使用 `projects` 布局创建一个新页面：\n\n```bash\nhugo new projects/_index.md\n```\n\n编辑新页面的标题和内容：\n\n```yaml\n---\ntitle: My Projects\ntitleIcon: fa-solid fa-laptop-code\nsubtitle: <https://github.com/Lruihao>\nsectionSlot: Some text to display in the section slot which is above the related articles list.\nhiddenAdapters: false\nlayout: projects\n---\n\nSome text to display at the start of the page.\n```\n\n### Shortcodes\n\n在任何页面中使用 `gh-repo-card-container` 和 `gh-repo-card` 短代码来显示卡片式 GitHub 存储库：\n\n```markdown\n{{?{}< gh-repo-card-container >}}\n  {{?{}< gh-repo-card repo=\"hugo-fixit/component-projects\" >}}\n  {{?{}< gh-repo-card repo=\"Lruihao/hugo-blog\" >}}\n{{?{}< /gh-repo-card-container >}}\n```\n\n### 内容适配器\n\n:tada: 这是一个很棒的功能！它能够根据你配置的项目数据，把仓库的 README 自动生成博客文章。\n\n在项目文件夹中创建 `_content.gotmpl`，添加以下代码：\n\n```go-html-template\n{{- partial \"adapters/projects.html\" . -}}\n```\n\n目录结构如下：\n\n```plain\ncontent/\n├── projects/\n│   ├── _content.gotmpl  <-- content adapter\n│   └── _index.md        <-- layout: projects\ndata/\n└── projects.yml         <-- projects data\n```\n\n然后，打开 `hugo.toml` 文件，配置的 `projectsAdapters` 选项，启用内容适配器：\n\n```toml\n[params]\n  [params.projectsAdapters]\n    enable = true\n    onlyPublic = true\n    categories = []\n    collections = []\n    ignoreList = []\n    [params.projectsAdapters.params]\n      hiddenFromHomePage = true\n      # more font matter here ...\n```\n\n### 自定义块\n\n你可以通过 `define` 来实现这些块。\n\n| 块名称            | 描述                     |\n| :---------------- | :----------------------- |\n| `projects-aside`  | 显示在项目页面的侧边栏中 |\n| `projects-meta`   | 显示在项目页面的开始处   |\n| `projects-footer` | 显示在项目页面的底部处   |\n\n## 定时任务\n\n由于采用服务端渲染，所有数据是在构建时获取的，而不会在每次访问时都请求 GitHub API。因此，我们可以使用定时任务来更新数据，从而保持其最新状态。\n\n### 部署到 GitHub Pages\n\n如果你的网站托管在 GitHub Pages 上，你可以使用 GitHub Actions 自动部署。\n\n```yaml\nname: Hugo build and deploy\non:\n  schedule:\n    # Rebuid the site every day at 00:00 UTC to update the projects data\n    - cron: '0 0 * * *'\n  push:\n    branches: [ main ]\n  workflow_dispatch:\njobs:\n  # Your build and deploy jobs here\n```\n\n### 部署到 Vercel\n\n如果你的网站托管在 Vercel 上，你可以使用 Vercel 的 [Deploy Hooks](https://vercel.com/docs/deployments/deploy-hooks#creating-&-triggering-deploy-hooks) 功能配合 GitHub Actions 自动部署。\n\n```yaml\nname: Vercel deploy hook\non:\n  schedule:\n    # Rebuid the site every day at 00:00 UTC to update the projects data\n    - cron: '0 0 * * *'\njobs:\n  Vercel-Deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Trigger Vercel deploy hook\n        run: |\n          curl -X POST ${{ secrets.VERCEL_DEPLOY_HOOK }}\n```\n\n在 Vercel 的项目设置中，创建一个部署钩子，并在 GitHub 项目的 Secrets 中添加 `VERCEL_DEPLOY_HOOK` 变量。\n\n## 故障排除\n\n本地调试时，可以在 `hugo server` 命令后加上 `--ignoreCache` 参数以清除缓存。\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/component-projects/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/docs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>📄 The open-source repo for fixit.lruihao.cn | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\"><meta name=keywords content='documentation,hugo,hugo-blog,hugo-fixit'><meta itemprop=name content=\"📄 The open-source repo for fixit.lruihao.cn\"><meta itemprop=description content=\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\"><meta itemprop=datePublished content=\"2022-07-23T12:17:06+00:00\"><meta itemprop=dateModified content=\"2026-05-06T14:32:49+00:00\"><meta itemprop=wordCount content=\"93\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"documentation,Hugo,hugo-blog,hugo-fixit\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/docs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"📄 The open-source repo for fixit.lruihao.cn\"><meta property=\"og:description\" content=\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2022-07-23T12:17:06+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T14:32:49+00:00\"><meta property=\"article:tag\" content=\"documentation\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-blog\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"📄 The open-source repo for fixit.lruihao.cn\"><meta name=twitter:description content=\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/docs/ title=\"📄 The open-source repo for fixit.lruihao.cn | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/adb-for-mac/ title=\"Mac 配置 ADB\"><link rel=next type=text/html href=https://lruihao.cn/posts/config4mac/ title=\"Mac 上的开发配置总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/docs/index.md title=\"📄 The open-source repo for fixit.lruihao.cn | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"📄 The open-source repo for fixit.lruihao.cn\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/docs\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"documentation, hugo, hugo-blog, hugo-fixit\",\"wordcount\":93,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/docs\\/\",\"datePublished\":\"2022-07-23T12:17:06+00:00\",\"dateModified\":\"2026-05-06T14:32:49+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/docs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/docs</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><span class=active title=hugo-fixit/docs>hugo-fixit/docs</span></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/fixit/ class=collection-nav-item rel=prev title=hugo-fixit/FixIt><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>15/51</span><a href=/projects/hugo-fixit/hugo-shell/ class=collection-nav-item rel=next title=hugo-fixit/hugo-shell><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>📄 The open-source repo for fixit.lruihao.cn</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/docs target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://fixit.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://fixit.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2022-07-23 12:17:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-07-23>2022-07-23</time></span>&nbsp;<span title=\"更新于 2026-05-06 14:32:49\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"93 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"📄 The open-source repo for fixit.lruihao.cn\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#系统依赖>系统依赖</a></li><li><a href=#贡献文档>贡献文档</a></li><li><a href=#参与翻译>参与翻译</a></li><li><a href=#编辑主题>编辑主题</a></li><li><a href=#感谢赞助>感谢赞助</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=fixit-主题文档 data-decreased><span>FixIt 主题文档</span>\n<a href=#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://fixit.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/Production_8233419177081912330.svg alt=\"Production environment\"></a>\n<a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/Hugo-%5E0.156_9344247532829321537.svg alt=Hugo></a></p><p>👉 中文 | <a href=README.en.md>English</a></p><p><a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题文档主要分为：<a href=https://fixit.lruihao.cn/zh-cn/documentation/ target=_blank rel=\"external nofollow noopener noreferrer\">文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://fixit.lruihao.cn/zh-cn/guides/ target=_blank rel=\"external nofollow noopener noreferrer\">教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 两大板块，欢迎大家发起 PR 完善主题文档。</p><h2 class=heading-element id=系统依赖><span>系统依赖</span>\n<a href=#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://nodejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Node.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>: >= 20.0.0</li><li><a href=https://go.dev/dl/ target=_blank rel=\"external nofollow noopener noreferrer\">Go<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://gohugo.io/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>: >= 0.156.0 (extended version)</li></ul><h2 class=heading-element id=贡献文档><span>贡献文档</span>\n<a href=#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>首先，点击 fork 按钮 fork 本仓库。</p><p>然后，克隆你 fork 的仓库。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone https://github.com/hugo-fixit/docs.git fixit-docs <span class=o>&amp;&amp;</span> <span class=nb>cd</span> fixit-docs</span></span></code></pre></td></tr></table></div></div></div><p>接着，安装开发依赖。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm install</span></span></code></pre></td></tr></table></div></div></div><p>最后，你就可以开始了！</p><p>这里有一些有用的命令。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 运行带有监听文件变化的本地调试服务器</span>\n</span></span><span class=line><span class=cl>pnpm run server\n</span></span><span class=line><span class=cl><span class=c1># 运行带有监听文件变化的本地调试服务器（生产环境）</span>\n</span></span><span class=line><span class=cl>pnpm run server:production\n</span></span><span class=line><span class=cl><span class=c1># 查看编辑主题部分</span>\n</span></span><span class=line><span class=cl>pnpm run server:development</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=参与翻译><span>参与翻译</span>\n<a href=#%e5%8f%82%e4%b8%8e%e7%bf%bb%e8%af%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>包含 <code>missing-translation</code> shortcode 的文档表示该部分尚未翻译，点击查看 <a href=\"https://github.com/search?q=repo%3Ahugo-fixit%2Fdocs+missing-translation+path%3A%2F%5Econtent%5C%2F%2F&amp;type=code\" target=_blank rel=\"external nofollow noopener noreferrer\">缺失翻译的文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=编辑主题><span>编辑主题</span>\n<a href=#%e7%bc%96%e8%be%91%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果你想做与文档相关的主题更改，最简单的方法是将 <code>fixit-docs</code> 和 <code>FixIt</code> 克隆为兄弟目录，然后运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nv>HUGO_MODULE_WORKSPACE</span><span class=o>=</span>hugo.work hugo server --ignoreVendorPaths <span class=s2>&#34;**&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>最后，在 <a href=https://github.com/hugo-fixit/docs/pulls target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/hugo-fixit/docs/pulls<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 创建一个新的 pull request 来提交你的贡献 🎉</p><h2 class=heading-element id=感谢赞助><span>感谢赞助</span>\n<a href=#%e6%84%9f%e8%b0%a2%e8%b5%9e%e5%8a%a9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/xnx3/translate target=_blank rel=\"external nofollow noopener noreferrer\">translate.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 赞助企业级翻译通道。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/fixit/ class=collection-nav-item rel=prev title=hugo-fixit/FixIt><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/FixIt</span>\n</a><a href=/projects/hugo-fixit/hugo-shell/ class=collection-nav-item rel=next title=hugo-fixit/hugo-shell><span>hugo-fixit/hugo-shell</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 14:32:49\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/docs/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/docs/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/docs/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/docs/ data-title=\"📄 The open-source repo for fixit.lruihao.cn\" data-hashtags=documentation,hugo,hugo-blog,hugo-fixit><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/docs/ data-hashtag=documentation><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/docs/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/docs/ data-title=\"📄 The open-source repo for fixit.lruihao.cn\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/docs/ data-title=\"📄 The open-source repo for fixit.lruihao.cn\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/documentation/ class=post-tag title=\"标签 - documentation\">documentation</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-blog/ class=post-tag title=\"标签 - hugo-blog\">hugo-blog</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/adb-for-mac/ class=post-nav-item rel=prev title=\"Mac 配置 ADB\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Mac 配置 ADB</a><a href=/posts/config4mac/ class=post-nav-item rel=next title=\"Mac 上的开发配置总结\">Mac 上的开发配置总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#系统依赖>系统依赖</a></li><li><a href=#贡献文档>贡献文档</a></li><li><a href=#参与翻译>参与翻译</a></li><li><a href=#编辑主题>编辑主题</a></li><li><a href=#感谢赞助>感谢赞助</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/docs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/docs/index.md",
    "content": "# 📄 The open-source repo for fixit.lruihao.cn\n\n# FixIt 主题文档\n\n[![Production environment](https://img.shields.io/github/deployments/hugo-fixit/docs/Production?style=flat&label=Vercel&logo=vercel)](https://fixit.lruihao.cn/)\n[![Hugo](https://img.shields.io/badge/Hugo-%5E0.156.0-ff4088?style=flat&logo=hugo)](https://gohugo.io/)\n\n👉 中文 | [English](README.en.md)\n\n[FixIt](https://github.com/hugo-fixit/FixIt) 主题文档主要分为：[文档](https://fixit.lruihao.cn/zh-cn/documentation/)、[教程](https://fixit.lruihao.cn/zh-cn/guides/) 两大板块，欢迎大家发起 PR 完善主题文档。\n\n## 系统依赖\n\n- [Node.js](https://nodejs.org/): >= 20.0.0\n- [Go](https://go.dev/dl/)\n- [Hugo](https://gohugo.io/installation/): >= 0.156.0 (extended version)\n\n## 贡献文档\n\n首先，点击 fork 按钮 fork 本仓库。\n\n然后，克隆你 fork 的仓库。\n\n```bash\ngit clone https://github.com/hugo-fixit/docs.git fixit-docs && cd fixit-docs\n```\n\n接着，安装开发依赖。\n\n```bash\npnpm install\n```\n\n最后，你就可以开始了！\n\n这里有一些有用的命令。\n\n```bash\n# 运行带有监听文件变化的本地调试服务器\npnpm run server\n# 运行带有监听文件变化的本地调试服务器（生产环境）\npnpm run server:production\n# 查看编辑主题部分\npnpm run server:development\n```\n\n## 参与翻译\n\n包含 `missing-translation` shortcode 的文档表示该部分尚未翻译，点击查看 [缺失翻译的文档](https://github.com/search?q=repo%3Ahugo-fixit%2Fdocs+missing-translation+path%3A%2F%5Econtent%5C%2F%2F&type=code)。\n\n## 编辑主题\n\n如果你想做与文档相关的主题更改，最简单的方法是将 `fixit-docs` 和 `FixIt` 克隆为兄弟目录，然后运行：\n\n```bash\nHUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths \"**\"\n```\n\n最后，在 <https://github.com/hugo-fixit/docs/pulls> 创建一个新的 pull request 来提交你的贡献 🎉\n\n## 感谢赞助\n\n[translate.js](https://github.com/xnx3/translate) 赞助企业级翻译通道。\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/docs/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/fixit/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta name=keywords content='algolia,blog,giscus,hugo,hugo-blog,hugo-blog-theme,hugo-fixit,hugo-theme,pwa,pwa-app'><meta itemprop=name content=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta itemprop=description content=\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=wordCount content=\"625\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"algolia,blog,giscus,Hugo,hugo-blog,hugo-blog-theme,hugo-fixit,hugo-theme,pwa,pwa-app\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/fixit/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta property=\"og:description\" content=\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-12-16T03:35:27+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:08:15+00:00\"><meta property=\"article:tag\" content=\"algolia\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"giscus\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-blog\"><meta property=\"article:tag\" content=\"hugo-blog-theme\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta name=twitter:description content=\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit/ title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/subl_imgpaste2/ title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><link rel=next type=text/html href=https://lruihao.cn/posts/gtd/ title=\"Getting Things Done for ios App Reminders and Github issues\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/fixit/index.md title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"algolia, blog, giscus, hugo, hugo-blog, hugo-blog-theme, hugo-fixit, hugo-theme, pwa, pwa-app\",\"wordcount\":625,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit\\/\",\"datePublished\":\"2021-12-16T03:35:27+00:00\",\"dateModified\":\"2026-05-06T03:08:15+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/fixit/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/FixIt</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><span class=active title=hugo-fixit/FixIt>hugo-fixit/FixIt</span></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/hugo-blog/ class=collection-nav-item rel=prev title=Lruihao/hugo-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>14/51</span><a href=/projects/hugo-fixit/docs/ class=collection-nav-item rel=next title=hugo-fixit/docs><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://fixit.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://fixit.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-12-16 03:35:27\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-12-16>2021-12-16</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:08:15\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"625 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#即时预览>即时预览</a></li><li><a href=#使用指南>使用指南</a><ul><li><a href=#主题文档>主题文档</a></li><li><a href=#快速开始>快速开始</a></li><li><a href=#模板>模板</a></li></ul></li><li><a href=#特色>特色</a><ul><li><a href=#性能和-seo>性能和 SEO</a></li><li><a href=#外观和布局>外观和布局</a></li><li><a href=#社交和评论系统>社交和评论系统</a></li><li><a href=#扩展功能>扩展功能</a></li></ul></li><li><a href=#多语言和国际化>多语言和国际化</a></li><li><a href=#主题组件>主题组件</a></li><li><a href=#社区支持>社区支持</a></li><li><a href=#参与贡献>参与贡献</a></li><li><a href=#致谢>致谢</a></li><li><a href=#许可协议>许可协议</a></li><li><a href=#赞助支持>赞助支持</a></li><li><a href=#作者>作者</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p><img loading=lazy src=/images/remote/apple-devices-preview_2924900667091928771.png alt=\"Hugo Theme FixIt\" height=1158 width=2007></p><div align=center class=ignore><p>FixIt 是一个简洁、优雅且高效的 <a href=https://gohugo.io/>Hugo</a> 博客主题。<br><em><sub>如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！</sub></em></p><a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md>English</a> |\n简体中文 |\n<a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\">繁體中文</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\">Français</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\">Русский язык</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\">Español</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\">हिन्दी</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\">Deutsch</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\">한국어</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\">日本語</a></div><p><a title=\"FixIt 官网\" href=https://fixit.lruihao.cn/zh-cn/><img align=right alt=\"FixIt logo\" width=70 height=70 src=\"https://avatars.githubusercontent.com/u/110414864?s=200&v=4\"></a></p><h2 class=heading-element id=fixit data-decreased><span>FixIt</span>\n<a href=#fixit class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>它的原型基于 <a href=https://github.com/dillonzq/LoveIt target=_blank rel=\"external nofollow noopener noreferrer\">LoveIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题，<a href=https://github.com/Fastbyte01/KeepIt target=_blank rel=\"external nofollow noopener noreferrer\">KeepIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题和 <a href=https://github.com/liuzc/LeaveIt target=_blank rel=\"external nofollow noopener noreferrer\">LeaveIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题。</p></blockquote><p><a href=https://demo.fixit.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/Production_13104457792222728993.svg alt=Build></a>\n<a href=https://github.com/hugo-fixit/FixIt/releases target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/FixIt_14217377854216039668.svg alt=\"GitHub release (latest by date)\"></a>\n<a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/Hugo-%5E0.156_9344247532829321537.svg alt=Hugo></a>\n<a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/LICENSE target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/FixIt_18217323562327565654.svg alt=License></a>\n<a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/FixIt_2680965923886825077.svg alt=\"GitHub stars\"></a>\n<a href=https://gitee.com/lruihao/FixIt/stargazers target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/star_15177976006588499504.svg alt=\"Gitee star of FixIt\"></a></p><div class=\"alert alert-warning\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z\"/></svg>警告</p><p><strong>v0.x 版本仅接受 bug 修复，如需提交新功能，请基于 <a href=https://github.com/hugo-fixit/FixIt/tree/v1 target=_blank rel=\"external nofollow noopener noreferrer\">v1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 分支开发。</strong></p><p>1.0 版本计划在 <strong>2027 年上半年</strong> 发布，欢迎加入开发和讨论！详见 <a href=https://github.com/hugo-fixit/FixIt/milestone/8 target=_blank rel=\"external nofollow noopener noreferrer\">v1 里程碑<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><h2 class=heading-element id=即时预览><span>即时预览</span>\n<a href=#%e5%8d%b3%e6%97%b6%e9%a2%84%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p align=center>💟 <a href=https://fixit.lruihao.cn>Docs</a> | ❇️ <a href=https://demo.fixit.lruihao.cn/test/>Test</a> | 🚼 <a href=https://demo.fixit.lruihao.cn>Demo</a> | 🆕 <a href=https://hugo-fixit.github.io/hugo-fixit-starter/>Starter</a><br><br>更多 FixIt 的例子参见 <a href=https://fixit.lruihao.cn/zh-cn/showcase/>这里</a>。</p><h2 class=heading-element id=使用指南><span>使用指南</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%8c%87%e5%8d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=主题文档><span>主题文档</span>\n<a href=#%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>前往 <a href=https://fixit.lruihao.cn/zh-cn/documentation/getting-started/quick-start/ target=_blank rel=\"external nofollow noopener noreferrer\">快速上手<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 页面，了解如何使用 FixIt 主题创建一个新网站的详细步骤。</p><p>大纲：<a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装篇<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> ➜ <a href=https://fixit.lruihao.cn/zh-cn/documentation/getting-started/ target=_blank rel=\"external nofollow noopener noreferrer\">入门篇<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> ➜ <a href=https://fixit.lruihao.cn/zh-cn/documentation/content-management/ target=_blank rel=\"external nofollow noopener noreferrer\">内容管理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> ➜ <a href=https://fixit.lruihao.cn/zh-cn/documentation/advanced/ target=_blank rel=\"external nofollow noopener noreferrer\">进阶篇<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h3 class=heading-element id=快速开始><span>快速开始</span>\n<a href=#%e5%bf%ab%e9%80%9f%e5%bc%80%e5%a7%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>我们提供了一个 CLI 工具，可以通过一个命令来创建一个新的 FixIt 项目。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpx fixit-cli create my-blog</span></span></code></pre></td></tr></table></div></div></div><p><a href=https://asciinema.org/a/697494 target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/697494_15823540158614267688.svg alt=asciicast></a></p><h3 class=heading-element id=模板><span>模板</span>\n<a href=#%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>点击以下链接使用模板生成一个新的仓库：</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>模板</th><th style=text-align:left>仓库</th><th style=text-align:center>生成链接</th></tr></thead><tbody><tr><td style=text-align:left>基于 Hugo Modules 的快速入门模板。</td><td style=text-align:left><a href=https://github.com/hugo-fixit/hugo-fixit-starter target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-starter<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:center><a href=https://github.com/hugo-fixit/hugo-fixit-starter/generate target=_blank rel=\"external nofollow noopener noreferrer\">点击生成<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left>基于 Git submodule 的快速入门模板。</td><td style=text-align:left><a href=https://github.com/hugo-fixit/hugo-fixit-starter1 target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-starter1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:center><a href=https://github.com/hugo-fixit/hugo-fixit-starter1/generate target=_blank rel=\"external nofollow noopener noreferrer\">点击生成<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left>使用 Fixit 主题构建多语言网站。</td><td style=text-align:left><a href=https://github.com/hugo-fixit/docs target=_blank rel=\"external nofollow noopener noreferrer\">docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:center><a href=https://github.com/hugo-fixit/docs/generate target=_blank rel=\"external nofollow noopener noreferrer\">点击生成<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr><tr><td style=text-align:left>基于 FixIt 主题进行自定义设置。</td><td style=text-align:left><a href=https://github.com/Lruihao/hugo-blog target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/hugo-blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:center><a href=https://github.com/Lruihao/hugo-blog/generate target=_blank rel=\"external nofollow noopener noreferrer\">点击生成<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td></tr></tbody></table></div><h2 class=heading-element id=特色><span>特色</span>\n<a href=#%e7%89%b9%e8%89%b2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>点击展开</summary><h3 class=heading-element id=性能和-seo><span>性能和 SEO</span>\n<a href=#%e6%80%a7%e8%83%bd%e5%92%8c-seo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>性能</strong>优化：在 <a href=https://developers.google.com/speed/pagespeed/insights target=_blank rel=\"external nofollow noopener noreferrer\">Google PageSpeed Insights<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中，99/100 的移动设备得分和 100/100 的桌面设备得分</li><li>使用基于 JSON-LD 格式 的 <strong>SEO SCHEMA</strong> 文件进行 SEO 优化</li><li>支持 <strong><a href=https://analytics.google.com/analytics target=_blank rel=\"external nofollow noopener noreferrer\">Google Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://usefathom.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Fathom Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://tongji.baidu.com/ target=_blank rel=\"external nofollow noopener noreferrer\">百度统计<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://umami.is/ target=_blank rel=\"external nofollow noopener noreferrer\">Umami Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://plausible.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Plausible Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://www.cloudflare.com/web-analytics target=_blank rel=\"external nofollow noopener noreferrer\">Cloudflare Web Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持 <strong><a href=https://splitbee.io target=_blank rel=\"external nofollow noopener noreferrer\">Splitbee Analytics<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong></li><li>支持搜索引擎的<strong>网站验证</strong> (Google, Bing, Yandex, Pinterest, Baidu, 360 and Sogou)</li><li>支持所有第三方库的 <strong>CDN</strong></li></ul><h3 class=heading-element id=外观和布局><span>外观和布局</span>\n<a href=#%e5%a4%96%e8%a7%82%e5%92%8c%e5%b8%83%e5%b1%80 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>响应式</strong>布局</li><li><strong>浅色/深色</strong> 主题模式</li><li>全局一致的<strong>设计语言</strong></li><li>支持<strong>分页</strong></li><li>易用和自动展开的<strong>文章目录</strong></li><li>支持<strong>多语言</strong>和国际化</li><li>美观的 <strong>CSS 动画</strong></li></ul><h3 class=heading-element id=社交和评论系统><span>社交和评论系统</span>\n<a href=#%e7%a4%be%e4%ba%a4%e5%92%8c%e8%af%84%e8%ae%ba%e7%b3%bb%e7%bb%9f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>支持 <strong><a href=https://gravatar.com target=_blank rel=\"external nofollow noopener noreferrer\">Gravatar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 头像</li><li>支持本地<strong>头像</strong></li><li>支持多达 <strong>87</strong> 种社交链接</li><li>支持多达 <strong>28</strong> 种网站分享</li><li>支持 <strong><a href=https://disqus.com target=_blank rel=\"external nofollow noopener noreferrer\">Disqus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://github.com/gitalk/gitalk target=_blank rel=\"external nofollow noopener noreferrer\">Gitalk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://valine.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Valine<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://waline.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Waline<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://developers.facebook.com/docs/plugins/comments/ target=_blank rel=\"external nofollow noopener noreferrer\">Facebook<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 评论</strong>系统</li><li>支持 <strong><a href=https://comments.app/ target=_blank rel=\"external nofollow noopener noreferrer\">Telegram comments<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 评论</strong>系统</li><li>支持 <strong><a href=https://commento.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Commento<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://utteranc.es/ target=_blank rel=\"external nofollow noopener noreferrer\">Utterances<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://artalk.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Artalk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://twikoo.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Twikoo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li><li>支持 <strong><a href=https://giscus.app/zh-CN/ target=_blank rel=\"external nofollow noopener noreferrer\">giscus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></strong> 评论系统</li></ul><h3 class=heading-element id=扩展功能><span>扩展功能</span>\n<a href=#%e6%89%a9%e5%b1%95%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>支持基于 <a href=\"https://ai.zhheo.com/console/login?InviteID=85041330\" target=_blank rel=\"external nofollow noopener noreferrer\">PostChat<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的 <strong>AI 摘要</strong>、<strong>AI 搜索</strong> 和 <strong>AI 智能客服</strong></li><li>支持<strong>渐进式网页应用</strong></li><li>支持<strong>二级菜单</strong></li><li>支持<strong>内容加密</strong>（页面、局部）</li><li>支持<strong>友情链接</strong>的页面模板</li><li>支持基于 <a href=https://www.algolia.com/ target=_blank rel=\"external nofollow noopener noreferrer\">algolia<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://fusejs.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Fuse.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、 <strong>CSE</strong> 或 <a href=\"https://ai.zhheo.com/console/login?InviteID=85041330\" target=_blank rel=\"external nofollow noopener noreferrer\">PostChat<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>搜索</strong></li><li>支持基于 <a href=https://programmablesearchengine.google.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Google<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>自定义搜索引擎 (CSE)</strong></li><li>支持 <strong>Twemoji</strong></li><li>支持<strong>代码高亮</strong></li><li>一键<strong>复制代码</strong>到剪贴板</li><li>支持基于 <a href=https://github.com/sachinchoolur/lightgallery target=_blank rel=\"external nofollow noopener noreferrer\">lightgallery<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>图片画廊</strong></li><li>支持 <strong><a href=https://fontawesome.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 图标</strong>的 Markdown 扩展语法</li><li>支持<strong>上标注释</strong>的 Markdown 扩展语法</li><li>支持<strong>分数</strong>的 Markdown 扩展语法</li><li>支持多种 <strong>admonitions</strong> shortcode 或 <strong>alerts</strong> 的 Markdown 扩展语法</li><li>支持<strong>标签页</strong>的 shortcode，提供多种设计样式</li><li>支持基于 <a href=https://katex.org/ target=_blank rel=\"external nofollow noopener noreferrer\">KaTeX<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或 <a href=https://www.mathjax.org target=_blank rel=\"external nofollow noopener noreferrer\">MathJax<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>数学公式</strong></li><li>支持基于 <a href=https://github.com/knsv/mermaid target=_blank rel=\"external nofollow noopener noreferrer\">mermaid<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>图表</strong> 代码块扩展语法和 shortcode</li><li>支持基于 <a href=https://echarts.apache.org/ target=_blank rel=\"external nofollow noopener noreferrer\">ECharts<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>交互式数据可视化</strong> 代码块扩展语法和 shortcode</li><li>支持 <strong>Timeline</strong> 的代码块扩展语法和 shortcode</li><li>支持 <strong>文件树</strong> 的代码块扩展语法和 shortcode</li><li>支持基于 <a href=https://docs.mapbox.com/mapbox-gl-js target=_blank rel=\"external nofollow noopener noreferrer\">Mapbox GL JS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的 <strong>Mapbox</strong> shortcode</li><li>支持基于 <a href=https://github.com/MoePlayer/APlayer target=_blank rel=\"external nofollow noopener noreferrer\">APlayer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/metowolf/MetingJS target=_blank rel=\"external nofollow noopener noreferrer\">MetingJS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>音乐播放器</strong> shortcode</li><li>支持 <strong>Bilibili 视频</strong> 和 <strong>抖音视频</strong> shortcode</li><li>支持<strong>自定义样式</strong>的 shortcode</li><li>支持<strong>自定义脚本</strong>的 shortcode</li><li>支持<strong>自定义模板块</strong></li><li>支持基于 <a href=https://typeitjs.com/ target=_blank rel=\"external nofollow noopener noreferrer\">TypeIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>打字动画</strong> shortcode</li><li>支持基于 <a href=https://github.com/osano/cookieconsent target=_blank rel=\"external nofollow noopener noreferrer\">cookieconsent<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的 <strong>Cookie 许可横幅</strong></li><li>支持基于 <a href=https://github.com/Lruihao/watermark target=_blank rel=\"external nofollow noopener noreferrer\">cell-watermark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>网页水印</strong></li><li>支持基于 <a href=https://github.com/vinta/pangu.js target=_blank rel=\"external nofollow noopener noreferrer\">pangu.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的<strong>中文排版</strong></li><li>支持本地<strong>缓存远程图床图片</strong></li><li>……</li></ul></details><h2 class=heading-element id=多语言和国际化><span>多语言和国际化</span>\n<a href=#%e5%a4%9a%e8%af%ad%e8%a8%80%e5%92%8c%e5%9b%bd%e9%99%85%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>FixIt 主题多语言基本配置及自动翻译等详见 <a href=https://fixit.lruihao.cn/zh-cn/documentation/content-management/introduction#multilingual target=_blank rel=\"external nofollow noopener noreferrer\">内容管理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 文档，欢迎 <a href=https://github.com/hugo-fixit/FixIt/pulls target=_blank rel=\"external nofollow noopener noreferrer\">贡献一种新的语言<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><details><summary>FixIt 支持下列语言。</summary><ul><li>英语</li><li>简体中文</li><li>繁体中文</li><li>法语</li><li>波兰语</li><li>巴西葡萄牙语</li><li>意大利语</li><li>西班牙语</li><li>德语</li><li>塞尔维亚语</li><li>俄语</li><li>罗马尼亚语</li><li>越南语</li><li>印地语</li><li>日语</li><li>韩语</li></ul></details><h2 class=heading-element id=主题组件><span>主题组件</span>\n<a href=#%e4%b8%bb%e9%a2%98%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>FixIt 主题旨在在<strong>简洁性</strong>和<strong>可扩展性</strong>之间取得平衡。为此，我们开发了一系列额外的 <a href=https://fixit.lruihao.cn/zh-cn/ecosystem/#-%e7%bb%84%e4%bb%b6 target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 主题组件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 供用户选择。</p><details><summary>点击展开</summary><ul><li><a href=https://github.com/hugo-fixit/fixit-bundle target=_blank rel=\"external nofollow noopener noreferrer\">fixit-bundle<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component.</li><li><a href=https://github.com/hugo-fixit/cmpt-flyfish target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-flyfish<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🐟 A canvas implemented animation effect of small fish swimming.</li><li><a href=https://github.com/hugo-fixit/cmpt-mdevtools target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-mdevtools<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Mobile devtools component powered by vConsole and eruda.</li><li><a href=https://github.com/hugo-fixit/cmpt-santa-hat target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-santa-hat<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Christmas Easter Egg by JavaScript.</li><li><a href=https://github.com/hugo-fixit/cmpt-translate target=_blank rel=\"external nofollow noopener noreferrer\">cmpt-translate<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🌐 A component for site automatic translation.</li><li><a href=https://github.com/hugo-fixit/component-projects target=_blank rel=\"external nofollow noopener noreferrer\">component-projects<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</li><li><a href=https://github.com/hugo-fixit/hugo-atom-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-atom-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Hugo theme component for ATOM feed custom Output Format.</li><li><a href=https://github.com/hugo-fixit/hugo-json-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-json-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>Hugo theme component for JSON feed custom Output Format.</li><li><a href=https://github.com/hugo-fixit/shortcode-asciinema target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-asciinema<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with asciinema-embed shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-caniuse target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-caniuse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with caniuse shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-docs-bookmark target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-docs-bookmark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🔖 Embed bookmark of FixIt Docs.</li><li><a href=https://github.com/hugo-fixit/shortcode-missing-translation target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-missing-translation<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with missing-translation shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-mmt-netease target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-mmt-netease<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</li><li><a href=https://github.com/hugo-fixit/shortcode-rewards target=_blank rel=\"external nofollow noopener noreferrer\">shortcode-rewards<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>A Hugo theme component with reward-log or sponsor-log shortcode.</li></ul></details><h2 class=heading-element id=社区支持><span>社区支持</span>\n<a href=#%e7%a4%be%e5%8c%ba%e6%94%af%e6%8c%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>所有的反馈都是欢迎的！详见 <a href=https://github.com/hugo-fixit/FixIt/discussions target=_blank rel=\"external nofollow noopener noreferrer\">Discussions<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://github.com/hugo-fixit/FixIt/pulls target=_blank rel=\"external nofollow noopener noreferrer\">Pull requests<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/hugo-fixit/FixIt/issues target=_blank rel=\"external nofollow noopener noreferrer\">Issues<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>官方社区</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left><a href=https://github.com/hugo-fixit/FixIt/discussions target=_blank rel=\"external nofollow noopener noreferrer\">Discussions<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>GitHub 讨论区</td></tr><tr><td style=text-align:left><a href=https://lruihao.cn/images/qr-wx-mp.webp target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题交流群（微信）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>关注「菠菜眾長」回复“FixIt”获取</td></tr><tr><td style=text-align:left><a href=\"https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&amp;jump_from=webapi\" target=_blank rel=\"external nofollow noopener noreferrer\">FixIt 主题交流群（QQ）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>QQ 群：<code>814031017</code></td></tr><tr><td style=text-align:left><a href=https://t.zsxq.com/GgKEW target=_blank rel=\"external nofollow noopener noreferrer\">Hugo FixIt 星球<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></td><td style=text-align:left>付费知识星球</td></tr></tbody></table></div><h2 class=heading-element id=参与贡献><span>参与贡献</span>\n<a href=#%e5%8f%82%e4%b8%8e%e8%b4%a1%e7%8c%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>我们欢迎你加入 FixIt 的开发，贡献出你的一份力量。请看开源 <a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/CONTRIBUTING.md target=_blank rel=\"external nofollow noopener noreferrer\">贡献指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。 🤗</p><p>你也可以随时向我们的 <a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">官方插件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 提交 Issue 或 Pull Request。</p><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>在贡献时，请先通过此存储库上的讨论来讨论你希望进行的更改，然后再进行实际更改。</p></div><h2 class=heading-element id=致谢><span>致谢</span>\n<a href=#%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>感谢 <a href=https://github.com/hugo-fixit/FixIt/graphs/contributors target=_blank rel=\"external nofollow noopener noreferrer\">所有贡献者<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的支持！</p><p>感谢 <a href=https://github.com/HEIGE-PCloud/DoIt target=_blank rel=\"external nofollow noopener noreferrer\">Hugo DoIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题和 <a href=https://github.com/next-theme/hexo-theme-next target=_blank rel=\"external nofollow noopener noreferrer\">Hexo NexT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题给予的灵感和借鉴。</p><details><summary>感谢 FixIt 主题中使用的所有开源项目。</summary><ul><li><a href=https://github.com/necolas/normalize.css target=_blank rel=\"external nofollow noopener noreferrer\">normalize.css<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fontawesome.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Font Awesome<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/simple-icons/simple-icons target=_blank rel=\"external nofollow noopener noreferrer\">Simple Icons<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://daneden.github.io/animate.css/ target=_blank rel=\"external nofollow noopener noreferrer\">Animate.css<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/algolia/autocomplete target=_blank rel=\"external nofollow noopener noreferrer\">autocomplete-js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/algolia/algoliasearch-client-javascript target=_blank rel=\"external nofollow noopener noreferrer\">algoliasearch<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fusejs.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Fuse.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/fregante/object-fit-images target=_blank rel=\"external nofollow noopener noreferrer\">object-fit-images<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/twitter/twemoji target=_blank rel=\"external nofollow noopener noreferrer\">Twemoji<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/iamcal/emoji-data target=_blank rel=\"external nofollow noopener noreferrer\">emoji-data<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/sachinchoolur/lightgallery target=_blank rel=\"external nofollow noopener noreferrer\">lightgallery<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/ellisonleao/sharer.js target=_blank rel=\"external nofollow noopener noreferrer\">Sharer.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://typeitjs.com/ target=_blank rel=\"external nofollow noopener noreferrer\">TypeIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://katex.org/ target=_blank rel=\"external nofollow noopener noreferrer\">KaTeX<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.mathjax.org target=_blank rel=\"external nofollow noopener noreferrer\">MathJax<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/mermaid-js/mermaid target=_blank rel=\"external nofollow noopener noreferrer\">mermaid<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://echarts.apache.org/ target=_blank rel=\"external nofollow noopener noreferrer\">ECharts<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://docs.mapbox.com/mapbox-gl-js target=_blank rel=\"external nofollow noopener noreferrer\">Mapbox GL JS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/MoePlayer/APlayer target=_blank rel=\"external nofollow noopener noreferrer\">APlayer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/metowolf/MetingJS target=_blank rel=\"external nofollow noopener noreferrer\">MetingJS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/gitalk/gitalk target=_blank rel=\"external nofollow noopener noreferrer\">Gitalk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://valine.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Valine<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/osano/cookieconsent target=_blank rel=\"external nofollow noopener noreferrer\">cookieconsent<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/watermark target=_blank rel=\"external nofollow noopener noreferrer\">cell-watermark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=http://busuanzi.ibruce.info/ target=_blank rel=\"external nofollow noopener noreferrer\">不蒜子<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/EvanNotFound/vercount target=_blank rel=\"external nofollow noopener noreferrer\">Vercount<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/vinta/pangu.js target=_blank rel=\"external nofollow noopener noreferrer\">pangu.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://artalk.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Artalk<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://waline.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Waline<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://twikoo.js.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Twikoo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/tholman/github-corners target=_blank rel=\"external nofollow noopener noreferrer\">github-corners<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://giscus.app/zh-CN target=_blank rel=\"external nofollow noopener noreferrer\">giscus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/brix/crypto-js target=_blank rel=\"external nofollow noopener noreferrer\">crypto-js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/CodeByZach/pace target=_blank rel=\"external nofollow noopener noreferrer\">pace<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/jungomi/xxhash-wasm target=_blank rel=\"external nofollow noopener noreferrer\">xxhash-wasm<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/github/tab-container-element target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;tab-container></code> element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/json-viewer-element target=_blank rel=\"external nofollow noopener noreferrer\"><code>&lt;json-viewer></code> element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=许可协议><span>许可协议</span>\n<a href=#%e8%ae%b8%e5%8f%af%e5%8d%8f%e8%ae%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>FixIt 根据 <strong>MIT</strong> 许可协议授权。更多信息请查看 <a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/LICENSE target=_blank rel=\"external nofollow noopener noreferrer\">LICENSE 文件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=赞助支持><span>赞助支持</span>\n<a href=#%e8%b5%9e%e5%8a%a9%e6%94%af%e6%8c%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>如果你喜爱这个主题，请考虑给我买杯咖啡 ☕️，谢谢！</p><ul><li><a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/images/wechatpay.jpg target=_blank rel=\"external nofollow noopener noreferrer\">微信支付<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/images/alipay.jpg target=_blank rel=\"external nofollow noopener noreferrer\">支付宝<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://paypal.me/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">PayPal<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>感谢以下赞助商提供大力支持：</p><ul><li><a href=https://github.com/xnx3/translate target=_blank rel=\"external nofollow noopener noreferrer\">translate.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 赞助<a href=https://translate.zvo.cn/4087.html target=_blank rel=\"external nofollow noopener noreferrer\">企业级翻译通道<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</li></ul><h2 class=heading-element id=作者><span>作者</span>\n<a href=#%e4%bd%9c%e8%80%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Lruihao title=\"在 GitHub 上关注我\" target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/hugo-blog/ class=collection-nav-item rel=prev title=Lruihao/hugo-blog><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/hugo-blog</span>\n</a><a href=/projects/hugo-fixit/docs/ class=collection-nav-item rel=next title=hugo-fixit/docs><span>hugo-fixit/docs</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:08:15\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/fixit/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/FixIt/blob/main/README.zh-cn.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/FixIt/edit/main/README.zh-cn.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/fixit/ data-title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\" data-hashtags=algolia,blog,giscus,hugo,hugo-blog,hugo-blog-theme,hugo-fixit,hugo-theme,pwa,pwa-app><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/fixit/ data-hashtag=algolia><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/fixit/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/fixit/ data-title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/fixit/ data-title=\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/algolia/ class=post-tag title=\"标签 - algolia\">algolia</a><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/giscus/ class=post-tag title=\"标签 - giscus\">giscus</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-blog/ class=post-tag title=\"标签 - hugo-blog\">hugo-blog</a><a href=/tags/hugo-blog-theme/ class=post-tag title=\"标签 - hugo-blog-theme\">hugo-blog-theme</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/hugo-theme/ class=post-tag title=\"标签 - hugo-theme\">hugo-theme</a><a href=/tags/pwa/ class=post-tag title=\"标签 - pwa\">pwa</a><a href=/tags/pwa-app/ class=post-tag title=\"标签 - pwa-app\">pwa-app</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/subl_imgpaste2/ class=post-nav-item rel=prev title=\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a><a href=/posts/gtd/ class=post-nav-item rel=next title=\"Getting Things Done for Ios App Reminders and Github Issues\">Getting Things Done for Ios App Reminders and Github Issues<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#即时预览>即时预览</a></li><li><a href=#使用指南>使用指南</a><ul><li><a href=#主题文档>主题文档</a></li><li><a href=#快速开始>快速开始</a></li><li><a href=#模板>模板</a></li></ul></li><li><a href=#特色>特色</a><ul><li><a href=#性能和-seo>性能和 SEO</a></li><li><a href=#外观和布局>外观和布局</a></li><li><a href=#社交和评论系统>社交和评论系统</a></li><li><a href=#扩展功能>扩展功能</a></li></ul></li><li><a href=#多语言和国际化>多语言和国际化</a></li><li><a href=#主题组件>主题组件</a></li><li><a href=#社区支持>社区支持</a></li><li><a href=#参与贡献>参与贡献</a></li><li><a href=#致谢>致谢</a></li><li><a href=#许可协议>许可协议</a></li><li><a href=#赞助支持>赞助支持</a></li><li><a href=#作者>作者</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/fixit/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/fixit/index.md",
    "content": "# 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\n\n<!-- markdownlint-disable-file MD033 MD041 -->\n![Hugo Theme FixIt](https://fixit.lruihao.cn/images/apple-devices-preview.png)\n\n<div align=\"center\" class=\"ignore\">\n  <p>\n    FixIt 是一个简洁、优雅且高效的 <a href=\"https://gohugo.io/\">Hugo</a> 博客主题。<br>\n    <em><sub>如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！</sub></em>\n  </p>\n  <a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\">English</a> |\n  简体中文 |\n  <a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\">繁體中文</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\">Français</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\">Русский язык</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\">Español</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\">हिन्दी</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\">Deutsch</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\">한국어</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\">日本語</a>\n</div>\n\n<a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"><img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&v=4\"></a>\n\n# FixIt\n\n> 它的原型基于 [LoveIt](https://github.com/dillonzq/LoveIt) 主题，[KeepIt](https://github.com/Fastbyte01/KeepIt) 主题和 [LeaveIt](https://github.com/liuzc/LeaveIt) 主题。\n\n[![Build](https://img.shields.io/github/deployments/hugo-fixit/FixIt/Production?style=flat&label=Build&logo=vercel)](https://demo.fixit.lruihao.cn/)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/hugo-fixit/FixIt?style=flat&label=Release&logo=github&include_prereleases)](https://github.com/hugo-fixit/FixIt/releases)\n[![Hugo](https://img.shields.io/badge/Hugo-%5E0.156.0-ff4088?style=flat&logo=hugo)](https://gohugo.io/)\n[![License](https://img.shields.io/github/license/hugo-fixit/FixIt?style=flat&label=License)](https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/hugo-fixit/FixIt?style=social)](https://github.com/hugo-fixit/FixIt)\n[![Gitee star of FixIt](https://gitee.com/lruihao/FixIt/badge/star.svg)](https://gitee.com/lruihao/FixIt/stargazers)\n\n> [!WARNING]\n> **v0.x 版本仅接受 bug 修复，如需提交新功能，请基于 [v1](https://github.com/hugo-fixit/FixIt/tree/v1) 分支开发。**\n>\n> 1.0 版本计划在 **2027 年上半年** 发布，欢迎加入开发和讨论！详见 [v1 里程碑](https://github.com/hugo-fixit/FixIt/milestone/8)。\n\n## 即时预览\n\n<p align=\"center\">\n  💟 <a href=\"https://fixit.lruihao.cn\">Docs</a> | ❇️ <a href=\"https://demo.fixit.lruihao.cn/test/\">Test</a> | 🚼 <a href=\"https://demo.fixit.lruihao.cn\">Demo</a> | 🆕 <a href=\"https://hugo-fixit.github.io/hugo-fixit-starter/\">Starter</a>\n<br>\n<br>\n  更多 FixIt 的例子参见 <a href=\"https://fixit.lruihao.cn/zh-cn/showcase/\">这里</a>。\n</p>\n\n## 使用指南\n\n### 主题文档\n\n前往 [快速上手](https://fixit.lruihao.cn/zh-cn/documentation/getting-started/quick-start/) 页面，了解如何使用 FixIt 主题创建一个新网站的详细步骤。\n\n大纲：[安装篇](https://fixit.lruihao.cn/zh-cn/documentation/installation/) ➜ [入门篇](https://fixit.lruihao.cn/zh-cn/documentation/getting-started/) ➜ [内容管理](https://fixit.lruihao.cn/zh-cn/documentation/content-management/) ➜ [进阶篇](https://fixit.lruihao.cn/zh-cn/documentation/advanced/)\n\n### 快速开始\n\n我们提供了一个 CLI 工具，可以通过一个命令来创建一个新的 FixIt 项目。\n\n```bash\npnpx fixit-cli create my-blog\n```\n\n[![asciicast](https://asciinema.org/a/697494.svg)](https://asciinema.org/a/697494)\n\n### 模板\n\n点击以下链接使用模板生成一个新的仓库：\n\n| 模板                                | 仓库                              | 生成链接                          |\n| :---------------------------------- | :-------------------------------- | :-------------------------------: |\n| 基于 Hugo Modules 的快速入门模板。  | [hugo-fixit-starter][starter]     | [点击生成][starter:generate]      |\n| 基于 Git submodule 的快速入门模板。 | [hugo-fixit-starter1][starter1]   | [点击生成][starter1:generate]     |\n| 使用 Fixit 主题构建多语言网站。     | [docs][docs]                      | [点击生成][docs:generate]         |\n| 基于 FixIt 主题进行自定义设置。     | [Lruihao/hugo-blog][lruihao-blog] | [点击生成][lruihao-blog:generate] |\n\n[starter]: https://github.com/hugo-fixit/hugo-fixit-starter\n[starter:generate]: https://github.com/hugo-fixit/hugo-fixit-starter/generate\n[starter1]: https://github.com/hugo-fixit/hugo-fixit-starter1\n[starter1:generate]: https://github.com/hugo-fixit/hugo-fixit-starter1/generate\n[docs]: https://github.com/hugo-fixit/docs\n[docs:generate]: https://github.com/hugo-fixit/docs/generate\n[lruihao-blog]: https://github.com/Lruihao/hugo-blog\n[lruihao-blog:generate]: https://github.com/Lruihao/hugo-blog/generate\n\n## 特色\n\n<details>\n<summary>点击展开</summary>\n\n### 性能和 SEO\n\n- **性能**优化：在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中，99/100 的移动设备得分和 100/100 的桌面设备得分\n- 使用基于 JSON-LD 格式 的 **SEO SCHEMA** 文件进行 SEO 优化\n- 支持 **[Google Analytics](https://analytics.google.com/analytics)**\n- 支持 **[Fathom Analytics](https://usefathom.com/)**\n- 支持 **[百度统计](https://tongji.baidu.com/)**\n- 支持 **[Umami Analytics](https://umami.is/)**\n- 支持 **[Plausible Analytics](https://plausible.io/)**\n- 支持 **[Cloudflare Web Analytics](https://www.cloudflare.com/web-analytics)**\n- 支持 **[Splitbee Analytics](https://splitbee.io)**\n- 支持搜索引擎的**网站验证** (Google, Bing, Yandex, Pinterest, Baidu, 360 and Sogou)\n- 支持所有第三方库的 **CDN**\n\n### 外观和布局\n\n- **响应式**布局\n- **浅色/深色** 主题模式\n- 全局一致的**设计语言**\n- 支持**分页**\n- 易用和自动展开的**文章目录**\n- 支持**多语言**和国际化\n- 美观的 **CSS 动画**\n\n### 社交和评论系统\n\n- 支持 **[Gravatar](https://gravatar.com)** 头像\n- 支持本地**头像**\n- 支持多达 **87** 种社交链接\n- 支持多达 **28** 种网站分享\n- 支持 **[Disqus](https://disqus.com)** 评论系统\n- 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统\n- 支持 **[Valine](https://valine.js.org/)** 评论系统\n- 支持 **[Waline](https://waline.js.org/)** 评论系统\n- 支持 **[Facebook](https://developers.facebook.com/docs/plugins/comments/) 评论**系统\n- 支持 **[Telegram comments](https://comments.app/) 评论**系统\n- 支持 **[Commento](https://commento.io/)** 评论系统\n- 支持 **[Utterances](https://utteranc.es/)** 评论系统\n- 支持 **[Artalk](https://artalk.js.org/)** 评论系统\n- 支持 **[Twikoo](https://twikoo.js.org/)** 评论系统\n- 支持 **[giscus](https://giscus.app/zh-CN/)** 评论系统\n\n### 扩展功能\n\n- 支持基于 [PostChat](https://ai.zhheo.com/console/login?InviteID=85041330) 的 **AI 摘要**、**AI 搜索** 和 **AI 智能客服**\n- 支持**渐进式网页应用**\n- 支持**二级菜单**\n- 支持**内容加密**（页面、局部）\n- 支持**友情链接**的页面模板\n- 支持基于 [algolia](https://www.algolia.com/)、[Fuse.js](https://fusejs.io/)、 **CSE** 或 [PostChat](https://ai.zhheo.com/console/login?InviteID=85041330) 的**搜索**\n- 支持基于 [Google](https://programmablesearchengine.google.com/) 的**自定义搜索引擎 (CSE)**\n- 支持 **Twemoji**\n- 支持**代码高亮**\n- 一键**复制代码**到剪贴板\n- 支持基于 [lightgallery](https://github.com/sachinchoolur/lightgallery) 的**图片画廊**\n- 支持 **[Font Awesome](https://fontawesome.com/) 图标**的 Markdown 扩展语法\n- 支持**上标注释**的 Markdown 扩展语法\n- 支持**分数**的 Markdown 扩展语法\n- 支持多种 **admonitions** shortcode 或 **alerts** 的 Markdown 扩展语法\n- 支持**标签页**的 shortcode，提供多种设计样式\n- 支持基于 [KaTeX](https://katex.org/) 或 [MathJax](https://www.mathjax.org) 的**数学公式**\n- 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表** 代码块扩展语法和 shortcode\n- 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化** 代码块扩展语法和 shortcode\n- 支持 **Timeline** 的代码块扩展语法和 shortcode\n- 支持 **文件树** 的代码块扩展语法和 shortcode\n- 支持基于 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 的 **Mapbox** shortcode\n- 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的**音乐播放器** shortcode\n- 支持 **Bilibili 视频** 和 **抖音视频** shortcode\n- 支持**自定义样式**的 shortcode\n- 支持**自定义脚本**的 shortcode\n- 支持**自定义模板块**\n- 支持基于 [TypeIt](https://typeitjs.com/) 的**打字动画** shortcode\n- 支持基于 [cookieconsent](https://github.com/osano/cookieconsent) 的 **Cookie 许可横幅**\n- 支持基于 [cell-watermark](https://github.com/Lruihao/watermark) 的**网页水印**\n- 支持基于 [pangu.js](https://github.com/vinta/pangu.js) 的**中文排版**\n- 支持本地**缓存远程图床图片**\n- ……\n\n</details>\n\n## 多语言和国际化\n\nFixIt 主题多语言基本配置及自动翻译等详见 [内容管理](https://fixit.lruihao.cn/zh-cn/documentation/content-management/introduction#multilingual) 文档，欢迎 [贡献一种新的语言](https://github.com/hugo-fixit/FixIt/pulls)。\n\n<details>\n<summary>FixIt 支持下列语言。</summary>\n\n- 英语\n- 简体中文\n- 繁体中文\n- 法语\n- 波兰语\n- 巴西葡萄牙语\n- 意大利语\n- 西班牙语\n- 德语\n- 塞尔维亚语\n- 俄语\n- 罗马尼亚语\n- 越南语\n- 印地语\n- 日语\n- 韩语\n\n</details>\n\n## 主题组件\n\nFixIt 主题旨在在**简洁性**和**可扩展性**之间取得平衡。为此，我们开发了一系列额外的 [Hugo 主题组件](https://fixit.lruihao.cn/zh-cn/ecosystem/#-组件) 供用户选择。\n\n<details>\n<summary>点击展开</summary>\n\n<!-- HUGO_FIXIT_COMPONENTS:START -->\n- [fixit-bundle](https://github.com/hugo-fixit/fixit-bundle)\\\n  🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component.\n- [cmpt-flyfish](https://github.com/hugo-fixit/cmpt-flyfish)\\\n  🐟 A canvas implemented animation effect of small fish swimming.\n- [cmpt-mdevtools](https://github.com/hugo-fixit/cmpt-mdevtools)\\\n  Mobile devtools component powered by vConsole and eruda.\n- [cmpt-santa-hat](https://github.com/hugo-fixit/cmpt-santa-hat)\\\n  A Christmas Easter Egg by JavaScript.\n- [cmpt-translate](https://github.com/hugo-fixit/cmpt-translate)\\\n  🌐 A component for site automatic translation.\n- [component-projects](https://github.com/hugo-fixit/component-projects)\\\n  🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\n- [hugo-atom-feed](https://github.com/hugo-fixit/hugo-atom-feed)\\\n  Hugo theme component for ATOM feed custom Output Format.\n- [hugo-json-feed](https://github.com/hugo-fixit/hugo-json-feed)\\\n  Hugo theme component for JSON feed custom Output Format.\n- [shortcode-asciinema](https://github.com/hugo-fixit/shortcode-asciinema)\\\n  A Hugo theme component with asciinema-embed shortcode.\n- [shortcode-caniuse](https://github.com/hugo-fixit/shortcode-caniuse)\\\n  A Hugo theme component with caniuse shortcode.\n- [shortcode-docs-bookmark](https://github.com/hugo-fixit/shortcode-docs-bookmark)\\\n  🔖 Embed bookmark of FixIt Docs.\n- [shortcode-missing-translation](https://github.com/hugo-fixit/shortcode-missing-translation)\\\n  A Hugo theme component with missing-translation shortcode.\n- [shortcode-mmt-netease](https://github.com/hugo-fixit/shortcode-mmt-netease)\\\n  🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\n- [shortcode-rewards](https://github.com/hugo-fixit/shortcode-rewards)\\\n  A Hugo theme component with reward-log or sponsor-log shortcode.\n<!-- HUGO_FIXIT_COMPONENTS:END -->\n\n</details>\n\n## 社区支持\n\n所有的反馈都是欢迎的！详见 [Discussions][discussions]、[Pull requests][pulls] 和 [Issues][issues]。\n\n| 官方社区                           | 说明                            |\n| :--------------------------------- | :------------------------------ |\n| [Discussions][discussions]         | GitHub 讨论区                   |\n| [FixIt 主题交流群（微信）][wx-mp]  | 关注「菠菜眾長」回复“FixIt”获取 |\n| [FixIt 主题交流群（QQ）][qq-group] | QQ 群：`814031017`              |\n| [Hugo FixIt 星球][zsxq]            | 付费知识星球                    |\n\n[discussions]: https://github.com/hugo-fixit/FixIt/discussions\n[pulls]: https://github.com/hugo-fixit/FixIt/pulls\n[issues]: https://github.com/hugo-fixit/FixIt/issues\n[qq-group]: https://qm.qq.com/cgi-bin/qm/qr?k=awbwdTtSQ_-H5QGzeJxdWgv6JMbNehNM&jump_from=webapi\n[zsxq]: https://t.zsxq.com/GgKEW\n[wx-mp]: https://lruihao.cn/images/qr-wx-mp.webp\n\n## 参与贡献\n\n我们欢迎你加入 FixIt 的开发，贡献出你的一份力量。请看开源 [贡献指南](https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/CONTRIBUTING.md)。 🤗\n\n你也可以随时向我们的 [官方插件](https://github.com/hugo-fixit) 提交 Issue 或 Pull Request。\n\n> [!note]\n> 在贡献时，请先通过此存储库上的讨论来讨论你希望进行的更改，然后再进行实际更改。\n\n## 致谢\n\n感谢 [所有贡献者](https://github.com/hugo-fixit/FixIt/graphs/contributors) 的支持！\n\n感谢 [Hugo DoIt](https://github.com/HEIGE-PCloud/DoIt) 主题和 [Hexo NexT](https://github.com/next-theme/hexo-theme-next) 主题给予的灵感和借鉴。\n\n<details>\n<summary>感谢 FixIt 主题中使用的所有开源项目。</summary>\n\n- [normalize.css](https://github.com/necolas/normalize.css)\n- [Font Awesome](https://fontawesome.com/)\n- [Simple Icons](https://github.com/simple-icons/simple-icons)\n- [Animate.css](https://daneden.github.io/animate.css/)\n- [autocomplete-js](https://github.com/algolia/autocomplete)\n- [algoliasearch](https://github.com/algolia/algoliasearch-client-javascript)\n- [Fuse.js](https://fusejs.io/)\n- [object-fit-images](https://github.com/fregante/object-fit-images)\n- [Twemoji](https://github.com/twitter/twemoji)\n- [emoji-data](https://github.com/iamcal/emoji-data)\n- [lightgallery](https://github.com/sachinchoolur/lightgallery)\n- [Sharer.js](https://github.com/ellisonleao/sharer.js)\n- [TypeIt](https://typeitjs.com/)\n- [KaTeX](https://katex.org/)\n- [MathJax](https://www.mathjax.org)\n- [mermaid](https://github.com/mermaid-js/mermaid)\n- [ECharts](https://echarts.apache.org/)\n- [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js)\n- [APlayer](https://github.com/MoePlayer/APlayer)\n- [MetingJS](https://github.com/metowolf/MetingJS)\n- [Gitalk](https://github.com/gitalk/gitalk)\n- [Valine](https://valine.js.org/)\n- [cookieconsent](https://github.com/osano/cookieconsent)\n- [cell-watermark](https://github.com/Lruihao/watermark)\n- [不蒜子](http://busuanzi.ibruce.info/)\n- [Vercount](https://github.com/EvanNotFound/vercount)\n- [pangu.js](https://github.com/vinta/pangu.js)\n- [Artalk](https://artalk.js.org/)\n- [Waline](https://waline.js.org/)\n- [Twikoo](https://twikoo.js.org/)\n- [github-corners](https://github.com/tholman/github-corners)\n- [giscus](https://giscus.app/zh-CN)\n- [crypto-js](https://github.com/brix/crypto-js)\n- [pace](https://github.com/CodeByZach/pace)\n- [xxhash-wasm](https://github.com/jungomi/xxhash-wasm)\n- [`<tab-container>` element](https://github.com/github/tab-container-element)\n- [`<json-viewer>` element](https://github.com/Lruihao/json-viewer-element)\n\n</details>\n\n## 许可协议\n\nFixIt 根据 **MIT** 许可协议授权。更多信息请查看 [LICENSE 文件](https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/LICENSE)。\n\n## 赞助支持\n\n如果你喜爱这个主题，请考虑给我买杯咖啡 ☕️，谢谢！\n\n- [微信支付](https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/images/wechatpay.jpg)\n- [支付宝](https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/images/alipay.jpg)\n- [PayPal](https://paypal.me/Lruihao)\n\n感谢以下赞助商提供大力支持：\n\n- [translate.js](https://github.com/xnx3/translate) 赞助[企业级翻译通道](https://translate.zvo.cn/4087.html)。\n\n## 作者\n\n[Lruihao](https://github.com/Lruihao \"在 GitHub 上关注我\")\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/fixit/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/fixit-cli/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🛠️ A node-based tooling for FixIt site initialization. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\"><meta name=keywords content='fixit-cli,hugo,hugo-fixit,nodejs,scaffolding-tool'><meta itemprop=name content=\"🛠️ A node-based tooling for FixIt site initialization.\"><meta itemprop=description content=\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\"><meta itemprop=datePublished content=\"2023-11-20T06:40:09+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:22+00:00\"><meta itemprop=wordCount content=\"366\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"fixit-cli,Hugo,hugo-fixit,nodejs,scaffolding-tool\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🛠️ A node-based tooling for FixIt site initialization.\"><meta property=\"og:description\" content=\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-11-20T06:40:09+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:22+00:00\"><meta property=\"article:tag\" content=\"fixit-cli\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"nodejs\"><meta property=\"article:tag\" content=\"scaffolding-tool\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🛠️ A node-based tooling for FixIt site initialization.\"><meta name=twitter:description content=\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ title=\"🛠️ A node-based tooling for FixIt site initialization. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/aws-solution/ title=\"探索 AWS 云上一站式解决方案免费使用\"><link rel=next type=text/html href=https://lruihao.cn/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/fixit-cli/index.md title=\"🛠️ A node-based tooling for FixIt site initialization. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit-cli\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"fixit-cli, hugo, hugo-fixit, nodejs, scaffolding-tool\",\"wordcount\":366,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit-cli\\/\",\"datePublished\":\"2023-11-20T06:40:09+00:00\",\"dateModified\":\"2026-05-06T03:02:22+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/fixit-cli/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/fixit-cli</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><span class=active title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</span></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/el-table-sticky/ class=collection-nav-item rel=prev title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>24/51</span><a href=/projects/fixit-cli/ class=collection-nav-item rel=next title=\"用 Node.js 开发一个轻量脚手架\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🛠️ A node-based tooling for FixIt site initialization.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/fixit-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://www.npmjs.com/package/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\">https://www.npmjs.com/package/fixit-cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-11-20 06:40:09\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-11-20>2023-11-20</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:22\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"366 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🛠️ A node-based tooling for FixIt site initialization.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#系统依赖>系统依赖</a></li><li><a href=#使用>使用</a><ul><li><a href=#create>create</a></li><li><a href=#split>split</a></li><li><a href=#toml2yaml>toml2yaml</a></li><li><a href=#check>check</a></li></ul></li><li><a href=#更多帮助>更多帮助</a></li><li><a href=#开发>开发</a><ul><li><a href=#todo-list>TODO List</a></li></ul></li><li><a href=#相关项目>相关项目</a></li><li><a href=#作者>作者</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=fixit-cli data-decreased><span>FixIt CLI</span>\n<a href=#fixit-cli class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://www.npmjs.com/package/fixit-cli target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/fixit-cli_10155792500185738668.svg alt=\"NPM version\"></a></p><p>👉 中文 | <a href=https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>🛠️ 一个基于 Node.js 开发的用于 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 站点初始化的脚手架工具。</p><p><a href=https://asciinema.org/a/697494 target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/fixit-cli_5868606310889221449.gif alt=asciicast height=646 width=940></a></p><h2 class=heading-element id=系统依赖><span>系统依赖</span>\n<a href=#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://nodejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Node.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> (>= 18)</li><li><a href=https://git-scm.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 扩展版</li></ul><p>如果你使用 <a href=https://gohugo.io/hugo-modules/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 功能加载主题，你还需要安装 <a href=https://go.dev/dl/ target=_blank rel=\"external nofollow noopener noreferrer\">Go<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=使用><span>使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>使用 <a href=https://pnpm.io/cli/dlx target=_blank rel=\"external nofollow noopener noreferrer\"><code>pnpx</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或者 <a href=https://docs.npmjs.com/cli/v11/commands/npx target=_blank rel=\"external nofollow noopener noreferrer\"><code>npx</code><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 直接运行 <code>fixit-cli</code>，创建一个新的 FixIt 项目会非常方便。</p><p>例如，创建一个名为 <code>my-blog</code> 的站点：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpx fixit-cli create my-blog</span></span></code></pre></td></tr></table></div></div></div><p>当然你也可以全局安装 <code>fixit-cli</code>，然后使用 <code>fixit</code> 命令。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install -g fixit-cli\n</span></span><span class=line><span class=cl><span class=c1># 或者</span>\n</span></span><span class=line><span class=cl>pnpm add -g fixit-cli\n</span></span><span class=line><span class=cl><span class=c1># 或者</span>\n</span></span><span class=line><span class=cl>yarn global add fixit-cli</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=create><span>create</span>\n<a href=#create class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>创建一个新的 FixIt 项目。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit create <span class=o>[</span>project-name<span class=o>]</span></span></span></code></pre></td></tr></table></div></div></div><p>创建一个新的 FixIt 组件。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit create component <span class=o>[</span>component-name<span class=o>]</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=split><span>split</span>\n<a href=#split class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <code>hugo.toml</code> 配置文件分割到 <code>config/_default</code> 目录。</p><p>分割本地文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit split hugo.toml</span></span></code></pre></td></tr></table></div></div></div><p>分割远程文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit split https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/hugo.toml\n</span></span><span class=line><span class=cl><span class=c1># 或者</span>\n</span></span><span class=line><span class=cl>fixit split https://gitee.com/lruihao/FixIt/raw/main/hugo.toml</span></span></code></pre></td></tr></table></div></div></div><p>指定输出目录：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit split hugo.toml -o config/development</span></span></code></pre></td></tr></table></div></div></div><p>分割后转换为 YAML 格式：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit split hugo.toml -y</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=toml2yaml><span>toml2yaml</span>\n<a href=#toml2yaml class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 TOML 配置文件转换为 YAML 格式，支持单个文件或整个目录。</p><p>转换单个文件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit toml2yaml hugo.toml</span></span></code></pre></td></tr></table></div></div></div><p>转换整个目录：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit toml2yaml config/</span></span></code></pre></td></tr></table></div></div></div><p>转换后替换原文件（删除 TOML 文件）：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit toml2yaml hugo.toml -r\n</span></span><span class=line><span class=cl>fixit toml2yaml config/ -r</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=check><span>check</span>\n<a href=#check class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>检查 FixIt 主题的最新版本。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>fixit check</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=更多帮助><span>更多帮助</span>\n<a href=#%e6%9b%b4%e5%a4%9a%e5%b8%ae%e5%8a%a9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>获取所有可用命令的帮助信息：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpx fixit-cli -h</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plain\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plain data-lang=plain><span class=line><span class=cl>Usage: fixit &lt;command&gt; [options]\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>=============================================\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>        ▄████  ▄█     ▄  ▄█    ▄▄▄▄▀\n</span></span><span class=line><span class=cl>        █▀   ▀ ██ ▀▄   █ ██ ▀▀▀ █\n</span></span><span class=line><span class=cl>        █▀▀    ██   █ ▀  ██     █\n</span></span><span class=line><span class=cl>        █      ▐█  ▄ █   ▐█    █\n</span></span><span class=line><span class=cl>         █      ▐ █   ▀▄  ▐   ▀\n</span></span><span class=line><span class=cl>          ▀        ▀\n</span></span><span class=line><span class=cl>              fixit-cli v1.4.0\n</span></span><span class=line><span class=cl>         A cli tool for FixIt theme.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>=============================================\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>FixIt is a clean, elegant but advanced blog theme for Hugo\n</span></span><span class=line><span class=cl>built with love by Lruihao and his friends.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Complete documentation is available at https://fixit.lruihao.cn/.\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Options:\n</span></span><span class=line><span class=cl>  -v, --version               output the version number\n</span></span><span class=line><span class=cl>  -h, --help                  display help for command\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Commands:\n</span></span><span class=line><span class=cl>  create|new [project-name]   create a new FixIt project/component from a template\n</span></span><span class=line><span class=cl>  split [options] [file]      split hugo.toml into config/_default directory\n</span></span><span class=line><span class=cl>  toml2yaml [options] [file]  convert TOML file(s) to YAML format (support directory)\n</span></span><span class=line><span class=cl>  check                       check the latest version of FixIt theme\n</span></span><span class=line><span class=cl>  help [command]              display help for command</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=开发><span>开发</span>\n<a href=#%e5%bc%80%e5%8f%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装依赖项：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm install</span></span></code></pre></td></tr></table></div></div></div><p>在开发模式下运行 CLI：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm start -h</span></span></code></pre></td></tr></table></div></div></div><p>将包链接/取消链接到全局包目录：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm link\n</span></span><span class=line><span class=cl>pnpm unlink fixit-cli</span></span></code></pre></td></tr></table></div></div></div><p>从本地路径全局安装/卸载包：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm add -g path/to/fixit-cli\n</span></span><span class=line><span class=cl>pnpm remove -g fixit-cli</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=todo-list><span>TODO List</span>\n<a href=#todo-list class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li data-task=\" \" title=未完成><i class=\"checkbox-icon fa-regular fa-square\" aria-hidden=true></i><code>fixit create</code> 命令在选择模板后增加主题组件选项选择步骤</li></ul><h2 class=heading-element id=相关项目><span>相关项目</span>\n<a href=#%e7%9b%b8%e5%85%b3%e9%a1%b9%e7%9b%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本 CLI 工具是基于以下项目开发的：</p><ul><li><a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit/hugo-fixit-starter target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-starter<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit/hugo-fixit-starter1 target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit-starter1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit/component-skeleton target=_blank rel=\"external nofollow noopener noreferrer\">component-skeleton<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=作者><span>作者</span>\n<a href=#%e4%bd%9c%e8%80%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Lruihao title=\"在 GitHub 上关注我\" target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/el-table-sticky/ class=collection-nav-item rel=prev title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</span>\n</a><a href=/projects/fixit-cli/ class=collection-nav-item rel=next title=\"用 Node.js 开发一个轻量脚手架\"><span>用 Node.js 开发一个轻量脚手架</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:22\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/fixit-cli/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/fixit-cli/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/fixit-cli/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ data-title=\"🛠️ A node-based tooling for FixIt site initialization.\" data-hashtags=fixit-cli,hugo,hugo-fixit,nodejs,scaffolding-tool><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ data-hashtag=fixit-cli><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/fixit-cli/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ data-title=\"🛠️ A node-based tooling for FixIt site initialization.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ data-title=\"🛠️ A node-based tooling for FixIt site initialization.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit-cli/ class=post-tag title=\"标签 - fixit-cli\">fixit-cli</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/nodejs/ class=post-tag title=\"标签 - nodejs\">nodejs</a><a href=/tags/scaffolding-tool/ class=post-tag title=\"标签 - scaffolding-tool\">scaffolding-tool</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/aws-solution/ class=post-nav-item rel=prev title=\"AWS 云上一站式解决方案\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>AWS 云上一站式解决方案</a><a href=/projects/fixit-cli/ class=post-nav-item rel=next title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#系统依赖>系统依赖</a></li><li><a href=#使用>使用</a><ul><li><a href=#create>create</a></li><li><a href=#split>split</a></li><li><a href=#toml2yaml>toml2yaml</a></li><li><a href=#check>check</a></li></ul></li><li><a href=#更多帮助>更多帮助</a></li><li><a href=#开发>开发</a><ul><li><a href=#todo-list>TODO List</a></li></ul></li><li><a href=#相关项目>相关项目</a></li><li><a href=#作者>作者</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/fixit-cli/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/fixit-cli/index.md",
    "content": "# 🛠️ A node-based tooling for FixIt site initialization.\n\n# FixIt CLI\n\n[![NPM version](https://img.shields.io/npm/v/fixit-cli.svg)](https://www.npmjs.com/package/fixit-cli)\n\n👉 中文 | [English](https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md)\n\n🛠️ 一个基于 Node.js 开发的用于 [FixIt](https://github.com/hugo-fixit/FixIt) 站点初始化的脚手架工具。\n\n[![asciicast](https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/fixit-cli.gif)](https://asciinema.org/a/697494)\n\n## 系统依赖\n\n- [Node.js](https://nodejs.org/) (>= 18)\n- [Git](https://git-scm.com/)\n- [Hugo](https://gohugo.io/) 扩展版\n\n如果你使用 [Hugo 模块](https://gohugo.io/hugo-modules/) 功能加载主题，你还需要安装 [Go](https://go.dev/dl/)。\n\n## 使用\n\n使用 [`pnpx`](https://pnpm.io/cli/dlx) 或者 [`npx`](https://docs.npmjs.com/cli/v11/commands/npx) 直接运行 `fixit-cli`，创建一个新的 FixIt 项目会非常方便。\n\n例如，创建一个名为 `my-blog` 的站点：\n\n```bash\npnpx fixit-cli create my-blog\n```\n\n当然你也可以全局安装 `fixit-cli`，然后使用 `fixit` 命令。\n\n```bash\nnpm install -g fixit-cli\n# 或者\npnpm add -g fixit-cli\n# 或者\nyarn global add fixit-cli\n```\n\n### create\n\n创建一个新的 FixIt 项目。\n\n```bash\nfixit create [project-name]\n```\n\n创建一个新的 FixIt 组件。\n\n```bash\nfixit create component [component-name]\n```\n\n### split\n\n将 `hugo.toml` 配置文件分割到 `config/_default` 目录。\n\n分割本地文件：\n\n```bash\nfixit split hugo.toml\n```\n\n分割远程文件：\n\n```bash\nfixit split https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/hugo.toml\n# 或者\nfixit split https://gitee.com/lruihao/FixIt/raw/main/hugo.toml\n```\n\n指定输出目录：\n\n```bash\nfixit split hugo.toml -o config/development\n```\n\n分割后转换为 YAML 格式：\n\n```bash\nfixit split hugo.toml -y\n```\n\n### toml2yaml\n\n将 TOML 配置文件转换为 YAML 格式，支持单个文件或整个目录。\n\n转换单个文件：\n\n```bash\nfixit toml2yaml hugo.toml\n```\n\n转换整个目录：\n\n```bash\nfixit toml2yaml config/\n```\n\n转换后替换原文件（删除 TOML 文件）：\n\n```bash\nfixit toml2yaml hugo.toml -r\nfixit toml2yaml config/ -r\n```\n\n### check\n\n检查 FixIt 主题的最新版本。\n\n```bash\nfixit check\n```\n\n## 更多帮助\n\n获取所有可用命令的帮助信息：\n\n```bash\npnpx fixit-cli -h\n```\n\n```plain\nUsage: fixit <command> [options]\n\n=============================================\n\n        ▄████  ▄█     ▄  ▄█    ▄▄▄▄▀\n        █▀   ▀ ██ ▀▄   █ ██ ▀▀▀ █\n        █▀▀    ██   █ ▀  ██     █\n        █      ▐█  ▄ █   ▐█    █\n         █      ▐ █   ▀▄  ▐   ▀\n          ▀        ▀\n              fixit-cli v1.4.0\n         A cli tool for FixIt theme.\n\n=============================================\n\nFixIt is a clean, elegant but advanced blog theme for Hugo\nbuilt with love by Lruihao and his friends.\n\nComplete documentation is available at https://fixit.lruihao.cn/.\n\nOptions:\n  -v, --version               output the version number\n  -h, --help                  display help for command\n\nCommands:\n  create|new [project-name]   create a new FixIt project/component from a template\n  split [options] [file]      split hugo.toml into config/_default directory\n  toml2yaml [options] [file]  convert TOML file(s) to YAML format (support directory)\n  check                       check the latest version of FixIt theme\n  help [command]              display help for command\n```\n\n## 开发\n\n安装依赖项：\n\n```bash\npnpm install\n```\n\n在开发模式下运行 CLI：\n\n```bash\npnpm start -h\n```\n\n将包链接/取消链接到全局包目录：\n\n```bash\npnpm link\npnpm unlink fixit-cli\n```\n\n从本地路径全局安装/卸载包：\n\n```bash\npnpm add -g path/to/fixit-cli\npnpm remove -g fixit-cli\n```\n\n### TODO List\n\n- [ ] `fixit create` 命令在选择模板后增加主题组件选项选择步骤\n\n## 相关项目\n\n本 CLI 工具是基于以下项目开发的：\n\n- [FixIt](https://github.com/hugo-fixit/FixIt)\n- [hugo-fixit-starter](https://github.com/hugo-fixit/hugo-fixit-starter)\n- [hugo-fixit-starter1](https://github.com/hugo-fixit/hugo-fixit-starter1)\n- [component-skeleton](https://github.com/hugo-fixit/component-skeleton)\n\n## 作者\n\n[Lruihao](https://github.com/Lruihao \"在 GitHub 上关注我\")\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/fixit-cli/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/fixit-releaser/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta name=keywords content='auto-changelog,changelog,continuous-integration,conventional-changelog,conventional-commits,hugo-fixit,nodejs,rolldown,semver'><meta itemprop=name content=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta itemprop=description content=\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta itemprop=datePublished content=\"2024-09-04T18:10:59+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=wordCount content=\"165\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"auto-changelog,changelog,continuous-integration,conventional-changelog,conventional-commits,hugo-fixit,nodejs,rolldown,SemVer\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta property=\"og:description\" content=\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-09-04T18:10:59+00:00\"><meta property=\"article:modified_time\" content=\"2025-12-10T03:29:52+00:00\"><meta property=\"article:tag\" content=\"auto-changelog\"><meta property=\"article:tag\" content=\"changelog\"><meta property=\"article:tag\" content=\"continuous-integration\"><meta property=\"article:tag\" content=\"conventional-changelog\"><meta property=\"article:tag\" content=\"conventional-commits\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta name=twitter:description content=\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ title=\"Hugo theme component for ATOM feed custom Output Format.\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/html-demo/ title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/index.md title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit-releaser\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"auto-changelog, changelog, continuous-integration, conventional-changelog, conventional-commits, hugo-fixit, nodejs, rolldown, semver\",\"wordcount\":165,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/fixit-releaser\\/\",\"datePublished\":\"2024-09-04T18:10:59+00:00\",\"dateModified\":\"2025-12-10T03:29:52+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/fixit-releaser/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/fixit-releaser</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><span class=active title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</span></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/hugo-atom-feed/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-atom-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>39/51</span><a href=/projects/lruihao/html-demo/ class=collection-nav-item rel=next title=Lruihao/html-demo><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/fixit-releaser target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/fixit-releaser<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://www.npmjs.com/package/@hugo-fixit/fixit-releaser target=_blank rel=\"external nofollow noopener noreferrer\">https://www.npmjs.com/package/@hugo-fixit/fixit-releaser<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-09-04 18:10:59\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-09-04>2024-09-04</time></span>&nbsp;<span title=\"更新于 2025-12-10 03:29:52\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-12-10>2025-12-10</time></span>&nbsp;<span title=\"165 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#-功能>✨ 功能</a></li><li><a href=#-安装>📦 安装</a></li><li><a href=#-用法>🚀 用法</a><ul><li><a href=#变更日志>变更日志</a></li><li><a href=#版本->版本 <code>*</code></a></li></ul></li><li><a href=#-配置>⚙️ 配置</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-12-10，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=fixit-releaser data-decreased><span>FixIt Releaser</span>\n<a href=#fixit-releaser class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://www.npmjs.com/package/@hugo-fixit/fixit-releaser target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/fixit-releaser_6796436360881312506.svg alt=\"NPM version\"></a></p><p>中文 | <a href=https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>版本控制、变更日志和发布工具。</p><div class=\"alert alert-caution\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/></svg>小心</p><p>该工具已停止维护！建议使用 <a href=https://github.com/Lruihao/auto-changelog-plus target=_blank rel=\"external nofollow noopener noreferrer\">auto changelog plus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或者 <a href=https://github.com/cookpete/auto-changelog target=_blank rel=\"external nofollow noopener noreferrer\">auto changelog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 生成日志。</p></div><h2 class=heading-element id=-功能><span>✨ 功能</span>\n<a href=#-%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>📝 自动生成变更日志（Conventional Commits 规范）</li><li>🔖 更新 FixIt 内部版本号 <code>*</code></li></ul><h2 class=heading-element id=-安装><span>📦 安装</span>\n<a href=#-%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>包管理器</th><th>命令</th></tr></thead><tbody><tr><td>pnpm</td><td><code>pnpm add -D @hugo-fixit/fixit-releaser</code></td></tr><tr><td>yarn</td><td><code>yarn add -D @hugo-fixit/fixit-releaser</code></td></tr><tr><td>npm</td><td><code>npm i -D @hugo-fixit/fixit-releaser</code></td></tr></tbody></table></div><p>在 <code>package.json</code> 中添加命令：</p><json-viewer value='\"{\\n  \\\"scripts\\\": {\\n    \\\"version\\\": \\\"fixit-releaser changelog -p \\u0026\\u0026 git add CHANGELOG.md\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><h2 class=heading-element id=-用法><span>🚀 用法</span>\n<a href=#-%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=变更日志><span>变更日志</span>\n<a href=#%e5%8f%98%e6%9b%b4%e6%97%a5%e5%bf%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>基于 <a href=https://www.conventionalcommits.org/zh-hans/v1.0.0/ target=_blank rel=\"external nofollow noopener noreferrer\">Conventional Commits<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 规范，支持以下类型的提交：</p><ul><li><code>feat:</code> 新功能</li><li><code>fix:</code> 修复问题</li><li><code>perf:</code> 性能优化</li><li><code>refactor:</code> 代码重构</li><li><code>docs:</code> 文档变更</li><li><code>test:</code> 测试相关</li><li><code>style:</code> 代码格式调整</li><li><code>chore:</code> 构建过程或辅助工具的变动</li><li><code>build:</code> 构建系统变动</li><li><code>ci:</code> 持续集成配置变动</li><li><code>revert:</code> 代码回滚</li><li>支持 scope：<code>feat(api):</code>, <code>fix(ui):</code> 等</li><li>支持 emoji：<code>:sparkles: feat:</code>, <code>✨ feat:</code> 等</li><li>支持 Breaking Changes：<code>feat!:</code>, <code>feat(scope)!:</code>, <code>BREAKING CHANGE:</code> 等格式</li><li>自动忽略 WIP 提交：<code>wip:</code>, <code>Wip:</code> 等临时提交不会包含在变更日志中</li></ul><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 生成全部版本的变更日志</span>\n</span></span><span class=line><span class=cl>npx fixit-releaser changelog\n</span></span><span class=line><span class=cl><span class=c1># 从指定版本开始生成变更日志</span>\n</span></span><span class=line><span class=cl>npx fixit-releaser changelog --starting-version v0.3.10</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>执行 <code>fixit-releaser changelog -h</code> 获取帮助或者参考 <a href=https://github.com/cookpete/auto-changelog target=_blank rel=\"external nofollow noopener noreferrer\">auto-changelog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 文档。</p></blockquote><h3 class=heading-element id=版本-><span>版本 <code>*</code></span>\n<a href=#%e7%89%88%e6%9c%ac- class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"alert alert-warning\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z\"/></svg>警告</p><p>已经集成到 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> monorepo，见 <a href=https://github.com/hugo-fixit/FixIt/pull/629 target=_blank rel=\"external nofollow noopener noreferrer\">FixIt#629<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><p>FixIt 内部开发版本格式如下：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-plaintext\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-plaintext data-lang=plaintext><span class=line><span class=cl>v{major}.{minor}.{patch+1}-{timestamp}-{shortHash}</span></span></code></pre></td></tr></table></div></div></div><p>例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 更新 FixIt 正式版本</span>\n</span></span><span class=line><span class=cl>npx fixit-releaser version prod\n</span></span><span class=line><span class=cl><span class=c1># 更新 FixIt 开发版本</span>\n</span></span><span class=line><span class=cl>npx fixit-releaser version dev</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=-配置><span>⚙️ 配置</span>\n<a href=#-%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>fixit-releaser changelog</code> 配置与 auto-changelog 兼容。</p><h2 class=heading-element id=-致谢><span>🙏 致谢</span>\n<a href=#-%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/cookpete/auto-changelog target=_blank rel=\"external nofollow noopener noreferrer\">auto-changelog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/hugo-atom-feed/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-atom-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/hugo-atom-feed</span>\n</a><a href=/projects/lruihao/html-demo/ class=collection-nav-item rel=next title=Lruihao/html-demo><span>Lruihao/html-demo</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-12-10 03:29:52\">更新于 2025-12-10&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/fixit-releaser/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/fixit-releaser/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/fixit-releaser/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ data-title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\" data-hashtags=auto-changelog,changelog,continuous-integration,conventional-changelog,conventional-commits,hugo-fixit,nodejs,rolldown,semver><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ data-hashtag=auto-changelog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ data-title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ data-title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/auto-changelog/ class=post-tag title=\"标签 - auto-changelog\">auto-changelog</a><a href=/tags/changelog/ class=post-tag title=\"标签 - changelog\">changelog</a><a href=/tags/continuous-integration/ class=post-tag title=\"标签 - continuous-integration\">continuous-integration</a><a href=/tags/conventional-changelog/ class=post-tag title=\"标签 - conventional-changelog\">conventional-changelog</a><a href=/tags/conventional-commits/ class=post-tag title=\"标签 - conventional-commits\">conventional-commits</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/nodejs/ class=post-tag title=\"标签 - nodejs\">nodejs</a><a href=/tags/rolldown/ class=post-tag title=\"标签 - rolldown\">rolldown</a><a href=/tags/semver/ class=post-tag title=\"标签 - SemVer\">SemVer</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/hugo-atom-feed/ class=post-nav-item rel=prev title=hugo-fixit/hugo-atom-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/hugo-atom-feed</a><a href=/projects/lruihao/html-demo/ class=post-nav-item rel=next title=Lruihao/html-demo>Lruihao/html-demo<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#-功能>✨ 功能</a></li><li><a href=#-安装>📦 安装</a></li><li><a href=#-用法>🚀 用法</a><ul><li><a href=#变更日志>变更日志</a></li><li><a href=#版本->版本 <code>*</code></a></li></ul></li><li><a href=#-配置>⚙️ 配置</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/fixit-releaser/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/fixit-releaser/index.md",
    "content": "# ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\n\n# FixIt Releaser\n\n[![NPM version](https://img.shields.io/npm/v/@hugo-fixit/fixit-releaser.svg)](https://www.npmjs.com/package/@hugo-fixit/fixit-releaser)\n\n中文 | [English](https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md)\n\n版本控制、变更日志和发布工具。\n\n> [!CAUTION]\n> 该工具已停止维护！建议使用 [auto changelog plus](https://github.com/Lruihao/auto-changelog-plus) 或者 [auto changelog](https://github.com/cookpete/auto-changelog) 生成日志。\n\n## ✨ 功能\n\n- 📝 自动生成变更日志（Conventional Commits 规范）\n- 🔖 更新 FixIt 内部版本号 `*`\n\n## 📦 安装\n\n| 包管理器 | 命令                                      |\n| -------- | ----------------------------------------- |\n| pnpm     | `pnpm add -D @hugo-fixit/fixit-releaser`  |\n| yarn     | `yarn add -D @hugo-fixit/fixit-releaser`  |\n| npm      | `npm i -D @hugo-fixit/fixit-releaser`     |\n\n在 `package.json` 中添加命令：\n\n```json\n{\n  \"scripts\": {\n    \"version\": \"fixit-releaser changelog -p && git add CHANGELOG.md\"\n  }\n}\n```\n\n## 🚀 用法\n\n### 变更日志\n\n基于 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范，支持以下类型的提交：\n\n- `feat:` 新功能\n- `fix:` 修复问题\n- `perf:` 性能优化\n- `refactor:` 代码重构\n- `docs:` 文档变更\n- `test:` 测试相关\n- `style:` 代码格式调整\n- `chore:` 构建过程或辅助工具的变动\n- `build:` 构建系统变动\n- `ci:` 持续集成配置变动\n- `revert:` 代码回滚\n- 支持 scope：`feat(api):`, `fix(ui):` 等\n- 支持 emoji：`:sparkles: feat:`, `✨ feat:` 等\n- 支持 Breaking Changes：`feat!:`, `feat(scope)!:`, `BREAKING CHANGE:` 等格式\n- 自动忽略 WIP 提交：`wip:`, `Wip:` 等临时提交不会包含在变更日志中\n\n例如：\n\n```bash\n# 生成全部版本的变更日志\nnpx fixit-releaser changelog\n# 从指定版本开始生成变更日志\nnpx fixit-releaser changelog --starting-version v0.3.10\n```\n\n> 执行 `fixit-releaser changelog -h` 获取帮助或者参考 [auto-changelog](https://github.com/cookpete/auto-changelog) 文档。\n\n### 版本 `*`\n\n> [!WARNING]\n> 已经集成到 [FixIt](https://github.com/hugo-fixit/FixIt) monorepo，见 [FixIt#629](https://github.com/hugo-fixit/FixIt/pull/629)\n\nFixIt 内部开发版本格式如下：\n\n```plaintext\nv{major}.{minor}.{patch+1}-{timestamp}-{shortHash}\n```\n\n例如：\n\n```bash\n# 更新 FixIt 正式版本\nnpx fixit-releaser version prod\n# 更新 FixIt 开发版本\nnpx fixit-releaser version dev\n```\n\n## ⚙️ 配置\n\n`fixit-releaser changelog` 配置与 auto-changelog 兼容。\n\n## 🙏 致谢\n\n- [auto-changelog](https://github.com/cookpete/auto-changelog)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/fixit-releaser/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/hugo-atom-feed/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo theme component for ATOM feed custom Output Format. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\"><meta name=keywords content='atom,feed,hugo,theme-component'><meta itemprop=name content=\"Hugo theme component for ATOM feed custom Output Format.\"><meta itemprop=description content=\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\"><meta itemprop=datePublished content=\"2024-08-22T03:29:22+00:00\"><meta itemprop=dateModified content=\"2025-12-20T06:45:59+00:00\"><meta itemprop=wordCount content=\"251\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"atom,feed,Hugo,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo theme component for ATOM feed custom Output Format.\"><meta property=\"og:description\" content=\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-08-22T03:29:22+00:00\"><meta property=\"article:modified_time\" content=\"2025-12-20T06:45:59+00:00\"><meta property=\"article:tag\" content=\"atom\"><meta property=\"article:tag\" content=\"feed\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo theme component for ATOM feed custom Output Format.\"><meta name=twitter:description content=\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ title=\"Hugo theme component for ATOM feed custom Output Format. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ title=\"Hugo theme component for JSON feed custom Output Format.\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/index.md title=\"Hugo theme component for ATOM feed custom Output Format. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo theme component for ATOM feed custom Output Format.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-atom-feed\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"atom, feed, hugo, theme-component\",\"wordcount\":251,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-atom-feed\\/\",\"datePublished\":\"2024-08-22T03:29:22+00:00\",\"dateModified\":\"2025-12-20T06:45:59+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/hugo-atom-feed/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/hugo-atom-feed</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><span class=active title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</span></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/hugo-json-feed/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-json-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>38/51</span><a href=/projects/hugo-fixit/fixit-releaser/ class=collection-nav-item rel=next title=hugo-fixit/fixit-releaser><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo theme component for ATOM feed custom Output Format.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/hugo-atom-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/hugo-atom-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-08-22 03:29:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-08-22>2024-08-22</time></span>&nbsp;<span title=\"更新于 2025-12-20 06:45:59\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-12-20>2025-12-20</time></span>&nbsp;<span title=\"251 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo theme component for ATOM feed custom Output Format.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a><ul><li><a href=#参数>参数</a></li><li><a href=#front-matter>Front matter</a></li></ul></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-12-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-atom-feed data-decreased><span>Hugo ATOM Feed</span>\n<a href=#hugo-atom-feed class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>中文 | <a href=https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>Hugo 主题组件，用于自定义 ATOM feed 输出格式。</p></blockquote><p>该组件为您的站点启用 ATOM feeds。</p><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方法与<a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>[module]\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>[[module.imports]]\n</span></span><span class=line><span class=cl>path = &#34;github.com/hugo-fixit/FixIt&#34;\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gi>+ [[module.imports]]\n</span></span></span><span class=line><span class=cl><span class=gi>+ path = &#34;github.com/hugo-fixit/hugo-atom-feed&#34;\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>将 &ldquo;atom&rdquo; 添加到您希望创建 ATOM feeds 的所有页面类型中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>outputs</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/atom.xml</span>\n</span></span><span class=line><span class=cl><span class=nx>home</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/posts/atom.xml 等</span>\n</span></span><span class=line><span class=cl><span class=nx>section</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/tags/foo/atom.xml 等</span>\n</span></span><span class=line><span class=cl><span class=nx>term</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><p>如果您的站点使用多个主题组件，则需要合并所有主题组件的 <code>outputs</code> 配置。例如，如果您的站点同时使用 <code>FixIt</code> 和 <code>hugo-atom-feed</code> 主题组件，则需要合并两个主题组件的 <code>outputs</code> 配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>outputs</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>_merge</span> <span class=p>=</span> <span class=s2>&#34;shallow&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>home</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>,</span> <span class=s2>&#34;archives&#34;</span><span class=p>,</span> <span class=s2>&#34;offline&#34;</span><span class=p>,</span> <span class=s2>&#34;readme&#34;</span><span class=p>,</span> <span class=s2>&#34;baidu_urls&#34;</span><span class=p>,</span> <span class=s2>&#34;search&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>page</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;markdown&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>section</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>taxonomy</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>term</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;atom&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=参数><span>参数</span>\n<a href=#%e5%8f%82%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>您可以在站点配置文件中设置以下参数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 全局 ATOM feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>10</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 分类页面配置（分类中的所有页面）</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>section</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 分类页面的 ATOM feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>section</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>-1</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 标签列表（分类或标签）页面配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>list</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 标签列表的 ATOM feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>list</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>-1</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>false</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=front-matter><span>Front matter</span>\n<a href=#front-matter class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>您可以在内容文件的 front matter 中设置以下参数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nn>---</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>title</span><span class=p>:</span><span class=w> </span><span class=s2>&#34;Hello World&#34;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>date</span><span class=p>:</span><span class=w> </span><span class=ld>2024-08-24T16:06:33</span><span class=m>+08</span><span class=p>:</span><span class=m>00</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>hiddenFromFeed</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>feed</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c># feed.limit 仅在分类或标签页面（_index.md）中有效。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>limit</span><span class=p>:</span><span class=w> </span><span class=m>10</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>fullText</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nn>---</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/hugo-json-feed/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-json-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/hugo-json-feed</span>\n</a><a href=/projects/hugo-fixit/fixit-releaser/ class=collection-nav-item rel=next title=hugo-fixit/fixit-releaser><span>hugo-fixit/fixit-releaser</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-12-20 06:45:59\">更新于 2025-12-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/hugo-atom-feed/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/hugo-atom-feed/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/hugo-atom-feed/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ data-title=\"Hugo theme component for ATOM feed custom Output Format.\" data-hashtags=atom,feed,hugo,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ data-hashtag=atom><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ data-title=\"Hugo theme component for ATOM feed custom Output Format.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ data-title=\"Hugo theme component for ATOM feed custom Output Format.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/atom/ class=post-tag title=\"标签 - atom\">atom</a><a href=/tags/feed/ class=post-tag title=\"标签 - feed\">feed</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/hugo-json-feed/ class=post-nav-item rel=prev title=hugo-fixit/hugo-json-feed><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/hugo-json-feed</a><a href=/projects/hugo-fixit/fixit-releaser/ class=post-nav-item rel=next title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a><ul><li><a href=#参数>参数</a></li><li><a href=#front-matter>Front matter</a></li></ul></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/hugo-atom-feed/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/hugo-atom-feed/index.md",
    "content": "# Hugo theme component for ATOM feed custom Output Format.\n\n# Hugo ATOM Feed\n\n中文 | [English](https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md)\n\n> Hugo 主题组件，用于自定义 ATOM feed 输出格式。\n\n该组件为您的站点启用 ATOM feeds。\n\n## 安装组件\n\n安装方法与[安装主题](https://fixit.lruihao.cn/documentation/installation/)相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\n\n```diff\n[module]\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/FixIt\"\n\n+ [[module.imports]]\n+ path = \"github.com/hugo-fixit/hugo-atom-feed\"\n```\n\n## 配置\n\n将 \"atom\" 添加到您希望创建 ATOM feeds 的所有页面类型中：\n\n```toml\n[outputs]\n# <baseURL>/atom.xml\nhome = [\"html\", \"rss\", \"atom\"]\n# <baseURL>/posts/atom.xml 等\nsection = [\"html\", \"rss\", \"atom\"]\n# <baseURL>/tags/foo/atom.xml 等\nterm = [\"html\", \"rss\", \"atom\"]\n```\n\n如果您的站点使用多个主题组件，则需要合并所有主题组件的 `outputs` 配置。例如，如果您的站点同时使用 `FixIt` 和 `hugo-atom-feed` 主题组件，则需要合并两个主题组件的 `outputs` 配置：\n\n```toml\n[outputs]\n_merge = \"shallow\"\nhome = [\"html\", \"rss\", \"atom\", \"archives\", \"offline\", \"readme\", \"baidu_urls\", \"search\"]\npage = [\"html\", \"markdown\"]\nsection = [\"html\", \"rss\", \"atom\"]\ntaxonomy = [\"html\"]\nterm = [\"html\", \"rss\", \"atom\"]\n```\n\n### 参数\n\n您可以在站点配置文件中设置以下参数：\n\n```toml\n[params]\n\n# 全局 ATOM feed 配置\n[params.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = 10\n# 是否在 feed 中显示全文。\nfullText = true\n\n# 分类页面配置（分类中的所有页面）\n[params.section]\n\n# 分类页面的 ATOM feed 配置\n[params.section.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = -1\n# 是否在 feed 中显示全文。\nfullText = false\n\n# 标签列表（分类或标签）页面配置\n[params.list]\n\n# 标签列表的 ATOM feed 配置\n[params.list.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = -1\n# 是否在 feed 中显示全文。\nfullText = false\n```\n\n### Front matter\n\n您可以在内容文件的 front matter 中设置以下参数：\n\n```yaml\n---\ntitle: \"Hello World\"\ndate: 2024-08-24T16:06:33+08:00\nhiddenFromFeed: true\nfeed:\n  # feed.limit 仅在分类或标签页面（_index.md）中有效。\n  limit: 10\n  fullText: true\n---\n```\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/hugo-fixit-starter/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta name=keywords content='blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter'><meta itemprop=name content=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta itemprop=description content=\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta itemprop=datePublished content=\"2022-09-30T09:28:41+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=wordCount content=\"285\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta property=\"og:description\" content=\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2022-09-30T09:28:41+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:16+00:00\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"hugo-blog\"><meta property=\"article:tag\" content=\"hugo-blog-template\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"hugo-fixit-starter\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta name=twitter:description content=\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/index.md title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-fixit-starter\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"blog, hugo-blog, hugo-blog-template, hugo-fixit, hugo-fixit-starter\",\"wordcount\":285,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-fixit-starter\\/\",\"datePublished\":\"2022-09-30T09:28:41+00:00\",\"dateModified\":\"2026-05-06T03:02:16+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/hugo-fixit-starter/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/hugo-fixit-starter</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><span class=active title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</span></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter1><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>18/51</span><a href=/projects/lruihao/vue-minder-editor-extended/ class=collection-nav-item rel=next title=Lruihao/vue-minder-editor-extended><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/hugo-fixit-starter target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/hugo-fixit-starter<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://hugo-fixit.github.io/hugo-fixit-starter/ target=_blank rel=\"external nofollow noopener noreferrer\">https://hugo-fixit.github.io/hugo-fixit-starter/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2022-09-30 09:28:41\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-09-30>2022-09-30</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"285 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#目录结构>目录结构</a></li><li><a href=#快速入门>快速入门</a><ul><li><a href=#准备>准备</a></li><li><a href=#使用模板>使用模板</a><ul><li><a href=#cli>CLI</a></li><li><a href=#手动>手动</a></li></ul></li><li><a href=#启动站点>启动站点</a></li><li><a href=#构建站点>构建站点</a></li><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#更新主题>更新主题</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-fixit-博客模板go data-decreased><span>Hugo FixIt 博客模板（Go）</span>\n<a href=#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>👉 中文 | <a href=README.en.md>English</a></p><p>这是 Hugo 主题 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的快速启动模板。它使用 <a href=https://gohugo.io/hugo-modules/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 功能加载主题。如果你更熟悉 Git，可以 <a href=https://github.com/hugo-fixit/hugo-fixit-starter1 target=_blank rel=\"external nofollow noopener noreferrer\">查看这个模板<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>它提供了基本的主题结构和 <a href=https://gohugo.io/configuration/introduction/#configuration-directory target=_blank rel=\"external nofollow noopener noreferrer\">配置目录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup>。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。</p><h2 class=heading-element id=目录结构><span>目录结构</span>\n<a href=#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>▸ .github/       <span class=c1># GitHub configuration</span>\n</span></span><span class=line><span class=cl>▸ archetypes/    <span class=c1># page archetypes (like scaffolds of archetypes)</span>\n</span></span><span class=line><span class=cl>▸ assets/        <span class=c1># css, js, third-party libraries etc.</span>\n</span></span><span class=line><span class=cl>▸ config/        <span class=c1># configuration files</span>\n</span></span><span class=line><span class=cl>▸ content/       <span class=c1># markdown files for hugo project</span>\n</span></span><span class=line><span class=cl>▸ data/          <span class=c1># blog data (allow: yaml, json, toml), e.g. friends.yml</span>\n</span></span><span class=line><span class=cl>▸ public/        <span class=c1># build directory</span>\n</span></span><span class=line><span class=cl>▸ static/        <span class=c1># static files, e.g. favicon.ico</span>\n</span></span><span class=line><span class=cl>▸ themes/        <span class=c1># theme submodules</span>\n</span></span><span class=line><span class=cl>▸ go.mod\n</span></span><span class=line><span class=cl>▸ go.sum</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=快速入门><span>快速入门</span>\n<a href=#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>完整的快速入门，请参阅此 <a href=https://fixit.lruihao.cn/documentation/getting-started/ target=_blank rel=\"external nofollow noopener noreferrer\">页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=准备><span>准备</span>\n<a href=#%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://go.dev/dl/ target=_blank rel=\"external nofollow noopener noreferrer\">Go<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://gohugo.io/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> (extended version)</li></ul><h3 class=heading-element id=使用模板><span>使用模板</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=cli><span>CLI</span>\n<a href=#cli class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npx fixit-cli create my-blog</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=手动><span>手动</span>\n<a href=#%e6%89%8b%e5%8a%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li><p>点击 <a href=https://github.com/hugo-fixit/hugo-fixit-starter/generate target=_blank rel=\"external nofollow noopener noreferrer\"><strong>Use this template</strong><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，在 GitHub 上创建你的存储库。</p><img width=913 alt=image src=https://github.com/hugo-fixit/hugo-fixit-starter1/assets/33419593/d5fbd940-3ffd-4750-b1e6-4e87b50b0696></li><li><p>存储库创建后，只需克隆并享受吧！</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 使用你自己的存储库 URL 进行克隆</span>\n</span></span><span class=line><span class=cl>git clone --recursive https://github.com/&lt;your_name&gt;/&lt;your_blog_repo&gt;.git</span></span></code></pre></td></tr></table></div></div></div></li></ol><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>仓库名决定了你的 GitHub Pages URL，例如：</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>仓库名</th><th style=text-align:left>GitHub Pages</th></tr></thead><tbody><tr><td style=text-align:left><code>&lt;your_name>.github.io</code></td><td style=text-align:left><code>https://&lt;your_name>.github.io/</code></td></tr><tr><td style=text-align:left><code>blog</code></td><td style=text-align:left><code>https://&lt;your_name>.github.io/blog/</code></td></tr></tbody></table></div></div><h3 class=heading-element id=启动站点><span>启动站点</span>\n<a href=#%e5%90%af%e5%8a%a8%e7%ab%99%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 开发环境</span>\n</span></span><span class=line><span class=cl>hugo server\n</span></span><span class=line><span class=cl><span class=c1># 生产环境</span>\n</span></span><span class=line><span class=cl>hugo server -e production</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=构建站点><span>构建站点</span>\n<a href=#%e6%9e%84%e5%bb%ba%e7%ab%99%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当你的站点准备部署时，运行以下命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=部署到-github-pages><span>部署到 GitHub Pages</span>\n<a href=#%e9%83%a8%e7%bd%b2%e5%88%b0-github-pages class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。</p></div><ol><li>转到 Setting => Actions => General => Workflow permissions => 选中 &ldquo;Read and write permissions&rdquo;。</li><li>GitHub Pages 设置：Setting => Pages => Source: GitHub Actions。</li><li>修改 <code>config/_default/hugo.toml</code> 文件中的 <code>baseURL</code> 为你的站点 URL。</li><li>提交上一步的修改到 <code>main</code> 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。</li></ol><h3 class=heading-element id=更新主题><span>更新主题</span>\n<a href=#%e6%9b%b4%e6%96%b0%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>之后，你可以使用以下命令升级主题：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 手动更新主题</span>\n</span></span><span class=line><span class=cl>hugo mod get -u github.com/hugo-fixit/FixIt@latest\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><details><summary>通过 NPM 脚本启动</summary><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 构建博客</span>\n</span></span><span class=line><span class=cl>npm run build\n</span></span><span class=line><span class=cl><span class=c1># 运行带有监视的本地调试服务器</span>\n</span></span><span class=line><span class=cl>npm run server\n</span></span><span class=line><span class=cl><span class=c1># 在生产环境中运行本地调试服务器</span>\n</span></span><span class=line><span class=cl>npm run server:production\n</span></span><span class=line><span class=cl><span class=c1># 更新主题子模块</span>\n</span></span><span class=line><span class=cl>npm run update:theme</span></span></code></pre></td></tr></table></div></div></div></details><h2 class=heading-element id=故障排除><span>故障排除</span>\n<a href=#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>remote: Permission to git denied to github-actions[bot].</summary>转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。</details><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter1><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/hugo-fixit-starter1</span>\n</a><a href=/projects/lruihao/vue-minder-editor-extended/ class=collection-nav-item rel=next title=Lruihao/vue-minder-editor-extended><span>Lruihao/vue-minder-editor-extended</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:16\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/hugo-fixit-starter/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/hugo-fixit-starter/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/hugo-fixit-starter/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ data-title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\" data-hashtags=blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ data-hashtag=blog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ data-title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ data-title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/hugo-blog/ class=post-tag title=\"标签 - hugo-blog\">hugo-blog</a><a href=/tags/hugo-blog-template/ class=post-tag title=\"标签 - hugo-blog-template\">hugo-blog-template</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/hugo-fixit-starter/ class=post-tag title=\"标签 - hugo-fixit-starter\">hugo-fixit-starter</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=post-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter1><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/hugo-fixit-starter1</a><a href=/projects/lruihao/vue-minder-editor-extended/ class=post-nav-item rel=next title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#目录结构>目录结构</a></li><li><a href=#快速入门>快速入门</a><ul><li><a href=#准备>准备</a></li><li><a href=#使用模板>使用模板</a><ul><li><a href=#cli>CLI</a></li><li><a href=#手动>手动</a></li></ul></li><li><a href=#启动站点>启动站点</a></li><li><a href=#构建站点>构建站点</a></li><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#更新主题>更新主题</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/hugo-fixit-starter/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/hugo-fixit-starter/index.md",
    "content": "# 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\n\n# Hugo FixIt 博客模板（Go）\n\n👉 中文 | [English](README.en.md)\n\n这是 Hugo 主题 [FixIt](https://github.com/hugo-fixit/FixIt) 的快速启动模板。它使用 [Hugo 模块](https://gohugo.io/hugo-modules/) 功能加载主题。如果你更熟悉 Git，可以 [查看这个模板](https://github.com/hugo-fixit/hugo-fixit-starter1)。\n\n它提供了基本的主题结构和 [配置目录](https://gohugo.io/configuration/introduction/#configuration-directory)[^1]。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\n\n[^1]: 与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。\n\n## 目录结构\n\n```bash\n▸ .github/       # GitHub configuration\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\n▸ assets/        # css, js, third-party libraries etc.\n▸ config/        # configuration files\n▸ content/       # markdown files for hugo project\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/        # build directory\n▸ static/        # static files, e.g. favicon.ico\n▸ themes/        # theme submodules\n▸ go.mod\n▸ go.sum\n```\n\n## 快速入门\n\n完整的快速入门，请参阅此 [页面](https://fixit.lruihao.cn/documentation/getting-started/)。\n\n### 准备\n\n- [Go](https://go.dev/dl/)\n- [Hugo](https://gohugo.io/installation/) (extended version)\n\n### 使用模板\n\n#### CLI\n\n```bash\nnpx fixit-cli create my-blog\n```\n\n#### 手动\n\n1. 点击 [**Use this template**](https://github.com/hugo-fixit/hugo-fixit-starter/generate)，在 GitHub 上创建你的存储库。\n\n    <img width=\"913\" alt=\"image\" src=\"https://github.com/hugo-fixit/hugo-fixit-starter1/assets/33419593/d5fbd940-3ffd-4750-b1e6-4e87b50b0696\">\n\n2. 存储库创建后，只需克隆并享受吧！\n\n    ```bash\n    # 使用你自己的存储库 URL 进行克隆\n    git clone --recursive https://github.com/<your_name>/<your_blog_repo>.git\n    ```\n\n> [!TIP]\n> 仓库名决定了你的 GitHub Pages URL，例如：\n>\n> | 仓库名 | GitHub Pages |\n> | :--- | :--- |\n> | `<your_name>.github.io` | `https://<your_name>.github.io/` |\n> | `blog` | `https://<your_name>.github.io/blog/` |\n\n### 启动站点\n\n```bash\n# 开发环境\nhugo server\n# 生产环境\nhugo server -e production\n```\n\n### 构建站点\n\n当你的站点准备部署时，运行以下命令：\n\n```bash\nhugo\n```\n\n### 部署到 GitHub Pages\n\n> [!NOTE]\n> 聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。\n\n1. 转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。\n2. GitHub Pages 设置：Setting => Pages => Source: GitHub Actions。\n3. 修改 `config/_default/hugo.toml` 文件中的 `baseURL` 为你的站点 URL。\n4. 提交上一步的修改到 `main` 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。\n\n### 更新主题\n\n之后，你可以使用以下命令升级主题：\n\n```bash\n# 手动更新主题\nhugo mod get -u github.com/hugo-fixit/FixIt@latest\nhugo mod tidy\n```\n\n<details>\n  <summary>通过 NPM 脚本启动</summary>\n\n  ```bash\n  # 构建博客\n  npm run build\n  # 运行带有监视的本地调试服务器\n  npm run server\n  # 在生产环境中运行本地调试服务器\n  npm run server:production\n  # 更新主题子模块\n  npm run update:theme\n  ```\n\n</details>\n\n## 故障排除\n\n<details>\n  <summary>remote: Permission to git denied to github-actions[bot].</summary>\n  转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。\n</details>\n\n<!-- 此项目是使用 [hugo-fixit-starter](https://github.com/hugo-fixit/hugo-fixit-starter) 生成的。 -->\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/hugo-fixit-starter1/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta name=keywords content='blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter'><meta itemprop=name content=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta itemprop=description content=\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta itemprop=datePublished content=\"2022-09-27T15:23:38+00:00\"><meta itemprop=dateModified content=\"2026-05-06T02:33:31+00:00\"><meta itemprop=wordCount content=\"282\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta property=\"og:description\" content=\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2022-09-27T15:23:38+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T02:33:31+00:00\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"hugo-blog\"><meta property=\"article:tag\" content=\"hugo-blog-template\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"hugo-fixit-starter\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta name=twitter:description content=\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ title=\"Using frequently-used Hugo commands by shell.\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/index.md title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-fixit-starter1\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"blog, hugo-blog, hugo-blog-template, hugo-fixit, hugo-fixit-starter\",\"wordcount\":282,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-fixit-starter1\\/\",\"datePublished\":\"2022-09-27T15:23:38+00:00\",\"dateModified\":\"2026-05-06T02:33:31+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/hugo-fixit-starter1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/hugo-fixit-starter1</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><span class=active title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</span></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/hugo-shell/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-shell><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>17/51</span><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=collection-nav-item rel=next title=hugo-fixit/hugo-fixit-starter><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/hugo-fixit-starter1 target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/hugo-fixit-starter1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://hugo-fixit.github.io/hugo-fixit-starter1/ target=_blank rel=\"external nofollow noopener noreferrer\">https://hugo-fixit.github.io/hugo-fixit-starter1/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2022-09-27 15:23:38\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-09-27>2022-09-27</time></span>&nbsp;<span title=\"更新于 2026-05-06 02:33:31\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"282 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#目录结构>目录结构</a></li><li><a href=#快速入门>快速入门</a><ul><li><a href=#准备>准备</a></li><li><a href=#使用此模板>使用此模板</a><ul><li><a href=#cli>CLI</a></li><li><a href=#手动>手动</a></li></ul></li><li><a href=#启动站点>启动站点</a></li><li><a href=#构建站点>构建站点</a></li><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#更新主题>更新主题</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-fixit-博客模板git data-decreased><span>Hugo FixIt 博客模板（Git）</span>\n<a href=#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>👉 中文 | <a href=README.en.md>English</a></p><p>这是 Hugo 主题 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的快速启动模板。它使用 <a href=https://git-scm.com/book/en/v2/Git-Tools-Submodules target=_blank rel=\"external nofollow noopener noreferrer\">Git 子模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 功能来加载主题。如果你更熟悉 Go，可以 <a href=https://github.com/hugo-fixit/hugo-fixit-starter target=_blank rel=\"external nofollow noopener noreferrer\">查看这个模板<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>它提供了基本的主题结构和 <a href=https://gohugo.io/configuration/introduction/#configuration-directory target=_blank rel=\"external nofollow noopener noreferrer\">配置目录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup>。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。</p><h2 class=heading-element id=目录结构><span>目录结构</span>\n<a href=#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>▸ .github/       <span class=c1># GitHub configuration</span>\n</span></span><span class=line><span class=cl>▸ archetypes/    <span class=c1># page archetypes (like scaffolds of archetypes)</span>\n</span></span><span class=line><span class=cl>▸ assets/        <span class=c1># css, js, third-party libraries etc.</span>\n</span></span><span class=line><span class=cl>▸ config/        <span class=c1># configuration files</span>\n</span></span><span class=line><span class=cl>▸ content/       <span class=c1># markdown files for hugo project</span>\n</span></span><span class=line><span class=cl>▸ data/          <span class=c1># blog data (allow: yaml, json, toml), e.g. friends.yml</span>\n</span></span><span class=line><span class=cl>▸ public/        <span class=c1># build directory</span>\n</span></span><span class=line><span class=cl>▸ static/        <span class=c1># static files, e.g. favicon.ico</span>\n</span></span><span class=line><span class=cl>▸ themes/        <span class=c1># theme submodules</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=快速入门><span>快速入门</span>\n<a href=#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>完整的快速入门请参阅此 <a href=https://fixit.lruihao.cn/documentation/getting-started/ target=_blank rel=\"external nofollow noopener noreferrer\">页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h3 class=heading-element id=准备><span>准备</span>\n<a href=#%e5%87%86%e5%a4%87 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><a href=https://gohugo.io/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>: >= 0.132.0 (extended version)</p><h3 class=heading-element id=使用此模板><span>使用此模板</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%ad%a4%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=cli><span>CLI</span>\n<a href=#cli class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npx fixit-cli create my-blog</span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=手动><span>手动</span>\n<a href=#%e6%89%8b%e5%8a%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><ol><li><p>点击 <a href=https://github.com/hugo-fixit/hugo-fixit-starter1/generate target=_blank rel=\"external nofollow noopener noreferrer\"><strong>Use this template</strong><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，在 GitHub 上创建你的仓库。</p><img width=913 alt=image src=https://github.com/hugo-fixit/hugo-fixit-starter1/assets/33419593/d5fbd940-3ffd-4750-b1e6-4e87b50b0696></li><li><p>仓库创建后，只需克隆并开始使用！</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 使用你自己的仓库 URL 进行克隆</span>\n</span></span><span class=line><span class=cl>git clone --recursive https://github.com/&lt;your_name&gt;/&lt;your_blog_repo&gt;.git</span></span></code></pre></td></tr></table></div></div></div></li></ol><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>仓库名决定了你的 GitHub Pages URL，例如：</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>仓库名</th><th style=text-align:left>GitHub Pages</th></tr></thead><tbody><tr><td style=text-align:left><code>&lt;your_name>.github.io</code></td><td style=text-align:left><code>https://&lt;your_name>.github.io/</code></td></tr><tr><td style=text-align:left><code>blog</code></td><td style=text-align:left><code>https://&lt;your_name>.github.io/blog/</code></td></tr></tbody></table></div></div><h3 class=heading-element id=启动站点><span>启动站点</span>\n<a href=#%e5%90%af%e5%8a%a8%e7%ab%99%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 开发环境</span>\n</span></span><span class=line><span class=cl>hugo server\n</span></span><span class=line><span class=cl><span class=c1># 生产环境</span>\n</span></span><span class=line><span class=cl>hugo server -e production</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=构建站点><span>构建站点</span>\n<a href=#%e6%9e%84%e5%bb%ba%e7%ab%99%e7%82%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>当你的站点准备部署时，运行以下命令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=部署到-github-pages><span>部署到 GitHub Pages</span>\n<a href=#%e9%83%a8%e7%bd%b2%e5%88%b0-github-pages class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。</p></div><ol><li>转到 Setting => Actions => General => Workflow permissions => 选中 &ldquo;Read and write permissions&rdquo;。</li><li>GitHub Pages 设置：Setting => Pages => Source: GitHub Actions。</li><li>修改 <code>config/_default/hugo.toml</code> 文件中的 <code>baseURL</code> 为你的站点 URL。</li><li>提交上一步的修改到 <code>main</code> 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。</li></ol><h3 class=heading-element id=更新主题><span>更新主题</span>\n<a href=#%e6%9b%b4%e6%96%b0%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>之后，你可以使用以下命令升级主题：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 手动更新主题</span>\n</span></span><span class=line><span class=cl>git submodule update --remote --merge themes/FixIt</span></span></code></pre></td></tr></table></div></div></div><details><summary>通过 NPM 脚本启动</summary><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install\n</span></span><span class=line><span class=cl><span class=c1># 构建博客</span>\n</span></span><span class=line><span class=cl>npm run build\n</span></span><span class=line><span class=cl><span class=c1># 运行带有监视的本地调试服务器</span>\n</span></span><span class=line><span class=cl>npm run server\n</span></span><span class=line><span class=cl><span class=c1># 在生产环境中运行本地调试服务器</span>\n</span></span><span class=line><span class=cl>npm run server:production\n</span></span><span class=line><span class=cl><span class=c1># 更新主题子模块</span>\n</span></span><span class=line><span class=cl>npm run update:theme</span></span></code></pre></td></tr></table></div></div></div></details><h2 class=heading-element id=故障排除><span>故障排除</span>\n<a href=#%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>remote: Permission to git denied to github-actions[bot].</summary>转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。</details><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/hugo-shell/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-shell><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/hugo-shell</span>\n</a><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=collection-nav-item rel=next title=hugo-fixit/hugo-fixit-starter><span>hugo-fixit/hugo-fixit-starter</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 02:33:31\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/hugo-fixit-starter1/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/hugo-fixit-starter1/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ data-title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\" data-hashtags=blog,hugo-blog,hugo-blog-template,hugo-fixit,hugo-fixit-starter><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ data-hashtag=blog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ data-title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ data-title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/hugo-blog/ class=post-tag title=\"标签 - hugo-blog\">hugo-blog</a><a href=/tags/hugo-blog-template/ class=post-tag title=\"标签 - hugo-blog-template\">hugo-blog-template</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/hugo-fixit-starter/ class=post-tag title=\"标签 - hugo-fixit-starter\">hugo-fixit-starter</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/hugo-shell/ class=post-nav-item rel=prev title=hugo-fixit/hugo-shell><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/hugo-shell</a><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=post-nav-item rel=next title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#目录结构>目录结构</a></li><li><a href=#快速入门>快速入门</a><ul><li><a href=#准备>准备</a></li><li><a href=#使用此模板>使用此模板</a><ul><li><a href=#cli>CLI</a></li><li><a href=#手动>手动</a></li></ul></li><li><a href=#启动站点>启动站点</a></li><li><a href=#构建站点>构建站点</a></li><li><a href=#部署到-github-pages>部署到 GitHub Pages</a></li><li><a href=#更新主题>更新主题</a></li></ul></li><li><a href=#故障排除>故障排除</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/hugo-fixit-starter1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/hugo-fixit-starter1/index.md",
    "content": "# 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\n\n# Hugo FixIt 博客模板（Git）\n\n👉 中文 | [English](README.en.md)\n\n这是 Hugo 主题 [FixIt](https://github.com/hugo-fixit/FixIt) 的快速启动模板。它使用 [Git 子模块](https://git-scm.com/book/en/v2/Git-Tools-Submodules) 功能来加载主题。如果你更熟悉 Go，可以 [查看这个模板](https://github.com/hugo-fixit/hugo-fixit-starter)。\n\n它提供了基本的主题结构和 [配置目录](https://gohugo.io/configuration/introduction/#configuration-directory)[^1]。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\n\n[^1]: 与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。\n\n## 目录结构\n\n```bash\n▸ .github/       # GitHub configuration\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\n▸ assets/        # css, js, third-party libraries etc.\n▸ config/        # configuration files\n▸ content/       # markdown files for hugo project\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/        # build directory\n▸ static/        # static files, e.g. favicon.ico\n▸ themes/        # theme submodules\n```\n\n## 快速入门\n\n完整的快速入门请参阅此 [页面](https://fixit.lruihao.cn/documentation/getting-started/)。\n\n### 准备\n\n[Hugo](https://gohugo.io/installation/): >= 0.132.0 (extended version)\n\n### 使用此模板\n\n#### CLI\n\n```bash\nnpx fixit-cli create my-blog\n```\n\n#### 手动\n\n1. 点击 [**Use this template**](https://github.com/hugo-fixit/hugo-fixit-starter1/generate)，在 GitHub 上创建你的仓库。\n\n    <img width=\"913\" alt=\"image\" src=\"https://github.com/hugo-fixit/hugo-fixit-starter1/assets/33419593/d5fbd940-3ffd-4750-b1e6-4e87b50b0696\">\n\n2. 仓库创建后，只需克隆并开始使用！\n\n    ```bash\n    # 使用你自己的仓库 URL 进行克隆\n    git clone --recursive https://github.com/<your_name>/<your_blog_repo>.git\n    ```\n\n> [!TIP]\n> 仓库名决定了你的 GitHub Pages URL，例如：\n>\n> | 仓库名 | GitHub Pages |\n> | :--- | :--- |\n> | `<your_name>.github.io` | `https://<your_name>.github.io/` |\n> | `blog` | `https://<your_name>.github.io/blog/` |\n\n### 启动站点\n\n```bash\n# 开发环境\nhugo server\n# 生产环境\nhugo server -e production\n```\n\n### 构建站点\n\n当你的站点准备部署时，运行以下命令：\n\n```bash\nhugo\n```\n\n### 部署到 GitHub Pages\n\n> [!NOTE]\n> 聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。\n\n1. 转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。\n2. GitHub Pages 设置：Setting => Pages => Source: GitHub Actions。\n3. 修改 `config/_default/hugo.toml` 文件中的 `baseURL` 为你的站点 URL。\n4. 提交上一步的修改到 `main` 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。\n\n### 更新主题\n\n之后，你可以使用以下命令升级主题：\n\n```bash\n# 手动更新主题\ngit submodule update --remote --merge themes/FixIt\n```\n\n<details>\n  <summary>通过 NPM 脚本启动</summary>\n\n  ```bash\n  npm install\n  # 构建博客\n  npm run build\n  # 运行带有监视的本地调试服务器\n  npm run server\n  # 在生产环境中运行本地调试服务器\n  npm run server:production\n  # 更新主题子模块\n  npm run update:theme\n  ```\n\n</details>\n\n## 故障排除\n\n<details>\n  <summary>remote: Permission to git denied to github-actions[bot].</summary>\n  转到 Setting => Actions => General => Workflow permissions => 选中 \"Read and write permissions\"。\n</details>\n\n<!-- 该项目是使用 [hugo-fixit-starter1](https://github.com/hugo-fixit/hugo-fixit-starter1) 生成的。 -->\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/hugo-json-feed/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo theme component for JSON feed custom Output Format. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\"><meta name=keywords content='hugo,json-feed,theme-component'><meta itemprop=name content=\"Hugo theme component for JSON feed custom Output Format.\"><meta itemprop=description content=\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\"><meta itemprop=datePublished content=\"2024-08-22T03:28:23+00:00\"><meta itemprop=dateModified content=\"2025-12-20T06:44:31+00:00\"><meta itemprop=wordCount content=\"258\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,json-feed,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo theme component for JSON feed custom Output Format.\"><meta property=\"og:description\" content=\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-08-22T03:28:23+00:00\"><meta property=\"article:modified_time\" content=\"2025-12-20T06:44:31+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"json-feed\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo theme component for JSON feed custom Output Format.\"><meta name=twitter:description content=\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ title=\"Hugo theme component for JSON feed custom Output Format. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/reward/ title=赞赏记录><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ title=\"Hugo theme component for ATOM feed custom Output Format.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/index.md title=\"Hugo theme component for JSON feed custom Output Format. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Hugo theme component for JSON feed custom Output Format.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-json-feed\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, json-feed, theme-component\",\"wordcount\":258,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-json-feed\\/\",\"datePublished\":\"2024-08-22T03:28:23+00:00\",\"dateModified\":\"2025-12-20T06:44:31+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/hugo-json-feed/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/hugo-json-feed</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><span class=active title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</span></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-mdevtools><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>37/51</span><a href=/projects/hugo-fixit/hugo-atom-feed/ class=collection-nav-item rel=next title=hugo-fixit/hugo-atom-feed><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Hugo theme component for JSON feed custom Output Format.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/hugo-json-feed target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/hugo-json-feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn/feed.json target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn/feed.json<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-08-22 03:28:23\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-08-22>2024-08-22</time></span>&nbsp;<span title=\"更新于 2025-12-20 06:44:31\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-12-20>2025-12-20</time></span>&nbsp;<span title=\"258 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Hugo theme component for JSON feed custom Output Format.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#演示>演示</a></li><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a><ul><li><a href=#参数>参数</a></li><li><a href=#front-matter>Front matter</a></li></ul></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-12-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-json-feed data-decreased><span>Hugo JSON Feed</span>\n<a href=#hugo-json-feed class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>中文 | <a href=https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>Hugo 主题组件，用于自定义 JSON feed 输出格式。</p></blockquote><p>该组件为您的站点启用 JSON feeds。</p><h2 class=heading-element id=演示><span>演示</span>\n<a href=#%e6%bc%94%e7%a4%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://lruihao.cn/feed.json target=_blank rel=\"external nofollow noopener noreferrer\">主页 Feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/posts/feed.json target=_blank rel=\"external nofollow noopener noreferrer\">文章 Feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/collections/project/feed.json target=_blank rel=\"external nofollow noopener noreferrer\">列表 Feed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方法与<a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>[module]\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>[[module.imports]]\n</span></span><span class=line><span class=cl>path = &#34;github.com/hugo-fixit/FixIt&#34;\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=gi>+ [[module.imports]]\n</span></span></span><span class=line><span class=cl><span class=gi>+ path = &#34;github.com/hugo-fixit/hugo-json-feed&#34;\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>将 &ldquo;jsonfeed&rdquo; 添加到您希望创建 JSON feeds 的所有页面类型中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>outputs</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/feed.json</span>\n</span></span><span class=line><span class=cl><span class=nx>home</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/posts/feed.json 等</span>\n</span></span><span class=line><span class=cl><span class=nx>section</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># &lt;baseURL&gt;/tags/foo/feed.json 等</span>\n</span></span><span class=line><span class=cl><span class=nx>term</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><p>如果您的站点使用多个主题组件，则需要合并所有主题组件的 <code>outputs</code> 配置。例如，如果您的站点同时使用 <code>FixIt</code> 和 <code>hugo-json-feed</code> 主题组件，则需要合并两个主题组件的 <code>outputs</code> 配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>outputs</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>_merge</span> <span class=p>=</span> <span class=s2>&#34;shallow&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>home</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>,</span> <span class=s2>&#34;archives&#34;</span><span class=p>,</span> <span class=s2>&#34;offline&#34;</span><span class=p>,</span> <span class=s2>&#34;readme&#34;</span><span class=p>,</span> <span class=s2>&#34;baidu_urls&#34;</span><span class=p>,</span> <span class=s2>&#34;search&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>page</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;markdown&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>section</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>taxonomy</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=nx>term</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;html&#34;</span><span class=p>,</span> <span class=s2>&#34;rss&#34;</span><span class=p>,</span> <span class=s2>&#34;jsonfeed&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=参数><span>参数</span>\n<a href=#%e5%8f%82%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>您可以在站点配置文件中设置以下参数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 全局 JSON feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>10</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 分类页面配置（分类中的所有页面）</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>section</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 分类页面的 JSON feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>section</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>-1</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 标签列表（分类或标签）页面配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>list</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># 标签列表的 JSON feed 配置</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>list</span><span class=p>.</span><span class=nx>feed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># feed 中包含的文章数量。如果设置为 -1，则包含所有文章。</span>\n</span></span><span class=line><span class=cl><span class=nx>limit</span> <span class=p>=</span> <span class=mi>-1</span>\n</span></span><span class=line><span class=cl><span class=c># 是否在 feed 中显示全文。</span>\n</span></span><span class=line><span class=cl><span class=nx>fullText</span> <span class=p>=</span> <span class=kc>false</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=front-matter><span>Front matter</span>\n<a href=#front-matter class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>您可以在内容文件的 front matter 中设置以下参数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nn>---</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>title</span><span class=p>:</span><span class=w> </span><span class=s2>&#34;Hello World&#34;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>date</span><span class=p>:</span><span class=w> </span><span class=ld>2024-08-24T16:06:33</span><span class=m>+08</span><span class=p>:</span><span class=m>00</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>hiddenFromFeed</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>feed</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=c># feed.limit 仅在分类或标签页面（_index.md）中有效。</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>limit</span><span class=p>:</span><span class=w> </span><span class=m>10</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>fullText</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nn>---</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-mdevtools><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/cmpt-mdevtools</span>\n</a><a href=/projects/hugo-fixit/hugo-atom-feed/ class=collection-nav-item rel=next title=hugo-fixit/hugo-atom-feed><span>hugo-fixit/hugo-atom-feed</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-12-20 06:44:31\">更新于 2025-12-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/hugo-json-feed/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/hugo-json-feed/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/hugo-json-feed/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ data-title=\"Hugo theme component for JSON feed custom Output Format.\" data-hashtags=hugo,json-feed,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ data-title=\"Hugo theme component for JSON feed custom Output Format.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ data-title=\"Hugo theme component for JSON feed custom Output Format.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/json-feed/ class=post-tag title=\"标签 - json-feed\">json-feed</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=post-nav-item rel=prev title=hugo-fixit/cmpt-mdevtools><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/cmpt-mdevtools</a><a href=/projects/hugo-fixit/hugo-atom-feed/ class=post-nav-item rel=next title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#演示>演示</a></li><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a><ul><li><a href=#参数>参数</a></li><li><a href=#front-matter>Front matter</a></li></ul></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/hugo-json-feed/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/hugo-json-feed/index.md",
    "content": "# Hugo theme component for JSON feed custom Output Format.\n\n# Hugo JSON Feed\n\n中文 | [English](https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md)\n\n> Hugo 主题组件，用于自定义 JSON feed 输出格式。\n\n该组件为您的站点启用 JSON feeds。\n\n## 演示\n\n- [主页 Feed](https://lruihao.cn/feed.json)\n- [文章 Feed](https://lruihao.cn/posts/feed.json)\n- [列表 Feed](https://lruihao.cn/collections/project/feed.json)\n\n## 安装组件\n\n安装方法与[安装主题](https://fixit.lruihao.cn/documentation/installation/)相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\n\n```diff\n[module]\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/FixIt\"\n\n+ [[module.imports]]\n+ path = \"github.com/hugo-fixit/hugo-json-feed\"\n```\n\n## 配置\n\n将 \"jsonfeed\" 添加到您希望创建 JSON feeds 的所有页面类型中：\n\n```toml\n[outputs]\n# <baseURL>/feed.json\nhome = [\"html\", \"rss\", \"jsonfeed\"]\n# <baseURL>/posts/feed.json 等\nsection = [\"html\", \"rss\", \"jsonfeed\"]\n# <baseURL>/tags/foo/feed.json 等\nterm = [\"html\", \"rss\", \"jsonfeed\"]\n```\n\n如果您的站点使用多个主题组件，则需要合并所有主题组件的 `outputs` 配置。例如，如果您的站点同时使用 `FixIt` 和 `hugo-json-feed` 主题组件，则需要合并两个主题组件的 `outputs` 配置：\n\n```toml\n[outputs]\n_merge = \"shallow\"\nhome = [\"html\", \"rss\", \"jsonfeed\", \"archives\", \"offline\", \"readme\", \"baidu_urls\", \"search\"]\npage = [\"html\", \"markdown\"]\nsection = [\"html\", \"rss\", \"jsonfeed\"]\ntaxonomy = [\"html\"]\nterm = [\"html\", \"rss\", \"jsonfeed\"]\n```\n\n### 参数\n\n您可以在站点配置文件中设置以下参数：\n\n```toml\n[params]\n\n# 全局 JSON feed 配置\n[params.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = 10\n# 是否在 feed 中显示全文。\nfullText = true\n\n# 分类页面配置（分类中的所有页面）\n[params.section]\n\n# 分类页面的 JSON feed 配置\n[params.section.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = -1\n# 是否在 feed 中显示全文。\nfullText = false\n\n# 标签列表（分类或标签）页面配置\n[params.list]\n\n# 标签列表的 JSON feed 配置\n[params.list.feed]\n# feed 中包含的文章数量。如果设置为 -1，则包含所有文章。\nlimit = -1\n# 是否在 feed 中显示全文。\nfullText = false\n```\n\n### Front matter\n\n您可以在内容文件的 front matter 中设置以下参数：\n\n```yaml\n---\ntitle: \"Hello World\"\ndate: 2024-08-24T16:06:33+08:00\nhiddenFromFeed: true\nfeed:\n  # feed.limit 仅在分类或标签页面（_index.md）中有效。\n  limit: 10\n  fullText: true\n---\n```\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/hugo-shell/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Using frequently-used Hugo commands by shell. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\"><meta name=keywords content='hugo'><meta itemprop=name content=\"Using frequently-used Hugo commands by shell.\"><meta itemprop=description content=\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\"><meta itemprop=datePublished content=\"2022-09-04T04:18:42+00:00\"><meta itemprop=dateModified content=\"2025-09-12T09:38:50+00:00\"><meta itemprop=wordCount content=\"75\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Using frequently-used Hugo commands by shell.\"><meta property=\"og:description\" content=\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2022-09-04T04:18:42+00:00\"><meta property=\"article:modified_time\" content=\"2025-09-12T09:38:50+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Using frequently-used Hugo commands by shell.\"><meta name=twitter:description content=\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ title=\"Using frequently-used Hugo commands by shell. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/beego-install/ title=\"Beego 安装及配置\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ title=\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/hugo-shell/index.md title=\"Using frequently-used Hugo commands by shell. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Using frequently-used Hugo commands by shell.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-shell\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo\",\"wordcount\":75,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/hugo-shell\\/\",\"datePublished\":\"2022-09-04T04:18:42+00:00\",\"dateModified\":\"2025-09-12T09:38:50+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/hugo-shell/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/hugo-shell</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><span class=active title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</span></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/docs/ class=collection-nav-item rel=prev title=hugo-fixit/docs><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>16/51</span><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=collection-nav-item rel=next title=hugo-fixit/hugo-fixit-starter1><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Using frequently-used Hugo commands by shell.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/hugo-shell target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/hugo-shell<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2022-09-04 04:18:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-09-04>2022-09-04</time></span>&nbsp;<span title=\"更新于 2025-09-12 09:38:50\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-09-12>2025-09-12</time></span>&nbsp;<span title=\"75 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Using frequently-used Hugo commands by shell.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#download>Download</a></li><li><a href=#usage>Usage</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-09-12，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-shell data-decreased><span>Hugo Shell</span>\n<a href=#hugo-shell class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Using frequently-used Hugo commands by shell.</p><h2 class=heading-element id=download><span>Download</span>\n<a href=#download class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Add a submodule for your Hugo blog project.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/hugo-shell.git your_hugo_blog/.shell</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=usage><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Run <code>hugo_main.sh</code> to choice frequently-used Hugo commands:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> .shell <span class=o>&amp;&amp;</span> sh hugo_main.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-text\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-text data-lang=text><span class=line><span class=cl>--------------Hugo Admin--------------\n</span></span><span class=line><span class=cl>Please enter the serial number to work\n</span></span><span class=line><span class=cl>--------------------------------------\n</span></span><span class=line><span class=cl>1. post\n</span></span><span class=line><span class=cl>2. server\n</span></span><span class=line><span class=cl>3. server:production\n</span></span><span class=line><span class=cl>4. build\n</span></span><span class=line><span class=cl>5. submodule-sync\n</span></span><span class=line><span class=cl>6. push\n</span></span><span class=line><span class=cl>--------------------------------------\n</span></span><span class=line><span class=cl>Press Ctrl+C to stop</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/docs/ class=collection-nav-item rel=prev title=hugo-fixit/docs><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/docs</span>\n</a><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=collection-nav-item rel=next title=hugo-fixit/hugo-fixit-starter1><span>hugo-fixit/hugo-fixit-starter1</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-09-12 09:38:50\">更新于 2025-09-12&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/hugo-shell/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/hugo-shell/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/hugo-shell/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ data-title=\"Using frequently-used Hugo commands by shell.\" data-hashtags=hugo><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/hugo-shell/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ data-title=\"Using frequently-used Hugo commands by shell.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ data-title=\"Using frequently-used Hugo commands by shell.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/beego-install/ class=post-nav-item rel=prev title=\"Beego 安装及配置\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Beego 安装及配置</a><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=post-nav-item rel=next title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#download>Download</a></li><li><a href=#usage>Usage</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/hugo-shell/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/hugo-shell/index.md",
    "content": "# Using frequently-used Hugo commands by shell.\n\n# Hugo Shell\n\nUsing frequently-used Hugo commands by shell.\n\n## Download\n\nAdd a submodule for your Hugo blog project.\n\n```bash\ngit submodule add https://github.com/hugo-fixit/hugo-shell.git your_hugo_blog/.shell\n```\n\n## Usage\n\nRun `hugo_main.sh` to choice frequently-used Hugo commands:\n\n```bash\ncd .shell && sh hugo_main.sh\n```\n\n```text\n--------------Hugo Admin--------------\nPlease enter the serial number to work\n--------------------------------------\n1. post\n2. server\n3. server:production\n4. build\n5. submodule-sync\n6. push\n--------------------------------------\nPress Ctrl+C to stop\n```\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/hugo-shell/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/shortcode-asciinema/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A Hugo theme component with asciinema-embed shortcode. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\"><meta name=keywords content='asciinema,hugo,shortcodes,theme-component'><meta itemprop=name content=\"A Hugo theme component with asciinema-embed shortcode.\"><meta itemprop=description content=\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\"><meta itemprop=datePublished content=\"2025-01-08T09:20:48+00:00\"><meta itemprop=dateModified content=\"2026-04-20T07:20:15+00:00\"><meta itemprop=wordCount content=\"146\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"asciinema,Hugo,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A Hugo theme component with asciinema-embed shortcode.\"><meta property=\"og:description\" content=\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-01-08T09:20:48+00:00\"><meta property=\"article:modified_time\" content=\"2026-04-20T07:20:15+00:00\"><meta property=\"article:tag\" content=\"asciinema\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A Hugo theme component with asciinema-embed shortcode.\"><meta name=twitter:description content=\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ title=\"A Hugo theme component with asciinema-embed shortcode. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/css-viewport/ title=\"震惊！CSS 竟然能获取视口尺寸？\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/action-component-list/ title=\"Generate a list of all hugo-fixit theme components.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/index.md title=\"A Hugo theme component with asciinema-embed shortcode. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A Hugo theme component with asciinema-embed shortcode.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-asciinema\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"asciinema, hugo, shortcodes, theme-component\",\"wordcount\":146,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-asciinema\\/\",\"datePublished\":\"2025-01-08T09:20:48+00:00\",\"dateModified\":\"2026-04-20T07:20:15+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/shortcode-asciinema/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/shortcode-asciinema</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><span class=active title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</span></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/cmpt-translate/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-translate><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>43/51</span><a href=/projects/hugo-fixit/action-component-list/ class=collection-nav-item rel=next title=hugo-fixit/action-component-list><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A Hugo theme component with asciinema-embed shortcode.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/shortcode-asciinema target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-asciinema<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://fixit.lruihao.cn/documentation/installation/#cli target=_blank rel=\"external nofollow noopener noreferrer\">https://fixit.lruihao.cn/documentation/installation/#cli<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-01-08 09:20:48\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-01-08>2025-01-08</time></span>&nbsp;<span title=\"更新于 2026-04-20 07:20:15\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-04-20>2026-04-20</time></span>&nbsp;<span title=\"146 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A Hugo theme component with asciinema-embed shortcode.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#记录终端>记录终端</a></li><li><a href=#使用-shortcode>使用 Shortcode</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>shortcode-asciinema | FixIt</h1><div align=center class=ignore><p>一个带有 <code>asciinema-embed</code> shortcode 的 Hugo 主题组件。</p>简体中文 |\n<a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\">繁體中文</a> |\n<a href=https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md>English</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\">Français</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\">Русский язык</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\">Español</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\">हिन्दी</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\">Deutsch</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\">한국어</a> |\n<a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\">日本語</a></div><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://fixit.lruihao.cn/documentation/installation/#cli target=_blank rel=\"external nofollow noopener noreferrer\">安装主题#CLI | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=要求><span>要求</span>\n<a href=#%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>适用于所有 Hugo 主题。</p><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>安装方式与 <a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。</p><h3 class=heading-element id=作为-hugo-模块安装><span>作为 Hugo 模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/shortcode-asciinema&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在 Hugo 的第一次启动时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=作为-git-子模块安装><span>作为 Git 子模块安装</span>\n<a href=#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/shortcode-asciinema.git themes/shortcode-asciinema</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;FixIt&#34;</span><span class=p>,</span> <span class=s2>&#34;shortcode-asciinema&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=记录终端><span>记录终端</span>\n<a href=#%e8%ae%b0%e5%bd%95%e7%bb%88%e7%ab%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>你可以使用 <code>asciinema</code> 命令记录终端并将其上传到 <a href=https://asciinema.org/ target=_blank rel=\"external nofollow noopener noreferrer\">asciinema.org<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>asciinema rec demo.cast\n</span></span><span class=line><span class=cl><span class=c1># press &lt;ctrl-d&gt; or type &#34;exit&#34; when you&#39;re done</span>\n</span></span><span class=line><span class=cl>asciinema upload demo.cast</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用-shortcode><span>使用 Shortcode</span>\n<a href=#%e4%bd%bf%e7%94%a8-shortcode class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>以下是一个使用示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; asciinema-embed 697494 &gt;}}</span></span></code></pre></td></tr></table></div></div></div><p>呈现效果如下：</p><p><a href=https://asciinema.org/a/697494 target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/697494_15823540158614267688.svg alt=asciicast></a></p><h2 class=heading-element id=参考><span>参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/contributing/components/ target=_blank rel=\"external nofollow noopener noreferrer\">开发主题组件 | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/components/dev-component/ target=_blank rel=\"external nofollow noopener noreferrer\">如何开发 Hugo 主题组件 | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/cmpt-translate/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-translate><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/cmpt-translate</span>\n</a><a href=/projects/hugo-fixit/action-component-list/ class=collection-nav-item rel=next title=hugo-fixit/action-component-list><span>hugo-fixit/action-component-list</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-04-20 07:20:15\">更新于 2026-04-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/shortcode-asciinema/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/shortcode-asciinema/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/shortcode-asciinema/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ data-title=\"A Hugo theme component with asciinema-embed shortcode.\" data-hashtags=asciinema,hugo,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ data-hashtag=asciinema><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ data-title=\"A Hugo theme component with asciinema-embed shortcode.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ data-title=\"A Hugo theme component with asciinema-embed shortcode.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/asciinema/ class=post-tag title=\"标签 - asciinema\">asciinema</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/css-viewport/ class=post-nav-item rel=prev title=\"震惊！CSS 竟然能获取视口尺寸？\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>震惊！CSS 竟然能获取视口尺寸？</a><a href=/projects/hugo-fixit/action-component-list/ class=post-nav-item rel=next title=hugo-fixit/action-component-list>hugo-fixit/action-component-list<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#要求>要求</a></li><li><a href=#安装组件>安装组件</a><ul><li><a href=#作为-hugo-模块安装>作为 Hugo 模块安装</a></li><li><a href=#作为-git-子模块安装>作为 Git 子模块安装</a></li></ul></li><li><a href=#记录终端>记录终端</a></li><li><a href=#使用-shortcode>使用 Shortcode</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/shortcode-asciinema/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/shortcode-asciinema/index.md",
    "content": "# A Hugo theme component with asciinema-embed shortcode.\n\n<!-- markdownlint-disable-file MD033 MD041 -->\n<h1 align=\"center\">shortcode-asciinema | FixIt</h1>\n\n<div align=\"center\" class=\"ignore\">\n  <p>一个带有 <code>asciinema-embed</code> shortcode 的 Hugo 主题组件。</p>\n  简体中文 |\n  <a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\">繁體中文</a> |\n  <a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\">English</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\">Français</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\">Русский язык</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\">Español</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\">हिन्दी</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\">Deutsch</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\">한국어</a> |\n  <a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\">日本語</a>\n</div>\n\n## Demo\n\n[安装主题#CLI | FixIt](https://fixit.lruihao.cn/documentation/installation/#cli)\n\n## 要求\n\n适用于所有 Hugo 主题。\n\n## 安装组件\n\n安装方式与 [安装主题](https://fixit.lruihao.cn/zh-cn/documentation/installation/) 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\n\n### 作为 Hugo 模块安装\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/shortcode-asciinema\"\n```\n\n在 Hugo 的第一次启动时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 作为 Git 子模块安装\n\n将 [FixIt](https://github.com/hugo-fixit/FixIt) 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/shortcode-asciinema.git themes/shortcode-asciinema\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\"FixIt\", \"shortcode-asciinema\"]\n```\n\n## 记录终端\n\n你可以使用 `asciinema` 命令记录终端并将其上传到 [asciinema.org](https://asciinema.org/)。\n\n```bash\nasciinema rec demo.cast\n# press <ctrl-d> or type \"exit\" when you're done\nasciinema upload demo.cast\n```\n\n## 使用 Shortcode\n\n以下是一个使用示例：\n\n```markdown\n{{?{}< asciinema-embed 697494 >}}\n```\n\n呈现效果如下：\n\n[![asciicast](https://asciinema.org/a/697494.svg)](https://asciinema.org/a/697494)\n\n## 参考\n\n- [开发主题组件 | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [如何开发 Hugo 主题组件 | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/shortcode-caniuse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A Hugo theme component with caniuse shortcode. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\"><meta name=keywords content='caniuse-embed,hugo,hugo-fixit,shortcodes,theme-component'><meta itemprop=name content=\"A Hugo theme component with caniuse shortcode.\"><meta itemprop=description content=\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\"><meta itemprop=datePublished content=\"2024-06-28T06:56:32+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:29+00:00\"><meta itemprop=wordCount content=\"280\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"caniuse-embed,Hugo,hugo-fixit,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A Hugo theme component with caniuse shortcode.\"><meta property=\"og:description\" content=\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-06-28T06:56:32+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:29+00:00\"><meta property=\"article:tag\" content=\"caniuse-embed\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A Hugo theme component with caniuse shortcode.\"><meta name=twitter:description content=\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ title=\"A Hugo theme component with caniuse shortcode. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/aside-toggle-drag/ title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><link rel=next type=text/html href=https://lruihao.cn/posts/scrollbar-styling/ title=标准滚动条控制规范><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/index.md title=\"A Hugo theme component with caniuse shortcode. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A Hugo theme component with caniuse shortcode.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-caniuse\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"caniuse-embed, hugo, hugo-fixit, shortcodes, theme-component\",\"wordcount\":280,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-caniuse\\/\",\"datePublished\":\"2024-06-28T06:56:32+00:00\",\"dateModified\":\"2026-05-06T03:02:29+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/shortcode-caniuse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/shortcode-caniuse</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><span class=active title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</span></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/vercel-gravatar/ class=collection-nav-item rel=prev title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>33/51</span><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-docs-bookmark><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A Hugo theme component with caniuse shortcode.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/shortcode-caniuse target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-caniuse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://caniuse-el.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">https://caniuse-el.lruihao.cn/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-06-28 06:56:32\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-06-28>2024-06-28</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:29\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"280 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 300 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A Hugo theme component with caniuse shortcode.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#依赖>依赖</a></li><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a></li><li><a href=#使用-shortcode>使用 Shortcode</a></li><li><a href=#参考>参考</a></li><li><a href=#致谢>致谢</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=hugo-shortcode-for-caniuse data-decreased><span>Hugo shortcode for CanIUse</span>\n<a href=#hugo-shortcode-for-caniuse class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 Hugo 中使用 <code>shortcode</code> 方式内嵌 <a href=https://caniuse.com/ target=_blank rel=\"external nofollow noopener noreferrer\">CanIUse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 到你的文章中。</p><p><img loading=lazy src=https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp alt=\"caniuse example\"></p><p><img loading=lazy src=https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png alt=\"baseline example\"></p><h2 class=heading-element id=依赖><span>依赖</span>\n<a href=#%e4%be%9d%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>FixIt 主题 <code>v0.4.0</code> 及以上版本。</p><h2 class=heading-element id=安装组件><span>安装组件</span>\n<a href=#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>和 <a href=https://fixit.lruihao.cn/zh-cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 一样，安装方式有多种，选择其一即可，例如通过 Hugo Modules 安装：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl><span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/shortcode-caniuse&#34;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置><span>配置</span>\n<a href=#%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>为了通过 FixIt 主题开放的 <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">自定义块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 将 <code>shortcode-caniuse.html</code> 注入到 <code>custom-assets</code> 中，你需要填写以下必要配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl><span class=nx>assets</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/shortcode-caniuse.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><p>组件配置：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c># CanIUse Embed Element Configuration</span>\n</span></span><span class=line><span class=cl><span class=c># See: https://github.com/Lruihao/caniuse-embed-element</span>\n</span></span><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>caniuse_embed</span><span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=c># whether to show the feature support baseline, default is false</span>\n</span></span><span class=line><span class=cl><span class=nx>baseline</span> <span class=p>=</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl><span class=c># show the past N versions that match the feature, range is 0 - 5, default is 2</span>\n</span></span><span class=line><span class=cl><span class=nx>past</span> <span class=p>=</span> <span class=mi>2</span>\n</span></span><span class=line><span class=cl><span class=c># show the future N versions that match the feature, range is 0 - 3, default is 1</span>\n</span></span><span class=line><span class=cl><span class=nx>future</span> <span class=p>=</span> <span class=mi>1</span>\n</span></span><span class=line><span class=cl><span class=c># the origin of the caniuse embed data source, default is &#34;https://caniuse.lruihao.cn&#34;</span>\n</span></span><span class=line><span class=cl><span class=nx>origin</span> <span class=p>=</span> <span class=s2>&#34;https://caniuse.lruihao.cn&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># loading strategy for the iframe (eager or lazy), default is lazy</span>\n</span></span><span class=line><span class=cl><span class=nx>loading</span> <span class=p>=</span> <span class=s2>&#34;lazy&#34;</span>\n</span></span><span class=line><span class=cl><span class=c># only production environment effective</span>\n</span></span><span class=line><span class=cl><span class=c># e.g. https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js</span>\n</span></span><span class=line><span class=cl><span class=nx>cdn</span> <span class=p>=</span> <span class=s2>&#34;&#34;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用-shortcode><span>使用 Shortcode</span>\n<a href=#%e4%bd%bf%e7%94%a8-shortcode class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>caniuse</code> shortcode 有以下命名参数：</p><ul><li><strong>feature</strong> <em>[必需]</em>（第一个位置参数）特性名称</li><li><strong>baseline</strong> <em>[可选]</em>（第二个位置参数）是否显示功能支持基线，默认为 <code>false</code></li><li><strong>past</strong> <em>[可选]</em>（第三个位置参数）显示过去 N 个版本，范围是 <code>0 - 5</code>，默认为 <code>2</code></li><li><strong>future</strong> <em>[可选]</em>（第四个位置参数）显示未来 N 个版本，范围是 <code>0 - 3</code>，默认为 <code>1</code></li><li><strong>origin</strong> <em>[可选]</em>（第五个位置参数）caniuse embed 数据源，例如：<code>https://caniuse-embed-x.vercel.app</code></li><li><strong>loading</strong> <em>[可选]</em>（第六个位置参数）iframe 的加载策略（<code>eager</code> 或 <code>lazy</code>），默认为 <code>lazy</code></li></ul><blockquote><p>点击 <code>caniuse.com</code> 网站上功能左边 <code>#</code> 号，URL 中的 <code>pathname</code> 即为 <code>feature</code> 参数。</p></blockquote><p>这是一个用法示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; caniuse feature=&#34;flexbox&#34; &gt;}}\n</span></span><span class=line><span class=cl>或者\n</span></span><span class=line><span class=cl>{{&lt; caniuse &#34;flexbox&#34; &gt;}}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=参考><span>参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://caniuse.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">The CanIUse Embed — Add support tables to your site<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://caniuse.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Can I use… Support tables for HTML5, CSS3, etc<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=致谢><span>致谢</span>\n<a href=#%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/Lruihao/caniuse-embed-element target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/caniuse-embed-element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/pengzhanbo/caniuse-embed target=_blank rel=\"external nofollow noopener noreferrer\">pengzhanbo/caniuse-embed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/mdn/browser-compat-data target=_blank rel=\"external nofollow noopener noreferrer\">mdn-browser-compat-data<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Fyrd/caniuse target=_blank rel=\"external nofollow noopener noreferrer\">Fyrd/caniuse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/vercel-gravatar/ class=collection-nav-item rel=prev title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>利用 Vercel 反代 Gravatar 实现镜像加速</span>\n</a><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-docs-bookmark><span>hugo-fixit/shortcode-docs-bookmark</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:29\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/shortcode-caniuse/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/shortcode-caniuse/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/shortcode-caniuse/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ data-title=\"A Hugo theme component with caniuse shortcode.\" data-hashtags=caniuse-embed,hugo,hugo-fixit,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ data-hashtag=caniuse-embed><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ data-title=\"A Hugo theme component with caniuse shortcode.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ data-title=\"A Hugo theme component with caniuse shortcode.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/caniuse-embed/ class=post-tag title=\"标签 - caniuse-embed\">caniuse-embed</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/aside-toggle-drag/ class=post-nav-item rel=prev title=\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a><a href=/posts/scrollbar-styling/ class=post-nav-item rel=next title=标准滚动条控制规范>标准滚动条控制规范<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#依赖>依赖</a></li><li><a href=#安装组件>安装组件</a></li><li><a href=#配置>配置</a></li><li><a href=#使用-shortcode>使用 Shortcode</a></li><li><a href=#参考>参考</a></li><li><a href=#致谢>致谢</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/shortcode-caniuse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/shortcode-caniuse/index.md",
    "content": "# A Hugo theme component with caniuse shortcode.\n\n# Hugo shortcode for CanIUse\n\n在 Hugo 中使用 `shortcode` 方式内嵌 [CanIUse](https://caniuse.com/) 到你的文章中。\n\n![caniuse example](https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp)\n\n![baseline example](https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png)\n\n## 依赖\n\nFixIt 主题 `v0.4.0` 及以上版本。\n\n## 安装组件\n\n和 [安装主题](https://fixit.lruihao.cn/zh-cn/documentation/installation/) 一样，安装方式有多种，选择其一即可，例如通过 Hugo Modules 安装：\n\n```toml\n[module]\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/FixIt\"\n\n[[module.imports]]\npath = \"github.com/hugo-fixit/shortcode-caniuse\"\n```\n\n## 配置\n\n为了通过 FixIt 主题开放的 [自定义块](https://fixit.lruihao.cn/references/blocks/) 将 `shortcode-caniuse.html` 注入到 `custom-assets` 中，你需要填写以下必要配置：\n\n```toml\n[params]\n\n[params.customPartials]\n# ... other partials\nassets = [ \"inject/shortcode-caniuse.html\" ]\n# ... other partials\n```\n\n组件配置：\n\n```toml\n[params]\n\n# CanIUse Embed Element Configuration\n# See: https://github.com/Lruihao/caniuse-embed-element\n[params.caniuse_embed]\n# whether to show the feature support baseline, default is false\nbaseline = false\n# show the past N versions that match the feature, range is 0 - 5, default is 2\npast = 2\n# show the future N versions that match the feature, range is 0 - 3, default is 1\nfuture = 1\n# the origin of the caniuse embed data source, default is \"https://caniuse.lruihao.cn\"\norigin = \"https://caniuse.lruihao.cn\"\n# loading strategy for the iframe (eager or lazy), default is lazy\nloading = \"lazy\"\n# only production environment effective\n# e.g. https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js\ncdn = \"\"\n```\n\n## 使用 Shortcode\n\n`caniuse` shortcode 有以下命名参数：\n\n- **feature** _[必需]_（第一个位置参数）特性名称\n- **baseline** _[可选]_（第二个位置参数）是否显示功能支持基线，默认为 `false`\n- **past** _[可选]_（第三个位置参数）显示过去 N 个版本，范围是 `0 - 5`，默认为 `2`\n- **future** _[可选]_（第四个位置参数）显示未来 N 个版本，范围是 `0 - 3`，默认为 `1`\n- **origin** _[可选]_（第五个位置参数）caniuse embed 数据源，例如：`https://caniuse-embed-x.vercel.app`\n- **loading** _[可选]_（第六个位置参数）iframe 的加载策略（`eager` 或 `lazy`），默认为 `lazy`\n\n> 点击 `caniuse.com` 网站上功能左边 `#` 号，URL 中的 `pathname` 即为 `feature` 参数。\n\n这是一个用法示例：\n\n```markdown\n{{?{}< caniuse feature=\"flexbox\" >}}\n或者\n{{?{}< caniuse \"flexbox\" >}}\n```\n\n## 参考\n\n- [The CanIUse Embed — Add support tables to your site](https://caniuse.lruihao.cn/)\n- [Can I use… Support tables for HTML5, CSS3, etc](https://caniuse.com/)\n\n## 致谢\n\n- [Lruihao/caniuse-embed-element](https://github.com/Lruihao/caniuse-embed-element)\n- [pengzhanbo/caniuse-embed](https://github.com/pengzhanbo/caniuse-embed)\n- [mdn-browser-compat-data](https://github.com/mdn/browser-compat-data)\n- [Fyrd/caniuse](https://github.com/Fyrd/caniuse)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/shortcode-docs-bookmark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🔖 Embed bookmark of FixIt Docs. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\"><meta name=keywords content='fixit-docs-bookmark,hugo,hugo-fixit,shortcodes,theme-component'><meta itemprop=name content=\"🔖 Embed bookmark of FixIt Docs.\"><meta itemprop=description content=\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\"><meta itemprop=datePublished content=\"2024-07-14T07:39:56+00:00\"><meta itemprop=dateModified content=\"2025-12-27T08:36:41+00:00\"><meta itemprop=wordCount content=\"119\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"fixit-docs-bookmark,Hugo,hugo-fixit,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🔖 Embed bookmark of FixIt Docs.\"><meta property=\"og:description\" content=\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-07-14T07:39:56+00:00\"><meta property=\"article:modified_time\" content=\"2025-12-27T08:36:41+00:00\"><meta property=\"article:tag\" content=\"fixit-docs-bookmark\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🔖 Embed bookmark of FixIt Docs.\"><meta name=twitter:description content=\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ title=\"🔖 Embed bookmark of FixIt Docs. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/fixit-docs-bookmark/ title=\"CSS 实现时间轴、背景图 loading 和渐变边框\"><link rel=next type=text/html href=https://lruihao.cn/posts/drop-shadow/ title=\"现代 CSS 解决方案之异形元素怎么设置阴影？\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/index.md title=\"🔖 Embed bookmark of FixIt Docs. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🔖 Embed bookmark of FixIt Docs.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-docs-bookmark\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"fixit-docs-bookmark, hugo, hugo-fixit, shortcodes, theme-component\",\"wordcount\":119,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-docs-bookmark\\/\",\"datePublished\":\"2024-07-14T07:39:56+00:00\",\"dateModified\":\"2025-12-27T08:36:41+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/shortcode-docs-bookmark</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><span class=active title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</span></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/shortcode-caniuse/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-caniuse><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>34/51</span><a href=/projects/hugo-fixit/shortcode-rewards/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-rewards><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🔖 Embed bookmark of FixIt Docs.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/shortcode-docs-bookmark target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-docs-bookmark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn/posts/fixit-docs-bookmark/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn/posts/fixit-docs-bookmark/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-14 07:39:56\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-14>2024-07-14</time></span>&nbsp;<span title=\"更新于 2025-12-27 08:36:41\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-12-27>2025-12-27</time></span>&nbsp;<span title=\"119 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🔖 Embed bookmark of FixIt Docs.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#use-shortcode>Use Shortcode</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-12-27，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=fixit-docs-bookmark data-decreased><span>fixit-docs-bookmark</span>\n<a href=#fixit-docs-bookmark class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>🔖 Embed bookmark of FixIt Docs.</p><p><img loading=lazy src=/images/remote/featured-image_6457757536129463297.webp alt=preview height=668 width=1600></p><h2 class=heading-element id=requirements><span>Requirements</span>\n<a href=#requirements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>FixIt v0.4.0 or later.</li></ul><h2 class=heading-element id=install-component><span>Install Component</span>\n<a href=#install-component class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The installation method is the same as <a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">installing a theme<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>[module]\n</span></span><span class=line><span class=cl>  [[module.imports]]\n</span></span><span class=line><span class=cl>    path = &#34;github.com/hugo-fixit/FixIt&#34;\n</span></span><span class=line><span class=cl><span class=gi>+ [[module.imports]]\n</span></span></span><span class=line><span class=cl><span class=gi>+   path = &#34;github.com/hugo-fixit/shortcode-docs-bookmark&#34;\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=configuration><span>Configuration</span>\n<a href=#configuration class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>In order to Inject the partial <code>fixit-docs-bookmark.html</code> into the <code>custom-head</code> through the <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">custom block<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> opened by the FixIt theme in the <code>layouts/_partials/custom.html</code> file, you need to fill in the following necessary configurations:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl>    <span class=nx>head</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/fixit-docs-bookmark.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=use-shortcode><span>Use Shortcode</span>\n<a href=#use-shortcode class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Here is an example of usage:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; fixit-docs-bookmark &gt;}}</span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/shortcode-caniuse/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-caniuse><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/shortcode-caniuse</span>\n</a><a href=/projects/hugo-fixit/shortcode-rewards/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-rewards><span>hugo-fixit/shortcode-rewards</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-12-27 08:36:41\">更新于 2025-12-27&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/shortcode-docs-bookmark/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/shortcode-docs-bookmark/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/shortcode-docs-bookmark/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ data-title=\"🔖 Embed bookmark of FixIt Docs.\" data-hashtags=fixit-docs-bookmark,hugo,hugo-fixit,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ data-hashtag=fixit-docs-bookmark><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ data-title=\"🔖 Embed bookmark of FixIt Docs.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ data-title=\"🔖 Embed bookmark of FixIt Docs.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/fixit-docs-bookmark/ class=post-tag title=\"标签 - fixit-docs-bookmark\">fixit-docs-bookmark</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/fixit-docs-bookmark/ class=post-nav-item rel=prev title=\"CSS 实现时间轴、背景图 Loading 和渐变边框\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>CSS 实现时间轴、背景图 Loading 和渐变边框</a><a href=/posts/drop-shadow/ class=post-nav-item rel=next title=异形元素怎么设置阴影？>异形元素怎么设置阴影？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#use-shortcode>Use Shortcode</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/shortcode-docs-bookmark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/shortcode-docs-bookmark/index.md",
    "content": "# 🔖 Embed bookmark of FixIt Docs.\n\n# fixit-docs-bookmark\n\n🔖 Embed bookmark of FixIt Docs.\n\n![preview](https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp)\n\n## Requirements\n\n- FixIt v0.4.0 or later.\n\n## Install Component\n\nThe installation method is the same as [installing a theme](https://fixit.lruihao.cn/documentation/installation/). There are several ways to install, choose one, for example, install through Hugo Modules:\n\n```diff\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n+ [[module.imports]]\n+   path = \"github.com/hugo-fixit/shortcode-docs-bookmark\"\n```\n\n## Configuration\n\nIn order to Inject the partial `fixit-docs-bookmark.html` into the `custom-head` through the [custom block](https://fixit.lruihao.cn/references/blocks/) opened by the FixIt theme in the `layouts/_partials/custom.html` file, you need to fill in the following necessary configurations:\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    head = [ \"inject/fixit-docs-bookmark.html\" ]\n    # ... other partials\n```\n\n## Use Shortcode\n\nHere is an example of usage:\n\n```markdown\n{{?{}< fixit-docs-bookmark >}}\n```\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/shortcode-mmt-netease/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta name=keywords content='hugo,hugo-fixit,netease-cloud-music,shortcodes,theme-component'><meta itemprop=name content=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta itemprop=description content=\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta itemprop=datePublished content=\"2023-02-28T09:12:29+00:00\"><meta itemprop=dateModified content=\"2025-07-02T07:28:07+00:00\"><meta itemprop=wordCount content=\"121\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,hugo-fixit,netease-cloud-music,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta property=\"og:description\" content=\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-02-28T09:12:29+00:00\"><meta property=\"article:modified_time\" content=\"2025-07-02T07:28:07+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"netease-cloud-music\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta name=twitter:description content=\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/native-img-loading-lazy/ title='浏览器 IMG 图片原生懒加载 loading=\"lazy\"'><link rel=next type=text/html href=https://lruihao.cn/posts/vue2-guid/ title=\"新手向：Vue 2.0 的建议学习顺序\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/index.md title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-mmt-netease\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, hugo-fixit, netease-cloud-music, shortcodes, theme-component\",\"wordcount\":121,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-mmt-netease\\/\",\"datePublished\":\"2023-02-28T09:12:29+00:00\",\"dateModified\":\"2025-07-02T07:28:07+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/shortcode-mmt-netease/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/shortcode-mmt-netease</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><span class=active title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</span></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/vue-minder-editor-extended/ class=collection-nav-item rel=prev title=Lruihao/vue-minder-editor-extended><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>20/51</span><a href=/projects/lruihao/el-table-sticky/ class=collection-nav-item rel=next title=Lruihao/el-table-sticky><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/shortcode-mmt-netease target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-mmt-netease<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn/guestbook/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn/guestbook/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-02-28 09:12:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-02-28>2023-02-28</time></span>&nbsp;<span title=\"更新于 2025-07-02 07:28:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-07-02>2025-07-02</time></span>&nbsp;<span title=\"121 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#安装>安装</a><ul><li><a href=#安装为-hugo-模块>安装为 Hugo 模块</a></li><li><a href=#安装为-git-子模块>安装为 Git 子模块</a></li></ul></li><li><a href=#使用>使用</a></li><li><a href=#dependencies>Dependencies</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-07-02，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=shortcode-mmt-netease data-decreased><span>shortcode-mmt-netease</span>\n<a href=#shortcode-mmt-netease class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><img loading=lazy src=/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png alt=preview height=934 width=1754></p><p>一个含有网易云随机评论 shortcode 的 Hugo 主题组件。</p><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.cn/guestbook/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn/guestbook/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>本组件适用于所有 Hugo 主题，但你必须有一个主体主题来使用它，以下以 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 主题为例。</p></div><p>安装方法与 <a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">安装主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 相同。有几种安装方法，请选择一种。</p><h3 class=heading-element id=安装为-hugo-模块><span>安装为 Hugo 模块</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先确保你的项目本身是一个 <a href=https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>module</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/FixIt&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>[[</span><span class=nx>module</span><span class=p>.</span><span class=nx>imports</span><span class=p>]]</span>\n</span></span><span class=line><span class=cl>    <span class=nx>path</span> <span class=p>=</span> <span class=s2>&#34;github.com/hugo-fixit/shortcode-mmt-netease&#34;</span></span></span></code></pre></td></tr></table></div></div></div><p>在第一次启动 Hugo 时，它将下载所需的文件。</p><p>要更新到模块的最新版本，请运行：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>hugo mod get -u\n</span></span><span class=line><span class=cl>hugo mod tidy</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=安装为-git-子模块><span>安装为 Git 子模块</span>\n<a href=#%e5%ae%89%e8%a3%85%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>将 <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\n</span></span><span class=line><span class=cl>git submodule add https://github.com/hugo-fixit/shortcode-mmt-netease.git themes/shortcode-mmt-netease</span></span></code></pre></td></tr></table></div></div></div><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=nx>theme</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;FixIt&#34;</span><span class=p>,</span> <span class=s2>&#34;shortcode-mmt-netease&#34;</span><span class=p>]</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=使用><span>使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>mmt-netease</code> shortcode 有以下命名参数：</p><ul><li><strong>mid</strong> <em>[必需]</em>（第一个位置参数）网易云歌单 ID</li><li><strong>autoplay</strong> <em>[可选]</em>（第二个位置参数）是否自动播放，默认：<code>false</code></li><li><strong>fixed</strong> <em>[可选]</em>（第三个位置参数）是否启用固定模式，默认：<code>false</code></li><li><strong>mini</strong> <em>[可选]</em>（第四个位置参数）是否启用迷你模式，默认：<code>false</code></li><li><strong>volume</strong> <em>[可选]</em>（第五个位置参数）默认音量，注意播放器会记住用户设置，用户自己设置音量后默认音量将不起作用，默认：<code>0.7</code></li><li><strong>current</strong> <em>[可选]</em>（第六个位置参数）是否播放当前评论的音乐，默认：<code>false</code></li></ul><p>这是一个用法示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; mmt-netease mid=&#34;2280569152&#34; autoplay=&#34;false&#34; &gt;}}\n</span></span><span class=line><span class=cl>&lt;!-- OR --&gt;\n</span></span><span class=line><span class=cl>{{&lt; mmt-netease &#34;2280569152&#34; false &gt;}}</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=dependencies><span>Dependencies</span>\n<a href=#dependencies class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/MoePlayer/APlayer target=_blank rel=\"external nofollow noopener noreferrer\">APlayer<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/metowolf/MetingJS target=_blank rel=\"external nofollow noopener noreferrer\">MetingJS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/mmt-webfont target=_blank rel=\"external nofollow noopener noreferrer\">mmt-webfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/vercel-proxy?#netease-comment target=_blank rel=\"external nofollow noopener noreferrer\">vercel-proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/vue-minder-editor-extended/ class=collection-nav-item rel=prev title=Lruihao/vue-minder-editor-extended><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/vue-minder-editor-extended</span>\n</a><a href=/projects/lruihao/el-table-sticky/ class=collection-nav-item rel=next title=Lruihao/el-table-sticky><span>Lruihao/el-table-sticky</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-07-02 07:28:07\">更新于 2025-07-02&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/shortcode-mmt-netease/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/shortcode-mmt-netease/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/shortcode-mmt-netease/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ data-title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\" data-hashtags=hugo,hugo-fixit,netease-cloud-music,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ data-title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ data-title=\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/netease-cloud-music/ class=post-tag title=\"标签 - netease-cloud-music\">netease-cloud-music</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/native-img-loading-lazy/ class=post-nav-item rel=prev title='浏览器 IMG 图片原生懒加载 Loading=\"lazy\"'><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a><a href=/posts/vue2-guid/ class=post-nav-item rel=next title=\"新手向：Vue 2.0 的建议学习顺序\">新手向：Vue 2.0 的建议学习顺序<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#安装>安装</a><ul><li><a href=#安装为-hugo-模块>安装为 Hugo 模块</a></li><li><a href=#安装为-git-子模块>安装为 Git 子模块</a></li></ul></li><li><a href=#使用>使用</a></li><li><a href=#dependencies>Dependencies</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/shortcode-mmt-netease/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/shortcode-mmt-netease/index.md",
    "content": "# 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\n\n# shortcode-mmt-netease\n\n![preview](https://user-images.githubusercontent.com/33419593/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169.png)\n\n一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\n\n## Demo\n\n<https://lruihao.cn/guestbook/>\n\n## 安装\n\n> [!TIP]\n> 本组件适用于所有 Hugo 主题，但你必须有一个主体主题来使用它，以下以 [FixIt](https://github.com/hugo-fixit/FixIt) 主题为例。\n\n安装方法与 [安装主题](https://fixit.lruihao.cn/documentation/installation/) 相同。有几种安装方法，请选择一种。\n\n### 安装为 Hugo 模块\n\n首先确保你的项目本身是一个 [Hugo 模块](https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module)。\n\n然后将此主题组件添加到你的 `hugo.toml` 配置文件中：\n\n```toml\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/shortcode-mmt-netease\"\n```\n\n在第一次启动 Hugo 时，它将下载所需的文件。\n\n要更新到模块的最新版本，请运行：\n\n```bash\nhugo mod get -u\nhugo mod tidy\n```\n\n### 安装为 Git 子模块\n\n将 [FixIt](https://github.com/hugo-fixit/FixIt) 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。\n\n```bash\ngit submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt\ngit submodule add https://github.com/hugo-fixit/shortcode-mmt-netease.git themes/shortcode-mmt-netease\n```\n\n接下来编辑项目的 `hugo.toml` 并将此主题组件添加到你的主题中：\n\n```toml\ntheme = [\"FixIt\", \"shortcode-mmt-netease\"]\n```\n\n## 使用\n\n`mmt-netease` shortcode 有以下命名参数：\n\n- **mid** _[必需]_（第一个位置参数）网易云歌单 ID\n- **autoplay** _[可选]_（第二个位置参数）是否自动播放，默认：`false`\n- **fixed** _[可选]_（第三个位置参数）是否启用固定模式，默认：`false`\n- **mini** _[可选]_（第四个位置参数）是否启用迷你模式，默认：`false`\n- **volume** _[可选]_（第五个位置参数）默认音量，注意播放器会记住用户设置，用户自己设置音量后默认音量将不起作用，默认：`0.7`\n- **current** _[可选]_（第六个位置参数）是否播放当前评论的音乐，默认：`false`\n\n这是一个用法示例：\n\n```markdown\n{{?{}< mmt-netease mid=\"2280569152\" autoplay=\"false\" >}}\n<!-- OR -->\n{{?{}< mmt-netease \"2280569152\" false >}}\n```\n\n## Dependencies\n\n- [APlayer](https://github.com/MoePlayer/APlayer)\n- [MetingJS](https://github.com/metowolf/MetingJS)\n- [mmt-webfont](https://github.com/Lruihao/mmt-webfont)\n- [vercel-proxy](https://github.com/Lruihao/vercel-proxy?#netease-comment)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/  \n\n"
  },
  {
    "path": "projects/hugo-fixit/shortcode-rewards/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A Hugo theme component with reward-log or sponsor-log shortcode. | 菠菜眾長</title><meta name=author content=\"hugo-fixit\"><meta name=description content=\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta name=keywords content='hugo,reward-log,shortcodes,theme-component'><meta itemprop=name content=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta itemprop=description content=\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta itemprop=datePublished content=\"2024-07-21T14:02:29+00:00\"><meta itemprop=dateModified content=\"2025-11-08T18:49:59+00:00\"><meta itemprop=wordCount content=\"374\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Hugo,reward-log,Shortcodes,theme-component\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta property=\"og:description\" content=\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-07-21T14:02:29+00:00\"><meta property=\"article:modified_time\" content=\"2025-11-08T18:49:59+00:00\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"reward-log\"><meta property=\"article:tag\" content=\"Shortcodes\"><meta property=\"article:tag\" content=\"theme-component\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta name=twitter:description content=\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ title=\"A Hugo theme component with reward-log or sponsor-log shortcode. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/git-summary/ title=\"Git 统计代码量\"><link rel=next type=text/html href=https://lruihao.cn/posts/css-round/ title=\"现代 CSS 解决方案：CSS 四舍五入数值单位\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/index.md title=\"A Hugo theme component with reward-log or sponsor-log shortcode. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-rewards\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"hugo, reward-log, shortcodes, theme-component\",\"wordcount\":374,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/hugo-fixit\\/shortcode-rewards\\/\",\"datePublished\":\"2024-07-21T14:02:29+00:00\",\"dateModified\":\"2025-11-08T18:49:59+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"hugo-fixit\"},\"description\":\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/hugo-fixit/shortcode-rewards/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>hugo-fixit/shortcode-rewards</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><span class=active title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</span></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-docs-bookmark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>35/51</span><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-mdevtools><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A Hugo theme component with reward-log or sponsor-log shortcode.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/hugo-fixit/shortcode-rewards target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit/shortcode-rewards<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn/reward/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn/reward/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/hugo-fixit title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/110414864_9281967778839757138.png alt=hugo-fixit height=16 width=16>&nbsp;hugo-fixit</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-07-21 14:02:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-07-21>2024-07-21</time></span>&nbsp;<span title=\"更新于 2025-11-08 18:49:59\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-11-08>2025-11-08</time></span>&nbsp;<span title=\"374 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#usage>Usage</a></li><li><a href=#params>Params</a><ul><li><a href=#shortcode>Shortcode</a></li><li><a href=#data>Data</a></li></ul></li><li><a href=#references>References</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-11-08，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=shortcode-rewards data-decreased><span>shortcode-rewards</span>\n<a href=#shortcode-rewards class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>A Hugo theme component with <code>reward-log</code> or <code>sponsor-log</code> shortcode.</p><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/contributing/overview/#sponsor target=_blank rel=\"external nofollow noopener noreferrer\">FixIt Docs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/about/#sponsor target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao&rsquo;s Blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=requirements><span>Requirements</span>\n<a href=#requirements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Developed based on the FixIt Timeline plugin.</p></blockquote><ul><li>FixIt v0.4.0 or later.</li></ul><h2 class=heading-element id=install-component><span>Install Component</span>\n<a href=#install-component class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The installation method is the same as <a href=https://fixit.lruihao.cn/documentation/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">installing a theme<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>[module]\n</span></span><span class=line><span class=cl>  [[module.imports]]\n</span></span><span class=line><span class=cl>    path = &#34;github.com/hugo-fixit/FixIt&#34;\n</span></span><span class=line><span class=cl><span class=gi>+ [[module.imports]]\n</span></span></span><span class=line><span class=cl><span class=gi>+   path = &#34;github.com/hugo-fixit/shortcode-rewards&#34;\n</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=configuration><span>Configuration</span>\n<a href=#configuration class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>In order to Inject the partial <code>shortcode-rewards.html</code> into the <code>custom-head</code> through the <a href=https://fixit.lruihao.cn/references/blocks/ target=_blank rel=\"external nofollow noopener noreferrer\">custom block<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> opened by the FixIt theme in the <code>layouts/partials/custom.html</code> file, you need to fill in the following necessary configurations:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-toml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-toml data-lang=toml><span class=line><span class=cl><span class=p>[</span><span class=nx>params</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>  <span class=p>[</span><span class=nx>params</span><span class=p>.</span><span class=nx>customPartials</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span>\n</span></span><span class=line><span class=cl>    <span class=nx>head</span> <span class=p>=</span> <span class=p>[</span> <span class=s2>&#34;inject/shortcode-rewards.html&#34;</span> <span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=c># ... other partials</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=usage><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>First, create the <code>reward-log.yml</code> file and edit your data:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>cp themes/shortcode-sponsor-log/reward_log.yml.example data/reward_log.yml</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>If your site is multilingual, you can create a <code>reward_log.en.yml</code> file for English and <code>reward_log.zh-cn.yml</code> for Chinese.</p></blockquote><p>Next, use the <code>reward-log</code> shortcode in any page:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-markdown\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-markdown data-lang=markdown><span class=line><span class=cl>{{&lt; reward-log &gt;}}</span></span></code></pre></td></tr></table></div></div></div><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>For compatibility with older versions, <code>sponsor-log</code> shortcode can also be used, and the corresponding data file is <code>sponsor_log.yml</code>.</p></div><h2 class=heading-element id=params><span>Params</span>\n<a href=#params class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=shortcode><span>Shortcode</span>\n<a href=#shortcode class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The <code>reward-log</code> shortcode has the following named parameters, and the positional parameters ordered from top to bottom:</p><div class=table-wrapper><table><thead><tr><th style=text-align:left>Parameter</th><th style=text-align:left>Description</th><th style=text-align:left>Type</th><th style=text-align:left>Optional values</th><th style=text-align:left>Default</th></tr></thead><tbody><tr><td style=text-align:left>reverse</td><td style=text-align:left>whether the node is ascending or descending</td><td style=text-align:left>boolean</td><td style=text-align:left>-</td><td style=text-align:left>true</td></tr><tr><td style=text-align:left>placement</td><td style=text-align:left>position of timestamp</td><td style=text-align:left>string</td><td style=text-align:left>top / bottom</td><td style=text-align:left>bottom</td></tr><tr><td style=text-align:left>animation</td><td style=text-align:left>whether to enable animation</td><td style=text-align:left>boolean</td><td style=text-align:left>-</td><td style=text-align:left>false</td></tr><tr><td style=text-align:left>size</td><td style=text-align:left>node size</td><td style=text-align:left>string</td><td style=text-align:left>small / medium / large</td><td style=text-align:left>medium</td></tr><tr><td style=text-align:left>node</td><td style=text-align:left>node style</td><td style=text-align:left>string</td><td style=text-align:left>circle / dot</td><td style=text-align:left>circle</td></tr><tr><td style=text-align:left>width</td><td style=text-align:left><code>#</code> container width</td><td style=text-align:left>string</td><td style=text-align:left>-</td><td style=text-align:left>-</td></tr><tr><td style=text-align:left>height</td><td style=text-align:left><code>#</code> container height</td><td style=text-align:left>string</td><td style=text-align:left>-</td><td style=text-align:left>-</td></tr><tr><td style=text-align:left>class</td><td style=text-align:left><code>#</code> container classname</td><td style=text-align:left>string</td><td style=text-align:left>-</td><td style=text-align:left>-</td></tr></tbody></table></div><blockquote><p>Parameters marked with <code>#</code> only support named parameters.</p></blockquote><h3 class=heading-element id=data><span>Data</span>\n<a href=#data class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The <code>reward_log.yml</code> file has the following fields:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=c># The sponsor logs data format is as follows</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c># currency: [CNY, USD, EUR, ...] https://gohugo.io/functions/lang/formatcurrency/</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c># origin: [alipay, bitcoin, paypal, wechatpay, ...]</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>message</span><span class=p>:</span><span class=w> </span><span class=l>Thanks all!</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>currency</span><span class=p>:</span><span class=w> </span><span class=l>CNY</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>symbol</span><span class=p>:</span><span class=w> </span><span class=l>¥</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=c># The sponsor logs inherit the FixIt Timeline events</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>logs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span>- <span class=nt>date</span><span class=p>:</span><span class=w> </span><span class=s2>&#34;2006-01-02 15:04:05&#34;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>sponsor</span><span class=p>:</span><span class=w> </span><span class=l>Cell</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>money</span><span class=p>:</span><span class=w> </span><span class=m>50</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>origin</span><span class=p>:</span><span class=w> </span><span class=l>alipay</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>remark</span><span class=p>:</span><span class=w> </span><span class=s2>&#34;Come on!&#34;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=references><span>References</span>\n<a href=#references class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://fixit.lruihao.cn/contributing/components/ target=_blank rel=\"external nofollow noopener noreferrer\">Develop Theme Components | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://fixit.lruihao.cn/components/dev-component/ target=_blank rel=\"external nofollow noopener noreferrer\">How to Develop a Hugo Theme Component | FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"hugo-fixit 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"hugo-fixit 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-docs-bookmark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/shortcode-docs-bookmark</span>\n</a><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-mdevtools><span>hugo-fixit/cmpt-mdevtools</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-11-08 18:49:59\">更新于 2025-11-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/hugo-fixit/shortcode-rewards/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/hugo-fixit/shortcode-rewards/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/hugo-fixit/shortcode-rewards/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ data-title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\" data-hashtags=hugo,reward-log,shortcodes,theme-component><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ data-hashtag=hugo><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ data-title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ data-title=\"A Hugo theme component with reward-log or sponsor-log shortcode.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/reward-log/ class=post-tag title=\"标签 - reward-log\">reward-log</a><a href=/tags/shortcodes/ class=post-tag title=\"标签 - Shortcodes\">Shortcodes</a><a href=/tags/theme-component/ class=post-tag title=\"标签 - theme-component\">theme-component</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/git-summary/ class=post-nav-item rel=prev title=\"Git 统计代码量\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Git 统计代码量</a><a href=/posts/css-round/ class=post-nav-item rel=next title=\"CSS 四舍五入数值单位\">CSS 四舍五入数值单位<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#requirements>Requirements</a></li><li><a href=#install-component>Install Component</a></li><li><a href=#configuration>Configuration</a></li><li><a href=#usage>Usage</a></li><li><a href=#params>Params</a><ul><li><a href=#shortcode>Shortcode</a></li><li><a href=#data>Data</a></li></ul></li><li><a href=#references>References</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/hugo-fixit/shortcode-rewards/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/hugo-fixit/shortcode-rewards/index.md",
    "content": "# A Hugo theme component with reward-log or sponsor-log shortcode.\n\n# shortcode-rewards\n\nA Hugo theme component with `reward-log` or `sponsor-log` shortcode.\n\n## Demo\n\n- [FixIt Docs](https://fixit.lruihao.cn/contributing/overview/#sponsor)\n- [Lruihao's Blog](https://lruihao.cn/about/#sponsor)\n\n## Requirements\n\n> Developed based on the FixIt Timeline plugin.\n\n- FixIt v0.4.0 or later.\n\n## Install Component\n\nThe installation method is the same as [installing a theme](https://fixit.lruihao.cn/documentation/installation/). There are several ways to install, choose one, for example, install through Hugo Modules:\n\n```diff\n[module]\n  [[module.imports]]\n    path = \"github.com/hugo-fixit/FixIt\"\n+ [[module.imports]]\n+   path = \"github.com/hugo-fixit/shortcode-rewards\"\n```\n\n## Configuration\n\nIn order to Inject the partial `shortcode-rewards.html` into the `custom-head` through the [custom block](https://fixit.lruihao.cn/references/blocks/) opened by the FixIt theme in the `layouts/partials/custom.html` file, you need to fill in the following necessary configurations:\n\n```toml\n[params]\n  [params.customPartials]\n    # ... other partials\n    head = [ \"inject/shortcode-rewards.html\" ]\n    # ... other partials\n```\n\n## Usage\n\nFirst, create the `reward-log.yml` file and edit your data:\n\n```bash\ncp themes/shortcode-sponsor-log/reward_log.yml.example data/reward_log.yml\n```\n\n> If your site is multilingual, you can create a `reward_log.en.yml` file for English and `reward_log.zh-cn.yml` for Chinese.\n\nNext, use the `reward-log` shortcode in any page:\n\n```markdown\n{{?{}< reward-log >}}\n```\n\n> [!note]\n> For compatibility with older versions, `sponsor-log` shortcode can also be used, and the corresponding data file is `sponsor_log.yml`.\n\n## Params\n\n### Shortcode\n\nThe `reward-log` shortcode has the following named parameters, and the positional parameters ordered from top to bottom:\n\n| Parameter | Description                                                       | Type    | Optional values        | Default |\n| :-------- | :---------------------------------------------------------------- | :------ | :--------------------- | :------ |\n| reverse   | whether the node is ascending or descending                       | boolean | -                      | true    |\n| placement | position of timestamp                                             | string  | top / bottom           | bottom  |\n| animation | whether to enable animation                                       | boolean | -                      | false   |\n| size      | node size                                                         | string  | small / medium / large | medium  |\n| node      | node style                                                        | string  | circle / dot           | circle  |\n| width     | `#` container width                                               | string  | -                      | -       |\n| height    | `#` container height                                              | string  | -                      | -       |\n| class     | `#` container classname                                           | string  | -                      | -       |\n\n> Parameters marked with `#` only support named parameters.\n\n### Data\n\nThe `reward_log.yml` file has the following fields:\n\n```yaml\n# The sponsor logs data format is as follows\n# currency: [CNY, USD, EUR, ...] https://gohugo.io/functions/lang/formatcurrency/\n# origin: [alipay, bitcoin, paypal, wechatpay, ...]\n\nmessage: Thanks all!\ncurrency: CNY\nsymbol: ¥\n# The sponsor logs inherit the FixIt Timeline events\nlogs:\n  - date: \"2006-01-02 15:04:05\"\n    sponsor: Cell\n    money: 50\n    origin: alipay\n    remark: \"Come on!\"\n```\n\n## References\n\n- [Develop Theme Components | FixIt](https://fixit.lruihao.cn/contributing/components/)\n- [How to Develop a Hugo Theme Component | FixIt](https://fixit.lruihao.cn/components/dev-component/)\n\n\n---\n\n> 作者: [hugo-fixit](https://github.com/hugo-fixit)  \n> URL: https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/  \n\n"
  },
  {
    "path": "projects/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>我的开源 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"我的开源\"><meta itemprop=description content=\"作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。\"><meta itemprop=dateModified content=\"2025-08-03T01:54:24+08:00\"><meta itemprop=wordCount content=\"41\"><meta itemprop=image content=\"https://lruihao.cn/projects/images/projects-cover.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"我的开源\"><meta property=\"og:description\" content=\"作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/projects/images/projects-cover.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/projects/images/projects-cover.webp\"><meta name=twitter:title content=\"我的开源\"><meta name=twitter:description content=\"作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/ title=\"我的开源 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/projects/index.xml title=\"我的开源 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/projects/feed.json title=\"我的开源 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/projects/feed.json title=\"我的开源 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=wide><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=\"menu-item active\"><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=\"menu-item active\"><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><link rel=stylesheet href=/css/component-projects.min.css><aside class=\"animate__animated animate__fadeIn animate__faster\"></aside><article class=\"page archive projects single\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-brands fa-github fa-fw me-1\" aria-hidden=true></i>我的开源</h1><p class=\"single-subtitle animate__animated animate__fadeIn\"><a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">@Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> / <a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">@hugo-fixit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta></div><div class=featured-image><img src=/projects/images/projects-cover.webp alt=/projects/images/projects-cover.webp></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#live-demo>Live Demo</a><ul><li><a href=#hugo>Hugo</a></li><li><a href=#tools>Tools</a></li><li><a href=#others>Others</a></li></ul></li><li><a href=#我开发的>我开发的</a></li><li><a href=#我贡献的>我贡献的</a></li><li><a href=#归档私有>归档/私有</a></li><li><a href=#related-articles>相关文章</a></li></ul></nav></div></div><div class=content id=content><h2 class=heading-element id=live-demo><span>Live Demo</span>\n<a href=#live-demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>点击查看</summary><h3 class=heading-element id=hugo><span>Hugo</span>\n<a href=#hugo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://fixit.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h3 class=heading-element id=tools><span>Tools</span>\n<a href=#tools class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://coverview.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://api.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">Vercel API Proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.github.io/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">MMT webfont package<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.github.io/caniuse-embed-element/ target=_blank rel=\"external nofollow noopener noreferrer\">&lt;caniuse-embed> Element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.github.io/el-table-sticky/ target=_blank rel=\"external nofollow noopener noreferrer\">el-table-sticky<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h3 class=heading-element id=others><span>Others</span>\n<a href=#others class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://lruihao.github.io/html-demo target=_blank rel=\"external nofollow noopener noreferrer\">HTML/CSS/JS demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.github.io/vue-el-demo target=_blank rel=\"external nofollow noopener noreferrer\">Vue2 demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://img-1256932288.cos-website.ap-chengdu.myqcloud.com/ target=_blank rel=\"external nofollow noopener noreferrer\">cos-album<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.github.io/HW/ target=_blank rel=\"external nofollow noopener noreferrer\">实习期作业<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><span id=busuanzi_container_page_pv class=\"busuanzi_visitors d-none\"><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span><h2 id=我开发的 class=heading-element><span>我开发的</span>\n<a href=#%e6%88%91%e5%bc%80%e5%8f%91%e7%9a%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div title=\"累计 1786 stars\" class=\"group-summary total-stars\">累计 1.8k stars</div><p>下面这些是我开发过的一些开源作品。</p><div class=gh-repo-card-container><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/FixIt class=repo-url title=hugo-fixit/FixIt target=_blank><span>hugo-fixit/</span><span>FixIt</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/FixIt/stargazers title=\"1103 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1.1k</a><a href=https://github.com/hugo-fixit/FixIt/forks title=\"133 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>133</a></p><a class=repo-post href=/projects/hugo-fixit/fixit/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/CoverView class=repo-url title=Lruihao/CoverView target=_blank><span>Lruihao/</span><span>CoverView</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🛠 Create awesome cover images for your blog posts quickly.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/Lruihao/CoverView/stargazers title=\"144 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>144</a><a href=https://github.com/Lruihao/CoverView/forks title=\"28 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>28</a></p><a class=repo-post href=/projects/lruihao/coverview/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/el-table-sticky class=repo-url title=Lruihao/el-table-sticky target=_blank><span>Lruihao/</span><span>el-table-sticky</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#41b883></span>\n<span itemprop=programmingLanguage>Vue</span>\n</span><a href=https://github.com/Lruihao/el-table-sticky/stargazers title=\"107 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>107</a><a href=https://github.com/Lruihao/el-table-sticky/forks title=\"11 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>11</a></p><a class=repo-post href=/projects/lruihao/el-table-sticky/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/hugo-blog class=repo-url title=Lruihao/hugo-blog target=_blank><span>Lruihao/</span><span>hugo-blog</span>\n</a><span class=repo-visibility data-archived=false>Public template</span></div><p class=repo-desc>Lruihao's Note</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#083fa1></span>\n<span itemprop=programmingLanguage>Markdown</span>\n</span><a href=https://github.com/Lruihao/hugo-blog/stargazers title=\"86 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>86</a><a href=https://github.com/Lruihao/hugo-blog/forks title=\"10 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>10</a></p><a class=repo-post href=/projects/lruihao/hugo-blog/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/docs class=repo-url title=hugo-fixit/docs target=_blank><span>hugo-fixit/</span><span>docs</span>\n</a><span class=repo-visibility data-archived=false>Public template</span></div><p class=repo-desc>📄 The open-source repo for fixit.lruihao.cn</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#083fa1></span>\n<span itemprop=programmingLanguage>Markdown</span>\n</span><a href=https://github.com/hugo-fixit/docs/stargazers title=\"64 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>64</a><a href=https://github.com/hugo-fixit/docs/forks title=\"24 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>24</a></p><a class=repo-post href=/projects/hugo-fixit/docs/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/vue-el-demo class=repo-url title=Lruihao/vue-el-demo target=_blank><span>Lruihao/</span><span>vue-el-demo</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Vue2 and element-ui related demos</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#41b883></span>\n<span itemprop=programmingLanguage>Vue</span>\n</span><a href=https://github.com/Lruihao/vue-el-demo/stargazers title=\"36 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>36</a><a href=https://github.com/Lruihao/vue-el-demo/forks title=\"3 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>3</a></p><a class=repo-post href=/projects/lruihao/vue-el-demo/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/hugo-fixit-starter class=repo-url title=hugo-fixit/hugo-fixit-starter target=_blank><span>hugo-fixit/</span><span>hugo-fixit-starter</span>\n</a><span class=repo-visibility data-archived=false>Public template</span></div><p class=repo-desc>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#9c4221></span>\n<span itemprop=programmingLanguage>TOML</span>\n</span><a href=https://github.com/hugo-fixit/hugo-fixit-starter/stargazers title=\"34 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>34</a><a href=https://github.com/hugo-fixit/hugo-fixit-starter/forks title=\"3 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>3</a></p><a class=repo-post href=/projects/hugo-fixit/hugo-fixit-starter/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/cmpt-translate class=repo-url title=hugo-fixit/cmpt-translate target=_blank><span>hugo-fixit/</span><span>cmpt-translate</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🌐 A component for site automatic translation.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/hugo-fixit/cmpt-translate/stargazers title=\"34 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>34</a><a href=https://github.com/hugo-fixit/cmpt-translate/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/hugo-fixit/cmpt-translate/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/watermark class=repo-url title=Lruihao/watermark target=_blank><span>Lruihao/</span><span>watermark</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Create watermark for webpage and automatic adjust when window resize.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/watermark/stargazers title=\"32 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>32</a><a href=https://github.com/Lruihao/watermark/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/watermark/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/fixit-cli class=repo-url title=hugo-fixit/fixit-cli target=_blank><span>hugo-fixit/</span><span>fixit-cli</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🛠️ A node-based tooling for FixIt site initialization.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/hugo-fixit/fixit-cli/stargazers title=\"28 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>28</a><a href=https://github.com/hugo-fixit/fixit-cli/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/hugo-fixit/fixit-cli/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/component-projects class=repo-url title=hugo-fixit/component-projects target=_blank><span>hugo-fixit/</span><span>component-projects</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/component-projects/stargazers title=\"25 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>25</a></p><a class=repo-post href=/projects/hugo-fixit/component-projects/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/hugo-fixit-starter1 class=repo-url title=hugo-fixit/hugo-fixit-starter1 target=_blank><span>hugo-fixit/</span><span>hugo-fixit-starter1</span>\n</a><span class=repo-visibility data-archived=false>Public template</span></div><p class=repo-desc>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#9c4221></span>\n<span itemprop=programmingLanguage>TOML</span>\n</span><a href=https://github.com/hugo-fixit/hugo-fixit-starter1/stargazers title=\"19 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>19</a><a href=https://github.com/hugo-fixit/hugo-fixit-starter1/forks title=\"4 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>4</a></p><a class=repo-post href=/projects/hugo-fixit/hugo-fixit-starter1/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/vue-minder-editor-extended class=repo-url title=Lruihao/vue-minder-editor-extended target=_blank><span>Lruihao/</span><span>vue-minder-editor-extended</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/vue-minder-editor-extended/stargazers title=\"12 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>12</a><a href=https://github.com/Lruihao/vue-minder-editor-extended/forks title=\"4 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>4</a></p><a class=repo-post href=/projects/lruihao/vue-minder-editor-extended/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/html-demo class=repo-url title=Lruihao/html-demo target=_blank><span>Lruihao/</span><span>html-demo</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/Lruihao/html-demo/stargazers title=\"7 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>7</a></p><a class=repo-post href=/projects/lruihao/html-demo/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/shortcode-mmt-netease class=repo-url title=hugo-fixit/shortcode-mmt-netease target=_blank><span>hugo-fixit/</span><span>shortcode-mmt-netease</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/hugo-fixit/shortcode-mmt-netease/stargazers title=\"7 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>7</a><a href=https://github.com/hugo-fixit/shortcode-mmt-netease/forks title=\"2 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/shortcode-mmt-netease/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/hugo-json-feed class=repo-url title=hugo-fixit/hugo-json-feed target=_blank><span>hugo-fixit/</span><span>hugo-json-feed</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Hugo theme component for JSON feed custom Output Format.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/hugo-json-feed/stargazers title=\"6 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>6</a></p><a class=repo-post href=/projects/hugo-fixit/hugo-json-feed/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/cmpt-flyfish class=repo-url title=hugo-fixit/cmpt-flyfish target=_blank><span>hugo-fixit/</span><span>cmpt-flyfish</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🐟 A canvas implemented animation effect of small fish swimming.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/hugo-fixit/cmpt-flyfish/stargazers title=\"6 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>6</a><a href=https://github.com/hugo-fixit/cmpt-flyfish/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/hugo-fixit/cmpt-flyfish/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/vercel-proxy class=repo-url title=Lruihao/vercel-proxy target=_blank><span>Lruihao/</span><span>vercel-proxy</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>API proxies powered by Vercel.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/Lruihao/vercel-proxy/stargazers title=\"4 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>4</a><a href=https://github.com/Lruihao/vercel-proxy/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/vercel-proxy/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/shortcode-rewards class=repo-url title=hugo-fixit/shortcode-rewards target=_blank><span>hugo-fixit/</span><span>shortcode-rewards</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A Hugo theme component with reward-log or sponsor-log shortcode.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/shortcode-rewards/stargazers title=\"4 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>4</a></p><a class=repo-post href=/projects/hugo-fixit/shortcode-rewards/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/mmt-webfont class=repo-url title=Lruihao/mmt-webfont target=_blank><span>Lruihao/</span><span>mmt-webfont</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>The webfont package for the MMT typeface.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#41b883></span>\n<span itemprop=programmingLanguage>Vue</span>\n</span><a href=https://github.com/Lruihao/mmt-webfont/stargazers title=\"3 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3</a></p><a class=repo-post href=/projects/lruihao/mmt-webfont/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/fixit-releaser class=repo-url title=hugo-fixit/fixit-releaser target=_blank><span>hugo-fixit/</span><span>fixit-releaser</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f7931e></span>\n<span itemprop=programmingLanguage>Handlebars</span>\n</span><a href=https://github.com/hugo-fixit/fixit-releaser/stargazers title=\"3 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3</a></p><a class=repo-post href=/projects/hugo-fixit/fixit-releaser/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/shortcode-docs-bookmark class=repo-url title=hugo-fixit/shortcode-docs-bookmark target=_blank><span>hugo-fixit/</span><span>shortcode-docs-bookmark</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>🔖 Embed bookmark of FixIt Docs.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#c6538c></span>\n<span itemprop=programmingLanguage>SCSS</span>\n</span><a href=https://github.com/hugo-fixit/shortcode-docs-bookmark/stargazers title=\"3 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3</a></p><a class=repo-post href=/projects/hugo-fixit/shortcode-docs-bookmark/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/hugo-shell class=repo-url title=hugo-fixit/hugo-shell target=_blank><span>hugo-fixit/</span><span>hugo-shell</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Using frequently-used Hugo commands by shell.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#89e051></span>\n<span itemprop=programmingLanguage>Shell</span>\n</span><a href=https://github.com/hugo-fixit/hugo-shell/stargazers title=\"3 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3</a><a href=https://github.com/hugo-fixit/hugo-shell/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/hugo-fixit/hugo-shell/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/action-component-list class=repo-url title=hugo-fixit/action-component-list target=_blank><span>hugo-fixit/</span><span>action-component-list</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Generate a list of all hugo-fixit theme components.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/hugo-fixit/action-component-list/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/action-component-list/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/cmpt-santa-hat class=repo-url title=hugo-fixit/cmpt-santa-hat target=_blank><span>hugo-fixit/</span><span>cmpt-santa-hat</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A Christmas Easter Egg by JavaScript.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/cmpt-santa-hat/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/cmpt-santa-hat/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/shortcode-asciinema class=repo-url title=hugo-fixit/shortcode-asciinema target=_blank><span>hugo-fixit/</span><span>shortcode-asciinema</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A Hugo theme component with asciinema-embed shortcode.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/shortcode-asciinema/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/shortcode-asciinema/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/shortcode-caniuse class=repo-url title=hugo-fixit/shortcode-caniuse target=_blank><span>hugo-fixit/</span><span>shortcode-caniuse</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A Hugo theme component with caniuse shortcode.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/shortcode-caniuse/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/shortcode-caniuse/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/hugo-atom-feed class=repo-url title=hugo-fixit/hugo-atom-feed target=_blank><span>hugo-fixit/</span><span>hugo-atom-feed</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Hugo theme component for ATOM feed custom Output Format.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/hugo-atom-feed/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/hugo-atom-feed/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/hugo-fixit/cmpt-mdevtools class=repo-url title=hugo-fixit/cmpt-mdevtools target=_blank><span>hugo-fixit/</span><span>cmpt-mdevtools</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Mobile devtools component powered by vConsole and eruda.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/hugo-fixit/cmpt-mdevtools/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/hugo-fixit/cmpt-mdevtools/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/auto-changelog-plus class=repo-url title=Lruihao/auto-changelog-plus target=_blank><span>Lruihao/</span><span>auto-changelog-plus</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Command line tool for generating a changelog from git tags and commit history</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f7931e></span>\n<span itemprop=programmingLanguage>Handlebars</span>\n</span><a href=https://github.com/Lruihao/auto-changelog-plus/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/auto-changelog-plus/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/json-viewer-element class=repo-url title=Lruihao/json-viewer-element target=_blank><span>Lruihao/</span><span>json-viewer-element</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A custom element for viewing and interacting with JSON data.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/Lruihao/json-viewer-element/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/json-viewer-element/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/caniuse-embed-element class=repo-url title=Lruihao/caniuse-embed-element target=_blank><span>Lruihao/</span><span>caniuse-embed-element</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/Lruihao/caniuse-embed-element/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/caniuse-embed-element/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/kityminder-core class=repo-url title=Lruihao/kityminder-core target=_blank><span>Lruihao/</span><span>kityminder-core</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>强大的脑图可视化工具</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/kityminder-core/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/kityminder-core/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/cell-tooltip class=repo-url title=Lruihao/cell-tooltip target=_blank><span>Lruihao/</span><span>cell-tooltip</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>一个轻量化 Tooltip 组件。</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span></span></p><a class=repo-post href=/projects/lruihao/cell-tooltip/></a></div></div></div><h2 id=我贡献的 class=heading-element><span>我贡献的</span>\n<a href=#%e6%88%91%e8%b4%a1%e7%8c%ae%e7%9a%84 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>下面这些是我贡献过的一些开源作品。</p><div class=gh-repo-card-container><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/gohugoio/hugo class=repo-url title=gohugoio/hugo target=_blank><span>gohugoio/</span><span>hugo</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>The world’s fastest framework for building websites.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#00add8></span>\n<span itemprop=programmingLanguage>Go</span>\n</span><a href=https://github.com/gohugoio/hugo/stargazers title=\"87960 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>88k</a><a href=https://github.com/gohugoio/hugo/forks title=\"8252 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>8.3k</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/soybeanjs/soybean-admin class=repo-url title=soybeanjs/soybean-admin target=_blank><span>soybeanjs/</span><span>soybean-admin</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A clean, elegant, beautiful and powerful admin template, based on Vue3, Vite7, TypeScript, Pinia, NaiveUI and UnoCSS. 一个清新优雅、高颜值且功能强大的后台管理模板，基于最新的前端技术栈，包括 Vue3, Vite7, TypeScript, Pinia, NaiveUI 和 UnoCSS。</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/soybeanjs/soybean-admin/stargazers title=\"14292 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>14.3k</a><a href=https://github.com/soybeanjs/soybean-admin/forks title=\"2438 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>2.4k</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/star-history/star-history class=repo-url title=star-history/star-history target=_blank><span>star-history/</span><span>star-history</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>The de facto GitHub star history graph.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/star-history/star-history/stargazers title=\"9011 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>9k</a><a href=https://github.com/star-history/star-history/forks title=\"337 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>337</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/theme-next/hexo-theme-next class=repo-url title=theme-next/hexo-theme-next target=_blank><span>theme-next/</span><span>hexo-theme-next</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Elegant and powerful theme for Hexo.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:tomato></span>\n<span itemprop=programmingLanguage>Stylus</span>\n</span><a href=https://github.com/theme-next/hexo-theme-next/stargazers title=\"8276 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>8.3k</a><a href=https://github.com/theme-next/hexo-theme-next/forks title=\"2016 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>2k</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/SchemaStore/schemastore class=repo-url title=SchemaStore/schemastore target=_blank><span>SchemaStore/</span><span>schemastore</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A collection of JSON schema files including full API</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/SchemaStore/schemastore/stargazers title=\"3746 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3.7k</a><a href=https://github.com/SchemaStore/schemastore/forks title=\"2168 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>2.2k</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/walinejs/waline class=repo-url title=walinejs/waline target=_blank><span>walinejs/</span><span>waline</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>💬 A Simple, Safe Comment System</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/walinejs/waline/stargazers title=\"2987 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3k</a><a href=https://github.com/walinejs/waline/forks title=\"590 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>590</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/xnx3/translate class=repo-url title=xnx3/translate target=_blank><span>xnx3/</span><span>translate</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>AI i18n, Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly!</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/xnx3/translate/stargazers title=\"2968 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>3k</a><a href=https://github.com/xnx3/translate/forks title=\"465 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>465</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/twikoojs/twikoo class=repo-url title=twikoojs/twikoo target=_blank><span>twikoojs/</span><span>twikoo</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>💬 一个简洁、安全、免费的静态网站评论系统 | A simple, safe, free comment system.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/twikoojs/twikoo/stargazers title=\"2183 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2.2k</a><a href=https://github.com/twikoojs/twikoo/forks title=\"478 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>478</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/mdn/translated-content class=repo-url title=mdn/translated-content target=_blank><span>mdn/</span><span>translated-content</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>7 community-maintained translations of MDN Web Docs in ES, FR, JA, KO, PT-BR, RU, and ZH, to learn and contribute in your native language.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#083fa1></span>\n<span itemprop=programmingLanguage>Markdown</span>\n</span><a href=https://github.com/mdn/translated-content/stargazers title=\"1983 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2k</a><a href=https://github.com/mdn/translated-content/forks title=\"8327 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>8.3k</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Shimada666/v-code-diff class=repo-url title=Shimada666/v-code-diff target=_blank><span>Shimada666/</span><span>v-code-diff</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>A vue code diff display plugin, support Vue2 / Vue3</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#c6538c></span>\n<span itemprop=programmingLanguage>SCSS</span>\n</span><a href=https://github.com/Shimada666/v-code-diff/stargazers title=\"517 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>517</a><a href=https://github.com/Shimada666/v-code-diff/forks title=\"76 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>76</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/xCss/Valine-docs class=repo-url title=xCss/Valine-docs target=_blank><span>xCss/</span><span>Valine-docs</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Documentations for Valine</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#1d365d></span>\n<span itemprop=programmingLanguage>Less</span>\n</span><a href=https://github.com/xCss/Valine-docs/stargazers title=\"252 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>252</a><a href=https://github.com/xCss/Valine-docs/forks title=\"106 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>106</a></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/pengzhanbo/caniuse-embed class=repo-url title=pengzhanbo/caniuse-embed target=_blank><span>pengzhanbo/</span><span>caniuse-embed</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>Embed the CanIUse compatibility table in your site</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#3178c6></span>\n<span itemprop=programmingLanguage>TypeScript</span>\n</span><a href=https://github.com/pengzhanbo/caniuse-embed/stargazers title=\"25 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>25</a><a href=https://github.com/pengzhanbo/caniuse-embed/forks title=\"2 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>2</a></p></div></div></div><h2 id=归档私有 class=heading-element><span>归档/私有</span>\n<a href=#%e5%bd%92%e6%a1%a3%e7%a7%81%e6%9c%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div title=\"累计 281 stars\" class=\"group-summary total-stars\">累计 281 stars</div><p>下面这些开源仓库已停止更新或者用于自动化部署。</p><div class=gh-repo-card-container><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/lruihao.github.io class=repo-url title=Lruihao/lruihao.github.io target=_blank><span>Lruihao/</span><span>lruihao.github.io</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>博客构建档（HTML & Markdown）</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#e34c26></span>\n<span itemprop=programmingLanguage>HTML</span>\n</span><a href=https://github.com/Lruihao/lruihao.github.io/stargazers title=\"156 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>156</a><a href=https://github.com/Lruihao/lruihao.github.io/forks title=\"18 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>18</a></p><a class=repo-post href=/projects/lruihao/lruihao.github.io/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/blog-private class=repo-url title=Lruihao/blog-private target=_blank><span>Lruihao/</span><span>blog-private</span>\n</a><span class=repo-visibility data-archived=false>Private</span></div><p class=repo-desc>Markdown files for my blog private content.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#083fa1></span>\n<span itemprop=programmingLanguage>Markdown</span></span></p></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/MMT class=repo-url title=Lruihao/MMT target=_blank><span>Lruihao/</span><span>MMT</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>沐目之，湘也。— 沐目体</p><p class=repo-statistics><a href=https://github.com/Lruihao/MMT/stargazers title=\"4 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>4</a></p><a class=repo-post href=/projects/lruihao/mmt/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/cos-album class=repo-url title=Lruihao/cos-album target=_blank><span>Lruihao/</span><span>cos-album</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/cos-album/stargazers title=\"2 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>2</a></p><a class=repo-post href=/projects/lruihao/cos-album/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/hexo-theme-next class=repo-url title=Lruihao/hexo-theme-next target=_blank><span>Lruihao/</span><span>hexo-theme-next</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-fork-from>Fork from <a href=https://github.com/theme-next/hexo-theme-next target=_blank>theme-next/hexo-theme-next</a></p><p class=repo-desc>Elegant and powerful theme for Hexo.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#639></span>\n<span itemprop=programmingLanguage>CSS</span>\n</span><a href=https://github.com/Lruihao/hexo-theme-next/stargazers title=\"9 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>9</a><a href=https://github.com/Lruihao/hexo-theme-next/forks title=\"4 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>4</a></p><a class=repo-post href=/projects/lruihao/hexo-theme-next/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/cell-blog class=repo-url title=Lruihao/cell-blog target=_blank><span>Lruihao/</span><span>cell-blog</span>\n</a><span class=repo-visibility data-archived=false>Public</span></div><p class=repo-desc>基于 Laravel 7 开发，支持 Markdown 语法的博客</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#4f5d95></span>\n<span itemprop=programmingLanguage>PHP</span>\n</span><a href=https://github.com/Lruihao/cell-blog/stargazers title=\"108 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>108</a><a href=https://github.com/Lruihao/cell-blog/forks title=\"6 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>6</a></p><a class=repo-post href=/projects/lruihao/cell-blog/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/bill-note class=repo-url title=Lruihao/bill-note target=_blank><span>Lruihao/</span><span>bill-note</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>基于 leancloud-storage 实现的无后端记账本</p><p class=repo-statistics><a href=https://github.com/Lruihao/bill-note/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/bill-note/></a></div></div><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/vercel-gravatar class=repo-url title=Lruihao/vercel-gravatar target=_blank><span>Lruihao/</span><span>vercel-gravatar</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>Gravatar Proxy powered by Vercel.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/vercel-gravatar/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a><a href=https://github.com/Lruihao/vercel-gravatar/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p><a class=repo-post href=/projects/lruihao/vercel-gravatar/></a></div></div></div><hr class=awesome-hr><h2 id=related-articles class=heading-element><span>相关文章</span>\n<a href=#related-articles class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div title=\"共计 10 篇文章 总计约 8186 字\" class=group-summary>共计 10 篇文章 & 总计约 8.2k 字</div><p>以下文章是对上述某些作品的开发过程或使用的介绍。</p></div><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2024</h3><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title=\"2024-04-17 12:51:35\">04-17</span></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title=\"2024-04-04 13:23:37\">04-04</span></article><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title=\"2024-04-02 18:05:34\">04-02</span></article><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2023</h3><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title=\"2023-11-28 10:48:07\">11-28</span></article><article class=archive-item><a href=/projects/el-table-sticky/ class=archive-item-link>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a>\n<span class=archive-item-date title=\"2023-09-25 17:49:58\">09-25</span></article><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2021</h3><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title=\"2021-05-23 17:15:41\">05-23</span></article><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 leancloud-storage 实现的无后端记账本</a>\n<span class=archive-item-date title=\"2021-03-02 21:46:40\">03-02</span></article><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2020</h3><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>cell-blog 功能介绍与安装</a>\n<span class=archive-item-date title=\"2020-07-25 20:51:11\">07-25</span></article><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2019</h3><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title=\"2019-11-24 10:52:34\">11-24</span></article><h3 class=group-title><i class=\"fa-regular fa-calendar fa-fw me-1\" aria-hidden=true></i>2018</h3><article class=archive-item><a href=/projects/font-mmt/ class=archive-item-link>沐目体</a>\n<span class=archive-item-date title=\"2018-10-12 19:39:19\">10-12</span></article><div class=post-footer id=post-footer><div class=component-projects-powered>本页面由 <a href=https://github.com/hugo-fixit/component-projects>Component Projects</a> 强力驱动。</div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down fa-fw\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#live-demo>Live Demo</a><ul><li><a href=#hugo>Hugo</a></li><li><a href=#tools>Tools</a></li><li><a href=#others>Others</a></li></ul></li><li><a href=#我开发的>我开发的</a></li><li><a href=#我贡献的>我贡献的</a></li><li><a href=#归档私有>归档/私有</a></li><li><a href=#related-articles>相关文章</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/22a949cb92801746b6e125c797ebc6d0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/22a949cb92801746b6e125c797ebc6d0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/\"},onlyLocalLang:!0}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>我的开源 | 菠菜眾長</title><link>https://lruihao.cn/projects/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/projects/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>一个轻量化 Tooltip 组件。</title><link>https://lruihao.cn/projects/lruihao/cell-tooltip/</link><pubDate>Fri, 06 Mar 2026 06:58:23 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-tooltip/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased&gt;&lt;span&gt;cell-tooltip&lt;/span&gt;\n &lt;a href=\"#cell-tooltip\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap &lt;code&gt;tooltip.js&lt;/code&gt;，保留常用能力并尽量减少体积与依赖。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持触发方式：&lt;code&gt;hover&lt;/code&gt; / &lt;code&gt;focus&lt;/code&gt; / &lt;code&gt;click&lt;/code&gt; / &lt;code&gt;manual&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持位置：&lt;code&gt;top&lt;/code&gt; / &lt;code&gt;bottom&lt;/code&gt; / &lt;code&gt;left&lt;/code&gt; / &lt;code&gt;right&lt;/code&gt; / &lt;code&gt;auto&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;支持延迟配置（&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持 &lt;code&gt;data-ct-*&lt;/code&gt; 属性初始化&lt;/li&gt;\n&lt;li&gt;支持实例方法：&lt;code&gt;show&lt;/code&gt; / &lt;code&gt;hide&lt;/code&gt; / &lt;code&gt;toggle&lt;/code&gt; / &lt;code&gt;update&lt;/code&gt; / &lt;code&gt;dispose&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;内置箭头与基础样式，无第三方依赖&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"本地运行\"&gt;&lt;span&gt;本地运行&lt;/span&gt;\n &lt;a href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;pnpm install\npnpm dev&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;构建库产物：&lt;/p&gt;</description></item><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A custom element for viewing and interacting with JSON data.</title><link>https://lruihao.cn/projects/lruihao/json-viewer-element/</link><pubDate>Sat, 19 Jul 2025 07:05:07 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/json-viewer-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased&gt;&lt;span&gt;&amp;lt;json-viewer&amp;gt; Element&lt;/span&gt;\n &lt;a href=\"#json-viewer-element\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;简体中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能特性\"&gt;&lt;span&gt;功能特性&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;🌟 &lt;strong&gt;Web 组件&lt;/strong&gt;：原生，无框架依赖&lt;/li&gt;\n&lt;li&gt;🎨 &lt;strong&gt;主题&lt;/strong&gt;：支持明暗模式&lt;/li&gt;\n&lt;li&gt;📦 &lt;strong&gt;盒装&lt;/strong&gt;：可选边框与内边距&lt;/li&gt;\n&lt;li&gt;📋 &lt;strong&gt;可复制&lt;/strong&gt;：一键复制 JSON&lt;/li&gt;\n&lt;li&gt;🔑 &lt;strong&gt;排序&lt;/strong&gt;：支持键排序&lt;/li&gt;\n&lt;li&gt;🔍 &lt;strong&gt;展开深度&lt;/strong&gt;：可控初始展开层级&lt;/li&gt;\n&lt;li&gt;🧩 &lt;strong&gt;自定义复制按钮&lt;/strong&gt;：slot 插槽支持&lt;/li&gt;\n&lt;li&gt;🧬 &lt;strong&gt;类型高亮&lt;/strong&gt;：多种类型高亮&lt;/li&gt;\n&lt;li&gt;🛠️ &lt;strong&gt;自定义事件&lt;/strong&gt;：支持 copy/toggle 事件监听&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"使用方法\"&gt;&lt;span&gt;使用方法&lt;/span&gt;\n &lt;a href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;npm install json-viewer-element&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"引入\"&gt;&lt;span&gt;引入&lt;/span&gt;\n &lt;a href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;h4 class=\"heading-element\" id=\"作为模块\"&gt;&lt;span&gt;作为模块&lt;/span&gt;\n &lt;a href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;import &amp;#39;json-viewer-element&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;h4 class=\"heading-element\" id=\"umd-cdn\"&gt;&lt;span&gt;UMD (CDN)&lt;/span&gt;\n &lt;a href=\"#umd-cdn\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h4&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&amp;#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"基本用法\"&gt;&lt;span&gt;基本用法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;手动绑定 value：&lt;/p&gt;</description></item><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>API proxies powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-proxy/</link><pubDate>Wed, 09 Apr 2025 02:13:22 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-proxy/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#vercel-api-proxy\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;API proxies powered by Vercel.&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;[toc]&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"hosts\"&gt;&lt;span&gt;Hosts&lt;/span&gt;\n &lt;a href=\"#hosts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://api.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://cell-api.vercel.app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"api-list\"&gt;&lt;span&gt;API List&lt;/span&gt;\n &lt;a href=\"#api-list\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Go to the &lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; and select the API you want to use.&lt;/p&gt;</description></item><item><title>Generate a list of all hugo-fixit theme components.</title><link>https://lruihao.cn/projects/hugo-fixit/action-component-list/</link><pubDate>Tue, 14 Jan 2025 09:10:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/action-component-list/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased&gt;&lt;span&gt;action-component-list | FixIt&lt;/span&gt;\n &lt;a href=\"#action-component-list--fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"&gt;&lt;/a&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt=\"CI\"&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;This is a GitHub Action to generate a list of all hugo-fixit theme components.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"how-to-use\"&gt;&lt;span&gt;How to use&lt;/span&gt;\n &lt;a href=\"#how-to-use\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;You can reference different stable versions of this action. For more\ninformation, see\n&lt;a href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Versioning&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\nin the GitHub Actions toolkit.&lt;/p&gt;</description></item><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</title><link>https://lruihao.cn/projects/lruihao/html-demo/</link><pubDate>Fri, 13 Sep 2024 02:36:29 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/html-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"html-demos\" data-decreased&gt;&lt;span&gt;HTML demos&lt;/span&gt;\n &lt;a href=\"#html-demos\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"文件预览\"&gt;&lt;span&gt;文件预览&lt;/span&gt;\n &lt;a href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;直接浏览器打开 &lt;code&gt;src&lt;/code&gt; 目录下的 HTML 文件。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>利用 Vercel 反代 Gravatar 实现镜像加速</title><link>https://lruihao.cn/projects/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 12:51:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。&lt;/p&gt;</description></item><item><title>Gravatar Proxy powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 01:37:06 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased&gt;&lt;span&gt;Vercel Gravatar&lt;/span&gt;\n &lt;a href=\"#vercel-gravatar\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;Superseded by &lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao/vercel-proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Gravatar Proxy powered by Vercel.&lt;/p&gt;\n&lt;p&gt;Go to test Gravatar:&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>临时决定再写一个小工具 - 网站预览图生成器</title><link>https://lruihao.cn/projects/apple-devices-preview/</link><pubDate>Thu, 04 Apr 2024 13:23:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/apple-devices-preview/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;开发完 &lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。&lt;/p&gt;</description></item><item><title>用五天时间给自己制作一个封面图生成工具</title><link>https://lruihao.cn/projects/coverview/</link><pubDate>Tue, 02 Apr 2024 18:05:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/coverview/</guid><category domain=\"https://lruihao.cn/categories/react/\">React</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;Cool!&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;苦封面图久矣，今日终有所成。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>🛠 Create awesome cover images for your blog posts quickly.</title><link>https://lruihao.cn/projects/lruihao/coverview/</link><pubDate>Thu, 28 Mar 2024 06:14:16 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/coverview/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"coverview\" data-decreased&gt;&lt;span&gt;CoverView&lt;/span&gt;\n &lt;a href=\"#coverview\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"README.en.md\"&gt;English README&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;该项目基于原始的 &lt;a href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;现在为你的博客创建封面图片变得非常简单。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-变更通知\"&gt;&lt;span&gt;💥 变更通知&lt;/span&gt;\n &lt;a href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：&lt;/p&gt;</description></item><item><title>强大的脑图可视化工具</title><link>https://lruihao.cn/projects/lruihao/kityminder-core/</link><pubDate>Sun, 21 Jan 2024 06:24:42 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/kityminder-core/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"kityminder-core\" data-decreased&gt;&lt;span&gt;KityMinder Core&lt;/span&gt;\n &lt;a href=\"#kityminder-core\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;由于原项目 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KityMinder Core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 &lt;a href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;@cell-x/kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>用 Node.js 开发一个轻量脚手架</title><link>https://lruihao.cn/projects/fixit-cli/</link><pubDate>Tue, 28 Nov 2023 10:48:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;本文将介绍如何用 Node.js 开发一个轻量脚手架，以 &lt;a href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit-cli&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 为例。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</title><link>https://lruihao.cn/projects/el-table-sticky/</link><pubDate>Mon, 25 Sep 2023 17:49:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。&lt;/p&gt;</description></item><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Using frequently-used Hugo commands by shell.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</link><pubDate>Sun, 04 Sep 2022 04:18:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shell\" data-decreased&gt;&lt;span&gt;Hugo Shell&lt;/span&gt;\n &lt;a href=\"#hugo-shell\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Using frequently-used Hugo commands by shell.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"download\"&gt;&lt;span&gt;Download&lt;/span&gt;\n &lt;a href=\"#download\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Add a submodule for your Hugo blog project.&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>Create watermark for webpage and automatic adjust when window resize.</title><link>https://lruihao.cn/projects/lruihao/watermark/</link><pubDate>Mon, 24 May 2021 13:05:40 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/watermark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"watermark\" data-decreased&gt;&lt;span&gt;Watermark&lt;/span&gt;\n &lt;a href=\"#watermark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Create watermark for webpage and automatic adjust when windows resize.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"documentation\"&gt;&lt;span&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Documentation&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#documentation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"browser\"&gt;&lt;span&gt;Browser&lt;/span&gt;\n &lt;a href=\"#browser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;Clone source&lt;/p&gt;</description></item><item><title>Cell Watermark</title><link>https://lruihao.cn/projects/cell-watermark/</link><pubDate>Sun, 23 May 2021 17:15:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-watermark/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>Create watermark for webpage and automatic adjust when window resize.</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/lruihao/bill-note/</link><pubDate>Sun, 28 Feb 2021 03:44:09 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/bill-note/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"preparation\" data-decreased&gt;&lt;span&gt;Preparation&lt;/span&gt;\n &lt;a href=\"#preparation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;name&lt;/th&gt;\n &lt;th&gt;type&lt;/th&gt;\n &lt;th&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;pay&lt;/td&gt;\n &lt;td&gt;Number&lt;/td&gt;\n &lt;td&gt;消费金额&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_description&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费描述&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_type&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费类型&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_user&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;付款人&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"init\" data-decreased&gt;&lt;span&gt;Init&lt;/span&gt;\n &lt;a href=\"#init\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;set for yourself.&lt;/p&gt;</description></item><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</title><link>https://lruihao.cn/projects/lruihao/cos-album/</link><pubDate>Sat, 23 Nov 2019 12:59:05 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cos-album/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cos-album\" data-decreased&gt;&lt;span&gt;cos-album&lt;/span&gt;\n &lt;a href=\"#cos-album\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"step1\"&gt;&lt;span&gt;Step1&lt;/span&gt;\n &lt;a href=\"#step1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; type=&amp;#34;text/css&amp;#34; href=&amp;#34;cos-album.min.css?v=1.1.6&amp;#34;&amp;gt;\n&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;cos-album.min.js?v=1.1.6&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"step2\"&gt;&lt;span&gt;Step2&lt;/span&gt;\n &lt;a href=\"#step2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;\n new Cosalbum({\n &amp;#39;xmlLink&amp;#39;: &amp;#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&amp;#39;,\n &amp;#39;prependTo&amp;#39;: &amp;#39;.cos-album&amp;#39;,\n &amp;#39;viewNum&amp;#39;: 8,\n &amp;#39;copyUrl&amp;#39;: &amp;#39;//img.lruihao.cn&amp;#39;\n });\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"params\"&gt;&lt;span&gt;Params&lt;/span&gt;\n &lt;a href=\"#params\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;param&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;type&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;default&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;xmlLink&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;需要解析的騰訊云COS桶XML鏈接&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;prependTo&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;lsquo;body&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;可選解析相冊到某個節點&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;viewNum&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;4&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;每個相冊顯示的照片數目&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyUrl&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;href&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;CDN 链接,雙擊複製 URL Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;imgType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;jpg&amp;rsquo;, &amp;lsquo;jpeg&amp;rsquo;, &amp;lsquo;png&amp;rsquo;, &amp;lsquo;gif&amp;rsquo;, &amp;lsquo;svg&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;图片類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;videoType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;mp4&amp;rsquo;, &amp;lsquo;mp3&amp;rsquo;, &amp;lsquo;avi&amp;rsquo;, &amp;lsquo;mov&amp;rsquo;, &amp;lsquo;qt&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;視頻類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;strong&gt;详细说明&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>沐目之，湘也。— 沐目体</title><link>https://lruihao.cn/projects/lruihao/mmt/</link><pubDate>Thu, 26 Sep 2019 12:44:17 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Elegant and powerful theme for Hexo.</title><link>https://lruihao.cn/projects/lruihao/hexo-theme-next/</link><pubDate>Thu, 31 Jan 2019 09:57:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=center&gt;hexo-theme-next&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对next的主题的自定义修改&lt;/strong&gt;，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib资源已打包github。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于&lt;a href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next 6.0+&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =&amp;gt; &lt;a href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://theme-next.org&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; &lt;br&gt;\n记录一下折腾过程，修改内容以&lt;a href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见&lt;a href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo分类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。\n&lt;strong&gt;主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>沐目体</title><link>https://lruihao.cn/projects/font-mmt/</link><pubDate>Fri, 12 Oct 2018 19:39:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/font-mmt/</guid><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;iframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen&gt;&lt;/iframe&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "projects/lruihao/auto-changelog-plus/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Command line tool for generating a changelog from git tags and commit history | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\"><meta name=keywords content='auto-changelog,conventional-changelog,conventional-commits,semver'><meta itemprop=name content=\"Command line tool for generating a changelog from git tags and commit history\"><meta itemprop=description content=\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\"><meta itemprop=datePublished content=\"2025-08-30T15:40:19+00:00\"><meta itemprop=dateModified content=\"2025-11-19T04:35:56+00:00\"><meta itemprop=wordCount content=\"695\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"auto-changelog,conventional-changelog,conventional-commits,SemVer\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Command line tool for generating a changelog from git tags and commit history\"><meta property=\"og:description\" content=\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-08-30T15:40:19+00:00\"><meta property=\"article:modified_time\" content=\"2025-11-19T04:35:56+00:00\"><meta property=\"article:tag\" content=\"auto-changelog\"><meta property=\"article:tag\" content=\"conventional-changelog\"><meta property=\"article:tag\" content=\"conventional-commits\"><meta property=\"article:tag\" content=\"SemVer\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Command line tool for generating a changelog from git tags and commit history\"><meta name=twitter:description content=\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ title=\"Command line tool for generating a changelog from git tags and commit history | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/mermaid-theming/ title=\"让 Mermaid 图表自动跟随系统深浅色\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ title=\"A Christmas Easter Egg by JavaScript.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/auto-changelog-plus/index.md title=\"Command line tool for generating a changelog from git tags and commit history | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Command line tool for generating a changelog from git tags and commit history\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/auto-changelog-plus\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"auto-changelog, conventional-changelog, conventional-commits, semver\",\"wordcount\":695,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/auto-changelog-plus\\/\",\"datePublished\":\"2025-08-30T15:40:19+00:00\",\"dateModified\":\"2025-11-19T04:35:56+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/auto-changelog-plus/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/auto-changelog-plus</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><span class=active title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</span></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/caniuse-embed-element/ class=collection-nav-item rel=prev title=Lruihao/caniuse-embed-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>49/51</span><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-santa-hat><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Command line tool for generating a changelog from git tags and commit history</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/auto-changelog-plus target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/auto-changelog-plus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://www.npmjs.com/package/auto-changelog-plus target=_blank rel=\"external nofollow noopener noreferrer\">https://www.npmjs.com/package/auto-changelog-plus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-08-30 15:40:19\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-08-30>2025-08-30</time></span>&nbsp;<span title=\"更新于 2025-11-19 04:35:56\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-11-19>2025-11-19</time></span>&nbsp;<span title=\"695 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Command line tool for generating a changelog from git tags and commit history\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#-安装>📦 安装</a></li><li><a href=#-用法>🚀 用法</a></li><li><a href=#-约定式提交>📝 约定式提交</a></li><li><a href=#-自动化使用>⚙️ 自动化使用</a></li><li><a href=#-和-auto-changelog-的区别>🔄 和 auto-changelog 的区别</a></li><li><a href=#-许可证>📄 许可证</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-11-19，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=auto-changelog-plus data-decreased><span>auto-changelog-plus</span>\n<a href=#auto-changelog-plus class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>中文 | <a href=https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>从 git 提交历史自动生成 changelog 的命令行工具。</p><blockquote><p>基于 <a href=https://github.com/CookPete/auto-changelog target=_blank rel=\"external nofollow noopener noreferrer\">auto-changelog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://www.conventionalcommits.org/zh-hans/v1.0.0/ target=_blank rel=\"external nofollow noopener noreferrer\">约定式提交<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 规范。</p></blockquote><p><a href=https://www.npmjs.com/package/auto-changelog-plus target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/auto-changelog-plus_7979101328369740159.svg alt=\"npm version\"></a></p><h2 class=heading-element id=-安装><span>📦 安装</span>\n<a href=#-%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install -g auto-changelog-plus</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=-用法><span>🚀 用法</span>\n<a href=#-%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>在 git 仓库根目录运行 <code>auto-changelog-plus</code> 或者 <code>acp</code>。工具会在后台运行 <code>git log</code> 来解析提交历史。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>Usage: auto-changelog-plus <span class=o>[</span>options<span class=o>]</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>Options:\n</span></span><span class=line><span class=cl>  -o, --output <span class=o>[</span>file<span class=o>]</span>                 <span class=c1># output file, default: CHANGELOG.md</span>\n</span></span><span class=line><span class=cl>  -c, --config <span class=o>[</span>file<span class=o>]</span>                 <span class=c1># config file location, default: .auto-changelog</span>\n</span></span><span class=line><span class=cl>  -t, --template <span class=o>[</span>template<span class=o>]</span>           <span class=c1># specify template to use [compact, keepachangelog, json], default: compact</span>\n</span></span><span class=line><span class=cl>  -r, --remote <span class=o>[</span>remote<span class=o>]</span>               <span class=c1># specify git remote to use for links, default: origin</span>\n</span></span><span class=line><span class=cl>  -p, --package                       <span class=c1># use version from package.json as latest release</span>\n</span></span><span class=line><span class=cl>  -v, --latest-version <span class=o>[</span>version<span class=o>]</span>      <span class=c1># use specified version as latest release</span>\n</span></span><span class=line><span class=cl>  -u, --unreleased                    <span class=c1># include section for unreleased changes</span>\n</span></span><span class=line><span class=cl>  -l, --commit-limit <span class=o>[</span>count<span class=o>]</span>          <span class=c1># number of commits to display per release, default: 3</span>\n</span></span><span class=line><span class=cl>  -b, --backfill-limit <span class=o>[</span>count<span class=o>]</span>        <span class=c1># number of commits to backfill empty releases with, default: 3</span>\n</span></span><span class=line><span class=cl>      --commit-url <span class=o>[</span>url<span class=o>]</span>              <span class=c1># override url for commits, use {id} for commit id</span>\n</span></span><span class=line><span class=cl>      --issue-url <span class=o>[</span>url<span class=o>]</span>               <span class=c1># override url for issues, use {id} for issue id</span>\n</span></span><span class=line><span class=cl>      --merge-url <span class=o>[</span>url<span class=o>]</span>               <span class=c1># override url for merges, use {id} for merge id</span>\n</span></span><span class=line><span class=cl>      --compare-url <span class=o>[</span>url<span class=o>]</span>             <span class=c1># override url for compares, use {from} and {to} for tags</span>\n</span></span><span class=line><span class=cl>      --issue-pattern <span class=o>[</span>regex<span class=o>]</span>         <span class=c1># override regex pattern for issues in commit messages</span>\n</span></span><span class=line><span class=cl>      --breaking-pattern <span class=o>[</span>regex<span class=o>]</span>      <span class=c1># regex pattern for breaking change commits</span>\n</span></span><span class=line><span class=cl>      --merge-pattern <span class=o>[</span>regex<span class=o>]</span>         <span class=c1># add custom regex pattern for merge commits</span>\n</span></span><span class=line><span class=cl>      --commit-pattern <span class=o>[</span>regex<span class=o>]</span>        <span class=c1># pattern to include when parsing commits</span>\n</span></span><span class=line><span class=cl>      --ignore-commit-pattern <span class=o>[</span>regex<span class=o>]</span> <span class=c1># pattern to ignore when parsing commits</span>\n</span></span><span class=line><span class=cl>      --tag-pattern <span class=o>[</span>regex<span class=o>]</span>           <span class=c1># override regex pattern for version tags</span>\n</span></span><span class=line><span class=cl>      --tag-prefix <span class=o>[</span>prefix<span class=o>]</span>           <span class=c1># prefix used in version tags, default: v</span>\n</span></span><span class=line><span class=cl>      --starting-version <span class=o>[</span>tag<span class=o>]</span>        <span class=c1># specify earliest version to include in changelog</span>\n</span></span><span class=line><span class=cl>      --starting-date <span class=o>[</span>yyyy-mm-dd<span class=o>]</span>    <span class=c1># specify earliest date to include in changelog</span>\n</span></span><span class=line><span class=cl>      --ending-version <span class=o>[</span>tag<span class=o>]</span>          <span class=c1># specify latest version to include in changelog</span>\n</span></span><span class=line><span class=cl>      --sort-commits <span class=o>[</span>property<span class=o>]</span>       <span class=c1># sort commits by property [relevance, date, date-desc, subject, subject-desc], default: relevance</span>\n</span></span><span class=line><span class=cl>      --release-summary               <span class=c1># display tagged commit message body as release summary</span>\n</span></span><span class=line><span class=cl>      --unreleased-only               <span class=c1># only output unreleased changes</span>\n</span></span><span class=line><span class=cl>      --hide-empty-releases           <span class=c1># hide empty releases</span>\n</span></span><span class=line><span class=cl>      --hide-credit                   <span class=c1># hide auto-changelog credit</span>\n</span></span><span class=line><span class=cl>      --handlebars-setup <span class=o>[</span>file<span class=o>]</span>       <span class=c1># handlebars setup file</span>\n</span></span><span class=line><span class=cl>      --append-git-log <span class=o>[</span>string<span class=o>]</span>       <span class=c1># string to append to git log command</span>\n</span></span><span class=line><span class=cl>      --append-git-tag <span class=o>[</span>string<span class=o>]</span>       <span class=c1># string to append to git tag command</span>\n</span></span><span class=line><span class=cl>      --prepend                       <span class=c1># prepend changelog to output file</span>\n</span></span><span class=line><span class=cl>      --stdout                        <span class=c1># output changelog to stdout</span>\n</span></span><span class=line><span class=cl>  -V, --version                       <span class=c1># output the version number</span>\n</span></span><span class=line><span class=cl>  -h, --help                          <span class=c1># output usage information</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>以下是一些常见的使用示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 在当前目录写入日志到 CHANGELOG.md</span>\n</span></span><span class=line><span class=cl>auto-changelog-plus\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 使用 keepachangelog 模板写入日志到 HISTORY.md</span>\n</span></span><span class=line><span class=cl>auto-changelog-plus --output HISTORY.md --template keepachangelog\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 禁用提交限制，渲染每个发布的所有提交</span>\n</span></span><span class=line><span class=cl>auto-changelog-plus --commit-limit false</span></span></code></pre></td></tr></table></div></div></div><blockquote><p>执行 <code>auto-changelog-plus -h</code> 获取帮助或者参考 <a href=https://github.com/cookpete/auto-changelog target=_blank rel=\"external nofollow noopener noreferrer\">auto-changelog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 文档。</p></blockquote><h2 class=heading-element id=-约定式提交><span>📝 约定式提交</span>\n<a href=#-%e7%ba%a6%e5%ae%9a%e5%bc%8f%e6%8f%90%e4%ba%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>基于 <a href=https://www.conventionalcommits.org/zh-hans/v1.0.0/ target=_blank rel=\"external nofollow noopener noreferrer\">约定式提交<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 规范，支持以下类型的提交：</p><ul><li><code>feat:</code> 新功能</li><li><code>fix:</code> 修复问题</li><li><code>perf:</code> 性能优化</li><li><code>refactor:</code> 代码重构</li><li><code>docs:</code> 文档变更</li><li><code>test:</code> 测试相关</li><li><code>style:</code> 代码格式调整</li><li><code>chore:</code> 构建过程或辅助工具的变动</li><li><code>build:</code> 构建系统变动</li><li><code>ci:</code> 持续集成配置变动</li><li><code>revert:</code> 代码回滚</li><li>支持 scope：<code>feat(api):</code>, <code>fix(ui):</code> 等</li><li>支持 emoji：<code>:sparkles: feat:</code>, <code>✨ feat:</code> 等</li><li>支持 Breaking Changes：<code>feat!:</code>, <code>feat(scope)!:</code>, <code>BREAKING CHANGE:</code> 等格式</li><li>自动忽略 WIP 提交：<code>wip:</code>, <code>Wip:</code> 等临时提交不会包含在变更日志中</li></ul><h2 class=heading-element id=-自动化使用><span>⚙️ 自动化使用</span>\n<a href=#-%e8%87%aa%e5%8a%a8%e5%8c%96%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>将 <code>auto-changelog-plus</code> 安装到开发依赖：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install auto-changelog-plus --save-dev\n</span></span><span class=line><span class=cl><span class=c1># 或</span>\n</span></span><span class=line><span class=cl>yarn add auto-changelog-plus --dev\n</span></span><span class=line><span class=cl><span class=c1># 或</span>\n</span></span><span class=line><span class=cl>pnpm add -D auto-changelog-plus</span></span></code></pre></td></tr></table></div></div></div><p>在你的 <code>package.json</code> 的 <code>version</code> 脚本中添加 <code>auto-changelog-plus -p && git add CHANGELOG.md</code>：</p><json-viewer value='\"{\\n  \\\"name\\\": \\\"my-awesome-package\\\",\\n  \\\"version\\\": \\\"1.0.0\\\",\\n  \\\"devDependencies\\\": {\\n    \\\"auto-changelog-plus\\\": \\\"*\\\"\\n  },\\n  \\\"scripts\\\": {\\n    \\\"version\\\": \\\"auto-changelog-plus -p \\u0026\\u0026 git add CHANGELOG.md\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>使用 <code>-p</code> 或 <code>--package</code> 将 <code>package.json</code> 中的 <code>version</code> 用作最新发布，这样以前发布和现在之间的所有提交都成为该发布的一部分。基本上任何通常被解析为 <code>Unreleased</code> 的内容现在都会出现在 <code>package.json</code> 的 <code>version</code> 下。</p><p>现在每次运行 <a href=https://docs.npmjs.com/cli/version target=_blank rel=\"external nofollow noopener noreferrer\">npm version<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 时，changelog 将自动更新并成为版本提交的一部分。</p><p>在不是 NPM 包的项目中，可以使用 <code>npx</code> 或 <code>pnpx</code> 来运行 <code>auto-changelog-plus</code>，例如：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npx auto-changelog-plus\n</span></span><span class=line><span class=cl><span class=c1># 或</span>\n</span></span><span class=line><span class=cl>pnpx auto-changelog-plus</span></span></code></pre></td></tr></table></div></div></div><p>在 GitHub Actions 中，你可以使用以下工作流来自动生成发布说明：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-yaml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-yaml data-lang=yaml><span class=line><span class=cl><span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Release for new tag</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>on</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>push</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>tags</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=s1>&#39;v*.*.*&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>workflow_dispatch</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=nt>jobs</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=nt>release</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>runs-on</span><span class=p>:</span><span class=w> </span><span class=l>ubuntu-latest</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=nt>steps</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Checkout repository</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>actions/checkout@v5</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>fetch-depth</span><span class=p>:</span><span class=w> </span><span class=m>0</span><span class=w> </span><span class=c># Fetch all history for generating release notes</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Setup Node.js</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>actions/setup-node@v5</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>node-version</span><span class=p>:</span><span class=w> </span><span class=s1>&#39;lts/*&#39;</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>Generate release notes</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>run</span><span class=p>:</span><span class=w> </span><span class=p>|</span><span class=sd>\n</span></span></span><span class=line><span class=cl><span class=sd>          npx auto-changelog-plus --starting-version ${{ github.ref_name }}\n</span></span></span><span class=line><span class=cl><span class=sd>          sed -i &#39;1,4d&#39; CHANGELOG.md</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>      </span>- <span class=nt>name</span><span class=p>:</span><span class=w> </span><span class=l>GitHub Release</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>uses</span><span class=p>:</span><span class=w> </span><span class=l>softprops/action-gh-release@v2</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>        </span><span class=nt>with</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>draft</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>          </span><span class=nt>body_path</span><span class=p>:</span><span class=w> </span><span class=l>CHANGELOG.md</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=-和-auto-changelog-的区别><span>🔄 和 auto-changelog 的区别</span>\n<a href=#-%e5%92%8c-auto-changelog-%e7%9a%84%e5%8c%ba%e5%88%ab class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>auto-changelog-plus</code> 是 <code>auto-changelog</code> 的上层封装，完全兼容 <code>auto-changelog</code> 的所有用法和配置。</p><p>主要改进：</p><ul><li><strong>优化默认模板</strong>：更好地适配 <strong>约定式提交</strong> 规范</li><li><strong>调整默认配置</strong>：提供更合理的开箱即用体验</li><li><strong>扩展模板功能</strong>：提供额外的模板辅助函数</li></ul><p>如果你正在使用 <code>auto-changelog</code>，可以直接替换为 <code>auto-changelog-plus</code>，无需修改任何配置。</p><h2 class=heading-element id=-许可证><span>📄 许可证</span>\n<a href=#-%e8%ae%b8%e5%8f%af%e8%af%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>MIT</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/caniuse-embed-element/ class=collection-nav-item rel=prev title=Lruihao/caniuse-embed-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/caniuse-embed-element</span>\n</a><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-santa-hat><span>hugo-fixit/cmpt-santa-hat</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-11-19 04:35:56\">更新于 2025-11-19&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/auto-changelog-plus/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/auto-changelog-plus/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/auto-changelog-plus/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ data-title=\"Command line tool for generating a changelog from git tags and commit history\" data-hashtags=auto-changelog,conventional-changelog,conventional-commits,semver><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ data-hashtag=auto-changelog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/auto-changelog-plus/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ data-title=\"Command line tool for generating a changelog from git tags and commit history\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ data-title=\"Command line tool for generating a changelog from git tags and commit history\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/auto-changelog/ class=post-tag title=\"标签 - auto-changelog\">auto-changelog</a><a href=/tags/conventional-changelog/ class=post-tag title=\"标签 - conventional-changelog\">conventional-changelog</a><a href=/tags/conventional-commits/ class=post-tag title=\"标签 - conventional-commits\">conventional-commits</a><a href=/tags/semver/ class=post-tag title=\"标签 - SemVer\">SemVer</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/mermaid-theming/ class=post-nav-item rel=prev title=\"让 Mermaid 图表自动跟随系统深浅色\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>让 Mermaid 图表自动跟随系统深浅色</a><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=post-nav-item rel=next title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#-安装>📦 安装</a></li><li><a href=#-用法>🚀 用法</a></li><li><a href=#-约定式提交>📝 约定式提交</a></li><li><a href=#-自动化使用>⚙️ 自动化使用</a></li><li><a href=#-和-auto-changelog-的区别>🔄 和 auto-changelog 的区别</a></li><li><a href=#-许可证>📄 许可证</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/auto-changelog-plus/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/auto-changelog-plus/index.md",
    "content": "# Command line tool for generating a changelog from git tags and commit history\n\n# auto-changelog-plus\n\n中文 | [English](https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md)\n\n从 git 提交历史自动生成 changelog 的命令行工具。\n\n> 基于 [auto-changelog](https://github.com/CookPete/auto-changelog) 和 [约定式提交](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范。\n\n[![npm version](https://img.shields.io/npm/v/auto-changelog-plus.svg)](https://www.npmjs.com/package/auto-changelog-plus)\n\n## 📦 安装\n\n```bash\nnpm install -g auto-changelog-plus\n```\n\n## 🚀 用法\n\n在 git 仓库根目录运行 `auto-changelog-plus` 或者 `acp`。工具会在后台运行 `git log` 来解析提交历史。\n\n```bash\nUsage: auto-changelog-plus [options]\n\nOptions:\n  -o, --output [file]                 # output file, default: CHANGELOG.md\n  -c, --config [file]                 # config file location, default: .auto-changelog\n  -t, --template [template]           # specify template to use [compact, keepachangelog, json], default: compact\n  -r, --remote [remote]               # specify git remote to use for links, default: origin\n  -p, --package                       # use version from package.json as latest release\n  -v, --latest-version [version]      # use specified version as latest release\n  -u, --unreleased                    # include section for unreleased changes\n  -l, --commit-limit [count]          # number of commits to display per release, default: 3\n  -b, --backfill-limit [count]        # number of commits to backfill empty releases with, default: 3\n      --commit-url [url]              # override url for commits, use {id} for commit id\n      --issue-url [url]               # override url for issues, use {id} for issue id\n      --merge-url [url]               # override url for merges, use {id} for merge id\n      --compare-url [url]             # override url for compares, use {from} and {to} for tags\n      --issue-pattern [regex]         # override regex pattern for issues in commit messages\n      --breaking-pattern [regex]      # regex pattern for breaking change commits\n      --merge-pattern [regex]         # add custom regex pattern for merge commits\n      --commit-pattern [regex]        # pattern to include when parsing commits\n      --ignore-commit-pattern [regex] # pattern to ignore when parsing commits\n      --tag-pattern [regex]           # override regex pattern for version tags\n      --tag-prefix [prefix]           # prefix used in version tags, default: v\n      --starting-version [tag]        # specify earliest version to include in changelog\n      --starting-date [yyyy-mm-dd]    # specify earliest date to include in changelog\n      --ending-version [tag]          # specify latest version to include in changelog\n      --sort-commits [property]       # sort commits by property [relevance, date, date-desc, subject, subject-desc], default: relevance\n      --release-summary               # display tagged commit message body as release summary\n      --unreleased-only               # only output unreleased changes\n      --hide-empty-releases           # hide empty releases\n      --hide-credit                   # hide auto-changelog credit\n      --handlebars-setup [file]       # handlebars setup file\n      --append-git-log [string]       # string to append to git log command\n      --append-git-tag [string]       # string to append to git tag command\n      --prepend                       # prepend changelog to output file\n      --stdout                        # output changelog to stdout\n  -V, --version                       # output the version number\n  -h, --help                          # output usage information\n```\n\n以下是一些常见的使用示例：\n\n```bash\n# 在当前目录写入日志到 CHANGELOG.md\nauto-changelog-plus\n\n# 使用 keepachangelog 模板写入日志到 HISTORY.md\nauto-changelog-plus --output HISTORY.md --template keepachangelog\n\n# 禁用提交限制，渲染每个发布的所有提交\nauto-changelog-plus --commit-limit false\n```\n\n> 执行 `auto-changelog-plus -h` 获取帮助或者参考 [auto-changelog](https://github.com/cookpete/auto-changelog) 文档。\n\n## 📝 约定式提交\n\n基于 [约定式提交](https://www.conventionalcommits.org/zh-hans/v1.0.0/) 规范，支持以下类型的提交：\n\n- `feat:` 新功能\n- `fix:` 修复问题\n- `perf:` 性能优化\n- `refactor:` 代码重构\n- `docs:` 文档变更\n- `test:` 测试相关\n- `style:` 代码格式调整\n- `chore:` 构建过程或辅助工具的变动\n- `build:` 构建系统变动\n- `ci:` 持续集成配置变动\n- `revert:` 代码回滚\n- 支持 scope：`feat(api):`, `fix(ui):` 等\n- 支持 emoji：`:sparkles: feat:`, `✨ feat:` 等\n- 支持 Breaking Changes：`feat!:`, `feat(scope)!:`, `BREAKING CHANGE:` 等格式\n- 自动忽略 WIP 提交：`wip:`, `Wip:` 等临时提交不会包含在变更日志中\n\n## ⚙️ 自动化使用\n\n将 `auto-changelog-plus` 安装到开发依赖：\n\n```bash\nnpm install auto-changelog-plus --save-dev\n# 或\nyarn add auto-changelog-plus --dev\n# 或\npnpm add -D auto-changelog-plus\n```\n\n在你的 `package.json` 的 `version` 脚本中添加 `auto-changelog-plus -p && git add CHANGELOG.md`：\n\n```json\n{\n  \"name\": \"my-awesome-package\",\n  \"version\": \"1.0.0\",\n  \"devDependencies\": {\n    \"auto-changelog-plus\": \"*\"\n  },\n  \"scripts\": {\n    \"version\": \"auto-changelog-plus -p && git add CHANGELOG.md\"\n  }\n}\n```\n\n使用 `-p` 或 `--package` 将 `package.json` 中的 `version` 用作最新发布，这样以前发布和现在之间的所有提交都成为该发布的一部分。基本上任何通常被解析为 `Unreleased` 的内容现在都会出现在 `package.json` 的 `version` 下。\n\n现在每次运行 [npm version](https://docs.npmjs.com/cli/version) 时，changelog 将自动更新并成为版本提交的一部分。\n\n在不是 NPM 包的项目中，可以使用 `npx` 或 `pnpx` 来运行 `auto-changelog-plus`，例如：\n\n```bash\nnpx auto-changelog-plus\n# 或\npnpx auto-changelog-plus\n```\n\n在 GitHub Actions 中，你可以使用以下工作流来自动生成发布说明：\n\n```yaml\nname: Release for new tag\n\non:\n  push:\n    tags:\n      - 'v*.*.*'\n  workflow_dispatch:\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v5\n        with:\n          fetch-depth: 0 # Fetch all history for generating release notes\n\n      - name: Setup Node.js\n        uses: actions/setup-node@v5\n        with:\n          node-version: 'lts/*'\n\n      - name: Generate release notes\n        run: |\n          npx auto-changelog-plus --starting-version ${{ github.ref_name }}\n          sed -i '1,4d' CHANGELOG.md\n\n      - name: GitHub Release\n        uses: softprops/action-gh-release@v2\n        with:\n          draft: true\n          body_path: CHANGELOG.md\n```\n\n## 🔄 和 auto-changelog 的区别\n\n`auto-changelog-plus` 是 `auto-changelog` 的上层封装，完全兼容 `auto-changelog` 的所有用法和配置。\n\n主要改进：\n\n- **优化默认模板**：更好地适配 **约定式提交** 规范\n- **调整默认配置**：提供更合理的开箱即用体验\n- **扩展模板功能**：提供额外的模板辅助函数\n\n如果你正在使用 `auto-changelog`，可以直接替换为 `auto-changelog-plus`，无需修改任何配置。\n\n## 📄 许可证\n\nMIT\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/auto-changelog-plus/  \n\n"
  },
  {
    "path": "projects/lruihao/bill-note/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>基于 leancloud-storage 实现的无后端记账本 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\"><meta name=keywords content='vue'><meta itemprop=name content=\"基于 leancloud-storage 实现的无后端记账本\"><meta itemprop=description content=\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\"><meta itemprop=datePublished content=\"2021-02-28T03:44:09+00:00\"><meta itemprop=dateModified content=\"2025-01-16T02:53:15+00:00\"><meta itemprop=wordCount content=\"52\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"vue\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/bill-note/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"基于 leancloud-storage 实现的无后端记账本\"><meta property=\"og:description\" content=\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-02-28T03:44:09+00:00\"><meta property=\"article:modified_time\" content=\"2025-01-16T02:53:15+00:00\"><meta property=\"article:tag\" content=\"vue\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"基于 leancloud-storage 实现的无后端记账本\"><meta name=twitter:description content=\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/bill-note/ title=\"基于 leancloud-storage 实现的无后端记账本 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/cell-blog/ title=\"cell-blog 功能介绍与安装\"><link rel=next type=text/html href=https://lruihao.cn/me/whysmoke/ title=你为什么吸烟？><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/bill-note/index.md title=\"基于 leancloud-storage 实现的无后端记账本 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"基于 leancloud-storage 实现的无后端记账本\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/bill-note\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"vue\",\"wordcount\":52,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/bill-note\\/\",\"datePublished\":\"2021-02-28T03:44:09+00:00\",\"dateModified\":\"2025-01-16T02:53:15+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/bill-note/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/bill-note</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><span class=active title=Lruihao/bill-note>Lruihao/bill-note</span></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/cell-blog/ class=collection-nav-item rel=prev title=\"Cell-Blog 功能介绍与安装\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>9/51</span><a href=/projects/bill-note/ class=collection-nav-item rel=next title=\"基于 Leancloud-Storage 实现的无后端记账本\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>基于 leancloud-storage 实现的无后端记账本</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/bill-note target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/bill-note<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/bill-note/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/bill-note/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-02-28 03:44:09\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-02-28>2021-02-28</time></span>&nbsp;<span title=\"更新于 2025-01-16 02:53:15\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-01-16>2025-01-16</time></span>&nbsp;<span title=\"52 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"基于 leancloud-storage 实现的无后端记账本\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-01-16，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=preparation data-decreased><span>Preparation</span>\n<a href=#preparation class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：</p><div class=table-wrapper><table><thead><tr><th>name</th><th>type</th><th>description</th></tr></thead><tbody><tr><td>pay</td><td>Number</td><td>消费金额</td></tr><tr><td>pay_description</td><td>String</td><td>消费描述</td></tr><tr><td>pay_type</td><td>String</td><td>消费类型</td></tr><tr><td>pay_user</td><td>String</td><td>付款人</td></tr></tbody></table></div><h2 class=heading-element id=init data-decreased><span>Init</span>\n<a href=#init class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>set for yourself.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>AV.init({\n</span></span><span class=line><span class=cl>    appId: &#39;&#39;,\n</span></span><span class=line><span class=cl>    appKey: &#39;&#39;,\n</span></span><span class=line><span class=cl>    serverURL: &#39;&#39;\n</span></span><span class=line><span class=cl>  });</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=push data-decreased><span>Push</span>\n<a href=#push class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>push the <code>bill-note/docs</code> to web server.</p><h2 class=heading-element id=技术栈 data-decreased><span>技术栈</span>\n<a href=#%e6%8a%80%e6%9c%af%e6%a0%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>leancloud-storage</li><li>Vue.js</li><li>HTML, CSS, JS</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/cell-blog/ class=collection-nav-item rel=prev title=\"Cell-Blog 功能介绍与安装\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Cell-Blog 功能介绍与安装</span>\n</a><a href=/projects/bill-note/ class=collection-nav-item rel=next title=\"基于 Leancloud-Storage 实现的无后端记账本\"><span>基于 Leancloud-Storage 实现的无后端记账本</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-01-16 02:53:15\">更新于 2025-01-16&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/bill-note/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/bill-note/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/bill-note/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/bill-note/ data-title=\"基于 leancloud-storage 实现的无后端记账本\" data-hashtags=vue><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/bill-note/ data-hashtag=vue><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/bill-note/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/bill-note/ data-title=\"基于 leancloud-storage 实现的无后端记账本\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/bill-note/ data-title=\"基于 leancloud-storage 实现的无后端记账本\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vue/ class=post-tag title=\"标签 - vue\">vue</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/cell-blog/ class=post-nav-item rel=prev title=\"Cell-Blog 功能介绍与安装\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Cell-Blog 功能介绍与安装</a><a href=/me/whysmoke/ class=post-nav-item rel=next title=你为什么吸烟？>你为什么吸烟？<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/bill-note/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/bill-note/index.md",
    "content": "# 基于 leancloud-storage 实现的无后端记账本\n\n# Preparation\n\n去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\n\n| name | type   | description |\n| ---  | ---    | ---     |\n| pay  | Number | 消费金额 |\n| pay_description | String | 消费描述 |\n| pay_type | String | 消费类型 |\n| pay_user | String | 付款人 |\n\n# Init\n\nset for yourself.\n\n```\nAV.init({\n    appId: '',\n    appKey: '',\n    serverURL: ''\n  });\n```\n\n# Push\n\npush the `bill-note/docs` to web server.\n\n# 技术栈\n\n- leancloud-storage\n- Vue.js\n- HTML, CSS, JS\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/bill-note/  \n\n"
  },
  {
    "path": "projects/lruihao/caniuse-embed-element/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta name=keywords content='caniuse,caniuse-embed,custom-elements,web-components'><meta itemprop=name content=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta itemprop=description content=\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta itemprop=datePublished content=\"2025-07-22T03:40:45+00:00\"><meta itemprop=dateModified content=\"2026-04-08T08:41:40+00:00\"><meta itemprop=wordCount content=\"429\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"caniuse,caniuse-embed,custom-elements,web-components\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta property=\"og:description\" content=\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-07-22T03:40:45+00:00\"><meta property=\"article:modified_time\" content=\"2026-04-08T08:41:40+00:00\"><meta property=\"article:tag\" content=\"caniuse\"><meta property=\"article:tag\" content=\"caniuse-embed\"><meta property=\"article:tag\" content=\"custom-elements\"><meta property=\"article:tag\" content=\"web-components\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta name=twitter:description content=\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/json-viewer-element/ title=\"A custom element for viewing and interacting with JSON data.\"><link rel=next type=text/html href=https://lruihao.cn/posts/code-playground/ title=\"Code Playground\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/caniuse-embed-element/index.md title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/caniuse-embed-element\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"caniuse, caniuse-embed, custom-elements, web-components\",\"wordcount\":429,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/caniuse-embed-element\\/\",\"datePublished\":\"2025-07-22T03:40:45+00:00\",\"dateModified\":\"2026-04-08T08:41:40+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/caniuse-embed-element/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/caniuse-embed-element</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><span class=active title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</span></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/json-viewer-element/ class=collection-nav-item rel=prev title=Lruihao/json-viewer-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>48/51</span><a href=/projects/lruihao/auto-changelog-plus/ class=collection-nav-item rel=next title=Lruihao/auto-changelog-plus><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/caniuse-embed-element target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/caniuse-embed-element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://caniuse-el.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">https://caniuse-el.lruihao.cn/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-07-22 03:40:45\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-07-22>2025-07-22</time></span>&nbsp;<span title=\"更新于 2026-04-08 08:41:40\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-04-08>2026-04-08</time></span>&nbsp;<span title=\"429 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#-特性>✨ 特性</a></li><li><a href=#-快速开始>🚀 快速开始</a><ul><li><a href=#cdn推荐>CDN（推荐）</a></li><li><a href=#npm-安装>NPM 安装</a></li></ul></li><li><a href=#-使用示例>📖 使用示例</a><ul><li><a href=#基本用法>基本用法</a></li><li><a href=#使用-baseline-支持>使用 Baseline 支持</a></li><li><a href=#自定义配置>自定义配置</a></li><li><a href=#框架集成>框架集成</a></li></ul></li><li><a href=#-api-参考>⚙️ API 参考</a><ul><li><a href=#属性>属性</a></li><li><a href=#关于-baseline>关于 Baseline</a></li><li><a href=#查找功能名称>查找功能名称</a></li><li><a href=#常见功能示例>常见功能示例</a></li><li><a href=#css-类>CSS 类</a></li></ul></li><li><a href=#-浏览器支持>🌐 浏览器支持</a></li><li><a href=#-开发>🔧 开发</a><ul><li><a href=#前置要求>前置要求</a></li><li><a href=#设置>设置</a></li><li><a href=#构建>构建</a></li><li><a href=#脚本>脚本</a></li></ul></li><li><a href=#-发行版>📦 发行版</a></li><li><a href=#-贡献>🤝 贡献</a></li><li><a href=#-许可证>📄 许可证</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=caniuse-embed-元素 data-decreased><span><code>&lt;caniuse-embed></code> 元素</span>\n<a href=#caniuse-embed-%e5%85%83%e7%b4%a0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://www.npmjs.com/package/@cell-x/caniuse-embed-element target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/caniuse-embed-element_12896476513186770746.svg alt=\"npm version\"></a>\n<a href=https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/caniuse-embed-element_10890580896062364980.svg alt=License></a></p><p><a href=https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> | 简体中文</p><p>一个轻量级、可定制的 Web 组件，用于嵌入 <a href=https://caniuse.com target=_blank rel=\"external nofollow noopener noreferrer\">caniuse.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 的特定 Web 功能的浏览器兼容性数据。使用 <a href=https://lit.dev/ target=_blank rel=\"external nofollow noopener noreferrer\">Lit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 构建，设计为可无缝集成到任何 Web 项目中。</p><p><a href=https://caniuse-el.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">🌟 <strong>在线演示</strong><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p><img loading=lazy src=https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/caniuse.webp alt=\"caniuse 示例\"></p><p><img loading=lazy src=https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/baseline.png alt=\"baseline 示例\"></p><h2 class=heading-element id=-特性><span>✨ 特性</span>\n<a href=#-%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>🎯 <strong>轻松集成</strong>：即插即用的 Web 组件，适用于任何框架或原生 HTML</li><li>🎨 <strong>主题支持</strong>：自动、浅色和深色主题，适应您的设计</li><li>📱 <strong>响应式</strong>：根据内容自动调整高度</li><li>⚡ <strong>轻量级</strong>：使用 Lit 构建，最小化包体积</li><li>🛠️ <strong>可定制</strong>：配置数据源、时间范围和外观</li><li>🔒 <strong>类型安全</strong>：完整的 TypeScript 支持和全面的类型定义</li></ul><h2 class=heading-element id=-快速开始><span>🚀 快速开始</span>\n<a href=#-%e5%bf%ab%e9%80%9f%e5%bc%80%e5%a7%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=cdn推荐><span>CDN（推荐）</span>\n<a href=#cdn%e6%8e%a8%e8%8d%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>在您的 HTML 中添加脚本标签：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>然后使用组件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>caniuse-embed</span> <span class=na>feature</span><span class=o>=</span><span class=s>&#34;css-grid&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>caniuse-embed</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=npm-安装><span>NPM 安装</span>\n<a href=#npm-%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install @cell-x/caniuse-embed-element</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>import</span> <span class=s1>&#39;@cell-x/caniuse-embed-element&#39;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=-使用示例><span>📖 使用示例</span>\n<a href=#-%e4%bd%bf%e7%94%a8%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=基本用法><span>基本用法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>caniuse-embed</span> <span class=na>feature</span><span class=o>=</span><span class=s>&#34;css-grid&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>caniuse-embed</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=使用-baseline-支持><span>使用 Baseline 支持</span>\n<a href=#%e4%bd%bf%e7%94%a8-baseline-%e6%94%af%e6%8c%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>显示功能的浏览器兼容性基线信息：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>caniuse-embed</span> <span class=na>feature</span><span class=o>=</span><span class=s>&#34;css-grid&#34;</span> <span class=na>baseline</span><span class=p>&gt;&lt;/</span><span class=nt>caniuse-embed</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=自定义配置><span>自定义配置</span>\n<a href=#%e8%87%aa%e5%ae%9a%e4%b9%89%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>caniuse-embed</span>\n</span></span><span class=line><span class=cl>  <span class=na>feature</span><span class=o>=</span><span class=s>&#34;flexbox&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>past</span><span class=o>=</span><span class=s>&#34;3&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>future</span><span class=o>=</span><span class=s>&#34;2&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>baseline</span>\n</span></span><span class=line><span class=cl>  <span class=na>origin</span><span class=o>=</span><span class=s>&#34;https://caniuse.lruihao.cn&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>&gt;&lt;/</span><span class=nt>caniuse-embed</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>FRAMEWORK_INTEGRATION.md</p><h3 class=heading-element id=框架集成><span>框架集成</span>\n<a href=#%e6%a1%86%e6%9e%b6%e9%9b%86%e6%88%90 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>以下是使用 Vue.js 的示例。更多框架集成示例，请参阅 <a href=https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./FRAMEWORK_INTEGRATION.md target=_blank rel=\"external nofollow noopener noreferrer\">FRAMEWORK_INTEGRATION.md<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>setup</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=s1>&#39;@cell-x/caniuse-embed-element&#39;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>caniuse-embed</span>\n</span></span><span class=line><span class=cl>      <span class=na>feature</span><span class=o>=</span><span class=s>&#34;css-grid&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>:past</span><span class=o>=</span><span class=s>&#34;3&#34;</span>\n</span></span><span class=line><span class=cl>      <span class=nt>:future</span><span class=o>=</span><span class=s>&#34;2&#34;</span>\n</span></span><span class=line><span class=cl>    <span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=-api-参考><span>⚙️ API 参考</span>\n<a href=#-api-%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=属性><span>属性</span>\n<a href=#%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>属性</th><th>类型</th><th>默认值</th><th>描述</th></tr></thead><tbody><tr><td><code>feature</code></td><td><code>string</code></td><td><code>''</code></td><td><strong>必需</strong>。caniuse 功能标识符（例如 &lsquo;css-grid&rsquo;, &lsquo;flexbox&rsquo;）</td></tr><tr><td><code>past</code></td><td><code>0 - 5</code></td><td><code>2</code></td><td>显示过去浏览器版本的数量</td></tr><tr><td><code>future</code></td><td><code>0 - 3</code></td><td><code>1</code></td><td>显示未来浏览器版本的数量</td></tr><tr><td><code>baseline</code></td><td><code>boolean</code></td><td><code>false</code></td><td>显示基线浏览器兼容性状态（如果可用）</td></tr><tr><td><code>origin</code></td><td><code>string</code></td><td><code>'https://caniuse.lruihao.cn'</code></td><td>caniuse 嵌入服务的基础 URL</td></tr><tr><td><code>theme</code></td><td><code>'auto' | 'light' | 'dark'</code></td><td><code>'auto'</code></td><td>嵌入内容的颜色主题</td></tr><tr><td><code>loading</code></td><td><code>'eager' | 'lazy'</code></td><td><code>'lazy'</code></td><td>iframe 的加载策略（立即加载或延迟加载）</td></tr><tr><td><code>meta</code></td><td><code>string</code></td><td><code>自动生成</code></td><td>嵌入实例的唯一标识符</td></tr></tbody></table></div><h3 class=heading-element id=关于-baseline><span>关于 Baseline</span>\n<a href=#%e5%85%b3%e4%ba%8e-baseline class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p><code>baseline</code> 属性显示 Web 功能的 <a href=https://web.dev/baseline target=_blank rel=\"external nofollow noopener noreferrer\">Baseline<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 浏览器兼容性状态。启用后，它会显示功能是否：</p><ul><li><strong>广泛可用</strong> - 所有主流浏览器都支持</li><li><strong>新近可用</strong> - 最近在主流浏览器中可用</li><li><strong>有限可用</strong> - 尚未在所有主流浏览器中可用</li></ul><p>这提供了功能采用情况的快速视觉指示器，帮助开发者在使用 Web 平台功能时做出明智的决策。</p><h3 class=heading-element id=查找功能名称><span>查找功能名称</span>\n<a href=#%e6%9f%a5%e6%89%be%e5%8a%9f%e8%83%bd%e5%90%8d%e7%a7%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>功能名称对应于 <a href=https://caniuse.com target=_blank rel=\"external nofollow noopener noreferrer\">caniuse.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 上使用的标识符。您可以在以下位置找到它们：</p><ul><li>URL 路径：<code>https://caniuse.com/css-grid</code> → 功能名称是 <code>css-grid</code></li><li><a href=https://caniuse.lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">caniuse.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 上的搜索结果</li><li><a href=https://github.com/Fyrd/caniuse/tree/master/features-json target=_blank rel=\"external nofollow noopener noreferrer\">caniuse-db<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 仓库</li></ul><h3 class=heading-element id=常见功能示例><span>常见功能示例</span>\n<a href=#%e5%b8%b8%e8%a7%81%e5%8a%9f%e8%83%bd%e7%a4%ba%e4%be%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><code>css-grid</code> - CSS 网格布局</li><li><code>flexbox</code> - 弹性盒子布局</li><li><code>arrow-functions</code> - 箭头函数</li><li><code>webp</code> - WebP 图片格式</li><li><code>css-variables</code> - CSS 自定义属性</li><li><code>async-functions</code> - Async/Await 函数</li><li>&mldr;</li></ul><h3 class=heading-element id=css-类><span>CSS 类</span>\n<a href=#css-%e7%b1%bb class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><code>.ciu-embed-iframe</code> - 嵌入的 iframe 元素</li><li><code>.ciu-embed-empty</code> - 未指定功能时的空状态</li></ul><h2 class=heading-element id=-浏览器支持><span>🌐 浏览器支持</span>\n<a href=#-%e6%b5%8f%e8%a7%88%e5%99%a8%e6%94%af%e6%8c%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>此 Web 组件适用于支持以下特性的所有现代浏览器：</p><ul><li>Custom Elements v1</li><li>Shadow DOM v1</li><li>ES2015+ 特性</li></ul><h2 class=heading-element id=-开发><span>🔧 开发</span>\n<a href=#-%e5%bc%80%e5%8f%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=前置要求><span>前置要求</span>\n<a href=#%e5%89%8d%e7%bd%ae%e8%a6%81%e6%b1%82 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li>Node.js 20+</li><li>pnpm 10+</li></ul><h3 class=heading-element id=设置><span>设置</span>\n<a href=#%e8%ae%be%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 克隆仓库</span>\n</span></span><span class=line><span class=cl>git clone https://github.com/Lruihao/caniuse-embed-element.git\n</span></span><span class=line><span class=cl><span class=nb>cd</span> caniuse-embed-element\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 安装依赖</span>\n</span></span><span class=line><span class=cl>pnpm install\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 启动开发服务器</span>\n</span></span><span class=line><span class=cl>pnpm dev</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=构建><span>构建</span>\n<a href=#%e6%9e%84%e5%bb%ba class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># 构建所有格式</span>\n</span></span><span class=line><span class=cl>pnpm build:all\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># 构建特定格式</span>\n</span></span><span class=line><span class=cl>pnpm build:lib    <span class=c1># ES 模块和类型</span>\n</span></span><span class=line><span class=cl>pnpm build:iife   <span class=c1># 用于 CDN 的 IIFE 格式</span>\n</span></span><span class=line><span class=cl>pnpm build        <span class=c1># 演示构建</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=脚本><span>脚本</span>\n<a href=#%e8%84%9a%e6%9c%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><code>pnpm dev</code> - 启动开发服务器</li><li><code>pnpm build</code> - 构建演示</li><li><code>pnpm build:lib</code> - 构建库（ES 模块 + 类型）</li><li><code>pnpm build:iife</code> - 构建 CDN 的 IIFE 包</li><li><code>pnpm build:all</code> - 构建所有格式</li><li><code>pnpm lint</code> - 运行 ESLint</li><li><code>pnpm preview</code> - 预览构建的演示</li></ul><h2 class=heading-element id=-发行版><span>📦 发行版</span>\n<a href=#-%e5%8f%91%e8%a1%8c%e7%89%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>该包提供多种构建格式：</p><ul><li><strong>ES 模块</strong>（<code>dist/</code>）- 用于现代打包工具</li><li><strong>IIFE 包</strong>（<code>dist/caniuse-embed-element.iife.js</code>）- 用于 CDN</li><li><strong>TypeScript 定义</strong>（<code>dist/types/</code>）- 用于 TypeScript 项目</li></ul><h2 class=heading-element id=-贡献><span>🤝 贡献</span>\n<a href=#-%e8%b4%a1%e7%8c%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>欢迎贡献！请随时提交 Pull Request。对于重大更改，请先开 issue 讨论您想要更改的内容。</p><ol><li>Fork 仓库</li><li>创建您的功能分支（<code>git checkout -b feature/amazing-feature</code>）</li><li>提交您的更改（<code>git commit -m 'Add some amazing feature'</code>）</li><li>推送到分支（<code>git push origin feature/amazing-feature</code>）</li><li>打开 Pull Request\nLICENSE</li></ol><h2 class=heading-element id=-许可证><span>📄 许可证</span>\n<a href=#-%e8%ae%b8%e5%8f%af%e8%af%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本项目采用 MIT 许可证。详情请参阅 <a href=https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./LICENSE target=_blank rel=\"external nofollow noopener noreferrer\">LICENSE<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 文件。</p><h2 class=heading-element id=-致谢><span>🙏 致谢</span>\n<a href=#-%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/pengzhanbo/caniuse-embed target=_blank rel=\"external nofollow noopener noreferrer\">pengzhanbo/caniuse-embed<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/mdn/browser-compat-data target=_blank rel=\"external nofollow noopener noreferrer\">mdn-browser-compat-data<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> - 来自 MDN 的全面浏览器兼容性数据</li><li><a href=https://github.com/Fyrd/caniuse target=_blank rel=\"external nofollow noopener noreferrer\">Fyrd/caniuse<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> - 原始浏览器支持数据</li></ul><hr><p>由 <a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 用 ❤️ 制作</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/json-viewer-element/ class=collection-nav-item rel=prev title=Lruihao/json-viewer-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/json-viewer-element</span>\n</a><a href=/projects/lruihao/auto-changelog-plus/ class=collection-nav-item rel=next title=Lruihao/auto-changelog-plus><span>Lruihao/auto-changelog-plus</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-04-08 08:41:40\">更新于 2026-04-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/caniuse-embed-element/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/README.zh-cn.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/caniuse-embed-element/edit/main/README.zh-cn.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ data-title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\" data-hashtags=caniuse,caniuse-embed,custom-elements,web-components><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ data-hashtag=caniuse><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/caniuse-embed-element/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ data-title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ data-title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/caniuse/ class=post-tag title=\"标签 - caniuse\">caniuse</a><a href=/tags/caniuse-embed/ class=post-tag title=\"标签 - caniuse-embed\">caniuse-embed</a><a href=/tags/custom-elements/ class=post-tag title=\"标签 - custom-elements\">custom-elements</a><a href=/tags/web-components/ class=post-tag title=\"标签 - web-components\">web-components</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/json-viewer-element/ class=post-nav-item rel=prev title=Lruihao/json-viewer-element><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/json-viewer-element</a><a href=/posts/code-playground/ class=post-nav-item rel=next title=\"Code Playground\">Code Playground<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#-特性>✨ 特性</a></li><li><a href=#-快速开始>🚀 快速开始</a><ul><li><a href=#cdn推荐>CDN（推荐）</a></li><li><a href=#npm-安装>NPM 安装</a></li></ul></li><li><a href=#-使用示例>📖 使用示例</a><ul><li><a href=#基本用法>基本用法</a></li><li><a href=#使用-baseline-支持>使用 Baseline 支持</a></li><li><a href=#自定义配置>自定义配置</a></li><li><a href=#框架集成>框架集成</a></li></ul></li><li><a href=#-api-参考>⚙️ API 参考</a><ul><li><a href=#属性>属性</a></li><li><a href=#关于-baseline>关于 Baseline</a></li><li><a href=#查找功能名称>查找功能名称</a></li><li><a href=#常见功能示例>常见功能示例</a></li><li><a href=#css-类>CSS 类</a></li></ul></li><li><a href=#-浏览器支持>🌐 浏览器支持</a></li><li><a href=#-开发>🔧 开发</a><ul><li><a href=#前置要求>前置要求</a></li><li><a href=#设置>设置</a></li><li><a href=#构建>构建</a></li><li><a href=#脚本>脚本</a></li></ul></li><li><a href=#-发行版>📦 发行版</a></li><li><a href=#-贡献>🤝 贡献</a></li><li><a href=#-许可证>📄 许可证</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/caniuse-embed-element/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/caniuse-embed-element/index.md",
    "content": "# A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\n\n# `<caniuse-embed>` 元素\n\n[![npm version](https://img.shields.io/npm/v/@cell-x/caniuse-embed-element.svg)](https://www.npmjs.com/package/@cell-x/caniuse-embed-element)\n[![License](https://img.shields.io/npm/l/%40cell-x%2Fcaniuse-embed-element.svg)](https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE)\n\n[English](https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md) | 简体中文\n\n一个轻量级、可定制的 Web 组件，用于嵌入 [caniuse.com](https://caniuse.com) 的特定 Web 功能的浏览器兼容性数据。使用 [Lit](https://lit.dev/) 构建，设计为可无缝集成到任何 Web 项目中。\n\n[🌟 **在线演示**](https://caniuse-el.lruihao.cn)\n\n![caniuse 示例](https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/caniuse.webp)\n\n![baseline 示例](https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/baseline.png)\n\n## ✨ 特性\n\n- 🎯 **轻松集成**：即插即用的 Web 组件，适用于任何框架或原生 HTML\n- 🎨 **主题支持**：自动、浅色和深色主题，适应您的设计\n- 📱 **响应式**：根据内容自动调整高度\n- ⚡ **轻量级**：使用 Lit 构建，最小化包体积\n- 🛠️ **可定制**：配置数据源、时间范围和外观\n- 🔒 **类型安全**：完整的 TypeScript 支持和全面的类型定义\n\n## 🚀 快速开始\n\n### CDN（推荐）\n\n在您的 HTML 中添加脚本标签：\n\n```html\n<script src=\"https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js\"></script>\n```\n\n然后使用组件：\n\n```html\n<caniuse-embed feature=\"css-grid\"></caniuse-embed>\n```\n\n### NPM 安装\n\n```bash\nnpm install @cell-x/caniuse-embed-element\n```\n\n```javascript\nimport '@cell-x/caniuse-embed-element'\n```\n\n## 📖 使用示例\n\n### 基本用法\n\n```html\n<caniuse-embed feature=\"css-grid\"></caniuse-embed>\n```\n\n### 使用 Baseline 支持\n\n显示功能的浏览器兼容性基线信息：\n\n```html\n<caniuse-embed feature=\"css-grid\" baseline></caniuse-embed>\n```\n\n### 自定义配置\n\n```html\n<caniuse-embed\n  feature=\"flexbox\"\n  theme=\"dark\"\n  past=\"3\"\n  future=\"2\"\n  baseline\n  origin=\"https://caniuse.lruihao.cn\"\n></caniuse-embed>\n```\n\nFRAMEWORK_INTEGRATION.md\n\n### 框架集成\n\n以下是使用 Vue.js 的示例。更多框架集成示例，请参阅 [FRAMEWORK_INTEGRATION.md](https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./FRAMEWORK_INTEGRATION.md)。\n\n```vue\n<script setup>\nimport '@cell-x/caniuse-embed-element'\n</script>\n\n<template>\n  <div>\n    <caniuse-embed\n      feature=\"css-grid\"\n      theme=\"dark\"\n      :past=\"3\"\n      :future=\"2\"\n    />\n  </div>\n</template>\n```\n\n## ⚙️ API 参考\n\n### 属性\n\n| 属性       | 类型                          | 默认值                         | 描述                                                       |\n| ---------- | ----------------------------- | ------------------------------ | ---------------------------------------------------------- |\n| `feature`  | `string`                      | `''`                           | **必需**。caniuse 功能标识符（例如 'css-grid', 'flexbox'） |\n| `past`     | `0 - 5`                       | `2`                            | 显示过去浏览器版本的数量                                   |\n| `future`   | `0 - 3`                       | `1`                            | 显示未来浏览器版本的数量                                   |\n| `baseline` | `boolean`                     | `false`                        | 显示基线浏览器兼容性状态（如果可用）                       |\n| `origin`   | `string`                      | `'https://caniuse.lruihao.cn'` | caniuse 嵌入服务的基础 URL                                 |\n| `theme`    | `'auto' \\| 'light' \\| 'dark'` | `'auto'`                       | 嵌入内容的颜色主题                                         |\n| `loading`  | `'eager' \\| 'lazy'`           | `'lazy'`                       | iframe 的加载策略（立即加载或延迟加载）                    |\n| `meta`     | `string`                      | `自动生成`                     | 嵌入实例的唯一标识符                                       |\n\n### 关于 Baseline\n\n`baseline` 属性显示 Web 功能的 [Baseline](https://web.dev/baseline) 浏览器兼容性状态。启用后，它会显示功能是否：\n\n- **广泛可用** - 所有主流浏览器都支持\n- **新近可用** - 最近在主流浏览器中可用\n- **有限可用** - 尚未在所有主流浏览器中可用\n\n这提供了功能采用情况的快速视觉指示器，帮助开发者在使用 Web 平台功能时做出明智的决策。\n\n### 查找功能名称\n\n功能名称对应于 [caniuse.com](https://caniuse.com) 上使用的标识符。您可以在以下位置找到它们：\n\n- URL 路径：`https://caniuse.com/css-grid` → 功能名称是 `css-grid`\n- [caniuse.lruihao.cn](https://caniuse.lruihao.cn/) 上的搜索结果\n- [caniuse-db](https://github.com/Fyrd/caniuse/tree/master/features-json) 仓库\n\n### 常见功能示例\n\n- `css-grid` - CSS 网格布局\n- `flexbox` - 弹性盒子布局\n- `arrow-functions` - 箭头函数\n- `webp` - WebP 图片格式\n- `css-variables` - CSS 自定义属性\n- `async-functions` - Async/Await 函数\n- ...\n\n### CSS 类\n\n- `.ciu-embed-iframe` - 嵌入的 iframe 元素\n- `.ciu-embed-empty` - 未指定功能时的空状态\n\n## 🌐 浏览器支持\n\n此 Web 组件适用于支持以下特性的所有现代浏览器：\n\n- Custom Elements v1\n- Shadow DOM v1\n- ES2015+ 特性\n\n<!--\n对于较旧的浏览器，请考虑使用 polyfills：\n\n```html\n<script src=\"https://unpkg.com/@webcomponents/webcomponentsjs@^2/webcomponents-loader.js\"></script>\n```\n-->\n\n## 🔧 开发\n\n### 前置要求\n\n- Node.js 20+\n- pnpm 10+\n\n### 设置\n\n```bash\n# 克隆仓库\ngit clone https://github.com/Lruihao/caniuse-embed-element.git\ncd caniuse-embed-element\n\n# 安装依赖\npnpm install\n\n# 启动开发服务器\npnpm dev\n```\n\n### 构建\n\n```bash\n# 构建所有格式\npnpm build:all\n\n# 构建特定格式\npnpm build:lib    # ES 模块和类型\npnpm build:iife   # 用于 CDN 的 IIFE 格式\npnpm build        # 演示构建\n```\n\n### 脚本\n\n- `pnpm dev` - 启动开发服务器\n- `pnpm build` - 构建演示\n- `pnpm build:lib` - 构建库（ES 模块 + 类型）\n- `pnpm build:iife` - 构建 CDN 的 IIFE 包\n- `pnpm build:all` - 构建所有格式\n- `pnpm lint` - 运行 ESLint\n- `pnpm preview` - 预览构建的演示\n\n## 📦 发行版\n\n该包提供多种构建格式：\n\n- **ES 模块**（`dist/`）- 用于现代打包工具\n- **IIFE 包**（`dist/caniuse-embed-element.iife.js`）- 用于 CDN\n- **TypeScript 定义**（`dist/types/`）- 用于 TypeScript 项目\n\n## 🤝 贡献\n\n欢迎贡献！请随时提交 Pull Request。对于重大更改，请先开 issue 讨论您想要更改的内容。\n\n1. Fork 仓库\n2. 创建您的功能分支（`git checkout -b feature/amazing-feature`）\n3. 提交您的更改（`git commit -m 'Add some amazing feature'`）\n4. 推送到分支（`git push origin feature/amazing-feature`）\n5. 打开 Pull Request\nLICENSE\n\n## 📄 许可证\n\n本项目采用 MIT 许可证。详情请参阅 [LICENSE](https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./LICENSE) 文件。\n\n## 🙏 致谢\n\n- [pengzhanbo/caniuse-embed](https://github.com/pengzhanbo/caniuse-embed)\n- [mdn-browser-compat-data](https://github.com/mdn/browser-compat-data) - 来自 MDN 的全面浏览器兼容性数据\n- [Fyrd/caniuse](https://github.com/Fyrd/caniuse) - 原始浏览器支持数据\n\n---\n\n由 [Lruihao](https://github.com/Lruihao) 用 ❤️ 制作\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/caniuse-embed-element/  \n\n"
  },
  {
    "path": "projects/lruihao/cell-blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>基于 Laravel 7 开发，支持 Markdown 语法的博客 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta name=keywords content='blog,laravel,laravel-blog'><meta itemprop=name content=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta itemprop=description content=\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta itemprop=datePublished content=\"2020-04-17T08:33:39+00:00\"><meta itemprop=dateModified content=\"2025-04-12T07:30:24+00:00\"><meta itemprop=wordCount content=\"154\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"blog,Laravel,laravel-blog\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/cell-blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta property=\"og:description\" content=\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2020-04-17T08:33:39+00:00\"><meta property=\"article:modified_time\" content=\"2025-04-12T07:30:24+00:00\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"Laravel\"><meta property=\"article:tag\" content=\"laravel-blog\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta name=twitter:description content=\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/cell-blog/ title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/csdnvisiter/ title=\"使用 Python 刷 csdn 访问量\"><link rel=next type=text/html href=https://lruihao.cn/posts/cell-blog-dev/ title=\"cell-blog 开发记录\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/cell-blog/index.md title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cell-blog\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"blog, laravel, laravel-blog\",\"wordcount\":154,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cell-blog\\/\",\"datePublished\":\"2020-04-17T08:33:39+00:00\",\"dateModified\":\"2025-04-12T07:30:24+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/cell-blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/cell-blog</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><span class=active title=Lruihao/cell-blog>Lruihao/cell-blog</span></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/cos-album/ class=collection-nav-item rel=prev title=利用腾讯云为静态页面添加“动态”相册><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>7/51</span><a href=/projects/cell-blog/ class=collection-nav-item rel=next title=\"Cell-Blog 功能介绍与安装\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>基于 Laravel 7 开发，支持 Markdown 语法的博客</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/cell-blog target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/cell-blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2020-04-17 08:33:39\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-04-17>2020-04-17</time></span>&nbsp;<span title=\"更新于 2025-04-12 07:30:24\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-04-12>2025-04-12</time></span>&nbsp;<span title=\"154 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#功能>功能</a></li><li><a href=#截图>截图</a></li><li><a href=#安装>安装</a></li><li><a href=#license>License</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-04-12，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>Cell Blog</h1><blockquote><p>基于Laravel7开发，Markdown语法的个人独立博客。</p></blockquote><h2 class=heading-element id=功能><span>功能</span>\n<a href=#%e5%8a%9f%e8%83%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>支持Markdown,文章实时预览效果</li><li>支持多种编程语言代码高亮</li><li>编辑器图片上传</li><li>后台上传文件管理</li><li>文章搜索</li><li>文章分类</li><li>文章标签</li><li>热门文章</li><li>随机格言</li><li>文章管理(发布，评论开关，排序)</li><li>自定义导航(显示开关，排序)</li><li>自定义页面(发布开关)</li><li>友情链接(显示开关，排序)</li><li><a href=https://github.com/Lruihao/cos-album target=_blank rel=\"external nofollow noopener noreferrer\">COS桶相册<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>丰富的博客配置(方便扩展，支持自定义JS脚本)</li><li>不蒜子计数</li><li>Leancloud计数</li><li>Valine评论插件</li><li>文章分享插件</li></ul><h2 class=heading-element id=截图><span>截图</span>\n<a href=#%e6%88%aa%e5%9b%be class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><img loading=lazy src=/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png alt=前台首页.png height=837 width=1383><br><img loading=lazy src=/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png alt=管理文章.png height=649 width=1385><br><img loading=lazy src=/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png alt=编辑文章.png height=629 width=1385></p><h2 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>注意事项：PHP取消禁用函数<code>putenv()</code>和<code>symlink()</code>，安装<code>fileinfo</code>扩展。</p></blockquote><p>下载</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>git clone https://github.com/Lruihao/cell-blog.git</span></span></code></pre></td></tr></table></div></div></div><p>进入站点</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>cd cell-blog</span></span></code></pre></td></tr></table></div></div></div><p>生成.env</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>cp .env.example .env</span></span></code></pre></td></tr></table></div></div></div><p>编辑.env环境配置</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl><span class=nv>APP_URL</span><span class=o>=</span>http://localhost <span class=c1>##使用本地文件系统存储文件时，必须填写正确地址</span>\n</span></span><span class=line><span class=cl><span class=nv>APP_DEBUG</span><span class=o>=</span><span class=nb>false</span> <span class=c1>##关闭调试</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_HOST</span><span class=o>=</span> <span class=c1>##数据库地址</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_PORT</span><span class=o>=</span><span class=m>3306</span> <span class=c1>##数据库端口</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_DATABASE</span><span class=o>=</span> <span class=c1>##数据库名称</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_USERNAME</span><span class=o>=</span> <span class=c1>##数据库用户</span>\n</span></span><span class=line><span class=cl><span class=nv>DB_PASSWORD</span><span class=o>=</span> <span class=c1>##数据库密码</span></span></span></code></pre></td></tr></table></div></div></div><p>打开<code>app\\Providers\\AppServiceProvider.php</code>,注释<code>SystemController:load()</code> 防止后续步骤报错</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl>    <span class=n>public</span> <span class=n>function</span> <span class=n>boot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>Schema</span><span class=p>::</span><span class=n>defaultStringLength</span><span class=p>(</span><span class=mi>191</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=o>//</span><span class=n>SystemController</span><span class=p>::</span><span class=nb>load</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>安装项目依赖</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>composer install</span></span></code></pre></td></tr></table></div></div></div><p>生成key</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan key:generate</span></span></code></pre></td></tr></table></div></div></div><p>运行数据迁移和后台数据填充</p><blockquote><p><code>php artisan admin:install</code>已包含数据迁移命令<code>php artisan migrate</code><br><code>G:\\cell-blog\\app\\Admin directory already exists !</code>无需理会，继续执行剩下命令即可。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan admin:install\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>php artisan admin:import media-manager\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>php artisan db:seed</span></span></code></pre></td></tr></table></div></div></div><p>默认下使用了本地文件系统，创建storage目录在public的软链接</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>php artisan storage:link</span></span></code></pre></td></tr></table></div></div></div><p>打开<code>app\\Providers\\AppServiceProvider.php</code>,取消注释<code>SystemController:load()</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-gdscript3 data-lang=gdscript3><span class=line><span class=cl>    <span class=n>public</span> <span class=n>function</span> <span class=n>boot</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>    <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=n>Schema</span><span class=p>::</span><span class=n>defaultStringLength</span><span class=p>(</span><span class=mi>191</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>        <span class=n>SystemController</span><span class=p>::</span><span class=nb>load</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><p>将博客网站根目录指向入口public目录</p><p>如果使用Nginx，要设置伪静态</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>location / {\n</span></span><span class=line><span class=cl>    try_files $uri $uri/ /index.php?$query_string;\n</span></span><span class=line><span class=cl>}</span></span></code></pre></td></tr></table></div></div></div><p>启动服务后，在浏览器打开<code>http://localhost/admin/</code>,使用用户名<code>admin</code>和密码<code>admin</code>登录.</p><h2 class=heading-element id=license><span>License</span>\n<a href=#license class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Cell Blog is open-sourced software licensed under the MIT license.</p><p><img loading=lazy src=/images/remote/cell-blog_1741689262493908108.svg alt=\"Stargazers over time\"></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/cos-album/ class=collection-nav-item rel=prev title=利用腾讯云为静态页面添加“动态”相册><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>利用腾讯云为静态页面添加“动态”相册</span>\n</a><a href=/projects/cell-blog/ class=collection-nav-item rel=next title=\"Cell-Blog 功能介绍与安装\"><span>Cell-Blog 功能介绍与安装</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-04-12 07:30:24\">更新于 2025-04-12&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/cell-blog/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/cell-blog/blob/master/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/cell-blog/edit/master/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/cell-blog/ data-title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\" data-hashtags=blog,laravel,laravel-blog><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/cell-blog/ data-hashtag=blog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/cell-blog/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/cell-blog/ data-title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/cell-blog/ data-title=\"基于 Laravel 7 开发，支持 Markdown 语法的博客\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/laravel/ class=post-tag title=\"标签 - Laravel\">Laravel</a><a href=/tags/laravel-blog/ class=post-tag title=\"标签 - laravel-blog\">laravel-blog</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/csdnvisiter/ class=post-nav-item rel=prev title=\"使用 Python 刷 Csdn 访问量\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>使用 Python 刷 Csdn 访问量</a><a href=/posts/cell-blog-dev/ class=post-nav-item rel=next title=\"Cell-Blog 开发记录\">Cell-Blog 开发记录<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#功能>功能</a></li><li><a href=#截图>截图</a></li><li><a href=#安装>安装</a></li><li><a href=#license>License</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/cell-blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/cell-blog/index.md",
    "content": "# 基于 Laravel 7 开发，支持 Markdown 语法的博客\n\n<h1 align=\"center\" >Cell Blog</h1>\n\n> 基于Laravel7开发，Markdown语法的个人独立博客。\n\n## 功能\n- 支持Markdown,文章实时预览效果\n- 支持多种编程语言代码高亮\n- 编辑器图片上传\n- 后台上传文件管理\n- 文章搜索\n- 文章分类\n- 文章标签\n- 热门文章\n- 随机格言\n- 文章管理(发布，评论开关，排序)\n- 自定义导航(显示开关，排序)\n- 自定义页面(发布开关)\n- 友情链接(显示开关，排序)\n- [COS桶相册](https://github.com/Lruihao/cos-album)\n- 丰富的博客配置(方便扩展，支持自定义JS脚本)\n- 不蒜子计数\n- Leancloud计数\n- Valine评论插件\n- 文章分享插件\n\n\n## 截图\n![前台首页.png](https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png)  \n![管理文章.png](https://i.loli.net/2020/05/11/tMEQe7WvYmw3jd4.png)  \n![编辑文章.png](https://i.loli.net/2020/05/11/DeOWyJ3zluLKvBn.png)  \n\n## 安装\n> 注意事项：PHP取消禁用函数`putenv()`和`symlink()`，安装`fileinfo`扩展。\n\n下载\n```\ngit clone https://github.com/Lruihao/cell-blog.git\n```\n\n进入站点\n```\ncd cell-blog\n```\n\n生成.env\n```shell\ncp .env.example .env\n```\n\n编辑.env环境配置\n```shell\nAPP_URL=http://localhost ##使用本地文件系统存储文件时，必须填写正确地址\nAPP_DEBUG=false ##关闭调试\nDB_HOST= ##数据库地址\nDB_PORT=3306 ##数据库端口\nDB_DATABASE= ##数据库名称\nDB_USERNAME= ##数据库用户\nDB_PASSWORD= ##数据库密码\n```\n\n打开`app\\Providers\\AppServiceProvider.php`,注释`SystemController:load()` 防止后续步骤报错\n```\n    public function boot()\n    {\n        Schema::defaultStringLength(191);\n        //SystemController::load();\n    }\n```\n\n安装项目依赖\n```shell\ncomposer install\n```\n\n生成key\n```\nphp artisan key:generate\n```\n\n运行数据迁移和后台数据填充\n\n> `php artisan admin:install`已包含数据迁移命令`php artisan migrate`  \n`G:\\cell-blog\\app\\Admin directory already exists !`无需理会，继续执行剩下命令即可。\n\n```\nphp artisan admin:install\n\nphp artisan admin:import media-manager\n\nphp artisan db:seed\n```\n\n默认下使用了本地文件系统，创建storage目录在public的软链接\n```\nphp artisan storage:link\n```\n\n打开`app\\Providers\\AppServiceProvider.php`,取消注释`SystemController:load()`\n```\n    public function boot()\n    {\n        Schema::defaultStringLength(191);\n        SystemController::load();\n    }\n```\n\n将博客网站根目录指向入口public目录\n\n如果使用Nginx，要设置伪静态\n```\nlocation / {\n    try_files $uri $uri/ /index.php?$query_string;\n}\n```\n\n启动服务后，在浏览器打开`http://localhost/admin/`,使用用户名`admin`和密码`admin`登录.\n\n## License\nCell Blog is open-sourced software licensed under the MIT license.\n\n![Stargazers over time](https://starchart.cc/Lruihao/cell-blog.svg)\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/cell-blog/  \n\n"
  },
  {
    "path": "projects/lruihao/cell-tooltip/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>一个轻量化 Tooltip 组件。 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"一个轻量化 Tooltip 组件。\"><meta itemprop=description content=\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\"><meta itemprop=datePublished content=\"2026-03-06T06:58:23+00:00\"><meta itemprop=dateModified content=\"2026-03-30T06:51:12+00:00\"><meta itemprop=wordCount content=\"304\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub,开源项目\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"一个轻量化 Tooltip 组件。\"><meta property=\"og:description\" content=\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2026-03-06T06:58:23+00:00\"><meta property=\"article:modified_time\" content=\"2026-03-30T06:51:12+00:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"一个轻量化 Tooltip 组件。\"><meta name=twitter:description content=\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/cell-tooltip/ title=\"一个轻量化 Tooltip 组件。 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ title=\"A Christmas Easter Egg by JavaScript.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/cell-tooltip/index.md title=\"一个轻量化 Tooltip 组件。 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"一个轻量化 Tooltip 组件。\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cell-tooltip\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":304,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cell-tooltip\\/\",\"datePublished\":\"2026-03-06T06:58:23+00:00\",\"dateModified\":\"2026-03-30T06:51:12+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/cell-tooltip/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/cell-tooltip</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><span class=active title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</span></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-santa-hat><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>51/51</span><i class=\"fa-solid fa-angle-right collection-nav-item text-secondary\" aria-hidden=true></i></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>一个轻量化 Tooltip 组件。</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/cell-tooltip target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/cell-tooltip<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/cell-tooltip/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/cell-tooltip/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2026-03-06 06:58:23\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2026-03-06>2026-03-06</time></span>&nbsp;<span title=\"更新于 2026-03-30 06:51:12\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-03-30>2026-03-30</time></span>&nbsp;<span title=\"304 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"一个轻量化 Tooltip 组件。\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#特性>特性</a></li><li><a href=#本地运行>本地运行</a></li><li><a href=#快速使用>快速使用</a><ul><li><a href=#1-html>1) HTML</a></li><li><a href=#2-ts>2) TS</a></li><li><a href=#3-浏览器直引umd--iife>3) 浏览器直引（UMD / IIFE）</a></li></ul></li><li><a href=#配置项>配置项</a></li><li><a href=#data-属性>data 属性</a></li><li><a href=#实例方法>实例方法</a></li><li><a href=#目录>目录</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=cell-tooltip data-decreased><span>cell-tooltip</span>\n<a href=#cell-tooltip class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap <code>tooltip.js</code>，保留常用能力并尽量减少体积与依赖。</p><h2 class=heading-element id=特性><span>特性</span>\n<a href=#%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>支持触发方式：<code>hover</code> / <code>focus</code> / <code>click</code> / <code>manual</code></li><li>支持位置：<code>top</code> / <code>bottom</code> / <code>left</code> / <code>right</code> / <code>auto</code></li><li>支持延迟配置（<code>show</code> / <code>hide</code>）</li><li>支持 <code>data-ct-*</code> 属性初始化</li><li>支持实例方法：<code>show</code> / <code>hide</code> / <code>toggle</code> / <code>update</code> / <code>dispose</code></li><li>内置箭头与基础样式，无第三方依赖</li></ul><h2 class=heading-element id=本地运行><span>本地运行</span>\n<a href=#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm install\n</span></span><span class=line><span class=cl>pnpm dev</span></span></code></pre></td></tr></table></div></div></div><p>构建库产物：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm build</span></span></code></pre></td></tr></table></div></div></div><p>构建 Demo：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm build:demo</span></span></code></pre></td></tr></table></div></div></div><p>预览 Demo：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>pnpm preview</span></span></code></pre></td></tr></table></div></div></div><p><code>build</code> 会输出库产物到 <code>dist/</code>，<code>build:demo</code> 会输出示例站点到 <code>dist-demo/</code>。</p><h2 class=heading-element id=快速使用><span>快速使用</span>\n<a href=#%e5%bf%ab%e9%80%9f%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=1-html><span>1) HTML</span>\n<a href=#1-html class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>button</span>\n</span></span><span class=line><span class=cl>  <span class=na>id</span><span class=o>=</span><span class=s>&#34;btn&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-title</span><span class=o>=</span><span class=s>&#34;Hello tooltip&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-placement</span><span class=o>=</span><span class=s>&#34;top&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  Hover me\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>button</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=2-ts><span>2) TS</span>\n<a href=#2-ts class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-ts\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-ts data-lang=ts><span class=line><span class=cl><span class=kr>import</span> <span class=nx>CellTooltip</span> <span class=kr>from</span> <span class=s1>&#39;cell-tooltip&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>element</span> <span class=o>=</span> <span class=nb>document</span><span class=p>.</span><span class=nx>querySelector</span><span class=p>&lt;</span><span class=nt>HTMLElement</span><span class=p>&gt;(</span><span class=s1>&#39;#btn&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=k>if</span> <span class=p>(</span><span class=nx>element</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>CellTooltip</span><span class=p>.</span><span class=nx>getOrCreateInstance</span><span class=p>(</span><span class=nx>element</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 批量初始化\n</span></span></span><span class=line><span class=cl><span class=nx>Tooltip</span><span class=p>.</span><span class=nx>initAll</span><span class=p>(</span><span class=s1>&#39;[data-ct-title]&#39;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=3-浏览器直引umd--iife><span>3) 浏览器直引（UMD / IIFE）</span>\n<a href=#3-%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9b%b4%e5%bc%95umd--iife class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;./dist/cell-tooltip.umd.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=nx>CellTooltip</span><span class=p>.</span><span class=nx>initAll</span><span class=p>(</span><span class=s1>&#39;[data-ct-title]&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=配置项><span>配置项</span>\n<a href=#%e9%85%8d%e7%bd%ae%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-ts\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-ts data-lang=ts><span class=line><span class=cl><span class=kr>type</span> <span class=nx>TooltipPlacement</span> <span class=o>=</span> <span class=s1>&#39;top&#39;</span> <span class=o>|</span> <span class=s1>&#39;bottom&#39;</span> <span class=o>|</span> <span class=s1>&#39;left&#39;</span> <span class=o>|</span> <span class=s1>&#39;right&#39;</span> <span class=o>|</span> <span class=s1>&#39;auto&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>type</span> <span class=nx>TooltipTrigger</span> <span class=o>=</span> <span class=s1>&#39;hover&#39;</span> <span class=o>|</span> <span class=s1>&#39;focus&#39;</span> <span class=o>|</span> <span class=s1>&#39;click&#39;</span> <span class=o>|</span> <span class=s1>&#39;manual&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>type</span> <span class=nx>TooltipTheme</span> <span class=o>=</span> <span class=s1>&#39;light&#39;</span> <span class=o>|</span> <span class=s1>&#39;dark&#39;</span> <span class=o>|</span> <span class=s1>&#39;auto&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>interface</span> <span class=nx>TooltipOptions</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>title?</span>: <span class=kt>string</span> <span class=o>|</span> <span class=p>(()</span> <span class=o>=&gt;</span> <span class=kt>string</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>  <span class=nx>placement?</span>: <span class=kt>TooltipPlacement</span>\n</span></span><span class=line><span class=cl>  <span class=nx>trigger?</span>: <span class=kt>string</span>\n</span></span><span class=line><span class=cl>  <span class=nx>theme?</span>: <span class=kt>TooltipTheme</span>\n</span></span><span class=line><span class=cl>  <span class=nx>container?</span>: <span class=kt>HTMLElement</span>\n</span></span><span class=line><span class=cl>  <span class=nx>offset?</span>: <span class=kt>number</span>\n</span></span><span class=line><span class=cl>  <span class=nx>html?</span>: <span class=kt>boolean</span>\n</span></span><span class=line><span class=cl>  <span class=nx>delay?</span>: <span class=kt>number</span> <span class=o>|</span> <span class=p>{</span> <span class=nx>show?</span>: <span class=kt>number</span><span class=p>;</span> <span class=nx>hide?</span>: <span class=kt>number</span> <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><ul><li><code>title</code>：提示内容；可传字符串或函数</li><li><code>placement</code>：位置；<code>auto</code> 会按可用空间自动选择</li><li><code>trigger</code>：触发方式，支持空格组合（例如 <code>\"hover focus\"</code>）</li><li><code>theme</code>：主题；支持 <code>light</code> / <code>dark</code> / <code>auto</code>，默认 <code>dark</code></li><li><code>container</code>：tooltip 挂载容器，默认 <code>document.body</code></li><li><code>offset</code>：目标元素与 tooltip 的间距（像素）</li><li><code>html</code>：是否按 HTML 渲染 <code>title</code></li><li><code>delay</code>：显示/隐藏延迟（毫秒）</li></ul><h2 class=heading-element id=data-属性><span>data 属性</span>\n<a href=#data-%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>data-ct-title</code></li><li><code>data-ct-placement</code></li><li><code>data-ct-trigger</code></li><li><code>data-ct-theme</code></li></ul><p>示例：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>button</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-title</span><span class=o>=</span><span class=s>&#34;Click tooltip&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-trigger</span><span class=o>=</span><span class=s>&#34;click&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-placement</span><span class=o>=</span><span class=s>&#34;right&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=na>data-ct-theme</span><span class=o>=</span><span class=s>&#34;light&#34;</span>\n</span></span><span class=line><span class=cl><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  Click\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>button</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=实例方法><span>实例方法</span>\n<a href=#%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-ts\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-ts data-lang=ts><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Tooltip</span> <span class=kr>from</span> <span class=s1>&#39;cell-tooltip&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>tooltip</span> <span class=o>=</span> <span class=nx>Tooltip</span><span class=p>.</span><span class=nx>getOrCreateInstance</span><span class=p>(</span><span class=nx>element</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>title</span><span class=o>:</span> <span class=s1>&#39;Manual tooltip&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>trigger</span><span class=o>:</span> <span class=s1>&#39;manual&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>})</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>tooltip</span><span class=p>.</span><span class=nx>show</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nx>tooltip</span><span class=p>.</span><span class=nx>hide</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nx>tooltip</span><span class=p>.</span><span class=nx>toggle</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nx>tooltip</span><span class=p>.</span><span class=nx>update</span><span class=p>()</span>\n</span></span><span class=line><span class=cl><span class=nx>tooltip</span><span class=p>.</span><span class=nx>dispose</span><span class=p>()</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 批量初始化（返回 Tooltip 实例数组）\n</span></span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>tooltips</span> <span class=o>=</span> <span class=nx>Tooltip</span><span class=p>.</span><span class=nx>initAll</span><span class=p>(</span><span class=s1>&#39;.demo-btn[data-ct-title]&#39;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=目录><span>目录</span>\n<a href=#%e7%9b%ae%e5%bd%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>src/tooltip.ts</code>：组件核心实现</li><li><code>src/index.ts</code>：导出入口</li><li><code>src/main.ts</code>：示例页面初始化</li><li><code>src/style.css</code>：演示与 tooltip 样式</li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=collection-nav-item rel=prev title=hugo-fixit/cmpt-santa-hat><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/cmpt-santa-hat</span></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-03-30 06:51:12\">更新于 2026-03-30&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/cell-tooltip/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/cell-tooltip/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/cell-tooltip/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/cell-tooltip/ data-title=\"一个轻量化 Tooltip 组件。\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/cell-tooltip/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/cell-tooltip/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/cell-tooltip/ data-title=\"一个轻量化 Tooltip 组件。\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/cell-tooltip/ data-title=\"一个轻量化 Tooltip 组件。\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=post-nav-item rel=prev title=hugo-fixit/cmpt-santa-hat><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/cmpt-santa-hat</a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#特性>特性</a></li><li><a href=#本地运行>本地运行</a></li><li><a href=#快速使用>快速使用</a><ul><li><a href=#1-html>1) HTML</a></li><li><a href=#2-ts>2) TS</a></li><li><a href=#3-浏览器直引umd--iife>3) 浏览器直引（UMD / IIFE）</a></li></ul></li><li><a href=#配置项>配置项</a></li><li><a href=#data-属性>data 属性</a></li><li><a href=#实例方法>实例方法</a></li><li><a href=#目录>目录</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/cell-tooltip/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/cell-tooltip/index.md",
    "content": "# 一个轻量化 Tooltip 组件。\n\n# cell-tooltip\n\n一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap `tooltip.js`，保留常用能力并尽量减少体积与依赖。\n\n## 特性\n\n- 支持触发方式：`hover` / `focus` / `click` / `manual`\n- 支持位置：`top` / `bottom` / `left` / `right` / `auto`\n- 支持延迟配置（`show` / `hide`）\n- 支持 `data-ct-*` 属性初始化\n- 支持实例方法：`show` / `hide` / `toggle` / `update` / `dispose`\n- 内置箭头与基础样式，无第三方依赖\n\n## 本地运行\n\n```bash\npnpm install\npnpm dev\n```\n\n构建库产物：\n\n```bash\npnpm build\n```\n\n构建 Demo：\n\n```bash\npnpm build:demo\n```\n\n预览 Demo：\n\n```bash\npnpm preview\n```\n\n`build` 会输出库产物到 `dist/`，`build:demo` 会输出示例站点到 `dist-demo/`。\n\n## 快速使用\n\n### 1) HTML\n\n```html\n<button\n  id=\"btn\"\n  data-ct-title=\"Hello tooltip\"\n  data-ct-placement=\"top\"\n>\n  Hover me\n</button>\n```\n\n### 2) TS\n\n```ts\nimport CellTooltip from 'cell-tooltip'\n\nconst element = document.querySelector<HTMLElement>('#btn')\n\nif (element) {\n  CellTooltip.getOrCreateInstance(element)\n}\n\n// 批量初始化\nTooltip.initAll('[data-ct-title]')\n```\n\n### 3) 浏览器直引（UMD / IIFE）\n\n```html\n<script src=\"./dist/cell-tooltip.umd.js\"></script>\n<script>\n  CellTooltip.initAll('[data-ct-title]')\n</script>\n```\n\n## 配置项\n\n```ts\ntype TooltipPlacement = 'top' | 'bottom' | 'left' | 'right' | 'auto'\ntype TooltipTrigger = 'hover' | 'focus' | 'click' | 'manual'\ntype TooltipTheme = 'light' | 'dark' | 'auto'\n\ninterface TooltipOptions {\n  title?: string | (() => string)\n  placement?: TooltipPlacement\n  trigger?: string\n  theme?: TooltipTheme\n  container?: HTMLElement\n  offset?: number\n  html?: boolean\n  delay?: number | { show?: number; hide?: number }\n}\n```\n\n- `title`：提示内容；可传字符串或函数\n- `placement`：位置；`auto` 会按可用空间自动选择\n- `trigger`：触发方式，支持空格组合（例如 `\"hover focus\"`）\n- `theme`：主题；支持 `light` / `dark` / `auto`，默认 `dark`\n- `container`：tooltip 挂载容器，默认 `document.body`\n- `offset`：目标元素与 tooltip 的间距（像素）\n- `html`：是否按 HTML 渲染 `title`\n- `delay`：显示/隐藏延迟（毫秒）\n\n## data 属性\n\n- `data-ct-title`\n- `data-ct-placement`\n- `data-ct-trigger`\n- `data-ct-theme`\n\n示例：\n\n```html\n<button\n  data-ct-title=\"Click tooltip\"\n  data-ct-trigger=\"click\"\n  data-ct-placement=\"right\"\n  data-ct-theme=\"light\"\n>\n  Click\n</button>\n```\n\n## 实例方法\n\n```ts\nimport Tooltip from 'cell-tooltip'\n\nconst tooltip = Tooltip.getOrCreateInstance(element, {\n  title: 'Manual tooltip',\n  trigger: 'manual',\n})\n\ntooltip.show()\ntooltip.hide()\ntooltip.toggle()\ntooltip.update()\ntooltip.dispose()\n\n// 批量初始化（返回 Tooltip 实例数组）\nconst tooltips = Tooltip.initAll('.demo-btn[data-ct-title]')\n```\n\n## 目录\n\n- `src/tooltip.ts`：组件核心实现\n- `src/index.ts`：导出入口\n- `src/main.ts`：示例页面初始化\n- `src/style.css`：演示与 tooltip 样式\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/cell-tooltip/  \n\n"
  },
  {
    "path": "projects/lruihao/cos-album/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta name=keywords content='cos-album,cos-bucket'><meta itemprop=name content=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta itemprop=description content=\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta itemprop=datePublished content=\"2019-11-23T12:59:05+00:00\"><meta itemprop=dateModified content=\"2023-02-16T04:56:55+00:00\"><meta itemprop=wordCount content=\"80\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"cos-album,cos-bucket\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/cos-album/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta property=\"og:description\" content=\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2019-11-23T12:59:05+00:00\"><meta property=\"article:modified_time\" content=\"2023-02-16T04:56:55+00:00\"><meta property=\"article:tag\" content=\"cos-album\"><meta property=\"article:tag\" content=\"cos-bucket\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta name=twitter:description content=\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/cos-album/ title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/restful/ title=RESTful><link rel=next type=text/html href=https://lruihao.cn/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/cos-album/index.md title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cos-album\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"cos-album, cos-bucket\",\"wordcount\":80,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/cos-album\\/\",\"datePublished\":\"2019-11-23T12:59:05+00:00\",\"dateModified\":\"2023-02-16T04:56:55+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/cos-album/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/cos-album</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><span class=active title=Lruihao/cos-album>Lruihao/cos-album</span></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/mmt/ class=collection-nav-item rel=prev title=Lruihao/MMT><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>5/51</span><a href=/projects/cos-album/ class=collection-nav-item rel=next title=利用腾讯云为静态页面添加“动态”相册><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/cos-album target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/cos-album<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://img-1256932288.cos-website.ap-chengdu.myqcloud.com target=_blank rel=\"external nofollow noopener noreferrer\">https://img-1256932288.cos-website.ap-chengdu.myqcloud.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2019-11-23 12:59:05\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-11-23>2019-11-23</time></span>&nbsp;<span title=\"更新于 2023-02-16 04:56:55\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-02-16>2023-02-16</time></span>&nbsp;<span title=\"80 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#step1>Step1</a></li><li><a href=#step2>Step2</a></li><li><a href=#params>Params</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-02-16，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=cos-album data-decreased><span>cos-album</span>\n<a href=#cos-album class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Lruihao/cos-album-demo target=_blank rel=\"external nofollow noopener noreferrer\">demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=step1><span>Step1</span>\n<a href=#step1 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/css&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;cos-album.min.css?v=1.1.6&#34;</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;cos-album.min.js?v=1.1.6&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=step2><span>Step2</span>\n<a href=#step2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=k>new</span> <span class=nx>Cosalbum</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;xmlLink&#39;</span><span class=o>:</span> <span class=s1>&#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;prependTo&#39;</span><span class=o>:</span> <span class=s1>&#39;.cos-album&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;viewNum&#39;</span><span class=o>:</span> <span class=mi>8</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;copyUrl&#39;</span><span class=o>:</span> <span class=s1>&#39;//img.lruihao.cn&#39;</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=params><span>Params</span>\n<a href=#params class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>param</th><th style=text-align:left>type</th><th style=text-align:left>default</th><th style=text-align:left>description</th></tr></thead><tbody><tr><td style=text-align:left>xmlLink</td><td style=text-align:left>String</td><td style=text-align:left></td><td style=text-align:left>需要解析的騰訊云COS桶XML鏈接</td></tr><tr><td style=text-align:left>prependTo</td><td style=text-align:left>String</td><td style=text-align:left>&lsquo;body&rsquo;</td><td style=text-align:left>可選解析相冊到某個節點</td></tr><tr><td style=text-align:left>viewNum</td><td style=text-align:left>Number</td><td style=text-align:left>4</td><td style=text-align:left>每個相冊顯示的照片數目</td></tr><tr><td style=text-align:left>copyUrl</td><td style=text-align:left>String</td><td style=text-align:left>href</td><td style=text-align:left>CDN 链接,雙擊複製 URL Since: 1.1.6</td></tr><tr><td style=text-align:left>imgType</td><td style=text-align:left>String</td><td style=text-align:left>[&lsquo;jpg&rsquo;, &lsquo;jpeg&rsquo;, &lsquo;png&rsquo;, &lsquo;gif&rsquo;, &lsquo;svg&rsquo;]</td><td style=text-align:left>图片類型 Since: 1.1.6</td></tr><tr><td style=text-align:left>videoType</td><td style=text-align:left>String</td><td style=text-align:left>[&lsquo;mp4&rsquo;, &lsquo;mp3&rsquo;, &lsquo;avi&rsquo;, &lsquo;mov&rsquo;, &lsquo;qt&rsquo;]</td><td style=text-align:left>視頻類型 Since: 1.1.6</td></tr></tbody></table></div><blockquote><p><a href=https://lruihao.cn/posts/cos-album.html target=_blank rel=\"external nofollow noopener noreferrer\"><strong>详细说明</strong><i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/mmt/ class=collection-nav-item rel=prev title=Lruihao/MMT><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/MMT</span>\n</a><a href=/projects/cos-album/ class=collection-nav-item rel=next title=利用腾讯云为静态页面添加“动态”相册><span>利用腾讯云为静态页面添加“动态”相册</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-02-16 04:56:55\">更新于 2023-02-16&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/cos-album/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/cos-album/blob/master/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/cos-album/edit/master/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/cos-album/ data-title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\" data-hashtags=cos-album,cos-bucket><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/cos-album/ data-hashtag=cos-album><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/cos-album/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/cos-album/ data-title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/cos-album/ data-title=\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cos-album/ class=post-tag title=\"标签 - cos-album\">cos-album</a><a href=/tags/cos-bucket/ class=post-tag title=\"标签 - cos-bucket\">cos-bucket</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/restful/ class=post-nav-item rel=prev title=RESTful><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>RESTful</a><a href=/projects/cos-album/ class=post-nav-item rel=next title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#step1>Step1</a></li><li><a href=#step2>Step2</a></li><li><a href=#params>Params</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/cos-album/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/cos-album/index.md",
    "content": "# 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\n\n# cos-album\n[demo](https://github.com/Lruihao/cos-album-demo)\n\n## Step1\n```html\n<link rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.min.css?v=1.1.6\">\n<script type=\"text/javascript\" src=\"cos-album.min.js?v=1.1.6\"></script>\n```\n\n## Step2\n```js\n<script type=\"text/javascript\">\n  new Cosalbum({\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n    'prependTo': '.cos-album',\n    'viewNum': 8,\n    'copyUrl': '//img.lruihao.cn'\n  });\n</script>\n```\n\n## Params\n| param     | type   | default | description                       |\n| :-------- | :----- | :------ | :-------------------------------- |\n| xmlLink   | String |         | 需要解析的騰訊云COS桶XML鏈接        |\n| prependTo | String | 'body'  | 可選解析相冊到某個節點              |\n| viewNum   | Number |   4     | 每個相冊顯示的照片數目              |\n| copyUrl   | String |  href   | CDN 链接,雙擊複製 URL Since: 1.1.6 |\n| imgType   | String | ['jpg', 'jpeg', 'png', 'gif', 'svg'] | 图片類型 Since: 1.1.6 |\n| videoType | String | ['mp4', 'mp3', 'avi', 'mov', 'qt']   | 視頻類型 Since: 1.1.6 |\n\n> [**详细说明**](https://lruihao.cn/posts/cos-album.html)  \n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/cos-album/  \n\n"
  },
  {
    "path": "projects/lruihao/coverview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>🛠 Create awesome cover images for your blog posts quickly. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta itemprop=description content=\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\"><meta itemprop=datePublished content=\"2024-03-28T06:14:16+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:25+00:00\"><meta itemprop=wordCount content=\"146\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub,开源项目\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/coverview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta property=\"og:description\" content=\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-03-28T06:14:16+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:25+00:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"🛠 Create awesome cover images for your blog posts quickly.\"><meta name=twitter:description content=\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/coverview/ title=\"🛠 Create awesome cover images for your blog posts quickly. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/c6bc2d5/ title=写文档时英文标题什么时候要大写？><link rel=next type=text/html href=https://lruihao.cn/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/coverview/index.md title=\"🛠 Create awesome cover images for your blog posts quickly. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/coverview\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":146,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/coverview\\/\",\"datePublished\":\"2024-03-28T06:14:16+00:00\",\"dateModified\":\"2026-05-06T03:02:25+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/coverview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/CoverView</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><span class=active title=Lruihao/CoverView>Lruihao/CoverView</span></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/kityminder-core/ class=collection-nav-item rel=prev title=Lruihao/kityminder-core><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>27/51</span><a href=/projects/coverview/ class=collection-nav-item rel=next title=用五天时间给自己制作一个封面图生成工具><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>🛠 Create awesome cover images for your blog posts quickly.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/CoverView target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://coverview.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://coverview.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-03-28 06:14:16\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-03-28>2024-03-28</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:25\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"146 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"🛠 Create awesome cover images for your blog posts quickly.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#-变更通知>💥 变更通知</a></li><li><a href=#-特性>⚡ 特性</a></li><li><a href=#-开发>👩‍💻 开发</a></li><li><a href=#-贡献>👇 贡献</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=coverview data-decreased><span>CoverView</span>\n<a href=#coverview class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>👉 简体中文说明 | <a href=README.en.md>English README</a></p><p><a href=https://github.com/Lruihao/CoverView target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/open-source_18217824114769177106.svg alt=用爱发电></a></p><blockquote><p>该项目基于原始的 <a href=https://github.com/rutikwankhade/CoverView target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></blockquote><p>现在为你的博客创建封面图片变得非常简单。</p><p><img loading=lazy src=/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png alt=cover_169570 height=840 width=1600></p><h2 class=heading-element id=-变更通知><span>💥 变更通知</span>\n<a href=#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：</p><ul><li>修复了具有图案背景的图像无法下载的问题</li><li>修复了无法下载和上传 SVG 格式图标的问题</li><li>修复了移动端样式混乱的问题</li><li>修复了 <code>重置所有</code> 按钮功能异常的问题</li><li>添加了 ESLint 支持</li><li>添加了 I18n 支持</li><li>增强了 Unsplash 图像搜索功能</li><li>添加了下载图像格式选择（PNG/JPEG/SVG/Blob），并支持 JPEG 图像质量调整</li><li>优化了图像下载速度</li><li>优化 Devicons 以多色 SVG 图标显示</li><li>添加了更多字体和平台支持</li><li>统一了不同主题下下载图像的尺寸</li><li>等等&mldr;</li></ul><h2 class=heading-element id=-特性><span>⚡ 特性</span>\n<a href=#-%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>🚀 超快速且易于使用</li><li>🌈 7 种不同主题，多种字体</li><li>🌠 100+ 开发图标，并提供上传自定义图标选项</li><li>✨ 15+ 种不同背景图案</li><li>💾 基于博客平台或常用尺寸的封面大小<ul><li><a href=https://hashnode.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Hashnode<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://dev.to/ target=_blank rel=\"external nofollow noopener noreferrer\">Dev.to<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">Hugo FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://juejin.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">稀土掘金<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></li></ul><h2 class=heading-element id=-开发><span>👩‍💻 开发</span>\n<a href=#-%e5%bc%80%e5%8f%91 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本项目主要使用以下技术栈：</p><ul><li><a href=https://reactjs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">React 19<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://tailwindcss.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Tailwind CSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://vite.dev/ target=_blank rel=\"external nofollow noopener noreferrer\">Vite<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><ol><li><p>下载项目并安装依赖：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>git clone https://github.com/Lruihao/CoverView.git\n</span></span><span class=line><span class=cl><span class=nb>cd</span> CoverView/\n</span></span><span class=line><span class=cl>pnpm i</span></span></code></pre></td></tr></table></div></div></div></li><li><p>从 <a href=https://unsplash.com/developers target=_blank rel=\"external nofollow noopener noreferrer\">Unsplash API<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 获取访问密钥。</p></li><li><p>在 <code>.env.local</code> 文件中添加 <code>REACT_APP_UNSPLASH_ACCESS_KEY</code> 环境变量。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl><span class=c1># https://unsplash.com/ Access Key</span>\n</span></span><span class=line><span class=cl><span class=nv>REACT_APP_UNSPLASH_ACCESS_KEY</span><span class=o>=</span><span class=s2>&#34;your_access_key_here&#34;</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>运行以下命令开始项目：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-shell\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-shell data-lang=shell><span class=line><span class=cl>pnpm dev</span></span></code></pre></td></tr></table></div></div></div></li></ol><h2 class=heading-element id=-贡献><span>👇 贡献</span>\n<a href=#-%e8%b4%a1%e7%8c%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>欢迎提交拉取请求。对于重大更改，请先打开一个问题来讨论你想要更改的内容。</p><ol><li>克隆它 (<a href=https://github.com/Lruihao/CoverView/fork target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/Lruihao/CoverView/fork<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>)</li><li>创建你的功能分支 (<code>git checkout -b feature/fooBar</code>)</li><li>提交你的更改 (<code>git commit -am 'Add some fooBar'</code>)</li><li>推送到分支 (<code>git push origin feature/fooBar</code>)</li><li>创建一个新的拉取请求</li></ol><h2 class=heading-element id=-致谢><span>🙏 致谢</span>\n<a href=#-%e8%87%b4%e8%b0%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/rutikwankhade target=_blank rel=\"external nofollow noopener noreferrer\">Rutik Wankhade<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>（原始 CoverView）</li><li><a href=https://github.com/1904labs/dom-to-image-more target=_blank rel=\"external nofollow noopener noreferrer\">dom-to-image-more<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://www.heropatterns.com/ target=_blank rel=\"external nofollow noopener noreferrer\">Hero Patterns<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/devicons/devicon target=_blank rel=\"external nofollow noopener noreferrer\">Devicons<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/excalidraw/virgil target=_blank rel=\"external nofollow noopener noreferrer\">Font Virgil<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/mmt-webfont target=_blank rel=\"external nofollow noopener noreferrer\">Font MMT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><p>如果你觉得这个项目有用，请别忘了留下一个 ⭐。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/kityminder-core/ class=collection-nav-item rel=prev title=Lruihao/kityminder-core><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/kityminder-core</span>\n</a><a href=/projects/coverview/ class=collection-nav-item rel=next title=用五天时间给自己制作一个封面图生成工具><span>用五天时间给自己制作一个封面图生成工具</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:25\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/coverview/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/CoverView/blob/master/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/CoverView/edit/master/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/coverview/ data-title=\"🛠 Create awesome cover images for your blog posts quickly.\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/coverview/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/coverview/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/coverview/ data-title=\"🛠 Create awesome cover images for your blog posts quickly.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/coverview/ data-title=\"🛠 Create awesome cover images for your blog posts quickly.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/c6bc2d5/ class=post-nav-item rel=prev title=写文档时英文标题什么时候要大写？><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>写文档时英文标题什么时候要大写？</a><a href=/projects/coverview/ class=post-nav-item rel=next title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#-变更通知>💥 变更通知</a></li><li><a href=#-特性>⚡ 特性</a></li><li><a href=#-开发>👩‍💻 开发</a></li><li><a href=#-贡献>👇 贡献</a></li><li><a href=#-致谢>🙏 致谢</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/coverview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/coverview/index.md",
    "content": "# 🛠 Create awesome cover images for your blog posts quickly.\n\n# CoverView\n\n👉 简体中文说明 | [English README](README.en.md)\n\n[![用爱发电](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/Lruihao/CoverView)\n\n> 该项目基于原始的 [CoverView](https://github.com/rutikwankhade/CoverView)。\n\n现在为你的博客创建封面图片变得非常简单。\n\n![cover_169570](https://github.com/user-attachments/assets/8032fecb-4ae4-45b9-9af7-dbed801651d1)\n\n## 💥 变更通知\n\n自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强：\n\n- 修复了具有图案背景的图像无法下载的问题\n- 修复了无法下载和上传 SVG 格式图标的问题\n- 修复了移动端样式混乱的问题\n- 修复了 `重置所有` 按钮功能异常的问题\n- 添加了 ESLint 支持\n- 添加了 I18n 支持\n- 增强了 Unsplash 图像搜索功能\n- 添加了下载图像格式选择（PNG/JPEG/SVG/Blob），并支持 JPEG 图像质量调整\n- 优化了图像下载速度\n- 优化 Devicons 以多色 SVG 图标显示\n- 添加了更多字体和平台支持\n- 统一了不同主题下下载图像的尺寸\n- 等等...\n\n## ⚡ 特性\n\n- 🚀 超快速且易于使用\n- 🌈 7 种不同主题，多种字体\n- 🌠 100+ 开发图标，并提供上传自定义图标选项\n- ✨ 15+ 种不同背景图案\n- 💾 基于博客平台或常用尺寸的封面大小\n  - [Hashnode](https://hashnode.com/)\n  - [Dev.to](https://dev.to/)\n  - [Hugo FixIt](https://github.com/hugo-fixit/FixIt)\n  - [稀土掘金](https://juejin.cn/)\n\n## 👩‍💻 开发\n\n本项目主要使用以下技术栈：\n\n- [React 19](https://reactjs.org/)\n- [Tailwind CSS](https://tailwindcss.com/)\n- [Vite](https://vite.dev/)\n\n1. 下载项目并安装依赖：\n\n    ```shell\n    git clone https://github.com/Lruihao/CoverView.git\n    cd CoverView/\n    pnpm i\n    ```\n\n2. 从 [Unsplash API](https://unsplash.com/developers) 获取访问密钥。\n3. 在 `.env.local` 文件中添加 `REACT_APP_UNSPLASH_ACCESS_KEY` 环境变量。\n\n    ```shell\n    # https://unsplash.com/ Access Key\n    REACT_APP_UNSPLASH_ACCESS_KEY=\"your_access_key_here\"\n    ```\n\n4. 运行以下命令开始项目：\n\n    ```shell\n    pnpm dev\n    ```\n\n## 👇 贡献\n\n欢迎提交拉取请求。对于重大更改，请先打开一个问题来讨论你想要更改的内容。\n\n1. 克隆它 (<https://github.com/Lruihao/CoverView/fork>)\n2. 创建你的功能分支 (`git checkout -b feature/fooBar`)\n3. 提交你的更改 (`git commit -am 'Add some fooBar'`)\n4. 推送到分支 (`git push origin feature/fooBar`)\n5. 创建一个新的拉取请求\n\n## 🙏 致谢\n\n- [Rutik Wankhade](https://github.com/rutikwankhade)（原始 CoverView）\n- [dom-to-image-more](https://github.com/1904labs/dom-to-image-more)\n- [Hero Patterns](https://www.heropatterns.com/)\n- [Devicons](https://github.com/devicons/devicon)\n- [Font Virgil](https://github.com/excalidraw/virgil)\n- [Font MMT](https://github.com/Lruihao/mmt-webfont)\n\n如果你觉得这个项目有用，请别忘了留下一个 ⭐。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/coverview/  \n\n"
  },
  {
    "path": "projects/lruihao/el-table-sticky/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta name=keywords content='el-table,el-table-sticky,element-ui,v-height-adaptive,v-sticky-footer,v-sticky-h-scroll,v-sticky-header,vue,vue-directive,vue2'><meta itemprop=name content=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta itemprop=description content=\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=wordCount content=\"323\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"el-table,el-table-sticky,element-ui,v-height-adaptive,v-sticky-footer,v-sticky-h-scroll,v-sticky-header,vue,vue-directive,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta property=\"og:description\" content=\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-06-14T14:03:49+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:19+00:00\"><meta property=\"article:tag\" content=\"el-table\"><meta property=\"article:tag\" content=\"el-table-sticky\"><meta property=\"article:tag\" content=\"element-ui\"><meta property=\"article:tag\" content=\"v-height-adaptive\"><meta property=\"article:tag\" content=\"v-sticky-footer\"><meta property=\"article:tag\" content=\"v-sticky-h-scroll\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta name=twitter:description content=\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/el-table-sticky/ title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/gen-router/ title=\"使用 Node.js 自动创建 Vue 的路由\"><link rel=next type=text/html href=https://lruihao.cn/posts/el-backtop-fix/ title=\"用魔法打败魔法 - ElBacktop Fix\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/el-table-sticky/index.md title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/el-table-sticky\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"el-table, el-table-sticky, element-ui, v-height-adaptive, v-sticky-footer, v-sticky-h-scroll, v-sticky-header, vue, vue-directive, vue2\",\"wordcount\":323,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/el-table-sticky\\/\",\"datePublished\":\"2023-06-14T14:03:49+00:00\",\"dateModified\":\"2026-05-06T03:02:19+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/el-table-sticky/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/el-table-sticky</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><span class=active title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</span></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-mmt-netease><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>21/51</span><a href=/projects/lruihao/vue-el-demo/ class=collection-nav-item rel=next title=Lruihao/vue-el-demo><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/el-table-sticky target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/el-table-sticky<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://www.npmjs.com/package/@cell-x/el-table-sticky target=_blank rel=\"external nofollow noopener noreferrer\">https://www.npmjs.com/package/@cell-x/el-table-sticky<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-06-14 14:03:49\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-06-14>2023-06-14</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:19\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"323 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#背景>背景</a></li><li><a href=#特性>特性</a></li><li><a href=#安装>安装</a></li><li><a href=#注册指令>注册指令</a></li><li><a href=#使用>使用</a></li><li><a href=#指令参数>指令参数</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#project-setup>Project setup</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=el-table-sticky data-decreased><span>el-table-sticky</span>\n<a href=#el-table-sticky class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.github.io/el-table-sticky/ target=_blank rel=\"external nofollow noopener noreferrer\">在线示例<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。</p></blockquote><h2 class=heading-element id=背景><span>背景</span>\n<a href=#%e8%83%8c%e6%99%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。</p><p><strong>Element UI 的解决办法</strong>：通过设置 <code>max-height</code> 或者 <code>height</code> 属性来实现上述需求。</p><p><strong>Element UI 的解决不足点</strong>：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。</p><p>为了解决以上痛点/需求，减少开发和维护成本，于是就有了这个插件，详见 <a href=http://lruihao.cn/projects/el-table-sticky/ target=_blank rel=\"external nofollow noopener noreferrer\">思路分析<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><h2 class=heading-element id=特性><span>特性</span>\n<a href=#%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><code>v-sticky-*</code> 指令依赖于 <code>position: sticky</code> 属性，不支持 IE 浏览器。</p><ul><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持表头吸顶 (v-sticky-header)</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持表尾合计行吸底 (v-sticky-footer)</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持横向滚动条吸底 (v-sticky-scroller)</li><li data-task=x title=已完成><i class=\"checkbox-icon fa-solid fa-check-square\" aria-hidden=true></i>支持高度自适应 (v-height-adaptive)</li></ul><h2 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install @cell-x/el-table-sticky</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=注册指令><span>注册指令</span>\n<a href=#%e6%b3%a8%e5%86%8c%e6%8c%87%e4%bb%a4 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>全局注册指令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=nx>elTableSticky</span> <span class=nx>from</span> <span class=s1>&#39;@cell-x/el-table-sticky&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>elTableSticky</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 或者\n</span></span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>elTableSticky</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyHeader</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 吸顶偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n</span></span></span><span class=line><span class=cl>    <span class=nx>offsetTop</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 滚动条吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n</span></span></span><span class=line><span class=cl>    <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyFooter</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n</span></span></span><span class=line><span class=cl>    <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyScroller</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n</span></span></span><span class=line><span class=cl>    <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>HeightAdaptive</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// 底部偏移量，只能是数字型\n</span></span></span><span class=line><span class=cl>    <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>})</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>局部注册指令：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyHeader</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyFooter</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>StickyScroller</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>HeightAdaptive</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;@cell-x/el-table-sticky&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>directives</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>StickyHeader</span><span class=o>:</span> <span class=k>new</span> <span class=nx>StickyHeader</span><span class=p>({</span> <span class=nx>offsetTop</span><span class=o>:</span> <span class=mi>0</span><span class=p>,</span> <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span> <span class=p>}).</span><span class=nx>init</span><span class=p>(),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>StickyFooter</span><span class=o>:</span> <span class=k>new</span> <span class=nx>StickyFooter</span><span class=p>({</span> <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span> <span class=p>}).</span><span class=nx>init</span><span class=p>(),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>StickyScroller</span><span class=o>:</span> <span class=k>new</span> <span class=nx>StickyScroller</span><span class=p>({</span> <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span> <span class=p>}).</span><span class=nx>init</span><span class=p>(),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>HeightAdaptive</span><span class=o>:</span> <span class=k>new</span> <span class=nx>HeightAdaptive</span><span class=p>({</span> <span class=nx>offsetBottom</span><span class=o>:</span> <span class=mi>0</span> <span class=p>}).</span><span class=nx>init</span><span class=p>(),</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=使用><span>使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>el-table</span> <span class=na>v-sticky-header</span><span class=p>&gt;</span>...<span class=p>&lt;/</span><span class=nt>el-table</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>el-table</span> <span class=na>v-sticky-footer</span><span class=p>&gt;</span>...<span class=p>&lt;/</span><span class=nt>el-table</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>el-table</span> <span class=na>v-sticky-scroller</span><span class=p>&gt;</span>...<span class=p>&lt;/</span><span class=nt>el-table</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>el-table</span> <span class=na>v-height-adaptive</span><span class=p>&gt;</span>...<span class=p>&lt;/</span><span class=nt>el-table</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=指令参数><span>指令参数</span>\n<a href=#%e6%8c%87%e4%bb%a4%e5%8f%82%e6%95%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>指令</th><th>说明</th><th>修饰符</th><th>类型</th><th>默认值</th></tr></thead><tbody><tr><td><code>v-sticky-header</code></td><td>表头吸顶指令</td><td><code>.always</code></td><td><code>Object{Number, String}</code></td><td>offsetTop: 0, offsetBottom: 0</td></tr><tr><td><code>v-sticky-footer</code></td><td>表尾合计行吸底指令</td><td><code>.always</code></td><td><code>Object{Number, String}</code></td><td>offsetBottom: 0</td></tr><tr><td><code>v-sticky-scroller</code></td><td>横向滚动条吸底指令</td><td><code>.always</code></td><td><code>Object{Number, String}</code></td><td>offsetBottom: 0</td></tr><tr><td><code>v-height-adaptive</code></td><td>高度自适应指令</td><td>-</td><td><code>Object{Number}</code></td><td>offsetBottom: 0</td></tr></tbody></table></div><h2 class=heading-element id=注意事项><span>注意事项</span>\n<a href=#%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><code>v-sticky-header</code> 和 <code>v-sticky-footer</code> 已内置滚动条吸底功能，无需重复使用 <code>v-sticky-scroller</code> 指令</li><li>当 <code>v-sticky-header</code> 和 <code>v-sticky-footer</code> 同时使用时，滚动条 <code>offsetBottom</code> 以 <code>v-sticky-footer</code> 为准</li><li>横向滚动条默认显示方式为 <code>hover</code>，可通过设置修饰符 <code>.always</code> 改为一直显示</li><li><code>v-height-adaptive</code> 指令不依赖于 <code>position: sticky</code> 属性，可单独使用</li></ul><h2 class=heading-element id=project-setup><span>Project setup</span>\n<a href=#project-setup class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>yarn install\n</span></span><span class=line><span class=cl><span class=c1># Compiles and hot-reloads for development</span>\n</span></span><span class=line><span class=cl>yarn serve\n</span></span><span class=line><span class=cl><span class=c1># Compiles and minifies for production</span>\n</span></span><span class=line><span class=cl>yarn build\n</span></span><span class=line><span class=cl><span class=c1># Compiles and minifies for production with demo</span>\n</span></span><span class=line><span class=cl>yarn build:demo\n</span></span><span class=line><span class=cl><span class=c1># Lints and fixes files</span>\n</span></span><span class=line><span class=cl>yarn lint</span></span></code></pre></td></tr></table></div></div></div><p>Customize configuration see <a href=https://cli.vuejs.org/config/ target=_blank rel=\"external nofollow noopener noreferrer\">Configuration Reference<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>.</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=collection-nav-item rel=prev title=hugo-fixit/shortcode-mmt-netease><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/shortcode-mmt-netease</span>\n</a><a href=/projects/lruihao/vue-el-demo/ class=collection-nav-item rel=next title=Lruihao/vue-el-demo><span>Lruihao/vue-el-demo</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:19\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/el-table-sticky/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/el-table-sticky/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/el-table-sticky/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/el-table-sticky/ data-title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\" data-hashtags=el-table,el-table-sticky,element-ui,v-height-adaptive,v-sticky-footer,v-sticky-h-scroll,v-sticky-header,vue,vue-directive,vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/el-table-sticky/ data-hashtag=el-table><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/el-table-sticky/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/el-table-sticky/ data-title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/el-table-sticky/ data-title=\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/el-table/ class=post-tag title=\"标签 - el-table\">el-table</a><a href=/tags/el-table-sticky/ class=post-tag title=\"标签 - el-table-sticky\">el-table-sticky</a><a href=/tags/element-ui/ class=post-tag title=\"标签 - element-ui\">element-ui</a><a href=/tags/v-height-adaptive/ class=post-tag title=\"标签 - v-height-adaptive\">v-height-adaptive</a><a href=/tags/v-sticky-footer/ class=post-tag title=\"标签 - v-sticky-footer\">v-sticky-footer</a><a href=/tags/v-sticky-h-scroll/ class=post-tag title=\"标签 - v-sticky-h-scroll\">v-sticky-h-scroll</a><a href=/tags/v-sticky-header/ class=post-tag title=\"标签 - v-sticky-header\">v-sticky-header</a><a href=/tags/vue/ class=post-tag title=\"标签 - vue\">vue</a><a href=/tags/vue-directive/ class=post-tag title=\"标签 - vue-directive\">vue-directive</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/gen-router/ class=post-nav-item rel=prev title=\"使用 Node.js 自动创建 Vue 的路由\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>使用 Node.js 自动创建 Vue 的路由</a><a href=/posts/el-backtop-fix/ class=post-nav-item rel=next title=\"用魔法打败魔法 - ElBacktop Fix\">用魔法打败魔法 - ElBacktop Fix<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#背景>背景</a></li><li><a href=#特性>特性</a></li><li><a href=#安装>安装</a></li><li><a href=#注册指令>注册指令</a></li><li><a href=#使用>使用</a></li><li><a href=#指令参数>指令参数</a></li><li><a href=#注意事项>注意事项</a></li><li><a href=#project-setup>Project setup</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/el-table-sticky/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/el-table-sticky/index.md",
    "content": "# A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\n\n# el-table-sticky\n\n[在线示例](https://lruihao.github.io/el-table-sticky/)\n\n> 一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\n\n## 背景\n\nElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\n\n**Element UI 的解决办法**：通过设置 `max-height` 或者 `height` 属性来实现上述需求。\n\n**Element UI 的解决不足点**：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。\n\n为了解决以上痛点/需求，减少开发和维护成本，于是就有了这个插件，详见 [思路分析](http://lruihao.cn/projects/el-table-sticky/)。\n\n## 特性\n\n`v-sticky-*` 指令依赖于 `position: sticky` 属性，不支持 IE 浏览器。\n\n- [x] 支持表头吸顶 (v-sticky-header)\n- [x] 支持表尾合计行吸底 (v-sticky-footer)\n- [x] 支持横向滚动条吸底 (v-sticky-scroller)\n- [x] 支持高度自适应 (v-height-adaptive)\n\n## 安装\n\n```bash\nnpm install @cell-x/el-table-sticky\n```\n\n## 注册指令\n\n全局注册指令：\n\n```js\nimport elTableSticky from '@cell-x/el-table-sticky'\n\nVue.use(elTableSticky)\n\n// 或者\n\nVue.use(elTableSticky, {\n  StickyHeader: {\n    // 吸顶偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n    offsetTop: 0,\n    // 滚动条吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n    offsetBottom: 0,\n  },\n  StickyFooter: {\n    // 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n    offsetBottom: 0,\n  },\n  StickyScroller: {\n    // 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等\n    offsetBottom: 0,\n  },\n  HeightAdaptive: {\n    // 底部偏移量，只能是数字型\n    offsetBottom: 0,\n  }\n})\n```\n\n局部注册指令：\n\n```js\nimport {\n  StickyHeader,\n  StickyFooter,\n  StickyScroller,\n  HeightAdaptive,\n} from '@cell-x/el-table-sticky'\n\nexport default {\n  directives: {\n    StickyHeader: new StickyHeader({ offsetTop: 0, offsetBottom: 0 }).init(),\n    StickyFooter: new StickyFooter({ offsetBottom: 0 }).init(),\n    StickyScroller: new StickyScroller({ offsetBottom: 0 }).init(),\n    HeightAdaptive: new HeightAdaptive({ offsetBottom: 0 }).init(),\n  }\n}\n```\n\n## 使用\n\n```html\n<el-table v-sticky-header>...</el-table>\n<el-table v-sticky-footer>...</el-table>\n<el-table v-sticky-scroller>...</el-table>\n<el-table v-height-adaptive>...</el-table>\n```\n\n## 指令参数\n\n| 指令                | 说明               | 修饰符    | 类型                     | 默认值                        |\n| ------------------- | ------------------ | --------- | ------------------------ | ----------------------------- |\n| `v-sticky-header`   | 表头吸顶指令       | `.always` | `Object{Number, String}` | offsetTop: 0, offsetBottom: 0 |\n| `v-sticky-footer`   | 表尾合计行吸底指令 | `.always` | `Object{Number, String}` | offsetBottom: 0               |\n| `v-sticky-scroller` | 横向滚动条吸底指令 | `.always` | `Object{Number, String}` | offsetBottom: 0               |\n| `v-height-adaptive` | 高度自适应指令     | -         | `Object{Number}`         | offsetBottom: 0               |\n\n## 注意事项\n\n- `v-sticky-header` 和 `v-sticky-footer` 已内置滚动条吸底功能，无需重复使用 `v-sticky-scroller` 指令\n- 当 `v-sticky-header` 和 `v-sticky-footer` 同时使用时，滚动条 `offsetBottom` 以 `v-sticky-footer` 为准\n- 横向滚动条默认显示方式为 `hover`，可通过设置修饰符 `.always` 改为一直显示\n- `v-height-adaptive` 指令不依赖于 `position: sticky` 属性，可单独使用\n\n## Project setup\n\n```bash\nyarn install\n# Compiles and hot-reloads for development\nyarn serve\n# Compiles and minifies for production\nyarn build\n# Compiles and minifies for production with demo\nyarn build:demo\n# Lints and fixes files\nyarn lint\n```\n\nCustomize configuration see [Configuration Reference](https://cli.vuejs.org/config/).\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/el-table-sticky/  \n\n"
  },
  {
    "path": "projects/lruihao/hexo-theme-next/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Elegant and powerful theme for Hexo. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Elegant and powerful theme for Hexo.\"><meta itemprop=description content=\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\"><meta itemprop=datePublished content=\"2019-01-31T09:57:45+00:00\"><meta itemprop=dateModified content=\"2023-12-21T02:39:42+00:00\"><meta itemprop=wordCount content=\"467\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub,开源项目\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Elegant and powerful theme for Hexo.\"><meta property=\"og:description\" content=\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2019-01-31T09:57:45+00:00\"><meta property=\"article:modified_time\" content=\"2023-12-21T02:39:42+00:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Elegant and powerful theme for Hexo.\"><meta name=twitter:description content=\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/hexo-theme-next/ title=\"Elegant and powerful theme for Hexo. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/jicheng/ title=\"java 继承 test\"><link rel=next type=text/html href=https://lruihao.cn/posts/renative/ title=还乡><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/hexo-theme-next/index.md title=\"Elegant and powerful theme for Hexo. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Elegant and powerful theme for Hexo.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/hexo-theme-next\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":467,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/hexo-theme-next\\/\",\"datePublished\":\"2019-01-31T09:57:45+00:00\",\"dateModified\":\"2023-12-21T02:39:42+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/hexo-theme-next/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/hexo-theme-next</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><span class=active title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</span></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/font-mmt/ class=collection-nav-item rel=prev title=沐目体><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>3/51</span><a href=/projects/lruihao/mmt/ class=collection-nav-item rel=next title=Lruihao/MMT><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Elegant and powerful theme for Hexo.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/hexo-theme-next target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/hexo-theme-next<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-31 09:57:45\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-31>2019-01-31</time></span>&nbsp;<span title=\"更新于 2023-12-21 02:39:42\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-12-21>2023-12-21</time></span>&nbsp;<span title=\"467 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Elegant and powerful theme for Hexo.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#links模板>links模板</a></li><li><a href=#备案信息自定义>备案信息自定义</a></li><li><a href=#文字抖动特效>文字抖动特效</a></li><li><a href=#左下角微信公众号>左下角微信公众号</a></li><li><a href=#相关文章收纳>相关文章收纳</a></li><li><a href=#chat-services>Chat Services</a></li><li><a href=#pdf和mermaid解析模块>pdf和Mermaid解析模块</a></li><li><a href=#模仿csdn转发样式>模仿csdn转发样式</a></li><li><a href=#热度页面>热度页面</a></li><li><a href=#复制按钮样式>复制按钮样式</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2023-12-21，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h1 align=center>hexo-theme-next</h1><blockquote><p><strong>如无必要，不再更新！（2019.09.13）</strong><br>今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将<strong>放弃对next的主题的自定义修改</strong>，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。<br>我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。<br>以下仍为当前博客使用主题，lib资源已打包github。</p></blockquote><blockquote><p>基于<a href=https://github.com/theme-next/hexo-theme-next target=_blank rel=\"external nofollow noopener noreferrer\">hexo-theme-next 6.0+<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo => <a href=https://theme-next.org target=_blank rel=\"external nofollow noopener noreferrer\">https://theme-next.org<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>记录一下折腾过程，修改内容以<a href=https://lruihao.cn/posts/hexo-theme-next.html target=_blank rel=\"external nofollow noopener noreferrer\">博採眾長<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见<a href=https://lruihao.cn/categories/hexo/ target=_blank rel=\"external nofollow noopener noreferrer\">hexo分类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。\n<strong>主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值</strong></p></blockquote><p>主要的几个自定义文件</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>_config.swig                                 #主题配置文件 相关账户信息自己注册替换\n</span></span><span class=line><span class=cl>\\layout\\custom\\head.swig                     #在头部自定义加入标签\n</span></span><span class=line><span class=cl>\\layout\\custom\\google_adsense.swig           #谷歌广告模块，内有注释暂时弃用\n</span></span><span class=line><span class=cl>\\layout\\_layout.swig                         #主布局\n</span></span><span class=line><span class=cl>\\layout\\_macro\\post.swig                     #文章布局\n</span></span><span class=line><span class=cl>\\layout\\_macro\\post-copyright.swig           #文章版权\n</span></span><span class=line><span class=cl>\\layout\\_macro\\siderbar.swig                 #侧栏模板\n</span></span><span class=line><span class=cl>\\layout\\_third-party\\copy-code.swig          #复制按钮\n</span></span><span class=line><span class=cl>\\layout\\_partials\\comments.swig              #评论主模板\n</span></span><span class=line><span class=cl>\\layout\\_partials\\footer.swig                #底部模板#该模块在layout.swig引入，用于在body自定义标签\n</span></span><span class=line><span class=cl>\\layout\\_partials\\footer_custom.swig         #footer自定义文件\n</span></span><span class=line><span class=cl>\\layout\\_third-party\\custom.swig             #该模块在layout.swig引入用于在body自定义标签\n</span></span><span class=line><span class=cl>\\source\\css\\_custom\\customs.styl             #主要用户自定义样式表\n</span></span><span class=line><span class=cl>\\source\\fonts\\                               #引入了一些我的手写体及外部字体\n</span></span><span class=line><span class=cl>\\scripts\\qcloudcdn.js                        #腾讯云cos桶刷新缓存的脚本，不需要可删掉[^1]       </span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p><a href=https://lruihao.cn/posts/cos-hexo.html#CDN%E5%88%B7%E6%96%B0 target=_blank rel=\"external nofollow noopener noreferrer\">^1<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=初步安装 data-decreased><span>初步安装</span>\n<a href=#%e5%88%9d%e6%ad%a5%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>安装整个改过的主题,然后下载相应的<a href=https://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1 target=_blank rel=\"external nofollow noopener noreferrer\">lib资源<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> hexo\n</span></span><span class=line><span class=cl>git clone https://github.com/Lruihao/hexo-theme-next themes/next</span></span></code></pre></td></tr></table></div></div></div><p><img loading=lazy src=/images/remote/5ca471ec93167_7627452961481134983.png alt=lib.png height=531 width=556></p><h2 class=heading-element id=更新内容 data-decreased><span>更新内容</span>\n<a href=#%e6%9b%b4%e6%96%b0%e5%86%85%e5%ae%b9 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>更多自定义详见源码</p></blockquote><h2 class=heading-element id=links模板><span>links模板</span>\n<a href=#links%e6%a8%a1%e6%9d%bf class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>自定义友链模板，打开<code>hexo\\themes\\next\\layout\\</code>新建<code>links.swig</code>文件，写下<a href=https://github.com/Lruihao/hexo-theme-next/blob/master/layout/links.swig target=_blank rel=\"external nofollow noopener noreferrer\">links.swig<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>内容后保存。</p></blockquote><ul><li><strong>若未使用懒加载请将模板中的<code>data-original</code>属性改为<code>src</code></strong></li><li><strong>若懒加载无法加载预览图请手动添加<code>src=\"/images/loading.gif\"</code></strong></li><li><strong>若fancybox显示alt内容请更换fancybox2或者将alt属值删除</strong></li></ul><p>然后<code>hexo n page links</code>新建一个页面文章配置写下如下内容：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-XMl data-lang=XMl><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: 友情链接\n</span></span><span class=line><span class=cl>layout: links\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><p>然后在<code>links</code>页面文件夹下面新建文件夹<code>_data</code>，再在里面新建<code>links.yml</code>，内容如下</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>- nickname: 博採眾長      \n</span></span><span class=line><span class=cl>  avatar: http://lruihao.cn/images/avatar.png\n</span></span><span class=line><span class=cl>  site: http://lruihao.cn \n</span></span><span class=line><span class=cl>  info: 一个菜鸟的博客\n</span></span><span class=line><span class=cl>- nickname:                 #友链名称\n</span></span><span class=line><span class=cl>  avatar:                   #友链头像\n</span></span><span class=line><span class=cl>  site:                     #友链地址\n</span></span><span class=line><span class=cl>  info:                     #友链说明</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=备案信息自定义><span>备案信息自定义</span>\n<a href=#%e5%a4%87%e6%a1%88%e4%bf%a1%e6%81%af%e8%87%aa%e5%ae%9a%e4%b9%89 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl># -------------------------------------------------------------\n</span></span><span class=line><span class=cl># footer_custom Settings\n</span></span><span class=line><span class=cl># -------------------------------------------------------------\n</span></span><span class=line><span class=cl>beian:\n</span></span><span class=line><span class=cl>  enable: true\n</span></span><span class=line><span class=cl>  gov: 湘公网安备 43030402000254号\n</span></span><span class=line><span class=cl>  recordcode: 43030402000254\n</span></span><span class=line><span class=cl>  icp: 湘ICP备18020535号</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=文字抖动特效><span>文字抖动特效</span>\n<a href=#%e6%96%87%e5%ad%97%e6%8a%96%e5%8a%a8%e7%89%b9%e6%95%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl><span class=nt>&lt;div</span> <span class=na>class=</span><span class=s>&#34;shaky&#34;</span><span class=nt>&gt;</span>(づ●&#39;◡&#39;●)づ ❥内容区<span class=nt>&lt;/div&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=左下角微信公众号><span>左下角微信公众号</span>\n<a href=#%e5%b7%a6%e4%b8%8b%e8%a7%92%e5%be%ae%e4%bf%a1%e5%85%ac%e4%bc%97%e5%8f%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>\\source\\css\\_custom\\customs.styl  </span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=相关文章收纳><span>相关文章收纳</span>\n<a href=#%e7%9b%b8%e5%85%b3%e6%96%87%e7%ab%a0%e6%94%b6%e7%ba%b3 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>加入H5标签，实现可收纳功能，点击查看详情。</p><h2 class=heading-element id=chat-services><span>Chat Services</span>\n<a href=#chat-services class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>共chatra,tidio,daovoice三个选项，三选一</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl># Chatra Support\n</span></span><span class=line><span class=cl># See: https://chatra.io\n</span></span><span class=line><span class=cl># Dashboard: https://app.chatra.io/settings/general\n</span></span><span class=line><span class=cl>chatra:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  async: true\n</span></span><span class=line><span class=cl>  id: # visit Dashboard to get your ChatraID\n</span></span><span class=line><span class=cl>  #embed: # unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl># Tidio Support\n</span></span><span class=line><span class=cl># See: https://www.tidiochat.com\n</span></span><span class=line><span class=cl># Dashboard: https://www.tidiochat.com/panel/dashboard\n</span></span><span class=line><span class=cl>tidio:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  key: # Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>#在线客服\n</span></span><span class=line><span class=cl>daovoice: true\n</span></span><span class=line><span class=cl>daovoice_app_id: xxxx   # http://www.daovoice.io/</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=pdf和mermaid解析模块><span>pdf和Mermaid解析模块</span>\n<a href=#pdf%e5%92%8cmermaid%e8%a7%a3%e6%9e%90%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.cn/hexo/next-pdf.html target=_blank rel=\"external nofollow noopener noreferrer\">pdf传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-fallback\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-fallback data-lang=fallback><span class=line><span class=cl>pdf:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  # Default height\n</span></span><span class=line><span class=cl>  height: 500px\n</span></span><span class=line><span class=cl>  pdfobject:\n</span></span><span class=line><span class=cl>    cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js\n</span></span><span class=line><span class=cl>    #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl># Mermaid tag\n</span></span><span class=line><span class=cl>mermaid:\n</span></span><span class=line><span class=cl>  enable: false\n</span></span><span class=line><span class=cl>  # Available themes: default | dark | forest | neutral\n</span></span><span class=line><span class=cl>  theme: forest\n</span></span><span class=line><span class=cl>  cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js\n</span></span><span class=line><span class=cl>  #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=模仿csdn转发样式><span>模仿csdn转发样式</span>\n<a href=#%e6%a8%a1%e4%bb%bfcsdn%e8%bd%ac%e5%8f%91%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-diff\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-diff data-lang=diff><span class=line><span class=cl>...\n</span></span><span class=line><span class=cl>   &lt;a class=&#34;post-title-link&#34; href=&#34;{{ url_for(post.path) }}&#34; itemprop=&#34;url&#34;&gt;\n</span></span><span class=line><span class=cl><span class=gi>+    {% if post.repost %}\n</span></span></span><span class=line><span class=cl><span class=gi>+      &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;\n</span></span></span><span class=line><span class=cl><span class=gi>+    {% endif %}\n</span></span></span><span class=line><span class=cl>     {{ post.title | default(__(&#39;post.untitled&#39;))}}\n</span></span><span class=line><span class=cl>   &lt;/a&gt;\n</span></span><span class=line><span class=cl> {% else -%}\n</span></span><span class=line><span class=cl><span class=gi>+  {% if post.repost %}\n</span></span></span><span class=line><span class=cl><span class=gi>+    &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;\n</span></span></span><span class=line><span class=cl><span class=gi>+  {% endif %}\n</span></span></span><span class=line><span class=cl>   {{- post.title -}}\n</span></span><span class=line><span class=cl>...\n</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>.</span><span class=nc>repost</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>color</span><span class=p>:</span> <span class=mh>#5acc79</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border</span><span class=p>:</span> <span class=mi>1</span><span class=kt>px</span> <span class=kc>solid</span> <span class=mh>#e7f4df</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>border-radius</span><span class=p>:</span> <span class=mi>20</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>padding</span><span class=p>:</span> <span class=mi>2</span><span class=kt>px</span> <span class=mi>5</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-size</span><span class=p>:</span> <span class=mi>15</span><span class=kt>px</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-weight</span><span class=p>:</span> <span class=mi>500</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-xml data-lang=xml><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: xxxx\n</span></span><span class=line><span class=cl>repost: true\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><p><a href=https://lruihao.cn/tags/%e4%bb%96%e5%b1%b1%e4%b9%8b%e7%9f%b3/ target=_blank rel=\"external nofollow noopener noreferrer\">预览<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=热度页面><span>热度页面</span>\n<a href=#%e7%83%ad%e5%ba%a6%e9%a1%b5%e9%9d%a2 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>打开<code>hexo\\themes\\next\\layout</code>新建<a href=https://github.com/Lruihao/hexo-theme-next/blob/master/layout/top.swig target=_blank rel=\"external nofollow noopener noreferrer\">top.swig<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>文件，写下如下内容保存：\n其中第36行改成你自己的leancloud的appid和appkey,比如我的是在主题配置文件里面的valine配置下，所以我就写成<code>theme.valine.appid</code>。和我一样就不需要修改，其他自行配置。</p></blockquote><p>然后<code>hexo n page top</code>新建一个页面文章配置写下如下内容，limit表示显示篇数：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-xml\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-XMl data-lang=XMl><span class=line><span class=cl>---\n</span></span><span class=line><span class=cl>title: 热度\n</span></span><span class=line><span class=cl>layout: top\n</span></span><span class=line><span class=cl>limit: 20\n</span></span><span class=line><span class=cl>---</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=复制按钮样式><span>复制按钮样式</span>\n<a href=#%e5%a4%8d%e5%88%b6%e6%8c%89%e9%92%ae%e6%a0%b7%e5%bc%8f class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><img loading=lazy src=/images/remote/5c939bb23853d_1394277611750587208.png alt=lightbtn.png height=96 width=137>\n<img loading=lazy src=/images/remote/5c939bb229bad_17659194004781938388.png alt=nightbtn.png height=96 width=139>\n<img loading=lazy src=/images/remote/5c939bb2385c5_4129344615357223945.png alt=flatbtn.png height=104 width=143>\n<img loading=lazy src=/images/remote/5c939bb238db9_15754403719047901115.png alt=3dbtn.png height=103 width=142></p><blockquote><p>本来只想简单美化一下变成night样式的，后来写完发现3dbtn也挺喜欢的。</p></blockquote><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-java\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-java data-lang=java><span class=line><span class=cl><span class=nl>codeblock</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>#</span><span class=w> </span><span class=n>Manual</span><span class=w> </span><span class=n>define</span><span class=w> </span><span class=n>the</span><span class=w> </span><span class=n>border</span><span class=w> </span><span class=n>radius</span><span class=w> </span><span class=n>in</span><span class=w> </span><span class=n>codeblock</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>#</span><span class=w> </span><span class=n>Leave</span><span class=w> </span><span class=n>it</span><span class=w> </span><span class=n>empty</span><span class=w> </span><span class=k>for</span><span class=w> </span><span class=n>the</span><span class=w> </span><span class=k>default</span><span class=w> </span><span class=n>1</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>border_radius</span><span class=p>:</span><span class=w> </span><span class=n>5</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=err>#</span><span class=w> </span><span class=n>Add</span><span class=w> </span><span class=n>copy</span><span class=w> </span><span class=n>button</span><span class=w> </span><span class=n>on</span><span class=w> </span><span class=n>codeblock</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>  </span><span class=n>copy_button</span><span class=p>:</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>enable</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=err>#</span><span class=w> </span><span class=n>Show</span><span class=w> </span><span class=n>text</span><span class=w> </span><span class=n>copy</span><span class=w> </span><span class=n>result</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>show_result</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=err>#</span><span class=w> </span><span class=n>Style</span><span class=p>:</span><span class=w> </span><span class=err>&#39;</span><span class=n>light</span><span class=p>,</span><span class=n>night</span><span class=p>,</span><span class=n>flat</span><span class=p>,</span><span class=n>3dbtn</span><span class=err>&#39;</span><span class=w> </span><span class=n>is</span><span class=w> </span><span class=n>currently</span><span class=w> </span><span class=n>available</span><span class=p>,</span><span class=w> </span><span class=n>leave</span><span class=w> </span><span class=n>it</span><span class=w> </span><span class=n>empty</span><span class=w> </span><span class=n>or</span><span class=w> </span><span class=n>light</span><span class=w> </span><span class=n>is</span><span class=w> </span><span class=k>default</span><span class=w> </span><span class=n>theme</span><span class=w>\n</span></span></span><span class=line><span class=cl><span class=w>    </span><span class=n>style</span><span class=p>:</span><span class=w> </span><span class=n>night</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/font-mmt/ class=collection-nav-item rel=prev title=沐目体><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>沐目体</span>\n</a><a href=/projects/lruihao/mmt/ class=collection-nav-item rel=next title=Lruihao/MMT><span>Lruihao/MMT</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-12-21 02:39:42\">更新于 2023-12-21&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/hexo-theme-next/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hexo-theme-next/blob/master/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hexo-theme-next/edit/master/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/hexo-theme-next/ data-title=\"Elegant and powerful theme for Hexo.\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/hexo-theme-next/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/hexo-theme-next/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/hexo-theme-next/ data-title=\"Elegant and powerful theme for Hexo.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/hexo-theme-next/ data-title=\"Elegant and powerful theme for Hexo.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/jicheng/ class=post-nav-item rel=prev title=\"Java 继承 Test\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Java 继承 Test</a><a href=/posts/renative/ class=post-nav-item rel=next title=还乡>还乡<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#links模板>links模板</a></li><li><a href=#备案信息自定义>备案信息自定义</a></li><li><a href=#文字抖动特效>文字抖动特效</a></li><li><a href=#左下角微信公众号>左下角微信公众号</a></li><li><a href=#相关文章收纳>相关文章收纳</a></li><li><a href=#chat-services>Chat Services</a></li><li><a href=#pdf和mermaid解析模块>pdf和Mermaid解析模块</a></li><li><a href=#模仿csdn转发样式>模仿csdn转发样式</a></li><li><a href=#热度页面>热度页面</a></li><li><a href=#复制按钮样式>复制按钮样式</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/hexo-theme-next/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/hexo-theme-next/index.md",
    "content": "# Elegant and powerful theme for Hexo.\n\n<h1 align=center>hexo-theme-next</h1>\n\n> **如无必要，不再更新！（2019.09.13）**  \n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将**放弃对next的主题的自定义修改**，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。  \n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。  \n以下仍为当前博客使用主题，lib资源已打包github。\n\n> 基于[hexo-theme-next 6.0+](https://github.com/theme-next/hexo-theme-next)的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。&emsp;官方Demo => <https://theme-next.org>    \n记录一下折腾过程，修改内容以[博採眾長](https://lruihao.cn/posts/hexo-theme-next.html)为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见[hexo分类](https://lruihao.cn/categories/hexo/)。\n**主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值**\n\n<!--more-->\n主要的几个自定义文件\n```xml 主要修改路径及文件\n_config.swig                                 #主题配置文件 相关账户信息自己注册替换\n\\layout\\custom\\head.swig                     #在头部自定义加入标签\n\\layout\\custom\\google_adsense.swig           #谷歌广告模块，内有注释暂时弃用\n\\layout\\_layout.swig                         #主布局\n\\layout\\_macro\\post.swig                     #文章布局\n\\layout\\_macro\\post-copyright.swig           #文章版权\n\\layout\\_macro\\siderbar.swig                 #侧栏模板\n\\layout\\_third-party\\copy-code.swig          #复制按钮\n\\layout\\_partials\\comments.swig              #评论主模板\n\\layout\\_partials\\footer.swig                #底部模板#该模块在layout.swig引入，用于在body自定义标签\n\\layout\\_partials\\footer_custom.swig         #footer自定义文件\n\\layout\\_third-party\\custom.swig             #该模块在layout.swig引入用于在body自定义标签\n\\source\\css\\_custom\\customs.styl             #主要用户自定义样式表\n\\source\\fonts\\                               #引入了一些我的手写体及外部字体\n\\scripts\\qcloudcdn.js                        #腾讯云cos桶刷新缓存的脚本，不需要可删掉[^1]       \n```\n[^1](https://lruihao.cn/posts/cos-hexo.html#CDN%E5%88%B7%E6%96%B0)\n\n# 初步安装\n> 安装整个改过的主题,然后下载相应的[lib资源](https://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1)\n\n```bash\ncd hexo\ngit clone https://github.com/Lruihao/hexo-theme-next themes/next\n\n```\n![lib.png](https://i.loli.net/2019/04/03/5ca471ec93167.png)\n\n# 更新内容\n> 更多自定义详见源码\n\n## links模板\n> 自定义友链模板，打开`hexo\\themes\\next\\layout\\`新建`links.swig`文件，写下[links.swig](https://github.com/Lruihao/hexo-theme-next/blob/master/layout/links.swig)内容后保存。\n- **若未使用懒加载请将模板中的`data-original`属性改为`src`**  \n- **若懒加载无法加载预览图请手动添加`src=\"/images/loading.gif\"`**\n- **若fancybox显示alt内容请更换fancybox2或者将alt属值删除**\n\n然后`hexo n page links`新建一个页面文章配置写下如下内容：\n```XMl top.md\n---\ntitle: 友情链接\nlayout: links\n---\n```\n然后在`links`页面文件夹下面新建文件夹`_data`，再在里面新建`links.yml`，内容如下\n```xml links.yml\n- nickname: 博採眾長      \n  avatar: http://lruihao.cn/images/avatar.png\n  site: http://lruihao.cn \n  info: 一个菜鸟的博客\n- nickname:                 #友链名称\n  avatar:                   #友链头像\n  site:                     #友链地址\n  info:                     #友链说明\n```\n\n## 备案信息自定义\n```xml _config.yml\n# -------------------------------------------------------------\n# footer_custom Settings\n# -------------------------------------------------------------\nbeian:\n  enable: true\n  gov: 湘公网安备 43030402000254号\n  recordcode: 43030402000254\n  icp: 湘ICP备18020535号\n```\n## 文字抖动特效\n```xml 使用方法\n<div class=\"shaky\">(づ●'◡'●)づ ❥内容区</div>\n```\n\n## 左下角微信公众号\n```\n\\source\\css\\_custom\\customs.styl  \n```\n\n## 相关文章收纳\n加入H5标签，实现可收纳功能，点击查看详情。\n\n## Chat Services\n> 共chatra,tidio,daovoice三个选项，三选一\n\n```swig _config.swig\n# Chatra Support\n# See: https://chatra.io\n# Dashboard: https://app.chatra.io/settings/general\nchatra:\n  enable: false\n  async: true\n  id: # visit Dashboard to get your ChatraID\n  #embed: # unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto\n\n# Tidio Support\n# See: https://www.tidiochat.com\n# Dashboard: https://www.tidiochat.com/panel/dashboard\ntidio:\n  enable: false\n  key: # Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer\n\n#在线客服\ndaovoice: true\ndaovoice_app_id: xxxx   # http://www.daovoice.io/\n```\n\n## pdf和Mermaid解析模块\n[pdf传送门](https://lruihao.cn/hexo/next-pdf.html)\n```swig config.swig\npdf:\n  enable: false\n  # Default height\n  height: 500px\n  pdfobject:\n    cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js\n    #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\n\n# Mermaid tag\nmermaid:\n  enable: false\n  # Available themes: default | dark | forest | neutral\n  theme: forest\n  cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js\n  #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js\n```\n\n## 模仿csdn转发样式\n```diff post.swig主要修改\n...\n   <a class=\"post-title-link\" href=\"{{ url_for(post.path) }}\" itemprop=\"url\">\n+    {% if post.repost %}\n+      <span class=\"repost\">转</span>\n+    {% endif %}\n     {{ post.title | default(__('post.untitled'))}}\n   </a>\n {% else -%}\n+  {% if post.repost %}\n+    <span class=\"repost\">转</span>\n+  {% endif %}\n   {{- post.title -}}\n...\n```\n\n```css css样式\n.repost {\n  color: #5acc79;\n  border: 1px solid #e7f4df;\n  border-radius: 20px;\n  padding: 2px 5px;\n  font-size: 15px;\n  font-weight: 500;\n}\n```\n\n```xml post使用\n---\ntitle: xxxx\nrepost: true\n---\n```\n[预览](https://lruihao.cn/tags/他山之石/)\n\n\n## 热度页面\n\n> 打开`hexo\\themes\\next\\layout`新建[top.swig](https://github.com/Lruihao/hexo-theme-next/blob/master/layout/top.swig)文件，写下如下内容保存：\n其中第36行改成你自己的leancloud的appid和appkey,比如我的是在主题配置文件里面的valine配置下，所以我就写成`theme.valine.appid`。和我一样就不需要修改，其他自行配置。\n\n然后`hexo n page top`新建一个页面文章配置写下如下内容，limit表示显示篇数：\n```XMl top.md\n---\ntitle: 热度\nlayout: top\nlimit: 20\n---\n```\n\n## 复制按钮样式\n\n![lightbtn.png](https://i.loli.net/2019/03/21/5c939bb23853d.png)\n![nightbtn.png](https://i.loli.net/2019/03/21/5c939bb229bad.png)\n![flatbtn.png](https://i.loli.net/2019/03/21/5c939bb2385c5.png)\n![3dbtn.png](https://i.loli.net/2019/03/21/5c939bb238db9.png)\n\n> 本来只想简单美化一下变成night样式的，后来写完发现3dbtn也挺喜欢的。\n\n```java config配置\ncodeblock:\n  # Manual define the border radius in codeblock\n  # Leave it empty for the default 1\n  border_radius: 5\n  # Add copy button on codeblock\n  copy_button:\n    enable: true\n    # Show text copy result\n    show_result: true\n    # Style: 'light,night,flat,3dbtn' is currently available, leave it empty or light is default theme\n    style: night\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/hexo-theme-next/  \n\n"
  },
  {
    "path": "projects/lruihao/html-demo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta name=keywords content='html-css-javascript'><meta itemprop=name content=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta itemprop=description content=\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta itemprop=datePublished content=\"2024-09-13T02:36:29+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=wordCount content=\"23\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"html-css-javascript\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/html-demo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta property=\"og:description\" content=\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-09-13T02:36:29+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:30+00:00\"><meta property=\"article:tag\" content=\"html-css-javascript\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta name=twitter:description content=\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/html-demo/ title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ title=\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\"><link rel=next type=text/html href=https://lruihao.cn/posts/content-adapters/ title=\"自动获取 GitHub README 内容添加到 Hugo 文章\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/html-demo/index.md title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/html-demo\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"html-css-javascript\",\"wordcount\":23,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/html-demo\\/\",\"datePublished\":\"2024-09-13T02:36:29+00:00\",\"dateModified\":\"2026-05-06T03:02:30+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/html-demo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/html-demo</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><span class=active title=Lruihao/html-demo>Lruihao/html-demo</span></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/fixit-releaser/ class=collection-nav-item rel=prev title=hugo-fixit/fixit-releaser><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>40/51</span><a href=/projects/hugo-fixit/cmpt-flyfish/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-flyfish><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/html-demo target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/html-demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/html-demo/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/html-demo/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-09-13 02:36:29\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-09-13>2024-09-13</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"23 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#文件预览>文件预览</a></li><li><a href=#serve-预览>serve 预览</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=html-demos data-decreased><span>HTML demos</span>\n<a href=#html-demos class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</p><h2 class=heading-element id=文件预览><span>文件预览</span>\n<a href=#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>直接浏览器打开 <code>src</code> 目录下的 HTML 文件。</p><h2 class=heading-element id=serve-预览><span>serve 预览</span>\n<a href=#serve-%e9%a2%84%e8%a7%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>yarn\n</span></span><span class=line><span class=cl>yarn serve</span></span></code></pre></td></tr></table></div></div></div><p>然后访问 <code>http://localhost:3000</code>。</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/fixit-releaser/ class=collection-nav-item rel=prev title=hugo-fixit/fixit-releaser><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/fixit-releaser</span>\n</a><a href=/projects/hugo-fixit/cmpt-flyfish/ class=collection-nav-item rel=next title=hugo-fixit/cmpt-flyfish><span>hugo-fixit/cmpt-flyfish</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:30\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/html-demo/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/html-demo/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/html-demo/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/html-demo/ data-title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\" data-hashtags=html-css-javascript><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/html-demo/ data-hashtag=html-css-javascript><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/html-demo/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/html-demo/ data-title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/html-demo/ data-title=\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/html-css-javascript/ class=post-tag title=\"标签 - html-css-javascript\">html-css-javascript</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/fixit-releaser/ class=post-nav-item rel=prev title=hugo-fixit/fixit-releaser><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/fixit-releaser</a><a href=/posts/content-adapters/ class=post-nav-item rel=next title=\"自动获取 GitHub README 内容添加到 Hugo 文章\">自动获取 GitHub README 内容添加到 Hugo 文章<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#文件预览>文件预览</a></li><li><a href=#serve-预览>serve 预览</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/html-demo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/html-demo/index.md",
    "content": "# 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\n\n# HTML demos\n\n不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\n\n## 文件预览\n\n直接浏览器打开 `src` 目录下的 HTML 文件。\n\n## serve 预览\n\n```bash\nyarn\nyarn serve\n```\n\n然后访问 `http://localhost:3000`。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/html-demo/  \n\n"
  },
  {
    "path": "projects/lruihao/hugo-blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Lruihao's Note | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/hugo blog: Lruihao's Note\"><meta name=keywords content='blog,front-end,hugo,hugo-blog,hugo-fixit,hugo-site'><meta itemprop=name content=\"Lruihao's Note\"><meta itemprop=description content=\"Lruihao/hugo blog: Lruihao's Note\"><meta itemprop=datePublished content=\"2021-09-08T12:52:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:13+00:00\"><meta itemprop=wordCount content=\"336\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"blog,front-end,Hugo,hugo-blog,hugo-fixit,hugo-site\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/hugo-blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Lruihao's Note\"><meta property=\"og:description\" content=\"Lruihao/hugo blog: Lruihao's Note\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-09-08T12:52:53+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:13+00:00\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"front-end\"><meta property=\"article:tag\" content=\"Hugo\"><meta property=\"article:tag\" content=\"hugo-blog\"><meta property=\"article:tag\" content=\"hugo-fixit\"><meta property=\"article:tag\" content=\"hugo-site\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Lruihao's Note\"><meta name=twitter:description content=\"Lruihao/hugo blog: Lruihao's Note\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/hugo-blog/ title=\"Lruihao's Note | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/about/ title=关于><link rel=next type=text/html href=https://lruihao.cn/guestbook/ title=留言><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/hugo-blog/index.md title=\"Lruihao's Note | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Lruihao's Note\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/hugo-blog\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"blog, front-end, hugo, hugo-blog, hugo-fixit, hugo-site\",\"wordcount\":336,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/hugo-blog\\/\",\"datePublished\":\"2021-09-08T12:52:53+00:00\",\"dateModified\":\"2026-05-06T03:02:13+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/hugo blog: Lruihao's Note\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/hugo-blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/hugo-blog</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><span class=active title=Lruihao/hugo-blog>Lruihao/hugo-blog</span></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/watermark/ class=collection-nav-item rel=prev title=Lruihao/watermark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>13/51</span><a href=/projects/hugo-fixit/fixit/ class=collection-nav-item rel=next title=hugo-fixit/FixIt><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Lruihao's Note</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/hugo-blog target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/hugo-blog<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-09-08 12:52:53\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-09-08>2021-09-08</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:13\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"336 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Lruihao's Note\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#content>Content</a></li><li><a href=#source>Source</a></li><li><a href=#roadmap>Roadmap</a></li><li><a href=#project-setup>Project setup</a><ul><li><a href=#system-requirements>System requirements</a></li><li><a href=#clone>Clone</a></li><li><a href=#npm>NPM</a></li><li><a href=#hugo>Hugo</a></li></ul></li><li><a href=#license>License</a></li><li><a href=#sponsor>Sponsor</a></li><li><a href=#powered>Powered</a></li><li><a href=#author>Author</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=菠菜眾長 data-decreased><span>菠菜眾長</span>\n<a href=#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/Hugo-%5E0.147_10197451430892069269.svg alt=Hugo></a>\n<a href=https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/badge_1895496655215000366.svg alt=\"Hugo build and deploy\"></a>\n<a href=https://github.com/Lruihao/hugo-blog/commits/main target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/main_9310684978766761497.svg alt=\"GitHub commit activity (main)\"></a></p><blockquote><p>站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。</p></blockquote><p><img loading=lazy src=/images/remote/apple-devices-preview_9292544820184326555.webp alt=blog-preview height=1508 width=2880></p><h2 class=heading-element id=content><span>Content</span>\n<a href=#content class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。</p></blockquote><p>以内容为中心，搭建了智能笔记知识库，支持 AI 搜索、AI 对话、智能摘要等功能，点击左下角 🤖 图标 <a href=https://lruihao.cn/ target=_blank rel=\"external nofollow noopener noreferrer\">立即体验<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p><ul><li><a href=https://lruihao.cn/archives/ target=_blank rel=\"external nofollow noopener noreferrer\">归档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/categories/ target=_blank rel=\"external nofollow noopener noreferrer\">分类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/collections/ target=_blank rel=\"external nofollow noopener noreferrer\">合集<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://lruihao.cn/tags/ target=_blank rel=\"external nofollow noopener noreferrer\">标签<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>你可以通过我的<a href=https://lruihao.cn/images/qr-wx-mp.webp title=关注「菠菜眾長」公众号 target=_blank rel=\"external nofollow noopener noreferrer\">微信公众号<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>、<a href=https://github.com/Lruihao/hugo-blog title=\"Watch on GitHub\" target=_blank rel=\"external nofollow noopener noreferrer\">GitHub<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 或 <a href=http://lruihao.cn/index.xml target=_blank rel=\"external nofollow noopener noreferrer\">RSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 来订阅本博客。</p></div><h2 class=heading-element id=source><span>Source</span>\n<a href=#source class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>博客中涉及的相关源码：</p><ul><li><a href=https://github.com/Lruihao/html-demo target=_blank rel=\"external nofollow noopener noreferrer\">HTML/CSS/JS Demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/vue-el-demo target=_blank rel=\"external nofollow noopener noreferrer\">Vue2 Demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">Hugo FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/CoverView/ target=_blank rel=\"external nofollow noopener noreferrer\">CoverView<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/vercel-proxy/ target=_blank rel=\"external nofollow noopener noreferrer\">Vercel API Proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">MMT webfont package<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=\"https://github.com/Lruihao?tab=repositories\" target=_blank rel=\"external nofollow noopener noreferrer\">更多<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=roadmap><span><a href=https://github.com/users/Lruihao/projects/1 target=_blank rel=\"external nofollow noopener noreferrer\">Roadmap<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#roadmap class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=project-setup><span>Project setup</span>\n<a href=#project-setup class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>本博客已部署到 <a href=https://blog-lruihao.vercel.app/ target=_blank rel=\"external nofollow noopener noreferrer\">Vercel<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/Lruihao/lruihao.github.io target=_blank rel=\"external nofollow noopener noreferrer\">GitHub Pages<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，工作流如下图所示：</p><p><img loading=lazy src=/images/remote/blog-flow_3378265870417377810.png alt=blog-flow height=521 width=851></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>▸ .github/       <span class=c1># GitHub configuration</span>\n</span></span><span class=line><span class=cl>▸ .scripts/      <span class=c1># custom scripts</span>\n</span></span><span class=line><span class=cl>▸ .shell/        <span class=c1># shell commands for hugo project, entrance: hugo_main.sh</span>\n</span></span><span class=line><span class=cl>▸ archetypes/    <span class=c1># page archetypes (like scaffolds for hexo)</span>\n</span></span><span class=line><span class=cl>▸ assets/        <span class=c1># css, js, third-party libraries etc.</span>\n</span></span><span class=line><span class=cl>▸ config/        <span class=c1># configuration files</span>\n</span></span><span class=line><span class=cl>▸ content/       <span class=c1># markdown files for hugo project</span>\n</span></span><span class=line><span class=cl>  ▸ private/     <span class=c1># private submodule for encrypted content</span>\n</span></span><span class=line><span class=cl>▸ data/          <span class=c1># blog data (allow: yaml, json, toml), e.g. friends.yml</span>\n</span></span><span class=line><span class=cl>▸ public/        <span class=c1># build directory</span>\n</span></span><span class=line><span class=cl>▸ static/        <span class=c1># static files, e.g. favicon.ico</span>\n</span></span><span class=line><span class=cl>▸ themes/        <span class=c1># theme submodules</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h3 class=heading-element id=system-requirements><span>System requirements</span>\n<a href=#system-requirements class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><a href=https://nodejs.org/ target=_blank rel=\"external nofollow noopener noreferrer\">Node.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>: >= 18.0.0</li><li><a href=https://go.dev/dl/ target=_blank rel=\"external nofollow noopener noreferrer\">Go<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://gohugo.io/installation/ target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>: >= 0.147.7 (extended version)</li></ul><h3 class=heading-element id=clone><span>Clone</span>\n<a href=#clone class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>首先点上 Star 😜，然后下载源码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone --recursive git@github.com:Lruihao/hugo-blog.git <span class=o>&amp;&amp;</span> <span class=nb>cd</span> hugo-blog</span></span></code></pre></td></tr></table></div></div></div><p>下载源码后，有两种方法可以启动这个博客。</p><h3 class=heading-element id=npm><span>NPM</span>\n<a href=#npm class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span><span class=lnt>9\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install\n</span></span><span class=line><span class=cl><span class=c1># build the blog</span>\n</span></span><span class=line><span class=cl>npm run build\n</span></span><span class=line><span class=cl><span class=c1># run a local debugging server with watch</span>\n</span></span><span class=line><span class=cl>npm run server\n</span></span><span class=line><span class=cl><span class=c1># run a local debugging server in production environment</span>\n</span></span><span class=line><span class=cl>npm run server:production\n</span></span><span class=line><span class=cl><span class=c1># update theme submodules</span>\n</span></span><span class=line><span class=cl>npm run update:theme</span></span></code></pre></td></tr></table></div></div></div><details><summary>如果没有全局安装 Hugo，甚至可以通过 hugo-bin 在 Node.js 环境下使用 Hugo。</summary><p>参考：<a href=https://github.com/fenneclab/hugo-bin target=_blank rel=\"external nofollow noopener noreferrer\">hugo-bin<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install hugo-bin --save-dev</span></span></code></pre></td></tr></table></div></div></div><p><code>package.json</code> 需配置 <code>extended</code> 版本：</p><json-viewer value='\"{\\n  ...\\n  \\\"hugo-bin\\\": {\\n    \\\"buildTags\\\": \\\"extended\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>再通过 <code>npx hugo</code> 启动。</p></details><h3 class=heading-element id=hugo><span>Hugo</span>\n<a href=#hugo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># Development environment</span>\n</span></span><span class=line><span class=cl>hugo server --disableFastRender --navigateToChanged --bind 0.0.0.0\n</span></span><span class=line><span class=cl><span class=c1># Production environment</span>\n</span></span><span class=line><span class=cl>hugo server --disableFastRender --navigateToChanged --environment production --bind 0.0.0.0</span></span></code></pre></td></tr></table></div></div></div><details><summary>此外，还可以运行 shell 脚本来选择常用的 Hugo 命令。</summary><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=nb>cd</span> .shell <span class=o>&amp;&amp;</span> sh hugo_main.sh</span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-text\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-text data-lang=text><span class=line><span class=cl>--------------Hugo Admin--------------\n</span></span><span class=line><span class=cl>Please enter the serial number to work\n</span></span><span class=line><span class=cl>--------------------------------------\n</span></span><span class=line><span class=cl>1. post\n</span></span><span class=line><span class=cl>2. server\n</span></span><span class=line><span class=cl>3. server:production\n</span></span><span class=line><span class=cl>4. build\n</span></span><span class=line><span class=cl>5. submodule-sync\n</span></span><span class=line><span class=cl>6. push\n</span></span><span class=line><span class=cl>--------------------------------------\n</span></span><span class=line><span class=cl>Press Ctrl+C to stop</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div></details><h2 class=heading-element id=license><span>License</span>\n<a href=#license class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/license-CC_BY--NC--SA_4_10865684224363453537.svg alt=\"Content License\"></a>\n<a href=https://github.com/Lruihao/hugo-blog/blob/main/LICENSE target=_blank rel=\"external nofollow noopener noreferrer\"><img loading=lazy src=/images/remote/hugo-blog_15167516004543002840.svg alt=License></a></p><ul><li>此存储库中的文本、图像和视频等内容采用 <a href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank rel=\"external nofollow noopener noreferrer\">CC BY-NC-SA 4.0<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 许可</li><li>此存储库中的代码采用 <a href=https://github.com/Lruihao/hugo-blog/blob/main/LICENSE target=_blank rel=\"external nofollow noopener noreferrer\">MIT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 许可</li><li><em><code>content/private</code> 目录不在任何许可范围内</em></li></ul><h2 class=heading-element id=sponsor><span>Sponsor</span>\n<a href=#sponsor class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.cn/reward/ target=_blank rel=\"external nofollow noopener noreferrer\">赞赏记录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>，感谢大家的支持！❤️</p><p>长期赞助致谢：</p><ul><li><a href=https://github.com/xnx3/translate target=_blank rel=\"external nofollow noopener noreferrer\">translate.js<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 赞助企业级翻译通道。</li></ul><h2 class=heading-element id=powered><span>Powered</span>\n<a href=#powered class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>博客基于 <a href=https://github.com/gohugoio/hugo target=_blank rel=\"external nofollow noopener noreferrer\">Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 和 <a href=https://github.com/Lruihao/FixIt target=_blank rel=\"external nofollow noopener noreferrer\">FixIt<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 搭建，建站的初衷不是为了炫耀所知，而是记录无知。</p><h2 class=heading-element id=author><span>Author</span>\n<a href=#author class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://github.com/Lruihao title=\"在 GitHub 上关注我\" target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/watermark/ class=collection-nav-item rel=prev title=Lruihao/watermark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/watermark</span>\n</a><a href=/projects/hugo-fixit/fixit/ class=collection-nav-item rel=next title=hugo-fixit/FixIt><span>hugo-fixit/FixIt</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:13\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/hugo-blog/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/hugo-blog/ data-title=\"Lruihao's Note\" data-hashtags=blog,front-end,hugo,hugo-blog,hugo-fixit,hugo-site><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/hugo-blog/ data-hashtag=blog><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/hugo-blog/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/hugo-blog/ data-title=\"Lruihao's Note\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/hugo-blog/ data-title=\"Lruihao's Note\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/front-end/ class=post-tag title=\"标签 - front-end\">front-end</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-blog/ class=post-tag title=\"标签 - hugo-blog\">hugo-blog</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/hugo-site/ class=post-tag title=\"标签 - hugo-site\">hugo-site</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/less-sass-scss/ class=post-nav-item rel=prev title=Less&amp;sass&amp;scss><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Less&amp;sass&amp;scss</a><a href=/posts/hexo-to-hugo/ class=post-nav-item rel=next title=\"个人博客从 Hexo 迁移至 Hugo\">个人博客从 Hexo 迁移至 Hugo<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#content>Content</a></li><li><a href=#source>Source</a></li><li><a href=#roadmap>Roadmap</a></li><li><a href=#project-setup>Project setup</a><ul><li><a href=#system-requirements>System requirements</a></li><li><a href=#clone>Clone</a></li><li><a href=#npm>NPM</a></li><li><a href=#hugo>Hugo</a></li></ul></li><li><a href=#license>License</a></li><li><a href=#sponsor>Sponsor</a></li><li><a href=#powered>Powered</a></li><li><a href=#author>Author</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/hugo-blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/hugo-blog/index.md",
    "content": "# Lruihao's Note\n\n# 菠菜眾長\n\n[![Hugo](https://img.shields.io/badge/Hugo-%5E0.147.7-ff4088?style=flat&logo=hugo)](https://gohugo.io/)\n[![Hugo build and deploy](https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml)\n[![GitHub commit activity (main)](https://img.shields.io/github/commit-activity/m/Lruihao/hugo-blog/main?style=flat)](https://github.com/Lruihao/hugo-blog/commits/main)\n\n> 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\n\n![blog-preview](https://raw.githubusercontent.com/Lruihao/hugo-blog/refs/heads/main/assets/images/apple-devices-preview.webp)\n\n## Content\n\n> 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\n\n以内容为中心，搭建了智能笔记知识库，支持 AI 搜索、AI 对话、智能摘要等功能，点击左下角 🤖 图标 [立即体验](https://lruihao.cn/)。\n\n- [归档](https://lruihao.cn/archives/)\n- [分类](https://lruihao.cn/categories/)\n- [合集](https://lruihao.cn/collections/)\n- [标签](https://lruihao.cn/tags/)\n\n> [!TIP]\n> 你可以通过我的[微信公众号](https://lruihao.cn/images/qr-wx-mp.webp \"关注「菠菜眾長」公众号\")、[GitHub](https://github.com/Lruihao/hugo-blog \"Watch on GitHub\") 或 [RSS](http://lruihao.cn/index.xml) 来订阅本博客。\n\n## Source\n\n博客中涉及的相关源码：\n\n- [HTML/CSS/JS Demo](https://github.com/Lruihao/html-demo)\n- [Vue2 Demo](https://github.com/Lruihao/vue-el-demo)\n- [Hugo FixIt](https://github.com/hugo-fixit)\n- [CoverView](https://github.com/CoverView/)\n- [Vercel API Proxy](https://github.com/Lruihao/vercel-proxy/)\n- [MMT webfont package](https://github.com/Lruihao/mmt-webfont/)\n- [更多](https://github.com/Lruihao?tab=repositories)\n\n## [Roadmap](https://github.com/users/Lruihao/projects/1)\n\n## Project setup\n\n本博客已部署到 [Vercel](https://blog-lruihao.vercel.app/) 和 [GitHub Pages](https://github.com/Lruihao/lruihao.github.io)，工作流如下图所示：\n\n![blog-flow](https://raw.githubusercontent.com/Lruihao/hugo-blog/refs/heads/main/assets/images/blog-flow.png)\n\n```bash\n▸ .github/       # GitHub configuration\n▸ .scripts/      # custom scripts\n▸ .shell/        # shell commands for hugo project, entrance: hugo_main.sh\n▸ archetypes/    # page archetypes (like scaffolds for hexo)\n▸ assets/        # css, js, third-party libraries etc.\n▸ config/        # configuration files\n▸ content/       # markdown files for hugo project\n  ▸ private/     # private submodule for encrypted content\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/        # build directory\n▸ static/        # static files, e.g. favicon.ico\n▸ themes/        # theme submodules\n```\n\n### System requirements\n\n- [Node.js](https://nodejs.org/): >= 18.0.0\n- [Go](https://go.dev/dl/)\n- [Hugo](https://gohugo.io/installation/): >= 0.147.7 (extended version)\n\n### Clone\n\n首先点上 Star 😜，然后下载源码：\n\n```bash\ngit clone --recursive git@github.com:Lruihao/hugo-blog.git && cd hugo-blog\n```\n\n下载源码后，有两种方法可以启动这个博客。\n\n### NPM\n\n```bash\nnpm install\n# build the blog\nnpm run build\n# run a local debugging server with watch\nnpm run server\n# run a local debugging server in production environment\nnpm run server:production\n# update theme submodules\nnpm run update:theme\n```\n\n<details>\n<summary>如果没有全局安装 Hugo，甚至可以通过 hugo-bin 在 Node.js 环境下使用 Hugo。</summary>\n\n参考：[hugo-bin](https://github.com/fenneclab/hugo-bin)\n\n```bash\nnpm install hugo-bin --save-dev\n```\n\n`package.json` 需配置 `extended` 版本：\n\n```json\n{\n  ...\n  \"hugo-bin\": {\n    \"buildTags\": \"extended\"\n  }\n}\n```\n\n再通过 `npx hugo` 启动。\n</details>\n\n### Hugo\n\n```bash\n# Development environment\nhugo server --disableFastRender --navigateToChanged --bind 0.0.0.0\n# Production environment\nhugo server --disableFastRender --navigateToChanged --environment production --bind 0.0.0.0\n```\n\n<details>\n<summary>此外，还可以运行 shell 脚本来选择常用的 Hugo 命令。</summary>\n\n```bash\ncd .shell && sh hugo_main.sh\n```\n\n```text\n--------------Hugo Admin--------------\nPlease enter the serial number to work\n--------------------------------------\n1. post\n2. server\n3. server:production\n4. build\n5. submodule-sync\n6. push\n--------------------------------------\nPress Ctrl+C to stop\n```\n\n</details>\n\n## License\n\n[![Content License](https://img.shields.io/badge/license-CC_BY--NC--SA_4.0-blue?style=flat)](https://creativecommons.org/licenses/by-nc-sa/4.0/)\n[![License](https://img.shields.io/github/license/Lruihao/hugo-blog?style=flat)](https://github.com/Lruihao/hugo-blog/blob/main/LICENSE)\n\n- 此存储库中的文本、图像和视频等内容采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可\n- 此存储库中的代码采用 [MIT](https://github.com/Lruihao/hugo-blog/blob/main/LICENSE) 许可\n- _`content/private` 目录不在任何许可范围内_\n\n## Sponsor\n\n[赞赏记录](https://lruihao.cn/reward/)，感谢大家的支持！❤️\n\n长期赞助致谢：\n\n- [translate.js](https://github.com/xnx3/translate) 赞助企业级翻译通道。\n\n## Powered\n\n博客基于 [Hugo](https://github.com/gohugoio/hugo) 和 [FixIt](https://github.com/Lruihao/FixIt) 搭建，建站的初衷不是为了炫耀所知，而是记录无知。\n\n## Author\n\n[Lruihao](https://github.com/Lruihao \"在 GitHub 上关注我\")\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/hugo-blog/  \n\n"
  },
  {
    "path": "projects/lruihao/json-viewer-element/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>A custom element for viewing and interacting with JSON data. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"A custom element for viewing and interacting with JSON data.\"><meta itemprop=description content=\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\"><meta itemprop=datePublished content=\"2025-07-19T07:05:07+00:00\"><meta itemprop=dateModified content=\"2026-04-08T08:42:59+00:00\"><meta itemprop=wordCount content=\"383\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub,开源项目\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"A custom element for viewing and interacting with JSON data.\"><meta property=\"og:description\" content=\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-07-19T07:05:07+00:00\"><meta property=\"article:modified_time\" content=\"2026-04-08T08:42:59+00:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"A custom element for viewing and interacting with JSON data.\"><meta name=twitter:description content=\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/json-viewer-element/ title=\"A custom element for viewing and interacting with JSON data. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/at-layer/ title=\"CSS @layer：构建更高效、更可维护的样式层级\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ title=\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/json-viewer-element/index.md title=\"A custom element for viewing and interacting with JSON data. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"A custom element for viewing and interacting with JSON data.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/json-viewer-element\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":383,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/json-viewer-element\\/\",\"datePublished\":\"2025-07-19T07:05:07+00:00\",\"dateModified\":\"2026-04-08T08:42:59+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/json-viewer-element/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/json-viewer-element</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><span class=active title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</span></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/mmt-webfont/ class=collection-nav-item rel=prev title=Lruihao/mmt-webfont><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>47/51</span><a href=/projects/lruihao/caniuse-embed-element/ class=collection-nav-item rel=next title=Lruihao/caniuse-embed-element><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>A custom element for viewing and interacting with JSON data.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/json-viewer-element target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/json-viewer-element<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/json-viewer-element/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/json-viewer-element/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-07-19 07:05:07\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-07-19>2025-07-19</time></span>&nbsp;<span title=\"更新于 2026-04-08 08:42:59\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-04-08>2026-04-08</time></span>&nbsp;<span title=\"383 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"A custom element for viewing and interacting with JSON data.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#功能特性>功能特性</a></li><li><a href=#使用方法>使用方法</a><ul><li><a href=#安装>安装</a></li><li><a href=#引入>引入</a><ul><li><a href=#作为模块>作为模块</a></li><li><a href=#umd-cdn>UMD (CDN)</a></li></ul></li><li><a href=#基本用法>基本用法</a></li></ul></li><li><a href=#属性>属性</a><ul><li><a href=#copyableoptions>CopyableOptions</a></li></ul></li><li><a href=#事件>事件</a></li><li><a href=#插槽>插槽</a></li><li><a href=#license>License</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=json-viewer-element data-decreased><span>&lt;json-viewer> Element</span>\n<a href=#json-viewer-element class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>简体中文 | <a href=https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md target=_blank rel=\"external nofollow noopener noreferrer\">English<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><blockquote><p>🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件</p></blockquote><h2 class=heading-element id=功能特性><span>功能特性</span>\n<a href=#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li>🌟 <strong>Web 组件</strong>：原生，无框架依赖</li><li>🎨 <strong>主题</strong>：支持明暗模式</li><li>📦 <strong>盒装</strong>：可选边框与内边距</li><li>📋 <strong>可复制</strong>：一键复制 JSON</li><li>🔑 <strong>排序</strong>：支持键排序</li><li>🔍 <strong>展开深度</strong>：可控初始展开层级</li><li>🧩 <strong>自定义复制按钮</strong>：slot 插槽支持</li><li>🧬 <strong>类型高亮</strong>：多种类型高亮</li><li>🛠️ <strong>自定义事件</strong>：支持 copy/toggle 事件监听</li></ul><h2 class=heading-element id=使用方法><span>使用方法</span>\n<a href=#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=安装><span>安装</span>\n<a href=#%e5%ae%89%e8%a3%85 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install json-viewer-element</span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=引入><span>引入</span>\n<a href=#%e5%bc%95%e5%85%a5 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><h4 class=heading-element id=作为模块><span>作为模块</span>\n<a href=#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>import</span> <span class=s1>&#39;json-viewer-element&#39;</span></span></span></code></pre></td></tr></table></div></div></div><h4 class=heading-element id=umd-cdn><span>UMD (CDN)</span>\n<a href=#umd-cdn class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h4><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=基本用法><span>基本用法</span>\n<a href=#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>手动绑定 value：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>json-viewer</span> <span class=na>id</span><span class=o>=</span><span class=s>&#34;viewer&#34;</span> <span class=na>boxed</span> <span class=na>copyable</span> <span class=na>sort</span> <span class=na>expand-depth</span><span class=o>=</span><span class=s>&#34;2&#34;</span> <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>json-viewer</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=nb>document</span><span class=p>.</span><span class=nx>getElementById</span><span class=p>(</span><span class=s1>&#39;viewer&#39;</span><span class=p>).</span><span class=nx>value</span> <span class=o>=</span> <span class=p>{</span> <span class=nx>hello</span><span class=o>:</span> <span class=s2>&#34;world&#34;</span><span class=p>,</span> <span class=nx>arr</span><span class=o>:</span> <span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>]</span> <span class=p>};</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>直接在标签上绑定 value：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>json-viewer</span> <span class=na>value</span><span class=o>=</span><span class=s>&#39;{&#34;hello&#34;:&#34;world&#34;,&#34;arr&#34;:[1,2,3]}&#39;</span> <span class=na>boxed</span> <span class=na>copyable</span> <span class=na>sort</span> <span class=na>expand-depth</span><span class=o>=</span><span class=s>&#34;2&#34;</span> <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>json-viewer</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>在 Vue 框架中使用：</p><p>Vue 2/3 选项式 API：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>json-viewer</span> <span class=nt>:value</span><span class=o>=</span><span class=s>&#34;JSON.stringify(json)&#34;</span> <span class=na>boxed</span> <span class=na>copyable</span> <span class=na>sort</span> <span class=na>expand</span><span class=nt>-depth</span><span class=err>=&#34;</span><span class=na>2</span><span class=err>&#34;</span> <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>json-viewer</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>json</span><span class=o>:</span> <span class=p>{</span> <span class=nx>hello</span><span class=o>:</span> <span class=s2>&#34;world&#34;</span><span class=p>,</span> <span class=nx>arr</span><span class=o>:</span> <span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>]</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>Vue 3 组合式 API：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span><span class=lnt>8\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>lang</span><span class=o>=</span><span class=s>&#34;ts&#34;</span> <span class=na>setup</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=p>{</span> <span class=nx>ref</span> <span class=p>}</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>json</span> <span class=o>=</span> <span class=nx>ref</span><span class=p>({</span> <span class=nx>hello</span><span class=o>:</span> <span class=s2>&#34;world&#34;</span><span class=p>,</span> <span class=nx>arr</span><span class=o>:</span> <span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=mi>2</span><span class=p>,</span><span class=mi>3</span><span class=p>]</span> <span class=p>})</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>json-viewer</span> <span class=nt>:value</span><span class=o>=</span><span class=s>&#34;JSON.stringify(json)&#34;</span> <span class=na>boxed</span> <span class=na>copyable</span> <span class=na>sort</span> <span class=na>expand</span><span class=nt>-depth</span><span class=err>=&#34;</span><span class=na>2</span><span class=err>&#34;</span> <span class=na>theme</span><span class=o>=</span><span class=s>&#34;dark&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>json-viewer</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p><a href=https://cn.vuejs.org/guide/extras/web-components.html#skipping-component-resolution target=_blank rel=\"external nofollow noopener noreferrer\">跳过组件解析<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>为了让 Vue 知道某些元素应被视为自定义元素并跳过组件解析，我们可以指定 <a href=https://cn.vuejs.org/api/application.html#app-config-compileroptions target=_blank rel=\"external nofollow noopener noreferrer\"><code>compilerOptions.isCustomElement</code> 选项<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>// vite.config.js\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>vue</span> <span class=nx>from</span> <span class=s1>&#39;@vitejs/plugin-vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>vueJsx</span> <span class=nx>from</span> <span class=s1>&#39;@vitejs/plugin-vue-jsx&#39;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>plugins</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vue</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>      <span class=nx>template</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>compilerOptions</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=c1>// 将所有带短横线的标签名都视为自定义元素\n</span></span></span><span class=line><span class=cl>          <span class=nx>isCustomElement</span><span class=o>:</span> <span class=nx>tag</span> <span class=p>=&gt;</span> <span class=nx>tag</span><span class=p>.</span><span class=nx>includes</span><span class=p>(</span><span class=s1>&#39;-&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>        <span class=p>}</span>\n</span></span><span class=line><span class=cl>      <span class=p>}</span>\n</span></span><span class=line><span class=cl>    <span class=p>}),</span>\n</span></span><span class=line><span class=cl>    <span class=nx>vueJsx</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>      <span class=c1>// 将所有带短横线的标签名都视为自定义元素\n</span></span></span><span class=line><span class=cl>      <span class=nx>isCustomElement</span><span class=o>:</span> <span class=nx>tag</span> <span class=p>=&gt;</span> <span class=nx>tag</span><span class=p>.</span><span class=nx>includes</span><span class=p>(</span><span class=s1>&#39;-&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl>    <span class=p>}),</span>\n</span></span><span class=line><span class=cl>  <span class=p>]</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>如果你在 Vue 中使用 ESLint，可能需要配置忽略自定义元素：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>// eslint.config.js\n</span></span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>rules</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=s1>&#39;vue/component-name-in-template-casing&#39;</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>      <span class=s1>&#39;warn&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=s1>&#39;PascalCase&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=nx>registeredComponentsOnly</span><span class=o>:</span> <span class=kc>false</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>        <span class=nx>ignores</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;/^icon-/&#39;</span><span class=p>,</span> <span class=s1>&#39;json-viewer&#39;</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>    <span class=p>],</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=属性><span>属性</span>\n<a href=#%e5%b1%9e%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"alert alert-tip\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z\"/></svg>提示</p><p>在 Vue 等框架中使用时，value 和 copyable 属性的值需要转成字符串传入。</p></div><div class=table-wrapper><table><thead><tr><th style=text-align:left>属性</th><th style=text-align:left>类型</th><th style=text-align:left>默认值</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left>value</td><td style=text-align:left>object / array / string / number / boolean</td><td style=text-align:left>null</td><td style=text-align:left>JSON 数据</td></tr><tr><td style=text-align:left>expand-depth</td><td style=text-align:left>number</td><td style=text-align:left>1</td><td style=text-align:left>初始展开层级</td></tr><tr><td style=text-align:left>copyable</td><td style=text-align:left>boolean / CopyableOptions</td><td style=text-align:left>false</td><td style=text-align:left>启用复制按钮或自定义复制按钮配置（见下表）</td></tr><tr><td style=text-align:left>sort</td><td style=text-align:left>boolean</td><td style=text-align:left>false</td><td style=text-align:left>是否对对象键排序</td></tr><tr><td style=text-align:left>boxed</td><td style=text-align:left>boolean</td><td style=text-align:left>false</td><td style=text-align:left>是否显示边框和内边距</td></tr><tr><td style=text-align:left>theme</td><td style=text-align:left>&rsquo;light&rsquo; / &lsquo;dark&rsquo;</td><td style=text-align:left>&rsquo;light'</td><td style=text-align:left>主题</td></tr><tr><td style=text-align:left>parse</td><td style=text-align:left>boolean</td><td style=text-align:left>true</td><td style=text-align:left>字符串值是否自动解析为 JSON</td></tr></tbody></table></div><h3 class=heading-element id=copyableoptions><span>CopyableOptions</span>\n<a href=#copyableoptions class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th style=text-align:left>属性</th><th style=text-align:left>类型</th><th style=text-align:left>默认值</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left>copyText</td><td style=text-align:left>string</td><td style=text-align:left>Copy</td><td style=text-align:left>复制按钮显示的文本</td></tr><tr><td style=text-align:left>copiedText</td><td style=text-align:left>string</td><td style=text-align:left>Copied</td><td style=text-align:left>复制成功后显示的文本</td></tr><tr><td style=text-align:left>timeout</td><td style=text-align:left>number</td><td style=text-align:left>2000</td><td style=text-align:left>显示 copiedText 的时长 (ms)</td></tr><tr><td style=text-align:left>align</td><td style=text-align:left>&rsquo;left&rsquo; / &lsquo;right&rsquo;</td><td style=text-align:left>right</td><td style=text-align:left>复制按钮对齐方式</td></tr></tbody></table></div><h2 class=heading-element id=事件><span>事件</span>\n<a href=#%e4%ba%8b%e4%bb%b6 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th style=text-align:left>事件</th><th style=text-align:left>说明</th></tr></thead><tbody><tr><td style=text-align:left>copy-success</td><td style=text-align:left>复制成功后触发</td></tr><tr><td style=text-align:left>copy-error</td><td style=text-align:left>复制失败后触发</td></tr><tr><td style=text-align:left>toggle</td><td style=text-align:left>节点折叠/展开时触发</td></tr></tbody></table></div><h2 class=heading-element id=插槽><span>插槽</span>\n<a href=#%e6%8f%92%e6%a7%bd class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>自定义复制按钮：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>json-viewer</span> <span class=na>copyable</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>button</span> <span class=na>slot</span><span class=o>=</span><span class=s>&#34;copy-button&#34;</span><span class=p>&gt;</span>复制 JSON<span class=p>&lt;/</span><span class=nt>button</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>json-viewer</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=license><span>License</span>\n<a href=#license class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://opensource.org/licenses/MIT target=_blank rel=\"external nofollow noopener noreferrer\">MIT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><p>Copyright (c) 2025-present <a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/mmt-webfont/ class=collection-nav-item rel=prev title=Lruihao/mmt-webfont><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/mmt-webfont</span>\n</a><a href=/projects/lruihao/caniuse-embed-element/ class=collection-nav-item rel=next title=Lruihao/caniuse-embed-element><span>Lruihao/caniuse-embed-element</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-04-08 08:42:59\">更新于 2026-04-08&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/json-viewer-element/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/json-viewer-element/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/json-viewer-element/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/json-viewer-element/ data-title=\"A custom element for viewing and interacting with JSON data.\"><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/json-viewer-element/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/json-viewer-element/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/json-viewer-element/ data-title=\"A custom element for viewing and interacting with JSON data.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/json-viewer-element/ data-title=\"A custom element for viewing and interacting with JSON data.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/at-layer/ class=post-nav-item rel=prev title=\"CSS @Layer：构建更高效、更可维护的样式层级\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>CSS @Layer：构建更高效、更可维护的样式层级</a><a href=/projects/lruihao/caniuse-embed-element/ class=post-nav-item rel=next title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#功能特性>功能特性</a></li><li><a href=#使用方法>使用方法</a><ul><li><a href=#安装>安装</a></li><li><a href=#引入>引入</a><ul><li><a href=#作为模块>作为模块</a></li><li><a href=#umd-cdn>UMD (CDN)</a></li></ul></li><li><a href=#基本用法>基本用法</a></li></ul></li><li><a href=#属性>属性</a><ul><li><a href=#copyableoptions>CopyableOptions</a></li></ul></li><li><a href=#事件>事件</a></li><li><a href=#插槽>插槽</a></li><li><a href=#license>License</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/json-viewer-element/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/json-viewer-element/index.md",
    "content": "# A custom element for viewing and interacting with JSON data.\n\n# &lt;json-viewer&gt; Element\n\n简体中文 | [English](https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md)\n\n> 🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\n\n## 功能特性\n\n- 🌟 **Web 组件**：原生，无框架依赖\n- 🎨 **主题**：支持明暗模式\n- 📦 **盒装**：可选边框与内边距\n- 📋 **可复制**：一键复制 JSON\n- 🔑 **排序**：支持键排序\n- 🔍 **展开深度**：可控初始展开层级\n- 🧩 **自定义复制按钮**：slot 插槽支持\n- 🧬 **类型高亮**：多种类型高亮\n- 🛠️ **自定义事件**：支持 copy/toggle 事件监听\n\n## 使用方法\n\n### 安装\n\n```bash\nnpm install json-viewer-element\n```\n\n### 引入\n\n#### 作为模块\n\n```js\nimport 'json-viewer-element'\n```\n\n#### UMD (CDN)\n\n```html\n<script src=\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\"></script>\n```\n\n### 基本用法\n\n手动绑定 value：\n\n```html\n<json-viewer id=\"viewer\" boxed copyable sort expand-depth=\"2\" theme=\"dark\"></json-viewer>\n<script>\n  document.getElementById('viewer').value = { hello: \"world\", arr: [1,2,3] };\n</script>\n```\n\n直接在标签上绑定 value：\n\n```html\n<json-viewer value='{\"hello\":\"world\",\"arr\":[1,2,3]}' boxed copyable sort expand-depth=\"2\" theme=\"dark\"></json-viewer>\n```\n\n在 Vue 框架中使用：\n\nVue 2/3 选项式 API：\n\n```vue\n<template>\n  <json-viewer :value=\"JSON.stringify(json)\" boxed copyable sort expand-depth=\"2\" theme=\"dark\"></json-viewer>\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      json: { hello: \"world\", arr: [1,2,3] },\n    }\n  },\n}\n</script>\n```\n\nVue 3 组合式 API：\n\n```vue\n<script lang=\"ts\" setup>\nimport { ref } from 'vue'\nconst json = ref({ hello: \"world\", arr: [1,2,3] })\n</script>\n\n<template>\n  <json-viewer :value=\"JSON.stringify(json)\" boxed copyable sort expand-depth=\"2\" theme=\"dark\"></json-viewer>\n</template>\n```\n\n> [!TIP]\n>\n> [跳过组件解析](https://cn.vuejs.org/guide/extras/web-components.html#skipping-component-resolution)\n>\n> 为了让 Vue 知道某些元素应被视为自定义元素并跳过组件解析，我们可以指定 [`compilerOptions.isCustomElement` 选项](https://cn.vuejs.org/api/application.html#app-config-compileroptions)。\n\n```js\n// vite.config.js\nimport vue from '@vitejs/plugin-vue'\nimport vueJsx from '@vitejs/plugin-vue-jsx'\n\nexport default {\n  plugins: [\n    vue({\n      template: {\n        compilerOptions: {\n          // 将所有带短横线的标签名都视为自定义元素\n          isCustomElement: tag => tag.includes('-')\n        }\n      }\n    }),\n    vueJsx({\n      // 将所有带短横线的标签名都视为自定义元素\n      isCustomElement: tag => tag.includes('-')\n    }),\n  ]\n}\n```\n\n如果你在 Vue 中使用 ESLint，可能需要配置忽略自定义元素：\n\n```js\n// eslint.config.js\nexport default {\n  rules: {\n    'vue/component-name-in-template-casing': [\n      'warn',\n      'PascalCase',\n      {\n        registeredComponentsOnly: false,\n        ignores: ['/^icon-/', 'json-viewer'],\n      },\n    ],\n  },\n}\n```\n\n## 属性\n\n> [!TIP]\n> 在 Vue 等框架中使用时，value 和 copyable 属性的值需要转成字符串传入。\n\n| 属性         | 类型                                       | 默认值  | 说明                                       |\n| :----------- | :----------------------------------------- | :------ | :----------------------------------------- |\n| value        | object / array / string / number / boolean | null    | JSON 数据                                  |\n| expand-depth | number                                     | 1       | 初始展开层级                               |\n| copyable     | boolean / CopyableOptions                  | false   | 启用复制按钮或自定义复制按钮配置（见下表） |\n| sort         | boolean                                    | false   | 是否对对象键排序                           |\n| boxed        | boolean                                    | false   | 是否显示边框和内边距                       |\n| theme        | 'light' / 'dark'                           | 'light' | 主题                                       |\n| parse        | boolean                                    | true    | 字符串值是否自动解析为 JSON                |\n\n### CopyableOptions\n\n| 属性        | 类型              | 默认值    | 说明                       |\n| :---------- | :---------------- | :-------- | :------------------------- |\n| copyText    | string            | Copy      | 复制按钮显示的文本         |\n| copiedText  | string            | Copied    | 复制成功后显示的文本       |\n| timeout     | number            | 2000      | 显示 copiedText 的时长 (ms) |\n| align       | 'left' / 'right'  | right     | 复制按钮对齐方式           |\n\n## 事件\n\n| 事件         | 说明                |\n| :----------- | :------------------ |\n| copy-success | 复制成功后触发      |\n| copy-error   | 复制失败后触发      |\n| toggle       | 节点折叠/展开时触发 |\n\n## 插槽\n\n自定义复制按钮：\n\n```html\n<json-viewer copyable>\n  <button slot=\"copy-button\">复制 JSON</button>\n</json-viewer>\n```\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n\nCopyright (c) 2025-present [Lruihao](https://github.com/Lruihao)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/json-viewer-element/  \n\n"
  },
  {
    "path": "projects/lruihao/kityminder-core/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>强大的脑图可视化工具 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/kityminder core: 强大的脑图可视化工具\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"强大的脑图可视化工具\"><meta itemprop=description content=\"Lruihao/kityminder core: 强大的脑图可视化工具\"><meta itemprop=datePublished content=\"2024-01-21T06:24:42+00:00\"><meta itemprop=dateModified content=\"2024-07-07T02:44:14+00:00\"><meta itemprop=wordCount content=\"93\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"GitHub,开源项目\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/kityminder-core/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"强大的脑图可视化工具\"><meta property=\"og:description\" content=\"Lruihao/kityminder core: 强大的脑图可视化工具\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-01-21T06:24:42+00:00\"><meta property=\"article:modified_time\" content=\"2024-07-07T02:44:14+00:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"强大的脑图可视化工具\"><meta name=twitter:description content=\"Lruihao/kityminder core: 强大的脑图可视化工具\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/kityminder-core/ title=\"强大的脑图可视化工具 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/900d5e4/ title=\"记一次 Debug 第三方包的过程\"><link rel=next type=text/html href=https://lruihao.cn/years/2023/ title=\"2023 年度总结\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/kityminder-core/index.md title=\"强大的脑图可视化工具 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"强大的脑图可视化工具\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/kityminder-core\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"wordcount\":93,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/kityminder-core\\/\",\"datePublished\":\"2024-01-21T06:24:42+00:00\",\"dateModified\":\"2024-07-07T02:44:14+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/kityminder core: 强大的脑图可视化工具\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/kityminder-core/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/kityminder-core</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><span class=active title=Lruihao/kityminder-core>Lruihao/kityminder-core</span></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/fixit-cli/ class=collection-nav-item rel=prev title=\"用 Node.js 开发一个轻量脚手架\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>26/51</span><a href=/projects/lruihao/coverview/ class=collection-nav-item rel=next title=Lruihao/CoverView><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>强大的脑图可视化工具</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/kityminder-core target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/kityminder-core<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-01-21 06:24:42\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-01-21>2024-01-21</time></span>&nbsp;<span title=\"更新于 2024-07-07 02:44:14\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-07-07>2024-07-07</time></span>&nbsp;<span title=\"93 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=强大的脑图可视化工具><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#简介>简介</a></li><li><a href=#使用>使用</a></li><li><a href=#兼容性>兼容性</a></li><li><a href=#开发说明>开发说明</a></li><li><a href=#联系我们>联系我们</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-07-07，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=kityminder-core data-decreased><span>KityMinder Core</span>\n<a href=#kityminder-core class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>由于原项目 <a href=https://github.com/fex-team/kityminder-core target=_blank rel=\"external nofollow noopener noreferrer\">KityMinder Core<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 <a href=https://www.npmjs.com/package/@cell-x/kityminder-core target=_blank rel=\"external nofollow noopener noreferrer\">@cell-x/kityminder-core<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></div><h2 class=heading-element id=简介><span>简介</span>\n<a href=#%e7%ae%80%e4%bb%8b class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>KityMinder 是一款强大的脑图可视化/编辑工具，由百度 FEX 团队开发并维护。</p><p>本仓库是 KityMinder 的核心实现部分：</p><ul><li>包括脑图数据的可视化展示（Json 格式）</li><li>包括简单的编辑功能（节点创建、编辑、删除）。更加强大编辑功能的 KityMinder 编辑器请移步 <a href=https://github.com/fex-team/kityminder-editor target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-editor<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>不包含第三方格式（FreeMind、XMind、MindManager）的支持，可以加载 <a href=https://github.com/fex-team/kityminder-third-party-protocol target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-protocol<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 来扩展第三方格式支持。</li><li>不包含文件存储的支持，需要自行实现存储。可参照<a href=https://naotu.baidu.com target=_blank rel=\"external nofollow noopener noreferrer\">百度脑图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>中的开源的 fio + 百度网盘方案进行实现。</li></ul><h2 class=heading-element id=使用><span>使用</span>\n<a href=#%e4%bd%bf%e7%94%a8 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>可以参考 <a href=example.html>example.html</a> 进行使用。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span><span class=lnt>7\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>div</span> <span class=nx>id</span><span class=o>=</span><span class=s2>&#34;minder-container&#34;</span><span class=o>&gt;&lt;</span><span class=err>/div&gt;</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span> <span class=nx>src</span><span class=o>=</span><span class=s2>&#34;kityminder.core.min.js&#34;</span><span class=o>&gt;&lt;</span><span class=err>/script&gt;</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=nx>script</span> <span class=nx>type</span><span class=o>=</span><span class=s2>&#34;text/javascript&#34;</span><span class=o>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>minder</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>kityminder</span><span class=p>.</span><span class=nx>Minder</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>renderTo</span><span class=o>:</span> <span class=s1>&#39;#minder-container&#39;</span>\n</span></span><span class=line><span class=cl><span class=p>});</span>\n</span></span><span class=line><span class=cl><span class=o>&lt;</span><span class=err>/script&gt;</span></span></span></code></pre></td></tr></table></div></div></div><p>更多详细的开发资料可以参考 <a href=https://github.com/fex-team/kityminder-core/wiki target=_blank rel=\"external nofollow noopener noreferrer\">wiki<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=兼容性><span>兼容性</span>\n<a href=#%e5%85%bc%e5%ae%b9%e6%80%a7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>KityMinder 基于 SVG 技术实现，支持绝大多数的 HTML5 浏览器，包括：</p><ol><li>Chrome</li><li>Firefox</li><li>Safari</li><li>Internet Explorer 10 或以上</li></ol><h2 class=heading-element id=开发说明><span>开发说明</span>\n<a href=#%e5%bc%80%e5%8f%91%e8%af%b4%e6%98%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install\n</span></span><span class=line><span class=cl>npm run dev</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=联系我们><span>联系我们</span>\n<a href=#%e8%81%94%e7%b3%bb%e6%88%91%e4%bb%ac class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>问题和建议反馈：<a href=https://github.com/fex-team/kityminder-core/issues target=_blank rel=\"external nofollow noopener noreferrer\">Github Issues<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\n邮件组: <a href=mailto:kity@baidu.com target=_blank rel=\"external nofollow noopener noreferrer\">kity@baidu.com<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>\nQQ 讨论群: 374918234</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/fixit-cli/ class=collection-nav-item rel=prev title=\"用 Node.js 开发一个轻量脚手架\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>用 Node.js 开发一个轻量脚手架</span>\n</a><a href=/projects/lruihao/coverview/ class=collection-nav-item rel=next title=Lruihao/CoverView><span>Lruihao/CoverView</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-07-07 02:44:14\">更新于 2024-07-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/kityminder-core/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/kityminder-core/blob/dev/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/kityminder-core/edit/dev/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/kityminder-core/ data-title=强大的脑图可视化工具><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/kityminder-core/><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/kityminder-core/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/kityminder-core/ data-title=强大的脑图可视化工具 data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/kityminder-core/ data-title=强大的脑图可视化工具><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/900d5e4/ class=post-nav-item rel=prev title=\"记一次 Debug 第三方包的过程\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>记一次 Debug 第三方包的过程</a><a href=/years/2023/ class=post-nav-item rel=next title=\"2023 年度总结\">2023 年度总结<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#简介>简介</a></li><li><a href=#使用>使用</a></li><li><a href=#兼容性>兼容性</a></li><li><a href=#开发说明>开发说明</a></li><li><a href=#联系我们>联系我们</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/kityminder-core/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/kityminder-core/index.md",
    "content": "# 强大的脑图可视化工具\n\n# KityMinder Core\n\n> [!NOTE]\n> 由于原项目 [KityMinder Core](https://github.com/fex-team/kityminder-core) 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 [@cell-x/kityminder-core](https://www.npmjs.com/package/@cell-x/kityminder-core)。\n\n## 简介\n\nKityMinder 是一款强大的脑图可视化/编辑工具，由百度 FEX 团队开发并维护。\n\n本仓库是 KityMinder 的核心实现部分：\n\n- 包括脑图数据的可视化展示（Json 格式）\n- 包括简单的编辑功能（节点创建、编辑、删除）。更加强大编辑功能的 KityMinder 编辑器请移步 [kityminder-editor](https://github.com/fex-team/kityminder-editor)\n- 不包含第三方格式（FreeMind、XMind、MindManager）的支持，可以加载 [kityminder-protocol](https://github.com/fex-team/kityminder-third-party-protocol) 来扩展第三方格式支持。\n- 不包含文件存储的支持，需要自行实现存储。可参照[百度脑图](https://naotu.baidu.com)中的开源的 fio + 百度网盘方案进行实现。\n\n## 使用\n\n可以参考 [example.html](example.html) 进行使用。\n\n```js\n<div id=\"minder-container\"></div>\n<script type=\"text/javascript\" src=\"kityminder.core.min.js\"></script>\n<script type=\"text/javascript\">\nvar minder = new kityminder.Minder({\n  renderTo: '#minder-container'\n});\n</script>\n```\n\n更多详细的开发资料可以参考 [wiki](https://github.com/fex-team/kityminder-core/wiki)\n\n## 兼容性\n\nKityMinder 基于 SVG 技术实现，支持绝大多数的 HTML5 浏览器，包括：\n\n1. Chrome\n2. Firefox\n3. Safari\n4. Internet Explorer 10 或以上\n\n## 开发说明\n\n```bash\nnpm install\nnpm run dev\n```\n\n## 联系我们\n\n问题和建议反馈：[Github Issues](https://github.com/fex-team/kityminder-core/issues)\n邮件组: kity@baidu.com\nQQ 讨论群: 374918234\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/kityminder-core/  \n\n"
  },
  {
    "path": "projects/lruihao/lruihao.github.io/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>博客构建档（HTML & Markdown） | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/lruihao.github.io: 博客构建档（HTML & Markdown）\"><meta name=keywords content='acm,backend,blog,frontend,hexo,hexo-theme-next,hugo,hugo-fixit,java,javascript,php,python,study-notes,summary,web-development'><meta itemprop=name content=\"博客构建档（HTML & Markdown）\"><meta itemprop=description content=\"Lruihao/lruihao.github.io: 博客构建档（HTML & Markdown）\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=wordCount content=\"1355\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"acm,backend,blog,frontend,Hexo,hexo-theme-next,Hugo,hugo-fixit,java,javascript,PHP,Python,study-notes,summary,web-development\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"博客构建档（HTML & Markdown）\"><meta property=\"og:description\" content=\"Lruihao/lruihao.github.io: 博客构建档（HTML & Markdown）\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2018-05-28T12:24:11+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-07T02:00:50+00:00\"><meta property=\"article:tag\" content=\"acm\"><meta property=\"article:tag\" content=\"backend\"><meta property=\"article:tag\" content=\"blog\"><meta property=\"article:tag\" content=\"frontend\"><meta property=\"article:tag\" content=\"Hexo\"><meta property=\"article:tag\" content=\"hexo-theme-next\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"博客构建档（HTML & Markdown）\"><meta name=twitter:description content=\"Lruihao/lruihao.github.io: 博客构建档（HTML & Markdown）\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/lruihao.github.io/ title=\"博客构建档（HTML & Markdown） | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/hello-world/ title=\"Hello World\"><link rel=next type=text/html href=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ title=猴子与哪吒><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/lruihao.github.io/index.md title=\"博客构建档（HTML & Markdown） | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"博客构建档（HTML \\u0026 Markdown）\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/lruihao.github.io\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"acm, backend, blog, frontend, hexo, hexo-theme-next, hugo, hugo-fixit, java, javascript, php, python, study-notes, summary, web-development\",\"wordcount\":1355,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/lruihao.github.io\\/\",\"datePublished\":\"2018-05-28T12:24:11+00:00\",\"dateModified\":\"2026-05-07T02:00:50+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/lruihao.github.io: 博客构建档（HTML \\u0026 Markdown）\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/lruihao.github.io/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/lruihao.github.io</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><span class=active title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</span></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><i class=\"fa-solid fa-angle-left collection-nav-item text-secondary\" aria-hidden=true></i><span class=text-secondary>1/51</span><a href=/projects/font-mmt/ class=collection-nav-item rel=next title=沐目体><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>博客构建档（HTML & Markdown）</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/lruihao.github.io target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/lruihao.github.io<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2018-05-28 12:24:11\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2018-05-28>2018-05-28</time></span>&nbsp;<span title=\"更新于 2026-05-07 02:00:50\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-07>2026-05-07</time></span>&nbsp;<span title=\"1355 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1400 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 7 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"博客构建档（HTML & Markdown）\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#2026>2026</a></li><li><a href=#2025>2025</a></li><li><a href=#2024>2024</a></li><li><a href=#2023>2023</a></li><li><a href=#2022>2022</a></li><li><a href=#2021>2021</a></li><li><a href=#2020>2020</a></li><li><a href=#2019>2019</a></li><li><a href=#2018>2018</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=菠菜眾長 data-decreased><span><a href=https://lruihao.cn/ title=主页 target=_blank rel=\"external nofollow noopener noreferrer\">菠菜眾長<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</p></blockquote><p>共计 297 篇文章 by <a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>.</p><h2 class=heading-element id=2026><span>2026</span>\n<a href=#2026 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details open><summary>共计 1 篇文章</summary><ul><li>03-06 <a href=https://lruihao.cn/projects/lruihao/cell-tooltip/ title=\"2026-03-06 06:58:23\" target=_blank rel=\"external nofollow noopener noreferrer\">一个轻量化 Tooltip 组件。<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2025><span>2025</span>\n<a href=#2025 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 14 篇文章</summary><ul><li>12-24 <a href=https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ title=\"2025-12-24 03:31:47\" target=_blank rel=\"external nofollow noopener noreferrer\">A Christmas Easter Egg by JavaScript.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-30 <a href=https://lruihao.cn/projects/lruihao/auto-changelog-plus/ title=\"2025-08-30 15:40:19\" target=_blank rel=\"external nofollow noopener noreferrer\">Command line tool for generating a changelog from git tags and commit history<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-16 <a href=https://lruihao.cn/posts/mermaid-theming/ title=\"2025-08-16 12:37:49\" target=_blank rel=\"external nofollow noopener noreferrer\">让 Mermaid 图表自动跟随系统深浅色<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-05 <a href=https://lruihao.cn/posts/wc-01-prologue/ title=\"2025-08-05 11:31:52\" target=_blank rel=\"external nofollow noopener noreferrer\">黑盒出关・三把钥匙定江湖<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-04 <a href=https://lruihao.cn/posts/code-playground/ title=\"2025-08-04 11:37:24\" target=_blank rel=\"external nofollow noopener noreferrer\">Code Playground<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/projects/lruihao/caniuse-embed-element/ title=\"2025-07-22 03:40:45\" target=_blank rel=\"external nofollow noopener noreferrer\">A custom web component that embeds caniuse.com browser compatibility data for a specific feature.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-19 <a href=https://lruihao.cn/projects/lruihao/json-viewer-element/ title=\"2025-07-19 07:05:07\" target=_blank rel=\"external nofollow noopener noreferrer\">A custom element for viewing and interacting with JSON data.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-18 <a href=https://lruihao.cn/posts/at-layer/ title=\"2025-06-18 10:35:47\" target=_blank rel=\"external nofollow noopener noreferrer\">CSS @layer：构建更高效、更可维护的样式层级<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-11 <a href=https://lruihao.cn/posts/vue-build/ title=\"2025-06-11 10:05:36\" target=_blank rel=\"external nofollow noopener noreferrer\">Vue.js History 模式下的 NGINX 配置与 API 代理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-10 <a href=https://lruihao.cn/projects/lruihao/mmt-webfont/ title=\"2025-04-10 08:35:34\" target=_blank rel=\"external nofollow noopener noreferrer\">The webfont package for the MMT typeface.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-09 <a href=https://lruihao.cn/projects/lruihao/vercel-proxy/ title=\"2025-04-09 02:13:22\" target=_blank rel=\"external nofollow noopener noreferrer\">API proxies powered by Vercel.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-20 <a href=https://lruihao.cn/posts/flexbox/ title=\"2025-01-20 15:56:38\" target=_blank rel=\"external nofollow noopener noreferrer\">CSS Flexbox 布局指南<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-14 <a href=https://lruihao.cn/projects/hugo-fixit/action-component-list/ title=\"2025-01-14 09:10:09\" target=_blank rel=\"external nofollow noopener noreferrer\">Generate a list of all hugo-fixit theme components.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-08 <a href=https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ title=\"2025-01-08 09:20:48\" target=_blank rel=\"external nofollow noopener noreferrer\">A Hugo theme component with asciinema-embed shortcode.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2024><span>2024</span>\n<a href=#2024 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 38 篇文章</summary><ul><li>12-06 <a href=https://lruihao.cn/posts/css-viewport/ title=\"2024-12-06 10:32:22\" target=_blank rel=\"external nofollow noopener noreferrer\">震惊！CSS 竟然能获取视口尺寸？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>12-02 <a href=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ title=\"2024-12-02 07:29:57\" target=_blank rel=\"external nofollow noopener noreferrer\">🌐 A component for site automatic translation.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-22 <a href=https://lruihao.cn/posts/91db0fa/ title=\"2024-11-22 14:01:18\" target=_blank rel=\"external nofollow noopener noreferrer\">Amazon 如何让服务器享受着持续集群安全？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-05 <a href=https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ title=\"2024-11-05 08:23:29\" target=_blank rel=\"external nofollow noopener noreferrer\">🐟 A canvas implemented animation effect of small fish swimming.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-06 <a href=https://lruihao.cn/posts/content-adapters/ title=\"2024-10-06 11:10:22\" target=_blank rel=\"external nofollow noopener noreferrer\">自动获取 GitHub README 内容添加到 Hugo 文章<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-13 <a href=https://lruihao.cn/projects/lruihao/html-demo/ title=\"2024-09-13 02:36:29\" target=_blank rel=\"external nofollow noopener noreferrer\">不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-04 <a href=https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ title=\"2024-09-04 18:10:59\" target=_blank rel=\"external nofollow noopener noreferrer\">⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-22 <a href=https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ title=\"2024-08-22 03:29:22\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo theme component for ATOM feed custom Output Format.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-22 <a href=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ title=\"2024-08-22 03:28:23\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo theme component for JSON feed custom Output Format.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-07 <a href=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ title=\"2024-08-07 05:49:13\" target=_blank rel=\"external nofollow noopener noreferrer\">Mobile devtools component powered by vConsole and eruda.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-29 <a href=https://lruihao.cn/posts/css-round/ title=\"2024-07-29 20:32:39\" target=_blank rel=\"external nofollow noopener noreferrer\">现代 CSS 解决方案：CSS 四舍五入数值单位<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-21 <a href=https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ title=\"2024-07-21 14:02:29\" target=_blank rel=\"external nofollow noopener noreferrer\">A Hugo theme component with reward-log or sponsor-log shortcode.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-17 <a href=https://lruihao.cn/posts/git-summary/ title=\"2024-07-17 16:06:08\" target=_blank rel=\"external nofollow noopener noreferrer\">Git 统计代码量<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-15 <a href=https://lruihao.cn/posts/drop-shadow/ title=\"2024-07-15 10:40:12\" target=_blank rel=\"external nofollow noopener noreferrer\">现代 CSS 解决方案之异形元素怎么设置阴影？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-14 <a href=https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ title=\"2024-07-14 07:39:56\" target=_blank rel=\"external nofollow noopener noreferrer\">🔖 Embed bookmark of FixIt Docs.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-14 <a href=https://lruihao.cn/posts/fixit-docs-bookmark/ title=\"2024-07-14 13:03:31\" target=_blank rel=\"external nofollow noopener noreferrer\">CSS 实现时间轴、背景图 loading 和渐变边框<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-07 <a href=https://lruihao.cn/posts/d1fc0c7/ title=\"2024-07-07 13:54:14\" target=_blank rel=\"external nofollow noopener noreferrer\">探索 Amazon S3 的无限存储潜力<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-28 <a href=https://lruihao.cn/posts/scrollbar-styling/ title=\"2024-06-28 22:29:03\" target=_blank rel=\"external nofollow noopener noreferrer\">标准滚动条控制规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-28 <a href=https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ title=\"2024-06-28 06:56:32\" target=_blank rel=\"external nofollow noopener noreferrer\">A Hugo theme component with caniuse shortcode.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-13 <a href=https://lruihao.cn/posts/aside-toggle-drag/ title=\"2024-06-13 21:03:12\" target=_blank rel=\"external nofollow noopener noreferrer\">如何实现 VSCode 编辑器窗口边界拖拽类似功能<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-09 <a href=https://lruihao.cn/posts/design-principles/ title=\"2024-06-09 02:24:31\" target=_blank rel=\"external nofollow noopener noreferrer\">架构之基：从根儿上了解设计原则<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-06 <a href=https://lruihao.cn/posts/svg-dark-light/ title=\"2024-06-06 22:13:26\" target=_blank rel=\"external nofollow noopener noreferrer\">怎么生成暗黑模式和明亮模式的 SVG 图片？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-20 <a href=https://lruihao.cn/posts/404d6a2/ title=\"2024-05-20 11:41:03\" target=_blank rel=\"external nofollow noopener noreferrer\">坐高铁去柳州吃螺狮粉<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-17 <a href=https://lruihao.cn/projects/vercel-gravatar/ title=\"2024-04-17 12:51:35\" target=_blank rel=\"external nofollow noopener noreferrer\">利用 Vercel 反代 Gravatar 实现镜像加速<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-17 <a href=https://lruihao.cn/projects/lruihao/vercel-gravatar/ title=\"2024-04-17 01:37:06\" target=_blank rel=\"external nofollow noopener noreferrer\">Gravatar Proxy powered by Vercel.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-09 <a href=https://lruihao.cn/projects/hugo-fixit/component-projects/ title=\"2024-04-09 21:38:42\" target=_blank rel=\"external nofollow noopener noreferrer\">🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-04 <a href=https://lruihao.cn/projects/apple-devices-preview/ title=\"2024-04-04 13:23:37\" target=_blank rel=\"external nofollow noopener noreferrer\">临时决定再写一个小工具 - 网站预览图生成器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-02 <a href=https://lruihao.cn/projects/coverview/ title=\"2024-04-02 18:05:34\" target=_blank rel=\"external nofollow noopener noreferrer\">用五天时间给自己制作一个封面图生成工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-28 <a href=https://lruihao.cn/projects/lruihao/coverview/ title=\"2024-03-28 06:14:16\" target=_blank rel=\"external nofollow noopener noreferrer\">🛠 Create awesome cover images for your blog posts quickly.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-26 <a href=https://lruihao.cn/posts/c6bc2d5/ title=\"2024-03-26 12:23:44\" target=_blank rel=\"external nofollow noopener noreferrer\">写文档时英文标题什么时候要大写？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-29 <a href=https://lruihao.cn/posts/overflow-tooltip/ title=\"2024-02-29 16:46:00\" target=_blank rel=\"external nofollow noopener noreferrer\">实现类似于 Element UI 表格的溢出文本提示功能<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-21 <a href=https://lruihao.cn/posts/auto-sizes/ title=\"2024-02-21 10:00:13\" target=_blank rel=\"external nofollow noopener noreferrer\">聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-09 <a href=https://lruihao.cn/years/2023/ title=\"2024-02-09 14:07:24\" target=_blank rel=\"external nofollow noopener noreferrer\">2023 年度总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-21 <a href=https://lruihao.cn/projects/lruihao/kityminder-core/ title=\"2024-01-21 06:24:42\" target=_blank rel=\"external nofollow noopener noreferrer\">强大的脑图可视化工具<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-17 <a href=https://lruihao.cn/posts/900d5e4/ title=\"2024-01-17 14:57:48\" target=_blank rel=\"external nofollow noopener noreferrer\">记一次 Debug 第三方包的过程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-17 <a href=https://lruihao.cn/posts/20b75e9/ title=\"2024-01-17 09:58:58\" target=_blank rel=\"external nofollow noopener noreferrer\">为什么很多教程中都有 foo bar？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-11 <a href=https://lruihao.cn/posts/6550187/ title=\"2024-01-11 10:30:04\" target=_blank rel=\"external nofollow noopener noreferrer\">git submodule: already exists in the index<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-10 <a href=https://lruihao.cn/posts/el-card-collapse/ title=\"2024-01-10 17:06:54\" target=_blank rel=\"external nofollow noopener noreferrer\">给 el-card 添加折叠功能<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2023><span>2023</span>\n<a href=#2023 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 35 篇文章</summary><ul><li>12-22 <a href=https://lruihao.cn/posts/d8ae205/ title=\"2023-12-22 19:58:47\" target=_blank rel=\"external nofollow noopener noreferrer\">尝试在 Python 中使用 Amazon Titan 文本模型<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-28 <a href=https://lruihao.cn/projects/fixit-cli/ title=\"2023-11-28 10:48:07\" target=_blank rel=\"external nofollow noopener noreferrer\">用 Node.js 开发一个轻量脚手架<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-20 <a href=https://lruihao.cn/projects/hugo-fixit/fixit-cli/ title=\"2023-11-20 06:40:09\" target=_blank rel=\"external nofollow noopener noreferrer\">🛠️ A node-based tooling for FixIt site initialization.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-18 <a href=https://lruihao.cn/posts/aws-solution/ title=\"2023-11-18 12:52:37\" target=_blank rel=\"external nofollow noopener noreferrer\">探索 AWS 云上一站式解决方案免费使用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-22 <a href=https://lruihao.cn/posts/ssh-sign/ title=\"2023-10-22 18:59:31\" target=_blank rel=\"external nofollow noopener noreferrer\">SSH 提交签名验证<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/patch-package/ title=\"2023-10-12 22:37:56\" target=_blank rel=\"external nofollow noopener noreferrer\">如何给 npm 包打补丁？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashboard-summary/ title=\"2023-10-12 21:25:18\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘系列总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashborad-widget-usage/ title=\"2023-10-12 20:07:56\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘 - 组件开发<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashborad-template-usage/ title=\"2023-10-12 20:07:20\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘 - 模板使用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashborad-widget-docs/ title=\"2023-10-12 19:41:23\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘 - 组件配置文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashborad-template-docs/ title=\"2023-10-12 19:27:49\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘 - 布局模板文档<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/posts/dashboard-analysis/ title=\"2023-10-12 15:37:30\" target=_blank rel=\"external nofollow noopener noreferrer\">拖拽式仪表盘 - 功能需求分析<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-11 <a href=https://lruihao.cn/posts/markdownlint/ title=\"2023-10-11 14:26:48\" target=_blank rel=\"external nofollow noopener noreferrer\">给你的 Markdown 挑挑刺<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-08 <a href=https://lruihao.cn/posts/cognitive-complexity/ title=\"2023-10-08 09:52:44\" target=_blank rel=\"external nofollow noopener noreferrer\">认知复杂度（Cognitive Complexity）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-26 <a href=https://lruihao.cn/posts/article-structure/ title=\"2023-09-26 15:17:52\" target=_blank rel=\"external nofollow noopener noreferrer\">写作技巧：如何搭建文章的框架结构？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-25 <a href=https://lruihao.cn/projects/el-table-sticky/ title=\"2023-09-25 17:49:58\" target=_blank rel=\"external nofollow noopener noreferrer\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-17 <a href=https://lruihao.cn/posts/vue-fullscreen-toggler/ title=\"2023-09-17 19:44:07\" target=_blank rel=\"external nofollow noopener noreferrer\">封装 Vue FullScreenToggler 组件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-15 <a href=https://lruihao.cn/posts/js-fullscreen/ title=\"2023-09-15 17:29:25\" target=_blank rel=\"external nofollow noopener noreferrer\">JS 实现全屏和退出全屏<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-15 <a href=https://lruihao.cn/posts/translation-guide/ title=\"2023-09-15 11:07:56\" target=_blank rel=\"external nofollow noopener noreferrer\">中文翻译的常见问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-14 <a href=https://lruihao.cn/posts/vue-svg-icon/ title=\"2023-09-14 11:24:48\" target=_blank rel=\"external nofollow noopener noreferrer\">在 Vue 项目中更优雅地使用 icon<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-14 <a href=https://lruihao.cn/posts/vscode-snippets/ title=\"2023-09-14 11:21:56\" target=_blank rel=\"external nofollow noopener noreferrer\">VSCode 添加用户代码片段，自定义用户代码片段<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-02 <a href=https://lruihao.cn/posts/grid-bg-image/ title=\"2023-09-02 10:05:44\" target=_blank rel=\"external nofollow noopener noreferrer\">CSS 如何实现网格背景效果？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-26 <a href=https://lruihao.cn/posts/aws-ec2/ title=\"2023-08-26 17:22:57\" target=_blank rel=\"external nofollow noopener noreferrer\">将 Hugo 博客部署到亚马逊云服务器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-08 <a href=https://lruihao.cn/projects/lruihao/vue-el-demo/ title=\"2023-08-08 01:41:08\" target=_blank rel=\"external nofollow noopener noreferrer\">Vue2 and element-ui related demos<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-20 <a href=https://lruihao.cn/posts/el-backtop-fix/ title=\"2023-07-20 11:08:18\" target=_blank rel=\"external nofollow noopener noreferrer\">用魔法打败魔法 - ElBacktop Fix<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/projects/lruihao/el-table-sticky/ title=\"2023-06-14 14:03:49\" target=_blank rel=\"external nofollow noopener noreferrer\">A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/gen-router/ title=\"2023-06-14 00:11:17\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 Node.js 自动创建 Vue 的路由<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-12 <a href=https://lruihao.cn/posts/sourcetree-husky/ title=\"2023-06-12 10:58:44\" target=_blank rel=\"external nofollow noopener noreferrer\">解决 SourceTree 提交时候 husky 命令失败问题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-03 <a href=https://lruihao.cn/posts/v2-tailwind/ title=\"2023-06-03 17:38:44\" target=_blank rel=\"external nofollow noopener noreferrer\">Vue2 + tailwindcss 初始化<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-14 <a href=https://lruihao.cn/posts/vue2-guid/ title=\"2023-03-14 08:37:59\" target=_blank rel=\"external nofollow noopener noreferrer\">新手向：Vue 2.0 的建议学习顺序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-28 <a href=https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ title=\"2023-02-28 09:12:29\" target=_blank rel=\"external nofollow noopener noreferrer\">🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-12 <a href=https://lruihao.cn/posts/native-img-loading-lazy/ title=\"2023-02-12 19:40:43\" target=_blank rel=\"external nofollow noopener noreferrer\">浏览器 IMG 图片原生懒加载 loading=&ldquo;lazy&rdquo;<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-05 <a href=https://lruihao.cn/posts/browser-rendering/ title=\"2023-02-05 21:02:52\" target=_blank rel=\"external nofollow noopener noreferrer\">浏览器渲染原理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-04 <a href=https://lruihao.cn/posts/document-style-guide/ title=\"2023-02-04 16:04:42\" target=_blank rel=\"external nofollow noopener noreferrer\">中文技术文档的写作规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-11 <a href=https://lruihao.cn/posts/event-loop/ title=\"2023-01-11 11:16:02\" target=_blank rel=\"external nofollow noopener noreferrer\">浏览器原理 - 事件循环<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2022><span>2022</span>\n<a href=#2022 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 20 篇文章</summary><ul><li>12-17 <a href=https://lruihao.cn/years/2022/ title=\"2022-12-17 01:01:30\" target=_blank rel=\"external nofollow noopener noreferrer\">2022 年度总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>12-15 <a href=https://lruihao.cn/posts/homebrew-npm/ title=\"2022-12-15 15:33:30\" target=_blank rel=\"external nofollow noopener noreferrer\">安装 Homebrew 后导致系统中原有的 npm 和 npx 失效<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-10 <a href=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ title=\"2022-10-10 02:50:53\" target=_blank rel=\"external nofollow noopener noreferrer\">基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-30 <a href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ title=\"2022-09-30 09:28:41\" target=_blank rel=\"external nofollow noopener noreferrer\">🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-27 <a href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ title=\"2022-09-27 15:23:38\" target=_blank rel=\"external nofollow noopener noreferrer\">🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-04 <a href=https://lruihao.cn/projects/hugo-fixit/hugo-shell/ title=\"2022-09-04 04:18:42\" target=_blank rel=\"external nofollow noopener noreferrer\">Using frequently-used Hugo commands by shell.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-31 <a href=https://lruihao.cn/posts/beego-install/ title=\"2022-08-31 09:32:44\" target=_blank rel=\"external nofollow noopener noreferrer\">Beego 安装及配置<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-13 <a href=https://lruihao.cn/posts/semver/ title=\"2022-08-13 13:32:03\" target=_blank rel=\"external nofollow noopener noreferrer\">语义版本控制（SemVer）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-12 <a href=https://lruihao.cn/posts/commit-spec/ title=\"2022-08-12 15:37:44\" target=_blank rel=\"external nofollow noopener noreferrer\">Commit Message Spec<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-12 <a href=https://lruihao.cn/posts/electron-summary/ title=\"2022-08-12 11:22:01\" target=_blank rel=\"external nofollow noopener noreferrer\">electron 踩坑总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-08 <a href=https://lruihao.cn/posts/encryption-fe/ title=\"2022-08-08 13:49:22\" target=_blank rel=\"external nofollow noopener noreferrer\">前端页面内容加密总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-07 <a href=https://lruihao.cn/posts/qcloudcdn/ title=\"2022-08-07 14:40:33\" target=_blank rel=\"external nofollow noopener noreferrer\">Node.js + GitHub Actions 自动刷新 CDN<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-07 <a href=https://lruihao.cn/posts/newline/ title=\"2022-08-07 00:10:30\" target=_blank rel=\"external nofollow noopener noreferrer\">不同系统的换行符的差异<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/ohmyzsh-custom/ title=\"2022-07-31 13:54:14\" target=_blank rel=\"external nofollow noopener noreferrer\">自定义 ohmyzsh 主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-30 <a href=https://lruihao.cn/posts/linux-permission/ title=\"2022-07-30 17:15:44\" target=_blank rel=\"external nofollow noopener noreferrer\">linux 文件权限<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-29 <a href=https://lruihao.cn/posts/config4mac/ title=\"2022-07-29 20:22:44\" target=_blank rel=\"external nofollow noopener noreferrer\">Mac 上的开发配置总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-23 <a href=https://lruihao.cn/projects/hugo-fixit/docs/ title=\"2022-07-23 12:17:06\" target=_blank rel=\"external nofollow noopener noreferrer\">📄 The open-source repo for fixit.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-05 <a href=https://lruihao.cn/posts/adb-for-mac/ title=\"2022-07-05 15:39:34\" target=_blank rel=\"external nofollow noopener noreferrer\">Mac 配置 ADB<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-01 <a href=https://lruihao.cn/posts/js-rediscover/ title=\"2022-05-01 10:59:36\" target=_blank rel=\"external nofollow noopener noreferrer\">重新认识 JavaScript<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-30 <a href=https://lruihao.cn/posts/css-scss-var/ title=\"2022-04-30 22:04:29\" target=_blank rel=\"external nofollow noopener noreferrer\">关于 CSS 和 Scss 变量运算那些事<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2021><span>2021</span>\n<a href=#2021 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 19 篇文章</summary><ul><li>12-22 <a href=https://lruihao.cn/posts/gtd/ title=\"2021-12-22 20:17:42\" target=_blank rel=\"external nofollow noopener noreferrer\">Getting Things Done for ios App Reminders and Github issues<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>12-16 <a href=https://lruihao.cn/projects/hugo-fixit/fixit/ title=\"2021-12-16 03:35:27\" target=_blank rel=\"external nofollow noopener noreferrer\">🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-05 <a href=https://lruihao.cn/posts/subl_imgpaste2/ title=\"2021-10-05 21:54:06\" target=_blank rel=\"external nofollow noopener noreferrer\">Sublime 剪贴板图片粘贴插件 —— Markdown 必备<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-05 <a href=https://lruihao.cn/posts/hugo-cardlink/ title=\"2021-10-05 19:33:13\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 添加知乎卡片式链接 Shortcodes<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-05 <a href=https://lruihao.cn/posts/hugo-i18n-zh-tw/ title=\"2021-10-05 19:14:45\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo I18n 添加中文繁體翻譯<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-05 <a href=https://lruihao.cn/posts/hugo-friends/ title=\"2021-10-05 14:14:10\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 友情連結模板<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-04 <a href=https://lruihao.cn/posts/hugo-admin/ title=\"2021-10-04 23:49:00\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 本地管理 Shell 腳本<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-04 <a href=https://lruihao.cn/posts/github-actions/ title=\"2021-10-04 23:46:49\" target=_blank rel=\"external nofollow noopener noreferrer\">Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-03 <a href=https://lruihao.cn/posts/hexo-to-hugo/ title=\"2021-10-03 15:27:58\" target=_blank rel=\"external nofollow noopener noreferrer\">个人博客从 Hexo 迁移至 Hugo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-08 <a href=https://lruihao.cn/projects/lruihao/hugo-blog/ title=\"2021-09-08 12:52:53\" target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao&rsquo;s Note<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-22 <a href=https://lruihao.cn/posts/less-sass-scss/ title=\"2021-06-22 16:39:47\" target=_blank rel=\"external nofollow noopener noreferrer\">less&amp;sass&amp;scss<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-21 <a href=https://lruihao.cn/posts/lightbox/ title=\"2021-06-21 16:18:04\" target=_blank rel=\"external nofollow noopener noreferrer\">Lightbox<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-21 <a href=https://lruihao.cn/years/2020-2021/ title=\"2021-06-21 10:17:38\" target=_blank rel=\"external nofollow noopener noreferrer\">2020&amp;2021 總結<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-24 <a href=https://lruihao.cn/projects/lruihao/watermark/ title=\"2021-05-24 13:05:40\" target=_blank rel=\"external nofollow noopener noreferrer\">Create watermark for webpage and automatic adjust when window resize.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-23 <a href=https://lruihao.cn/projects/cell-watermark/ title=\"2021-05-23 17:15:41\" target=_blank rel=\"external nofollow noopener noreferrer\">Cell Watermark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-04 <a href=https://lruihao.cn/posts/codereview/ title=\"2021-03-04 21:04:18\" target=_blank rel=\"external nofollow noopener noreferrer\">Code Review 怎麼做？新手工程師如何提升「程式碼品質」<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-02 <a href=https://lruihao.cn/projects/bill-note/ title=\"2021-03-02 21:46:40\" target=_blank rel=\"external nofollow noopener noreferrer\">基于 leancloud-storage 实现的无后端记账本<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-01 <a href=https://lruihao.cn/me/whysmoke/ title=\"2021-03-01 01:27:41\" target=_blank rel=\"external nofollow noopener noreferrer\">你为什么吸烟？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-28 <a href=https://lruihao.cn/projects/lruihao/bill-note/ title=\"2021-02-28 03:44:09\" target=_blank rel=\"external nofollow noopener noreferrer\">基于 leancloud-storage 实现的无后端记账本<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2020><span>2020</span>\n<a href=#2020 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 8 篇文章</summary><ul><li>07-25 <a href=https://lruihao.cn/projects/cell-blog/ title=\"2020-07-25 20:51:11\" target=_blank rel=\"external nofollow noopener noreferrer\">cell-blog 功能介绍与安装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-25 <a href=https://lruihao.cn/posts/cell-blog-dev/ title=\"2020-07-25 20:42:42\" target=_blank rel=\"external nofollow noopener noreferrer\">cell-blog 开发记录<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-17 <a href=https://lruihao.cn/projects/lruihao/cell-blog/ title=\"2020-04-17 08:33:39\" target=_blank rel=\"external nofollow noopener noreferrer\">基于 Laravel 7 开发，支持 Markdown 语法的博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-26 <a href=https://lruihao.cn/posts/csdnvisiter/ title=\"2020-03-26 11:08:38\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 Python 刷 csdn 访问量<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-25 <a href=https://lruihao.cn/posts/cron/ title=\"2020-03-25 09:19:44\" target=_blank rel=\"external nofollow noopener noreferrer\">Cron 表达式的基本语法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-25 <a href=https://lruihao.cn/posts/daka/ title=\"2020-03-25 08:22:42\" target=_blank rel=\"external nofollow noopener noreferrer\">新冠疫情未返校未返工第 N 天之“自动打卡”<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-16 <a href=https://lruihao.cn/years/2019/ title=\"2020-01-16 20:01:22\" target=_blank rel=\"external nofollow noopener noreferrer\">2019 年度总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-16 <a href=https://lruihao.cn/posts/sql/ title=\"2020-01-16 19:28:05\" target=_blank rel=\"external nofollow noopener noreferrer\">SQL 总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2019><span>2019</span>\n<a href=#2019 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 71 篇文章</summary><ul><li>11-24 <a href=https://lruihao.cn/projects/cos-album/ title=\"2019-11-24 10:52:34\" target=_blank rel=\"external nofollow noopener noreferrer\">利用腾讯云为静态页面添加“动态”相册<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-23 <a href=https://lruihao.cn/projects/lruihao/cos-album/ title=\"2019-11-23 12:59:05\" target=_blank rel=\"external nofollow noopener noreferrer\">解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-14 <a href=https://lruihao.cn/posts/restful/ title=\"2019-11-14 19:06:05\" target=_blank rel=\"external nofollow noopener noreferrer\">RESTful<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-28 <a href=https://lruihao.cn/posts/phppushurl/ title=\"2019-09-28 18:32:42\" target=_blank rel=\"external nofollow noopener noreferrer\">php 同时主动推送链接到百度，神马等站长平台<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-28 <a href=https://lruihao.cn/posts/phpfile/ title=\"2019-09-28 17:11:17\" target=_blank rel=\"external nofollow noopener noreferrer\">php 按行读取文件信息<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-26 <a href=https://lruihao.cn/projects/lruihao/mmt/ title=\"2019-09-26 12:44:17\" target=_blank rel=\"external nofollow noopener noreferrer\">沐目之，湘也。— 沐目体<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-19 <a href=https://lruihao.cn/posts/site-time/ title=\"2019-09-19 22:03:29\" target=_blank rel=\"external nofollow noopener noreferrer\">设置网站运行时间<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-08 <a href=https://lruihao.cn/posts/async-defer/ title=\"2019-09-08 11:47:50\" target=_blank rel=\"external nofollow noopener noreferrer\">script 的三种加载方式 (async, defer)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-15 <a href=https://lruihao.cn/posts/sublime-text3/ title=\"2019-08-15 20:59:10\" target=_blank rel=\"external nofollow noopener noreferrer\">Sublime Text3 快捷键大全<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-15 <a href=https://lruihao.cn/posts/netbeans/ title=\"2019-08-15 18:36:15\" target=_blank rel=\"external nofollow noopener noreferrer\">NetBeans IDE 开发设置<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-15 <a href=https://lruihao.cn/posts/dev-rules/ title=\"2019-08-15 18:30:31\" target=_blank rel=\"external nofollow noopener noreferrer\">Web 开发规则，代码规范<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-19 <a href=https://lruihao.cn/posts/phpform/ title=\"2019-07-19 11:38:59\" target=_blank rel=\"external nofollow noopener noreferrer\">简单评论模块&ndash;php 表单练习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-15 <a href=https://lruihao.cn/posts/phpfunc/ title=\"2019-07-15 11:37:33\" target=_blank rel=\"external nofollow noopener noreferrer\">php 函数学习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-12 <a href=https://lruihao.cn/posts/wamproot/ title=\"2019-07-12 18:44:36\" target=_blank rel=\"external nofollow noopener noreferrer\">WAMPServer 自定义网站根目录等设置<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-21 <a href=https://lruihao.cn/posts/pysx2/ title=\"2019-06-21 18:46:41\" target=_blank rel=\"external nofollow noopener noreferrer\">python 实训总结Ⅱ<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-18 <a href=https://lruihao.cn/posts/pysx1/ title=\"2019-06-18 18:41:00\" target=_blank rel=\"external nofollow noopener noreferrer\">python 实训总结Ⅰ<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-26 <a href=https://lruihao.cn/posts/judgetriangle/ title=\"2019-05-26 18:50:53\" target=_blank rel=\"external nofollow noopener noreferrer\">判断三角形的黑盒测试<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-17 <a href=https://lruihao.cn/posts/hustoj/ title=\"2019-05-17 23:08:04\" target=_blank rel=\"external nofollow noopener noreferrer\">HustOJ 基础搭建教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-17 <a href=https://lruihao.cn/posts/gcd-bit/ title=\"2019-05-17 09:14:16\" target=_blank rel=\"external nofollow noopener noreferrer\">最大公约数（二进制算法）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-16 <a href=https://lruihao.cn/posts/imgurl/ title=\"2019-05-16 20:31:33\" target=_blank rel=\"external nofollow noopener noreferrer\">宝塔面板安装 ImgURL 图床<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-11 <a href=https://lruihao.cn/posts/mx2wx/ title=\"2019-05-11 17:02:31\" target=_blank rel=\"external nofollow noopener noreferrer\">python 实战：模拟 post 请求定时获取后台数据并打包发送至微信<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-10 <a href=https://lruihao.cn/posts/ifzhushi/ title=\"2019-05-10 13:08:27\" target=_blank rel=\"external nofollow noopener noreferrer\">条件注释判断浏览器版本&lt;!&ndash;[if lt IE 9]>;<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-09 <a href=https://lruihao.cn/posts/pysettime/ title=\"2019-05-09 23:26:54\" target=_blank rel=\"external nofollow noopener noreferrer\">python 设置程序每天 8 点定时执行任务<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-09 <a href=https://lruihao.cn/posts/pyinstallererror/ title=\"2019-05-09 19:05:01\" target=_blank rel=\"external nofollow noopener noreferrer\">安装 pyinstaller 出错的解决办法及 csdn 工具实例打包<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-08 <a href=https://lruihao.cn/posts/singlethreaddown/ title=\"2019-05-08 20:55:02\" target=_blank rel=\"external nofollow noopener noreferrer\">java 实现一个单线程的资源下载器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-07 <a href=https://lruihao.cn/posts/jsoninfo/ title=\"2019-05-07 18:42:47\" target=_blank rel=\"external nofollow noopener noreferrer\">Python 如何操作 Json？<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-07 <a href=https://lruihao.cn/posts/posttest/ title=\"2019-05-07 18:17:05\" target=_blank rel=\"external nofollow noopener noreferrer\">python 发送 post 请求进行简单的接口测试<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-06 <a href=https://lruihao.cn/posts/java-urlreader/ title=\"2019-05-06 17:41:35\" target=_blank rel=\"external nofollow noopener noreferrer\">java 通过 URL 和 URLConnection 访问网页资源<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-02 <a href=https://lruihao.cn/posts/byteio/ title=\"2019-05-02 23:04:32\" target=_blank rel=\"external nofollow noopener noreferrer\">文件加密解密（字节流）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-01 <a href=https://lruihao.cn/posts/javaexception/ title=\"2019-05-01 16:52:21\" target=_blank rel=\"external nofollow noopener noreferrer\">模拟借书系统（java 异常练习）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-27 <a href=https://lruihao.cn/posts/qrcode/ title=\"2019-04-27 14:16:54\" target=_blank rel=\"external nofollow noopener noreferrer\">用 MyQR 制作专属动态二维码 (py 和 exe 版本）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-24 <a href=https://lruihao.cn/posts/1thintervivew/ title=\"2019-04-24 21:23:22\" target=_blank rel=\"external nofollow noopener noreferrer\">第一次面试经历<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-22 <a href=https://lruihao.cn/posts/mmtimgpy/ title=\"2019-04-22 12:46:34\" target=_blank rel=\"external nofollow noopener noreferrer\">python 爬取网站图片（图片链接相似）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-20 <a href=https://lruihao.cn/posts/wxpy1/ title=\"2019-04-20 15:44:57\" target=_blank rel=\"external nofollow noopener noreferrer\">python 玩微信：初探 wxpy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-20 <a href=https://lruihao.cn/posts/wximgpy/ title=\"2019-04-20 13:32:58\" target=_blank rel=\"external nofollow noopener noreferrer\">基本 python 实现的爬取微信好友头像，并拼接成大图<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-19 <a href=https://lruihao.cn/posts/hellojava/ title=\"2019-04-19 19:49:54\" target=_blank rel=\"external nofollow noopener noreferrer\">用记事本编写第一个 java 程序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-18 <a href=https://lruihao.cn/posts/java-regex/ title=\"2019-04-18 22:04:21\" target=_blank rel=\"external nofollow noopener noreferrer\">java 正则表达式练习<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-14 <a href=https://lruihao.cn/posts/stringbuffer/ title=\"2019-04-14 10:12:44\" target=_blank rel=\"external nofollow noopener noreferrer\">java 常用类<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-12 <a href=https://lruihao.cn/posts/hdu1009/ title=\"2019-04-12 16:43:19\" target=_blank rel=\"external nofollow noopener noreferrer\">HDU 1009 FatMouse&rsquo; Trade（贪心）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>04-03 <a href=https://lruihao.cn/posts/ngrok/ title=\"2019-04-03 19:29:43\" target=_blank rel=\"external nofollow noopener noreferrer\">本地搭建网站服务器并穿透内网<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-30 <a href=https://lruihao.cn/posts/ms-html-css/ title=\"2019-03-30 22:58:39\" target=_blank rel=\"external nofollow noopener noreferrer\">前端面试题 - HTML+CSS<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-30 <a href=https://lruihao.cn/posts/bqbj/ title=\"2019-03-30 10:13:33\" target=_blank rel=\"external nofollow noopener noreferrer\">百钱百鸡（枚举法）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-28 <a href=https://lruihao.cn/posts/dacheng/ title=\"2019-03-28 22:50:43\" target=_blank rel=\"external nofollow noopener noreferrer\">大数乘法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-28 <a href=https://lruihao.cn/posts/http2https/ title=\"2019-03-28 19:40:54\" target=_blank rel=\"external nofollow noopener noreferrer\">vps 配置 ssl 及 https 重定向<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-21 <a href=https://lruihao.cn/posts/hexo-theme-next/ title=\"2019-03-21 16:43:19\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo-theme-next @modified LRH<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-21 <a href=https://lruihao.cn/posts/substatus/ title=\"2019-03-21 13:36:25\" target=_blank rel=\"external nofollow noopener noreferrer\">Java 父类子类的对象初始化过程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-21 <a href=https://lruihao.cn/posts/windefault/ title=\"2019-03-21 12:48:30\" target=_blank rel=\"external nofollow noopener noreferrer\">ubuntu + windows 双系统默认启动项设置<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-19 <a href=https://lruihao.cn/posts/player/ title=\"2019-03-19 23:32:56\" target=_blank rel=\"external nofollow noopener noreferrer\">宅音乐播放器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-18 <a href=https://lruihao.cn/posts/bt/ title=\"2019-03-18 21:31:43\" target=_blank rel=\"external nofollow noopener noreferrer\">宝塔面板安装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-18 <a href=https://lruihao.cn/posts/webbiji/ title=\"2019-03-18 20:40:55\" target=_blank rel=\"external nofollow noopener noreferrer\">web 汇总<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-16 <a href=https://lruihao.cn/posts/fanxing/ title=\"2019-03-16 13:56:01\" target=_blank rel=\"external nofollow noopener noreferrer\">java 泛型 test<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-15 <a href=https://lruihao.cn/posts/eclipseuse/ title=\"2019-03-15 23:47:24\" target=_blank rel=\"external nofollow noopener noreferrer\">eclipse 的基本使用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-15 <a href=https://lruihao.cn/posts/qframe/ title=\"2019-03-15 22:31:28\" target=_blank rel=\"external nofollow noopener noreferrer\">匿名类在可视化界面中的应用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-15 <a href=https://lruihao.cn/posts/linkcard/ title=\"2019-03-15 15:21:39\" target=_blank rel=\"external nofollow noopener noreferrer\">模仿知乎卡片式链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-15 <a href=https://lruihao.cn/posts/ubuntutime/ title=\"2019-03-15 14:28:10\" target=_blank rel=\"external nofollow noopener noreferrer\">win10,ubuntu 双系统时间不一致<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-08 <a href=https://lruihao.cn/posts/qqxml/ title=\"2019-03-08 16:52:13\" target=_blank rel=\"external nofollow noopener noreferrer\">QQ 强制生成卡片式链接<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-04 <a href=https://lruihao.cn/posts/cipanadmin/ title=\"2019-03-04 23:08:32\" target=_blank rel=\"external nofollow noopener noreferrer\">磁盘存储器的管理<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>03-04 <a href=https://lruihao.cn/posts/js-vcode/ title=\"2019-03-04 20:53:09\" target=_blank rel=\"external nofollow noopener noreferrer\">JS 验证码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>02-01 <a href=https://lruihao.cn/posts/renative/ title=\"2019-02-01 20:44:40\" target=_blank rel=\"external nofollow noopener noreferrer\">还乡<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-31 <a href=https://lruihao.cn/projects/lruihao/hexo-theme-next/ title=\"2019-01-31 09:57:45\" target=_blank rel=\"external nofollow noopener noreferrer\">Elegant and powerful theme for Hexo.<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-24 <a href=https://lruihao.cn/posts/jicheng/ title=\"2019-01-24 15:07:50\" target=_blank rel=\"external nofollow noopener noreferrer\">java 继承 test<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-22 <a href=https://lruihao.cn/posts/cos-hexo/ title=\"2019-01-22 14:57:08\" target=_blank rel=\"external nofollow noopener noreferrer\">利用腾讯云对象存储 COS 桶托管 hexo 博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-18 <a href=https://lruihao.cn/posts/java-arrays/ title=\"2019-01-18 13:13:10\" target=_blank rel=\"external nofollow noopener noreferrer\">Arrays 类及基本使用<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-16 <a href=https://lruihao.cn/posts/recent-posts/ title=\"2019-01-16 17:50:52\" target=_blank rel=\"external nofollow noopener noreferrer\">在搜索、文章底部、侧栏添加最近文章模块<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-15 <a href=https://lruihao.cn/posts/mathclass/ title=\"2019-01-15 17:33:28\" target=_blank rel=\"external nofollow noopener noreferrer\">java 猜数字小游戏（Math 类）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-15 <a href=https://lruihao.cn/posts/duixiang/ title=\"2019-01-15 16:07:31\" target=_blank rel=\"external nofollow noopener noreferrer\">面向对象基础知识总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-14 <a href=https://lruihao.cn/posts/java-range/ title=\"2019-01-14 17:30:24\" target=_blank rel=\"external nofollow noopener noreferrer\">java 水仙花数（循环）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-14 <a href=https://lruihao.cn/posts/java-input/ title=\"2019-01-14 15:33:46\" target=_blank rel=\"external nofollow noopener noreferrer\">java 录入数据<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-14 <a href=https://lruihao.cn/posts/biaoshi/ title=\"2019-01-14 15:07:57\" target=_blank rel=\"external nofollow noopener noreferrer\">java 标识符<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-12 <a href=https://lruihao.cn/posts/subject-verb/ title=\"2019-01-12 13:02:49\" target=_blank rel=\"external nofollow noopener noreferrer\">英语语法&ndash;主谓一致<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>01-12 <a href=https://lruihao.cn/years/2018/ title=\"2019-01-12 11:09:52\" target=_blank rel=\"external nofollow noopener noreferrer\">2018 年度总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details><h2 class=heading-element id=2018><span>2018</span>\n<a href=#2018 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><details><summary>共计 91 篇文章</summary><ul><li>12-10 <a href=https://lruihao.cn/posts/inversion-3/ title=\"2018-12-10 21:52:30\" target=_blank rel=\"external nofollow noopener noreferrer\">英语语法&ndash;形式倒装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>12-10 <a href=https://lruihao.cn/posts/inversion-2/ title=\"2018-12-10 21:14:51\" target=_blank rel=\"external nofollow noopener noreferrer\">英语语法&ndash;完全倒装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>12-08 <a href=https://lruihao.cn/posts/inversion-1/ title=\"2018-12-08 17:52:39\" target=_blank rel=\"external nofollow noopener noreferrer\">英语语法&ndash;部分倒装<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-24 <a href=https://lruihao.cn/posts/nextplugin/ title=\"2018-11-24 16:54:09\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo 插件及 next 内置样式集<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-17 <a href=https://lruihao.cn/posts/commit-bat/ title=\"2018-11-17 14:25:49\" target=_blank rel=\"external nofollow noopener noreferrer\">通过 bat 批处理文件自动提交博客代码<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-12 <a href=https://lruihao.cn/posts/fas-app/ title=\"2018-11-12 16:04:04\" target=_blank rel=\"external nofollow noopener noreferrer\">博採眾長 app<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-11 <a href=https://lruihao.cn/posts/caddy-file/ title=\"2018-11-11 13:59:27\" target=_blank rel=\"external nofollow noopener noreferrer\">caddy-两步搭建超简单云盘<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-09 <a href=https://lruihao.cn/posts/next-pdf/ title=\"2018-11-09 12:51:48\" target=_blank rel=\"external nofollow noopener noreferrer\">next 添加支持 pdf<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-03 <a href=https://lruihao.cn/posts/js-device/ title=\"2018-11-03 23:35:44\" target=_blank rel=\"external nofollow noopener noreferrer\">js 判断用户设备类型及平台<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>11-03 <a href=https://lruihao.cn/posts/blog-backup/ title=\"2018-11-03 12:49:28\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo 博客源码备份<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-30 <a href=https://lruihao.cn/posts/git/ title=\"2018-10-30 08:59:56\" target=_blank rel=\"external nofollow noopener noreferrer\">Git 常用指令汇总<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-29 <a href=https://lruihao.cn/posts/beian/ title=\"2018-10-29 23:16:26\" target=_blank rel=\"external nofollow noopener noreferrer\">网站备案之旅<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-29 <a href=https://lruihao.cn/posts/shell/ title=\"2018-10-29 11:57:39\" target=_blank rel=\"external nofollow noopener noreferrer\">shell 脚本初体验<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-29 <a href=https://lruihao.cn/posts/web-server-yun/ title=\"2018-10-29 09:15:58\" target=_blank rel=\"external nofollow noopener noreferrer\">云服务器 CentOS 系统搭建 web 服务<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-28 <a href=https://lruihao.cn/posts/href-301/ title=\"2018-10-28 14:22:00\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 js 准确获取当前页面 url 网址信息及 301 重定向实战<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-26 <a href=https://lruihao.cn/posts/web-server-win/ title=\"2018-10-26 21:56:18\" target=_blank rel=\"external nofollow noopener noreferrer\">windows 上搭建 web 服务器<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-26 <a href=https://lruihao.cn/posts/gituse/ title=\"2018-10-26 21:11:02\" target=_blank rel=\"external nofollow noopener noreferrer\">使用 Git 上传代码到 github, coding 等仓库<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-23 <a href=https://lruihao.cn/posts/termux1/ title=\"2018-10-23 22:16:02\" target=_blank rel=\"external nofollow noopener noreferrer\">termux 基本使用教程<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-17 <a href=https://lruihao.cn/posts/web-font/ title=\"2018-10-17 21:38:06\" target=_blank rel=\"external nofollow noopener noreferrer\">ttf 字体压缩<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-15 <a href=https://lruihao.cn/posts/linux-hello-c/ title=\"2018-10-15 21:19:27\" target=_blank rel=\"external nofollow noopener noreferrer\">linux 编程初体验<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-12 <a href=https://lruihao.cn/projects/font-mmt/ title=\"2018-10-12 19:39:19\" target=_blank rel=\"external nofollow noopener noreferrer\">沐目体<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-09 <a href=https://lruihao.cn/posts/liushuixian/ title=\"2018-10-09 16:21:04\" target=_blank rel=\"external nofollow noopener noreferrer\">流水线<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>10-08 <a href=https://lruihao.cn/posts/data/ title=\"2018-10-08 23:01:10\" target=_blank rel=\"external nofollow noopener noreferrer\">计算机数据<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-27 <a href=https://lruihao.cn/posts/night/ title=\"2018-09-27 13:13:31\" target=_blank rel=\"external nofollow noopener noreferrer\">网页夜间效果<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-26 <a href=https://lruihao.cn/posts/crash-cheat/ title=\"2018-09-26 16:36:08\" target=_blank rel=\"external nofollow noopener noreferrer\">网页离开时改变标题“崩溃欺骗”<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-22 <a href=https://lruihao.cn/posts/linux-git/ title=\"2018-09-22 22:28:45\" target=_blank rel=\"external nofollow noopener noreferrer\">linux/centos 下的安装 git<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>09-21 <a href=https://lruihao.cn/posts/mood/ title=\"2018-09-21 21:11:25\" target=_blank rel=\"external nofollow noopener noreferrer\">每一个优秀的人，都有一段沉默的时光<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-31 <a href=https://lruihao.cn/posts/vim/ title=\"2018-08-31 11:46:39\" target=_blank rel=\"external nofollow noopener noreferrer\">Vim 速查表<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-30 <a href=https://lruihao.cn/posts/hexo-wordcount/ title=\"2018-08-30 13:15:50\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo next 主题添加字数统计（2018）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-21 <a href=https://lruihao.cn/posts/hexo-d-error/ title=\"2018-08-21 22:15:01\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo d 出错<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-20 <a href=https://lruihao.cn/posts/dongtaisub/ title=\"2018-08-20 16:16:40\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo 个性化 - next 主题动态显示 subtitle<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-15 <a href=https://lruihao.cn/posts/heart/ title=\"2018-08-15 16:33:12\" target=_blank rel=\"external nofollow noopener noreferrer\">“高逼格”C 语言画心<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-14 <a href=https://lruihao.cn/posts/git-index-lock/ title=\"2018-08-14 19:21:23\" target=_blank rel=\"external nofollow noopener noreferrer\">git index.lock<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-11 <a href=https://lruihao.cn/posts/termux/ title=\"2018-08-11 16:59:05\" target=_blank rel=\"external nofollow noopener noreferrer\">在 Android 上搭建 hexo 博客<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-10 <a href=https://lruihao.cn/posts/nowcoder157a/ title=\"2018-08-10 22:11:00\" target=_blank rel=\"external nofollow noopener noreferrer\">石子阵列（组合数学）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-10 <a href=https://lruihao.cn/posts/codeforces476a/ title=\"2018-08-10 20:13:08\" target=_blank rel=\"external nofollow noopener noreferrer\">Dreamoon and Stairs<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-10 <a href=https://lruihao.cn/posts/codeforces476b/ title=\"2018-08-10 17:44:47\" target=_blank rel=\"external nofollow noopener noreferrer\">Dreamoon and WiFi（组合数学）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-10 <a href=https://lruihao.cn/posts/euclid/ title=\"2018-08-10 10:32:39\" target=_blank rel=\"external nofollow noopener noreferrer\">The equation-SGU106（扩展欧几里得）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-09 <a href=https://lruihao.cn/posts/lightoj1282/ title=\"2018-08-09 20:55:26\" target=_blank rel=\"external nofollow noopener noreferrer\">Leading and Trailing-lightoj1282（快速幂 + 对数运算）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-09 <a href=https://lruihao.cn/posts/cfcontest1017/ title=\"2018-08-09 10:48:00\" target=_blank rel=\"external nofollow noopener noreferrer\">Codeforces Round 502(Div.1 + Div.2)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-08 <a href=https://lruihao.cn/posts/euler/ title=\"2018-08-08 17:10:07\" target=_blank rel=\"external nofollow noopener noreferrer\">欧拉函数<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-06 <a href=https://lruihao.cn/posts/poj1797/ title=\"2018-08-06 09:42:11\" target=_blank rel=\"external nofollow noopener noreferrer\">Heavy Transportation-poj1797(dijkstra 或最大生成树）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-04 <a href=https://lruihao.cn/posts/console-log/ title=\"2018-08-04 16:19:06\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo 博客自定义 console log<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-03 <a href=https://lruihao.cn/posts/poj2387/ title=\"2018-08-03 21:40:33\" target=_blank rel=\"external nofollow noopener noreferrer\">Til the Cows Come Home-poj2387(dijkstra 判断重边）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-03 <a href=https://lruihao.cn/posts/zuiduanlu/ title=\"2018-08-03 16:27:16\" target=_blank rel=\"external nofollow noopener noreferrer\">最短路入门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-02 <a href=https://lruihao.cn/posts/nowcodersummer-5th/ title=\"2018-08-02 21:27:02\" target=_blank rel=\"external nofollow noopener noreferrer\">牛客暑假多校第五场<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-02 <a href=https://lruihao.cn/posts/poj1182/ title=\"2018-08-02 11:10:37\" target=_blank rel=\"external nofollow noopener noreferrer\">食物链-poj1182（带权并查集经典模板）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-01 <a href=https://lruihao.cn/posts/hdu1272/ title=\"2018-08-01 21:45:50\" target=_blank rel=\"external nofollow noopener noreferrer\">小希的迷宫-HDU-1272（并查集 or 树性质）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>08-01 <a href=https://lruihao.cn/posts/hdu3038/ title=\"2018-08-01 11:45:53\" target=_blank rel=\"external nofollow noopener noreferrer\">How Many Answers Are Wrong-hdu3038（带权并查集）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/codeforces680b/ title=\"2018-07-31 19:32:21\" target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Finding Criminals-Codeforces680B<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/codeforces680a/ title=\"2018-07-31 19:22:36\" target=_blank rel=\"external nofollow noopener noreferrer\">Bear and Five Cards-Codeforces680A<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/how-tables/ title=\"2018-07-31 11:12:10\" target=_blank rel=\"external nofollow noopener noreferrer\">how many tables-HDU-1213（并查集求连通域数目）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/poj-1611/ title=\"2018-07-31 11:11:31\" target=_blank rel=\"external nofollow noopener noreferrer\">The-suspects-POJ-1611（并查集）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/poj-2236/ title=\"2018-07-31 11:10:54\" target=_blank rel=\"external nofollow noopener noreferrer\">wireless network-POJ-2236（并查集）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/piles-with-stones/ title=\"2018-07-31 11:09:31\" target=_blank rel=\"external nofollow noopener noreferrer\">Piles-with-stones<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-31 <a href=https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ title=\"2018-07-31 11:08:43\" target=_blank rel=\"external nofollow noopener noreferrer\">畅通工程-HDU-1232（并查集经典模板）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-27 <a href=https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ title=\"2018-07-27 21:56:08\" target=_blank rel=\"external nofollow noopener noreferrer\">牛客练习赛 23<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-26 <a href=https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ title=\"2018-07-26 09:57:32\" target=_blank rel=\"external nofollow noopener noreferrer\">在线离线算法<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-24 <a href=https://lruihao.cn/posts/hdu-1495/ title=\"2018-07-24 15:34:00\" target=_blank rel=\"external nofollow noopener noreferrer\">HDU-1495-非常可乐（bfs 模拟倒水 or 数论）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-23 <a href=https://lruihao.cn/posts/hdu-2612/ title=\"2018-07-23 12:34:42\" target=_blank rel=\"external nofollow noopener noreferrer\">hdu-2612-Find a way（双 bfs）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/poj-3278/ title=\"2018-07-22 12:10:32\" target=_blank rel=\"external nofollow noopener noreferrer\">POJ-3278-Catch That Cow(bfs)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/poj-2251/ title=\"2018-07-22 12:02:32\" target=_blank rel=\"external nofollow noopener noreferrer\">poj-2251-Dungeon Master（三维 bfs 最短路）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/poj-1321/ title=\"2018-07-22 11:58:14\" target=_blank rel=\"external nofollow noopener noreferrer\">poj-1321 棋盘问题（dfs）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/poj-1426/ title=\"2018-07-22 11:57:13\" target=_blank rel=\"external nofollow noopener noreferrer\">poj-1426-Find The Multiple(dfs)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/adjacent-replacements/ title=\"2018-07-22 11:54:14\" target=_blank rel=\"external nofollow noopener noreferrer\">Adjacent Replacements<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/poj-3984/ title=\"2018-07-22 11:50:20\" target=_blank rel=\"external nofollow noopener noreferrer\">poj-3984-迷宫问题 (bfs 路径）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/wannafly-20/ title=\"2018-07-22 11:46:25\" target=_blank rel=\"external nofollow noopener noreferrer\">Wannafly 挑战赛 20-染色<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ title=\"2018-07-22 11:41:15\" target=_blank rel=\"external nofollow noopener noreferrer\">杨辉三角<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/hdu-1241/ title=\"2018-07-22 11:37:20\" target=_blank rel=\"external nofollow noopener noreferrer\">hdu-1241-Oil Deposits (dfs)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ title=\"2018-07-22 11:31:05\" target=_blank rel=\"external nofollow noopener noreferrer\">BFS 求最短路<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/cf-1009/ title=\"2018-07-22 11:25:56\" target=_blank rel=\"external nofollow noopener noreferrer\">Educational Codeforces Round 47 (Rated for Div. 2)<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/dfs_bfs/ title=\"2018-07-22 11:25:14\" target=_blank rel=\"external nofollow noopener noreferrer\">深搜广搜<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-22 <a href=https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ title=\"2018-07-22 10:55:21\" target=_blank rel=\"external nofollow noopener noreferrer\">TaoTao 要吃鸡<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>07-18 <a href=https://lruihao.cn/posts/wannafly-18/ title=\"2018-07-18 08:40:21\" target=_blank rel=\"external nofollow noopener noreferrer\">Wannafly 挑战赛 18-序列<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-16 <a href=https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ title=\"2018-06-16 13:18:43\" target=_blank rel=\"external nofollow noopener noreferrer\">简单背包<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-15 <a href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ title=\"2018-06-15 07:51:21\" target=_blank rel=\"external nofollow noopener noreferrer\">18 湘潭邀请赛参赛队员代表发言<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ title=\"2018-06-14 23:32:47\" target=_blank rel=\"external nofollow noopener noreferrer\">18 湘潭邀请赛总结<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/f-sorting/ title=\"2018-06-14 22:49:27\" target=_blank rel=\"external nofollow noopener noreferrer\">F.sorting<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/k-2018/ title=\"2018-06-14 22:48:16\" target=_blank rel=\"external nofollow noopener noreferrer\">K.2018<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/b-higher/ title=\"2018-06-14 22:47:28\" target=_blank rel=\"external nofollow noopener noreferrer\">B.Higher h-index<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/a-easy/ title=\"2018-06-14 22:36:58\" target=_blank rel=\"external nofollow noopener noreferrer\">A.Easy h-index<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/c-sort/ title=\"2018-06-14 20:23:03\" target=_blank rel=\"external nofollow noopener noreferrer\">sort 排序<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ title=\"2018-06-14 20:22:21\" target=_blank rel=\"external nofollow noopener noreferrer\">位运算<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-14 <a href=https://lruihao.cn/posts/c-with-stl/ title=\"2018-06-14 20:22:06\" target=_blank rel=\"external nofollow noopener noreferrer\">C++ with STL<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-07 <a href=https://lruihao.cn/posts/links/ title=\"2018-06-07 00:06:05\" target=_blank rel=\"external nofollow noopener noreferrer\">各种 Links 汇总与分享<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-03 <a href=https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ title=\"2018-06-03 19:41:32\" target=_blank rel=\"external nofollow noopener noreferrer\">戏子春秋<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>06-01 <a href=https://lruihao.cn/posts/hexobuild/ title=\"2018-06-01 14:34:23\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo+github 搭建个人博客及美化<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-31 <a href=https://lruihao.cn/posts/hexowrite/ title=\"2018-05-31 23:19:22\" target=_blank rel=\"external nofollow noopener noreferrer\">hexo 添加图片，音乐，链接，视频<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-31 <a href=https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ title=\"2018-05-31 10:09:15\" target=_blank rel=\"external nofollow noopener noreferrer\">猴子与哪吒<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-28 <a href=https://lruihao.cn/projects/lruihao/lruihao.github.io/ title=\"2018-05-28 12:24:11\" target=_blank rel=\"external nofollow noopener noreferrer\">博客构建档（HTML & Markdown）<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>05-28 <a href=https://lruihao.cn/posts/hello-world/ title=\"2018-05-28 20:01:01\" target=_blank rel=\"external nofollow noopener noreferrer\">Hello World<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></details></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/font-mmt/ class=collection-nav-item rel=next title=沐目体><span>沐目体</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-07 02:00:50\">更新于 2026-05-07&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/lruihao.github.io/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/lruihao.github.io/blob/main/readme.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/lruihao.github.io/edit/main/readme.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/lruihao.github.io/ data-title=\"博客构建档（HTML & Markdown）\" data-hashtags=acm,backend,blog,frontend,hexo,hexo-theme-next,hugo,hugo-fixit,java,javascript,php,python,study-notes,summary,web-development><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/lruihao.github.io/ data-hashtag=acm><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/lruihao.github.io/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/lruihao.github.io/ data-title=\"博客构建档（HTML & Markdown）\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/lruihao.github.io/ data-title=\"博客构建档（HTML & Markdown）\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/acm/ class=post-tag title=\"标签 - acm\">acm</a><a href=/tags/backend/ class=post-tag title=\"标签 - backend\">backend</a><a href=/tags/blog/ class=post-tag title=\"标签 - blog\">blog</a><a href=/tags/frontend/ class=post-tag title=\"标签 - frontend\">frontend</a><a href=/tags/hexo/ class=post-tag title=\"标签 - Hexo\">Hexo</a><a href=/tags/hexo-theme-next/ class=post-tag title=\"标签 - hexo-theme-next\">hexo-theme-next</a><a href=/tags/hugo/ class=post-tag title=\"标签 - Hugo\">Hugo</a><a href=/tags/hugo-fixit/ class=post-tag title=\"标签 - hugo-fixit\">hugo-fixit</a><a href=/tags/java/ class=post-tag title=\"标签 - java\">java</a><a href=/tags/javascript/ class=post-tag title=\"标签 - javascript\">javascript</a><a href=/tags/php/ class=post-tag title=\"标签 - PHP\">PHP</a><a href=/tags/python/ class=post-tag title=\"标签 - Python\">Python</a><a href=/tags/study-notes/ class=post-tag title=\"标签 - study-notes\">study-notes</a><a href=/tags/summary/ class=post-tag title=\"标签 - summary\">summary</a><a href=/tags/web-development/ class=post-tag title=\"标签 - web-development\">web-development</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/hello-world/ class=post-nav-item rel=prev title=\"Hello World\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Hello World</a><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=post-nav-item rel=next title=猴子与哪吒>猴子与哪吒<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#2026>2026</a></li><li><a href=#2025>2025</a></li><li><a href=#2024>2024</a></li><li><a href=#2023>2023</a></li><li><a href=#2022>2022</a></li><li><a href=#2021>2021</a></li><li><a href=#2020>2020</a></li><li><a href=#2019>2019</a></li><li><a href=#2018>2018</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/lruihao.github.io/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/lruihao.github.io/index.md",
    "content": "# 博客构建档（HTML & Markdown）\n\n# [菠菜眾長](https://lruihao.cn/ \"主页\")\n\n> Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\n\n共计 297 篇文章 by [Lruihao](https://github.com/Lruihao).\n\n## 2026\n\n<details open>\n<summary>共计 1 篇文章</summary>\n\n- 03-06 [一个轻量化 Tooltip 组件。](https://lruihao.cn/projects/lruihao/cell-tooltip/ \"2026-03-06 06:58:23\")\n\n</details>\n\n## 2025\n\n<details>\n<summary>共计 14 篇文章</summary>\n\n- 12-24 [A Christmas Easter Egg by JavaScript.](https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ \"2025-12-24 03:31:47\")\n- 08-30 [Command line tool for generating a changelog from git tags and commit history](https://lruihao.cn/projects/lruihao/auto-changelog-plus/ \"2025-08-30 15:40:19\")\n- 08-16 [让 Mermaid 图表自动跟随系统深浅色](https://lruihao.cn/posts/mermaid-theming/ \"2025-08-16 12:37:49\")\n- 08-05 [黑盒出关・三把钥匙定江湖](https://lruihao.cn/posts/wc-01-prologue/ \"2025-08-05 11:31:52\")\n- 08-04 [Code Playground](https://lruihao.cn/posts/code-playground/ \"2025-08-04 11:37:24\")\n- 07-22 [A custom web component that embeds caniuse.com browser compatibility data for a specific feature.](https://lruihao.cn/projects/lruihao/caniuse-embed-element/ \"2025-07-22 03:40:45\")\n- 07-19 [A custom element for viewing and interacting with JSON data.](https://lruihao.cn/projects/lruihao/json-viewer-element/ \"2025-07-19 07:05:07\")\n- 06-18 [CSS @layer：构建更高效、更可维护的样式层级](https://lruihao.cn/posts/at-layer/ \"2025-06-18 10:35:47\")\n- 06-11 [Vue.js History 模式下的 NGINX 配置与 API 代理](https://lruihao.cn/posts/vue-build/ \"2025-06-11 10:05:36\")\n- 04-10 [The webfont package for the MMT typeface.](https://lruihao.cn/projects/lruihao/mmt-webfont/ \"2025-04-10 08:35:34\")\n- 04-09 [API proxies powered by Vercel.](https://lruihao.cn/projects/lruihao/vercel-proxy/ \"2025-04-09 02:13:22\")\n- 01-20 [CSS Flexbox 布局指南](https://lruihao.cn/posts/flexbox/ \"2025-01-20 15:56:38\")\n- 01-14 [Generate a list of all hugo-fixit theme components.](https://lruihao.cn/projects/hugo-fixit/action-component-list/ \"2025-01-14 09:10:09\")\n- 01-08 [A Hugo theme component with asciinema-embed shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ \"2025-01-08 09:20:48\")\n\n</details>\n\n## 2024\n\n<details>\n<summary>共计 38 篇文章</summary>\n\n- 12-06 [震惊！CSS 竟然能获取视口尺寸？](https://lruihao.cn/posts/css-viewport/ \"2024-12-06 10:32:22\")\n- 12-02 [🌐 A component for site automatic translation.](https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ \"2024-12-02 07:29:57\")\n- 11-22 [Amazon 如何让服务器享受着持续集群安全？](https://lruihao.cn/posts/91db0fa/ \"2024-11-22 14:01:18\")\n- 11-05 [🐟 A canvas implemented animation effect of small fish swimming.](https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ \"2024-11-05 08:23:29\")\n- 10-06 [自动获取 GitHub README 内容添加到 Hugo 文章](https://lruihao.cn/posts/content-adapters/ \"2024-10-06 11:10:22\")\n- 09-13 [不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。](https://lruihao.cn/projects/lruihao/html-demo/ \"2024-09-13 02:36:29\")\n- 09-04 [⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)](https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ \"2024-09-04 18:10:59\")\n- 08-22 [Hugo theme component for ATOM feed custom Output Format.](https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ \"2024-08-22 03:29:22\")\n- 08-22 [Hugo theme component for JSON feed custom Output Format.](https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ \"2024-08-22 03:28:23\")\n- 08-07 [Mobile devtools component powered by vConsole and eruda.](https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ \"2024-08-07 05:49:13\")\n- 07-29 [现代 CSS 解决方案：CSS 四舍五入数值单位](https://lruihao.cn/posts/css-round/ \"2024-07-29 20:32:39\")\n- 07-21 [A Hugo theme component with reward-log or sponsor-log shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ \"2024-07-21 14:02:29\")\n- 07-17 [Git 统计代码量](https://lruihao.cn/posts/git-summary/ \"2024-07-17 16:06:08\")\n- 07-15 [现代 CSS 解决方案之异形元素怎么设置阴影？](https://lruihao.cn/posts/drop-shadow/ \"2024-07-15 10:40:12\")\n- 07-14 [🔖 Embed bookmark of FixIt Docs.](https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ \"2024-07-14 07:39:56\")\n- 07-14 [CSS 实现时间轴、背景图 loading 和渐变边框](https://lruihao.cn/posts/fixit-docs-bookmark/ \"2024-07-14 13:03:31\")\n- 07-07 [探索 Amazon S3 的无限存储潜力](https://lruihao.cn/posts/d1fc0c7/ \"2024-07-07 13:54:14\")\n- 06-28 [标准滚动条控制规范](https://lruihao.cn/posts/scrollbar-styling/ \"2024-06-28 22:29:03\")\n- 06-28 [A Hugo theme component with caniuse shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ \"2024-06-28 06:56:32\")\n- 06-13 [如何实现 VSCode 编辑器窗口边界拖拽类似功能](https://lruihao.cn/posts/aside-toggle-drag/ \"2024-06-13 21:03:12\")\n- 06-09 [架构之基：从根儿上了解设计原则](https://lruihao.cn/posts/design-principles/ \"2024-06-09 02:24:31\")\n- 06-06 [怎么生成暗黑模式和明亮模式的 SVG 图片？](https://lruihao.cn/posts/svg-dark-light/ \"2024-06-06 22:13:26\")\n- 05-20 [坐高铁去柳州吃螺狮粉](https://lruihao.cn/posts/404d6a2/ \"2024-05-20 11:41:03\")\n- 04-17 [利用 Vercel 反代 Gravatar 实现镜像加速](https://lruihao.cn/projects/vercel-gravatar/ \"2024-04-17 12:51:35\")\n- 04-17 [Gravatar Proxy powered by Vercel.](https://lruihao.cn/projects/lruihao/vercel-gravatar/ \"2024-04-17 01:37:06\")\n- 04-09 [🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.](https://lruihao.cn/projects/hugo-fixit/component-projects/ \"2024-04-09 21:38:42\")\n- 04-04 [临时决定再写一个小工具 - 网站预览图生成器](https://lruihao.cn/projects/apple-devices-preview/ \"2024-04-04 13:23:37\")\n- 04-02 [用五天时间给自己制作一个封面图生成工具](https://lruihao.cn/projects/coverview/ \"2024-04-02 18:05:34\")\n- 03-28 [🛠 Create awesome cover images for your blog posts quickly.](https://lruihao.cn/projects/lruihao/coverview/ \"2024-03-28 06:14:16\")\n- 03-26 [写文档时英文标题什么时候要大写？](https://lruihao.cn/posts/c6bc2d5/ \"2024-03-26 12:23:44\")\n- 02-29 [实现类似于 Element UI 表格的溢出文本提示功能](https://lruihao.cn/posts/overflow-tooltip/ \"2024-02-29 16:46:00\")\n- 02-21 [聊聊 Chrome 新增的 sizes=\"auto\" 属性](https://lruihao.cn/posts/auto-sizes/ \"2024-02-21 10:00:13\")\n- 02-09 [2023 年度总结](https://lruihao.cn/years/2023/ \"2024-02-09 14:07:24\")\n- 01-21 [强大的脑图可视化工具](https://lruihao.cn/projects/lruihao/kityminder-core/ \"2024-01-21 06:24:42\")\n- 01-17 [记一次 Debug 第三方包的过程](https://lruihao.cn/posts/900d5e4/ \"2024-01-17 14:57:48\")\n- 01-17 [为什么很多教程中都有 foo bar？](https://lruihao.cn/posts/20b75e9/ \"2024-01-17 09:58:58\")\n- 01-11 [git submodule: already exists in the index](https://lruihao.cn/posts/6550187/ \"2024-01-11 10:30:04\")\n- 01-10 [给 el-card 添加折叠功能](https://lruihao.cn/posts/el-card-collapse/ \"2024-01-10 17:06:54\")\n\n</details>\n\n## 2023\n\n<details>\n<summary>共计 35 篇文章</summary>\n\n- 12-22 [尝试在 Python 中使用 Amazon Titan 文本模型](https://lruihao.cn/posts/d8ae205/ \"2023-12-22 19:58:47\")\n- 11-28 [用 Node.js 开发一个轻量脚手架](https://lruihao.cn/projects/fixit-cli/ \"2023-11-28 10:48:07\")\n- 11-20 [🛠️ A node-based tooling for FixIt site initialization.](https://lruihao.cn/projects/hugo-fixit/fixit-cli/ \"2023-11-20 06:40:09\")\n- 11-18 [探索 AWS 云上一站式解决方案免费使用](https://lruihao.cn/posts/aws-solution/ \"2023-11-18 12:52:37\")\n- 10-22 [SSH 提交签名验证](https://lruihao.cn/posts/ssh-sign/ \"2023-10-22 18:59:31\")\n- 10-12 [如何给 npm 包打补丁？](https://lruihao.cn/posts/patch-package/ \"2023-10-12 22:37:56\")\n- 10-12 [拖拽式仪表盘系列总结](https://lruihao.cn/posts/dashboard-summary/ \"2023-10-12 21:25:18\")\n- 10-12 [拖拽式仪表盘 - 组件开发](https://lruihao.cn/posts/dashborad-widget-usage/ \"2023-10-12 20:07:56\")\n- 10-12 [拖拽式仪表盘 - 模板使用](https://lruihao.cn/posts/dashborad-template-usage/ \"2023-10-12 20:07:20\")\n- 10-12 [拖拽式仪表盘 - 组件配置文档](https://lruihao.cn/posts/dashborad-widget-docs/ \"2023-10-12 19:41:23\")\n- 10-12 [拖拽式仪表盘 - 布局模板文档](https://lruihao.cn/posts/dashborad-template-docs/ \"2023-10-12 19:27:49\")\n- 10-12 [拖拽式仪表盘 - 功能需求分析](https://lruihao.cn/posts/dashboard-analysis/ \"2023-10-12 15:37:30\")\n- 10-11 [给你的 Markdown 挑挑刺](https://lruihao.cn/posts/markdownlint/ \"2023-10-11 14:26:48\")\n- 10-08 [认知复杂度（Cognitive Complexity）](https://lruihao.cn/posts/cognitive-complexity/ \"2023-10-08 09:52:44\")\n- 09-26 [写作技巧：如何搭建文章的框架结构？](https://lruihao.cn/posts/article-structure/ \"2023-09-26 15:17:52\")\n- 09-25 [如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？](https://lruihao.cn/projects/el-table-sticky/ \"2023-09-25 17:49:58\")\n- 09-17 [封装 Vue FullScreenToggler 组件](https://lruihao.cn/posts/vue-fullscreen-toggler/ \"2023-09-17 19:44:07\")\n- 09-15 [JS 实现全屏和退出全屏](https://lruihao.cn/posts/js-fullscreen/ \"2023-09-15 17:29:25\")\n- 09-15 [中文翻译的常见问题](https://lruihao.cn/posts/translation-guide/ \"2023-09-15 11:07:56\")\n- 09-14 [在 Vue 项目中更优雅地使用 icon](https://lruihao.cn/posts/vue-svg-icon/ \"2023-09-14 11:24:48\")\n- 09-14 [VSCode 添加用户代码片段，自定义用户代码片段](https://lruihao.cn/posts/vscode-snippets/ \"2023-09-14 11:21:56\")\n- 09-02 [CSS 如何实现网格背景效果？](https://lruihao.cn/posts/grid-bg-image/ \"2023-09-02 10:05:44\")\n- 08-26 [将 Hugo 博客部署到亚马逊云服务器](https://lruihao.cn/posts/aws-ec2/ \"2023-08-26 17:22:57\")\n- 08-08 [Vue2 and element-ui related demos](https://lruihao.cn/projects/lruihao/vue-el-demo/ \"2023-08-08 01:41:08\")\n- 07-20 [用魔法打败魔法 - ElBacktop Fix](https://lruihao.cn/posts/el-backtop-fix/ \"2023-07-20 11:08:18\")\n- 06-14 [A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.](https://lruihao.cn/projects/lruihao/el-table-sticky/ \"2023-06-14 14:03:49\")\n- 06-14 [使用 Node.js 自动创建 Vue 的路由](https://lruihao.cn/posts/gen-router/ \"2023-06-14 00:11:17\")\n- 06-12 [解决 SourceTree 提交时候 husky 命令失败问题](https://lruihao.cn/posts/sourcetree-husky/ \"2023-06-12 10:58:44\")\n- 06-03 [Vue2 + tailwindcss 初始化](https://lruihao.cn/posts/v2-tailwind/ \"2023-06-03 17:38:44\")\n- 03-14 [新手向：Vue 2.0 的建议学习顺序](https://lruihao.cn/posts/vue2-guid/ \"2023-03-14 08:37:59\")\n- 02-28 [🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ \"2023-02-28 09:12:29\")\n- 02-12 [浏览器 IMG 图片原生懒加载 loading=\"lazy\"](https://lruihao.cn/posts/native-img-loading-lazy/ \"2023-02-12 19:40:43\")\n- 02-05 [浏览器渲染原理](https://lruihao.cn/posts/browser-rendering/ \"2023-02-05 21:02:52\")\n- 02-04 [中文技术文档的写作规范](https://lruihao.cn/posts/document-style-guide/ \"2023-02-04 16:04:42\")\n- 01-11 [浏览器原理 - 事件循环](https://lruihao.cn/posts/event-loop/ \"2023-01-11 11:16:02\")\n\n</details>\n\n## 2022\n\n<details>\n<summary>共计 20 篇文章</summary>\n\n- 12-17 [2022 年度总结](https://lruihao.cn/years/2022/ \"2022-12-17 01:01:30\")\n- 12-15 [安装 Homebrew 后导致系统中原有的 npm 和 npx 失效](https://lruihao.cn/posts/homebrew-npm/ \"2022-12-15 15:33:30\")\n- 10-10 [基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件](https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ \"2022-10-10 02:50:53\")\n- 09-30 [🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.](https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ \"2022-09-30 09:28:41\")\n- 09-27 [🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.](https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ \"2022-09-27 15:23:38\")\n- 09-04 [Using frequently-used Hugo commands by shell.](https://lruihao.cn/projects/hugo-fixit/hugo-shell/ \"2022-09-04 04:18:42\")\n- 08-31 [Beego 安装及配置](https://lruihao.cn/posts/beego-install/ \"2022-08-31 09:32:44\")\n- 08-13 [语义版本控制（SemVer）](https://lruihao.cn/posts/semver/ \"2022-08-13 13:32:03\")\n- 08-12 [Commit Message Spec](https://lruihao.cn/posts/commit-spec/ \"2022-08-12 15:37:44\")\n- 08-12 [electron 踩坑总结](https://lruihao.cn/posts/electron-summary/ \"2022-08-12 11:22:01\")\n- 08-08 [前端页面内容加密总结](https://lruihao.cn/posts/encryption-fe/ \"2022-08-08 13:49:22\")\n- 08-07 [Node.js + GitHub Actions 自动刷新 CDN](https://lruihao.cn/posts/qcloudcdn/ \"2022-08-07 14:40:33\")\n- 08-07 [不同系统的换行符的差异](https://lruihao.cn/posts/newline/ \"2022-08-07 00:10:30\")\n- 07-31 [自定义 ohmyzsh 主题](https://lruihao.cn/posts/ohmyzsh-custom/ \"2022-07-31 13:54:14\")\n- 07-30 [linux 文件权限](https://lruihao.cn/posts/linux-permission/ \"2022-07-30 17:15:44\")\n- 07-29 [Mac 上的开发配置总结](https://lruihao.cn/posts/config4mac/ \"2022-07-29 20:22:44\")\n- 07-23 [📄 The open-source repo for fixit.lruihao.cn](https://lruihao.cn/projects/hugo-fixit/docs/ \"2022-07-23 12:17:06\")\n- 07-05 [Mac 配置 ADB](https://lruihao.cn/posts/adb-for-mac/ \"2022-07-05 15:39:34\")\n- 05-01 [重新认识 JavaScript](https://lruihao.cn/posts/js-rediscover/ \"2022-05-01 10:59:36\")\n- 04-30 [关于 CSS 和 Scss 变量运算那些事](https://lruihao.cn/posts/css-scss-var/ \"2022-04-30 22:04:29\")\n\n</details>\n\n## 2021\n\n<details>\n<summary>共计 19 篇文章</summary>\n\n- 12-22 [Getting Things Done for ios App Reminders and Github issues](https://lruihao.cn/posts/gtd/ \"2021-12-22 20:17:42\")\n- 12-16 [🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题](https://lruihao.cn/projects/hugo-fixit/fixit/ \"2021-12-16 03:35:27\")\n- 10-05 [Sublime 剪贴板图片粘贴插件 —— Markdown 必备](https://lruihao.cn/posts/subl_imgpaste2/ \"2021-10-05 21:54:06\")\n- 10-05 [Hugo 添加知乎卡片式链接 Shortcodes](https://lruihao.cn/posts/hugo-cardlink/ \"2021-10-05 19:33:13\")\n- 10-05 [Hugo I18n 添加中文繁體翻譯](https://lruihao.cn/posts/hugo-i18n-zh-tw/ \"2021-10-05 19:14:45\")\n- 10-05 [Hugo 友情連結模板](https://lruihao.cn/posts/hugo-friends/ \"2021-10-05 14:14:10\")\n- 10-04 [Hugo 本地管理 Shell 腳本](https://lruihao.cn/posts/hugo-admin/ \"2021-10-04 23:49:00\")\n- 10-04 [Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶](https://lruihao.cn/posts/github-actions/ \"2021-10-04 23:46:49\")\n- 10-03 [个人博客从 Hexo 迁移至 Hugo](https://lruihao.cn/posts/hexo-to-hugo/ \"2021-10-03 15:27:58\")\n- 09-08 [Lruihao's Note](https://lruihao.cn/projects/lruihao/hugo-blog/ \"2021-09-08 12:52:53\")\n- 06-22 [less&sass&scss](https://lruihao.cn/posts/less-sass-scss/ \"2021-06-22 16:39:47\")\n- 06-21 [Lightbox](https://lruihao.cn/posts/lightbox/ \"2021-06-21 16:18:04\")\n- 06-21 [2020&2021 總結](https://lruihao.cn/years/2020-2021/ \"2021-06-21 10:17:38\")\n- 05-24 [Create watermark for webpage and automatic adjust when window resize.](https://lruihao.cn/projects/lruihao/watermark/ \"2021-05-24 13:05:40\")\n- 05-23 [Cell Watermark](https://lruihao.cn/projects/cell-watermark/ \"2021-05-23 17:15:41\")\n- 03-04 [Code Review 怎麼做？新手工程師如何提升「程式碼品質」](https://lruihao.cn/posts/codereview/ \"2021-03-04 21:04:18\")\n- 03-02 [基于 leancloud-storage 实现的无后端记账本](https://lruihao.cn/projects/bill-note/ \"2021-03-02 21:46:40\")\n- 03-01 [你为什么吸烟？](https://lruihao.cn/me/whysmoke/ \"2021-03-01 01:27:41\")\n- 02-28 [基于 leancloud-storage 实现的无后端记账本](https://lruihao.cn/projects/lruihao/bill-note/ \"2021-02-28 03:44:09\")\n\n</details>\n\n## 2020\n\n<details>\n<summary>共计 8 篇文章</summary>\n\n- 07-25 [cell-blog 功能介绍与安装](https://lruihao.cn/projects/cell-blog/ \"2020-07-25 20:51:11\")\n- 07-25 [cell-blog 开发记录](https://lruihao.cn/posts/cell-blog-dev/ \"2020-07-25 20:42:42\")\n- 04-17 [基于 Laravel 7 开发，支持 Markdown 语法的博客](https://lruihao.cn/projects/lruihao/cell-blog/ \"2020-04-17 08:33:39\")\n- 03-26 [使用 Python 刷 csdn 访问量](https://lruihao.cn/posts/csdnvisiter/ \"2020-03-26 11:08:38\")\n- 03-25 [Cron 表达式的基本语法](https://lruihao.cn/posts/cron/ \"2020-03-25 09:19:44\")\n- 03-25 [新冠疫情未返校未返工第 N 天之“自动打卡”](https://lruihao.cn/posts/daka/ \"2020-03-25 08:22:42\")\n- 01-16 [2019 年度总结](https://lruihao.cn/years/2019/ \"2020-01-16 20:01:22\")\n- 01-16 [SQL 总结](https://lruihao.cn/posts/sql/ \"2020-01-16 19:28:05\")\n\n</details>\n\n## 2019\n\n<details>\n<summary>共计 71 篇文章</summary>\n\n- 11-24 [利用腾讯云为静态页面添加“动态”相册](https://lruihao.cn/projects/cos-album/ \"2019-11-24 10:52:34\")\n- 11-23 [解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面](https://lruihao.cn/projects/lruihao/cos-album/ \"2019-11-23 12:59:05\")\n- 11-14 [RESTful](https://lruihao.cn/posts/restful/ \"2019-11-14 19:06:05\")\n- 09-28 [php 同时主动推送链接到百度，神马等站长平台](https://lruihao.cn/posts/phppushurl/ \"2019-09-28 18:32:42\")\n- 09-28 [php 按行读取文件信息](https://lruihao.cn/posts/phpfile/ \"2019-09-28 17:11:17\")\n- 09-26 [沐目之，湘也。— 沐目体](https://lruihao.cn/projects/lruihao/mmt/ \"2019-09-26 12:44:17\")\n- 09-19 [设置网站运行时间](https://lruihao.cn/posts/site-time/ \"2019-09-19 22:03:29\")\n- 09-08 [script 的三种加载方式 (async, defer)](https://lruihao.cn/posts/async-defer/ \"2019-09-08 11:47:50\")\n- 08-15 [Sublime Text3 快捷键大全](https://lruihao.cn/posts/sublime-text3/ \"2019-08-15 20:59:10\")\n- 08-15 [NetBeans IDE 开发设置](https://lruihao.cn/posts/netbeans/ \"2019-08-15 18:36:15\")\n- 08-15 [Web 开发规则，代码规范](https://lruihao.cn/posts/dev-rules/ \"2019-08-15 18:30:31\")\n- 07-19 [简单评论模块--php 表单练习](https://lruihao.cn/posts/phpform/ \"2019-07-19 11:38:59\")\n- 07-15 [php 函数学习](https://lruihao.cn/posts/phpfunc/ \"2019-07-15 11:37:33\")\n- 07-12 [WAMPServer 自定义网站根目录等设置](https://lruihao.cn/posts/wamproot/ \"2019-07-12 18:44:36\")\n- 06-21 [python 实训总结Ⅱ](https://lruihao.cn/posts/pysx2/ \"2019-06-21 18:46:41\")\n- 06-18 [python 实训总结Ⅰ](https://lruihao.cn/posts/pysx1/ \"2019-06-18 18:41:00\")\n- 05-26 [判断三角形的黑盒测试](https://lruihao.cn/posts/judgetriangle/ \"2019-05-26 18:50:53\")\n- 05-17 [HustOJ 基础搭建教程](https://lruihao.cn/posts/hustoj/ \"2019-05-17 23:08:04\")\n- 05-17 [最大公约数（二进制算法）](https://lruihao.cn/posts/gcd-bit/ \"2019-05-17 09:14:16\")\n- 05-16 [宝塔面板安装 ImgURL 图床](https://lruihao.cn/posts/imgurl/ \"2019-05-16 20:31:33\")\n- 05-11 [python 实战：模拟 post 请求定时获取后台数据并打包发送至微信](https://lruihao.cn/posts/mx2wx/ \"2019-05-11 17:02:31\")\n- 05-10 [条件注释判断浏览器版本<!--[if lt IE 9]>;](https://lruihao.cn/posts/ifzhushi/ \"2019-05-10 13:08:27\")\n- 05-09 [python 设置程序每天 8 点定时执行任务](https://lruihao.cn/posts/pysettime/ \"2019-05-09 23:26:54\")\n- 05-09 [安装 pyinstaller 出错的解决办法及 csdn 工具实例打包](https://lruihao.cn/posts/pyinstallererror/ \"2019-05-09 19:05:01\")\n- 05-08 [java 实现一个单线程的资源下载器](https://lruihao.cn/posts/singlethreaddown/ \"2019-05-08 20:55:02\")\n- 05-07 [Python 如何操作 Json？](https://lruihao.cn/posts/jsoninfo/ \"2019-05-07 18:42:47\")\n- 05-07 [python 发送 post 请求进行简单的接口测试](https://lruihao.cn/posts/posttest/ \"2019-05-07 18:17:05\")\n- 05-06 [java 通过 URL 和 URLConnection 访问网页资源](https://lruihao.cn/posts/java-urlreader/ \"2019-05-06 17:41:35\")\n- 05-02 [文件加密解密（字节流）](https://lruihao.cn/posts/byteio/ \"2019-05-02 23:04:32\")\n- 05-01 [模拟借书系统（java 异常练习）](https://lruihao.cn/posts/javaexception/ \"2019-05-01 16:52:21\")\n- 04-27 [用 MyQR 制作专属动态二维码 (py 和 exe 版本）](https://lruihao.cn/posts/qrcode/ \"2019-04-27 14:16:54\")\n- 04-24 [第一次面试经历](https://lruihao.cn/posts/1thintervivew/ \"2019-04-24 21:23:22\")\n- 04-22 [python 爬取网站图片（图片链接相似）](https://lruihao.cn/posts/mmtimgpy/ \"2019-04-22 12:46:34\")\n- 04-20 [python 玩微信：初探 wxpy](https://lruihao.cn/posts/wxpy1/ \"2019-04-20 15:44:57\")\n- 04-20 [基本 python 实现的爬取微信好友头像，并拼接成大图](https://lruihao.cn/posts/wximgpy/ \"2019-04-20 13:32:58\")\n- 04-19 [用记事本编写第一个 java 程序](https://lruihao.cn/posts/hellojava/ \"2019-04-19 19:49:54\")\n- 04-18 [java 正则表达式练习](https://lruihao.cn/posts/java-regex/ \"2019-04-18 22:04:21\")\n- 04-14 [java 常用类](https://lruihao.cn/posts/stringbuffer/ \"2019-04-14 10:12:44\")\n- 04-12 [HDU 1009 FatMouse' Trade（贪心）](https://lruihao.cn/posts/hdu1009/ \"2019-04-12 16:43:19\")\n- 04-03 [本地搭建网站服务器并穿透内网](https://lruihao.cn/posts/ngrok/ \"2019-04-03 19:29:43\")\n- 03-30 [前端面试题 - HTML+CSS](https://lruihao.cn/posts/ms-html-css/ \"2019-03-30 22:58:39\")\n- 03-30 [百钱百鸡（枚举法）](https://lruihao.cn/posts/bqbj/ \"2019-03-30 10:13:33\")\n- 03-28 [大数乘法](https://lruihao.cn/posts/dacheng/ \"2019-03-28 22:50:43\")\n- 03-28 [vps 配置 ssl 及 https 重定向](https://lruihao.cn/posts/http2https/ \"2019-03-28 19:40:54\")\n- 03-21 [hexo-theme-next @modified LRH](https://lruihao.cn/posts/hexo-theme-next/ \"2019-03-21 16:43:19\")\n- 03-21 [Java 父类子类的对象初始化过程](https://lruihao.cn/posts/substatus/ \"2019-03-21 13:36:25\")\n- 03-21 [ubuntu + windows 双系统默认启动项设置](https://lruihao.cn/posts/windefault/ \"2019-03-21 12:48:30\")\n- 03-19 [宅音乐播放器](https://lruihao.cn/posts/player/ \"2019-03-19 23:32:56\")\n- 03-18 [宝塔面板安装](https://lruihao.cn/posts/bt/ \"2019-03-18 21:31:43\")\n- 03-18 [web 汇总](https://lruihao.cn/posts/webbiji/ \"2019-03-18 20:40:55\")\n- 03-16 [java 泛型 test](https://lruihao.cn/posts/fanxing/ \"2019-03-16 13:56:01\")\n- 03-15 [eclipse 的基本使用](https://lruihao.cn/posts/eclipseuse/ \"2019-03-15 23:47:24\")\n- 03-15 [匿名类在可视化界面中的应用](https://lruihao.cn/posts/qframe/ \"2019-03-15 22:31:28\")\n- 03-15 [模仿知乎卡片式链接](https://lruihao.cn/posts/linkcard/ \"2019-03-15 15:21:39\")\n- 03-15 [win10,ubuntu 双系统时间不一致](https://lruihao.cn/posts/ubuntutime/ \"2019-03-15 14:28:10\")\n- 03-08 [QQ 强制生成卡片式链接](https://lruihao.cn/posts/qqxml/ \"2019-03-08 16:52:13\")\n- 03-04 [磁盘存储器的管理](https://lruihao.cn/posts/cipanadmin/ \"2019-03-04 23:08:32\")\n- 03-04 [JS 验证码](https://lruihao.cn/posts/js-vcode/ \"2019-03-04 20:53:09\")\n- 02-01 [还乡](https://lruihao.cn/posts/renative/ \"2019-02-01 20:44:40\")\n- 01-31 [Elegant and powerful theme for Hexo.](https://lruihao.cn/projects/lruihao/hexo-theme-next/ \"2019-01-31 09:57:45\")\n- 01-24 [java 继承 test](https://lruihao.cn/posts/jicheng/ \"2019-01-24 15:07:50\")\n- 01-22 [利用腾讯云对象存储 COS 桶托管 hexo 博客](https://lruihao.cn/posts/cos-hexo/ \"2019-01-22 14:57:08\")\n- 01-18 [Arrays 类及基本使用](https://lruihao.cn/posts/java-arrays/ \"2019-01-18 13:13:10\")\n- 01-16 [在搜索、文章底部、侧栏添加最近文章模块](https://lruihao.cn/posts/recent-posts/ \"2019-01-16 17:50:52\")\n- 01-15 [java 猜数字小游戏（Math 类）](https://lruihao.cn/posts/mathclass/ \"2019-01-15 17:33:28\")\n- 01-15 [面向对象基础知识总结](https://lruihao.cn/posts/duixiang/ \"2019-01-15 16:07:31\")\n- 01-14 [java 水仙花数（循环）](https://lruihao.cn/posts/java-range/ \"2019-01-14 17:30:24\")\n- 01-14 [java 录入数据](https://lruihao.cn/posts/java-input/ \"2019-01-14 15:33:46\")\n- 01-14 [java 标识符](https://lruihao.cn/posts/biaoshi/ \"2019-01-14 15:07:57\")\n- 01-12 [英语语法--主谓一致](https://lruihao.cn/posts/subject-verb/ \"2019-01-12 13:02:49\")\n- 01-12 [2018 年度总结](https://lruihao.cn/years/2018/ \"2019-01-12 11:09:52\")\n\n</details>\n\n## 2018\n\n<details>\n<summary>共计 91 篇文章</summary>\n\n- 12-10 [英语语法--形式倒装](https://lruihao.cn/posts/inversion-3/ \"2018-12-10 21:52:30\")\n- 12-10 [英语语法--完全倒装](https://lruihao.cn/posts/inversion-2/ \"2018-12-10 21:14:51\")\n- 12-08 [英语语法--部分倒装](https://lruihao.cn/posts/inversion-1/ \"2018-12-08 17:52:39\")\n- 11-24 [hexo 插件及 next 内置样式集](https://lruihao.cn/posts/nextplugin/ \"2018-11-24 16:54:09\")\n- 11-17 [通过 bat 批处理文件自动提交博客代码](https://lruihao.cn/posts/commit-bat/ \"2018-11-17 14:25:49\")\n- 11-12 [博採眾長 app](https://lruihao.cn/posts/fas-app/ \"2018-11-12 16:04:04\")\n- 11-11 [caddy-两步搭建超简单云盘](https://lruihao.cn/posts/caddy-file/ \"2018-11-11 13:59:27\")\n- 11-09 [next 添加支持 pdf](https://lruihao.cn/posts/next-pdf/ \"2018-11-09 12:51:48\")\n- 11-03 [js 判断用户设备类型及平台](https://lruihao.cn/posts/js-device/ \"2018-11-03 23:35:44\")\n- 11-03 [hexo 博客源码备份](https://lruihao.cn/posts/blog-backup/ \"2018-11-03 12:49:28\")\n- 10-30 [Git 常用指令汇总](https://lruihao.cn/posts/git/ \"2018-10-30 08:59:56\")\n- 10-29 [网站备案之旅](https://lruihao.cn/posts/beian/ \"2018-10-29 23:16:26\")\n- 10-29 [shell 脚本初体验](https://lruihao.cn/posts/shell/ \"2018-10-29 11:57:39\")\n- 10-29 [云服务器 CentOS 系统搭建 web 服务](https://lruihao.cn/posts/web-server-yun/ \"2018-10-29 09:15:58\")\n- 10-28 [使用 js 准确获取当前页面 url 网址信息及 301 重定向实战](https://lruihao.cn/posts/href-301/ \"2018-10-28 14:22:00\")\n- 10-26 [windows 上搭建 web 服务器](https://lruihao.cn/posts/web-server-win/ \"2018-10-26 21:56:18\")\n- 10-26 [使用 Git 上传代码到 github, coding 等仓库](https://lruihao.cn/posts/gituse/ \"2018-10-26 21:11:02\")\n- 10-23 [termux 基本使用教程](https://lruihao.cn/posts/termux1/ \"2018-10-23 22:16:02\")\n- 10-17 [ttf 字体压缩](https://lruihao.cn/posts/web-font/ \"2018-10-17 21:38:06\")\n- 10-15 [linux 编程初体验](https://lruihao.cn/posts/linux-hello-c/ \"2018-10-15 21:19:27\")\n- 10-12 [沐目体](https://lruihao.cn/projects/font-mmt/ \"2018-10-12 19:39:19\")\n- 10-09 [流水线](https://lruihao.cn/posts/liushuixian/ \"2018-10-09 16:21:04\")\n- 10-08 [计算机数据](https://lruihao.cn/posts/data/ \"2018-10-08 23:01:10\")\n- 09-27 [网页夜间效果](https://lruihao.cn/posts/night/ \"2018-09-27 13:13:31\")\n- 09-26 [网页离开时改变标题“崩溃欺骗”](https://lruihao.cn/posts/crash-cheat/ \"2018-09-26 16:36:08\")\n- 09-22 [linux/centos 下的安装 git](https://lruihao.cn/posts/linux-git/ \"2018-09-22 22:28:45\")\n- 09-21 [每一个优秀的人，都有一段沉默的时光](https://lruihao.cn/posts/mood/ \"2018-09-21 21:11:25\")\n- 08-31 [Vim 速查表](https://lruihao.cn/posts/vim/ \"2018-08-31 11:46:39\")\n- 08-30 [hexo next 主题添加字数统计（2018）](https://lruihao.cn/posts/hexo-wordcount/ \"2018-08-30 13:15:50\")\n- 08-21 [hexo d 出错](https://lruihao.cn/posts/hexo-d-error/ \"2018-08-21 22:15:01\")\n- 08-20 [hexo 个性化 - next 主题动态显示 subtitle](https://lruihao.cn/posts/dongtaisub/ \"2018-08-20 16:16:40\")\n- 08-15 [“高逼格”C 语言画心](https://lruihao.cn/posts/heart/ \"2018-08-15 16:33:12\")\n- 08-14 [git index.lock](https://lruihao.cn/posts/git-index-lock/ \"2018-08-14 19:21:23\")\n- 08-11 [在 Android 上搭建 hexo 博客](https://lruihao.cn/posts/termux/ \"2018-08-11 16:59:05\")\n- 08-10 [石子阵列（组合数学）](https://lruihao.cn/posts/nowcoder157a/ \"2018-08-10 22:11:00\")\n- 08-10 [Dreamoon and Stairs](https://lruihao.cn/posts/codeforces476a/ \"2018-08-10 20:13:08\")\n- 08-10 [Dreamoon and WiFi（组合数学）](https://lruihao.cn/posts/codeforces476b/ \"2018-08-10 17:44:47\")\n- 08-10 [The equation-SGU106（扩展欧几里得）](https://lruihao.cn/posts/euclid/ \"2018-08-10 10:32:39\")\n- 08-09 [Leading and Trailing-lightoj1282（快速幂 + 对数运算）](https://lruihao.cn/posts/lightoj1282/ \"2018-08-09 20:55:26\")\n- 08-09 [Codeforces Round 502(Div.1 + Div.2)](https://lruihao.cn/posts/cfcontest1017/ \"2018-08-09 10:48:00\")\n- 08-08 [欧拉函数](https://lruihao.cn/posts/euler/ \"2018-08-08 17:10:07\")\n- 08-06 [Heavy Transportation-poj1797(dijkstra 或最大生成树）](https://lruihao.cn/posts/poj1797/ \"2018-08-06 09:42:11\")\n- 08-04 [hexo 博客自定义 console log](https://lruihao.cn/posts/console-log/ \"2018-08-04 16:19:06\")\n- 08-03 [Til the Cows Come Home-poj2387(dijkstra 判断重边）](https://lruihao.cn/posts/poj2387/ \"2018-08-03 21:40:33\")\n- 08-03 [最短路入门](https://lruihao.cn/posts/zuiduanlu/ \"2018-08-03 16:27:16\")\n- 08-02 [牛客暑假多校第五场](https://lruihao.cn/posts/nowcodersummer-5th/ \"2018-08-02 21:27:02\")\n- 08-02 [食物链-poj1182（带权并查集经典模板）](https://lruihao.cn/posts/poj1182/ \"2018-08-02 11:10:37\")\n- 08-01 [小希的迷宫-HDU-1272（并查集 or 树性质）](https://lruihao.cn/posts/hdu1272/ \"2018-08-01 21:45:50\")\n- 08-01 [How Many Answers Are Wrong-hdu3038（带权并查集）](https://lruihao.cn/posts/hdu3038/ \"2018-08-01 11:45:53\")\n- 07-31 [Bear and Finding Criminals-Codeforces680B](https://lruihao.cn/posts/codeforces680b/ \"2018-07-31 19:32:21\")\n- 07-31 [Bear and Five Cards-Codeforces680A](https://lruihao.cn/posts/codeforces680a/ \"2018-07-31 19:22:36\")\n- 07-31 [how many tables-HDU-1213（并查集求连通域数目）](https://lruihao.cn/posts/how-tables/ \"2018-07-31 11:12:10\")\n- 07-31 [The-suspects-POJ-1611（并查集）](https://lruihao.cn/posts/poj-1611/ \"2018-07-31 11:11:31\")\n- 07-31 [wireless network-POJ-2236（并查集）](https://lruihao.cn/posts/poj-2236/ \"2018-07-31 11:10:54\")\n- 07-31 [Piles-with-stones](https://lruihao.cn/posts/piles-with-stones/ \"2018-07-31 11:09:31\")\n- 07-31 [畅通工程-HDU-1232（并查集经典模板）](https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ \"2018-07-31 11:08:43\")\n- 07-27 [牛客练习赛 23](https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ \"2018-07-27 21:56:08\")\n- 07-26 [在线离线算法](https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ \"2018-07-26 09:57:32\")\n- 07-24 [HDU-1495-非常可乐（bfs 模拟倒水 or 数论）](https://lruihao.cn/posts/hdu-1495/ \"2018-07-24 15:34:00\")\n- 07-23 [hdu-2612-Find a way（双 bfs）](https://lruihao.cn/posts/hdu-2612/ \"2018-07-23 12:34:42\")\n- 07-22 [POJ-3278-Catch That Cow(bfs)](https://lruihao.cn/posts/poj-3278/ \"2018-07-22 12:10:32\")\n- 07-22 [poj-2251-Dungeon Master（三维 bfs 最短路）](https://lruihao.cn/posts/poj-2251/ \"2018-07-22 12:02:32\")\n- 07-22 [poj-1321 棋盘问题（dfs）](https://lruihao.cn/posts/poj-1321/ \"2018-07-22 11:58:14\")\n- 07-22 [poj-1426-Find The Multiple(dfs)](https://lruihao.cn/posts/poj-1426/ \"2018-07-22 11:57:13\")\n- 07-22 [Adjacent Replacements](https://lruihao.cn/posts/adjacent-replacements/ \"2018-07-22 11:54:14\")\n- 07-22 [poj-3984-迷宫问题 (bfs 路径）](https://lruihao.cn/posts/poj-3984/ \"2018-07-22 11:50:20\")\n- 07-22 [Wannafly 挑战赛 20-染色](https://lruihao.cn/posts/wannafly-20/ \"2018-07-22 11:46:25\")\n- 07-22 [杨辉三角](https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ \"2018-07-22 11:41:15\")\n- 07-22 [hdu-1241-Oil Deposits (dfs)](https://lruihao.cn/posts/hdu-1241/ \"2018-07-22 11:37:20\")\n- 07-22 [BFS 求最短路](https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ \"2018-07-22 11:31:05\")\n- 07-22 [Educational Codeforces Round 47 (Rated for Div. 2)](https://lruihao.cn/posts/cf-1009/ \"2018-07-22 11:25:56\")\n- 07-22 [深搜广搜](https://lruihao.cn/posts/dfs_bfs/ \"2018-07-22 11:25:14\")\n- 07-22 [TaoTao 要吃鸡](https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ \"2018-07-22 10:55:21\")\n- 07-18 [Wannafly 挑战赛 18-序列](https://lruihao.cn/posts/wannafly-18/ \"2018-07-18 08:40:21\")\n- 06-16 [简单背包](https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ \"2018-06-16 13:18:43\")\n- 06-15 [18 湘潭邀请赛参赛队员代表发言](https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ \"2018-06-15 07:51:21\")\n- 06-14 [18 湘潭邀请赛总结](https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ \"2018-06-14 23:32:47\")\n- 06-14 [F.sorting](https://lruihao.cn/posts/f-sorting/ \"2018-06-14 22:49:27\")\n- 06-14 [K.2018](https://lruihao.cn/posts/k-2018/ \"2018-06-14 22:48:16\")\n- 06-14 [B.Higher h-index](https://lruihao.cn/posts/b-higher/ \"2018-06-14 22:47:28\")\n- 06-14 [A.Easy h-index](https://lruihao.cn/posts/a-easy/ \"2018-06-14 22:36:58\")\n- 06-14 [sort 排序](https://lruihao.cn/posts/c-sort/ \"2018-06-14 20:23:03\")\n- 06-14 [位运算](https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ \"2018-06-14 20:22:21\")\n- 06-14 [C++ with STL](https://lruihao.cn/posts/c-with-stl/ \"2018-06-14 20:22:06\")\n- 06-07 [各种 Links 汇总与分享](https://lruihao.cn/posts/links/ \"2018-06-07 00:06:05\")\n- 06-03 [戏子春秋](https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ \"2018-06-03 19:41:32\")\n- 06-01 [hexo+github 搭建个人博客及美化](https://lruihao.cn/posts/hexobuild/ \"2018-06-01 14:34:23\")\n- 05-31 [hexo 添加图片，音乐，链接，视频](https://lruihao.cn/posts/hexowrite/ \"2018-05-31 23:19:22\")\n- 05-31 [猴子与哪吒](https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ \"2018-05-31 10:09:15\")\n- 05-28 [博客构建档（HTML & Markdown）](https://lruihao.cn/projects/lruihao/lruihao.github.io/ \"2018-05-28 12:24:11\")\n- 05-28 [Hello World](https://lruihao.cn/posts/hello-world/ \"2018-05-28 20:01:01\")\n\n</details>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/lruihao.github.io/  \n\n"
  },
  {
    "path": "projects/lruihao/mmt/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>沐目之，湘也。— 沐目体 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/MMT: 沐目之，湘也。— 沐目体\"><meta name=keywords content='font,mmt'><meta itemprop=name content=\"沐目之，湘也。— 沐目体\"><meta itemprop=description content=\"Lruihao/MMT: 沐目之，湘也。— 沐目体\"><meta itemprop=datePublished content=\"2019-09-26T12:44:17+00:00\"><meta itemprop=dateModified content=\"2025-08-06T09:23:14+00:00\"><meta itemprop=wordCount content=\"1\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"font,mmt\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/mmt/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"沐目之，湘也。— 沐目体\"><meta property=\"og:description\" content=\"Lruihao/MMT: 沐目之，湘也。— 沐目体\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2019-09-26T12:44:17+00:00\"><meta property=\"article:modified_time\" content=\"2025-08-06T09:23:14+00:00\"><meta property=\"article:tag\" content=\"font\"><meta property=\"article:tag\" content=\"mmt\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"沐目之，湘也。— 沐目体\"><meta name=twitter:description content=\"Lruihao/MMT: 沐目之，湘也。— 沐目体\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/mmt/ title=\"沐目之，湘也。— 沐目体 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/site-time/ title=设置网站运行时间><link rel=next type=text/html href=https://lruihao.cn/posts/phpfile/ title=\"php 按行读取文件信息\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/mmt/index.md title=\"沐目之，湘也。— 沐目体 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"沐目之，湘也。— 沐目体\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/mmt\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"font, mmt\",\"wordcount\":1,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/mmt\\/\",\"datePublished\":\"2019-09-26T12:44:17+00:00\",\"dateModified\":\"2025-08-06T09:23:14+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/MMT: 沐目之，湘也。— 沐目体\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/mmt/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/MMT</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><span class=active title=Lruihao/MMT>Lruihao/MMT</span></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/hexo-theme-next/ class=collection-nav-item rel=prev title=Lruihao/hexo-theme-next><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>4/51</span><a href=/projects/lruihao/cos-album/ class=collection-nav-item rel=next title=Lruihao/cos-album><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>沐目之，湘也。— 沐目体</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/MMT target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/MMT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/mmt-webfont/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2019-09-26 12:44:17\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-09-26>2019-09-26</time></span>&nbsp;<span title=\"更新于 2025-08-06 09:23:14\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-08-06>2025-08-06</time></span>&nbsp;<span title=\"1 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"沐目之，湘也。— 沐目体\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-08-06，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><blockquote><p><a href=https://lruihao.cn/projects/font-mmt/ target=_blank rel=\"external nofollow noopener noreferrer\">关于沐目体<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></blockquote></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/hexo-theme-next/ class=collection-nav-item rel=prev title=Lruihao/hexo-theme-next><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/hexo-theme-next</span>\n</a><a href=/projects/lruihao/cos-album/ class=collection-nav-item rel=next title=Lruihao/cos-album><span>Lruihao/cos-album</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-08-06 09:23:14\">更新于 2025-08-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/mmt/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/MMT/blob/master/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/MMT/edit/master/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/mmt/ data-title=\"沐目之，湘也。— 沐目体\" data-hashtags=font,mmt><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/mmt/ data-hashtag=font><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/mmt/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/mmt/ data-title=\"沐目之，湘也。— 沐目体\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/mmt/ data-title=\"沐目之，湘也。— 沐目体\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/font/ class=post-tag title=\"标签 - font\">font</a><a href=/tags/mmt/ class=post-tag title=\"标签 - mmt\">mmt</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/site-time/ class=post-nav-item rel=prev title=设置网站运行时间><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>设置网站运行时间</a><a href=/posts/phpfile/ class=post-nav-item rel=next title=\"Php 按行读取文件信息\">Php 按行读取文件信息<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/mmt/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/mmt/index.md",
    "content": "# 沐目之，湘也。— 沐目体\n\n> [关于沐目体](https://lruihao.cn/projects/font-mmt/)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/mmt/  \n\n"
  },
  {
    "path": "projects/lruihao/mmt-webfont/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>The webfont package for the MMT typeface. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\"><meta name=keywords content='cjk,mmt,vue3,webfont'><meta itemprop=name content=\"The webfont package for the MMT typeface.\"><meta itemprop=description content=\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\"><meta itemprop=datePublished content=\"2025-04-10T08:35:34+00:00\"><meta itemprop=dateModified content=\"2026-01-05T07:25:04+00:00\"><meta itemprop=wordCount content=\"88\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"cjk,mmt,vue3,webfont\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"The webfont package for the MMT typeface.\"><meta property=\"og:description\" content=\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-04-10T08:35:34+00:00\"><meta property=\"article:modified_time\" content=\"2026-01-05T07:25:04+00:00\"><meta property=\"article:tag\" content=\"cjk\"><meta property=\"article:tag\" content=\"mmt\"><meta property=\"article:tag\" content=\"vue3\"><meta property=\"article:tag\" content=\"webfont\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"The webfont package for the MMT typeface.\"><meta name=twitter:description content=\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/mmt-webfont/ title=\"The webfont package for the MMT typeface. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/vercel-proxy/ title=\"API proxies powered by Vercel.\"><link rel=next type=text/html href=https://lruihao.cn/posts/vue-build/ title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/mmt-webfont/index.md title=\"The webfont package for the MMT typeface. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"The webfont package for the MMT typeface.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/mmt-webfont\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"cjk, mmt, vue3, webfont\",\"wordcount\":88,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/mmt-webfont\\/\",\"datePublished\":\"2025-04-10T08:35:34+00:00\",\"dateModified\":\"2026-01-05T07:25:04+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/mmt-webfont/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/mmt-webfont</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><span class=active title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</span></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/vercel-proxy/ class=collection-nav-item rel=prev title=Lruihao/vercel-proxy><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>46/51</span><a href=/projects/lruihao/json-viewer-element/ class=collection-nav-item rel=next title=Lruihao/json-viewer-element><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>The webfont package for the MMT typeface.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/mmt-webfont target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/mmt-webfont<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/mmt-webfont/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-04-10 08:35:34\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-04-10>2025-04-10</time></span>&nbsp;<span title=\"更新于 2026-01-05 07:25:04\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-01-05>2026-01-05</time></span>&nbsp;<span title=\"88 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"The webfont package for the MMT typeface.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#demo>Demo</a></li><li><a href=#installation>Installation</a><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul></li><li><a href=#usage>Usage</a></li></ul></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition note open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=true></i>注意<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2026-01-05，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=mmt-webfont-package data-decreased><span>MMT webfont package</span>\n<a href=#mmt-webfont-package class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>The webfont package for the <a href=https://github.com/Lruihao/mmt target=_blank rel=\"external nofollow noopener noreferrer\">MMT<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> typeface.</p><h2 class=heading-element id=demo><span>Demo</span>\n<a href=#demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p><a href=https://lruihao.github.io/mmt-webfont/ target=_blank rel=\"external nofollow noopener noreferrer\">MMT typeface online demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p><h2 class=heading-element id=installation><span>Installation</span>\n<a href=#installation class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=browser><span>Browser</span>\n<a href=#browser class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>The link embedding method can be used by web pages, mini-programs, and other platforms that support loading CSS styles.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>link</span> <span class=na>rel</span><span class=o>=</span><span class=s>&#34;stylesheet&#34;</span> <span class=na>href</span><span class=o>=</span><span class=s>&#34;https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css&#34;</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=p>@</span><span class=k>import</span> <span class=nt>url</span><span class=o>(</span><span class=s1>&#39;https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css&#39;</span><span class=o>)</span><span class=p>;</span></span></span></code></pre></td></tr></table></div></div></div><h3 class=heading-element id=npm><span>NPM</span>\n<a href=#npm class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>To use the MMT webfont in your project, you can install it via npm:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install mmt-webfont</span></span></code></pre></td></tr></table></div></div></div><p>Then, you can import the CSS file in your project:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>import</span> <span class=s1>&#39;mmt-webfont/dist/result.css&#39;</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=usage><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Restricted font usage area:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-css\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-css data-lang=css><span class=line><span class=cl><span class=nt>article</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>font-family</span><span class=p>:</span> <span class=s1>&#39;MMT&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/vercel-proxy/ class=collection-nav-item rel=prev title=Lruihao/vercel-proxy><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/vercel-proxy</span>\n</a><a href=/projects/lruihao/json-viewer-element/ class=collection-nav-item rel=next title=Lruihao/json-viewer-element><span>Lruihao/json-viewer-element</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-01-05 07:25:04\">更新于 2026-01-05&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/mmt-webfont/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/mmt-webfont/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/mmt-webfont/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/mmt-webfont/ data-title=\"The webfont package for the MMT typeface.\" data-hashtags=cjk,mmt,vue3,webfont><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/mmt-webfont/ data-hashtag=cjk><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/mmt-webfont/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/mmt-webfont/ data-title=\"The webfont package for the MMT typeface.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/mmt-webfont/ data-title=\"The webfont package for the MMT typeface.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cjk/ class=post-tag title=\"标签 - cjk\">cjk</a><a href=/tags/mmt/ class=post-tag title=\"标签 - mmt\">mmt</a><a href=/tags/vue3/ class=post-tag title=\"标签 - vue3\">vue3</a><a href=/tags/webfont/ class=post-tag title=\"标签 - webfont\">webfont</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/vercel-proxy/ class=post-nav-item rel=prev title=Lruihao/vercel-proxy><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/vercel-proxy</a><a href=/posts/vue-build/ class=post-nav-item rel=next title=\"Vue.js History 模式下的 NGINX 配置与 API 代理\">Vue.js History 模式下的 NGINX 配置与 API 代理<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#demo>Demo</a></li><li><a href=#installation>Installation</a><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul></li><li><a href=#usage>Usage</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/mmt-webfont/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/mmt-webfont/index.md",
    "content": "# The webfont package for the MMT typeface.\n\n# MMT webfont package\n\nThe webfont package for the [MMT](https://github.com/Lruihao/mmt) typeface.\n\n## Demo\n\n[MMT typeface online demo](https://lruihao.github.io/mmt-webfont/)\n\n## Installation\n\n### Browser\n\nThe link embedding method can be used by web pages, mini-programs, and other platforms that support loading CSS styles.\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css\">\n```\n\n```css\n@import url('https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css');\n```\n\n### NPM\n\nTo use the MMT webfont in your project, you can install it via npm:\n\n```bash\nnpm install mmt-webfont\n```\n\nThen, you can import the CSS file in your project:\n\n```javascript\nimport 'mmt-webfont/dist/result.css'\n```\n\n## Usage\n\nRestricted font usage area:\n\n```css\narticle {\n  font-family: 'MMT';\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/mmt-webfont/  \n\n"
  },
  {
    "path": "projects/lruihao/vercel-gravatar/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Gravatar Proxy powered by Vercel. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\"><meta name=keywords content='gravatar,vercel'><meta itemprop=name content=\"Gravatar Proxy powered by Vercel.\"><meta itemprop=description content=\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\"><meta itemprop=datePublished content=\"2024-04-17T01:37:06+00:00\"><meta itemprop=dateModified content=\"2025-08-18T17:42:18+00:00\"><meta itemprop=wordCount content=\"17\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Gravatar,vercel\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Gravatar Proxy powered by Vercel.\"><meta property=\"og:description\" content=\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-04-17T01:37:06+00:00\"><meta property=\"article:modified_time\" content=\"2025-08-18T17:42:18+00:00\"><meta property=\"article:tag\" content=\"Gravatar\"><meta property=\"article:tag\" content=\"vercel\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Gravatar Proxy powered by Vercel.\"><meta name=twitter:description content=\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/vercel-gravatar/ title=\"Gravatar Proxy powered by Vercel. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/component-projects/ title=\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\"><link rel=next type=text/html href=https://lruihao.cn/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/vercel-gravatar/index.md title=\"Gravatar Proxy powered by Vercel. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Gravatar Proxy powered by Vercel.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vercel-gravatar\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"gravatar, vercel\",\"wordcount\":17,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vercel-gravatar\\/\",\"datePublished\":\"2024-04-17T01:37:06+00:00\",\"dateModified\":\"2025-08-18T17:42:18+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/vercel-gravatar/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/vercel-gravatar</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><span class=active title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</span></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/component-projects/ class=collection-nav-item rel=prev title=hugo-fixit/component-projects><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>31/51</span><a href=/projects/vercel-gravatar/ class=collection-nav-item rel=next title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Gravatar Proxy powered by Vercel.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/vercel-gravatar target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/vercel-gravatar<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://gravatar-x.vercel.app/avatar/ target=_blank rel=\"external nofollow noopener noreferrer\">https://gravatar-x.vercel.app/avatar/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-04-17 01:37:06\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-04-17>2024-04-17</time></span>&nbsp;<span title=\"更新于 2025-08-18 17:42:18\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2025-08-18>2025-08-18</time></span>&nbsp;<span title=\"17 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Gravatar Proxy powered by Vercel.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2025-08-18，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=vercel-gravatar data-decreased><span>Vercel Gravatar</span>\n<a href=#vercel-gravatar class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"alert alert-note\"><p class=alert-title><svg class=\"icon\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/></svg>注意</p><p>Superseded by <a href=https://github.com/Lruihao/vercel-proxy target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/vercel-proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>.</p></div><p>Gravatar Proxy powered by Vercel.</p><p>Go to test Gravatar:</p><ul><li><a href=https://gravatar.lruihao.cn/avatar/ target=_blank rel=\"external nofollow noopener noreferrer\">https://gravatar.lruihao.cn/avatar/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://gravatar-x.vercel.app/avatar/ target=_blank rel=\"external nofollow noopener noreferrer\">https://gravatar-x.vercel.app/avatar/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/component-projects/ class=collection-nav-item rel=prev title=hugo-fixit/component-projects><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/component-projects</span>\n</a><a href=/projects/vercel-gravatar/ class=collection-nav-item rel=next title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><span>利用 Vercel 反代 Gravatar 实现镜像加速</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2025-08-18 17:42:18\">更新于 2025-08-18&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/vercel-gravatar/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/vercel-gravatar/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/vercel-gravatar/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/vercel-gravatar/ data-title=\"Gravatar Proxy powered by Vercel.\" data-hashtags=gravatar,vercel><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/vercel-gravatar/ data-hashtag=gravatar><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/vercel-gravatar/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/vercel-gravatar/ data-title=\"Gravatar Proxy powered by Vercel.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/vercel-gravatar/ data-title=\"Gravatar Proxy powered by Vercel.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gravatar/ class=post-tag title=\"标签 - Gravatar\">Gravatar</a><a href=/tags/vercel/ class=post-tag title=\"标签 - vercel\">vercel</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/component-projects/ class=post-nav-item rel=prev title=hugo-fixit/component-projects><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/component-projects</a><a href=/projects/vercel-gravatar/ class=post-nav-item rel=next title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/vercel-gravatar/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/vercel-gravatar/index.md",
    "content": "# Gravatar Proxy powered by Vercel.\n\n# Vercel Gravatar\n\n> [!NOTE]\n> Superseded by [Lruihao/vercel-proxy](https://github.com/Lruihao/vercel-proxy).\n\nGravatar Proxy powered by Vercel.\n\nGo to test Gravatar:\n\n- <https://gravatar.lruihao.cn/avatar/>\n- <https://gravatar-x.vercel.app/avatar/>\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/vercel-gravatar/  \n\n"
  },
  {
    "path": "projects/lruihao/vercel-proxy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>API proxies powered by Vercel. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/vercel proxy: API proxies powered by Vercel.\"><meta name=keywords content='gravatar,vercel'><meta itemprop=name content=\"API proxies powered by Vercel.\"><meta itemprop=description content=\"Lruihao/vercel proxy: API proxies powered by Vercel.\"><meta itemprop=datePublished content=\"2025-04-09T02:13:22+00:00\"><meta itemprop=dateModified content=\"2026-03-10T07:05:02+00:00\"><meta itemprop=wordCount content=\"123\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"Gravatar,vercel\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"API proxies powered by Vercel.\"><meta property=\"og:description\" content=\"Lruihao/vercel proxy: API proxies powered by Vercel.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2025-04-09T02:13:22+00:00\"><meta property=\"article:modified_time\" content=\"2026-03-10T07:05:02+00:00\"><meta property=\"article:tag\" content=\"Gravatar\"><meta property=\"article:tag\" content=\"vercel\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"API proxies powered by Vercel.\"><meta name=twitter:description content=\"Lruihao/vercel proxy: API proxies powered by Vercel.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/vercel-proxy/ title=\"API proxies powered by Vercel. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/flexbox/ title=\"CSS Flexbox 布局指南\"><link rel=next type=text/html href=https://lruihao.cn/projects/lruihao/mmt-webfont/ title=\"The webfont package for the MMT typeface.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/vercel-proxy/index.md title=\"API proxies powered by Vercel. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"API proxies powered by Vercel.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vercel-proxy\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"gravatar, vercel\",\"wordcount\":123,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vercel-proxy\\/\",\"datePublished\":\"2025-04-09T02:13:22+00:00\",\"dateModified\":\"2026-03-10T07:05:02+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/vercel proxy: API proxies powered by Vercel.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/vercel-proxy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/vercel-proxy</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><span class=active title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</span></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/action-component-list/ class=collection-nav-item rel=prev title=hugo-fixit/action-component-list><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>45/51</span><a href=/projects/lruihao/mmt-webfont/ class=collection-nav-item rel=next title=Lruihao/mmt-webfont><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>API proxies powered by Vercel.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/vercel-proxy target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/vercel-proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://api.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://api.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2025-04-09 02:13:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2025-04-09>2025-04-09</time></span>&nbsp;<span title=\"更新于 2026-03-10 07:05:02\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-03-10>2026-03-10</time></span>&nbsp;<span title=\"123 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 200 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"API proxies powered by Vercel.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#hosts>Hosts</a></li><li><a href=#api-list>API List</a><ul><li><a href=#gravatar>Gravatar</a></li><li><a href=#google>Google</a></li><li><a href=#netease-comment>Netease Comment</a></li></ul></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=vercel-api-proxy data-decreased><span><a href=https://github.com/Lruihao/vercel-proxy target=_blank rel=\"external nofollow noopener noreferrer\">Vercel API Proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#vercel-api-proxy class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>API proxies powered by Vercel.</p></blockquote><p>[toc]</p><h2 class=heading-element id=hosts><span>Hosts</span>\n<a href=#hosts class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://api.lruihao.cn target=_blank rel=\"external nofollow noopener noreferrer\">https://api.lruihao.cn<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://cell-api.vercel.app target=_blank rel=\"external nofollow noopener noreferrer\">https://cell-api.vercel.app<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul><h2 class=heading-element id=api-list><span>API List</span>\n<a href=#api-list class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Go to the <a href=https://cell-api.vercel.app target=_blank rel=\"external nofollow noopener noreferrer\">Vercel API Proxy<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> and select the API you want to use.</p><h3 class=heading-element id=gravatar><span>Gravatar</span>\n<a href=#gravatar class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>API</strong>: <code>/gravatar/avatar/(.*)</code></li><li><strong>Method</strong>: <code>GET/POST</code></li></ul><p>Get the avatar of the email <code>fee47a2f4f2cc71f99a02b0a73ecfee0</code> by Gravatar API.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>GET</span> <span class=nn>/gravatar/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>cell-api.vercel.app</span></span></span></code></pre></td></tr></table></div></div></div><p><img loading=lazy src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_15008876657080572655.jpg alt=Lruihao height=80 width=80></p><h3 class=heading-element id=google><span>Google</span>\n<a href=#google class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>API</strong>: <code>/gravatar/avatar/(.*)</code></li><li><strong>Method</strong>: <code>*</code></li></ul><p>Get favicons by Google API.</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>GET</span> <span class=nn>/google/s2/favicons?sz=64&amp;domain=lruihao.cn</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>cell-api.vercel.app</span></span></span></code></pre></td></tr></table></div></div></div><p><img loading=lazy src=/images/remote/favicons_7265019882103749860.png alt=lruihao.cn height=64 width=64></p><h3 class=heading-element id=netease-comment><span>Netease Comment</span>\n<a href=#netease-comment class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ul><li><strong>API</strong>: <code>/netease/comment</code></li><li><strong>Method</strong>: <code>GET/POST</code></li><li><strong>Request parameter</strong>:<div class=table-wrapper><table><thead><tr><th style=text-align:left>name</th><th style=text-align:left>Required</th><th style=text-align:left>type</th><th style=text-align:left>description</th></tr></thead><tbody><tr><td style=text-align:left>type</td><td style=text-align:left>no</td><td style=text-align:left>string</td><td style=text-align:left>Type is text, returns text, is Json, returns Json by default</td></tr><tr><td style=text-align:left>id</td><td style=text-align:left>no</td><td style=text-align:left>int</td><td style=text-align:left>Specify the playlist id to get the hot reviews, default is NetEase Cloud Hot Songs List</td></tr></tbody></table></div></li></ul><p>Request example:</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-http\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-http data-lang=http><span class=line><span class=cl><span class=nf>GET</span> <span class=nn>/netease/comment?mid=2280569152</span> <span class=kr>HTTP</span><span class=o>/</span><span class=m>1.1</span>\n</span></span><span class=line><span class=cl><span class=n>Host</span><span class=o>:</span> <span class=l>cell-api.vercel.app</span></span></span></code></pre></td></tr></table></div></div></div><p>Response example:</p><json-viewer value='\"{\\n  \\\"code\\\": 1,\\n  \\\"data\\\": {\\n    \\\"musicId\\\": 40915177,\\n    \\\"musicName\\\": \\\"父亲写的散文诗\\\",\\n    \\\"musicUrl\\\": \\\"http://music.163.com/song/media/outer/url?id=40915177\\\",\\n    \\\"artist\\\": \\\"许飞\\\",\\n    \\\"picUrl\\\": \\\"http://p1.music.126.net/h00CveXrABOfiWmFDLzRDg==/3405187515194971.jpg\\\",\\n    \\\"content\\\": \\\"一首歌 一万个人的故事\\\",\\n    \\\"nickname\\\": \\\"Gallianoo\\\",\\n    \\\"avatarUrl\\\": \\\"http://p2.music.126.net/3U7kD9M39sfkrPdWVvaGog==/109951163278309929.jpg\\\",\\n    \\\"likedCount\\\": 4743,\\n    \\\"time\\\": 1457059879799,\\n    \\\"timeStr\\\": \\\"2016-03-04\\\"\\n  }\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/action-component-list/ class=collection-nav-item rel=prev title=hugo-fixit/action-component-list><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/action-component-list</span>\n</a><a href=/projects/lruihao/mmt-webfont/ class=collection-nav-item rel=next title=Lruihao/mmt-webfont><span>Lruihao/mmt-webfont</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-03-10 07:05:02\">更新于 2026-03-10&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/vercel-proxy/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/vercel-proxy/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/vercel-proxy/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/vercel-proxy/ data-title=\"API proxies powered by Vercel.\" data-hashtags=gravatar,vercel><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/vercel-proxy/ data-hashtag=gravatar><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/vercel-proxy/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/vercel-proxy/ data-title=\"API proxies powered by Vercel.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/vercel-proxy/ data-title=\"API proxies powered by Vercel.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/gravatar/ class=post-tag title=\"标签 - Gravatar\">Gravatar</a><a href=/tags/vercel/ class=post-tag title=\"标签 - vercel\">vercel</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/flexbox/ class=post-nav-item rel=prev title=\"CSS Flexbox 布局指南\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>CSS Flexbox 布局指南</a><a href=/projects/lruihao/mmt-webfont/ class=post-nav-item rel=next title=Lruihao/mmt-webfont>Lruihao/mmt-webfont<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#hosts>Hosts</a></li><li><a href=#api-list>API List</a><ul><li><a href=#gravatar>Gravatar</a></li><li><a href=#google>Google</a></li><li><a href=#netease-comment>Netease Comment</a></li></ul></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/vercel-proxy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/vercel-proxy/index.md",
    "content": "# API proxies powered by Vercel.\n\n# [Vercel API Proxy](https://github.com/Lruihao/vercel-proxy)\n\n> API proxies powered by Vercel.\n\n[toc]\n\n## Hosts\n\n- <https://api.lruihao.cn>\n- <https://cell-api.vercel.app>\n\n## API List\n\nGo to the [Vercel API Proxy](https://cell-api.vercel.app) and select the API you want to use.\n\n### Gravatar\n\n- **API**: `/gravatar/avatar/(.*)`\n- **Method**: `GET/POST`\n\nGet the avatar of the email `fee47a2f4f2cc71f99a02b0a73ecfee0` by Gravatar API.\n\n```http\nGET /gravatar/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0 HTTP/1.1\nHost: cell-api.vercel.app\n```\n\n![Lruihao](https://cell-api.vercel.app/gravatar/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0)\n\n### Google\n\n- **API**: `/gravatar/avatar/(.*)`\n- **Method**: `*`\n\nGet favicons by Google API.\n\n```http\nGET /google/s2/favicons?sz=64&domain=lruihao.cn HTTP/1.1\nHost: cell-api.vercel.app\n```\n\n![lruihao.cn](https://cell-api.vercel.app/google/s2/favicons?sz=64&domain=lruihao.cn)\n\n### Netease Comment\n\n- **API**: `/netease/comment`\n- **Method**: `GET/POST`\n- **Request parameter**:\n\n    | name | Required | type   | description                                                                             |\n    | :--- | :------- | :----- | :-------------------------------------------------------------------------------------- |\n    | type | no       | string | Type is text, returns text, is Json, returns Json by default                            |\n    | id   | no       | int    | Specify the playlist id to get the hot reviews, default is NetEase Cloud Hot Songs List |\n\nRequest example:\n\n```http\nGET /netease/comment?mid=2280569152 HTTP/1.1\nHost: cell-api.vercel.app\n```\n\nResponse example:\n\n```json\n{\n  \"code\": 1,\n  \"data\": {\n    \"musicId\": 40915177,\n    \"musicName\": \"父亲写的散文诗\",\n    \"musicUrl\": \"http://music.163.com/song/media/outer/url?id=40915177\",\n    \"artist\": \"许飞\",\n    \"picUrl\": \"http://p1.music.126.net/h00CveXrABOfiWmFDLzRDg==/3405187515194971.jpg\",\n    \"content\": \"一首歌 一万个人的故事\",\n    \"nickname\": \"Gallianoo\",\n    \"avatarUrl\": \"http://p2.music.126.net/3U7kD9M39sfkrPdWVvaGog==/109951163278309929.jpg\",\n    \"likedCount\": 4743,\n    \"time\": 1457059879799,\n    \"timeStr\": \"2016-03-04\"\n  }\n}\n```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/vercel-proxy/  \n\n"
  },
  {
    "path": "projects/lruihao/vue-el-demo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue2 and element-ui related demos | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/vue el demo: Vue2 and element-ui related demos\"><meta name=keywords content='element-ui,vue,vue2'><meta itemprop=name content=\"Vue2 and element-ui related demos\"><meta itemprop=description content=\"Lruihao/vue el demo: Vue2 and element-ui related demos\"><meta itemprop=datePublished content=\"2023-08-08T01:41:08+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:21+00:00\"><meta itemprop=wordCount content=\"44\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"element-ui,vue,Vue2\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue2 and element-ui related demos\"><meta property=\"og:description\" content=\"Lruihao/vue el demo: Vue2 and element-ui related demos\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2023-08-08T01:41:08+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:21+00:00\"><meta property=\"article:tag\" content=\"element-ui\"><meta property=\"article:tag\" content=\"vue\"><meta property=\"article:tag\" content=\"Vue2\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue2 and element-ui related demos\"><meta name=twitter:description content=\"Lruihao/vue el demo: Vue2 and element-ui related demos\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/vue-el-demo/ title=\"Vue2 and element-ui related demos | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/el-backtop-fix/ title=\"用魔法打败魔法 - ElBacktop Fix\"><link rel=next type=text/html href=https://lruihao.cn/posts/aws-ec2/ title=\"将 Hugo 博客部署到亚马逊云服务器\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/vue-el-demo/index.md title=\"Vue2 and element-ui related demos | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Vue2 and element-ui related demos\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vue-el-demo\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"element-ui, vue, vue2\",\"wordcount\":44,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vue-el-demo\\/\",\"datePublished\":\"2023-08-08T01:41:08+00:00\",\"dateModified\":\"2026-05-06T03:02:21+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/vue el demo: Vue2 and element-ui related demos\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/vue-el-demo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/vue-el-demo</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><span class=active title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</span></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/el-table-sticky/ class=collection-nav-item rel=prev title=Lruihao/el-table-sticky><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>22/51</span><a href=/projects/el-table-sticky/ class=collection-nav-item rel=next title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Vue2 and element-ui related demos</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/vue-el-demo target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/vue-el-demo<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/vue-el-demo/ target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/vue-el-demo/<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2023-08-08 01:41:08\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2023-08-08>2023-08-08</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:21\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"44 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Vue2 and element-ui related demos\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#project-setup>Project setup</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=vue-el-demo data-decreased><span>vue-el-demo</span>\n<a href=#vue-el-demo class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Vue and element-ui related <a href=https://lruihao.github.io/vue-el-demo/ target=_blank rel=\"external nofollow noopener noreferrer\">demos<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>.</p><h2 class=heading-element id=project-setup><span>Project setup</span>\n<a href=#project-setup class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>yarn install\n</span></span><span class=line><span class=cl><span class=c1># Compiles and hot-reloads for development</span>\n</span></span><span class=line><span class=cl>yarn dev\n</span></span><span class=line><span class=cl><span class=c1># Compiles and minifies for production</span>\n</span></span><span class=line><span class=cl>yarn build</span></span></code></pre></td></tr></table></div></div></div><p>This project is built with <a href=https://rsbuild.dev/ target=_blank rel=\"external nofollow noopener noreferrer\">Rsbuild<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>, a fast build tool powered by Rspack.</p></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/el-table-sticky/ class=collection-nav-item rel=prev title=Lruihao/el-table-sticky><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/el-table-sticky</span>\n</a><a href=/projects/el-table-sticky/ class=collection-nav-item rel=next title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\"><span>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:21\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/vue-el-demo/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/vue-el-demo/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/vue-el-demo/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/vue-el-demo/ data-title=\"Vue2 and element-ui related demos\" data-hashtags=element-ui,vue,vue2><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/vue-el-demo/ data-hashtag=element-ui><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/vue-el-demo/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/vue-el-demo/ data-title=\"Vue2 and element-ui related demos\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/vue-el-demo/ data-title=\"Vue2 and element-ui related demos\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/element-ui/ class=post-tag title=\"标签 - element-ui\">element-ui</a><a href=/tags/vue/ class=post-tag title=\"标签 - vue\">vue</a><a href=/tags/vue2/ class=post-tag title=\"标签 - Vue2\">Vue2</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/el-backtop-fix/ class=post-nav-item rel=prev title=\"用魔法打败魔法 - ElBacktop Fix\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>用魔法打败魔法 - ElBacktop Fix</a><a href=/posts/aws-ec2/ class=post-nav-item rel=next title=\"将 Hugo 博客部署到 AWS 服务器\">将 Hugo 博客部署到 AWS 服务器<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#project-setup>Project setup</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/vue-el-demo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/vue-el-demo/index.md",
    "content": "# Vue2 and element-ui related demos\n\n# vue-el-demo\n\nVue and element-ui related [demos](https://lruihao.github.io/vue-el-demo/).\n\n## Project setup\n\n```bash\nyarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build\n```\n\nThis project is built with [Rsbuild](https://rsbuild.dev/), a fast build tool powered by Rspack.\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/vue-el-demo/  \n\n"
  },
  {
    "path": "projects/lruihao/vue-minder-editor-extended/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta name=keywords content='editor,minder,vue'><meta itemprop=name content=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta itemprop=description content=\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta itemprop=datePublished content=\"2022-10-10T02:50:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=wordCount content=\"639\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"editor,minder,vue\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta property=\"og:description\" content=\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2022-10-10T02:50:53+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:16+00:00\"><meta property=\"article:tag\" content=\"editor\"><meta property=\"article:tag\" content=\"minder\"><meta property=\"article:tag\" content=\"vue\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta name=twitter:description content=\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ title=\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\"><link rel=next type=text/html href=https://lruihao.cn/posts/homebrew-npm/ title=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/index.md title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vue-minder-editor-extended\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"editor, minder, vue\",\"wordcount\":639,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/vue-minder-editor-extended\\/\",\"datePublished\":\"2022-10-10T02:50:53+00:00\",\"dateModified\":\"2026-05-06T03:02:16+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/vue-minder-editor-extended/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/vue-minder-editor-extended</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><span class=active title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</span></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>19/51</span><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-mmt-netease><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/vue-minder-editor-extended target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/vue-minder-editor-extended<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://lruihao.github.io/vue-el-demo/#/minder-editor target=_blank rel=\"external nofollow noopener noreferrer\">https://lruihao.github.io/vue-el-demo/#/minder-editor<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2022-10-10 02:50:53\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-10-10>2022-10-10</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:16\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"639 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 3 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#install>Install</a></li><li><a href=#usage>Usage</a></li><li><a href=#国际化>国际化</a></li><li><a href=#主题>主题</a></li><li><a href=#props>Props</a><ul><li><a href=#基础配置>基础配置</a></li><li><a href=#启用配置>启用配置</a></li><li><a href=#优先级配置>优先级配置</a></li><li><a href=#标签配置>标签配置</a></li></ul></li><li><a href=#slots>Slots</a></li><li><a href=#api>API</a><ul><li><a href=#minder>minder</a></li><li><a href=#kityminder>kityminder</a></li><li><a href=#mindereditor>minderEditor</a></li><li><a href=#kity>kity</a></li><li><a href=#hotbox>HotBox</a></li></ul></li><li><a href=#build-setup>Build Setup</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=vue-minder-editor data-decreased><span>Vue Minder Editor</span>\n<a href=#vue-minder-editor class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>基于 <a href=https://github.com/fex-team/kityminder-core target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-core<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 实现的 Vue2 脑图编辑器组件。</p><h2 class=heading-element id=install><span>Install</span>\n<a href=#install class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm install vue-minder-editor-extended --save</span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=usage><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>注册组件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>import</span> <span class=nx>vueMinderEditor</span> <span class=nx>from</span> <span class=s1>&#39;vue-minder-editor-extended&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Vue</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>vueMinderEditor</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><p>使用组件：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>    <span class=p>&lt;</span><span class=nt>minder-editor</span> <span class=na>:progress-enable</span><span class=o>=</span><span class=s>&#34;false&#34;</span> <span class=na>:import-json</span><span class=o>=</span><span class=s>&#34;importJson&#34;</span><span class=p>/&gt;</span>\n</span></span><span class=line><span class=cl>  <span class=p>&lt;/</span><span class=nt>div</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>template</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>minderEditor</span> <span class=nx>from</span> <span class=s1>&#39;../../dist/static/vue-minder-editor-extended&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>vue</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>minderEditor</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>name</span><span class=o>:</span> <span class=s1>&#39;test-plugin&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=nx>data</span><span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>importJson</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>        <span class=c1>// 节点数据\n</span></span></span><span class=line><span class=cl>        <span class=nx>root</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>          <span class=nx>data</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 文本内容\n</span></span></span><span class=line><span class=cl>            <span class=nx>text</span><span class=o>:</span> <span class=s1>&#39;vue-minder-editor-extended&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 标签\n</span></span></span><span class=line><span class=cl>            <span class=nx>resource</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;模块1&#39;</span><span class=p>],</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 是否禁止修改\n</span></span></span><span class=line><span class=cl>            <span class=nx>disable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 默认展开或折叠，默认是展开的，collapse 可设为折叠\n</span></span></span><span class=line><span class=cl>            <span class=c1>// expandState: &#39;collapse&#39;,\n</span></span></span><span class=line><span class=cl>            <span class=c1>// 在 disable 为 true 的情况下，允许添加标签\n</span></span></span><span class=line><span class=cl>            <span class=nx>tagEnable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 在 disable 为 true 的情况下，允许删除节点\n</span></span></span><span class=line><span class=cl>            <span class=nx>allowDelete</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>            <span class=c1>// 在 disable 为 true 的情况下，允许添加标签，优先级比 tagEnable 高\n</span></span></span><span class=line><span class=cl>            <span class=nx>allowDisabledTag</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>          <span class=p>},</span>\n</span></span><span class=line><span class=cl>          <span class=c1>// 子节点\n</span></span></span><span class=line><span class=cl>          <span class=nx>children</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>              <span class=nx>data</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=nx>text</span><span class=o>:</span> <span class=s1>&#39;child1&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                <span class=nx>disable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                <span class=nx>expandState</span><span class=o>:</span> <span class=s1>&#39;collapse&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                <span class=nx>resource</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;模块2&#39;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>              <span class=p>},</span>\n</span></span><span class=line><span class=cl>              <span class=nx>children</span><span class=o>:</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span>\n</span></span><span class=line><span class=cl>                  <span class=nx>data</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=nx>text</span><span class=o>:</span> <span class=s1>&#39;child11&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=nx>disable</span><span class=o>:</span> <span class=kc>true</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                    <span class=nx>resource</span><span class=o>:</span> <span class=p>[</span><span class=s1>&#39;模块2&#39;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>                  <span class=p>},</span>\n</span></span><span class=line><span class=cl>                <span class=p>},</span>\n</span></span><span class=line><span class=cl>                <span class=p>{</span>\n</span></span><span class=line><span class=cl>                  <span class=nx>data</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                    <span class=nx>text</span><span class=o>:</span> <span class=s1>&#39;child12&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>                  <span class=p>}</span>\n</span></span><span class=line><span class=cl>                <span class=p>}</span>\n</span></span><span class=line><span class=cl>              <span class=p>]</span>\n</span></span><span class=line><span class=cl>            <span class=p>},</span>\n</span></span><span class=line><span class=cl>            <span class=p>{</span>\n</span></span><span class=line><span class=cl>              <span class=nx>data</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>                <span class=nx>text</span><span class=o>:</span> <span class=s1>&#39;child2&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>              <span class=p>}</span>\n</span></span><span class=line><span class=cl>            <span class=p>}</span>\n</span></span><span class=line><span class=cl>          <span class=p>]</span>\n</span></span><span class=line><span class=cl>        <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>tags</span><span class=o>:</span>  <span class=p>[</span><span class=s1>&#39;模块1&#39;</span><span class=p>,</span><span class=s1>&#39;模块2&#39;</span><span class=p>]</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=国际化><span>国际化</span>\n<a href=#%e5%9b%bd%e9%99%85%e5%8c%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-vue\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-vue data-lang=vue><span class=line><span class=cl><span class=c1>// 方式一\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>locale</span> <span class=nx>from</span> <span class=s1>&#39;/src/locale/lang/en-US&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>vueMinderEditorExtended</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>locale</span>\n</span></span><span class=line><span class=cl><span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 方式二\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>lang</span> <span class=nx>from</span> <span class=s1>&#39;/src/locale/lang/en-US&#39;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>locale</span> <span class=nx>from</span> <span class=s1>&#39;/src/locale&#39;</span>\n</span></span><span class=line><span class=cl><span class=nx>locale</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>lang</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>vueMinderEditorExtended</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1>// 方式三\n</span></span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Vue</span> <span class=nx>from</span> <span class=s1>&#39;vue&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>VueI18n</span> <span class=nx>from</span> <span class=s1>&#39;vue-i18n&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>enLocale</span> <span class=nx>from</span> <span class=s1>&#39;vue-minder-editor-extended/src/locale/lang/en-US&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>zhLocale</span> <span class=nx>from</span> <span class=s1>&#39;vue-minder-editor-extended/src/locale/lang/zh-CN&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=kr>import</span> <span class=nx>vueMinderEditor</span> <span class=nx>from</span> <span class=s1>&#39;vue-minder-editor-extended&#39;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>messages</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>en</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>message</span><span class=o>:</span> <span class=s1>&#39;hello&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>...</span><span class=nx>enLocale</span>\n</span></span><span class=line><span class=cl>  <span class=p>},</span>\n</span></span><span class=line><span class=cl>  <span class=nx>zh</span><span class=o>:</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>message</span><span class=o>:</span> <span class=s1>&#39;你好&#39;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>...</span><span class=nx>zhLocale</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>VueI18n</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>i18n</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>VueI18n</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>  <span class=nx>locale</span><span class=o>:</span> <span class=s1>&#39;en&#39;</span><span class=p>,</span> <span class=c1>// set locale\n</span></span></span><span class=line><span class=cl>  <span class=nx>messages</span><span class=p>,</span> <span class=c1>// set locale messages\n</span></span></span><span class=line><span class=cl><span class=p>})</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=nx>Vue</span><span class=p>.</span><span class=nx>use</span><span class=p>(</span><span class=nx>vueMinderEditor</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>i18n</span><span class=o>:</span> <span class=p>(</span><span class=nx>key</span><span class=p>,</span> <span class=nx>value</span><span class=p>)</span> <span class=p>=&gt;</span> <span class=nx>i18n</span><span class=p>.</span><span class=nx>t</span><span class=p>(</span><span class=nx>key</span><span class=p>,</span> <span class=nx>value</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=主题><span>主题</span>\n<a href=#%e4%b8%bb%e9%a2%98 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>Vue Minder Editor 组件已支持初始化时设置主题及注册主题，默认主题为 fresh-blue。</p></blockquote><p>如需手动注册设置主题，允许使用的主题及其配置项可以使用 <code>window.kityminder.Minder.getThemeList()</code> 查询。</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span><span class=lnt>6\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=c1>// 注册主题\n</span></span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>kityminder</span><span class=p>.</span><span class=nx>Theme</span><span class=p>.</span><span class=nx>register</span><span class=p>(</span><span class=s1>&#39;my-minder-theme&#39;</span><span class=p>,</span> <span class=nx>minderThemeItems</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=c1>// 设置主题\n</span></span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>minder</span><span class=p>.</span><span class=nx>useTheme</span><span class=p>(</span><span class=s1>&#39;my-minder-theme&#39;</span><span class=p>)</span>\n</span></span><span class=line><span class=cl><span class=c1>// 或者\n</span></span></span><span class=line><span class=cl><span class=nb>window</span><span class=p>.</span><span class=nx>minder</span><span class=p>.</span><span class=nx>execCommand</span><span class=p>(</span><span class=s1>&#39;theme&#39;</span><span class=p>,</span> <span class=s1>&#39;my-minder-theme&#39;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div><h2 class=heading-element id=props><span>Props</span>\n<a href=#props class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><blockquote><p>以下配置部分为 kityminder-core 扩展的功能，kityminder-core 本身的 minder 对象提供了丰富的功能，使用该组件时可通过 <code>window.minder</code> 对象获取 minder 对象具体的使用方法，可以参考它的文档扩展 <a href=https://github.com/fex-team/kityminder-core/wiki target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-core wiki<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 以及 <a href=#api>#API</a> 章节补充。</p></blockquote><h3 class=heading-element id=基础配置><span>基础配置</span>\n<a href=#%e5%9f%ba%e7%a1%80%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>Name</th><th>Description</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td>importJson</td><td>需要脑图解析的 js 对象，参数详情可参考上文 demo，或者调用 <code>minder.exportJson()</code> 查看具体参数</td><td>Object</td><td>null</td></tr><tr><td>height</td><td>显示高度，默认 500px</td><td>Number</td><td>500</td></tr><tr><td>theme</td><td>设置初始化主题，可选值使用 <code>window.kityminder.Minder.getThemeList()</code> 查询</td><td>String</td><td>fresh-blue</td></tr><tr><td>registerTheme</td><td>注册主题，参数为主题配置项，如 <code>registerTheme: { ...minderThemeItems }</code></td><td>Object</td><td>null</td></tr><tr><td>disabled</td><td>是否禁止编辑</td><td>Boolean</td><td>null</td></tr><tr><td>defaultMold</td><td>外观设置中样式的默认值</td><td>Number</td><td>3</td></tr></tbody></table></div><h3 class=heading-element id=启用配置><span>启用配置</span>\n<a href=#%e5%90%af%e7%94%a8%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>Name</th><th>Description</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td>sequenceEnable</td><td>是否启用优先级功能</td><td>Boolean</td><td>true</td></tr><tr><td>tagEnable</td><td>是否启用标签功能</td><td>Boolean</td><td>true</td></tr><tr><td>progressEnable</td><td>是否启用完成进度功能</td><td>Boolean</td><td>true</td></tr><tr><td>moveEnable</td><td>是否启用上移下移功能</td><td>Boolean</td><td>true</td></tr></tbody></table></div><h3 class=heading-element id=优先级配置><span>优先级配置</span>\n<a href=#%e4%bc%98%e5%85%88%e7%ba%a7%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>Name</th><th>Description</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td>priorities</td><td>优先级选项，当该参数不为空时 <code>priorityCount</code>, <code>priorityStartWithZero</code>, <code>priorityPrefix</code> 不生效</td><td>Array</td><td>[]</td></tr><tr><td>priorityCount</td><td>优先级最大显示数量，最多支持显示 9 个级别</td><td>Number</td><td>4</td></tr><tr><td>priorityStartWithZero</td><td>优先级是否从 0 开始</td><td>Boolean</td><td>true</td></tr><tr><td>priorityPrefix</td><td>优先级显示的前缀</td><td>String</td><td>&lsquo;P&rsquo;</td></tr><tr><td>priorityDisableCheck</td><td>优先级设置的回调函数，如果返回 <code>true</code> 则无法设置优先级</td><td>Function</td><td>null</td></tr></tbody></table></div><h3 class=heading-element id=标签配置><span>标签配置</span>\n<a href=#%e6%a0%87%e7%ad%be%e9%85%8d%e7%bd%ae class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><div class=table-wrapper><table><thead><tr><th>Name</th><th>Description</th><th>Type</th><th>Default</th></tr></thead><tbody><tr><td>tags</td><td>标签选项</td><td>Array</td><td>[]</td></tr><tr><td>distinctTags</td><td>定义排他标签，比如 [&rsquo;tag1&rsquo;,&rsquo;tag2&rsquo;], 则 <code>tag1</code> 不能和 <code>tag2</code> 共存</td><td>Array</td><td>[]</td></tr><tr><td>tagDisableCheck</td><td>菜单栏是否允许打标签的回调函数，返回 <code>true</code> 则不允许打标签</td><td>Function</td><td>null</td></tr><tr><td>tagEditCheck</td><td>打标签时的回调函数，返回 <code>false</code> 则打标签不成功，参数为当前节点的标签数组</td><td>Function</td><td>null</td></tr></tbody></table></div><h2 class=heading-element id=slots><span>Slots</span>\n<a href=#slots class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=table-wrapper><table><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td>-</td><td>在脑图区域自定义额外内容</td></tr><tr><td>edit-menu</td><td>在思维导图 tab 最后自定义额外内容</td></tr><tr><td>view-menu</td><td>在外观样式 tab 最后自定义额外内容</td></tr></tbody></table></div><h2 class=heading-element id=api><span>API</span>\n<a href=#api class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>补充 <a href=https://github.com/fex-team/kityminder-core/wiki target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-core wiki<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 中未说明的 API 文档。</p><h3 class=heading-element id=minder><span>minder</span>\n<a href=#minder class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更多请查看 <code>window.minder</code> 对象或者 <code>window.km</code> 对象</p><ul><li>window.minder.setTheme() 设置主题</li><li>window.minder.useTheme() 设置主题 (同 setTheme)</li><li>window.minder.getTheme() 获取当前主题</li><li>window.minder.getThemeItems() 获取当前主题的所有样式</li><li>window.minder.execCommand(command, params) 执行命令</li></ul><h3 class=heading-element id=kityminder><span>kityminder</span>\n<a href=#kityminder class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更多请查看 <code>window.kityminder</code> 对象</p><ul><li>window.kityminder.Minder.getThemeList() 获取所有主题及主题配置项</li></ul><h3 class=heading-element id=mindereditor><span>minderEditor</span>\n<a href=#mindereditor class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更多请查看 <code>window.minderEditor</code> 对象</p><h3 class=heading-element id=kity><span>kity</span>\n<a href=#kity class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更多请查看 <code>window.kity</code> 对象</p><h3 class=heading-element id=hotbox><span>HotBox</span>\n<a href=#hotbox class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><p>更多请查看 <code>window.HotBox</code> 对象</p><h2 class=heading-element id=build-setup><span>Build Setup</span>\n<a href=#build-setup class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1># npm install -g node-gyp</span>\n</span></span><span class=line><span class=cl><span class=c1># install npm dependencies</span>\n</span></span><span class=line><span class=cl>npm install\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># serve with hot reload at localhost:8088</span>\n</span></span><span class=line><span class=cl>npm run dev\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># build for plugin with minification</span>\n</span></span><span class=line><span class=cl>npm run build\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=c1># License</span>\n</span></span><span class=line><span class=cl>BSD-3-Clause License</span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><h2 class=heading-element id=参考><span>参考</span>\n<a href=#%e5%8f%82%e8%80%83 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ul><li><a href=https://github.com/AgAngle/vue-minder-editor-plus target=_blank rel=\"external nofollow noopener noreferrer\">vue-minder-editor-plus<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/fudax/vue-mindeditor target=_blank rel=\"external nofollow noopener noreferrer\">vue-mindeditor<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/fex-team/kityminder-editor target=_blank rel=\"external nofollow noopener noreferrer\">kityminder-editor<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li></ul></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=collection-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>hugo-fixit/hugo-fixit-starter</span>\n</a><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-mmt-netease><span>hugo-fixit/shortcode-mmt-netease</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:16\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/vue-minder-editor-extended/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/vue-minder-editor-extended/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/vue-minder-editor-extended/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ data-title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\" data-hashtags=editor,minder,vue><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ data-hashtag=editor><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ data-title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ data-title=\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/editor/ class=post-tag title=\"标签 - editor\">editor</a><a href=/tags/minder/ class=post-tag title=\"标签 - minder\">minder</a><a href=/tags/vue/ class=post-tag title=\"标签 - vue\">vue</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=post-nav-item rel=prev title=hugo-fixit/hugo-fixit-starter><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>hugo-fixit/hugo-fixit-starter</a><a href=/posts/homebrew-npm/ class=post-nav-item rel=next title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\">安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#install>Install</a></li><li><a href=#usage>Usage</a></li><li><a href=#国际化>国际化</a></li><li><a href=#主题>主题</a></li><li><a href=#props>Props</a><ul><li><a href=#基础配置>基础配置</a></li><li><a href=#启用配置>启用配置</a></li><li><a href=#优先级配置>优先级配置</a></li><li><a href=#标签配置>标签配置</a></li></ul></li><li><a href=#slots>Slots</a></li><li><a href=#api>API</a><ul><li><a href=#minder>minder</a></li><li><a href=#kityminder>kityminder</a></li><li><a href=#mindereditor>minderEditor</a></li><li><a href=#kity>kity</a></li><li><a href=#hotbox>HotBox</a></li></ul></li><li><a href=#build-setup>Build Setup</a></li><li><a href=#参考>参考</a></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/vue-minder-editor-extended/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/vue-minder-editor-extended/index.md",
    "content": "# 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\n\n# Vue Minder Editor\n\n基于 [kityminder-core](https://github.com/fex-team/kityminder-core) 实现的 Vue2 脑图编辑器组件。\n\n## Install\n\n``` bash\nnpm install vue-minder-editor-extended --save\n```\n\n## Usage\n\n注册组件：\n\n```javascript\nimport vueMinderEditor from 'vue-minder-editor-extended'\nimport Vue from 'vue'\nVue.use(vueMinderEditor)\n```\n\n使用组件：\n\n```html\n<template>\n  <div>\n    <minder-editor :progress-enable=\"false\" :import-json=\"importJson\"/>\n  </div>\n</template>\n\n<script>\nimport minderEditor from '../../dist/static/vue-minder-editor-extended'\nimport vue from 'vue'\nvue.use(minderEditor);\nexport default {\n  name: 'test-plugin',\n  data() {\n    return {\n      importJson: {\n        // 节点数据\n        root: {\n          data: {\n            // 文本内容\n            text: 'vue-minder-editor-extended',\n            // 标签\n            resource: ['模块1'],\n            // 是否禁止修改\n            disable: true,\n            // 默认展开或折叠，默认是展开的，collapse 可设为折叠\n            // expandState: 'collapse',\n            // 在 disable 为 true 的情况下，允许添加标签\n            tagEnable: true,\n            // 在 disable 为 true 的情况下，允许删除节点\n            allowDelete: true,\n            // 在 disable 为 true 的情况下，允许添加标签，优先级比 tagEnable 高\n            allowDisabledTag: true,\n          },\n          // 子节点\n          children: [\n            {\n              data: {\n                text: 'child1',\n                disable: true,\n                expandState: 'collapse',\n                resource: ['模块2']\n              },\n              children: [\n                {\n                  data: {\n                    text: 'child11',\n                    disable: true,\n                    resource: ['模块2']\n                  },\n                },\n                {\n                  data: {\n                    text: 'child12',\n                  }\n                }\n              ]\n            },\n            {\n              data: {\n                text: 'child2',\n              }\n            }\n          ]\n        },\n      },\n      tags:  ['模块1','模块2']\n    }\n  }\n}\n</script>\n```\n\n## 国际化\n\n```vue\n// 方式一\nimport locale from '/src/locale/lang/en-US'\nVue.use(vueMinderEditorExtended, {\n  locale\n});\n\n// 方式二\nimport lang from '/src/locale/lang/en-US'\nimport locale from '/src/locale'\nlocale.use(lang)\nVue.use(vueMinderEditorExtended);\n\n// 方式三\nimport Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport enLocale from 'vue-minder-editor-extended/src/locale/lang/en-US';\nimport zhLocale from 'vue-minder-editor-extended/src/locale/lang/zh-CN';\nimport vueMinderEditor from 'vue-minder-editor-extended';\n\nconst messages = {\n  en: {\n    message: 'hello',\n    ...enLocale\n  },\n  zh: {\n    message: '你好',\n    ...zhLocale\n  }\n}\n\nVue.use(VueI18n);\n\nconst i18n = new VueI18n({\n  locale: 'en', // set locale\n  messages, // set locale messages\n})\n\nVue.use(vueMinderEditor, {\n  i18n: (key, value) => i18n.t(key, value)\n});\n```\n\n## 主题\n\n> Vue Minder Editor 组件已支持初始化时设置主题及注册主题，默认主题为 fresh-blue。\n\n如需手动注册设置主题，允许使用的主题及其配置项可以使用 `window.kityminder.Minder.getThemeList()` 查询。\n\n```js\n// 注册主题\nwindow.kityminder.Theme.register('my-minder-theme', minderThemeItems)\n// 设置主题\nwindow.minder.useTheme('my-minder-theme')\n// 或者\nwindow.minder.execCommand('theme', 'my-minder-theme')\n```\n\n## Props\n\n> 以下配置部分为 kityminder-core 扩展的功能，kityminder-core 本身的 minder 对象提供了丰富的功能，使用该组件时可通过 `window.minder` 对象获取 minder 对象具体的使用方法，可以参考它的文档扩展 [kityminder-core wiki](https://github.com/fex-team/kityminder-core/wiki) 以及 [#API](#api) 章节补充。\n\n### 基础配置\n\n| Name          | Description                                                                                  | Type    | Default    |\n| ------------- | -------------------------------------------------------------------------------------------- | ------- | ---------- |\n| importJson    | 需要脑图解析的 js 对象，参数详情可参考上文 demo，或者调用 `minder.exportJson()` 查看具体参数 | Object  | null       |\n| height        | 显示高度，默认 500px                                                                         | Number  | 500        |\n| theme         | 设置初始化主题，可选值使用 `window.kityminder.Minder.getThemeList()` 查询                    | String  | fresh-blue |\n| registerTheme | 注册主题，参数为主题配置项，如 `registerTheme: { ...minderThemeItems }`                      | Object  | null       |\n| disabled      | 是否禁止编辑                                                                                 | Boolean | null       |\n| defaultMold   | 外观设置中样式的默认值                                                                       | Number  | 3          |\n\n### 启用配置\n\n| Name           | Description          | Type    | Default |\n| -------------- | -------------------- | ------- | ------- |\n| sequenceEnable | 是否启用优先级功能   | Boolean | true    |\n| tagEnable      | 是否启用标签功能     | Boolean | true    |\n| progressEnable | 是否启用完成进度功能 | Boolean | true    |\n| moveEnable     | 是否启用上移下移功能 | Boolean | true    |\n\n### 优先级配置\n\n| Name                  | Description                                                                                    | Type     | Default |\n| --------------------- | ---------------------------------------------------------------------------------------------- | -------- | ------- |\n| priorities            | 优先级选项，当该参数不为空时 `priorityCount`, `priorityStartWithZero`, `priorityPrefix` 不生效 | Array    | []      |\n| priorityCount         | 优先级最大显示数量，最多支持显示 9 个级别                                                      | Number   | 4       |\n| priorityStartWithZero | 优先级是否从 0 开始                                                                            | Boolean  | true    |\n| priorityPrefix        | 优先级显示的前缀                                                                               | String   | 'P'     |\n| priorityDisableCheck  | 优先级设置的回调函数，如果返回 `true` 则无法设置优先级                                         | Function | null    |\n\n### 标签配置\n\n| Name            | Description                                                               | Type     | Default |\n| --------------- | ------------------------------------------------------------------------- | -------- | ------- |\n| tags            | 标签选项                                                                  | Array    | []      |\n| distinctTags    | 定义排他标签，比如 ['tag1','tag2'], 则 `tag1` 不能和 `tag2` 共存          | Array    | []      |\n| tagDisableCheck | 菜单栏是否允许打标签的回调函数，返回 `true` 则不允许打标签                | Function | null    |\n| tagEditCheck    | 打标签时的回调函数，返回 `false` 则打标签不成功，参数为当前节点的标签数组 | Function | null    |\n\n## Slots\n\n| Name      | Description                       |\n| --------- | --------------------------------- |\n| -         | 在脑图区域自定义额外内容          |\n| edit-menu | 在思维导图 tab 最后自定义额外内容 |\n| view-menu | 在外观样式 tab 最后自定义额外内容 |\n\n## API\n\n补充 [kityminder-core wiki](https://github.com/fex-team/kityminder-core/wiki) 中未说明的 API 文档。\n\n### minder\n\n更多请查看 `window.minder` 对象或者 `window.km` 对象\n\n- window.minder.setTheme() 设置主题\n- window.minder.useTheme() 设置主题 (同 setTheme)\n- window.minder.getTheme() 获取当前主题\n- window.minder.getThemeItems() 获取当前主题的所有样式\n- window.minder.execCommand(command, params) 执行命令\n\n### kityminder\n\n更多请查看 `window.kityminder` 对象\n\n- window.kityminder.Minder.getThemeList() 获取所有主题及主题配置项\n\n### minderEditor\n\n更多请查看 `window.minderEditor` 对象\n\n### kity\n\n更多请查看 `window.kity` 对象\n\n### HotBox\n\n更多请查看 `window.HotBox` 对象\n\n## Build Setup\n\n``` bash\n# npm install -g node-gyp\n# install npm dependencies\nnpm install\n\n# serve with hot reload at localhost:8088\nnpm run dev\n\n# build for plugin with minification\nnpm run build\n\n# License\nBSD-3-Clause License\n```\n\n## 参考\n\n- [vue-minder-editor-plus](https://github.com/AgAngle/vue-minder-editor-plus)\n- [vue-mindeditor](https://github.com/fudax/vue-mindeditor)\n- [kityminder-editor](https://github.com/fex-team/kityminder-editor)\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/  \n\n"
  },
  {
    "path": "projects/lruihao/watermark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Create watermark for webpage and automatic adjust when window resize. | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\"><meta name=keywords content='cell-watermark,watermark'><meta itemprop=name content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta itemprop=description content=\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\"><meta itemprop=datePublished content=\"2021-05-24T13:05:40+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:12+00:00\"><meta itemprop=wordCount content=\"72\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"cell-watermark,watermark\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/lruihao/watermark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta property=\"og:description\" content=\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2021-05-24T13:05:40+00:00\"><meta property=\"article:modified_time\" content=\"2026-05-06T03:02:12+00:00\"><meta property=\"article:tag\" content=\"cell-watermark\"><meta property=\"article:tag\" content=\"watermark\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Create watermark for webpage and automatic adjust when window resize.\"><meta name=twitter:description content=\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/lruihao/watermark/ title=\"Create watermark for webpage and automatic adjust when window resize. | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/cell-watermark/ title=\"Cell Watermark\"><link rel=next type=text/html href=https://lruihao.cn/years/2020-2021/ title=\"2020&amp;2021 總結\"><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/lruihao/watermark/index.md title=\"Create watermark for webpage and automatic adjust when window resize. | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Create watermark for webpage and automatic adjust when window resize.\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/watermark\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"cell-watermark, watermark\",\"wordcount\":72,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/lruihao\\/watermark\\/\",\"datePublished\":\"2021-05-24T13:05:40+00:00\",\"dateModified\":\"2026-05-06T03:02:12+00:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/adapter.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/lruihao/watermark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lruihao/watermark</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><span class=active title=Lruihao/watermark>Lruihao/watermark</span></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><a href=/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/cell-watermark/ class=collection-nav-item rel=prev title=\"Cell Watermark\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>12/51</span><a href=/projects/lruihao/hugo-blog/ class=collection-nav-item rel=next title=Lruihao/hugo-blog><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\" data-adapters=projects><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>Create watermark for webpage and automatic adjust when window resize.</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">来源：<a href=https://github.com/Lruihao/watermark target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao/watermark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a><br>网站：<a href=https://www.npmjs.com/package/cell-watermark target=_blank rel=\"external nofollow noopener noreferrer\">https://www.npmjs.com/package/cell-watermark<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/github/ class=post-category title=\"分类 - GitHub\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> GitHub</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2021-05-24 13:05:40\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-05-24>2021-05-24</time></span>&nbsp;<span title=\"更新于 2026-05-06 03:02:12\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2026-05-06>2026-05-06</time></span>&nbsp;<span title=\"72 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"Create watermark for webpage and automatic adjust when window resize.\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ul><li><a href=#documentation>Documentation</a></li><li><a href=#usage>Usage</a><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul></li></ul></nav></div></div><div class=ai-summary></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><h2 class=heading-element id=watermark data-decreased><span>Watermark</span>\n<a href=#watermark class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>Create watermark for webpage and automatic adjust when windows resize.</p><h2 class=heading-element id=documentation><span><a href=https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md target=_blank rel=\"external nofollow noopener noreferrer\">Documentation<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></span>\n<a href=#documentation class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h2 class=heading-element id=usage><span>Usage</span>\n<a href=#usage class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><h3 class=heading-element id=browser><span>Browser</span>\n<a href=#browser class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>Clone source</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git clone git@github.com:Lruihao/watermark.git</span></span></code></pre></td></tr></table></div></div></div></li><li><p>Load <code>Watermark</code></p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-html\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-html data-lang=html><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;./src/watermark.js&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span>\n</span></span><span class=line><span class=cl><span class=c>&lt;!-- Or CDN --&gt;</span>\n</span></span><span class=line><span class=cl><span class=p>&lt;</span><span class=nt>script</span> <span class=na>type</span><span class=o>=</span><span class=s>&#34;text/javascript&#34;</span> <span class=na>src</span><span class=o>=</span><span class=s>&#34;https://cdn.jsdelivr.net/npm/cell-watermark&#34;</span><span class=p>&gt;&lt;/</span><span class=nt>script</span><span class=p>&gt;</span></span></span></code></pre></td></tr></table></div></div></div></li><li><p>Initialization</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span><span class=lnt>4\n</span><span class=lnt>5\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=nb>document</span><span class=p>.</span><span class=nx>addEventListener</span><span class=p>(</span><span class=s1>&#39;DOMContentLoaded&#39;</span><span class=p>,</span> <span class=kd>function</span> <span class=p>()</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>new</span> <span class=nx>Watermark</span><span class=p>({</span>\n</span></span><span class=line><span class=cl>    <span class=nx>content</span><span class=o>:</span> <span class=s2>&#34;cell-watermark&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>})</span>\n</span></span><span class=line><span class=cl><span class=p>});</span></span></span></code></pre></td></tr></table></div></div></div></li></ol><h3 class=heading-element id=npm><span>NPM</span>\n<a href=#npm class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h3><ol><li><p>Install</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-bash\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>npm i cell-watermark</span></span></code></pre></td></tr></table></div></div></div></li><li><p>Import</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true><div class=chroma><div class=\"code-header language-javascript\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=1 style=--fi-max-shown-lines:10;--fi-line-digit:1;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt>1\n</span><span class=lnt>2\n</span><span class=lnt>3\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-javascript data-lang=javascript><span class=line><span class=cl><span class=kr>import</span> <span class=nx>Watermark</span> <span class=nx>from</span> <span class=s1>&#39;cell-watermark&#39;</span>\n</span></span><span class=line><span class=cl><span class=cm>/* Or */</span>\n</span></span><span class=line><span class=cl><span class=kd>var</span> <span class=nx>Watermark</span> <span class=o>=</span> <span class=nx>require</span><span class=p>(</span><span class=s2>&#34;cell-watermark&#34;</span><span class=p>)</span></span></span></code></pre></td></tr></table></div></div></div></li></ol></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/cell-watermark/ class=collection-nav-item rel=prev title=\"Cell Watermark\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Cell Watermark</span>\n</a><a href=/projects/lruihao/hugo-blog/ class=collection-nav-item rel=next title=Lruihao/hugo-blog><span>Lruihao/hugo-blog</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2026-05-06 03:02:12\">更新于 2026-05-06&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/398de13f2be727489dbd48a31aac30c4e6fc909f rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Feat: 复用内容适配器通用模板&#10&#10Commit: 398de13f2be727489dbd48a31aac30c4e6fc909f [398de13]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-10-06 11:02:25\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>398de13</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/lruihao/watermark/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/watermark/blob/main/README.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/watermark/edit/main/README.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/lruihao/watermark/ data-title=\"Create watermark for webpage and automatic adjust when window resize.\" data-hashtags=cell-watermark,watermark><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/lruihao/watermark/ data-hashtag=cell-watermark><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/lruihao/watermark/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/lruihao/watermark/ data-title=\"Create watermark for webpage and automatic adjust when window resize.\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/lruihao/watermark/ data-title=\"Create watermark for webpage and automatic adjust when window resize.\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/cell-watermark/ class=post-tag title=\"标签 - cell-watermark\">cell-watermark</a><a href=/tags/watermark/ class=post-tag title=\"标签 - watermark\">watermark</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/cell-watermark/ class=post-nav-item rel=prev title=\"Cell Watermark\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Cell Watermark</a><a href=/years/2020-2021/ class=post-nav-item rel=next title=\"2020&amp;2021 總結\">2020&amp;2021 總結<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ul><li><a href=#documentation>Documentation</a></li><li><a href=#usage>Usage</a><ul><li><a href=#browser>Browser</a></li><li><a href=#npm>NPM</a></li></ul></li></ul></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/89372d9c14cb3e6a12d7ded732418f63.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/lruihao/watermark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/lruihao/watermark/index.md",
    "content": "# Create watermark for webpage and automatic adjust when window resize.\n\n# Watermark\n\nCreate watermark for webpage and automatic adjust when windows resize.\n\n## [Documentation](https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md)\n\n## Usage\n\n### Browser\n\n1. Clone source\n\n    ```bash\n    git clone git@github.com:Lruihao/watermark.git\n    ```\n\n2. Load `Watermark`\n\n    ```html\n    <script type=\"text/javascript\" src=\"./src/watermark.js\"></script>\n    <!-- Or CDN -->\n    <script type=\"text/javascript\" src=\"https://cdn.jsdelivr.net/npm/cell-watermark\"></script>\n    ```\n\n3. Initialization\n\n    ```javascript\n    document.addEventListener('DOMContentLoaded', function () {\n      new Watermark({\n        content: \"cell-watermark\"\n      })\n    });\n    ```\n\n### NPM\n\n1. Install\n\n    ```bash\n    npm i cell-watermark\n    ```\n\n2. Import\n\n    ```javascript\n    import Watermark from 'cell-watermark'\n    /* Or */\n    var Watermark = require(\"cell-watermark\")\n    ```\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/lruihao/watermark/  \n\n"
  },
  {
    "path": "projects/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/projects/</title><link rel=canonical href=https://lruihao.cn/projects/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/projects/\"></head></html>"
  },
  {
    "path": "projects/vercel-gravatar/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>利用 Vercel 反代 Gravatar 实现镜像加速 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\n\"><meta name=keywords content='Vercel,Gravatar'><meta itemprop=name content=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><meta itemprop=description content=\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\"><meta itemprop=datePublished content=\"2024-04-17T12:51:35+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=wordCount content=\"820\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"vercel,Gravatar\"><meta property=\"og:url\" content=\"https://lruihao.cn/projects/vercel-gravatar/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><meta property=\"og:description\" content=\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"projects\"><meta property=\"article:published_time\" content=\"2024-04-17T12:51:35+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-20T12:50:07+08:00\"><meta property=\"article:tag\" content=\"vercel\"><meta property=\"article:tag\" content=\"Gravatar\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><meta name=twitter:description content=\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/projects/vercel-gravatar/ title=\"利用 Vercel 反代 Gravatar 实现镜像加速 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/vercel-gravatar/ title=\"Gravatar Proxy powered by Vercel.\"><link rel=next type=text/html href=https://lruihao.cn/posts/404d6a2/ title=坐高铁去柳州吃螺狮粉><link rel=alternate type=text/markdown href=https://lruihao.cn/projects/vercel-gravatar/index.md title=\"利用 Vercel 反代 Gravatar 实现镜像加速 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/projects\\/vercel-gravatar\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"Vercel, Gravatar\",\"wordcount\":820,\"url\":\"https:\\/\\/lruihao.cn\\/projects\\/vercel-gravatar\\/\",\"datePublished\":\"2024-04-17T12:51:35+08:00\",\"dateModified\":\"2024-11-20T12:50:07+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/component-projects/repo-card.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/projects/vercel-gravatar/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/projects/ title=作为一个实践者，爱折腾的人，曾在开源世界做过一些小的贡献。>我的开源</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>利用 Vercel 反代 Gravatar 实现镜像加速</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=\"details collection-details open\"><div class=\"details-summary collection-summary\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i>\n<span class=collection-name title=合集>开源项目</span>\n<span class=collection-count>51</span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=\"details-content collection-content\"><nav><ul class=collection-list><li class=collection-item><a href=/projects/lruihao/lruihao.github.io/ title=Lruihao/lruihao.github.io>Lruihao/lruihao.github.io</a></li><li class=collection-item><a href=/projects/font-mmt/ title=沐目体>沐目体</a></li><li class=collection-item><a href=/projects/lruihao/hexo-theme-next/ title=Lruihao/hexo-theme-next>Lruihao/hexo-theme-next</a></li><li class=collection-item><a href=/projects/lruihao/mmt/ title=Lruihao/MMT>Lruihao/MMT</a></li><li class=collection-item><a href=/projects/lruihao/cos-album/ title=Lruihao/cos-album>Lruihao/cos-album</a></li><li class=collection-item><a href=/projects/cos-album/ title=利用腾讯云为静态页面添加“动态”相册>利用腾讯云为静态页面添加“动态”相册</a></li><li class=collection-item><a href=/projects/lruihao/cell-blog/ title=Lruihao/cell-blog>Lruihao/cell-blog</a></li><li class=collection-item><a href=/projects/cell-blog/ title=\"Cell-Blog 功能介绍与安装\">Cell-Blog 功能介绍与安装</a></li><li class=collection-item><a href=/projects/lruihao/bill-note/ title=Lruihao/bill-note>Lruihao/bill-note</a></li><li class=collection-item><a href=/projects/bill-note/ title=\"基于 Leancloud-Storage 实现的无后端记账本\">基于 Leancloud-Storage 实现的无后端记账本</a></li><li class=collection-item><a href=/projects/cell-watermark/ title=\"Cell Watermark\">Cell Watermark</a></li><li class=collection-item><a href=/projects/lruihao/watermark/ title=Lruihao/watermark>Lruihao/watermark</a></li><li class=collection-item><a href=/projects/lruihao/hugo-blog/ title=Lruihao/hugo-blog>Lruihao/hugo-blog</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit/ title=hugo-fixit/FixIt>hugo-fixit/FixIt</a></li><li class=collection-item><a href=/projects/hugo-fixit/docs/ title=hugo-fixit/docs>hugo-fixit/docs</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-shell/ title=hugo-fixit/hugo-shell>hugo-fixit/hugo-shell</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ title=hugo-fixit/hugo-fixit-starter1>hugo-fixit/hugo-fixit-starter1</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ title=hugo-fixit/hugo-fixit-starter>hugo-fixit/hugo-fixit-starter</a></li><li class=collection-item><a href=/projects/lruihao/vue-minder-editor-extended/ title=Lruihao/vue-minder-editor-extended>Lruihao/vue-minder-editor-extended</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ title=hugo-fixit/shortcode-mmt-netease>hugo-fixit/shortcode-mmt-netease</a></li><li class=collection-item><a href=/projects/lruihao/el-table-sticky/ title=Lruihao/el-table-sticky>Lruihao/el-table-sticky</a></li><li class=collection-item><a href=/projects/lruihao/vue-el-demo/ title=Lruihao/vue-el-demo>Lruihao/vue-el-demo</a></li><li class=collection-item><a href=/projects/el-table-sticky/ title=\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-cli/ title=hugo-fixit/fixit-cli>hugo-fixit/fixit-cli</a></li><li class=collection-item><a href=/projects/fixit-cli/ title=\"用 Node.js 开发一个轻量脚手架\">用 Node.js 开发一个轻量脚手架</a></li><li class=collection-item><a href=/projects/lruihao/kityminder-core/ title=Lruihao/kityminder-core>Lruihao/kityminder-core</a></li><li class=collection-item><a href=/projects/lruihao/coverview/ title=Lruihao/CoverView>Lruihao/CoverView</a></li><li class=collection-item><a href=/projects/coverview/ title=用五天时间给自己制作一个封面图生成工具>用五天时间给自己制作一个封面图生成工具</a></li><li class=collection-item><a href=/projects/apple-devices-preview/ title=\"临时决定再写一个小工具 - 网站预览图生成器\">临时决定再写一个小工具 - 网站预览图生成器</a></li><li class=collection-item><a href=/projects/hugo-fixit/component-projects/ title=hugo-fixit/component-projects>hugo-fixit/component-projects</a></li><li class=collection-item><a href=/projects/lruihao/vercel-gravatar/ title=Lruihao/vercel-gravatar>Lruihao/vercel-gravatar</a></li><li class=collection-item><span class=active title=\"利用 Vercel 反代 Gravatar 实现镜像加速\">利用 Vercel 反代 Gravatar 实现镜像加速</span></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-caniuse/ title=hugo-fixit/shortcode-caniuse>hugo-fixit/shortcode-caniuse</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ title=hugo-fixit/shortcode-docs-bookmark>hugo-fixit/shortcode-docs-bookmark</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-rewards/ title=hugo-fixit/shortcode-rewards>hugo-fixit/shortcode-rewards</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ title=hugo-fixit/cmpt-mdevtools>hugo-fixit/cmpt-mdevtools</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-json-feed/ title=hugo-fixit/hugo-json-feed>hugo-fixit/hugo-json-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/hugo-atom-feed/ title=hugo-fixit/hugo-atom-feed>hugo-fixit/hugo-atom-feed</a></li><li class=collection-item><a href=/projects/hugo-fixit/fixit-releaser/ title=hugo-fixit/fixit-releaser>hugo-fixit/fixit-releaser</a></li><li class=collection-item><a href=/projects/lruihao/html-demo/ title=Lruihao/html-demo>Lruihao/html-demo</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-flyfish/ title=hugo-fixit/cmpt-flyfish>hugo-fixit/cmpt-flyfish</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-translate/ title=hugo-fixit/cmpt-translate>hugo-fixit/cmpt-translate</a></li><li class=collection-item><a href=/projects/hugo-fixit/shortcode-asciinema/ title=hugo-fixit/shortcode-asciinema>hugo-fixit/shortcode-asciinema</a></li><li class=collection-item><a href=/projects/hugo-fixit/action-component-list/ title=hugo-fixit/action-component-list>hugo-fixit/action-component-list</a></li><li class=collection-item><a href=/projects/lruihao/vercel-proxy/ title=Lruihao/vercel-proxy>Lruihao/vercel-proxy</a></li><li class=collection-item><a href=/projects/lruihao/mmt-webfont/ title=Lruihao/mmt-webfont>Lruihao/mmt-webfont</a></li><li class=collection-item><a href=/projects/lruihao/json-viewer-element/ title=Lruihao/json-viewer-element>Lruihao/json-viewer-element</a></li><li class=collection-item><a href=/projects/lruihao/caniuse-embed-element/ title=Lruihao/caniuse-embed-element>Lruihao/caniuse-embed-element</a></li><li class=collection-item><a href=/projects/lruihao/auto-changelog-plus/ title=Lruihao/auto-changelog-plus>Lruihao/auto-changelog-plus</a></li><li class=collection-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ title=hugo-fixit/cmpt-santa-hat>hugo-fixit/cmpt-santa-hat</a></li><li class=collection-item><a href=/projects/lruihao/cell-tooltip/ title=Lruihao/cell-tooltip>Lruihao/cell-tooltip</a></li></ul><div class=collection-nav-simple><a href=/projects/lruihao/vercel-gravatar/ class=collection-nav-item rel=prev title=Lruihao/vercel-gravatar><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i></a><span class=text-secondary>32/51</span><a href=/projects/hugo-fixit/shortcode-caniuse/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-caniuse><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></nav></div></div><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>利用 Vercel 反代 Gravatar 实现镜像加速</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ class=post-category title=\"分类 - 瞎折腾\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 瞎折腾</a> 和 <a href=/collections/project/ class=post-collection title=\"合集 - 开源项目\"><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> 开源项目</a></span></div><div class=post-meta-line><span title=\"发布于 2024-04-17 12:51:35\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-04-17>2024-04-17</time></span>&nbsp;<span title=\"更新于 2024-11-20 12:50:07\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2024-11-20>2024-11-20</time></span>&nbsp;<span title=\"820 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 2 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#思路>思路</a></li><li><a href=#实现>实现</a></li><li><a href=#源码>源码</a></li></ol></nav></div></div><div class=ai-summary></div><div class=\"expiration-reminder details admonition warning open\"><div class=\"details-summary admonition-title\"><i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=true></i>警告<i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></div><div class=details-content><div class=admonition-content>本文最后更新于 2024-11-20，文中内容可能已过时。</div></div></div><div class=content id=content data-end-flag=\"「本文完，更多内容汇总在我的 GitHub，持续更新，求关注、求 star、求订阅！」\"><p>在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。</p><h2 class=heading-element id=思路><span>1 思路</span>\n<a href=#%e6%80%9d%e8%b7%af class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><ol><li>解析请求的 URL，并将其 host 修改为我们要代理的目标域名（这里是 <code>www.gravatar.com</code>）。</li><li>获取原始请求的方法、头部信息，并创建一个新的请求头部对象。</li><li>将新请求头部对象中的 Host 字段设置为目标域名，并将 Referer 字段设置为原始请求的 URL。</li><li>使用修改后的 URL、方法和头部信息发送请求到目标域名。</li><li>获取原始响应的状态码、头部信息和响应体，并克隆原始响应对象。</li><li>检查请求的 Referer 来源域名是否合法，如果不合法则返回一个 403 Forbidden 的响应。</li><li>设置新的响应头部信息，包括允许的请求方法、请求头部和缓存控制策略。</li><li>构造最终的响应对象，其中响应体为原始响应的内容，状态码和头部信息为修改后的值。</li><li>返回最终的响应对象。</li></ol><p>安装上面的思路，理论上我们可以反代任何一个网站，并且支持设置 CORS 策略。GitHub 上也有类似的项目，比如 <a href=https://github.com/gaowanlu/google target=_blank rel=\"external nofollow noopener noreferrer\">https://github.com/gaowanlu/google<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>.</p><blockquote><p>当然，网络不是非法之地，不要滥用这个功能反代一些不合法的网站哦。</p></blockquote><h2 class=heading-element id=实现><span>2 实现</span>\n<a href=#%e5%ae%9e%e7%8e%b0 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><img alt=\"Lruihao gravatar\" src=\"https://gravatar.lruihao.cn/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=128\"><p>⬆️ <code>https://gravatar.lruihao.cn/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=64</code></p><p>实现 API 代码：</p><div class=\"code-block highlight\" data-mode=classic data-copyable=true title=api/gravatar.js><div class=chroma><div class=\"code-header language-js\"><span class=code-title><i class=\"arrow fa-solid fa-chevron-down\" aria-hidden=true></i><span class=title-inner>api/gravatar.js</span></span><span class=ellipses-btn aria-label=\"Show more options\" role=button><i class=\"fa-solid fa-ellipsis-h\" aria-hidden=true></i></span><span class=\"action-btn line-nos-btn\" aria-label=切换行号 role=button title=切换行号 data-ct-tooltip><i class=\"fa-solid fa-list-ol\" aria-hidden=true></i></span><span class=\"action-btn line-wrap-btn\" aria-label=切换自动换行 role=button title=切换自动换行 data-ct-tooltip><i class=\"fa-solid fa-right-left\" aria-hidden=true></i></span><span class=\"action-btn copy-btn\" aria-label=复制到剪贴板 role=button title=复制到剪贴板 data-copied-text=已复制 data-ct-tooltip><i class=\"fa-regular fa-clone\" aria-hidden=true></i></span></div><div class=code-wrapper data-max=10 data-line-digit=2 style=--fi-max-shown-lines:10;--fi-line-digit:2;--fi-line-start:1><table class=lntable><tr><td class=lntd><pre tabindex=0 class=chroma><code><span class=lnt> 1\n</span><span class=lnt> 2\n</span><span class=lnt> 3\n</span><span class=lnt> 4\n</span><span class=lnt> 5\n</span><span class=lnt> 6\n</span><span class=lnt> 7\n</span><span class=lnt> 8\n</span><span class=lnt> 9\n</span><span class=lnt>10\n</span><span class=lnt>11\n</span><span class=lnt>12\n</span><span class=lnt>13\n</span><span class=lnt>14\n</span><span class=lnt>15\n</span><span class=lnt>16\n</span><span class=lnt>17\n</span><span class=lnt>18\n</span><span class=lnt>19\n</span><span class=lnt>20\n</span><span class=lnt>21\n</span><span class=lnt>22\n</span><span class=lnt>23\n</span><span class=lnt>24\n</span><span class=lnt>25\n</span><span class=lnt>26\n</span><span class=lnt>27\n</span><span class=lnt>28\n</span><span class=lnt>29\n</span><span class=lnt>30\n</span><span class=lnt>31\n</span><span class=lnt>32\n</span><span class=lnt>33\n</span><span class=lnt>34\n</span><span class=lnt>35\n</span><span class=lnt>36\n</span><span class=lnt>37\n</span><span class=lnt>38\n</span><span class=lnt>39\n</span><span class=lnt>40\n</span><span class=lnt>41\n</span><span class=lnt>42\n</span><span class=lnt>43\n</span><span class=lnt>44\n</span><span class=lnt>45\n</span><span class=lnt>46\n</span><span class=lnt>47\n</span><span class=lnt>48\n</span><span class=lnt>49\n</span><span class=lnt>50\n</span><span class=lnt>51\n</span><span class=lnt>52\n</span><span class=lnt>53\n</span><span class=lnt>54\n</span><span class=lnt>55\n</span><span class=lnt>56\n</span><span class=lnt>57\n</span><span class=lnt>58\n</span><span class=lnt>59\n</span><span class=lnt>60\n</span><span class=lnt>61\n</span><span class=lnt>62\n</span><span class=lnt>63\n</span><span class=lnt>64\n</span><span class=lnt>65\n</span><span class=lnt>66\n</span><span class=lnt>67\n</span><span class=lnt>68\n</span><span class=lnt>69\n</span><span class=lnt>70\n</span><span class=lnt>71\n</span><span class=lnt>72\n</span><span class=lnt>73\n</span><span class=lnt>74\n</span><span class=lnt>75\n</span><span class=lnt>76\n</span><span class=lnt>77\n</span><span class=lnt>78\n</span><span class=lnt>79\n</span><span class=lnt>80\n</span><span class=lnt>81\n</span><span class=lnt>82\n</span><span class=lnt>83\n</span><span class=lnt>84\n</span><span class=lnt>85\n</span><span class=lnt>86\n</span><span class=lnt>87\n</span><span class=lnt>88\n</span><span class=lnt>89\n</span><span class=lnt>90\n</span><span class=lnt>91\n</span><span class=lnt>92\n</span></code></pre></td><td class=lntd><pre tabindex=0 class=chroma><code class=language-js data-lang=js><span class=line><span class=cl><span class=kr>const</span> <span class=nx>allowedReferrers</span> <span class=o>=</span> <span class=p>[</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;lruihao.cn&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;gravatar-x.vercel.app&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;-lrh-dev.vercel.app&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;-cell-x.vercel.app&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=s2>&#34;localhost&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>];</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>const</span> <span class=nx>upstream</span> <span class=o>=</span> <span class=s2>&#34;www.gravatar.com&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=cm>/**\n</span></span></span><span class=line><span class=cl><span class=cm> * whether the hostname is allowed\n</span></span></span><span class=line><span class=cl><span class=cm> * @param {String} hostname \n</span></span></span><span class=line><span class=cl><span class=cm> * @returns \n</span></span></span><span class=line><span class=cl><span class=cm> */</span>\n</span></span><span class=line><span class=cl><span class=kd>function</span> <span class=nx>isAllowedHost</span><span class=p>(</span><span class=nx>hostname</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>regExp</span> <span class=o>=</span> <span class=k>new</span> <span class=nb>RegExp</span><span class=p>(</span><span class=nx>allowedReferrers</span><span class=p>.</span><span class=nx>join</span><span class=p>(</span><span class=s2>&#34;|&#34;</span><span class=p>),</span> <span class=s2>&#34;g&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=c1>// if hostname matches allowed referrers\n</span></span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>hostname</span> <span class=o>||</span> <span class=nx>regExp</span><span class=p>.</span><span class=nx>test</span><span class=p>(</span><span class=nx>hostname</span><span class=p>))</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>for</span> <span class=p>(</span><span class=kr>const</span> <span class=nx>referrer</span> <span class=k>of</span> <span class=nx>allowedReferrers</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=c1>// if hostname ends with allowed referrers\n</span></span></span><span class=line><span class=cl>    <span class=k>if</span> <span class=p>(</span><span class=nx>hostname</span><span class=p>.</span><span class=nx>endsWith</span><span class=p>(</span><span class=nx>referrer</span><span class=p>))</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=kc>true</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=kc>false</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>async</span> <span class=kd>function</span> <span class=nx>fetchAndApply</span><span class=p>(</span><span class=nx>request</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>response</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>url</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>URL</span><span class=p>(</span><span class=nx>request</span><span class=p>.</span><span class=nx>url</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>url</span><span class=p>.</span><span class=nx>host</span> <span class=o>=</span> <span class=nx>upstream</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>method</span> <span class=o>=</span> <span class=nx>request</span><span class=p>.</span><span class=nx>method</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>request_headers</span> <span class=o>=</span> <span class=nx>request</span><span class=p>.</span><span class=nx>headers</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>new_request_headers</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Headers</span><span class=p>(</span><span class=nx>request_headers</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_request_headers</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s2>&#34;Host&#34;</span><span class=p>,</span> <span class=nx>upstream</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_request_headers</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s2>&#34;Referer&#34;</span><span class=p>,</span> <span class=nx>url</span><span class=p>.</span><span class=nx>href</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>original_response</span> <span class=o>=</span> <span class=kr>await</span> <span class=nx>fetch</span><span class=p>(</span><span class=nx>url</span><span class=p>.</span><span class=nx>href</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>method</span><span class=o>:</span> <span class=nx>method</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>headers</span><span class=o>:</span> <span class=nx>new_request_headers</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>original_response_clone</span> <span class=o>=</span> <span class=nx>original_response</span><span class=p>.</span><span class=nx>clone</span><span class=p>();</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>original_text</span> <span class=o>=</span> <span class=kc>null</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>response_headers</span> <span class=o>=</span> <span class=nx>original_response</span><span class=p>.</span><span class=nx>headers</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>new_response_headers</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Headers</span><span class=p>(</span><span class=nx>response_headers</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=kd>let</span> <span class=nx>status</span> <span class=o>=</span> <span class=nx>original_response</span><span class=p>.</span><span class=nx>status</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=kr>const</span> <span class=nx>hostname</span> <span class=o>=</span> <span class=p>(()</span> <span class=p>=&gt;</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>try</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=k>new</span> <span class=nx>URL</span><span class=p>(</span><span class=nx>request</span><span class=p>.</span><span class=nx>headers</span><span class=p>.</span><span class=nx>get</span><span class=p>(</span><span class=s2>&#34;Referer&#34;</span><span class=p>)).</span><span class=nx>hostname</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span> <span class=k>catch</span> <span class=p>(</span><span class=nx>e</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=k>return</span> <span class=s2>&#34;&#34;</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>    <span class=p>}</span>\n</span></span><span class=line><span class=cl>  <span class=p>})();</span>\n</span></span><span class=line><span class=cl>  <span class=k>if</span> <span class=p>(</span><span class=o>!</span><span class=nx>isAllowedHost</span><span class=p>(</span><span class=nx>hostname</span><span class=p>))</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=k>return</span> <span class=k>new</span> <span class=nx>Response</span><span class=p>(</span><span class=sb>`403 Forbidden: </span><span class=si>${</span><span class=nx>hostname</span><span class=si>}</span><span class=sb>`</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>      <span class=nx>headers</span><span class=o>:</span> <span class=p>{</span> <span class=s2>&#34;Content-Type&#34;</span><span class=o>:</span> <span class=s2>&#34;text/html&#34;</span> <span class=p>},</span>\n</span></span><span class=line><span class=cl>      <span class=nx>status</span><span class=o>:</span> <span class=mi>403</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>      <span class=nx>statusText</span><span class=o>:</span> <span class=s2>&#34;Forbidden&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=p>});</span>\n</span></span><span class=line><span class=cl>  <span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=c1>// new_response_headers.set(&#34;access-control-allow-origin&#34;, &#34;https://lruihao.cn&#34;);\n</span></span></span><span class=line><span class=cl>  <span class=nx>new_response_headers</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s2>&#34;Access-Control-Allow-Methods&#34;</span><span class=p>,</span> <span class=s2>&#34;GET, POST, OPTIONS&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_response_headers</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span><span class=s2>&#34;Access-Control-Allow-Headers&#34;</span><span class=p>,</span> <span class=s2>&#34;Content-Type&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_response_headers</span><span class=p>.</span><span class=nx>set</span><span class=p>(</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;Cache-Control&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=s2>&#34;max-age=600, s-maxage=2592000, stale-while-revalidate&#34;</span>\n</span></span><span class=line><span class=cl>  <span class=p>);</span>\n</span></span><span class=line><span class=cl>  <span class=nx>new_response_headers</span><span class=p>.</span><span class=k>delete</span><span class=p>(</span><span class=s2>&#34;link&#34;</span><span class=p>);</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>original_text</span> <span class=o>=</span> <span class=nx>original_response_clone</span><span class=p>.</span><span class=nx>body</span><span class=p>;</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=nx>response</span> <span class=o>=</span> <span class=k>new</span> <span class=nx>Response</span><span class=p>(</span><span class=nx>original_text</span><span class=p>,</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>    <span class=nx>status</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>    <span class=nx>headers</span><span class=o>:</span> <span class=nx>new_response_headers</span><span class=p>,</span>\n</span></span><span class=line><span class=cl>  <span class=p>});</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nx>response</span><span class=p>;</span>\n</span></span><span class=line><span class=cl><span class=p>}</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=kr>const</span> <span class=nx>config</span> <span class=o>=</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=nx>runtime</span><span class=o>:</span> <span class=s2>&#34;experimental-edge&#34;</span><span class=p>,</span>\n</span></span><span class=line><span class=cl><span class=p>};</span>\n</span></span><span class=line><span class=cl>\n</span></span><span class=line><span class=cl><span class=kr>export</span> <span class=k>default</span> <span class=kd>function</span> <span class=p>(</span><span class=nx>req</span><span class=p>)</span> <span class=p>{</span>\n</span></span><span class=line><span class=cl>  <span class=k>return</span> <span class=nx>fetchAndApply</span><span class=p>(</span><span class=nx>req</span><span class=p>);</span>\n</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></td></tr></table></div><div class=code-expand-btn aria-label=展开或折叠代码块 role=button><i class=\"fa-solid fa-angles-down\" aria-hidden=true></i></div></div></div><p>配置 <code>vercel.json</code> 文件：</p><json-viewer value='\"{\\n  \\\"rewrites\\\": [\\n    { \\\"source\\\": \\\"/avatar/(.*)\\\", \\\"destination\\\": \\\"api/gravatar\\\" }\\n  ]\\n}\"' expand-depth=1 boxed copyable='{\"copiedText\":\"已复制\",\"copyText\":\"复制\"}'></json-viewer><p>最后部署到 Vercel 平台即可。</p><h2 class=heading-element id=源码><span>3 源码</span>\n<a href=#%e6%ba%90%e7%a0%81 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><div class=\"gh-repo-card-container single\"><div class=gh-repo-card><div class=repo-card-content><div class=repo-name><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo mr-1 color-fg-muted\"><path d=\"M2 2.5A2.5 2.5.0 014.5.0h8.75a.75.75.0 01.75.75v12.5a.75.75.0 01-.75.75h-2.5a.75.75.0 010-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75.0 11-1.072 1.05A2.495 2.495.0 012 11.5zm10.5-1h-8a1 1 0 00-1 1v6.708A2.486 2.486.0 014.5 9h8zM5 12.25a.25.25.0 01.25-.25h3.5a.25.25.0 01.25.25v3.25a.25.25.0 01-.4.2l-1.45-1.087a.249.249.0 00-.3.0L5.4 15.7a.25.25.0 01-.4-.2z\"/></svg>\n<a href=https://github.com/Lruihao/vercel-gravatar class=repo-url title=Lruihao/vercel-gravatar target=_blank><span>Lruihao/</span><span>vercel-gravatar</span>\n</a><span class=repo-visibility data-archived=true>Public archived</span></div><p class=repo-desc>Gravatar Proxy powered by Vercel.</p><p class=repo-statistics><span class=repo-lang><span class=repo-lang-color style=background-color:#f1e05a></span>\n<span itemprop=programmingLanguage>JavaScript</span>\n</span><a href=https://github.com/Lruihao/vercel-gravatar/stargazers title=\"1 stars\" class=repo-stars target=_blank><svg aria-label=\"stars\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-star\"><path d=\"M8 .25a.75.75.0 01.673.418l1.882 3.815 4.21.612a.75.75.0 01.416 1.279l-3.046 2.97.719 4.192a.751.751.0 01-1.088.791L8 12.347l-3.766 1.98a.75.75.0 01-1.088-.79l.72-4.194L.818 6.374a.75.75.0 01.416-1.28l4.21-.611L7.327.668A.75.75.0 018 .25zm0 2.445L6.615 5.5a.75.75.0 01-.564.41l-3.097.45 2.24 2.184a.75.75.0 01.216.664l-.528 3.084 2.769-1.456a.75.75.0 01.698.0l2.77 1.456-.53-3.084a.75.75.0 01.216-.664l2.24-2.183-3.096-.45a.75.75.0 01-.564-.41L8 2.694z\"/></svg>1</a><a href=https://github.com/Lruihao/vercel-gravatar/forks title=\"1 forks\" class=repo-forks target=_blank>\n<svg aria-label=\"forks\" role=\"img\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-repo-forked\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75.0 00.75-.75v-.878a2.25 2.25.0 111.5.0v.878A2.25 2.25.0 0110.25 8.5h-1.5v2.128a2.251 2.251.0 11-1.5.0V8.5h-1.5A2.25 2.25.0 013.5 6.25v-.878a2.25 2.25.0 111.5.0zM5 3.25a.75.75.0 10-1.5.0.75.75.0 001.5.0zm6.75.75a.75.75.0 100-1.5.75.75.0 000 1.5zm-3 8.75a.75.75.0 10-1.5.0.75.75.0 001.5.0z\"/></svg>1</a></p></div></div></div></div><div class=post-reward><div class=comment>Buy me a coffee~</div><input type=checkbox class=reward-input name=reward id=fi-reward hidden>\n<label class=reward-button for=fi-reward><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=\"Lruihao 支付宝\"><span data-animation>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=\"Lruihao 微信\"><span data-animation>微信</span></div></div></div><div class=collection-card><div class=\"collection-title text-secondary\">收录于 <a href=/collections/project/><i class=\"fa-solid fa-layer-group\" aria-hidden=true></i> <span>合集・开源项目</span></span></a> 51</div><div class=collection-nav><a href=/projects/lruihao/vercel-gravatar/ class=collection-nav-item rel=prev title=Lruihao/vercel-gravatar><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i><span>Lruihao/vercel-gravatar</span>\n</a><a href=/projects/hugo-fixit/shortcode-caniuse/ class=collection-nav-item rel=next title=hugo-fixit/shortcode-caniuse><span>hugo-fixit/shortcode-caniuse</span><i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-11-20 12:50:07\">更新于 2024-11-20&nbsp;<a class=git-hash href=https://github.com/Lruihao/hugo-blog/commit/ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea rel=\"external nofollow noopener noreferrer\" target=_blank title=\"Docs: 简化 Front matter&#10&#10Commit: ff983d2cfcf11daa1ee711e8d9b731cfd00a0eea [ff983d2]&#10Author: Cell<1024@lruihao.cn>&#10Date: 2024-11-20 12:50:07\"><i class=\"fa-solid fa-hashtag\" aria-hidden=true></i>ff983d2</a></span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/projects/vercel-gravatar/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/projects/vercel-gravatar.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/projects/vercel-gravatar.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%20%E5%88%A9%E7%94%A8+Vercel+%E5%8F%8D%E4%BB%A3+Gravatar+%E5%AE%9E%E7%8E%B0%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c%E5%88%A9%E7%94%A8+Vercel+%E5%8F%8D%E4%BB%A3+Gravatar+%E5%AE%9E%E7%8E%B0%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F%7c%0A%7cURL%7chttps://lruihao.cn/projects/vercel-gravatar/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/projects/vercel-gravatar.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/projects/vercel-gravatar/ data-title=\"利用 Vercel 反代 Gravatar 实现镜像加速\" data-hashtags=Vercel,Gravatar><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/projects/vercel-gravatar/ data-hashtag=Vercel><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/projects/vercel-gravatar/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/projects/vercel-gravatar/ data-title=\"利用 Vercel 反代 Gravatar 实现镜像加速\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/projects/vercel-gravatar/ data-title=\"利用 Vercel 反代 Gravatar 实现镜像加速\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/vercel/ class=post-tag title=\"标签 - vercel\">vercel</a><a href=/tags/gravatar/ class=post-tag title=\"标签 - Gravatar\">Gravatar</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/vercel-gravatar/ class=post-nav-item rel=prev title=Lruihao/vercel-gravatar><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/vercel-gravatar</a><a href=/posts/404d6a2/ class=post-nav-item rel=next title=坐高铁去柳州吃螺狮粉>坐高铁去柳州吃螺狮粉<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#思路>思路</a></li><li><a href=#实现>实现</a></li><li><a href=#源码>源码</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=https://ai.zhheo.com/static/public/postChatUser_summary.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/json-viewer-element@1.0.4/dist/json-viewer-element.umd.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/aafa3c7949a62e4a9cfc2452c03d5691.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser_summary.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/aafa3c7949a62e4a9cfc2452c03d5691.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/projects/vercel-gravatar/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "projects/vercel-gravatar/index.md",
    "content": "# 利用 Vercel 反代 Gravatar 实现镜像加速\n\n\n在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\n\n<!--more-->\n\n## 思路\n\n1. 解析请求的 URL，并将其 host 修改为我们要代理的目标域名（这里是 `www.gravatar.com`）。\n2. 获取原始请求的方法、头部信息，并创建一个新的请求头部对象。\n3. 将新请求头部对象中的 Host 字段设置为目标域名，并将 Referer 字段设置为原始请求的 URL。\n4. 使用修改后的 URL、方法和头部信息发送请求到目标域名。\n5. 获取原始响应的状态码、头部信息和响应体，并克隆原始响应对象。\n6. 检查请求的 Referer 来源域名是否合法，如果不合法则返回一个 403 Forbidden 的响应。\n7. 设置新的响应头部信息，包括允许的请求方法、请求头部和缓存控制策略。\n8. 构造最终的响应对象，其中响应体为原始响应的内容，状态码和头部信息为修改后的值。\n9. 返回最终的响应对象。\n\n安装上面的思路，理论上我们可以反代任何一个网站，并且支持设置 CORS 策略。GitHub 上也有类似的项目，比如 <https://github.com/gaowanlu/google>.\n\n> 当然，网络不是非法之地，不要滥用这个功能反代一些不合法的网站哦。\n\n## 实现\n\n<img alt=\"Lruihao gravatar\" src=\"https://gravatar.lruihao.cn/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=128\" />\n\n⬆️ `https://gravatar.lruihao.cn/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=64`\n\n实现 API 代码：\n\n```js {title=\"api/gravatar.js\"}\nconst allowedReferrers = [\n  \"lruihao.cn\",\n  \"gravatar-x.vercel.app\",\n  \"-lrh-dev.vercel.app\",\n  \"-cell-x.vercel.app\",\n  \"localhost\",\n];\n\nconst upstream = \"www.gravatar.com\";\n\n/**\n * whether the hostname is allowed\n * @param {String} hostname \n * @returns \n */\nfunction isAllowedHost(hostname) {\n  const regExp = new RegExp(allowedReferrers.join(\"|\"), \"g\");\n  // if hostname matches allowed referrers\n  if (!hostname || regExp.test(hostname)) {\n    return true\n  }\n  for (const referrer of allowedReferrers) {\n    // if hostname ends with allowed referrers\n    if (hostname.endsWith(referrer)) {\n      return true\n    }\n  }\n  return false\n}\n\nasync function fetchAndApply(request) {\n  let response = null;\n  let url = new URL(request.url);\n\n  url.host = upstream;\n  let method = request.method;\n  let request_headers = request.headers;\n  let new_request_headers = new Headers(request_headers);\n  new_request_headers.set(\"Host\", upstream);\n  new_request_headers.set(\"Referer\", url.href);\n  let original_response = await fetch(url.href, {\n    method: method,\n    headers: new_request_headers,\n  });\n\n  let original_response_clone = original_response.clone();\n  let original_text = null;\n  let response_headers = original_response.headers;\n  let new_response_headers = new Headers(response_headers);\n  let status = original_response.status;\n\n  const hostname = (() => {\n    try {\n      return new URL(request.headers.get(\"Referer\")).hostname;\n    } catch (e) {\n      return \"\";\n    }\n  })();\n  if (!isAllowedHost(hostname)) {\n    return new Response(`403 Forbidden: ${hostname}`, {\n      headers: { \"Content-Type\": \"text/html\" },\n      status: 403,\n      statusText: \"Forbidden\",\n    });\n  }\n\n  // new_response_headers.set(\"access-control-allow-origin\", \"https://lruihao.cn\");\n  new_response_headers.set(\"Access-Control-Allow-Methods\", \"GET, POST, OPTIONS\");\n  new_response_headers.set(\"Access-Control-Allow-Headers\", \"Content-Type\");\n  new_response_headers.set(\n    \"Cache-Control\",\n    \"max-age=600, s-maxage=2592000, stale-while-revalidate\"\n  );\n  new_response_headers.delete(\"link\");\n\n  original_text = original_response_clone.body;\n\n  response = new Response(original_text, {\n    status,\n    headers: new_response_headers,\n  });\n\n  return response;\n}\n\nexport const config = {\n  runtime: \"experimental-edge\",\n};\n\nexport default function (req) {\n  return fetchAndApply(req);\n}\n```\n\n配置 `vercel.json` 文件：\n\n```json {title=\"vercel.json\"}\n{\n  \"rewrites\": [\n    { \"source\": \"/avatar/(.*)\", \"destination\": \"api/gravatar\" }\n  ]\n}\n```\n\n最后部署到 Vercel 平台即可。\n\n## 源码\n\n{{< gh-repo-card-container >}}\n  {{< gh-repo-card repo=\"Lruihao/vercel-gravatar\" >}}\n{{< /gh-repo-card-container >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/projects/vercel-gravatar/  \n\n"
  },
  {
    "path": "readme.md",
    "content": "# [菠菜眾長](https://lruihao.cn/ \"主页\")\n\n> Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\n\n共计 297 篇文章 by [Lruihao](https://github.com/Lruihao).\n\n## 2026\n\n<details open>\n<summary>共计 1 篇文章</summary>\n\n- 03-06 [一个轻量化 Tooltip 组件。](https://lruihao.cn/projects/lruihao/cell-tooltip/ \"2026-03-06 06:58:23\")\n\n</details>\n\n## 2025\n\n<details>\n<summary>共计 14 篇文章</summary>\n\n- 12-24 [A Christmas Easter Egg by JavaScript.](https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ \"2025-12-24 03:31:47\")\n- 08-30 [Command line tool for generating a changelog from git tags and commit history](https://lruihao.cn/projects/lruihao/auto-changelog-plus/ \"2025-08-30 15:40:19\")\n- 08-16 [让 Mermaid 图表自动跟随系统深浅色](https://lruihao.cn/posts/mermaid-theming/ \"2025-08-16 12:37:49\")\n- 08-05 [黑盒出关・三把钥匙定江湖](https://lruihao.cn/posts/wc-01-prologue/ \"2025-08-05 11:31:52\")\n- 08-04 [Code Playground](https://lruihao.cn/posts/code-playground/ \"2025-08-04 11:37:24\")\n- 07-22 [A custom web component that embeds caniuse.com browser compatibility data for a specific feature.](https://lruihao.cn/projects/lruihao/caniuse-embed-element/ \"2025-07-22 03:40:45\")\n- 07-19 [A custom element for viewing and interacting with JSON data.](https://lruihao.cn/projects/lruihao/json-viewer-element/ \"2025-07-19 07:05:07\")\n- 06-18 [CSS @layer：构建更高效、更可维护的样式层级](https://lruihao.cn/posts/at-layer/ \"2025-06-18 10:35:47\")\n- 06-11 [Vue.js History 模式下的 NGINX 配置与 API 代理](https://lruihao.cn/posts/vue-build/ \"2025-06-11 10:05:36\")\n- 04-10 [The webfont package for the MMT typeface.](https://lruihao.cn/projects/lruihao/mmt-webfont/ \"2025-04-10 08:35:34\")\n- 04-09 [API proxies powered by Vercel.](https://lruihao.cn/projects/lruihao/vercel-proxy/ \"2025-04-09 02:13:22\")\n- 01-20 [CSS Flexbox 布局指南](https://lruihao.cn/posts/flexbox/ \"2025-01-20 15:56:38\")\n- 01-14 [Generate a list of all hugo-fixit theme components.](https://lruihao.cn/projects/hugo-fixit/action-component-list/ \"2025-01-14 09:10:09\")\n- 01-08 [A Hugo theme component with asciinema-embed shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ \"2025-01-08 09:20:48\")\n\n</details>\n\n## 2024\n\n<details>\n<summary>共计 38 篇文章</summary>\n\n- 12-06 [震惊！CSS 竟然能获取视口尺寸？](https://lruihao.cn/posts/css-viewport/ \"2024-12-06 10:32:22\")\n- 12-02 [🌐 A component for site automatic translation.](https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ \"2024-12-02 07:29:57\")\n- 11-22 [Amazon 如何让服务器享受着持续集群安全？](https://lruihao.cn/posts/91db0fa/ \"2024-11-22 14:01:18\")\n- 11-05 [🐟 A canvas implemented animation effect of small fish swimming.](https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ \"2024-11-05 08:23:29\")\n- 10-06 [自动获取 GitHub README 内容添加到 Hugo 文章](https://lruihao.cn/posts/content-adapters/ \"2024-10-06 11:10:22\")\n- 09-13 [不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。](https://lruihao.cn/projects/lruihao/html-demo/ \"2024-09-13 02:36:29\")\n- 09-04 [⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)](https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ \"2024-09-04 18:10:59\")\n- 08-22 [Hugo theme component for ATOM feed custom Output Format.](https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ \"2024-08-22 03:29:22\")\n- 08-22 [Hugo theme component for JSON feed custom Output Format.](https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ \"2024-08-22 03:28:23\")\n- 08-07 [Mobile devtools component powered by vConsole and eruda.](https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ \"2024-08-07 05:49:13\")\n- 07-29 [现代 CSS 解决方案：CSS 四舍五入数值单位](https://lruihao.cn/posts/css-round/ \"2024-07-29 20:32:39\")\n- 07-21 [A Hugo theme component with reward-log or sponsor-log shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ \"2024-07-21 14:02:29\")\n- 07-17 [Git 统计代码量](https://lruihao.cn/posts/git-summary/ \"2024-07-17 16:06:08\")\n- 07-15 [现代 CSS 解决方案之异形元素怎么设置阴影？](https://lruihao.cn/posts/drop-shadow/ \"2024-07-15 10:40:12\")\n- 07-14 [🔖 Embed bookmark of FixIt Docs.](https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ \"2024-07-14 07:39:56\")\n- 07-14 [CSS 实现时间轴、背景图 loading 和渐变边框](https://lruihao.cn/posts/fixit-docs-bookmark/ \"2024-07-14 13:03:31\")\n- 07-07 [探索 Amazon S3 的无限存储潜力](https://lruihao.cn/posts/d1fc0c7/ \"2024-07-07 13:54:14\")\n- 06-28 [标准滚动条控制规范](https://lruihao.cn/posts/scrollbar-styling/ \"2024-06-28 22:29:03\")\n- 06-28 [A Hugo theme component with caniuse shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ \"2024-06-28 06:56:32\")\n- 06-13 [如何实现 VSCode 编辑器窗口边界拖拽类似功能](https://lruihao.cn/posts/aside-toggle-drag/ \"2024-06-13 21:03:12\")\n- 06-09 [架构之基：从根儿上了解设计原则](https://lruihao.cn/posts/design-principles/ \"2024-06-09 02:24:31\")\n- 06-06 [怎么生成暗黑模式和明亮模式的 SVG 图片？](https://lruihao.cn/posts/svg-dark-light/ \"2024-06-06 22:13:26\")\n- 05-20 [坐高铁去柳州吃螺狮粉](https://lruihao.cn/posts/404d6a2/ \"2024-05-20 11:41:03\")\n- 04-17 [利用 Vercel 反代 Gravatar 实现镜像加速](https://lruihao.cn/projects/vercel-gravatar/ \"2024-04-17 12:51:35\")\n- 04-17 [Gravatar Proxy powered by Vercel.](https://lruihao.cn/projects/lruihao/vercel-gravatar/ \"2024-04-17 01:37:06\")\n- 04-09 [🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.](https://lruihao.cn/projects/hugo-fixit/component-projects/ \"2024-04-09 21:38:42\")\n- 04-04 [临时决定再写一个小工具 - 网站预览图生成器](https://lruihao.cn/projects/apple-devices-preview/ \"2024-04-04 13:23:37\")\n- 04-02 [用五天时间给自己制作一个封面图生成工具](https://lruihao.cn/projects/coverview/ \"2024-04-02 18:05:34\")\n- 03-28 [🛠 Create awesome cover images for your blog posts quickly.](https://lruihao.cn/projects/lruihao/coverview/ \"2024-03-28 06:14:16\")\n- 03-26 [写文档时英文标题什么时候要大写？](https://lruihao.cn/posts/c6bc2d5/ \"2024-03-26 12:23:44\")\n- 02-29 [实现类似于 Element UI 表格的溢出文本提示功能](https://lruihao.cn/posts/overflow-tooltip/ \"2024-02-29 16:46:00\")\n- 02-21 [聊聊 Chrome 新增的 sizes=\"auto\" 属性](https://lruihao.cn/posts/auto-sizes/ \"2024-02-21 10:00:13\")\n- 02-09 [2023 年度总结](https://lruihao.cn/years/2023/ \"2024-02-09 14:07:24\")\n- 01-21 [强大的脑图可视化工具](https://lruihao.cn/projects/lruihao/kityminder-core/ \"2024-01-21 06:24:42\")\n- 01-17 [记一次 Debug 第三方包的过程](https://lruihao.cn/posts/900d5e4/ \"2024-01-17 14:57:48\")\n- 01-17 [为什么很多教程中都有 foo bar？](https://lruihao.cn/posts/20b75e9/ \"2024-01-17 09:58:58\")\n- 01-11 [git submodule: already exists in the index](https://lruihao.cn/posts/6550187/ \"2024-01-11 10:30:04\")\n- 01-10 [给 el-card 添加折叠功能](https://lruihao.cn/posts/el-card-collapse/ \"2024-01-10 17:06:54\")\n\n</details>\n\n## 2023\n\n<details>\n<summary>共计 35 篇文章</summary>\n\n- 12-22 [尝试在 Python 中使用 Amazon Titan 文本模型](https://lruihao.cn/posts/d8ae205/ \"2023-12-22 19:58:47\")\n- 11-28 [用 Node.js 开发一个轻量脚手架](https://lruihao.cn/projects/fixit-cli/ \"2023-11-28 10:48:07\")\n- 11-20 [🛠️ A node-based tooling for FixIt site initialization.](https://lruihao.cn/projects/hugo-fixit/fixit-cli/ \"2023-11-20 06:40:09\")\n- 11-18 [探索 AWS 云上一站式解决方案免费使用](https://lruihao.cn/posts/aws-solution/ \"2023-11-18 12:52:37\")\n- 10-22 [SSH 提交签名验证](https://lruihao.cn/posts/ssh-sign/ \"2023-10-22 18:59:31\")\n- 10-12 [如何给 npm 包打补丁？](https://lruihao.cn/posts/patch-package/ \"2023-10-12 22:37:56\")\n- 10-12 [拖拽式仪表盘系列总结](https://lruihao.cn/posts/dashboard-summary/ \"2023-10-12 21:25:18\")\n- 10-12 [拖拽式仪表盘 - 组件开发](https://lruihao.cn/posts/dashborad-widget-usage/ \"2023-10-12 20:07:56\")\n- 10-12 [拖拽式仪表盘 - 模板使用](https://lruihao.cn/posts/dashborad-template-usage/ \"2023-10-12 20:07:20\")\n- 10-12 [拖拽式仪表盘 - 组件配置文档](https://lruihao.cn/posts/dashborad-widget-docs/ \"2023-10-12 19:41:23\")\n- 10-12 [拖拽式仪表盘 - 布局模板文档](https://lruihao.cn/posts/dashborad-template-docs/ \"2023-10-12 19:27:49\")\n- 10-12 [拖拽式仪表盘 - 功能需求分析](https://lruihao.cn/posts/dashboard-analysis/ \"2023-10-12 15:37:30\")\n- 10-11 [给你的 Markdown 挑挑刺](https://lruihao.cn/posts/markdownlint/ \"2023-10-11 14:26:48\")\n- 10-08 [认知复杂度（Cognitive Complexity）](https://lruihao.cn/posts/cognitive-complexity/ \"2023-10-08 09:52:44\")\n- 09-26 [写作技巧：如何搭建文章的框架结构？](https://lruihao.cn/posts/article-structure/ \"2023-09-26 15:17:52\")\n- 09-25 [如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？](https://lruihao.cn/projects/el-table-sticky/ \"2023-09-25 17:49:58\")\n- 09-17 [封装 Vue FullScreenToggler 组件](https://lruihao.cn/posts/vue-fullscreen-toggler/ \"2023-09-17 19:44:07\")\n- 09-15 [JS 实现全屏和退出全屏](https://lruihao.cn/posts/js-fullscreen/ \"2023-09-15 17:29:25\")\n- 09-15 [中文翻译的常见问题](https://lruihao.cn/posts/translation-guide/ \"2023-09-15 11:07:56\")\n- 09-14 [在 Vue 项目中更优雅地使用 icon](https://lruihao.cn/posts/vue-svg-icon/ \"2023-09-14 11:24:48\")\n- 09-14 [VSCode 添加用户代码片段，自定义用户代码片段](https://lruihao.cn/posts/vscode-snippets/ \"2023-09-14 11:21:56\")\n- 09-02 [CSS 如何实现网格背景效果？](https://lruihao.cn/posts/grid-bg-image/ \"2023-09-02 10:05:44\")\n- 08-26 [将 Hugo 博客部署到亚马逊云服务器](https://lruihao.cn/posts/aws-ec2/ \"2023-08-26 17:22:57\")\n- 08-08 [Vue2 and element-ui related demos](https://lruihao.cn/projects/lruihao/vue-el-demo/ \"2023-08-08 01:41:08\")\n- 07-20 [用魔法打败魔法 - ElBacktop Fix](https://lruihao.cn/posts/el-backtop-fix/ \"2023-07-20 11:08:18\")\n- 06-14 [A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.](https://lruihao.cn/projects/lruihao/el-table-sticky/ \"2023-06-14 14:03:49\")\n- 06-14 [使用 Node.js 自动创建 Vue 的路由](https://lruihao.cn/posts/gen-router/ \"2023-06-14 00:11:17\")\n- 06-12 [解决 SourceTree 提交时候 husky 命令失败问题](https://lruihao.cn/posts/sourcetree-husky/ \"2023-06-12 10:58:44\")\n- 06-03 [Vue2 + tailwindcss 初始化](https://lruihao.cn/posts/v2-tailwind/ \"2023-06-03 17:38:44\")\n- 03-14 [新手向：Vue 2.0 的建议学习顺序](https://lruihao.cn/posts/vue2-guid/ \"2023-03-14 08:37:59\")\n- 02-28 [🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.](https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ \"2023-02-28 09:12:29\")\n- 02-12 [浏览器 IMG 图片原生懒加载 loading=\"lazy\"](https://lruihao.cn/posts/native-img-loading-lazy/ \"2023-02-12 19:40:43\")\n- 02-05 [浏览器渲染原理](https://lruihao.cn/posts/browser-rendering/ \"2023-02-05 21:02:52\")\n- 02-04 [中文技术文档的写作规范](https://lruihao.cn/posts/document-style-guide/ \"2023-02-04 16:04:42\")\n- 01-11 [浏览器原理 - 事件循环](https://lruihao.cn/posts/event-loop/ \"2023-01-11 11:16:02\")\n\n</details>\n\n## 2022\n\n<details>\n<summary>共计 20 篇文章</summary>\n\n- 12-17 [2022 年度总结](https://lruihao.cn/years/2022/ \"2022-12-17 01:01:30\")\n- 12-15 [安装 Homebrew 后导致系统中原有的 npm 和 npx 失效](https://lruihao.cn/posts/homebrew-npm/ \"2022-12-15 15:33:30\")\n- 10-10 [基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件](https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ \"2022-10-10 02:50:53\")\n- 09-30 [🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.](https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ \"2022-09-30 09:28:41\")\n- 09-27 [🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.](https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ \"2022-09-27 15:23:38\")\n- 09-04 [Using frequently-used Hugo commands by shell.](https://lruihao.cn/projects/hugo-fixit/hugo-shell/ \"2022-09-04 04:18:42\")\n- 08-31 [Beego 安装及配置](https://lruihao.cn/posts/beego-install/ \"2022-08-31 09:32:44\")\n- 08-13 [语义版本控制（SemVer）](https://lruihao.cn/posts/semver/ \"2022-08-13 13:32:03\")\n- 08-12 [Commit Message Spec](https://lruihao.cn/posts/commit-spec/ \"2022-08-12 15:37:44\")\n- 08-12 [electron 踩坑总结](https://lruihao.cn/posts/electron-summary/ \"2022-08-12 11:22:01\")\n- 08-08 [前端页面内容加密总结](https://lruihao.cn/posts/encryption-fe/ \"2022-08-08 13:49:22\")\n- 08-07 [Node.js + GitHub Actions 自动刷新 CDN](https://lruihao.cn/posts/qcloudcdn/ \"2022-08-07 14:40:33\")\n- 08-07 [不同系统的换行符的差异](https://lruihao.cn/posts/newline/ \"2022-08-07 00:10:30\")\n- 07-31 [自定义 ohmyzsh 主题](https://lruihao.cn/posts/ohmyzsh-custom/ \"2022-07-31 13:54:14\")\n- 07-30 [linux 文件权限](https://lruihao.cn/posts/linux-permission/ \"2022-07-30 17:15:44\")\n- 07-29 [Mac 上的开发配置总结](https://lruihao.cn/posts/config4mac/ \"2022-07-29 20:22:44\")\n- 07-23 [📄 The open-source repo for fixit.lruihao.cn](https://lruihao.cn/projects/hugo-fixit/docs/ \"2022-07-23 12:17:06\")\n- 07-05 [Mac 配置 ADB](https://lruihao.cn/posts/adb-for-mac/ \"2022-07-05 15:39:34\")\n- 05-01 [重新认识 JavaScript](https://lruihao.cn/posts/js-rediscover/ \"2022-05-01 10:59:36\")\n- 04-30 [关于 CSS 和 Scss 变量运算那些事](https://lruihao.cn/posts/css-scss-var/ \"2022-04-30 22:04:29\")\n\n</details>\n\n## 2021\n\n<details>\n<summary>共计 19 篇文章</summary>\n\n- 12-22 [Getting Things Done for ios App Reminders and Github issues](https://lruihao.cn/posts/gtd/ \"2021-12-22 20:17:42\")\n- 12-16 [🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题](https://lruihao.cn/projects/hugo-fixit/fixit/ \"2021-12-16 03:35:27\")\n- 10-05 [Sublime 剪贴板图片粘贴插件 —— Markdown 必备](https://lruihao.cn/posts/subl_imgpaste2/ \"2021-10-05 21:54:06\")\n- 10-05 [Hugo 添加知乎卡片式链接 Shortcodes](https://lruihao.cn/posts/hugo-cardlink/ \"2021-10-05 19:33:13\")\n- 10-05 [Hugo I18n 添加中文繁體翻譯](https://lruihao.cn/posts/hugo-i18n-zh-tw/ \"2021-10-05 19:14:45\")\n- 10-05 [Hugo 友情連結模板](https://lruihao.cn/posts/hugo-friends/ \"2021-10-05 14:14:10\")\n- 10-04 [Hugo 本地管理 Shell 腳本](https://lruihao.cn/posts/hugo-admin/ \"2021-10-04 23:49:00\")\n- 10-04 [Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶](https://lruihao.cn/posts/github-actions/ \"2021-10-04 23:46:49\")\n- 10-03 [个人博客从 Hexo 迁移至 Hugo](https://lruihao.cn/posts/hexo-to-hugo/ \"2021-10-03 15:27:58\")\n- 09-08 [Lruihao's Note](https://lruihao.cn/projects/lruihao/hugo-blog/ \"2021-09-08 12:52:53\")\n- 06-22 [less&sass&scss](https://lruihao.cn/posts/less-sass-scss/ \"2021-06-22 16:39:47\")\n- 06-21 [Lightbox](https://lruihao.cn/posts/lightbox/ \"2021-06-21 16:18:04\")\n- 06-21 [2020&2021 總結](https://lruihao.cn/years/2020-2021/ \"2021-06-21 10:17:38\")\n- 05-24 [Create watermark for webpage and automatic adjust when window resize.](https://lruihao.cn/projects/lruihao/watermark/ \"2021-05-24 13:05:40\")\n- 05-23 [Cell Watermark](https://lruihao.cn/projects/cell-watermark/ \"2021-05-23 17:15:41\")\n- 03-04 [Code Review 怎麼做？新手工程師如何提升「程式碼品質」](https://lruihao.cn/posts/codereview/ \"2021-03-04 21:04:18\")\n- 03-02 [基于 leancloud-storage 实现的无后端记账本](https://lruihao.cn/projects/bill-note/ \"2021-03-02 21:46:40\")\n- 03-01 [你为什么吸烟？](https://lruihao.cn/me/whysmoke/ \"2021-03-01 01:27:41\")\n- 02-28 [基于 leancloud-storage 实现的无后端记账本](https://lruihao.cn/projects/lruihao/bill-note/ \"2021-02-28 03:44:09\")\n\n</details>\n\n## 2020\n\n<details>\n<summary>共计 8 篇文章</summary>\n\n- 07-25 [cell-blog 功能介绍与安装](https://lruihao.cn/projects/cell-blog/ \"2020-07-25 20:51:11\")\n- 07-25 [cell-blog 开发记录](https://lruihao.cn/posts/cell-blog-dev/ \"2020-07-25 20:42:42\")\n- 04-17 [基于 Laravel 7 开发，支持 Markdown 语法的博客](https://lruihao.cn/projects/lruihao/cell-blog/ \"2020-04-17 08:33:39\")\n- 03-26 [使用 Python 刷 csdn 访问量](https://lruihao.cn/posts/csdnvisiter/ \"2020-03-26 11:08:38\")\n- 03-25 [Cron 表达式的基本语法](https://lruihao.cn/posts/cron/ \"2020-03-25 09:19:44\")\n- 03-25 [新冠疫情未返校未返工第 N 天之“自动打卡”](https://lruihao.cn/posts/daka/ \"2020-03-25 08:22:42\")\n- 01-16 [2019 年度总结](https://lruihao.cn/years/2019/ \"2020-01-16 20:01:22\")\n- 01-16 [SQL 总结](https://lruihao.cn/posts/sql/ \"2020-01-16 19:28:05\")\n\n</details>\n\n## 2019\n\n<details>\n<summary>共计 71 篇文章</summary>\n\n- 11-24 [利用腾讯云为静态页面添加“动态”相册](https://lruihao.cn/projects/cos-album/ \"2019-11-24 10:52:34\")\n- 11-23 [解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面](https://lruihao.cn/projects/lruihao/cos-album/ \"2019-11-23 12:59:05\")\n- 11-14 [RESTful](https://lruihao.cn/posts/restful/ \"2019-11-14 19:06:05\")\n- 09-28 [php 同时主动推送链接到百度，神马等站长平台](https://lruihao.cn/posts/phppushurl/ \"2019-09-28 18:32:42\")\n- 09-28 [php 按行读取文件信息](https://lruihao.cn/posts/phpfile/ \"2019-09-28 17:11:17\")\n- 09-26 [沐目之，湘也。— 沐目体](https://lruihao.cn/projects/lruihao/mmt/ \"2019-09-26 12:44:17\")\n- 09-19 [设置网站运行时间](https://lruihao.cn/posts/site-time/ \"2019-09-19 22:03:29\")\n- 09-08 [script 的三种加载方式 (async, defer)](https://lruihao.cn/posts/async-defer/ \"2019-09-08 11:47:50\")\n- 08-15 [Sublime Text3 快捷键大全](https://lruihao.cn/posts/sublime-text3/ \"2019-08-15 20:59:10\")\n- 08-15 [NetBeans IDE 开发设置](https://lruihao.cn/posts/netbeans/ \"2019-08-15 18:36:15\")\n- 08-15 [Web 开发规则，代码规范](https://lruihao.cn/posts/dev-rules/ \"2019-08-15 18:30:31\")\n- 07-19 [简单评论模块--php 表单练习](https://lruihao.cn/posts/phpform/ \"2019-07-19 11:38:59\")\n- 07-15 [php 函数学习](https://lruihao.cn/posts/phpfunc/ \"2019-07-15 11:37:33\")\n- 07-12 [WAMPServer 自定义网站根目录等设置](https://lruihao.cn/posts/wamproot/ \"2019-07-12 18:44:36\")\n- 06-21 [python 实训总结Ⅱ](https://lruihao.cn/posts/pysx2/ \"2019-06-21 18:46:41\")\n- 06-18 [python 实训总结Ⅰ](https://lruihao.cn/posts/pysx1/ \"2019-06-18 18:41:00\")\n- 05-26 [判断三角形的黑盒测试](https://lruihao.cn/posts/judgetriangle/ \"2019-05-26 18:50:53\")\n- 05-17 [HustOJ 基础搭建教程](https://lruihao.cn/posts/hustoj/ \"2019-05-17 23:08:04\")\n- 05-17 [最大公约数（二进制算法）](https://lruihao.cn/posts/gcd-bit/ \"2019-05-17 09:14:16\")\n- 05-16 [宝塔面板安装 ImgURL 图床](https://lruihao.cn/posts/imgurl/ \"2019-05-16 20:31:33\")\n- 05-11 [python 实战：模拟 post 请求定时获取后台数据并打包发送至微信](https://lruihao.cn/posts/mx2wx/ \"2019-05-11 17:02:31\")\n- 05-10 [条件注释判断浏览器版本<!--[if lt IE 9]>;](https://lruihao.cn/posts/ifzhushi/ \"2019-05-10 13:08:27\")\n- 05-09 [python 设置程序每天 8 点定时执行任务](https://lruihao.cn/posts/pysettime/ \"2019-05-09 23:26:54\")\n- 05-09 [安装 pyinstaller 出错的解决办法及 csdn 工具实例打包](https://lruihao.cn/posts/pyinstallererror/ \"2019-05-09 19:05:01\")\n- 05-08 [java 实现一个单线程的资源下载器](https://lruihao.cn/posts/singlethreaddown/ \"2019-05-08 20:55:02\")\n- 05-07 [Python 如何操作 Json？](https://lruihao.cn/posts/jsoninfo/ \"2019-05-07 18:42:47\")\n- 05-07 [python 发送 post 请求进行简单的接口测试](https://lruihao.cn/posts/posttest/ \"2019-05-07 18:17:05\")\n- 05-06 [java 通过 URL 和 URLConnection 访问网页资源](https://lruihao.cn/posts/java-urlreader/ \"2019-05-06 17:41:35\")\n- 05-02 [文件加密解密（字节流）](https://lruihao.cn/posts/byteio/ \"2019-05-02 23:04:32\")\n- 05-01 [模拟借书系统（java 异常练习）](https://lruihao.cn/posts/javaexception/ \"2019-05-01 16:52:21\")\n- 04-27 [用 MyQR 制作专属动态二维码 (py 和 exe 版本）](https://lruihao.cn/posts/qrcode/ \"2019-04-27 14:16:54\")\n- 04-24 [第一次面试经历](https://lruihao.cn/posts/1thintervivew/ \"2019-04-24 21:23:22\")\n- 04-22 [python 爬取网站图片（图片链接相似）](https://lruihao.cn/posts/mmtimgpy/ \"2019-04-22 12:46:34\")\n- 04-20 [python 玩微信：初探 wxpy](https://lruihao.cn/posts/wxpy1/ \"2019-04-20 15:44:57\")\n- 04-20 [基本 python 实现的爬取微信好友头像，并拼接成大图](https://lruihao.cn/posts/wximgpy/ \"2019-04-20 13:32:58\")\n- 04-19 [用记事本编写第一个 java 程序](https://lruihao.cn/posts/hellojava/ \"2019-04-19 19:49:54\")\n- 04-18 [java 正则表达式练习](https://lruihao.cn/posts/java-regex/ \"2019-04-18 22:04:21\")\n- 04-14 [java 常用类](https://lruihao.cn/posts/stringbuffer/ \"2019-04-14 10:12:44\")\n- 04-12 [HDU 1009 FatMouse' Trade（贪心）](https://lruihao.cn/posts/hdu1009/ \"2019-04-12 16:43:19\")\n- 04-03 [本地搭建网站服务器并穿透内网](https://lruihao.cn/posts/ngrok/ \"2019-04-03 19:29:43\")\n- 03-30 [前端面试题 - HTML+CSS](https://lruihao.cn/posts/ms-html-css/ \"2019-03-30 22:58:39\")\n- 03-30 [百钱百鸡（枚举法）](https://lruihao.cn/posts/bqbj/ \"2019-03-30 10:13:33\")\n- 03-28 [大数乘法](https://lruihao.cn/posts/dacheng/ \"2019-03-28 22:50:43\")\n- 03-28 [vps 配置 ssl 及 https 重定向](https://lruihao.cn/posts/http2https/ \"2019-03-28 19:40:54\")\n- 03-21 [hexo-theme-next @modified LRH](https://lruihao.cn/posts/hexo-theme-next/ \"2019-03-21 16:43:19\")\n- 03-21 [Java 父类子类的对象初始化过程](https://lruihao.cn/posts/substatus/ \"2019-03-21 13:36:25\")\n- 03-21 [ubuntu + windows 双系统默认启动项设置](https://lruihao.cn/posts/windefault/ \"2019-03-21 12:48:30\")\n- 03-19 [宅音乐播放器](https://lruihao.cn/posts/player/ \"2019-03-19 23:32:56\")\n- 03-18 [宝塔面板安装](https://lruihao.cn/posts/bt/ \"2019-03-18 21:31:43\")\n- 03-18 [web 汇总](https://lruihao.cn/posts/webbiji/ \"2019-03-18 20:40:55\")\n- 03-16 [java 泛型 test](https://lruihao.cn/posts/fanxing/ \"2019-03-16 13:56:01\")\n- 03-15 [eclipse 的基本使用](https://lruihao.cn/posts/eclipseuse/ \"2019-03-15 23:47:24\")\n- 03-15 [匿名类在可视化界面中的应用](https://lruihao.cn/posts/qframe/ \"2019-03-15 22:31:28\")\n- 03-15 [模仿知乎卡片式链接](https://lruihao.cn/posts/linkcard/ \"2019-03-15 15:21:39\")\n- 03-15 [win10,ubuntu 双系统时间不一致](https://lruihao.cn/posts/ubuntutime/ \"2019-03-15 14:28:10\")\n- 03-08 [QQ 强制生成卡片式链接](https://lruihao.cn/posts/qqxml/ \"2019-03-08 16:52:13\")\n- 03-04 [磁盘存储器的管理](https://lruihao.cn/posts/cipanadmin/ \"2019-03-04 23:08:32\")\n- 03-04 [JS 验证码](https://lruihao.cn/posts/js-vcode/ \"2019-03-04 20:53:09\")\n- 02-01 [还乡](https://lruihao.cn/posts/renative/ \"2019-02-01 20:44:40\")\n- 01-31 [Elegant and powerful theme for Hexo.](https://lruihao.cn/projects/lruihao/hexo-theme-next/ \"2019-01-31 09:57:45\")\n- 01-24 [java 继承 test](https://lruihao.cn/posts/jicheng/ \"2019-01-24 15:07:50\")\n- 01-22 [利用腾讯云对象存储 COS 桶托管 hexo 博客](https://lruihao.cn/posts/cos-hexo/ \"2019-01-22 14:57:08\")\n- 01-18 [Arrays 类及基本使用](https://lruihao.cn/posts/java-arrays/ \"2019-01-18 13:13:10\")\n- 01-16 [在搜索、文章底部、侧栏添加最近文章模块](https://lruihao.cn/posts/recent-posts/ \"2019-01-16 17:50:52\")\n- 01-15 [java 猜数字小游戏（Math 类）](https://lruihao.cn/posts/mathclass/ \"2019-01-15 17:33:28\")\n- 01-15 [面向对象基础知识总结](https://lruihao.cn/posts/duixiang/ \"2019-01-15 16:07:31\")\n- 01-14 [java 水仙花数（循环）](https://lruihao.cn/posts/java-range/ \"2019-01-14 17:30:24\")\n- 01-14 [java 录入数据](https://lruihao.cn/posts/java-input/ \"2019-01-14 15:33:46\")\n- 01-14 [java 标识符](https://lruihao.cn/posts/biaoshi/ \"2019-01-14 15:07:57\")\n- 01-12 [英语语法--主谓一致](https://lruihao.cn/posts/subject-verb/ \"2019-01-12 13:02:49\")\n- 01-12 [2018 年度总结](https://lruihao.cn/years/2018/ \"2019-01-12 11:09:52\")\n\n</details>\n\n## 2018\n\n<details>\n<summary>共计 91 篇文章</summary>\n\n- 12-10 [英语语法--形式倒装](https://lruihao.cn/posts/inversion-3/ \"2018-12-10 21:52:30\")\n- 12-10 [英语语法--完全倒装](https://lruihao.cn/posts/inversion-2/ \"2018-12-10 21:14:51\")\n- 12-08 [英语语法--部分倒装](https://lruihao.cn/posts/inversion-1/ \"2018-12-08 17:52:39\")\n- 11-24 [hexo 插件及 next 内置样式集](https://lruihao.cn/posts/nextplugin/ \"2018-11-24 16:54:09\")\n- 11-17 [通过 bat 批处理文件自动提交博客代码](https://lruihao.cn/posts/commit-bat/ \"2018-11-17 14:25:49\")\n- 11-12 [博採眾長 app](https://lruihao.cn/posts/fas-app/ \"2018-11-12 16:04:04\")\n- 11-11 [caddy-两步搭建超简单云盘](https://lruihao.cn/posts/caddy-file/ \"2018-11-11 13:59:27\")\n- 11-09 [next 添加支持 pdf](https://lruihao.cn/posts/next-pdf/ \"2018-11-09 12:51:48\")\n- 11-03 [js 判断用户设备类型及平台](https://lruihao.cn/posts/js-device/ \"2018-11-03 23:35:44\")\n- 11-03 [hexo 博客源码备份](https://lruihao.cn/posts/blog-backup/ \"2018-11-03 12:49:28\")\n- 10-30 [Git 常用指令汇总](https://lruihao.cn/posts/git/ \"2018-10-30 08:59:56\")\n- 10-29 [网站备案之旅](https://lruihao.cn/posts/beian/ \"2018-10-29 23:16:26\")\n- 10-29 [shell 脚本初体验](https://lruihao.cn/posts/shell/ \"2018-10-29 11:57:39\")\n- 10-29 [云服务器 CentOS 系统搭建 web 服务](https://lruihao.cn/posts/web-server-yun/ \"2018-10-29 09:15:58\")\n- 10-28 [使用 js 准确获取当前页面 url 网址信息及 301 重定向实战](https://lruihao.cn/posts/href-301/ \"2018-10-28 14:22:00\")\n- 10-26 [windows 上搭建 web 服务器](https://lruihao.cn/posts/web-server-win/ \"2018-10-26 21:56:18\")\n- 10-26 [使用 Git 上传代码到 github, coding 等仓库](https://lruihao.cn/posts/gituse/ \"2018-10-26 21:11:02\")\n- 10-23 [termux 基本使用教程](https://lruihao.cn/posts/termux1/ \"2018-10-23 22:16:02\")\n- 10-17 [ttf 字体压缩](https://lruihao.cn/posts/web-font/ \"2018-10-17 21:38:06\")\n- 10-15 [linux 编程初体验](https://lruihao.cn/posts/linux-hello-c/ \"2018-10-15 21:19:27\")\n- 10-12 [沐目体](https://lruihao.cn/projects/font-mmt/ \"2018-10-12 19:39:19\")\n- 10-09 [流水线](https://lruihao.cn/posts/liushuixian/ \"2018-10-09 16:21:04\")\n- 10-08 [计算机数据](https://lruihao.cn/posts/data/ \"2018-10-08 23:01:10\")\n- 09-27 [网页夜间效果](https://lruihao.cn/posts/night/ \"2018-09-27 13:13:31\")\n- 09-26 [网页离开时改变标题“崩溃欺骗”](https://lruihao.cn/posts/crash-cheat/ \"2018-09-26 16:36:08\")\n- 09-22 [linux/centos 下的安装 git](https://lruihao.cn/posts/linux-git/ \"2018-09-22 22:28:45\")\n- 09-21 [每一个优秀的人，都有一段沉默的时光](https://lruihao.cn/posts/mood/ \"2018-09-21 21:11:25\")\n- 08-31 [Vim 速查表](https://lruihao.cn/posts/vim/ \"2018-08-31 11:46:39\")\n- 08-30 [hexo next 主题添加字数统计（2018）](https://lruihao.cn/posts/hexo-wordcount/ \"2018-08-30 13:15:50\")\n- 08-21 [hexo d 出错](https://lruihao.cn/posts/hexo-d-error/ \"2018-08-21 22:15:01\")\n- 08-20 [hexo 个性化 - next 主题动态显示 subtitle](https://lruihao.cn/posts/dongtaisub/ \"2018-08-20 16:16:40\")\n- 08-15 [“高逼格”C 语言画心](https://lruihao.cn/posts/heart/ \"2018-08-15 16:33:12\")\n- 08-14 [git index.lock](https://lruihao.cn/posts/git-index-lock/ \"2018-08-14 19:21:23\")\n- 08-11 [在 Android 上搭建 hexo 博客](https://lruihao.cn/posts/termux/ \"2018-08-11 16:59:05\")\n- 08-10 [石子阵列（组合数学）](https://lruihao.cn/posts/nowcoder157a/ \"2018-08-10 22:11:00\")\n- 08-10 [Dreamoon and Stairs](https://lruihao.cn/posts/codeforces476a/ \"2018-08-10 20:13:08\")\n- 08-10 [Dreamoon and WiFi（组合数学）](https://lruihao.cn/posts/codeforces476b/ \"2018-08-10 17:44:47\")\n- 08-10 [The equation-SGU106（扩展欧几里得）](https://lruihao.cn/posts/euclid/ \"2018-08-10 10:32:39\")\n- 08-09 [Leading and Trailing-lightoj1282（快速幂 + 对数运算）](https://lruihao.cn/posts/lightoj1282/ \"2018-08-09 20:55:26\")\n- 08-09 [Codeforces Round 502(Div.1 + Div.2)](https://lruihao.cn/posts/cfcontest1017/ \"2018-08-09 10:48:00\")\n- 08-08 [欧拉函数](https://lruihao.cn/posts/euler/ \"2018-08-08 17:10:07\")\n- 08-06 [Heavy Transportation-poj1797(dijkstra 或最大生成树）](https://lruihao.cn/posts/poj1797/ \"2018-08-06 09:42:11\")\n- 08-04 [hexo 博客自定义 console log](https://lruihao.cn/posts/console-log/ \"2018-08-04 16:19:06\")\n- 08-03 [Til the Cows Come Home-poj2387(dijkstra 判断重边）](https://lruihao.cn/posts/poj2387/ \"2018-08-03 21:40:33\")\n- 08-03 [最短路入门](https://lruihao.cn/posts/zuiduanlu/ \"2018-08-03 16:27:16\")\n- 08-02 [牛客暑假多校第五场](https://lruihao.cn/posts/nowcodersummer-5th/ \"2018-08-02 21:27:02\")\n- 08-02 [食物链-poj1182（带权并查集经典模板）](https://lruihao.cn/posts/poj1182/ \"2018-08-02 11:10:37\")\n- 08-01 [小希的迷宫-HDU-1272（并查集 or 树性质）](https://lruihao.cn/posts/hdu1272/ \"2018-08-01 21:45:50\")\n- 08-01 [How Many Answers Are Wrong-hdu3038（带权并查集）](https://lruihao.cn/posts/hdu3038/ \"2018-08-01 11:45:53\")\n- 07-31 [Bear and Finding Criminals-Codeforces680B](https://lruihao.cn/posts/codeforces680b/ \"2018-07-31 19:32:21\")\n- 07-31 [Bear and Five Cards-Codeforces680A](https://lruihao.cn/posts/codeforces680a/ \"2018-07-31 19:22:36\")\n- 07-31 [how many tables-HDU-1213（并查集求连通域数目）](https://lruihao.cn/posts/how-tables/ \"2018-07-31 11:12:10\")\n- 07-31 [The-suspects-POJ-1611（并查集）](https://lruihao.cn/posts/poj-1611/ \"2018-07-31 11:11:31\")\n- 07-31 [wireless network-POJ-2236（并查集）](https://lruihao.cn/posts/poj-2236/ \"2018-07-31 11:10:54\")\n- 07-31 [Piles-with-stones](https://lruihao.cn/posts/piles-with-stones/ \"2018-07-31 11:09:31\")\n- 07-31 [畅通工程-HDU-1232（并查集经典模板）](https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ \"2018-07-31 11:08:43\")\n- 07-27 [牛客练习赛 23](https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ \"2018-07-27 21:56:08\")\n- 07-26 [在线离线算法](https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ \"2018-07-26 09:57:32\")\n- 07-24 [HDU-1495-非常可乐（bfs 模拟倒水 or 数论）](https://lruihao.cn/posts/hdu-1495/ \"2018-07-24 15:34:00\")\n- 07-23 [hdu-2612-Find a way（双 bfs）](https://lruihao.cn/posts/hdu-2612/ \"2018-07-23 12:34:42\")\n- 07-22 [POJ-3278-Catch That Cow(bfs)](https://lruihao.cn/posts/poj-3278/ \"2018-07-22 12:10:32\")\n- 07-22 [poj-2251-Dungeon Master（三维 bfs 最短路）](https://lruihao.cn/posts/poj-2251/ \"2018-07-22 12:02:32\")\n- 07-22 [poj-1321 棋盘问题（dfs）](https://lruihao.cn/posts/poj-1321/ \"2018-07-22 11:58:14\")\n- 07-22 [poj-1426-Find The Multiple(dfs)](https://lruihao.cn/posts/poj-1426/ \"2018-07-22 11:57:13\")\n- 07-22 [Adjacent Replacements](https://lruihao.cn/posts/adjacent-replacements/ \"2018-07-22 11:54:14\")\n- 07-22 [poj-3984-迷宫问题 (bfs 路径）](https://lruihao.cn/posts/poj-3984/ \"2018-07-22 11:50:20\")\n- 07-22 [Wannafly 挑战赛 20-染色](https://lruihao.cn/posts/wannafly-20/ \"2018-07-22 11:46:25\")\n- 07-22 [杨辉三角](https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ \"2018-07-22 11:41:15\")\n- 07-22 [hdu-1241-Oil Deposits (dfs)](https://lruihao.cn/posts/hdu-1241/ \"2018-07-22 11:37:20\")\n- 07-22 [BFS 求最短路](https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ \"2018-07-22 11:31:05\")\n- 07-22 [Educational Codeforces Round 47 (Rated for Div. 2)](https://lruihao.cn/posts/cf-1009/ \"2018-07-22 11:25:56\")\n- 07-22 [深搜广搜](https://lruihao.cn/posts/dfs_bfs/ \"2018-07-22 11:25:14\")\n- 07-22 [TaoTao 要吃鸡](https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ \"2018-07-22 10:55:21\")\n- 07-18 [Wannafly 挑战赛 18-序列](https://lruihao.cn/posts/wannafly-18/ \"2018-07-18 08:40:21\")\n- 06-16 [简单背包](https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ \"2018-06-16 13:18:43\")\n- 06-15 [18 湘潭邀请赛参赛队员代表发言](https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ \"2018-06-15 07:51:21\")\n- 06-14 [18 湘潭邀请赛总结](https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ \"2018-06-14 23:32:47\")\n- 06-14 [F.sorting](https://lruihao.cn/posts/f-sorting/ \"2018-06-14 22:49:27\")\n- 06-14 [K.2018](https://lruihao.cn/posts/k-2018/ \"2018-06-14 22:48:16\")\n- 06-14 [B.Higher h-index](https://lruihao.cn/posts/b-higher/ \"2018-06-14 22:47:28\")\n- 06-14 [A.Easy h-index](https://lruihao.cn/posts/a-easy/ \"2018-06-14 22:36:58\")\n- 06-14 [sort 排序](https://lruihao.cn/posts/c-sort/ \"2018-06-14 20:23:03\")\n- 06-14 [位运算](https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ \"2018-06-14 20:22:21\")\n- 06-14 [C++ with STL](https://lruihao.cn/posts/c-with-stl/ \"2018-06-14 20:22:06\")\n- 06-07 [各种 Links 汇总与分享](https://lruihao.cn/posts/links/ \"2018-06-07 00:06:05\")\n- 06-03 [戏子春秋](https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ \"2018-06-03 19:41:32\")\n- 06-01 [hexo+github 搭建个人博客及美化](https://lruihao.cn/posts/hexobuild/ \"2018-06-01 14:34:23\")\n- 05-31 [hexo 添加图片，音乐，链接，视频](https://lruihao.cn/posts/hexowrite/ \"2018-05-31 23:19:22\")\n- 05-31 [猴子与哪吒](https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ \"2018-05-31 10:09:15\")\n- 05-28 [博客构建档（HTML & Markdown）](https://lruihao.cn/projects/lruihao/lruihao.github.io/ \"2018-05-28 12:24:11\")\n- 05-28 [Hello World](https://lruihao.cn/posts/hello-world/ \"2018-05-28 20:01:01\")\n\n</details>\n"
  },
  {
    "path": "reward/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>赞赏记录 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\"><meta name=keywords content='打赏记录,菠菜眾長,FixIt,Lruihao'><meta itemprop=name content=\"赞赏记录\"><meta itemprop=description content=\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\"><meta itemprop=datePublished content=\"2024-08-16T17:38:43+08:00\"><meta itemprop=dateModified content=\"2024-12-09T01:46:12+08:00\"><meta itemprop=wordCount content=\"1018\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"打赏记录,菠菜眾長,FixIt,Lruihao\"><meta property=\"og:url\" content=\"https://lruihao.cn/reward/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"赞赏记录\"><meta property=\"og:description\" content=\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:published_time\" content=\"2024-08-16T17:38:43+08:00\"><meta property=\"article:modified_time\" content=\"2024-12-09T01:46:12+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"赞赏记录\"><meta name=twitter:description content=\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/reward/ title=\"赞赏记录 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ title=\"Mobile devtools component powered by vConsole and eruda.\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ title=\"Hugo theme component for JSON feed custom Output Format.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/reward/index.md title=\"赞赏记录 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"赞赏记录\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/reward\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"page\",\"wordcount\":1018,\"url\":\"https:\\/\\/lruihao.cn\\/reward\\/\",\"datePublished\":\"2024-08-16T17:38:43+08:00\",\"dateModified\":\"2024-12-09T01:46:12+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=/css/shortcode-rewards.min.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=wide><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=\"menu-item active\"><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/reward/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=\"menu-item active\"><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=\"page single special\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\">赞赏记录</h1></div><div class=content id=content><blockquote><p>如果我或者我的开源帮助到了你，请考虑给我买杯咖啡，谢谢！<br>打赏时可以给我留言，以便于我记录一下，FixIt 相关的记录，不再重复记录在本页，<a href=https://fixit.lruihao.cn/contributing/overview/#sponsor target=_blank rel=\"external nofollow noopener noreferrer\">传送门<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a>。</p></blockquote><p><div class=post-reward><div class=comment>给博主买杯卡布奇诺～</div><input type=checkbox class=reward-input name=reward id=id-1 hidden>\n<label class=reward-button for=id-1><i class=\"fa-solid fa-qrcode\" aria-hidden=true></i>赞赏</label><div class=reward-ways data-mode=fixed><div><img src=/images/alipay.jpg alt=支付宝><span>支付宝</span></div><div><img src=/images/wechatpay.jpg alt=微信><span>微信</span></div></div></div><div class=\"reward-message text-center\"><blockquote><p>本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！❤️</p></blockquote></div><div class=reward-statistics><div class=reward-statistics-item><span class=\"title text-secondary\">总计</span>\n<span class=number>CN¥403.32</span></div><div class=reward-statistics-item><span class=\"title text-secondary\">单笔最大</span>\n<span class=number>🏆 ✘喜洲 的 CN¥20.20</span></div><ol class=\"reward-statistics-item top3\"><li class=top-1><span class=name title=francs>francs</span>\n<span>CN¥67.60</span></li><li class=top-2><span class=name title=✘喜洲>✘喜洲</span>\n<span>CN¥20.20</span></li><li class=top-3><span class=name title=D*n>D*n</span>\n<span>CN¥11.11</span></li></ol></div><ul class=\"fi-timeline reward-logs\" style=height:auto;max-height:90vh data-animation><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:1><div class=fi-timeline-item__content><strong>Z 通过 微信 打赏了 CN¥20.00</strong><br><span class=text-secondary>备注：感谢作者的答疑解惑😋</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-11-16 18:27:58</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:2><div class=fi-timeline-item__content><strong>王二愣子 通过 微信 打赏了 CN¥66.00</strong><br><span class=text-secondary>备注：感谢大佬的答疑解惑！</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-11-06 11:22:04</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:3><div class=fi-timeline-item__content><strong>deequoique 通过 微信 打赏了 CN¥10.00</strong><br><span class=text-secondary>备注：FixIt👍请佬喝杯蜜雪</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-09-10 18:51:27</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:4><div class=fi-timeline-item__content><strong>SuLis 通过 微信 打赏了 CN¥10.00</strong><br><span class=text-secondary>备注：感谢作者对 FixIt 的付出！</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-08-03 19:25:50</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:5><div class=fi-timeline-item__content><strong>WindSun 通过 微信 打赏了 CN¥20.00</strong><br><span class=text-secondary>备注：歪瑞古德</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-07-16 00:09:47</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:6><div class=fi-timeline-item__content><strong>贺雄彪 通过 微信 打赏了 CN¥5.21</strong><br><span class=text-secondary>备注：感谢李瑞豪同学🧑‍🎓</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-04-03 17:10:15</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:7><div class=fi-timeline-item__content><strong>杨潇 通过 微信 打赏了 CN¥5.20</strong><br><span class=text-secondary>备注：辛苦了，宝贝</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-04-03 17:02:03</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:8><div class=fi-timeline-item__content><strong>淮屿 通过 赞赏码 打赏了 CN¥10.00</strong><br><span class=text-secondary>备注：非常棒的主题👍</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-02-05 15:42:42</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:9><div class=fi-timeline-item__content><strong>匿名 通过 赞赏码 打赏了 CN¥15.00</strong></div><div class=\"fi-timeline-item__timestamp is-bottom\">2024-01-13 21:39:37</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:10><div class=fi-timeline-item__content><strong>丰果 通过 FixIt 主题交流群 QQ 红包 打赏了 CN¥15.00</strong><br><span class=text-secondary>备注：请喝杯咖啡</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-11-03 22:35:07</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:11><div class=fi-timeline-item__content><strong>🐟 通过 微信 打赏了 CN¥1.00</strong><br><span class=text-secondary>备注：感谢 FixIt 作者</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-05-24 15:49:46</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:12><div class=fi-timeline-item__content><strong>建议去世 通过 微信 打赏了 CN¥20.00</strong><br><span class=text-secondary>备注：主题不错</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-04-17 10:35:26</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:13><div class=fi-timeline-item__content><strong>乐语 通过 微信 打赏了 CN¥5.00</strong><br><span class=text-secondary>备注：很好用的主题，谢谢作者💪</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-04-03 17:49:12</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:14><div class=fi-timeline-item__content><strong>D*n 通过 微信 打赏了 CN¥11.11</strong><br><span class=text-secondary>备注：加油</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-03-17 14:57:41</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:15><div class=fi-timeline-item__content><strong>K*n 通过 微信 打赏了 CN¥50.00</strong></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-03-17 14:05:49</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:16><div class=fi-timeline-item__content><strong>✘✘波 通过 支付宝 打赏了 CN¥20.00</strong><br><span class=text-secondary>备注：感谢帮忙解决 FixIt 的问题</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2023-02-13 10:01:58</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:17><div class=fi-timeline-item__content><strong>✘✘松 通过 支付宝 打赏了 CN¥2.00</strong></div><div class=\"fi-timeline-item__timestamp is-bottom\">2022-12-02 13:01:48</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:18><div class=fi-timeline-item__content><strong>✘喜洲 通过 QQ 打赏了 CN¥20.20</strong><br><span class=text-secondary>备注：来自 <code>101****073</code></span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2020-01-17</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:19><div class=fi-timeline-item__content><strong>✘昌升 通过 微信 打赏了 CN¥2.00</strong><br><span class=text-secondary>备注：来自 <code>231****047#qq.com</code></span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2019-03-19</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:20><div class=fi-timeline-item__content><strong>✘昌升 通过 支付宝 打赏了 CN¥10.00</strong><br><span class=text-secondary>备注：上课的时候听到了支付宝清脆的支付宝到账 10 元的声音！</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-12-04</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:21><div class=fi-timeline-item__content><strong>✘昌升 通过 支付宝 打赏了 CN¥18.00</strong></div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-12-04</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:22><div class=fi-timeline-item__content><strong>francs 通过 QQ 打赏了 CN¥8.80</strong></div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-11</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:23><div class=fi-timeline-item__content><strong>francs 通过 QQ 打赏了 CN¥8.80</strong><br><span class=text-secondary>备注：今天学校运动会没课，睡到 9 点多起来看到 QQ 收到一个红包，感谢支持！</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-10-26</div></li><li class=fi-timeline-item data-size=medium data-node=circle style=--timeline-index:24><div class=fi-timeline-item__content><strong>francs 通过 支付宝 打赏了 CN¥50.00</strong><br><span class=text-secondary>备注：大学生时期，第一次收到别人的支持，内心表示受宠若惊又非常开心。非常感谢老哥的支持！</span></div><div class=\"fi-timeline-item__timestamp is-bottom\">2018-09-28</div></li></ul></p><span id=busuanzi_container_page_pv class=\"busuanzi_visitors d-none\"><i class=\"fa-regular fa-eye fa-fw me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读</span></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/967022599cfd24670ded11a2c801cb34.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/967022599cfd24670ded11a2c801cb34.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/reward/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "reward/index.md",
    "content": "# 赞赏记录\n\n\n> 如果我或者我的开源帮助到了你，请考虑给我买杯咖啡，谢谢！\\\n> 打赏时可以给我留言，以便于我记录一下，FixIt 相关的记录，不再重复记录在本页，[传送门](https://fixit.lruihao.cn/contributing/overview/#sponsor)。\n\n{{< reward wechatpay=\"/images/wechatpay.jpg\" alipay=\"/images/alipay.jpg\" comment=\"给博主买杯卡布奇诺～\" mode=\"fixed\" >}}\n{{< reward-log animation=true height=\"auto; max-height: 90vh\" >}}\n\n{{< busuanzi_embed >}}\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/reward/  \n\n"
  },
  {
    "path": "robots.txt",
    "content": "User-agent: *\n\nDisallow: /images/\nDisallow: /js/\nDisallow: /css/\n\nDisallow: /*offline/\nDisallow: /*404.html$\nDisallow: /*.md$\n\nUser-agent: MJ12bot\nDisallow: /\n\nUser-agent: AhrefsBot\nDisallow: /\n\nUser-agent: BLEXBot\nDisallow: /\n\n# Block SISTRIX\nUser-agent: SISTRIX Crawler\nDisallow: /\nUser-agent: sistrix\nDisallow: /\nUser-agent: 007ac9\nDisallow: /\nUser-agent: 007ac9 Crawler\nDisallow: /\n\n# Block Uptime robot\nUser-agent: UptimeRobot/2.0\nDisallow: /\n\n# Block Ezooms Robot\nUser-agent: Ezooms Robot\nDisallow: /\n\n# Block Perl LWP\nUser-agent: Perl LWP\nDisallow: /\n\n# Block netEstate NE Crawler (+http://www.website-datenbank.de/)\nUser-agent: netEstate NE Crawler (+http://www.website-datenbank.de/)\nDisallow: /\n\n# Block WiseGuys Robot\nUser-agent: WiseGuys Robot\nDisallow: /\n\n# Block Turnitin Robot\nUser-agent: Turnitin Robot\nDisallow: /\n\n# Block Heritrix\nUser-agent: Heritrix\nDisallow: /\n\n# Block pricepi\nUser-agent: pimonster\nDisallow: /\n\nUser-agent: SurdotlyBot\nDisallow: /\n\nUser-agent: ZoominfoBot\nDisallow: /\n\n# OpenAI, ChatGPT\nUser-agent: GPTBot\nDisallow: /\n\n# Google AI (Bard, etc)\nUser-agent: Google-Extended\nDisallow: /\n\n# Block common crawl\nUser-agent: CCBot\nDisallow: /\n\n# Facebook\nUser-agent: FacebookBot\nDisallow: /\n\n# Cohere.ai\nUser-agent: cohere-ai\nDisallow: /\n\n# Perplexity\nUser-agent: PerplexityBot\nDisallow: /\n\n# Anthropic\nUser-agent: anthropic-ai\nDisallow: /\n\n# Claudebot by Anthropic\nUser-agent: ClaudeBot\nDisallow: /\n\nSitemap: https://lruihao.cn/sitemap.xml\n"
  },
  {
    "path": "search/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>搜索 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"搜索\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-11-27T17:50:35+08:00\"><meta itemprop=dateModified content=\"2024-11-28T17:31:41+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/search/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"搜索\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:published_time\" content=\"2024-11-27T17:50:35+08:00\"><meta property=\"article:modified_time\" content=\"2024-11-28T17:31:41+08:00\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"搜索\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/search/ title=\"搜索 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/91db0fa/ title=\"Amazon 如何让服务器享受着持续集群安全？\"><link rel=next type=text/html href=https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ title=\"🌐 A component for site automatic translation.\"><link rel=alternate type=text/markdown href=https://lruihao.cn/search/index.md title=\"搜索 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"搜索\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/search\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"page\",\"wordcount\":0,\"url\":\"https:\\/\\/lruihao.cn\\/search\\/\",\"datePublished\":\"2024-11-27T17:50:35+08:00\",\"dateModified\":\"2024-11-28T17:31:41+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/search/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><article class=\"page single special search\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\">搜索</h1></div><div class=content id=content></div><script async defer src=\"https://cse.google.com/cse.js?cx=2428986c19079433c\"></script><div class=gcse-searchbox></div><div class=gcse-searchresults></div></article></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><link rel=stylesheet href=/css/wechat-box.min.css><div class=wechat-box><div class=wechat-menu><div class=wechat-hover><div class=wechat-description>微信扫一扫，订阅本博客</div></div></div></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/4e4f919455da0987a141b4ef412aeb48.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/4e4f919455da0987a141b4ef412aeb48.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/search/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "search/index.md",
    "content": "# 搜索\n\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/search/  \n\n"
  },
  {
    "path": "search.json",
    "content": "[{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/cell tooltip: 一个轻量化 Tooltip 组件。\",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件，交互模型参考 Bootstrap tooltip.js，保留常用能力并尽量减少体积与依赖。 \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:1:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#cell-tooltip data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特性 支持触发方式：hover / focus / click / manual 支持位置：top / bottom / left / right / auto 支持延迟配置（show / hide） 支持 data-ct-* 属性初始化 支持实例方法：show / hide / toggle / update / dispose 内置箭头与基础样式，无第三方依赖 \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:2:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"本地运行 pnpm install pnpm dev 构建库产物： pnpm build 构建 Demo： pnpm build:demo 预览 Demo： pnpm preview build 会输出库产物到 dist/，build:demo 会输出示例站点到 dist-demo/。 \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:3:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#本地运行\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"快速使用 \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:4:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#快速使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"1) HTML \\u0026lt;button id=\\u0026#34;btn\\u0026#34; data-ct-title=\\u0026#34;Hello tooltip\\u0026#34; data-ct-placement=\\u0026#34;top\\u0026#34; \\u0026gt; Hover me \\u0026lt;/button\\u0026gt; \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:4:1\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#1-html\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2) TS import CellTooltip from \\u0026#39;cell-tooltip\\u0026#39; const element = document.querySelector\\u0026lt;HTMLElement\\u0026gt;(\\u0026#39;#btn\\u0026#39;) if (element) { CellTooltip.getOrCreateInstance(element) } // 批量初始化 Tooltip.initAll(\\u0026#39;[data-ct-title]\\u0026#39;) \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:4:2\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#2-ts\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"3) 浏览器直引（UMD / IIFE） \\u0026lt;script src=\\u0026#34;./dist/cell-tooltip.umd.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script\\u0026gt; CellTooltip.initAll(\\u0026#39;[data-ct-title]\\u0026#39;) \\u0026lt;/script\\u0026gt; \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:4:3\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#3-浏览器直引umd--iife\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置项 type TooltipPlacement = \\u0026#39;top\\u0026#39; | \\u0026#39;bottom\\u0026#39; | \\u0026#39;left\\u0026#39; | \\u0026#39;right\\u0026#39; | \\u0026#39;auto\\u0026#39; type TooltipTrigger = \\u0026#39;hover\\u0026#39; | \\u0026#39;focus\\u0026#39; | \\u0026#39;click\\u0026#39; | \\u0026#39;manual\\u0026#39; type TooltipTheme = \\u0026#39;light\\u0026#39; | \\u0026#39;dark\\u0026#39; | \\u0026#39;auto\\u0026#39; interface TooltipOptions { title?: string | (() =\\u0026gt; string) placement?: TooltipPlacement trigger?: string theme?: TooltipTheme container?: HTMLElement offset?: number html?: boolean delay?: number | { show?: number; hide?: number } } title：提示内容；可传字符串或函数 placement：位置；auto 会按可用空间自动选择 trigger：触发方式，支持空格组合（例如 \\u0026quot;hover focus\\u0026quot;） theme：主题；支持 light / dark / auto，默认 dark container：tooltip 挂载容器，默认 document.body offset：目标元素与 tooltip 的间距（像素） html：是否按 HTML 渲染 title delay：显示/隐藏延迟（毫秒） \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:5:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#配置项\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"data 属性 data-ct-title data-ct-placement data-ct-trigger data-ct-theme 示例： \\u0026lt;button data-ct-title=\\u0026#34;Click tooltip\\u0026#34; data-ct-trigger=\\u0026#34;click\\u0026#34; data-ct-placement=\\u0026#34;right\\u0026#34; data-ct-theme=\\u0026#34;light\\u0026#34; \\u0026gt; Click \\u0026lt;/button\\u0026gt; \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:6:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#data-属性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"实例方法 import Tooltip from \\u0026#39;cell-tooltip\\u0026#39; const tooltip = Tooltip.getOrCreateInstance(element, { title: \\u0026#39;Manual tooltip\\u0026#39;, trigger: \\u0026#39;manual\\u0026#39;, }) tooltip.show() tooltip.hide() tooltip.toggle() tooltip.update() tooltip.dispose() // 批量初始化（返回 Tooltip 实例数组） const tooltips = Tooltip.initAll(\\u0026#39;.demo-btn[data-ct-title]\\u0026#39;) \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:7:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#实例方法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"目录 src/tooltip.ts：组件核心实现 src/index.ts：导出入口 src/main.ts：示例页面初始化 src/style.css：演示与 tooltip 样式 \",\"date\":\"2026-03-06\",\"objectID\":\"/projects/lruihao/cell-tooltip/:8:0\",\"tags\":[],\"title\":\"一个轻量化 Tooltip 组件。\",\"uri\":\"/projects/lruihao/cell-tooltip/#目录\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/cmpt santa hat: A Christmas Easter Egg by JavaScript.\",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。 简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:0:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:1:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"要求 FixIt v0.4.0 或更高版本。 \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:2:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。 \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:3:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Hugo 模块安装 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/cmpt-santa-hat\\u0026#34; 在 Hugo 的第一次启动时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:3:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#作为-hugo-模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Git 子模块安装 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/cmpt-santa-hat.git themes/cmpt-santa-hat 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [\\u0026#34;FixIt\\u0026#34;, \\u0026#34;cmpt-santa-hat\\u0026#34;] \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:3:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#作为-git-子模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 为了通过 FixIt 主题在 layouts/_partials/custom.html 文件中开放的 自定义块 将 santa-hat.fixit.html 注入到 custom-assets 中，你需要填写以下必要配置： [params] [params.customPartials] # ... other partials assets = [ \\u0026#34;inject/santa-hat.fixit.html\\u0026#34;, ] # ... other partials \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:4:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"样式控制 Logo 尺寸推荐：32x32 像素。 CSS 变量： --fi-santa-hat-offset：控制圣诞帽相对于 Logo 的平移偏移，默认值 8px 2px。 --fi-santa-hat-shadow：控制帽子阴影的 RGB 值，默认值 0, 0, 0，暗色模式下会自动切换为 255, 255, 255。 \",\"date\":\"2025-12-24\",\"objectID\":\"/projects/hugo-fixit/cmpt-santa-hat/:5:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"A Christmas Easter Egg by JavaScript.\",\"uri\":\"/projects/hugo-fixit/cmpt-santa-hat/#样式控制\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/auto changelog plus: Command line tool for generating a changelog from git tags and commit history\",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"auto-changelog-plus 中文 | English 从 git 提交历史自动生成 changelog 的命令行工具。 基于 auto-changelog 和 约定式提交 规范。 \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:1:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#auto-changelog-plus data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📦 安装 npm install -g auto-changelog-plus \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:2:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。 Usage: auto-changelog-plus [options] Options: -o, --output [file] # output file, default: CHANGELOG.md -c, --config [file] # config file location, default: .auto-changelog -t, --template [template] # specify template to use [compact, keepachangelog, json], default: compact -r, --remote [remote] # specify git remote to use for links, default: origin -p, --package # use version from package.json as latest release -v, --latest-version [version] # use specified version as latest release -u, --unreleased # include section for unreleased changes -l, --commit-limit [count] # number of commits to display per release, default: 3 -b, --backfill-limit [count] # number of commits to backfill empty releases with, default: 3 --commit-url [url] # override url for commits, use {id} for commit id --issue-url [url] # override url for issues, use {id} for issue id --merge-url [url] # override url for merges, use {id} for merge id --compare-url [url] # override url for compares, use {from} and {to} for tags --issue-pattern [regex] # override regex pattern for issues in commit messages --breaking-pattern [regex] # regex pattern for breaking change commits --merge-pattern [regex] # add custom regex pattern for merge commits --commit-pattern [regex] # pattern to include when parsing commits --ignore-commit-pattern [regex] # pattern to ignore when parsing commits --tag-pattern [regex] # override regex pattern for version tags --tag-prefix [prefix] # prefix used in version tags, default: v --starting-version [tag] # specify earliest version to include in changelog --starting-date [yyyy-mm-dd] # specify earliest date to include in changelog --ending-version [tag] # specify latest version to include in changelog --sort-commits [property] # sort commits by property [relevance, date, date-desc, subject, subject-desc], default: relevance --release-summary # display tagged commit message body as release summary --unreleased-only # only output unreleased changes --hide-empty-releases # hide empty releases --hide-credit # hide auto-changelog credit --handlebars-setup [file] # handlebars setup file --append-git-log [string] # string to append to git log command --append-git-tag [string] # string to append to git tag command --prepend # prepend changelog to output file --stdout # output changelog to stdout -V, --version # output the version number -h, --help # output usage information 以下是一些常见的使用示例： # 在当前目录写入日志到 CHANGELOG.md auto-changelog-plus # 使用 keepachangelog 模板写入日志到 HISTORY.md auto-changelog-plus --output HISTORY.md --template keepachangelog # 禁用提交限制，渲染每个发布的所有提交 auto-changelog-plus --commit-limit false 执行 auto-changelog-plus -h 获取帮助或者参考 auto-changelog 文档。 \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:3:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-用法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📝 约定式提交 基于 约定式提交 规范，支持以下类型的提交： feat: 新功能 fix: 修复问题 perf: 性能优化 refactor: 代码重构 docs: 文档变更 test: 测试相关 style: 代码格式调整 chore: 构建过程或辅助工具的变动 build: 构建系统变动 ci: 持续集成配置变动 revert: 代码回滚 支持 scope：feat(api):, fix(ui): 等 支持 emoji：:sparkles: feat:, ✨ feat: 等 支持 Breaking Changes：feat!:, feat(scope)!:, BREAKING CHANGE: 等格式 自动忽略 WIP 提交：wip:, Wip: 等临时提交不会包含在变更日志中 \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:4:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-约定式提交\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"⚙️ 自动化使用 将 auto-changelog-plus 安装到开发依赖： npm install auto-changelog-plus --save-dev # 或 yarn add auto-changelog-plus --dev # 或 pnpm add -D auto-changelog-plus 在你的 package.json 的 version 脚本中添加 auto-changelog-plus -p \\u0026amp;\\u0026amp; git add CHANGELOG.md： 使用 -p 或 --package 将 package.json 中的 version 用作最新发布，这样以前发布和现在之间的所有提交都成为该发布的一部分。基本上任何通常被解析为 Unreleased 的内容现在都会出现在 package.json 的 version 下。 现在每次运行 npm version 时，changelog 将自动更新并成为版本提交的一部分。 在不是 NPM 包的项目中，可以使用 npx 或 pnpx 来运行 auto-changelog-plus，例如： npx auto-changelog-plus # 或 pnpx auto-changelog-plus 在 GitHub Actions 中，你可以使用以下工作流来自动生成发布说明： name: Release for new tag on: push: tags: - \\u0026#39;v*.*.*\\u0026#39; workflow_dispatch: jobs: release: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 0 # Fetch all history for generating release notes - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: \\u0026#39;lts/*\\u0026#39; - name: Generate release notes run: | npx auto-changelog-plus --starting-version ${{ github.ref_name }} sed -i \\u0026#39;1,4d\\u0026#39; CHANGELOG.md - name: GitHub Release uses: softprops/action-gh-release@v2 with: draft: true body_path: CHANGELOG.md \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:5:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-自动化使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🔄 和 auto-changelog 的区别 auto-changelog-plus 是 auto-changelog 的上层封装，完全兼容 auto-changelog 的所有用法和配置。 主要改进： 优化默认模板：更好地适配 约定式提交 规范 调整默认配置：提供更合理的开箱即用体验 扩展模板功能：提供额外的模板辅助函数 如果你正在使用 auto-changelog，可以直接替换为 auto-changelog-plus，无需修改任何配置。 \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:6:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-和-auto-changelog-的区别\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📄 许可证 MIT \",\"date\":\"2025-08-30\",\"objectID\":\"/projects/lruihao/auto-changelog-plus/:7:0\",\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"uri\":\"/projects/lruihao/auto-changelog-plus/#-许可证\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。 不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:0:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"背景：Mermaid 主题机制与痛点 flowchart LR A([\\\"Start\\\"]) A --\\u003e B{\\\"Decision\\\"} B --\\u003e|Yes| C[\\\"Option A\\\"] B --\\u003e|No| D[\\\"Option B\\\"] flowchart LR A([\\\"Start\\\"]) A --\\u003e B{\\\"Decision\\\"} B --\\u003e|Yes| C[\\\"Option A\\\"] B --\\u003e|No| D[\\\"Option B\\\"] flowchart LR A([\\\"Start\\\"]) A --\\u003e B{\\\"Decision\\\"} B --\\u003e|Yes| C[\\\"Option A\\\"] B --\\u003e|No| D[\\\"Option B\\\"] flowchart LR A([\\\"Start\\\"]) A --\\u003e B{\\\"Decision\\\"} B --\\u003e|Yes| C[\\\"Option A\\\"] B --\\u003e|No| D[\\\"Option B\\\"] Mermaid 在初始化时通过 theme 字段选定配色，例如： mermaid.initialize({ theme: \\u0026#39;dark\\u0026#39; }); 但这条配置 只在首次渲染时生效。当用户在操作系统层面切到 Light/Dark，或者网页本身提供手动开关时，Mermaid 并不会自动重绘。这就导致： 暗黑系统 + 浅色图表 ⇒ 刺眼 浅色系统 + 暗黑图表 ⇒ 同样刺眼 社区 Issue #2644 早在 2022 年就提出希望官方支持 prefers-color-scheme，但至今（2025-08）仍未合入主干。 顺便提一下，主题的切换一般都有两种主流方式： 利用 prefers-color-scheme 感知系统级别主题变化，matchMedia('(prefers-color-scheme: dark)') 的 change 事件。 通过 dark class 手动切换，这种方式通常会在 html/body 上设置一个 class 或者 data-theme=\\u0026quot;dark\\u0026quot; 这样。 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:1:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#背景mermaid-主题机制与痛点\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"方案 1️⃣ Reinitialize 切换主题，重新 initialize + 重绘，这是目前来看大多数人的做法。 思路： 备份原始的 Mermaid code 设置 startOnLoad: false 避免 Mermaid 自动渲染，然后使用 mermaid.initialize({ theme: theme }) + mermaid.run() 完成初始化。 重新渲染时移除 data-processed，替换 .mermaid 的内容为原始 Mermaid code，使用 mermaid.initialize({ theme: newTheme }) + mermaid.run() 重新渲染 这份做法在 Issue #1945 里有完整代码，下面给出精简版： 优点是： 利用现有官方 API 缺点是： 每次切换都需要重新渲染，大图会闪一下 如果页面里图表很多，性能损耗不可忽视 还有异步处理带来的一系列问题 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:2:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#方案-1-reinitialize\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"方案 2️⃣ CSS 滤镜 作为支持 prefers-color-scheme 和手动切换的一种简单的解决方案，可以使用 CSS 反转滤镜（invert、hue-rotate 等）来实现。 例如： [data-theme=\\u0026#39;dark\\u0026#39;] .mermaid { filter: invert(0.88); } @media (prefers-color-scheme: dark) { :root:not([data-theme=\\u0026#39;light\\u0026#39;]) .mermaid { filter: invert(0.88); } } 这条技巧是我在 Issue #2644 中看到的。 优点是： 一行 CSS，无 JS 不重新渲染，零延迟 缺点是： 只是「反色」，并非官方暗黑主题 对于红色、绿色等语义色会完全失真 如果背景不是纯黑纯白，观感会很奇怪 由于太过简单，效果也很粗糙，适合做 Demo 或内部工具，不建议面向终端用户。 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:3:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#方案-2-css-滤镜\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"方案 3️⃣ 配置热替换 mermaid.live 站点能在用户切主题时瞬间完成切换，且颜色完全与官方暗黑主题对齐。从 源码 和 DevTools 推测，它大概做了三件事： 自己维护一份 themeCSS 字符串（而非仅用名字 'dark'） 在 prefers-color-scheme 变化时，直接把新的 CSS 注入到 \\u0026lt;svg\\u0026gt; 里的 \\u0026lt;style\\u0026gt; 节点 通过 mermaid.render('id', code) 拿到 SVG string 后，用正则替换掉旧 \\u0026lt;style\\u0026gt;，再 DOMParser 塞回页面 Issue #2644 中有提到，在 mermaid.live 中，目前是根据配色方案在配置中切换主题。 优点： 无闪烁 完全复用官方配色 缺点： 需要内部维护主题 CSS，Mermaid 每升级一次都要同步 实现细节依赖私有 API，官方一旦改动就会崩 如果你极度追求体验，可以照着源码抄一份，但要做好长期维护的心理准备。 #2644 中提到，在 mermaid.live 中，目前正在根据配色方案在配置中切换主题。这种方案暂时未找到更多的细节披露。我又懒得去深扒 mermaid.live 的实现细节。 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:4:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#方案-3-配置热替换\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"方案 4️⃣ Reinitialize + CSS 结合 在我的实践中，FixIt 主题 是通过 data-theme 的方式手动切换网站主题的，我一开始走的思路和方案 1️⃣总体一致，为了处理这个方案的缺点，我多次迭代，有了最终的版本： 首先通过 type=module 引入 Mermaid： import mermaid from \\u0026#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.js\\u0026#39;; import zenuml from \\u0026#39;https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs\\u0026#39;; await mermaid.registerExternalDiagrams([zenuml]); mermaid.startOnLoad = false; window.mermaid = mermaid; 然后在主题的切换逻辑中处理： initMermaid() { if (!this.config.mermaid) return; const themes = this.config.mermaid.themes ?? [\\u0026#39;default\\u0026#39;, \\u0026#39;dark\\u0026#39;]; let processing = false; let delayTask = null; const loadMermaid = async () =\\u0026gt; { processing = true; // https://mermaid.js.org/config/schema-docs/config.html window.mermaid.initialize({ startOnLoad: false, darkMode: this.isDark, theme: this.isDark ? themes[1] : themes[0], securityLevel: this.config.mermaid.securityLevel, look: this.config.mermaid.look, fontFamily: this.config.mermaid.fontFamily, altFontFamily: this.config.mermaid.fontFamily }); await window.mermaid.run({ querySelector: \\u0026#39;.mermaid\\u0026#39;, suppressErrors: true, }); processing = false; if (delayTask \\u0026amp;\\u0026amp; typeof delayTask === \\u0026#39;function\\u0026#39;) { delayTask(); delayTask = null; // console.log(\\u0026#39;Delayed task executed\\u0026#39;); } }; const reloadMermaid = async () =\\u0026gt; { await this.util.forEach(document.querySelectorAll(\\u0026#39;.mermaid[data-processed]\\u0026#39;), (el) =\\u0026gt; { el.removeAttribute(\\u0026#39;data-processed\\u0026#39;); el.parentElement.replaceChild(el.nextElementSibling.content.cloneNode(true), el); }); await loadMermaid(); }; const waitForMermaid = () =\\u0026gt; { return new Promise((resolve) =\\u0026gt; { const timer = setInterval(() =\\u0026gt; { if (window.mermaid \\u0026amp;\\u0026amp; window.mermaid.initialize) { clearInterval(timer); resolve(); } }, 100); }); }; waitForMermaid().then(() =\\u0026gt; { loadMermaid(); this.switchThemeEventSet.add(() =\\u0026gt; { if (processing) { console.warn(\\u0026#39;Mermaid is still processing, delaying the reload.\\u0026#39;); delayTask = reloadMermaid; return; } // console.log(\\u0026#39;reload immediately\\u0026#39;); reloadMermaid().catch(console.error); }); this.beforeprintEventSet.add(() =\\u0026gt; { // Optionally set theme to \\u0026#39;neutral\\u0026#39; for printing if required }); }) } 为了缓解闪屏问题，利用 CSS 增加一个 Loading 效果，过度一下。 .mermaid { position: relative; overflow: hidden !important; \\u0026amp;[data-processed] { text-align: center; } \\u0026amp;:not([data-processed])::before { content: \\u0026#39;\\u0026#39;; position: absolute; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(0.5rem); background-position: center; background-repeat: no-repeat; background-image: var(#{$rootPrefix}loading-img); background-size: 60px; } svg { max-width: 100%; height: auto; } } 说实话，虽然勉强达到了目的，这里的 delayTask 和 waitForMermaid() 算得上妥妥的 Dirty Hack。也属实是无奈之举。 睡觉前我灵光乍现，为了避免每次切换主题时都要重新渲染 Mermaid 图表，我尝试一开始直接把 Mermaid 的 Light 和 Dark 主题的两个图都渲染了，然后由 data-theme 控制显示哪个图表。 尝试后发现 Mermaid 在渲染图时，如果这个元素是 display: none; 则会报错。 于是，我改成初始化时只渲染 Light/Dark SVG，等到主题切换时才渲染 Dark/Light SVG，并隐藏另一个 SVG。 这样同一个图只需要渲染两次，后续多次主题切换，就能够通过 CSS 非常丝滑的控制切换了，狠狠戳这里查看效果。 \\u0026lt;!DOCTYPE html\\u0026gt; \\u0026lt;html lang=\\u0026#34;en\\u0026#34;\\u0026gt; \\u0026lt;head\\u0026gt; \\u0026lt;meta charset=\\u0026#34;UTF-8\\u0026#34;\\u0026gt; \\u0026lt;meta name=\\u0026#34;viewport\\u0026#34; content=\\u0026#34;width=device-width, initial-scale=1.0\\u0026#34;\\u0026gt; \\u0026lt;title\\u0026gt;Mermaid Light/Dark Mode switching\\u0026lt;/title\\u0026gt; \\u0026lt;style\\u0026gt; .diagrams-container { display: flex; justify-content: space-evenly; } .mermaid-container { .mermaid-dark { display: none; } [data-theme=\\u0026#34;dark\\u0026#34;] \\u0026amp; { .mermaid { display: none; } .mermaid-dark { display: block; } } } \\u0026lt;/style\\u0026gt; \\u0026lt;/head\\u0026gt; \\u0026lt;body\\u0026gt; \\u0026lt;script\\u0026gt; function toggleTheme() { const currentTheme = document.body.dataset.theme; const newTheme = currentTheme === \\u0026#39;dark\\u0026#39; ? \\u0026#39;default\\u0026#39; : \\u0026#39;dark\\u0026#39;; document.body.dataset.theme = newTheme; } \\u0026lt;/script\\u0026gt; \\u0026lt;button id=\\u0026#34;toggler\\u0026#34;\\u0026gt;切换主题\\u0026lt;/button\\u0026gt; \\u0026lt;div class=\\u0026#34;diagrams-container\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;mermaid-container\\u0026#\",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:5:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#方案-4-reinitialize--css-结合\"},{\"categories\":[\"JavaScript\",\"CSS\"],\"collections\":null,\"content\":\"小结与选型建议 毋庸置疑，想要完美的体验，方案 3️⃣ 是最优选择， 方案 4️⃣ 作为方案 1️⃣ 的升级版，整体体验也相对较好。 方案 实现成本 体验 是否官方可维护 Reinitialize 低 中等（闪屏） ✅ CSS invert 极低 差 ✅ mermaid.live 热替换 高 极佳 ❌ Reinitialize + CSS 中 较好 ✅ 内部文档 / 博客 / 小工具 ⇒ 方案 4️⃣ 赶时间的 MVP ⇒ 方案 2️⃣ 面向 C 端、对体验极端敏感 ⇒ 方案 3️⃣，但要准备长期跟进 \",\"date\":\"2025-08-16\",\"objectID\":\"/posts/mermaid-theming/:6:0\",\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"uri\":\"/posts/mermaid-theming/#小结与选型建议\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！ \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:0:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"第一折・黑盒现世 昔日，React 少侠仗虚拟 DOM 之剑，Vue 剑仙携响应式绫罗，双雄争霸，血溅前端。 忽一日，电闪雷鸣，Chrome 山、Firefox 谷、Safari 崖三地同时金光乍现——一只乌漆嘛黑的小盒破空而出，盒上无门无派，只刻八字： 不拜山头，自成一派。 盒盖一开，三股真气冲天而起，惊得 React 剑锋一抖，Vue 绫罗乱颤。众修士齐呼： “此乃何物？” 盒中悠悠传出一声： “Web Components——浏览器亲儿子，江湖诨号：黑盒扫地僧。” \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:1:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#第一折黑盒现世\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"第二折・三把钥匙镇山门 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:2:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#第二折三把钥匙镇山门\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"铸兵符・Custom Elements 凡得此符者，可铸自家神兵。 \\u0026lt;my-dog food=\\u0026#34;hotpot\\u0026#34; mood=\\u0026#34;happy\\u0026#34;\\u0026gt;\\u0026lt;/my-dog\\u0026gt; 今日起，标签随你姓，语义随你编，浏览器照单全收，不查户口。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:2:1\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#铸兵符custom-elements\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"影分身・Shadow DOM 此术一开，样式、DOM、事件皆入黑屋，外头 CSS 千军万马，休想踏进半步。 “兄弟，你的 !important 呢？” “抱歉，进了影分身，天王老子也得排队。” \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:2:2\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#影分身shadow-dom\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"袖里乾坤・HTML Templates \\u0026amp; Slots 袖中一抖，模板千军万马；插槽轻点，内容各就各位。 无需编译，无需打包，一颗 \\u0026lt;template\\u0026gt; 漂洋过海，落地即插即用。 这是真正意义上的“一次编写，到处运行”——比 Java 当年喊的口号还真。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:2:3\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#袖里乾坤html-templates--slots\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"第三折・风云再起 黑盒既出，江湖格局瞬变： 微前端：Vue2、Vue3、React18、Angular 同屏共舞，互不打脸。 设计系统：按钮、输入框、LOGO 化身“原子暗器”，任何门派伸手即取。 长尾奇袭：Chrome 插件、VS Code 插件、微信小程序、低代码山寨，皆呼“真香”。 长寿秘籍：框架蜜月三年，黑盒随浏览器升级十年，npm 弃坑它不弃。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:3:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#第三折风云再起\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"第四折・范式转移・浏览器登堂入室 当日头西斜，江湖忽然风起。众侠回头一看，浏览器老馆主身披龙袍、脚踏赤霄，一步跨上金銮殿。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:4:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#第四折范式转移浏览器登堂入室\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"旧朝遗诏：从“虚拟机”到“原生执政” 过去二十年，前端史是一部“夺权史”： jQuery 夺的是 DOM 的刀； Angular 夺的是模块的印； React 夺的是渲染的剑； Vue 夺的是状态的符。 四把大印加身，浏览器反成“空壳天子”。 而今，老馆主一声令下：“朕即框架，诸卿退班！” \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:4:1\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#旧朝遗诏从虚拟机到原生执政\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"三权分立：新标准下的江湖秩序 权柄 归属 职责 口号 立法权 WHATWG/W3C 写圣旨（HTML、CSS、DOM 标准） “凡入典章，万世不易。” 执法权 浏览器内核 掌御林军（渲染管线、沙箱、安全） “有朕一日，天下无刀兵。” 行政权 开发者 \\u0026amp; 工具链 管民生（DX、脚手架、调试器） “百姓只用敲锣，不必造炮。” Web Components 正是老馆主钦点的 “锦衣卫”。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:4:2\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#三权分立新标准下的江湖秩序\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"去框架化的三重暗涌 编译终点迁移 昨日：Babel/Vite → React/Vue 运行时； 今日：Babel/Vite → Web Components 原生指令。 框架退居“DX 大臣”，不再染指最终字节码。 生态颗粒度下沉 UI 库不再打包成“全家桶”，而是 CDN 单文件组件： https://unpkg.com/@ui/button.js 按需即取，HTTP 缓存即版本管理，npm install 沦为可选项。 生命周期归一 React 的 useEffect、Vue 的 onMounted、Svelte 的 onMount， 最终都得翻译成同一套浏览器生命周期： connectedCallback、disconnectedCallback、attributeChangedCallback。 框架语法糖越甜，底层 API 越收敛，直至“糖衣”可有可无。 \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:4:3\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#去框架化的三重暗涌\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"未来图景：十年后的登基大典 2027：浏览器内置 signals 提案落地，状态管理回归原生； 2029：CSS @scope + @state 双剑合璧，Shadow DOM 自带响应式； 2031：HTTP/4 多路复用 + Import Map 2.0，让“一行 \\u0026lt;script type=importmap\\u0026gt; 即 CDN 全图”成为标配。 届时，开发者只需写： \\u0026lt;my-app\\u0026gt;\\u0026lt;/my-app\\u0026gt; \\u0026lt;script type=\\u0026#34;module\\u0026#34; src=\\u0026#34;app.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; 框架？ “哦，那是旧朝遗老，偶尔进宫讲史罢了。” 老馆主抚须长笑： “昔日你们借我地基起高楼，今日我把高楼收归国有。 范式逆流，不是革命，是回家。” \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:4:4\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#未来图景十年后的登基大典\"},{\"categories\":[\"JavaScript\",\"HTML\"],\"collections\":[\"Web Components\"],\"content\":\"尾声・血雨腥风 “老衲不挑框架，不拒工具，但有一语相赠： 十年之后，你迁移的是框架，还是我？” 江湖血雨腥风，黑盒已开。 要么守着旧山门，十年后再为迁移埋单； 要么此刻随扫地僧下山，让代码像 HTML 一样长青。 下回分解： “5 分钟，一指定乾坤——纯原生撸一只可复用计数器，再扔进 React、Vue、Svelte 乱炖！” 注意 哈哈哈哈哈哈哈，以抖机灵的形式简单聊了一下 Web Components 的发展历程和未来趋势。 我对 Web Components 充满了浓厚的兴趣，决定花点时间研究研究。 剩余的内容在 Web Components 系列文章 将会持续更新，敬请期待！ \",\"date\":\"2025-08-05\",\"objectID\":\"/posts/wc-01-prologue/:5:0\",\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"title\":\"黑盒出关・三把钥匙定江湖\",\"uri\":\"/posts/wc-01-prologue/#尾声血雨腥风\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用： 名称 特点与适用场景 网址 CodeSandbox 支持前后端全栈开发，内置 Docker，支持 React、Vue、Node、Python 等，适合复杂项目 https://codesandbox.io CodePen 专注于前端小效果演示，社区活跃，适合分享和展示 HTML/CSS/JS 片段 https://codepen.io JSFiddle 轻量级前端代码片段运行环境，适合快速测试和分享小 demo https://jsfiddle.net JS Bin 类似 JSFiddle，支持实时协作和分享，适合调试和教学 https://jsbin.com Playcode.io 无需登录即可运行 JS/TS，界面类似本地 IDE，适合快速原型开发 https://playcode.io Replit 支持多语言（如 Python、Java、C++），适合教育用途和全栈开发 https://replit.com StackBlitz 基于浏览器的全栈 IDE，支持 Node、React、Angular 等框架，自动部署到 Vercel，适合快速原型和教程 https://stackblitz.com Gitpod 基于 VS Code 的云端 IDE，适合 GitHub 项目快速启动和协作 https://gitpod.io 码上掘金 国内版轻量 Playground，支持 React、Vue 等框架，适合中文用户 https://code.juejin.cn \",\"date\":\"2025-08-04\",\"objectID\":\"/posts/code-playground/:0:0\",\"tags\":[\"Node.js\",\"npm\"],\"title\":\"Code Playground\",\"uri\":\"/posts/code-playground/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/caniuse embed element: A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文 一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。 🌟 在线演示 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:1:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#caniuse-embed-元素 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"✨ 特性 🎯 轻松集成：即插即用的 Web 组件，适用于任何框架或原生 HTML 🎨 主题支持：自动、浅色和深色主题，适应您的设计 📱 响应式：根据内容自动调整高度 ⚡ 轻量级：使用 Lit 构建，最小化包体积 🛠️ 可定制：配置数据源、时间范围和外观 🔒 类型安全：完整的 TypeScript 支持和全面的类型定义 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:2:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🚀 快速开始 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:3:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-快速开始\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"CDN（推荐） 在您的 HTML 中添加脚本标签： \\u0026lt;script src=\\u0026#34;https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; 然后使用组件： \\u0026lt;caniuse-embed feature=\\u0026#34;css-grid\\u0026#34;\\u0026gt;\\u0026lt;/caniuse-embed\\u0026gt; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:3:1\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#cdn推荐\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"NPM 安装 npm install @cell-x/caniuse-embed-element import \\u0026#39;@cell-x/caniuse-embed-element\\u0026#39; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:3:2\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#npm-安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📖 使用示例 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:4:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-使用示例\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"基本用法 \\u0026lt;caniuse-embed feature=\\u0026#34;css-grid\\u0026#34;\\u0026gt;\\u0026lt;/caniuse-embed\\u0026gt; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:4:1\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#基本用法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 Baseline 支持 显示功能的浏览器兼容性基线信息： \\u0026lt;caniuse-embed feature=\\u0026#34;css-grid\\u0026#34; baseline\\u0026gt;\\u0026lt;/caniuse-embed\\u0026gt; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:4:2\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#使用-baseline-支持\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"自定义配置 \\u0026lt;caniuse-embed feature=\\u0026#34;flexbox\\u0026#34; theme=\\u0026#34;dark\\u0026#34; past=\\u0026#34;3\\u0026#34; future=\\u0026#34;2\\u0026#34; baseline origin=\\u0026#34;https://caniuse.lruihao.cn\\u0026#34; \\u0026gt;\\u0026lt;/caniuse-embed\\u0026gt; FRAMEWORK_INTEGRATION.md \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:4:3\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#自定义配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"框架集成 以下是使用 Vue.js 的示例。更多框架集成示例，请参阅 FRAMEWORK_INTEGRATION.md。 \\u0026lt;script setup\\u0026gt; import \\u0026#39;@cell-x/caniuse-embed-element\\u0026#39; \\u0026lt;/script\\u0026gt; \\u0026lt;template\\u0026gt; \\u0026lt;div\\u0026gt; \\u0026lt;caniuse-embed feature=\\u0026#34;css-grid\\u0026#34; theme=\\u0026#34;dark\\u0026#34; :past=\\u0026#34;3\\u0026#34; :future=\\u0026#34;2\\u0026#34; /\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:4:4\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#框架集成\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"⚙️ API 参考 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-api-参考\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"属性 属性 类型 默认值 描述 feature string '' 必需。caniuse 功能标识符（例如 \\u0026lsquo;css-grid\\u0026rsquo;, \\u0026lsquo;flexbox\\u0026rsquo;） past 0 - 5 2 显示过去浏览器版本的数量 future 0 - 3 1 显示未来浏览器版本的数量 baseline boolean false 显示基线浏览器兼容性状态（如果可用） origin string 'https://caniuse.lruihao.cn' caniuse 嵌入服务的基础 URL theme 'auto' | 'light' | 'dark' 'auto' 嵌入内容的颜色主题 loading 'eager' | 'lazy' 'lazy' iframe 的加载策略（立即加载或延迟加载） meta string 自动生成 嵌入实例的唯一标识符 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:1\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#属性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"关于 Baseline baseline 属性显示 Web 功能的 Baseline 浏览器兼容性状态。启用后，它会显示功能是否： 广泛可用 - 所有主流浏览器都支持 新近可用 - 最近在主流浏览器中可用 有限可用 - 尚未在所有主流浏览器中可用 这提供了功能采用情况的快速视觉指示器，帮助开发者在使用 Web 平台功能时做出明智的决策。 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:2\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#关于-baseline\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"查找功能名称 功能名称对应于 caniuse.com 上使用的标识符。您可以在以下位置找到它们： URL 路径：https://caniuse.com/css-grid → 功能名称是 css-grid caniuse.lruihao.cn 上的搜索结果 caniuse-db 仓库 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:3\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#查找功能名称\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"常见功能示例 css-grid - CSS 网格布局 flexbox - 弹性盒子布局 arrow-functions - 箭头函数 webp - WebP 图片格式 css-variables - CSS 自定义属性 async-functions - Async/Await 函数 \\u0026hellip; \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:4\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#常见功能示例\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"CSS 类 .ciu-embed-iframe - 嵌入的 iframe 元素 .ciu-embed-empty - 未指定功能时的空状态 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:5:5\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#css-类\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🌐 浏览器支持 此 Web 组件适用于支持以下特性的所有现代浏览器： Custom Elements v1 Shadow DOM v1 ES2015+ 特性 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:6:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-浏览器支持\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🔧 开发 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:7:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-开发\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"前置要求 Node.js 20+ pnpm 10+ \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:7:1\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#前置要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"设置 # 克隆仓库 git clone https://github.com/Lruihao/caniuse-embed-element.git cd caniuse-embed-element # 安装依赖 pnpm install # 启动开发服务器 pnpm dev \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:7:2\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#设置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"构建 # 构建所有格式 pnpm build:all # 构建特定格式 pnpm build:lib # ES 模块和类型 pnpm build:iife # 用于 CDN 的 IIFE 格式 pnpm build # 演示构建 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:7:3\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#构建\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"脚本 pnpm dev - 启动开发服务器 pnpm build - 构建演示 pnpm build:lib - 构建库（ES 模块 + 类型） pnpm build:iife - 构建 CDN 的 IIFE 包 pnpm build:all - 构建所有格式 pnpm lint - 运行 ESLint pnpm preview - 预览构建的演示 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:7:4\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#脚本\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📦 发行版 该包提供多种构建格式： ES 模块（dist/）- 用于现代打包工具 IIFE 包（dist/caniuse-embed-element.iife.js）- 用于 CDN TypeScript 定义（dist/types/）- 用于 TypeScript 项目 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:8:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-发行版\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🤝 贡献 欢迎贡献！请随时提交 Pull Request。对于重大更改，请先开 issue 讨论您想要更改的内容。 Fork 仓库 创建您的功能分支（git checkout -b feature/amazing-feature） 提交您的更改（git commit -m 'Add some amazing feature'） 推送到分支（git push origin feature/amazing-feature） 打开 Pull Request LICENSE \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:9:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-贡献\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📄 许可证 本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:10:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-许可证\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🙏 致谢 pengzhanbo/caniuse-embed mdn-browser-compat-data - 来自 MDN 的全面浏览器兼容性数据 Fyrd/caniuse - 原始浏览器支持数据 由 Lruihao 用 ❤️ 制作 \",\"date\":\"2025-07-22\",\"objectID\":\"/projects/lruihao/caniuse-embed-element/:11:0\",\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"uri\":\"/projects/lruihao/caniuse-embed-element/#-致谢\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/json viewer element: A custom element for viewing and interacting with JSON data.\",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"\\u0026lt;json-viewer\\u0026gt; Element 简体中文 | English 🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件 \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:1:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#json-viewer-element data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"功能特性 🌟 Web 组件：原生，无框架依赖 🎨 主题：支持明暗模式 📦 盒装：可选边框与内边距 📋 可复制：一键复制 JSON 🔑 排序：支持键排序 🔍 展开深度：可控初始展开层级 🧩 自定义复制按钮：slot 插槽支持 🧬 类型高亮：多种类型高亮 🛠️ 自定义事件：支持 copy/toggle 事件监听 \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:2:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#功能特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用方法 \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#使用方法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装 npm install json-viewer-element \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:1\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"引入 作为模块 import \\u0026#39;json-viewer-element\\u0026#39; UMD (CDN) \\u0026lt;script src=\\u0026#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:2\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#引入\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"引入 作为模块 import \\u0026#39;json-viewer-element\\u0026#39; UMD (CDN) \\u0026lt;script src=\\u0026#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:2\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#作为模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"引入 作为模块 import \\u0026#39;json-viewer-element\\u0026#39; UMD (CDN) \\u0026lt;script src=\\u0026#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:2\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#umd-cdn\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"基本用法 手动绑定 value： \\u0026lt;json-viewer id=\\u0026#34;viewer\\u0026#34; boxed copyable sort expand-depth=\\u0026#34;2\\u0026#34; theme=\\u0026#34;dark\\u0026#34;\\u0026gt;\\u0026lt;/json-viewer\\u0026gt; \\u0026lt;script\\u0026gt; document.getElementById(\\u0026#39;viewer\\u0026#39;).value = { hello: \\u0026#34;world\\u0026#34;, arr: [1,2,3] }; \\u0026lt;/script\\u0026gt; 直接在标签上绑定 value： \\u0026lt;json-viewer value=\\u0026#39;{\\u0026#34;hello\\u0026#34;:\\u0026#34;world\\u0026#34;,\\u0026#34;arr\\u0026#34;:[1,2,3]}\\u0026#39; boxed copyable sort expand-depth=\\u0026#34;2\\u0026#34; theme=\\u0026#34;dark\\u0026#34;\\u0026gt;\\u0026lt;/json-viewer\\u0026gt; 在 Vue 框架中使用： Vue 2/3 选项式 API： \\u0026lt;template\\u0026gt; \\u0026lt;json-viewer :value=\\u0026#34;JSON.stringify(json)\\u0026#34; boxed copyable sort expand-depth=\\u0026#34;2\\u0026#34; theme=\\u0026#34;dark\\u0026#34;\\u0026gt;\\u0026lt;/json-viewer\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; export default { data() { return { json: { hello: \\u0026#34;world\\u0026#34;, arr: [1,2,3] }, } }, } \\u0026lt;/script\\u0026gt; Vue 3 组合式 API： \\u0026lt;script lang=\\u0026#34;ts\\u0026#34; setup\\u0026gt; import { ref } from \\u0026#39;vue\\u0026#39; const json = ref({ hello: \\u0026#34;world\\u0026#34;, arr: [1,2,3] }) \\u0026lt;/script\\u0026gt; \\u0026lt;template\\u0026gt; \\u0026lt;json-viewer :value=\\u0026#34;JSON.stringify(json)\\u0026#34; boxed copyable sort expand-depth=\\u0026#34;2\\u0026#34; theme=\\u0026#34;dark\\u0026#34;\\u0026gt;\\u0026lt;/json-viewer\\u0026gt; \\u0026lt;/template\\u0026gt; 提示 跳过组件解析 为了让 Vue 知道某些元素应被视为自定义元素并跳过组件解析，我们可以指定 compilerOptions.isCustomElement 选项。 // vite.config.js import vue from \\u0026#39;@vitejs/plugin-vue\\u0026#39; import vueJsx from \\u0026#39;@vitejs/plugin-vue-jsx\\u0026#39; export default { plugins: [ vue({ template: { compilerOptions: { // 将所有带短横线的标签名都视为自定义元素 isCustomElement: tag =\\u0026gt; tag.includes(\\u0026#39;-\\u0026#39;) } } }), vueJsx({ // 将所有带短横线的标签名都视为自定义元素 isCustomElement: tag =\\u0026gt; tag.includes(\\u0026#39;-\\u0026#39;) }), ] } 如果你在 Vue 中使用 ESLint，可能需要配置忽略自定义元素： // eslint.config.js export default { rules: { \\u0026#39;vue/component-name-in-template-casing\\u0026#39;: [ \\u0026#39;warn\\u0026#39;, \\u0026#39;PascalCase\\u0026#39;, { registeredComponentsOnly: false, ignores: [\\u0026#39;/^icon-/\\u0026#39;, \\u0026#39;json-viewer\\u0026#39;], }, ], }, } \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:3:3\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#基本用法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"属性 提示 在 Vue 等框架中使用时，value 和 copyable 属性的值需要转成字符串传入。 属性 类型 默认值 说明 value object / array / string / number / boolean null JSON 数据 expand-depth number 1 初始展开层级 copyable boolean / CopyableOptions false 启用复制按钮或自定义复制按钮配置（见下表） sort boolean false 是否对对象键排序 boxed boolean false 是否显示边框和内边距 theme \\u0026rsquo;light\\u0026rsquo; / \\u0026lsquo;dark\\u0026rsquo; \\u0026rsquo;light' 主题 parse boolean true 字符串值是否自动解析为 JSON \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:4:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#属性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"CopyableOptions 属性 类型 默认值 说明 copyText string Copy 复制按钮显示的文本 copiedText string Copied 复制成功后显示的文本 timeout number 2000 显示 copiedText 的时长 (ms) align \\u0026rsquo;left\\u0026rsquo; / \\u0026lsquo;right\\u0026rsquo; right 复制按钮对齐方式 \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:4:1\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#copyableoptions\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"事件 事件 说明 copy-success 复制成功后触发 copy-error 复制失败后触发 toggle 节点折叠/展开时触发 \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:5:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#事件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"插槽 自定义复制按钮： \\u0026lt;json-viewer copyable\\u0026gt; \\u0026lt;button slot=\\u0026#34;copy-button\\u0026#34;\\u0026gt;复制 JSON\\u0026lt;/button\\u0026gt; \\u0026lt;/json-viewer\\u0026gt; \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:6:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#插槽\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"License MIT Copyright (c) 2025-present Lruihao \",\"date\":\"2025-07-19\",\"objectID\":\"/projects/lruihao/json-viewer-element/:7:0\",\"tags\":[],\"title\":\"A custom element for viewing and interacting with JSON data.\",\"uri\":\"/projects/lruihao/json-viewer-element/#license\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:0:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"21 @layer 的背景 在 CSS 的发展历程中，样式的优先级规则一直是核心概念之一。默认情况下，CSS 样式按照选择器的优先级（如内联样式 \\u0026gt; ID 选择器 \\u0026gt; 类选择器 \\u0026gt; 元素选择器）以及代码的书写顺序来决定最终的样式效果。然而，这种简单的优先级规则在大型项目中常常会引发问题： 样式冲突：多个样式规则可能同时作用于同一个元素，导致样式冲突，开发者需要不断调整选择器的优先级来解决问题。 维护困难：随着项目的复杂度增加，样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。 组件化开发的挑战：在组件化开发中，不同组件的样式可能会相互干扰，导致样式管理混乱。 为了解决这些问题，CSS 工作组引入了 @layer 规则。@layer 允许开发者显式地定义样式的层级关系，从而更好地组织和管理样式规则。 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:1:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#layer-的背景\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"22 @layer 的作用 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:2:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#layer-的作用\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"22.1 定义样式层级 @layer 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层，我们可以明确地控制样式的优先级顺序。例如，我们可以将基础样式定义在较低的层级，而将特定组件的样式定义在较高的层级，从而避免样式冲突。 @layer base { body { font-family: Arial, sans-serif; margin: 0; padding: 0; } } \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:2:1\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#定义样式层级\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"22.2 提升代码可维护性 使用 @layer 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层，便于后续的修改和扩展。同时，分层的样式规则也更容易被团队成员理解和协作。 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:2:2\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#提升代码可维护性\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"22.3 支持组件化开发 在组件化开发中，@layer 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级，从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。 例如： @layer components { .cell-button { background-color: blue; color: white; padding: 10px; border: none; cursor: pointer; } } 在业务代码中，我们可以无视组件 CSS 的优先级，直接进行重置： .cell-button { background-color: red; /* 覆盖组件样式 */ } 眼见为实： 可以理解为 @layer 定义的层级会整体下降一个优先级，这样便于分开业务代码和组件代码的样式管理。 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:2:3\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#支持组件化开发\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"23 @layer 的语法 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:3:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#layer-的语法\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"23.1 基本语法 @layer layer-name? {rules} @layer layer-name; @layer layer-name, layer-name, layer-name; 简而言之，@layer 规则可以用来定义一个样式层级或者改变现有层级的优先级。 @layer layer-name? {rules}; 这种形式用于定义一个新的样式层级，如果名称为空，则为匿名层级。 @layer 后接一个或多个层级名称，用于指定样式层级的优先级顺序，按照前后顺序。 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:3:1\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#基本语法\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"23.2 让整个 CSS 文件变成 @layer 如果我们希望将整个 CSS 文件作为一个层级，可以使用以下语法： @import 中使用： @import (utilities.css) layer(utilities); \\u0026lt;link\\u0026gt; 元素引用 (*)： 警告 该用法有待考证，在 MDN 上尚未找到明确文档。 \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;utilities.css\\u0026#34; layer=\\u0026#34;utilities\\u0026#34;\\u0026gt; \\u0026lt;!-- 样式引入到一个匿名级联层中 --\\u0026gt; \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;utilities.css\\u0026#34; layer\\u0026gt; \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:3:2\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#让整个-css-文件变成-layer\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"23.3 嵌套层级 @layer 也支持嵌套定义，这使得我们可以在一个层级中进一步细分样式规则。例如： @layer base { @layer typography { h1 { font-size: 24px; } p { font-size: 16px; } } } 在嵌套层级中，外层层级的优先级低于内层层级。 多嵌套语法下的优先级： @layer A { p { color: red; } @layer B { p { color: green; } } } @layer C { p { color: orange; } @layer D { p { color: blue; } } } 其中的优先级大小是这样的：C \\u0026gt; C.D \\u0026gt; A \\u0026gt; A.B 另外，嵌套语法还支持使用级联写法简化。 例如，普通内外嵌套写法： @layer outer { button { width: 100px; height: 30px; } @layer inner { button { height: 40px; width: 160px; } } } 上面的内外嵌套语法还可以写成下面这样： @layer outer { button { width: 100px; height: 30px; } } @layer outer.inner { button { height: 40px; width: 160px; } } \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:3:3\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#嵌套层级\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"24 @layer 的兼容性 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:4:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#layer-的兼容性\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"25 参考 MDN Web Docs - @layer 详解日后定会大规模使用的 CSS @layer 规则 \",\"date\":\"2025-06-18\",\"objectID\":\"/posts/at-layer/:5:0\",\"tags\":[\"CSS\",\"@layer\"],\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"uri\":\"/posts/at-layer/#参考\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。 \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:0:0\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"13 前提条件 在开始之前，请确保你已经完成以下步骤： 安装并配置好 NGINX。 完成 Vue.js 应用的开发，并使用 npm run build 命令打包应用。 \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:1:0\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#前提条件\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"14 NGINX 配置示例 以下是一个典型的 NGINX 配置示例： server { listen 80; # 监听80端口 server_name your_domain.com; # 替换为你的域名 location / { root /path/to/your/dist; # 指向打包后的文件夹 try_files $uri $uri/ /index.html; # 尝试访问指定文件，如果找不到则重定向到index.html } # API 代理设置 location /api/ { proxy_pass http://your_api_server; # 替换为你的 API 服务器地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:2:0\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#nginx-配置示例\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"14.1 配置说明 listen: 指定 NGINX 监听的端口，通常是 80（HTTP）。 server_name: 配置你的域名。 root: 指向 Vue 应用的打包输出目录，通常是 dist 文件夹。 try_files: 尝试访问请求的文件，如果不存在，则返回 index.html，以允许 Vue Router 处理前端路由。 location /api/: 所有以 /api/ 开头的请求会被代理到指定的 API 服务器。 proxy_pass: 设置 API 请求转发到的后端服务器地址。 \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:2:1\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#配置说明\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"14.2 部署步骤 打包 Vue 应用： npm run build 上传内容：将 dist 文件夹的内容上传到服务器的指定路径。 修改 NGINX 配置：编辑 NGINX 配置文件，通常在 /etc/nginx/sites-available/default 或 /etc/nginx/nginx.conf。 检查配置：检查 NGINX 配置是否有语法错误： sudo nginx -t 重新加载 NGINX： sudo systemctl reload nginx \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:2:2\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#部署步骤\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"15 总结 通过上述配置，你的 Vue.js 应用将可以在 NGINX 上正常运行，并支持 history 模式的路由。同时，所有以 /api/ 开头的请求将被有效地代理到后端服务器。这样，前端与后端的交互就更加流畅自然。 希望这篇文章能帮助你顺利部署 Vue 应用！如有任何问题，欢迎留言讨论。 \",\"date\":\"2025-06-11\",\"objectID\":\"/posts/vue-build/:3:0\",\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"uri\":\"/posts/vue-build/#总结\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/mmt webfont: The webfont package for the MMT typeface.\",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"MMT webfont package The webfont package for the MMT typeface. \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:1:0\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#mmt-webfont-package data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo MMT typeface online demo \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:2:0\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Installation \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:3:0\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#installation\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Browser The link embedding method can be used by web pages, mini-programs, and other platforms that support loading CSS styles. \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css\\u0026#34;\\u0026gt; @import url(\\u0026#39;https://cdn.jsdelivr.net/npm/mmt-webfont/dist/result.css\\u0026#39;); \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:3:1\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#browser\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"NPM To use the MMT webfont in your project, you can install it via npm: npm install mmt-webfont Then, you can import the CSS file in your project: import \\u0026#39;mmt-webfont/dist/result.css\\u0026#39; \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:3:2\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#npm\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Usage Restricted font usage area: article { font-family: \\u0026#39;MMT\\u0026#39;; } \",\"date\":\"2025-04-10\",\"objectID\":\"/projects/lruihao/mmt-webfont/:4:0\",\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"title\":\"The webfont package for the MMT typeface.\",\"uri\":\"/projects/lruihao/mmt-webfont/#usage\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/vercel proxy: API proxies powered by Vercel.\",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Vercel API Proxy API proxies powered by Vercel. [toc] \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:1:0\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#vercel-api-proxy data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hosts https://api.lruihao.cn https://cell-api.vercel.app \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:2:0\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#hosts\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"API List Go to the Vercel API Proxy and select the API you want to use. \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:3:0\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#api-list\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Gravatar API: /gravatar/avatar/(.*) Method: GET/POST Get the avatar of the email fee47a2f4f2cc71f99a02b0a73ecfee0 by Gravatar API. GET /gravatar/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0 HTTP/1.1 Host: cell-api.vercel.app \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:3:1\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#gravatar\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Google API: /gravatar/avatar/(.*) Method: * Get favicons by Google API. GET /google/s2/favicons?sz=64\\u0026amp;domain=lruihao.cn HTTP/1.1 Host: cell-api.vercel.app \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:3:2\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#google\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Netease Comment API: /netease/comment Method: GET/POST Request parameter: name Required type description type no string Type is text, returns text, is Json, returns Json by default id no int Specify the playlist id to get the hot reviews, default is NetEase Cloud Hot Songs List Request example: GET /netease/comment?mid=2280569152 HTTP/1.1 Host: cell-api.vercel.app Response example: \",\"date\":\"2025-04-09\",\"objectID\":\"/projects/lruihao/vercel-proxy/:3:3\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"API proxies powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-proxy/#netease-comment\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。 提示 快速参考手册经常参考本指南？这里有一张你可以打印的高分辨率图像！免费下载。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:0:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"背景 Flex 布局（弹性盒子）模块（截至 2017 年 10 月为 W3C 候选推荐）旨在提供一种更有效的方法来布局、对齐和分配容器中项目之间的空间，即使它们的大小未知和/或动态（因此有“弹性（flex）”一词）。 Flex 布局的主要思想是赋予容器调整其项目宽度/高度（和顺序）的能力，以最佳填充可用空间（主要是适应各种显示设备和屏幕尺寸）。一个弹性容器会扩展项目以填充可用的空闲空间，或缩小它们以防止溢出。 最重要的是，Flex 布局是方向无关的，与常规布局（块布局是基于垂直的，而行内布局是基于水平的）相比。虽然这些布局在页面上工作良好，但它们缺乏灵活性（不带双关意味）来支持大型或复杂的应用程序（特别是在方向变化、调整大小、拉伸、收缩等方面）。 注意 Flex 布局最适合应用程序的组件和小规模布局，而 网格布局（Grid） 则用于更大规模的布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:1:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#背景\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"基础知识和术语 由于 flexbox 是一个整体模块，而不是单个属性，因此它涉及很多内容，包括其整个属性集。其中一些属性应设置在容器（父元素，称为“弹性容器”）上，而其他属性应设置在子元素（称为“弹性项目”）上。 如果“常规”布局基于块和内联流方向，则弹性布局基于“弹性流方向”。请看规范中的这张图，它解释了弹性布局背后的主要思想。 弹性盒主轴上的尺寸称为主尺寸，另一个方向的尺寸称为横向尺寸。这些尺寸有主起点、主终点、横向起点和横向终点 项目将按照主轴（main axis）或横轴（cross axis）进行布局。 弹性容器（flex container） 包含弹性项目的父元素。 弹性项目（flex item） 弹性容器的子元素。 主轴（main axis） 弹性容器的主轴是弹性项目排列的主要轴。请注意，主轴不一定是水平的；这取决于属性 flex-direction（见下文）。 主轴起点（main-start） | 主轴终点（main-end） 弹性项目从主轴起点开始排列，直到主轴终点。 主轴尺寸（main size） 弹性项目的宽度或高度，取决于主轴的方向，是项目的主尺寸。弹性项目的主尺寸属性是主维度上的 width 或 height 属性。 横轴（cross axis） 与主轴垂直的轴称为横轴。其方向取决于主轴的方向。 横轴起点（cross-start） | 横轴终点（cross-end） 弹性行（flex line）填充项目并放置在容器中，从横轴起点开始，向横轴终点方向排列。 横轴尺寸（cross size） 弹性项目的宽度或高度，取决于横轴的方向，是项目的横尺寸。横尺寸属性是横向维度上的 width 或 height 属性。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:2:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#基础知识和术语\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"弹性布局属性 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#弹性布局属性\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#父元素弹性容器的属性\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#display\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-direction\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-wrap\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-flow\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#justify-content\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#align-items\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#align-content\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"父元素（弹性容器）的属性 display 这定义了一个弹性容器；根据给定的值，可以是内联或块级。这为其所有直接子元素启用弹性上下文。 .container { display: flex | inline-flex; } 请注意，CSS 列对弹性容器没有影响。 flex-direction 这建立了主轴，从而定义了弹性项目在弹性容器中放置的方向。Flexbox 是一个单向布局概念（除了可选的换行）。将弹性项目主要视为在水平行或垂直列中布局。 .container { flex-direction: row | row-reverse | column | column-reverse; } row（默认）：在 ltr 中从左到右；在 rtl 中从右到左 row-reverse：在 ltr 中从右到左；在 rtl 中从左到右 column：与 row 相同，但从上到下 column-reverse：与 row-reverse 相同，但从下到上 flex-wrap 默认情况下，所有弹性项目都将尝试适应一行。你可以更改此属性并允许项目根据需要换行。 .container { flex-wrap: nowrap | wrap | wrap-reverse; } nowrap（默认）：所有弹性项目都在一行上。 wrap：弹性项目将换行到多行，从上到下。 wrap-reverse：弹性项目将从下到上换行到多行。 flex-flow 这是 flex-direction 和 flex-wrap 属性的简写，它们共同定义了弹性容器的主轴和横轴。默认值是 row nowrap。 .container { flex-flow: column wrap; } justify-content 这定义了沿主轴的对齐方式。它有助于分配当所有弹性项目在一行上都不可调整大小或可调整大小但已达到最大尺寸时剩余的额外空间。它还对项目溢出行时的对齐方式施加了一些控制。 .container { justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | right ... + safe | unsafe; } flex-start（默认）：项目向弹性方向的起点对齐。 flex-end：项目向弹性方向的终点对齐。 start：项目向 writing-mode 方向的起点对齐。 end：项目向 writing-mode 方向的终点对齐。 left：项目向容器的左边缘对齐，除非这与 flex-direction 不符，则表现为 start。 right：项目向容器的右边缘对齐，除非这与 flex-direction 不符，则表现为 end。 center：项目在行中居中对齐 space-between：项目在行中均匀分布；第一个项目在起始线，最后一个项目在终止线 space-around：项目在行中均匀分布，周围有相等的空间。请注意，视觉上这些空间并不相等，因为所有项目在两侧都有相等的空间。第一个项目在容器边缘有一个单位的空间，但下一个项目之间有两个单位的空间，因为下一个项目有自己的间距。 space-evenly：项目分布，使得任何两个项目之间的间距（以及到边缘的空间）相等。 请注意，这些值的浏览器支持是有差异的。例如，某些版本的 Edge 从未支持 space-between，而 start/end/left/right 尚未在 Chrome 中实现。MDN 有详细的图表。最安全的值是 flex-start、flex-end 和 center。 还有两个附加关键字可以与这些值配对：safe 和 unsafe。使用 safe 确保无论你如何进行这种类型的定位，都不会将元素推到屏幕外（例如，推到顶部）以至于内容无法滚动到（称为“数据丢失”）。 align-items 这定义了当前行上弹性项目沿横轴的默认布局行为。可以将其视为横轴（垂直于主轴）的 justify-content 版本。 .container { align-items: stretch | flex-start | flex-end | center | baseline | first baseline | last baseline | start | end | self-start | self-end + ... safe | unsafe; } stretch（默认）：拉伸以填充容器（仍然遵守最小宽度/最大宽度） flex-start / start / self-start：项目放置在横轴的起点。这些之间的区别很微妙，主要是关于遵守 flex-direction 规则或 writing-mode 规则。 flex-end / end / self-end：项目放置在横轴的终点。区别再次很微妙，主要是关于遵守 flex-direction 规则与 writing-mode 规则。 center：项目在横轴上居中对齐 baseline：项目对齐，使它们的基线对齐 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 align-content 这在横轴上有额外空间时对齐弹性容器的行，类似于 justify-content 在主轴上对齐单个项目。 警告 此属性仅在多行弹性容器上生效，其中 flex-wrap 设置为 wrap 或 wrap-reverse。单行弹性容器（即 flex-wrap 设置为其默认值 no-wrap）将不反映 align-content。 .container { align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch | start | end | baseline | first baseline | last baseline + ... safe | unsafe; } normal（默认）：项目按默认位置打包，仿佛未设置任何值。 flex-start / start：项目打包到容器的起点。（更多支持的）flex-start 遵守 flex-direction，而 start 遵守 writing-mode 方向。 flex-end / end：项目打包到容器的终点。（更多支持的）flex-end 遵守 flex-direction，而 end 遵守 writing-mode 方向。 center：项目在容器中居中对齐 space-between：项目均匀分布；第一行在容器的起点，最后一行在终点 space-around：项目均匀分布，每行周围有相等的空间 space-evenly：项目均匀分布，周围有相等的空间 stretch：行拉伸以占据剩余空间 safe 和 unsafe 修饰符关键字可以与所有这些关键字结合使用（尽管请注意浏览器支持），并帮助你防止对齐元素使内容变得不可访问。 gap, row-gap, column-gap gap 属性明确控制弹性项目之间的空间。它仅在项目之间应用间距，而不是在外边缘。 .container { display: flex; ... gap: 10px; gap: 10px 20px; /* 行间距 列间距 */ row-gap: 10px; column-gap: 20px; } 这种行为可以被认为是最小的间隙，如果间隙更大（由于类似 justify-content: space-between; 的原因），则间隙仅在该空间变小的情况下生效。 它不仅适用于 flexbox，gap 也适用于网格和多列布局。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:1\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#gap-row-gap-column-gap\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#子元素弹性项目的属性\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#order\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-grow\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-shrink\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex-basis\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#flex\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"子元素（弹性项目）的属性 order 默认情况下，弹性项目按源顺序布局。但是，order 属性控制它们在弹性容器中出现的顺序。 .item { order: 5; /* 默认值是 0 */ } 具有相同顺序的项目恢复为源顺序。 flex-grow 这定义了弹性项目在必要时增长的能力。它接受一个无单位的值，作为比例。它决定了弹性容器内可用空间的多少应该由该项目占据。 如果所有项目的 flex-grow 设置为 1，则容器中的剩余空间将平均分配给所有子元素。如果其中一个子元素的值为 2，则剩余空间将占据其他元素的两倍（或至少尝试这样做）。 .item { flex-grow: 4; /* 默认值是 0 */ } 负数无效。 flex-shrink 这定义了弹性项目在必要时收缩的能力。 .item { flex-shrink: 3; /* 默认值是 1 */ } 负数无效。 flex-basis 这定义了在分配剩余空间之前元素的默认大小。它可以是一个长度（例如 20%、5rem 等）或一个关键字。auto 关键字表示“查看我的宽度或高度属性”（这曾经由 main-size 关键字暂时完成，直到被弃用）。content 关键字表示“根据项目的内容调整大小”——这个关键字尚未得到很好的支持，因此很难测试，也很难知道它的兄弟 max-content、min-content 和 fit-content 的作用。 .item { flex-basis: | auto; /* 默认值是 auto */ } 如果设置为 0，则不考虑内容周围的额外空间。如果设置为 auto，则根据其 flex-grow 值分配额外空间。请参见此图。 flex 这是 flex-grow、flex-shrink 和 flex-basis 的简写。第二个和第三个参数（flex-shrink 和 flex-basis）是可选的。默认值是 0 1 auto，但如果你使用单个数字值设置它，例如 flex: 5;，则会将 flex-basis 更改为 0%，因此它类似于设置 flex-grow: 5; flex-shrink: 1; flex-basis: 0%;。 .item { flex: none | [ \\u0026lt;\\u0026#39;flex-grow\\u0026#39;\\u0026gt; \\u0026lt;\\u0026#39;flex-shrink\\u0026#39;\\u0026gt;? || \\u0026lt;\\u0026#39;flex-basis\\u0026#39;\\u0026gt; ] } 建议你使用此简写属性，而不是单独设置各个属性。简写智能地设置其他值。 align-self 这允许覆盖单个弹性项目的默认对齐方式（或由 align-items 指定的对齐方式）。 请参阅 align-items 解释以了解可用值。 .item { align-self: auto | flex-start | flex-end | center | baseline | stretch; } 请注意，float、clear 和 vertical-align 对弹性项目没有影响。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:3:2\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#align-self\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"为 Flexbox 添加前缀 我们可以使用 Sass@mixin 来帮助处理一些浏览器前缀问题。 @mixin flexbox() { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; } @mixin flex($values) { -webkit-box-flex: $values; -moz-box-flex: $values; -webkit-flex: $values; -ms-flex: $values; flex: $values; } @mixin order($val) { -webkit-box-ordinal-group: $val; -moz-box-ordinal-group: $val; -ms-flex-order: $val; -webkit-order: $val; order: $val; } .wrapper { @include flexbox(); } .item { @include flex(1 200px); @include order(2); } \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:4:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#为-flexbox-添加前缀\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"参考 本文内容翻译自 Chris Coyier 的 A Complete Guide to Flexbox，感谢原作者的辛勤付出。 除此之外，你还可以通过一些小游戏来学习 Flexbox： Flexbox Froggy - 一个有趣的游戏，可以帮助你学习 Flexbox。 Flexbox Defense - 一个塔防游戏，可以帮助你学习 Flexbox。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:5:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#参考\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"题外话 这篇文章的翻译早就想做了，但是一直没有时间，拖了一年，今天终于抽出时间来完成了。 \",\"date\":\"2025-01-20\",\"objectID\":\"/posts/flexbox/:6:0\",\"tags\":[\"CSS\",\"Flexbox\"],\"title\":\"CSS Flexbox 布局指南\",\"uri\":\"/posts/flexbox/#题外话\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/action component list: Generate a list of all hugo-fixit theme components.\",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components. \",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/:1:0\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/#action-component-list--fixit data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"How to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit. To include the action in a workflow in another repository, you can use the uses syntax with the @ symbol to reference a specific branch, tag, or commit hash. Star this repository 😉 Go to your repository Add the following section to your README.md file, you can give whatever title you want. Just make sure that you use \\u0026lt;!-- HUGO_FIXIT_COMPONENTS:START --\\u0026gt;\\u0026lt;!-- HUGO_FIXIT_COMPONENTS:END --\\u0026gt; in your readme. The workflow will replace this comment with the actual blog post list: # Hugo FixIt Components \\u0026lt;!-- HUGO_FIXIT_COMPONENTS:START --\\u0026gt; \\u0026lt;!-- HUGO_FIXIT_COMPONENTS:END --\\u0026gt; Create a folder named .github and create a workflows folder inside it, if it doesn\\u0026rsquo;t exist. Create a new file named fixit-component-list.yml with the following contents inside the workflows folder: name: Generate hugo-fixit component list on: schedule: # Run workflow automatically - cron: \\u0026#39;0 0 * * *\\u0026#39; # Runs every day at 00:00 UTC workflow_dispatch: # Run workflow manually (without waiting for the cron to be called), through the GitHub Actions Workflow page directly permissions: contents: write # To write the generated contents to the readme jobs: generate-component-list: name: Update this repo\\u0026#39;s README with the list of hugo-fixit theme components runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Generate hugo-fixit component list id: test-action uses: hugo-fixit/action-component-list@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: comment_tag_name: HUGO_FIXIT_COMPONENTS template: \\u0026#39;- [{$repo.name}]({$repo.html_url}): {$repo.description}\\u0026#39; - name: Print Output id: output run: echo \\u0026#34;${{ steps.test-action.outputs.repos }}\\u0026#34; - name: Create Pull Request uses: peter-evans/create-pull-request@v8 with: title: Update hugo-fixit component list commit-message: \\u0026#39;docs(readme): update hugo-fixit component list\\u0026#39; body: This PR updates the hugo-fixit component list in the README. base: main branch: update-component-list labels: documentation # reviewers: Lruihao Go to repository settings, Click on Actions \\u0026gt; General. Update the \\u0026ldquo;Workflow permissions\\u0026rdquo; to \\u0026ldquo;Read and write permissions\\u0026rdquo;. Click on save. Wait for it to run automatically, or you can also trigger it manually to see the result instantly. \",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/:2:0\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/#how-to-use\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Inputs Name Description Default comment_tag_name The tag name to look for in the readme file HUGO_FIXIT_COMPONENTS readme_path Comma separated paths of the readme files you want to update ./README.md exclude_repos Comma separated list of repos to exclude from the list template Template to use while creating the list of hugo-fixit theme components. It can contain {$repo.name} etc. as variables - [{$repo.name}]({$repo.html_url}): {$repo.description} \",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/:3:0\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/#inputs\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Outputs Name Description repos The list of hugo-fixit theme components repos that were updated. \",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/:4:0\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/#outputs\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Example Insert the following code block in your Markdown file to display the list of hugo-fixit components. The list of hugo-fixit components will be displayed here. \\u0026lt;!-- HUGO_FIXIT_COMPONENTS:START --\\u0026gt; \\u0026lt;!-- HUGO_FIXIT_COMPONENTS:END --\\u0026gt; The list of hugo-fixit components will be displayed here. fixit-bundle 🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component. cmpt-flyfish 🐟 A canvas implemented animation effect of small fish swimming. cmpt-mdevtools Mobile devtools component powered by vConsole and eruda. cmpt-santa-hat A Christmas Easter Egg by JavaScript. cmpt-translate 🌐 A component for site automatic translation. component-projects 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. hugo-atom-feed Hugo theme component for ATOM feed custom Output Format. hugo-json-feed Hugo theme component for JSON feed custom Output Format. shortcode-asciinema A Hugo theme component with asciinema-embed shortcode. shortcode-caniuse A Hugo theme component with caniuse shortcode. shortcode-docs-bookmark 🔖 Embed bookmark of FixIt Docs. shortcode-missing-translation A Hugo theme component with missing-translation shortcode. shortcode-mmt-netease 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode. \",\"date\":\"2025-01-14\",\"objectID\":\"/projects/hugo-fixit/action-component-list/:5:0\",\"tags\":[\"github-actions\"],\"title\":\"Generate a list of all hugo-fixit theme components.\",\"uri\":\"/projects/hugo-fixit/action-component-list/#example\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/shortcode asciinema: A Hugo theme component with asciinema-embed shortcode.\",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。 简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:0:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo 安装主题#CLI | FixIt \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:1:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"要求 适用于所有 Hugo 主题。 \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:2:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。 \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:3:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Hugo 模块安装 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/shortcode-asciinema\\u0026#34; 在 Hugo 的第一次启动时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:3:1\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#作为-hugo-模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Git 子模块安装 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/shortcode-asciinema.git themes/shortcode-asciinema 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [\\u0026#34;FixIt\\u0026#34;, \\u0026#34;shortcode-asciinema\\u0026#34;] \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:3:2\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#作为-git-子模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"记录终端 你可以使用 asciinema 命令记录终端并将其上传到 asciinema.org。 asciinema rec demo.cast # press \\u0026lt;ctrl-d\\u0026gt; or type \\u0026#34;exit\\u0026#34; when you\\u0026#39;re done asciinema upload demo.cast \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:4:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#记录终端\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 Shortcode 以下是一个使用示例： {{\\u0026lt; asciinema-embed 697494 \\u0026gt;}} 呈现效果如下： \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:5:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#使用-shortcode\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参考 开发主题组件 | FixIt 如何开发 Hugo 主题组件 | FixIt \",\"date\":\"2025-01-08\",\"objectID\":\"/projects/hugo-fixit/shortcode-asciinema/:6:0\",\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-asciinema/#参考\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。 \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:0:0\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"17 效果 调整浏览器窗口大小，你会发现视口的宽度和高度会实时更新（旧浏览器可能不支持）。 重要的是，这个效果是纯 CSS 实现的，不需要 JavaScript，真的震惊了！ \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:1:0\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#效果\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"18 实现原理 定义 CSS 自定义属性（@property） --vw 和 --vh，分别表示视口的宽度和高度。 使用 tan() 和 atan2() 函数计算视口的宽度和高度。 使用 counter 和 counter-reset 属性将计算结果显示在页面上。 \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:2:0\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#实现原理\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"18.1 计算视口尺寸 我们可以使用 vw 和 vh 获取浏览器视口尺寸，但是这是相对单位，所以需要转换为 px 才行。我们先利用自定义属性把相对单位转成 px，然后最关键的一步是巧妙地利用了三角函数 tan(arctan(a))=atan(arctan(a)) = atan(arctan(a))=a 来实现这个转换。 \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:2:1\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#计算视口尺寸\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"18.2 三角函数 在三角函数中，tan(θ)tan(θ)tan(θ) 表示一个角度 θθθ 的正切值，它等于对边（opposite）与邻边（adjacent）的比值。反过来，arctan(a)arctan(a)arctan(a) 表示一个数值 aaa 的反正切值，它返回一个角度 θθθ，使得 tan(θ)=atan(θ) = atan(θ)=a，因此得到公式： tan(arctan(a))=a tan(arctan(a)) = a tan(arctan(a))=aCSS 中的 tan() 和 atan2() 函数可以用来计算正切值和反正切值。 tan() 函数的语法如下： /* 单个 \\u0026lt;angle\\u0026gt; 值 */ width: calc(100px * tan(45deg)); width: calc(100px * tan(0.125turn)); width: calc(100px * tan(0.785398163rad)); /* 单个 \\u0026lt;number\\u0026gt; 值 */ width: calc(100px * tan(0.5773502)); width: calc(100px * tan(1.732 – 1)); /* 其他值 */ width: calc(100px * tan(pi / 3)); width: calc(100px * tan(e)); atan2() 函数接受两个参数，对于所给两值 x 和 y，函数 atan2(y, x) 计算并返回正半横轴与从原点到点 (x, y) 的射线的夹角。函数的语法如下： /* 两个 \\u0026lt;number\\u0026gt; 值 */ transform: rotate(atan2(3, 2)); /* 两个 \\u0026lt;dimension\\u0026gt; 值 */ transform: rotate(atan2(1rem, -0.5rem)); /* 两个 \\u0026lt;percentage\\u0026gt; 值 */ transform: rotate(atan2(20%, -30%)); /* 其他值 */ transform: rotate(atan2(pi, 45)); transform: rotate(atan2(e, 30)); \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:2:2\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#三角函数\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"19 代码示例 以下是完整的 HTML 和 CSS 代码，你也可以在我的 html-demo 中查看。 \\u0026lt;!DOCTYPE html\\u0026gt; \\u0026lt;html lang=\\u0026#34;en\\u0026#34;\\u0026gt; \\u0026lt;head\\u0026gt; \\u0026lt;meta charset=\\u0026#34;UTF-8\\u0026#34;\\u0026gt; \\u0026lt;meta name=\\u0026#34;viewport\\u0026#34; content=\\u0026#34;width=device-width, initial-scale=1.0\\u0026#34;\\u0026gt; \\u0026lt;title\\u0026gt;CSS Viewport Size\\u0026lt;/title\\u0026gt; \\u0026lt;style\\u0026gt; /* 自定义属性是为了把 vw 和 vh 转成 px */ @property --vw { syntax: \\u0026#39;\\u0026lt;length\\u0026gt;\\u0026#39;; inherits: true; initial-value: 100vw; } @property --vh { syntax: \\u0026#39;\\u0026lt;length\\u0026gt;\\u0026#39;; inherits: true; initial-value: 100vh; } /* 核心公式： tan(θ) = opposite / adjacent θ = arctan(opposite / adjacent) tan(arctan(a)) = a */ :root { --width: tan(atan2(var(--vw), 1px)); --height: tan(atan2(var(--vh), 1px)); } body::before { content: counter(width) \\u0026#39; X \\u0026#39; counter(height); counter-reset: width var(--width) height var(--height); display: block; font-size: 150px; font-weight: 900; position: fixed; width: fit-content; height: fit-content; inset: 0; margin: auto; } \\u0026lt;/style\\u0026gt; \\u0026lt;/head\\u0026gt; \\u0026lt;body\\u0026gt; \\u0026lt;/body\\u0026gt; \\u0026lt;/html\\u0026gt; \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:3:0\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#代码示例\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"20 兼容性 主要是 counter 和 counter-reset 属性的兼容性问题，看漫山红遍，层林尽染。 \",\"date\":\"2024-12-06\",\"objectID\":\"/posts/css-viewport/:4:0\",\"tags\":[\"CSS\"],\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"uri\":\"/posts/css-viewport/#兼容性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/cmpt translate: 🌐 A component for site automatic translation.\",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。 简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:0:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。 多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:1:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特性 每日翻译字符 200 万！ 无语言配置文件、无 API Key、对 SEO 友好！ 支持整页自动翻译 支持指定翻译语言 支持可选翻译服务 支持忽略翻译元素 支持忽略选择器 支持忽略关键词翻译 支持检测本地语言 支持自定义翻译术语 支持 CDN 支持企业级翻译通道 * \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:2:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"要求 Hugo v0.156.0 或更高版本。 FixIt v0.4.5 或更高版本。 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:3:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:4:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Hugo 模块安装 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/cmpt-translate\\u0026#34; 在 Hugo 的第一次启动时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:4:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#作为-hugo-模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Git 子模块安装 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/cmpt-translate.git themes/cmpt-translate 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [ \\u0026#34;FixIt\\u0026#34;, \\u0026#34;cmpt-translate\\u0026#34; ] \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:4:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#作为-git-子模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 为了通过 FixIt 主题开放的 自定义块 将 cmpt-translate.html 注入到 custom-assets 中，你需要填写以下必要配置： [params] [params.customPartials] # ... other partials menuDesktop = [ \\u0026#34;inject/translate-menu-desktop.html\\u0026#34; ] menuMobile = [ \\u0026#34;inject/translate-menu-mobile.html\\u0026#34; ] assets = [ \\u0026#34;inject/cmpt-translate.html\\u0026#34; ] # ... other partials 另外，你还可以通过以下配置来自定义翻译的语言： [languages] [languages.zh-cn] languageCode = \\u0026#34;zh-CN\\u0026#34; languageName = \\u0026#34;简体中文\\u0026#34; [params] [params.autoTranslate] enable = true service = \\u0026#39;client.edge\\u0026#39; languages = [] ignoreID = [] ignoreClass = [] ignoreTag = [] detectLocalLanguage = false cdn = \\u0026#34;\\u0026#34; enterprise = false enable：是否启用自动翻译。 service：翻译服务提供商，可选值为 client.edge 和 translate.service，详见：翻译服务提供商。 languages：要翻译到的语言 ID 列表，例如 [\\u0026quot;english\\u0026quot;, \\u0026quot;chinese_simplified\\u0026quot;, \\u0026quot;chinese_traditional\\u0026quot;, ...]，详见：完整语言列表。 ignoreID：需要忽略翻译的元素 ID，例如 [\\u0026quot;comment\\u0026quot;, ...]。 ignoreClass：需要忽略翻译的类名，例如 [\\u0026quot;post-category\\u0026quot;, ...]。 ignoreTag：需要忽略翻译的标签，例如 [\\u0026quot;title\\u0026quot;, ...]。 ignoreText：需要忽略翻译的文本，例如 [\\u0026quot;FixIt\\u0026quot;, \\u0026quot;Lruihao\\u0026quot;, ...]。 detectLocalLanguage：是否检测本地语言。 cdn：translate.js 的 CDN，例如 https://cdn.jsdelivr.net/npm/i18n-jsautotranslate@latest。 enterprise：是否启用企业级翻译通道。 注意 为了避免翻译语言获取失败，即使你的站点本身是单语言的，也需要配置 languageCode 和 languageName，例如： [languages] [languages.zh-cn] languageCode = \\u0026#34;zh-CN\\u0026#34; languageName = \\u0026#34;简体中文\\u0026#34; \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:5:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Front Matter autoTranslate: local: \\u0026#39;\\u0026#39; fromLanguages: [] onlyLocalLang: false local: String 用于指定当前页面的本地语言，例如 local: english。 默认本地语言同 Hugo 站点配置相同，如果某个页面实际语言与站点配置不同，可以通过 local 参数指定。 fromLanguages: Array 类型，用于指定当前页面内容中出现的语种是否需要翻译。 例如：网页本身是中文，但是内容中还有其他语言，你可以指定需要翻译的语种，例如： fromLanguages: - chinese_simplified - chinese_traditional onlyLocalLang: Boolean 类型，用于指定是否只翻译当前页面本地语言，默认为 false。 例如：网页本身是中文，但是内容中其他语言的摘要引用，设置 onlyLocalLang: true 可以只翻译中文。 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:6:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#front-matter\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"自定义翻译术语 在你的项目目录 data 文件夹下创建 nomenclature.yml 文件，然后添加自定义翻译术语，例如： - from: english to: chinese_simplified properties: Hello: 你好 World: 世界 - from: english to: french properties: Hello: Bonjour World: Monde \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:7:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#自定义翻译术语\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"企业级翻译通道 企业级稳定翻译通道，仅针对付费用户开放。 体验额度：每天有 5 万字符的体验额度，超出部分将不再翻译！ 在 FixIt 里启用企业级翻译通道，设置 params.autoTranslate.enterprise 为 true 即可，企业级翻译通道相对于普通翻译通道有以下优势： 服务 开源翻译通道 企业级翻译通道 服务端缓存层数 1 层 (文件式缓存) 1 层 (内存 + 文件式缓存) 翻译响应速度 1.5~5 秒 0.8~1.5 秒 翻译服务器 1 台 \\u0026gt;=3 台 网络节点 2 个 \\u0026gt;=4 个 翻译通道 手动设置 自动匹配最优 国内缓存节点 无 有 每日翻译字符 200 万 5000 万 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:8:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#企业级翻译通道\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"赞助费用 考虑到 FixIt 生态受众群体大多为个人用户，因此我（@Lruihao）以个人名义拿出赞助收入进行补贴。 提示 FixIt 项目补贴价：¥10 ¥50 / 域名 / 月 到期自动禁用，需要重新赞助续费！ 符合以下性质的可以免费联系我开通企业级翻译通道： translate.js 及相关生态产品的开发者 FixIt 及相关生态产品的开发者 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:8:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#赞助费用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"赞助方式 微信支付 支付宝 选择赞助金额，然后在留言中备注 AutoTranslate: 你的域名 即可。 通过以下方式联系作者： 邮箱：1024#lruihao.cn (将 # 替换为 @) 微信：关注公众号回复“Cell”获取作者微信 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:8:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#赞助方式\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"致谢 translate.js 提供技术支持和赞助企业级翻译通道。 \",\"date\":\"2024-12-02\",\"objectID\":\"/projects/hugo-fixit/cmpt-translate/:9:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"title\":\"🌐 A component for site automatic translation.\",\"uri\":\"/projects/hugo-fixit/cmpt-translate/#致谢\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/cmpt flyfish: 🐟 A canvas implemented animation effect of small fish swimming.\",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Fly Fish 👉 简体中文说明 | English README 一个 canvas 实现的小鱼游动动画效果。 \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:1:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#fly-fish data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo https://lruihao.cn \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:2:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"要求 FixIt v0.4.0 或更高版本。 \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:3:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方法与 安装主题 相同。有几种安装方式，请选择一种，例如，通过 Hugo 模块安装： \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:4:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Hugo 模块安装 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/cmpt-flyfish\\u0026#34; 在 Hugo 的第一次启动时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:4:1\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#作为-hugo-模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作为 Git 子模块安装 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其作为网站目录的子模块添加。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/cmpt-flyfish.git themes/cmpt-flyfish 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [\\u0026#34;FixIt\\u0026#34;, \\u0026#34;cmpt-flyfish\\u0026#34;] \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:4:2\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#作为-git-子模块安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 为了通过 FixIt 主题在 layouts/_partials/custom.html 文件中开放的 自定义块 将 cmpt-flyfish.html 注入到 custom-assets 中，你需要填写以下必要配置： [params] [params.customPartials] # ... other partials assets = [ \\u0026#34;inject/cmpt-flyfish.html\\u0026#34; ] # ... other partials 配置小鱼主题色，并启用动画： [params] [params.flyfish] enable = true light = \\u0026#34;rgb(0 119 190 / 10%)\\u0026#34; dark = \\u0026#34;rgb(255 255 255 / 10%)\\u0026#34; \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:5:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参考 开发主题组件 | FixIt 如何开发 Hugo 主题组件 | FixIt \",\"date\":\"2024-11-05\",\"objectID\":\"/projects/hugo-fixit/cmpt-flyfish/:6:0\",\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"uri\":\"/projects/hugo-fixit/cmpt-flyfish/#参考\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。 \",\"date\":\"2024-10-06\",\"objectID\":\"/posts/content-adapters/:0:0\",\"tags\":[\"hugo\",\"GitHub API\"],\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"uri\":\"/posts/content-adapters/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 前言 这个愿景我想了很久了，但是用 JS 通过 GitHub API 获取 README 内容的实现方式体验并不好，所以我一直没有实现。直到最近，我发现了 Hugo v0.126.0 版本新增了一个内容适配器（Content adapters）的概念。 Create content adapters to dynamically add content when building your site. 也就是说，我们可以在构建 Hugo 站点时，通过自定义的适配器动态添加内容。理论可行，实践开始。 \",\"date\":\"2024-10-06\",\"objectID\":\"/posts/content-adapters/:1:0\",\"tags\":[\"hugo\",\"GitHub API\"],\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"uri\":\"/posts/content-adapters/#前言\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 GitHub API 首先，我们需要找到 GitHub API 获取 README 内容的接口。懒得翻文档了，直接浏览器打开 https://api.github.com，在 API 列表中最终找到了获取 README 内容的接口： GET /repos/{owner}/{repo}/readme HTTP/1.1 Host: api.github.com Authorization: token {your_token} 有些仓库会有多种语言的 README，还需要获取指定语言的 README 内容： GET /repos/{owner}/{repo}/contents/README.{lang}.md HTTP/1.1 Host: api.github.com Authorization: token {your_token} 另外，GitHub API 有访问频率限制，需要在请求头中添加 Authorization 字段，值为 token {your_token}。1 \",\"date\":\"2024-10-06\",\"objectID\":\"/posts/content-adapters/:2:0\",\"tags\":[\"hugo\",\"GitHub API\"],\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"uri\":\"/posts/content-adapters/#github-api\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 Content Adapters 在项目文件夹中创建 _content.gotmpl，添加以下代码： {{- partial \\u0026#34;adapters/projects.html\\u0026#34; . -}} 目录结构如下： content/ ├── projects/ │ ├── _content.gotmpl \\u0026lt;-- content adapter │ └── _index.md \\u0026lt;-- layout: projects data/ └── projects.yml \\u0026lt;-- projects data 然后，打开 hugo.toml 文件，配置的 projectsAdapters 选项，启用内容适配器： [params] [params.projectsAdapters] enable = true onlyPublic = true categories = [] collections = [] ignoreList = [] 好了，现在准备工作都做完了，剩下要做的就是实现 adapters/projects.html 就好了。 思路： 遍历 data/projects.yml 中的项目数据 通过 GitHub API 获取 README 内容 README 解析为 Markdown 格式，并处理图片链接，部分字符转义 将 README 内容添加到 Hugo 文章中 具体的源码实现可以查看 component-projects 主题组件。 \",\"date\":\"2024-10-06\",\"objectID\":\"/posts/content-adapters/:3:0\",\"tags\":[\"hugo\",\"GitHub API\"],\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"uri\":\"/posts/content-adapters/#content-adapters\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 实现效果 我的开源 Theme Components ｜ FixIt 点击跳到 GitHub 生成 token，选择名为 public_repo 的范围以生成个人访问令牌。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2024-10-06\",\"objectID\":\"/posts/content-adapters/:4:0\",\"tags\":[\"hugo\",\"GitHub API\"],\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"uri\":\"/posts/content-adapters/#实现效果\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/html demo: 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date\":\"2024-09-13\",\"objectID\":\"/projects/lruihao/html-demo/\",\"tags\":[\"html-css-javascript\"],\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"uri\":\"/projects/lruihao/html-demo/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 \",\"date\":\"2024-09-13\",\"objectID\":\"/projects/lruihao/html-demo/:1:0\",\"tags\":[\"html-css-javascript\"],\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"uri\":\"/projects/lruihao/html-demo/#html-demos data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"文件预览 直接浏览器打开 src 目录下的 HTML 文件。 \",\"date\":\"2024-09-13\",\"objectID\":\"/projects/lruihao/html-demo/:2:0\",\"tags\":[\"html-css-javascript\"],\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"uri\":\"/projects/lruihao/html-demo/#文件预览\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"serve 预览 yarn yarn serve 然后访问 http://localhost:3000。 \",\"date\":\"2024-09-13\",\"objectID\":\"/projects/lruihao/html-demo/:3:0\",\"tags\":[\"html-css-javascript\"],\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"uri\":\"/projects/lruihao/html-demo/#serve-预览\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/fixit releaser: ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"FixIt Releaser 中文 | English 版本控制、变更日志和发布工具。 小心 该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。 \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:1:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#fixit-releaser data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"✨ 功能 📝 自动生成变更日志（Conventional Commits 规范） 🔖 更新 FixIt 内部版本号 * \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:2:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#-功能\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"📦 安装 包管理器 命令 pnpm pnpm add -D @hugo-fixit/fixit-releaser yarn yarn add -D @hugo-fixit/fixit-releaser npm npm i -D @hugo-fixit/fixit-releaser 在 package.json 中添加命令： \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:3:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#-安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🚀 用法 \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:4:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#-用法\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"变更日志 基于 Conventional Commits 规范，支持以下类型的提交： feat: 新功能 fix: 修复问题 perf: 性能优化 refactor: 代码重构 docs: 文档变更 test: 测试相关 style: 代码格式调整 chore: 构建过程或辅助工具的变动 build: 构建系统变动 ci: 持续集成配置变动 revert: 代码回滚 支持 scope：feat(api):, fix(ui): 等 支持 emoji：:sparkles: feat:, ✨ feat: 等 支持 Breaking Changes：feat!:, feat(scope)!:, BREAKING CHANGE: 等格式 自动忽略 WIP 提交：wip:, Wip: 等临时提交不会包含在变更日志中 例如： # 生成全部版本的变更日志 npx fixit-releaser changelog # 从指定版本开始生成变更日志 npx fixit-releaser changelog --starting-version v0.3.10 执行 fixit-releaser changelog -h 获取帮助或者参考 auto-changelog 文档。 \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:4:1\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#变更日志\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"版本 * 警告 已经集成到 FixIt monorepo，见 FixIt#629 FixIt 内部开发版本格式如下： v{major}.{minor}.{patch+1}-{timestamp}-{shortHash} 例如： # 更新 FixIt 正式版本 npx fixit-releaser version prod # 更新 FixIt 开发版本 npx fixit-releaser version dev \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:4:2\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#版本-\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"⚙️ 配置 fixit-releaser changelog 配置与 auto-changelog 兼容。 \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:5:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#-配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🙏 致谢 auto-changelog \",\"date\":\"2024-09-04\",\"objectID\":\"/projects/hugo-fixit/fixit-releaser/:6:0\",\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"uri\":\"/projects/hugo-fixit/fixit-releaser/#-致谢\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/hugo atom feed: Hugo theme component for ATOM feed custom Output Format.\",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo ATOM Feed 中文 | English Hugo 主题组件，用于自定义 ATOM feed 输出格式。 该组件为您的站点启用 ATOM feeds。 \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/:1:0\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/#hugo-atom-feed data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; + [[module.imports]] + path = \\u0026#34;github.com/hugo-fixit/hugo-atom-feed\\u0026#34; \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/:2:0\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 将 \\u0026ldquo;atom\\u0026rdquo; 添加到您希望创建 ATOM feeds 的所有页面类型中： [outputs] # \\u0026lt;baseURL\\u0026gt;/atom.xml home = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;] # \\u0026lt;baseURL\\u0026gt;/posts/atom.xml 等 section = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;] # \\u0026lt;baseURL\\u0026gt;/tags/foo/atom.xml 等 term = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;] 如果您的站点使用多个主题组件，则需要合并所有主题组件的 outputs 配置。例如，如果您的站点同时使用 FixIt 和 hugo-atom-feed 主题组件，则需要合并两个主题组件的 outputs 配置： [outputs] _merge = \\u0026#34;shallow\\u0026#34; home = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;, \\u0026#34;archives\\u0026#34;, \\u0026#34;offline\\u0026#34;, \\u0026#34;readme\\u0026#34;, \\u0026#34;baidu_urls\\u0026#34;, \\u0026#34;search\\u0026#34;] page = [\\u0026#34;html\\u0026#34;, \\u0026#34;markdown\\u0026#34;] section = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;] taxonomy = [\\u0026#34;html\\u0026#34;] term = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;atom\\u0026#34;] \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/:3:0\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参数 您可以在站点配置文件中设置以下参数： [params] # 全局 ATOM feed 配置 [params.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = 10 # 是否在 feed 中显示全文。 fullText = true # 分类页面配置（分类中的所有页面） [params.section] # 分类页面的 ATOM feed 配置 [params.section.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = -1 # 是否在 feed 中显示全文。 fullText = false # 标签列表（分类或标签）页面配置 [params.list] # 标签列表的 ATOM feed 配置 [params.list.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = -1 # 是否在 feed 中显示全文。 fullText = false \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/:3:1\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/#参数\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Front matter 您可以在内容文件的 front matter 中设置以下参数： --- title: \\u0026#34;Hello World\\u0026#34; date: 2024-08-24T16:06:33+08:00 hiddenFromFeed: true feed: # feed.limit 仅在分类或标签页面（_index.md）中有效。 limit: 10 fullText: true --- \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-atom-feed/:3:2\",\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-atom-feed/#front-matter\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/hugo json feed: Hugo theme component for JSON feed custom Output Format.\",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo JSON Feed 中文 | English Hugo 主题组件，用于自定义 JSON feed 输出格式。 该组件为您的站点启用 JSON feeds。 \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:1:0\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#hugo-json-feed data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"演示 主页 Feed 文章 Feed 列表 Feed \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:2:0\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#演示\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; + [[module.imports]] + path = \\u0026#34;github.com/hugo-fixit/hugo-json-feed\\u0026#34; \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:3:0\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 将 \\u0026ldquo;jsonfeed\\u0026rdquo; 添加到您希望创建 JSON feeds 的所有页面类型中： [outputs] # \\u0026lt;baseURL\\u0026gt;/feed.json home = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;] # \\u0026lt;baseURL\\u0026gt;/posts/feed.json 等 section = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;] # \\u0026lt;baseURL\\u0026gt;/tags/foo/feed.json 等 term = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;] 如果您的站点使用多个主题组件，则需要合并所有主题组件的 outputs 配置。例如，如果您的站点同时使用 FixIt 和 hugo-json-feed 主题组件，则需要合并两个主题组件的 outputs 配置： [outputs] _merge = \\u0026#34;shallow\\u0026#34; home = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;, \\u0026#34;archives\\u0026#34;, \\u0026#34;offline\\u0026#34;, \\u0026#34;readme\\u0026#34;, \\u0026#34;baidu_urls\\u0026#34;, \\u0026#34;search\\u0026#34;] page = [\\u0026#34;html\\u0026#34;, \\u0026#34;markdown\\u0026#34;] section = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;] taxonomy = [\\u0026#34;html\\u0026#34;] term = [\\u0026#34;html\\u0026#34;, \\u0026#34;rss\\u0026#34;, \\u0026#34;jsonfeed\\u0026#34;] \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:4:0\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参数 您可以在站点配置文件中设置以下参数： [params] # 全局 JSON feed 配置 [params.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = 10 # 是否在 feed 中显示全文。 fullText = true # 分类页面配置（分类中的所有页面） [params.section] # 分类页面的 JSON feed 配置 [params.section.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = -1 # 是否在 feed 中显示全文。 fullText = false # 标签列表（分类或标签）页面配置 [params.list] # 标签列表的 JSON feed 配置 [params.list.feed] # feed 中包含的文章数量。如果设置为 -1，则包含所有文章。 limit = -1 # 是否在 feed 中显示全文。 fullText = false \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:4:1\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#参数\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Front matter 您可以在内容文件的 front matter 中设置以下参数： --- title: \\u0026#34;Hello World\\u0026#34; date: 2024-08-24T16:06:33+08:00 hiddenFromFeed: true feed: # feed.limit 仅在分类或标签页面（_index.md）中有效。 limit: 10 fullText: true --- \",\"date\":\"2024-08-22\",\"objectID\":\"/projects/hugo-fixit/hugo-json-feed/:4:2\",\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"uri\":\"/projects/hugo-fixit/hugo-json-feed/#front-matter\"},{\"categories\":null,\"collections\":null,\"content\":\"本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！\",\"date\":\"2024-08-16\",\"objectID\":\"/reward/\",\"tags\":null,\"title\":\"赞赏记录\",\"uri\":\"/reward/\"},{\"categories\":null,\"collections\":null,\"content\":\" 如果我或者我的开源帮助到了你，请考虑给我买杯咖啡，谢谢！ 打赏时可以给我留言，以便于我记录一下，FixIt 相关的记录，不再重复记录在本页，传送门。 给博主买杯卡布奇诺～ 赞赏 支付宝 微信 本页面记录了自「菠菜眾長」博客创建以来，所有的打赏记录。感谢大家的支持！❤️ 总计 CN¥403.32 单笔最大 🏆 ✘喜洲 的 CN¥20.20 francs CN¥67.60 ✘喜洲 CN¥20.20 D*n CN¥11.11 Z 通过 微信 打赏了 CN¥20.00 备注：感谢作者的答疑解惑😋 2024-11-16 18:27:58王二愣子 通过 微信 打赏了 CN¥66.00 备注：感谢大佬的答疑解惑！ 2024-11-06 11:22:04deequoique 通过 微信 打赏了 CN¥10.00 备注：FixIt👍请佬喝杯蜜雪 2024-09-10 18:51:27SuLis 通过 微信 打赏了 CN¥10.00 备注：感谢作者对 FixIt 的付出！ 2024-08-03 19:25:50WindSun 通过 微信 打赏了 CN¥20.00 备注：歪瑞古德 2024-07-16 00:09:47贺雄彪 通过 微信 打赏了 CN¥5.21 备注：感谢李瑞豪同学🧑‍🎓 2024-04-03 17:10:15杨潇 通过 微信 打赏了 CN¥5.20 备注：辛苦了，宝贝 2024-04-03 17:02:03淮屿 通过 赞赏码 打赏了 CN¥10.00 备注：非常棒的主题👍 2024-02-05 15:42:42匿名 通过 赞赏码 打赏了 CN¥15.00 2024-01-13 21:39:37丰果 通过 FixIt 主题交流群 QQ 红包 打赏了 CN¥15.00 备注：请喝杯咖啡 2023-11-03 22:35:07🐟 通过 微信 打赏了 CN¥1.00 备注：感谢 FixIt 作者 2023-05-24 15:49:46建议去世 通过 微信 打赏了 CN¥20.00 备注：主题不错 2023-04-17 10:35:26乐语 通过 微信 打赏了 CN¥5.00 备注：很好用的主题，谢谢作者💪 2023-04-03 17:49:12D*n 通过 微信 打赏了 CN¥11.11 备注：加油 2023-03-17 14:57:41K*n 通过 微信 打赏了 CN¥50.00 2023-03-17 14:05:49✘✘波 通过 支付宝 打赏了 CN¥20.00 备注：感谢帮忙解决 FixIt 的问题 2023-02-13 10:01:58✘✘松 通过 支付宝 打赏了 CN¥2.00 2022-12-02 13:01:48✘喜洲 通过 QQ 打赏了 CN¥20.20 备注：来自 101****073 2020-01-17✘昌升 通过 微信 打赏了 CN¥2.00 备注：来自 231****047#qq.com 2019-03-19✘昌升 通过 支付宝 打赏了 CN¥10.00 备注：上课的时候听到了支付宝清脆的支付宝到账 10 元的声音！ 2018-12-04✘昌升 通过 支付宝 打赏了 CN¥18.00 2018-12-04francs 通过 QQ 打赏了 CN¥8.80 2018-11francs 通过 QQ 打赏了 CN¥8.80 备注：今天学校运动会没课，睡到 9 点多起来看到 QQ 收到一个红包，感谢支持！ 2018-10-26francs 通过 支付宝 打赏了 CN¥50.00 备注：大学生时期，第一次收到别人的支持，内心表示受宠若惊又非常开心。非常感谢老哥的支持！ 2018-09-28 -\\u0026nbsp;次阅读 \",\"date\":\"2024-08-16\",\"objectID\":\"/reward/:0:0\",\"tags\":null,\"title\":\"赞赏记录\",\"uri\":\"/reward/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/cmpt mdevtools: Mobile devtools component powered by vConsole and eruda.\",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda. \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:1:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#cmpt-mdevtools data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Requirements FixIt v0.4.0 or later. eruda vConsole \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:2:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#requirements\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules: [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; + [[module.imports]] + path = \\u0026#34;github.com/hugo-fixit/cmpt-mdevtools\\u0026#34; \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:3:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#install-component\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Configuration # Mobile Devtools config [params.mDevtools] enable = false # \\u0026#34;eruda\\u0026#34;, \\u0026#34;vConsole\\u0026#34; supported type = \\u0026#34;eruda\\u0026#34; \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:4:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#configuration\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Inject Partial In order to Inject the partial cmpt-mdevtools.html into the custom-assets through the custom block opened by the FixIt theme in the layouts/_partials/custom.html file, you need to fill in the following necessary configurations: [params] [params.customPartials] # ... other partials head = [ \\u0026#34;inject/cmpt-mdevtools.html\\u0026#34; ] # ... other partials \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:5:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#inject-partial\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"References Develop Theme Components | FixIt How to Develop a Hugo Theme Component | FixIt \",\"date\":\"2024-08-07\",\"objectID\":\"/projects/hugo-fixit/cmpt-mdevtools/:6:0\",\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"uri\":\"/projects/hugo-fixit/cmpt-mdevtools/#references\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。 \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:0:0\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"17 何为 CSS round 函数 这是一个比较新的 CSS 函数，在 CSS Values and Units Module Level 4 规范中提出，自 2024 年 5 月起，此功能适用于最新设备和浏览器版本。此功能可能无法在较旧的设备或浏览器中使用。 CSS round() 函数根据选定的舍入策略返回舍入数。 作者应使用自定义 CSS 属性（例如 --my-property）作为舍入值、间隔或两者兼而有之；如果这些函数具有已知值，使用 round() 函数显然不太必要。 \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:1:0\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#何为-css-round-函数\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"17.1 语法规则 round() 的完整语法规则还是比较复杂的。完整的介绍可以看 MDN - round()。 \\u0026lt;round()\\u0026gt; = round( \\u0026lt;rounding-strategy\\u0026gt;?, \\u0026lt;valueToRound\\u0026gt; , \\u0026lt;roundingInterval\\u0026gt; ) round(\\u0026lt;rounding-strategy\\u0026gt;, valueToRound, roundingInterval) 函数指定可选的舍入策略、要舍入的值（或数学表达式）和舍入间隔（或数学表达式）。根据舍入策略，valueToRound 四舍五入到 roundingInterval 的最接近整数倍。 \\u0026lt;rounding-strategy\\u0026gt;: 可选参数，表示舍入策略。这可能是以下值之一： up: 相当于 JavaScript Math.ceil() 方法，将 valueToRound 向上舍入到 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.ceil() 方法。 down: 将 valueToRound 向下舍入为 roundingInterval 最接近的整数倍。这相当于 JavaScript Math.floor() 方法。 nearest: 将 valueToRound 舍入为 roundingInterval 的最接近的整数倍，该倍数可以高于或低于该值。如果 valueToRound 是上方和下方舍入目标之间的一半，则会向上舍入。相当于 JavaScript Math.round()。 to-zero: 将 valueToRound 舍入为 roundingInterval 接近/接近零的最接近整数倍。这相当于 JavaScript Math.trunc() 方法。 \\u0026lt;valueToRound\\u0026gt;: 需要被四舍五入的值。必须是 \\u0026lt;number\\u0026gt;、\\u0026lt;dimension\\u0026gt; 或 \\u0026lt;percentage\\u0026gt;，或者解析为这些值之一的数学表达式。 \\u0026lt;roundingInterval\\u0026gt;: 舍入的间隔规则。这是一个 \\u0026lt;number\\u0026gt;、\\u0026lt;dimension\\u0026gt; 或 \\u0026lt;percentage\\u0026gt;，或者解析为这些值之一的数学表达式。 \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:1:1\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#语法规则\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"17.2 示例 width: round(var(--width), 50px); width: round(up, 101px, var(--interval)); width: round(down, var(--height), var(--interval)); margin: round(to-zero, -105px, 10px); MDN 官方写了一个完整的例子，可以看 Playground | MDN。 \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:1:2\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#示例\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"18 有什么用 上面讲了一大堆概念，那这玩意到底有什么用勒？ 好好好，那就再回想一下在此之前我们开发中遇到的痛点吧： 解决基于 transform 的模糊问题 使用 round() 模拟步骤缓动动画 解决百分比或者 rem 单位的四舍五入问题 前两点可以看 ChokCoco 的文章 现代 CSS 解决方案：数学函数 Round，里面有详细的讲解。 而我遇到的主要问题就是第三点，也就是由于浏览器渲染机制，导致有时百分比或者 rem 的单位实际计算值为小数的情况引起的系列问题。 造成这个现象的主要原因有： 像素单位和设备像素比（DPR） 浏览器的子像素渲染偏差 举个例子吧： .container { width: 100px; } .child { width: 33.33%; } 如果容器 .container 中有三个 .child 元素，那么每个 .child 的理论宽度应该是 33.33px。然而，由于不能将像素拆分，浏览器采取四舍五入方式处理，从而得到了 33px 或 34px 的结果。然而，为了保持布局的精确性，浏览器实际上以子像素的方式保存了这些值，并且在渲染时考虑了这部分差异。 但是！！！坑爹的是，不同浏览器的处理方式也会不同，还有就是子孙节点继承宽度时可能会有四舍五入导致子孙节点宽度大于父节点宽度的问题。 \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:2:0\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#有什么用\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"19 实际场景应用 在 FixIt 主题中，页面内容分为左、中、右三栏： .wrapper main.container { display: flex; align-items: flex-start; justify-content: center; padding-inline: 1rem; gap: 0.5rem; .page { width: 56%; #comments { width: 100%; // 评论区域 iframe iframe { width: 100%; } } } } 例如在 1440px 的屏幕上，中间内容宽度应该为 (1440 - 2 * 16) * 0.56 = 788.48px，实际渲染结果却是 788.48px。 问题来了，在内容的最后加上一个 giscus 评论区域，评论区域容器 iframe 和 iframe 里面的内容按理说应该都是 788.48px，但是实际渲染结果却是： 评论容器 iframe：788.48px iframe 内评论内容 HTML：789px 怎么说？无奈不，四舍五入，你舍掉其实这个场景我也就不纠结了，恰好它是符合五入的规则，向上 1px 取整了，导致的视觉上的影响就是 giscus 评论区域右侧的边框恰巧不见了。—T_T— 那怎么搞勒，治标不治本的做法就是，把评论区 #comments 的宽度缩小一些，但是我不想这样做。 我想既然问题是小数点造成的，避免产生小数点不就好了，然后就用到了 round() 函数： .page { width: round(56%, 2px); } 我希望页面中间永远是偶数，这样可以同时避免左、中、右三个部分出现小数，所以这里的 roundingInterval 设置为 2px，表示四舍五入到 2px 的整数倍，这样就避免了小数点的问题。 好了，问题就这样愉快地解决了……吗？ 好吧，并没有。—T_T— \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:3:0\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#实际场景应用\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"20 兼容性 开头说了这是一个比较新的 CSS 函数，所以兼容性肯定是个问题。尽管截至 2024 年 7 月 29 日，round() 函数覆盖了 67.63% 的浏览器，并且在各类浏览器中的最新几个版本都得到了完全支持（忽略 IE），但是在一些老版本的浏览器中还是不支持的，如下图。 那又怎么搞勒？要崩溃了，最讨厌兼容性了，也讨厌 Polyfill，但是毕竟 FixIt 主题不是我一个人在用，还是加一下 Polyfill 吧。 好家伙！没有 Polyfill 可用。真要崩溃了，前面都白折腾了？—T_T— 也不是没有办法，自己写一个，利用 @supports 写一些兼容性代码吧，不支持的就不用 round() 函数了。 上面简化后的例子兼容性可以这样写： // 顺便提一下，大写 ROUND 是为了避免和 Sass 的 round 函数冲突，CSS 中对函数关键词大小写不敏感。 .wrapper main.container { display: flex; align-items: flex-start; justify-content: center; padding-inline: 1rem; gap: 0.5rem; .page { width: ROUND(56%, 2px); #comments { width: 100%; // 评论区域 iframe iframe { width: 100%; } } } // 如果不支持 round() 函数，回退到设定固定值 56% @supports not (width: ROUND(56%, 2px)) { .page { width: 56%; } } /* ... */ } 好了，跌跌撞撞就这样了，等过两年 round() 函数覆盖率更高了我第一件事就是把上面的兼容性代码删掉。\\u0026#x1f602; \",\"date\":\"2024-07-29\",\"objectID\":\"/posts/css-round/:4:0\",\"tags\":[\"CSS\",\"round\"],\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"uri\":\"/posts/css-round/#兼容性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/shortcode rewards: A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode. \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:1:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#shortcode-rewards data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo FixIt Docs Lruihao\\u0026rsquo;s Blog \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:2:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Requirements Developed based on the FixIt Timeline plugin. FixIt v0.4.0 or later. \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:3:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#requirements\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules: [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; + [[module.imports]] + path = \\u0026#34;github.com/hugo-fixit/shortcode-rewards\\u0026#34; \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:4:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#install-component\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Configuration In order to Inject the partial shortcode-rewards.html into the custom-head through the custom block opened by the FixIt theme in the layouts/partials/custom.html file, you need to fill in the following necessary configurations: [params] [params.customPartials] # ... other partials head = [ \\u0026#34;inject/shortcode-rewards.html\\u0026#34; ] # ... other partials \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:5:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#configuration\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Usage First, create the reward-log.yml file and edit your data: cp themes/shortcode-sponsor-log/reward_log.yml.example data/reward_log.yml If your site is multilingual, you can create a reward_log.en.yml file for English and reward_log.zh-cn.yml for Chinese. Next, use the reward-log shortcode in any page: {{\\u0026lt; reward-log \\u0026gt;}} 注意 For compatibility with older versions, sponsor-log shortcode can also be used, and the corresponding data file is sponsor_log.yml. \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:6:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#usage\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Params \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:7:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#params\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Shortcode The reward-log shortcode has the following named parameters, and the positional parameters ordered from top to bottom: Parameter Description Type Optional values Default reverse whether the node is ascending or descending boolean - true placement position of timestamp string top / bottom bottom animation whether to enable animation boolean - false size node size string small / medium / large medium node node style string circle / dot circle width # container width string - - height # container height string - - class # container classname string - - Parameters marked with # only support named parameters. \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:7:1\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#shortcode\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Data The reward_log.yml file has the following fields: # The sponsor logs data format is as follows # currency: [CNY, USD, EUR, ...] https://gohugo.io/functions/lang/formatcurrency/ # origin: [alipay, bitcoin, paypal, wechatpay, ...] message: Thanks all! currency: CNY symbol: ¥ # The sponsor logs inherit the FixIt Timeline events logs: - date: \\u0026#34;2006-01-02 15:04:05\\u0026#34; sponsor: Cell money: 50 origin: alipay remark: \\u0026#34;Come on!\\u0026#34; \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:7:2\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#data\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"References Develop Theme Components | FixIt How to Develop a Hugo Theme Component | FixIt \",\"date\":\"2024-07-21\",\"objectID\":\"/projects/hugo-fixit/shortcode-rewards/:8:0\",\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-rewards/#references\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"使用 Git 命令统计在某段时间内项目中的代码量。 \",\"date\":\"2024-07-17\",\"objectID\":\"/posts/git-summary/:0:0\",\"tags\":[\"Git\"],\"title\":\"Git 统计代码量\",\"uri\":\"/posts/git-summary/#\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"13 统计 commit 数 git log --author=\\u0026#34;1024@lruihao.cn\\u0026#34; --since=\\u0026#34;2023-01-01\\u0026#34; --until=\\u0026#34;2023-12-31\\u0026#34; --oneline | wc -l \",\"date\":\"2024-07-17\",\"objectID\":\"/posts/git-summary/:1:0\",\"tags\":[\"Git\"],\"title\":\"Git 统计代码量\",\"uri\":\"/posts/git-summary/#统计-commit-数\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"14 统计行数 git log --author=\\u0026#34;1024@lruihao.cn\\u0026#34; --pretty=tformat: --since=\\u0026#34;2023-01-01\\u0026#34; --until=\\u0026#34;2023-12-31\\u0026#34; --numstat -- . \\u0026#34;:(exclude)build\\u0026#34; \\u0026#34;:(exclude)dist\\u0026#34; \\u0026#34;:(exclude)node_modules\\u0026#34; \\u0026#34;:(exclude)test\\u0026#34; \\u0026#34;:(exclude)static\\u0026#34; -numstat | awk \\u0026#39;{ add += $1; subs += $2; loc += $1 - $2 } END { printf \\u0026#34;added lines: %s, removed lines: %s, total lines: %s\\\\n\\u0026#34;, add, subs, loc }\\u0026#39; \",\"date\":\"2024-07-17\",\"objectID\":\"/posts/git-summary/:2:0\",\"tags\":[\"Git\"],\"title\":\"Git 统计代码量\",\"uri\":\"/posts/git-summary/#统计行数\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"15 整合成一个脚本 统计所有作者移除 --author=\\u0026quot;$author_email\\u0026quot; #!/bin/bash project_name=$(basename \\u0026#34;$(pwd)\\u0026#34;) author_email=\\u0026#34;1024@lruihao.cn\\u0026#34; # since_date=\\u0026#34;1 year ago\\u0026#34; since_date=\\u0026#34;2023-01-01\\u0026#34; until_date=\\u0026#34;2023-12-31\\u0026#34; # 统计 commit 数量 commit_count=$(git log --author=\\u0026#34;$author_email\\u0026#34; --since=\\u0026#34;$since_date\\u0026#34; --until=\\u0026#34;$until_date\\u0026#34; --oneline | wc -l) # 统计代码行数（排除目录 build、dist、node_modules、test、static） line_stats=$(git log --author=\\u0026#34;$author_email\\u0026#34; --pretty=tformat: --since=\\u0026#34;$since_date\\u0026#34; --until=\\u0026#34;$until_date\\u0026#34; --numstat -- . \\u0026#34;:(exclude)build\\u0026#34; \\u0026#34;:(exclude)dist\\u0026#34; \\u0026#34;:(exclude)node_modules\\u0026#34; \\u0026#34;:(exclude)test\\u0026#34; \\u0026#34;:(exclude)static\\u0026#34; | awk \\u0026#39;{ add += $1; subs += $2; } END { printf \\u0026#34;%s ++\\\\t%s --\\\\n\\u0026#34;, add, subs }\\u0026#39;) echo \\u0026#34;$project_name:\\\\t$commit_count commits\\\\t$line_stats\\u0026#34; 例如在 FixIt 项目中截至 2024-07-17 为止我的代码统计如下： FixIt: 1022 commits 82040 ++ 103942 -- \",\"date\":\"2024-07-17\",\"objectID\":\"/posts/git-summary/:3:0\",\"tags\":[\"Git\"],\"title\":\"Git 统计代码量\",\"uri\":\"/posts/git-summary/#整合成一个脚本\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。 \",\"date\":\"2024-07-15\",\"objectID\":\"/posts/drop-shadow/:0:0\",\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"uri\":\"/posts/drop-shadow/#\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"17 遇到的问题 之前给博客头部设置了一个 异形元素，当时给它父元素设置了如下 box-shadow： header { box-shadow: 0 0 1.5rem 0 rgba(0, 0, 0, 0.1); } 发现只有矩形部分有阴影，异形部分没有阴影。是因为 box-shadow 只能给盒子模型设置阴影，异形元素无法设置阴影的。 那怎么给异形元素设置阴影呢？ \",\"date\":\"2024-07-15\",\"objectID\":\"/posts/drop-shadow/:1:0\",\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"uri\":\"/posts/drop-shadow/#遇到的问题\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"18 解决方法 可以使用 filter 属性的 drop-shadow 函数来给异形元素设置阴影。 drop-shadow 绘制的投影实际上是输入图像的 alpha 蒙版的一个模糊的、偏移的版本，用特定的颜色绘制并合成在图像下面。 备注 这个函数有点类似于 box-shadow 属性。box-shadow 属性在元素的整个框后面创建一个矩形阴影，而 drop-shadow() 过滤器则是创建一个符合图像本身形状 (alpha 通道) 的阴影。 语法如下： drop-shadow(offset-x offset-y standard-deviation color) 可以看出，drop-shadow 比 box-shadow 少了一个阴影的扩展半径 spread-radius 参数（或者说尚未实现）。 回到我的问题，给异形元素设置阴影的代码如下： header { filter: drop-shadow(0 0 0.75rem rgba(0, 0, 0, 0.1)); } \",\"date\":\"2024-07-15\",\"objectID\":\"/posts/drop-shadow/:2:0\",\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"uri\":\"/posts/drop-shadow/#解决方法\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"19 浏览器支持 \",\"date\":\"2024-07-15\",\"objectID\":\"/posts/drop-shadow/:3:0\",\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"uri\":\"/posts/drop-shadow/#浏览器支持\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"20 参考链接 drop-shadow() - CSS: Cascading Style Sheets | MDN \",\"date\":\"2024-07-15\",\"objectID\":\"/posts/drop-shadow/:4:0\",\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"uri\":\"/posts/drop-shadow/#参考链接\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/shortcode docs bookmark: 🔖 Embed bookmark of FixIt Docs.\",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs. \",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/:1:0\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/#fixit-docs-bookmark data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Requirements FixIt v0.4.0 or later. \",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/:2:0\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/#requirements\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules: [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; + [[module.imports]] + path = \\u0026#34;github.com/hugo-fixit/shortcode-docs-bookmark\\u0026#34; \",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/:3:0\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/#install-component\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Configuration In order to Inject the partial fixit-docs-bookmark.html into the custom-head through the custom block opened by the FixIt theme in the layouts/_partials/custom.html file, you need to fill in the following necessary configurations: [params] [params.customPartials] # ... other partials head = [ \\u0026#34;inject/fixit-docs-bookmark.html\\u0026#34; ] # ... other partials \",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/:4:0\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/#configuration\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Use Shortcode Here is an example of usage: {{\\u0026lt; fixit-docs-bookmark \\u0026gt;}} \",\"date\":\"2024-07-14\",\"objectID\":\"/projects/hugo-fixit/shortcode-docs-bookmark/:5:0\",\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"uri\":\"/projects/hugo-fixit/shortcode-docs-bookmark/#use-shortcode\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。 \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:0:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"25 背景 最近在调整 FixIt 主题的官方文档，调整过程中总觉得首页空荡荡的少了些内容，然后就在脑海里构思了如本文封面图所示的效果，希望引导用户阅读文档。 需求分析： 整体布局：左右两栏，左侧为主题文档大纲，右侧为网站预览图 左侧需要显示时间轴，时间轴带有跑马灯动画效果（暗指文档阅读顺序） 右侧加载网站预览图时，需要有 loading 效果 整体边框需要渐变效果 第一点很简单，一个 flex 布局就能搞定了，这里不再展开。 接下来我们重点看看如何实现时间轴、背景图 loading 效果和渐变边框。 \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:1:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#背景\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"26 时间轴 先睹为快，效果如下： 从上到下依次点亮时间轴 我不希望时间轴的实现和其他 UI 框架一样拥有复杂的 DOM 结构，所以使用最简单的 ul 和 li 即可，关键代码如下： \\u0026lt;ul class=\\u0026#34;docs-outline\\u0026#34;\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;a href=\\u0026#34;{{ $page1.Permalink }}\\u0026#34;\\u0026gt;{{ $page1.LinkTitle }}\\u0026lt;/a\\u0026gt;\\u0026lt;/li\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;a href=\\u0026#34;{{ $page2.Permalink }}\\u0026#34;\\u0026gt;{{ $page2.LinkTitle }}\\u0026lt;/a\\u0026gt;\\u0026lt;/li\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;a href=\\u0026#34;{{ $page3.Permalink }}\\u0026#34;\\u0026gt;{{ $page3.LinkTitle }}\\u0026lt;/a\\u0026gt;\\u0026lt;/li\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;a href=\\u0026#34;{{ $page4.Permalink }}\\u0026#34;\\u0026gt;{{ $page4.LinkTitle }}\\u0026lt;/a\\u0026gt;\\u0026lt;/li\\u0026gt; \\u0026lt;/ul\\u0026gt; DOM 结构就这么简单，重点在于 CSS 的实现，实现思路如下： 先把 ul 设置 list-style: none，去掉默认的 li 样式 利用 ::before 和 ::after 伪元素实现时间轴的小圆点和连接线 动画效果：四个小圆点默认和连接线一样灰色，然后依次点亮，可以使用 animation-delay 属性实现 动画效果关键帧代码如下： li::before { border: var(--timeline-width) solid var(--timeline-color); animation-name: border-color-fade; animation-duration: 2s; animation-iteration-count: infinite; animation-delay: calc(var(--timeline-index) * 0.3s); @keyframes border-color-fade { 0% { border-color: var(--timeline-color); } 50% { border-color: var(--timeline-circle-color); } 100% { border-color: var(--timeline-color); } } } 通过 nth-child 选择器来设置 --timeline-index 来线性增加每个小圆点的动画延迟时间，从而在视觉上出现依次点亮的效果。 如果使用 SCSS 可以简化代码，如下： @for $i from 1 through 4 { li:nth-child(#{$i}) { --timeline-index: #{$i}; \\u0026amp;::before { content: \\u0026#39;#{$i}\\u0026#39;; } } } 如果需要在小圆点的内部显示序号，可以像设置 --timeline-index 一样依次设置 content。 然后在小圆点点亮动画过程中同时转变 color: transparent 到具体的颜色即可。 \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:2:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#时间轴\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"27 背景图 loading 效果 先加载 loading 图再加重预览图 如果只是想实现图片的 loading 效果其实很简单，之前在「浏览器 IMG 图片原生懒加载 Loading=\\u0026ldquo;lazy\\u0026rdquo;」中有介绍过，但是这次我是把图片当作背景图片使用的，那问题来了，不通过 JS 背景图片的 loading 效果怎么实现呢？ 还是可以利用 ::before 和 ::after 伪元素，一个伪元素用来显示 loading 图，另一个伪元素用来显示背景图片。 原理：利用两张图片加载的时间差，由于 loading 图片很小，所以加载很快，而背景图片加载较慢，然后默认不设置 z-index 的情况下，后面的元素会在上层，所以在背景图片加载完成前，loading 图片会一直显示。 关键代码如下： .docs-preview { \\u0026amp;::before, \\u0026amp;::after { content: \\u0026#39;\\u0026#39;; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-position: center; background-repeat: no-repeat; } \\u0026amp;::before { background-color: rgba(204, 204, 204, 0.1); background-image: url(/images/loading.min.svg); background-size: 60px; [data-theme=\\u0026#39;dark\\u0026#39;] \\u0026amp; { background-color: rgba(0, 0, 0, 0.1); } } \\u0026amp;::after { background-image: url(/images/apple-devices-preview.webp); background-size: 130%; } } \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:3:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#背景图-loading-效果\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"28 全尺寸带圆角渐变边框 最后实现一个全尺寸带圆角渐变边框效果，一句话概括为利用线性渐变 linear-gradient 分别设置 padding-box 和 border-box 的背景，然后 border 颜色设置为透明即可实现。 .docs-navigation { border-radius: 2.5px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(45deg, #42d392, #FF7359) border-box; border: 0.25rem solid transparent; } 值得一提的是，这里面利用到的一个核心概念是 background-clip 属性，详见 background-clip - CSS: Cascading Style Sheets | MDN： padding-box 表示背景延伸到内边距边界 border-box 表示背景延伸到边框边界。 另外，如果想实现渐变边框的动画效果，用 SCSS 可以这样做（虽然我不认为这是一个好的做法）： .docs-navigation { border-radius: 2.5px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(var(--gradient-angle), #42d392, #FF7359) border-box; border: 0.25rem solid transparent; transition: background-color 0.5s, border-color 0.5s; --gradient-angle: 45deg; animation: gradient-angle-change 10s infinite linear; // 分的越细，动画效果越平滑 @keyframes gradient-angle-change { @for $i from 0 through 100 { #{$i * 1%} { --gradient-angle: #{45 + $i * 4}deg; } } } } \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:4:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#全尺寸带圆角渐变边框\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"29 最后的效果 为了方便使用 FixIt 主题的用户在自己的笔记内插入 FixIt 官方文档的书签，我把这个效果封装成了一个独立的组件，你可以在 hugo-fixit/shortcode-docs-bookmark 中找到完整代码及食用方法。 安装篇入门篇内容管理进阶篇 \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:5:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#最后的效果\"},{\"categories\":[\"CSS\"],\"collections\":[\"CSS 奇技淫巧\",\"Modern CSS\"],\"content\":\"30 总结 很多时候都感觉写 CSS 就像在写诗，相同的效果 CSS 实现往往会比 JS 更加优雅。 \",\"date\":\"2024-07-14\",\"objectID\":\"/posts/fixit-docs-bookmark/:6:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"uri\":\"/posts/fixit-docs-bookmark/#总结\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:0:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"21 简介 从 Chrome 版本 2 开始，可以使用 ::-webkit-scrollbar-* 伪元素设置滚动条的样式。此方法在 Chrome 和 Safari 中都很有效，但 CSS 工作组从未标准化。 MDN - ::-webkit-scrollbar Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future. 实现标准化的是 scrollbar-width 和 scrollbar-color 属性，它们是 CSS Scrollbars Styling Module Level 1 的一部分。从 Chrome 121 开始，这些属性受支持。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:1:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#简介\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"22 滚动条入门指南 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:2:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#滚动条入门指南\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"22.1 滚动条剖析 滚动条至少由一个轨迹和一个滑块组成。滑道是拇指可以移动的区域。轨迹表示整个滚动距离。滑块表示可滚动区域内的当前位置。滚动时，它会在轨道内移动。拇指通常也是可拖动的。 不过，滚动条可以有多个部分，而不仅仅是滑块和滑道。例如，滚动条可以包含一个或多个用于递增或递减滚动偏移的按钮。滚动条的组成部分由底层操作系统决定。 左侧插图是一个最小的滚动条，其中只有轨迹和拇指。右边的按钮也有一些按钮。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:2:1\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#滚动条剖析\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"22.2 传统滚动条和重叠式滚动条 在介绍如何设置滚动条的样式之前，请务必先了解两种滚动条之间的区别。 操作系统 默认滚动条 Mac 叠加滚动条（Overlay scrollbars） Windows 经典滚动条（Classic scrollbars） 22.2.1 叠加滚动条 叠加层滚动条是在下方内容之上的浮动滚动条。默认情况下，这些按钮不会显示，只有当主动滚动时才会显示。为了让内容保持可见状态，它们通常采用半透明形式，但这由操作系统来决定。在与它们互动时，它们的大小也可能有所变化。 滚动条会叠加在内容上；滑块是部分透明的。 22.2.2 经典滚动条 传统滚动条是放置在专用_滚动条边线_中的滚动条。滚动条边线是内边框边缘与外内边距边缘之间的空间。这些滚动条通常是不透明的（不透明），并会占用相邻内容的某些空间。 滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:2:2\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#传统滚动条和重叠式滚动条\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"22.2 传统滚动条和重叠式滚动条 在介绍如何设置滚动条的样式之前，请务必先了解两种滚动条之间的区别。 操作系统 默认滚动条 Mac 叠加滚动条（Overlay scrollbars） Windows 经典滚动条（Classic scrollbars） 22.2.1 叠加滚动条 叠加层滚动条是在下方内容之上的浮动滚动条。默认情况下，这些按钮不会显示，只有当主动滚动时才会显示。为了让内容保持可见状态，它们通常采用半透明形式，但这由操作系统来决定。在与它们互动时，它们的大小也可能有所变化。 滚动条会叠加在内容上；滑块是部分透明的。 22.2.2 经典滚动条 传统滚动条是放置在专用_滚动条边线_中的滚动条。滚动条边线是内边框边缘与外内边距边缘之间的空间。这些滚动条通常是不透明的（不透明），并会占用相邻内容的某些空间。 滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:2:2\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#叠加滚动条\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"22.2 传统滚动条和重叠式滚动条 在介绍如何设置滚动条的样式之前，请务必先了解两种滚动条之间的区别。 操作系统 默认滚动条 Mac 叠加滚动条（Overlay scrollbars） Windows 经典滚动条（Classic scrollbars） 22.2.1 叠加滚动条 叠加层滚动条是在下方内容之上的浮动滚动条。默认情况下，这些按钮不会显示，只有当主动滚动时才会显示。为了让内容保持可见状态，它们通常采用半透明形式，但这由操作系统来决定。在与它们互动时，它们的大小也可能有所变化。 滚动条会叠加在内容上；滑块是部分透明的。 22.2.2 经典滚动条 传统滚动条是放置在专用_滚动条边线_中的滚动条。滚动条边线是内边框边缘与外内边距边缘之间的空间。这些滚动条通常是不透明的（不透明），并会占用相邻内容的某些空间。 滚动条位于内容旁边的专用区域中；内容的可用宽度会缩小（相对于使用叠加层滚动条时的可用宽度）。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:2:2\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#经典滚动条\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"23 scrollbar-color 和 scrollbar-width 属性 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:3:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#scrollbar-color-和-scrollbar-width-属性\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"23.1 scrollbar-color 设置滚动条颜色 参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-color 借助 scrollbar-color 属性，可以更改滚动条的配色方案。该属性接受两个 \\u0026lt;color\\u0026gt; 值。 第一个值用于确定滑块（thumb）的颜色 第二个值用于确定要用于轨道（track）的颜色 如需使用操作系统提供的默认呈现方式，请使用 auto 作为其值。 /* 关键字值 */ scrollbar-color: auto; /* \\u0026lt;color\\u0026gt; 值 */ scrollbar-color: rebeccapurple green; /* 两个有效的颜色。 第一个应用于滚动条的滑块，第二个应用于轨道。 */ /* 全局值 */ scrollbar-color: inherit; scrollbar-color: initial; scrollbar-color: revert; scrollbar-color: revert-layer; scrollbar-color: unset; 默认情况下，使用叠加滚动条时，轨迹的颜色不起作用。不过，将鼠标悬停在滚动条上时，系统会显示航迹。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:3:1\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#scrollbar-color-设置滚动条颜色\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"23.2 scrollbar-width 设置滚动条粗细 参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/scrollbar-width 借助 scrollbar-width 属性，可以选择较窄的滚动条，甚至可以完全隐藏滚动条而不影响可滚动性。 接受的值包括 auto、thin 和 none。 auto：平台提供的默认滚动条宽度。 thin：平台提供的滚动条的细变体，或比默认平台滚动条更细的自定义滚动条。 none：有效隐藏滚动条。不过，此元素仍然可滚动。 无法使用 \\u0026lt;length\\u0026gt;（例如 16px）作为 scrollbar-width 的值。 /* 关键字值 */ scrollbar-width: auto; scrollbar-width: thin; scrollbar-width: none; /* 全局值 */ scrollbar-width: inherit; scrollbar-width: initial; scrollbar-width: revert; scrollbar-width: revert-layer; scrollbar-width: unset; 使用叠加滚动条时，仅当你主动滚动可滚动区域时，才会显示滚动条滑块。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:3:2\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#scrollbar-width-设置滚动条粗细\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"24 支持旧版浏览器 为了满足不支持 scrollbar-color 和 scrollbar-width 的浏览器版本，可以同时使用新的 scrollbar-* 和 ::-webkit-scrollbar-* 属性。 /* Modern browsers with `scrollbar-*` support (high priority) */ @supports (scrollbar-width: auto) { * { scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);; scrollbar-width: var(--scrollbar-width); } } /* Legacy browsers with `::-webkit-scrollbar-*` support */ ::-webkit-scrollbar { height: var(--scrollbar-width-legacy); width: var(--scrollbar-width-legacy); overflow: visible; } ::-webkit-scrollbar-button { height: 0; width: 0; } ::-webkit-scrollbar-corner { background-color: var(--scrollbar-track-color); } ::-webkit-scrollbar-thumb { background-color: var(--scrollbar-thumb-color); } ::-webkit-scrollbar-thumb:hover { background-color: var(--scrollbar-thumb-hover-color); } ::-webkit-scrollbar-track { background-color: var(--scrollbar-track-color); } ::-webkit-scrollbar-thumb, ::-webkit-scrollbar-track { background-clip: padding-box; border: 3px solid transparent; border-radius: 100px; } 请注意，当设置 ::-webkit-scrollbar 的 width 或 height 时，系统始终会显示叠加层滚动条，实际上会变为经典滚动条。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:4:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#支持旧版浏览器\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"25 总结一下 可以看到，其实就目前 scrollbar-width 而言，其能力还是属于比较鸡肋的。相对正常的样式，仅仅多了一种瘦版样式选择以及提供了无滚动条模式。 当然，整个 scrollbar-color 和 scrollbar-width 相较于非标准的 ::-webkit-scrollbar 规范已经是非常大的一步跨越。只是其功能的丰富性和全面性还需要等待。 \",\"date\":\"2024-06-28\",\"objectID\":\"/posts/scrollbar-styling/:5:0\",\"tags\":[\"CSS\",\"scrollbar-styling\"],\"title\":\"标准滚动条控制规范\",\"uri\":\"/posts/scrollbar-styling/#总结一下\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/shortcode caniuse: A Hugo theme component with caniuse shortcode.\",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。 \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:1:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#hugo-shortcode-for-caniuse data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"依赖 FixIt 主题 v0.4.0 及以上版本。 \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:2:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#依赖\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装组件 和 安装主题 一样，安装方式有多种，选择其一即可，例如通过 Hugo Modules 安装： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/shortcode-caniuse\\u0026#34; \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:3:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#安装组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 为了通过 FixIt 主题开放的 自定义块 将 shortcode-caniuse.html 注入到 custom-assets 中，你需要填写以下必要配置： [params] [params.customPartials] # ... other partials assets = [ \\u0026#34;inject/shortcode-caniuse.html\\u0026#34; ] # ... other partials 组件配置： [params] # CanIUse Embed Element Configuration # See: https://github.com/Lruihao/caniuse-embed-element [params.caniuse_embed] # whether to show the feature support baseline, default is false baseline = false # show the past N versions that match the feature, range is 0 - 5, default is 2 past = 2 # show the future N versions that match the feature, range is 0 - 3, default is 1 future = 1 # the origin of the caniuse embed data source, default is \\u0026#34;https://caniuse.lruihao.cn\\u0026#34; origin = \\u0026#34;https://caniuse.lruihao.cn\\u0026#34; # loading strategy for the iframe (eager or lazy), default is lazy loading = \\u0026#34;lazy\\u0026#34; # only production environment effective # e.g. https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js cdn = \\u0026#34;\\u0026#34; \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:4:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 Shortcode caniuse shortcode 有以下命名参数： feature [必需]（第一个位置参数）特性名称 baseline [可选]（第二个位置参数）是否显示功能支持基线，默认为 false past [可选]（第三个位置参数）显示过去 N 个版本，范围是 0 - 5，默认为 2 future [可选]（第四个位置参数）显示未来 N 个版本，范围是 0 - 3，默认为 1 origin [可选]（第五个位置参数）caniuse embed 数据源，例如：https://caniuse-embed-x.vercel.app loading [可选]（第六个位置参数）iframe 的加载策略（eager 或 lazy），默认为 lazy 点击 caniuse.com 网站上功能左边 # 号，URL 中的 pathname 即为 feature 参数。 这是一个用法示例： {{\\u0026lt; caniuse feature=\\u0026#34;flexbox\\u0026#34; \\u0026gt;}} 或者 {{\\u0026lt; caniuse \\u0026#34;flexbox\\u0026#34; \\u0026gt;}} \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:5:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#使用-shortcode\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参考 The CanIUse Embed — Add support tables to your site Can I use… Support tables for HTML5, CSS3, etc \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:6:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#参考\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"致谢 Lruihao/caniuse-embed-element pengzhanbo/caniuse-embed mdn-browser-compat-data Fyrd/caniuse \",\"date\":\"2024-06-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-caniuse/:7:0\",\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"A Hugo theme component with caniuse shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-caniuse/#致谢\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。 \",\"date\":\"2024-06-13\",\"objectID\":\"/posts/aside-toggle-drag/:0:0\",\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"uri\":\"/posts/aside-toggle-drag/#\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"1 效果演示 vue-el-demo/#/aside-toggle-drag \",\"date\":\"2024-06-13\",\"objectID\":\"/posts/aside-toggle-drag/:1:0\",\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"uri\":\"/posts/aside-toggle-drag/#效果演示\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"2 实现代码 @/components/AsideToggler \",\"date\":\"2024-06-13\",\"objectID\":\"/posts/aside-toggle-drag/:2:0\",\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"uri\":\"/posts/aside-toggle-drag/#实现代码\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"3 实现思路 怎么说呢，写这篇文章就是想记录一下思路，本来想画个图说明一下的，但是懒得画了，随便说几句吧。 实现边界拖拽调整窗口大小功能，主要是通过鼠标按下、移动、松开事件来实现的，主要思路如下： 在 mousedown 事件中，我们记录下鼠标的初始位置和元素的初始宽度。 在 mousemove 事件中，我们根据鼠标的新位置计算出新的宽度，并使用 clamp() 函数将其限制在最小宽度和最大宽度之间。 同时，我们还需要根据鼠标位置的变化，动态更新鼠标样式，以提示用户当前的拖拽状态。 在 mouseup 事件中，我们清除之前设置的事件监听器，并恢复鼠标样式。 实现过程中，有两个比较巧妙的点： 计算宽度的时候，没有使用 JS 计算，而是直接使用了 CSS 的 clamp() 函数，一目了然。 为了鼠标移动到可拖拽边界时显示一条蓝色的线，但是又不想改变元素的宽度，所以 resize-bar 元素的使用了 position: absolute，并且设置了 translateX(-50%) 来让其居中显示。当鼠标移入时，通过线性渐变的背景色巧妙地来实现蓝色线条的效果。 正是因为第二点的实现方式，使得在边界线左右两侧都能拖拽，这一点是优于 VSCode 的，因为 VSCode 只能在左侧拖拽 😂。 \",\"date\":\"2024-06-13\",\"objectID\":\"/posts/aside-toggle-drag/:3:0\",\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"uri\":\"/posts/aside-toggle-drag/#实现思路\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"本文节选自 奔波儿灞取经 的《程序员的必修课》，文中的“我”指原作者奔波儿灞取经。 设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。 对于大多数开发者来说，代码都是需要维护的，而不是写一遍就放起来不管了。既然需要维护，就要不断地读读改改，那就不是一次性的，那么怎么让他“读读改改”起来方便些呢？嗯，设计模式！ 设计模式切记不要死记硬背，不要生搬硬套，否则不如不学。而且不要一上来就说：要用 xxx 模式！需求还没出，你猴急个锤子，难不成是你刚学会这个模式，想拿来练练手，就想把它硬塞到需求里去吗？ 那么，如果需求已经出了呢？也别急，先想想，想好了怎么写，选择哪种设计模式；如果没有合适的，套不进去，那就别套了，只要方便维护，就是好的设计，不一定非要去套现有的设计模式。 当然，要想正确地使用设计模式，还是先得透彻地了解了它们。因此，接下来我们就先来了解下设计模式的“祖宗”：六大设计原则。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:0:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33 单一职责原则（SRP） 单一职责原则（Single Responsibility Principle，简称 SRP）：一个类只干一件事。 可以看到，单一职责的核心就是：只做一件事。不过，关键点就是这个“事”的范围不好定义。 比如，写一个音乐播放器，一个类负责播放，一个类负责停止，这也满足单一职责。但是，这个职责太小了。那么，如果把播放、停止、甚至下载歌曲，都塞进一个类里面呢，那就太大了。所以，职责的范围很重要，只要确定好了这个范围，那这个原则就已经实现了 90%。 那么，这个范围怎么确定呢？我们可以这么理解：一些相关的、关联性比较强的，就把它们当作同一种职责，放到一个单独的类（文件）里。 那么，怎么确定是否相关呢？看需求！这个只能看需求，没有别的方法。如果需求没有明确，那么我们就要联系现实来决定，毕竟程序的本质就是模拟现实。 比如，我在 2015 年实习的时候，IBM 公司有个考勤系统，需要添加一个指纹打卡功能。需求是这样的：部门主管以下的员工可以用指纹来打卡。 那么，这个“打卡功能”是属于员工的，是属于打卡器的？换句话说，这个打卡的函数，是写在员工类里面呢，还是写在打卡器类里面呢？需求没说啊。 那么，我们就联系现实来决定。 在现实生活中，应该是一个打卡器放在门口，员工向打卡器录入指纹，来进行打卡，说白了就是：“员工使用打卡器来打卡”，也就是：“员工使用打卡器”“打卡器打卡”，所以，打卡功能是打卡器的，员工只是使用它的这个功能。所以，这个函数应该定义在打卡器里面，员工调用打卡器的这个函数来进行打卡。 如果有人不爽，非要定义在员工类里面呢？你可以这么干。不过，后来需求改变成：非员工，比如保洁人员，也需要每天打卡签到。这时候，那位非常有个性有特色的人，估计脑瓜子嗡嗡的了吧。 单一职责不仅可以用在类（文件）里面，也可以用在函数里面。 比如，现在需要写一个校验函数，校验用户的性别和年龄，必须是 18 岁及以上的男性才有资格，很简单的我们可以这么写： public static boolean checkSexAndAge(boolean isMan, int age){ return isMan \\u0026amp;\\u0026amp; age \\u0026gt;= 18; } 使用： private void login(){ if(checkSexAndAge(false, 17)) { tips(\\u0026#34;不是 18 岁以上的男性\\u0026#34;) return; } } 这里有人有意见了，说这样写不太好，因为每个校验的地方都要自己弹出提示，这样就是很多重复的代码，所以提示这个逻辑应该放在checkSexAndAge()这个函数里面去，也就是下面这样： public static boolean checkSexAndAge(boolean isMan, int age){ if(isMan \\u0026amp;\\u0026amp; age \\u0026gt;= 18) return true; tips(\\u0026#34;不是 18 岁以上的男性\\u0026#34;); return false; } 这样简直美滋滋，任何时候只要直接调checkSexAndAge()就行，判断了还自带提示。这在目前当然是完美的，虽然方法名不太合适。 如果有一天，我们的需求变成了：年龄不满足就开启未成年人保护模式，不需要弹出提示。我们直接删除tips()这个调用吗？这样不太好，如果别的地方也调用了这个方法，并且需要提示，就完了。所以我们应该有两个方法：方法 A 只检测，方法 B 使用 A 的检测结果并弹出提示。代码如下所示： // 判断加提示 public static boolean checkAndTips(boolean isMan, int age) { if(!checkSexAndAge(isMan, age)) { tips(\\u0026#34;不是 18 岁以上的男性\\u0026#34;); return false; } return true; } // 新方法，只做逻辑判断 public static boolean checkSexAndAge(boolean isMan, int age){ return isMan \\u0026amp;\\u0026amp; age \\u0026gt;= 18; } 这里我们只抽离了一个方法，但是却反映出了单一职责的好处：职责越单一，因为修改而引起的问题就越少。换句话说就是：需求的粒度跟单一职责的优势成正比，需求越详细，越能看出单一职责的好处。所以我们要尽量避免大方法、大类、大模块，因为一个类越大，涉及的东西就越多，用到它的地方就越多，那么这个类就不能轻易修改，因为一旦修改，涉及的地方就越多，就越危险，所以我们一定要尽量避免。其实 MVC 就是一个宏观的、大的单一职责思想。 单一职责不仅适用于类和文件，还适用于函数、模块等，这是一种思想，一定要掌握。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:1:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#单一职责原则srp\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"34 里氏置换原则（LSP） 里氏置换原则（Liskov Substitution Principle，简称 LSP）：凡是使用基类的地方都必须能透明地使用子类。 用人话说就是：用子类替换父类不会改变原有逻辑。众所周知，面向对象有三大基本原则：封装、继承和多态。子类本来就继承了父类，用到父类的地方替换成子类肯定没问题啊，这个原则不是废话吗，不一定！因为子类有自己的特色，也就是多态，如果这个特色太特色的话，就不适合了。 比如，“我用电脑工作和游戏”，改成“我用苹果电脑工作，用联想电脑打游戏”，没问题！ 但是如果“我开车上班，坐车下班”，改成“我开玩具车上班，坐遥控车下班”，这个可能吗？ 但是，玩具车和遥控车也是“车”的子类啊，它俩也是车啊。 那么这个问题出在哪里呢？明明所有的定义都是 OK 的。这是因为子类太特色了。 我们定义的车，其出发点是“能跑”，也就是说，只要能跑的都是“车”，都是它的子类，所以，玩具车和遥控车都能跑，也都是车的子类。但是，车都能载人吗？猛一看，都能！仔细一想，玩具车不能！所以，我们上述 Demo 中用到的是车的“载人”功能，而不是车的“能跑”功能，所以，玩具车就不合适了。 那么，怎么改呢？有如下两种方法： 提取一个可载人的接口 interface IManned，明确表示哪些车可以载人； 提取一个二级父类 class MannedCar，表示该类车可以载人。 公共点就是：把“可载人”这个点明确出来。 所以，里氏置换更简洁的说法就是：子类可以有自己的特色，但是不能太反常，如果子类的特色跟父类差太多，那么就应该细化父类或者剥离接口。 可以看到，里氏置换原则就是对继承的校验，不恰当的继承关系就不满足里氏置换原则，所以，如果我们无法确定某两个类之间是否应该用继承关系时，就可以套用里氏置换原则来校验下。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:2:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#里氏置换原则lsp\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"35 依赖倒置原则（DIP） 依赖倒置原则（Dipendence Inversion Principle，简称 DIP）：面向接口编程或面向抽象编程。 依赖倒置的官方定义：高层不应该依赖底层，两者都应该依赖抽象；抽象不应该依赖细节，细节应该依赖抽象。其实狭义的说就是：面向接口编程，广义的说就是：面向抽象编程。也就是说，我们在使用类的时候，优先考虑使用抽象类或接口。具体一点就是：成员变量、函数参数和返回值都尽量定义成接口。 为什么要这么干呢？这么干有什么好处呢？ 我们知道，接口都是抽象的，抽象的就是不确定的，不确定的就是可变的。而我们的大部分代码都是“非一次性的”，也都是需要改变的，所以，接口正合适。 换句话说，接口就是具有某种功能的某种东西，是什么我不管，只要具有这种功能就行，而我们需要的，也就是具有这种功能的东西。 比如，我需要给手机充个电，我需要的是一个“能充电的东西”，而你却对外说：“我需要个充电宝！”如果有人没有充电宝，只有电源呢，他就不认你了。在这里，你把我需要的东西具象化了，也就是把范围缩小了，范围越小越精确，就越不容易改变，这明显是不对的。 再比如，现在我要提供一个音乐播放器，我直接使用移动端的 MediaPlayer，很容易就写出了如下代码： class MediaPlayer { public void play(String path) {} public void stop(){} public void pause(){} public void resume(){} } 三分钟就写完了，使用方直接调用： class User { private MediaPlayer mediaPlayer; public void play(){ mediaplayer.play(\\u0026#34;xxx\\u0026#34;); } } 完事之后某一天，主管又问：“咱们的播放器不好用，能用那个开源的吗？” 当然可以，于是就去改，但是发现，要改的地方太多了，我不但要改MedidPlayer这个类，甚至调用我播放器的人也需要改他的User类，我在别人眼里的段位又低了！ 这时候就应该反思了，其实User这个类，不在乎你的播放器是怎么写的，它只关心能不能播放、停止、暂停、恢复，说白了，它要的是一个具有这种功能的某种东西，而不是具有这种功能的这种东西。 好，上接口！ interface IPlayer { void play(String path); void stop(); void pause(); void resume(); } User使用： class User { private IPlayer player; public void play(){ player.play(\\u0026#34;xxx\\u0026#34;); } } 此时User只依赖于IPlayer，而不依赖具体的实现。不管你是啥，只要具有播放器的功能就行，后面不管你怎么改变IPlayer的实现，User都不需要改变。 所以，我们可以看到面向接口的好处：低耦合，易拓展。因为接口是抽象的，依赖接口就是依赖抽象，不依赖细节，所以实现的细节怎么改都对我无影响，所以耦合就低；又因为接口是顶层的，就更容易拓展下层的细节实现。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:3:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#依赖倒置原则dip\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"36 接口隔离原则（ISP） 接口隔离原则（Interface Segregation Principle，简称 ISP）：接口尽量小，尽量单一，说白了就是接口粒度要细。 接口隔离要求接口的功能要单一，这听起来怎么就是单一职责原则呢，它们有区别吗？ 有！ 单一职责原则针对的是“职责”，说白了就是功能块，一个职责可能有多个功能；接口隔离原则针对的是“功能”，也就是一个接口只负责一个“功能”，比如，老师的职责是讲课和改作业，如果用单一职责原则就是一个接口里面包含了讲课和改作业这两个方法；如果用接口隔离原则就是两个接口，一个讲课的接口和一个改作业的接口。换句话说就是：接口隔离原则是单一职责的单一职责原则。 举个例子，还是音乐播放器，我们定义了一个接口： interface IPlayer { //开始 void play(String url); //停止 void stop(); //暂停 void pause(); //复原 void resume(); //获取歌曲时长 String getSongTime(); } 这正是单一职责原则，因为这个接口只定义了音乐播放相关的东西，但是却不满足接口隔离原则，因为一个接口干了多件事，假如我们现在有个歌曲展示器SongDisplayer，只需要展示歌曲的时长，也就是只需要getSongTime()这个函数，我们让它直接实现IPlayer接口吗？肯定不行！因为里面的其他函数是不需要的，也不应该有的。这就要用到接口隔离原则了，我们直接将IPlayer接口再进行拆分，如下： //音乐播放器就仅限于对播放的控制 interface IPlayer { //开始 void play(String path); //停止 void stop(); //暂停 void pause(); //复原 void resume(); ... } //歌曲展示器就仅限于对歌曲信息的展示 interface ISongDisplayer { //获取歌曲时长 String getSongTime(); //获取歌曲名字 String getSongName(); //其他 ... } 这样拆分后，我们的播放器就同时实现上面两个接口，而歌曲展示器只需要实现ISongDisplayer即可。 但是，我们根本不知道将来会出什么样的需求，怎么能提前预测并做好接口隔离呢？ 不需要提前做！因为接口隔离更多时候是个后置操作，说白了，更多时候是在问题发生的时候再去拆接口，所以是个后置操作，就像我们上面的修改，也没费多大劲，顶多就是多写一个接口，复制一部分代码，修改几个实现关系而已，根本没动业务上的代码，所以不必纠结，大多时候我们保证单一职责即可。 总之一句话：接口要尽量小，尽量单一。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:4:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#接口隔离原则isp\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"37 最少知识原则（LKP） 最少知识原则（Least Knowledge Principle，简称 LKP），也叫迪米特法则（LOD）：一个对象应该对其他对象有最少的了解，说白了就是，只关联自己需要的。 就像语文老师，只关心语文成绩即可，非要关心数学，怪不得头发都掉光了。 废话不说，我们来看个 Demo，又是那个音乐播放器，原本应该是这样的： interface IPlayer { void play(String path) .... } class User { .... void play(){ player.play(song.path); } .... } class Song { public String path; public String name; .... } 可以看到，播放时，只需要一个path即可。但是有人聪明，我直接把Song给他传过去不行吗？这样后面万一需要Song里面的其他变量，比如name啥的，我也不用改函数了，好有道理啊！ 突然有一天，要求可以播放用户通过聊天发送过来的歌曲，这个歌曲没有名字，点击就下载到本地，只有一个路径了，这个时候你怎么办呢？你当然可以用这个路径去创建一个Song然后丢进去，但是这样绕了一圈不就增加了复杂度吗？再万一将来某天要修改Song这个类呢，你的播放器也跟着修改了。 其实，播放器需要的只是一个播放的路径，至于其他的，它根本不关心。如果真的需要，你再提供，但也只需要提供它需要的，不要有任何附加内容。否则，一旦那些附加内容变化了，也间接导致播放器自身的变化，这是不应该的。 我们应该只关联自己直接用到的，而不关联那些不需要的，如此一来，那些发生在我们关联范围外的事，就不会引起我们的任何改变，这样就大大提升了代码的健壮性。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:5:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#最少知识原则lkp\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"38 开放闭合原则（OCP） 开放闭合原则（Open Close Principle，简称 OCP）：一个类应该对扩展开放，对修改关闭。换句话说就是：应该多扩展代码，少修改代码。 开闭原则是最理想的原则，是所有设计模式的最终目标，基本不可能实现。它要求我们的任何改动都不修改老代码，而只添加新代码，这样就不会对老逻辑有任何影响，从而使得代码更加安全。 有人说，我们的代码不是一次性的，肯定是要修改的，怎么可能不修改呢？没错，肯定是需要修改的，但是合理运用开闭原则可以做到少修改，改得越少风险越小。 举个例子，比如我在面试百度的时候，要手写一个计算器，只需要支持简单的加减法就行，如下： public class Calculator { public static int calculate(int left, int right, String option) { //加法 if(\\u0026#34;+\\u0026#34;.equals(option)) return left + right; //减法 if(\\u0026#34;-\\u0026#34;.equals(option)) return left - right; throw new IllegalArgumentException(\\u0026#34;不支持的运算\\u0026#34;); } } 代码简单粗暴，直接使用if判断就完事。但是，如果将来要支持其他运算呢？嗯，继续添加if分支？可以，但是不太好，谁能保证你下次添加别的运算符的时候，不会手残改了别的运算呢？那么，我们能不能将新的运算不放在这个类里面呢？可以！ 我们可以将每个运算定义成一个单独的类型，后面新增其他运算，只需要新加一个类就可以了。我们知道，基本的数学运算都是需要两个操作数和一个运算符的，我们可以定义一个公有的父类，来保存操作数和运算符。 定义公共父类： public abstract Calculator { // 左操作数 protected String leftOpt; // 右操作数 protected String rightOpt; // 操作符 protected String operator; // 设置左操作数 public void setLeftOpt(String leftOpt) { this.leftOpt = leftOpt; } // 设置右操作数 public void setRightOpt(String rightOpt) { this.rightOpt = rightOpt; } // 计算，提供一个模板函数，供子类实现 protected abstract int calculate(); // 对外公开的获取结果的 Api public String getResult(){ // 计算结果 String result = calculate(); // 清空操作数 clear(); // 返回结果 retrun result; } //清空操作数 public void clear(){ leftOpt = null; rightOpt = null; } } 加法器： public class PlusCalculator extends Calculator { public static String OPERATOR = \\u0026#34;+\\u0026#34;; public PlusCalculator() { super(); this.operator = OPERATOR; } // 加法 @Override public String calculate() { return String.valueOf(Integer.parseInt(leftOpt) + Integer.parseInt(rightOpt)); } } 减法器： public class SubCalculator extends Calculator { public static String OPERATOR = \\u0026#34;-\\u0026#34;; public SubCalculator() { super(); this.operator = OPERATOR; } // 减法 @Override public String calculate() { return String.valueOf(Integer.parseInt(leftOpt) - Integer.parseInt(rightOpt)); } } 这里我们为不同的运算符提供了不同的实现类，每个类只负责自己的计算逻辑，如果将来有其他新运算加入，我们直接再添加一个新的类即可，完全不需要修改其他类的代码。 而且我们可以看到，开闭原则中用到了单一职责（每个类只做自己的运算），还用到了最少知识（每个类只关心自己的操作数和运算符），其实就是一句话：越单纯，越干净，越好！ 因为这样自己的责任就越少，就越不容易被牵连，也就越稳定，越安全。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:6:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#开放闭合原则ocp\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"39 设计模式 该小节非原文内容，仅为个人补充。 在掘金上有一个不错的专栏「手撕设计模式」，里面详细介绍了 23 种设计模式中的好几种，可以作为进一步学习的参考。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:7:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#设计模式\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"40 总结 本节我们从宏观层面讲解了六大设计原则，这是 23 种设计模式的祖宗，或者说：设计模式就是这六大设计原则的具体实现，六大设计原则就是设计模式的抽象。 对于设计模式，我认为正确的学习顺序是： 学习设计原则，这是对设计思想的宏观认识。 学习设计模式，这是对设计思想的具体认识。 再学习设计原则，这是对设计思想的自我抽象。 这就像我们看书的时候，先看目录，对整本书有个宏观的认识；然后仔细看每一章节，对每个模块进行具体了解；最后，也是最难的一点，就是：用自己的语言对整本书进行整体概括，然后尝试列出目录，这是对整本书的自我升华，或者叫自我抽象，这样，我们才能读到书的精髓。学习设计模式亦是如此，我们切记不要死记硬背，不要生搬硬套，不刻意设计的设计才是最好的设计。 \",\"date\":\"2024-06-09\",\"objectID\":\"/posts/design-principles/:8:0\",\"tags\":[\"Design Patterns\",\"Java\"],\"title\":\"架构之基：从根儿上了解设计原则\",\"uri\":\"/posts/design-principles/#总结\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。 \",\"date\":\"2024-06-06\",\"objectID\":\"/posts/svg-dark-light/:0:0\",\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"uri\":\"/posts/svg-dark-light/#\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"9 方案一：通过模板生成两张图片 这是最容易想到的，也是我最初的想法，通过两张图片来实现暗黑模式和明亮模式的切换。 假设我们已经有了两张图片，drop.min.svg 和 drop-dark.min.svg，那么我们可以通过 CSS 来实现切换： #header-desktop { \\u0026amp;::after { background-image: url(/images/drop.min.svg); } [data-theme=\\u0026#39;dark\\u0026#39;] \\u0026amp; { background-image: url(/images/drop-dark.min.svg); } } 再创建一个模板文件 drop.template.svg： {{- $color := cond .isDark \\u0026#34;#252627\\u0026#34; \\u0026#34;#e6e5f8\\u0026#34; -}} \\u0026lt;svg viewBox=\\u0026#34;0 0 778.95 302.64\\u0026#34; xmlns=\\u0026#34;http://www.w3.org/2000/svg\\u0026#34;\\u0026gt; \\u0026lt;path d=\\u0026#34;m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z\\u0026#34; transform=\\u0026#34;translate(-27.76 -14.56)\\u0026#34; /\\u0026gt; \\u0026lt;/svg\\u0026gt; 然后，我们可以通过 Hugo 的模板引擎来生成两张图片： {{- $template := resources.Get \\u0026#34;images/drop.template.svg\\u0026#34; -}} {{- $resource := ($template | resources.ExecuteAsTemplate \\u0026#34;images/drop.svg\\u0026#34; (dict \\u0026#34;isDark\\u0026#34; false) | minify).RelPermalink -}} {{- $resourceDark := ($template | resources.ExecuteAsTemplate \\u0026#34;images/drop-dark.svg\\u0026#34; (dict \\u0026#34;isDark\\u0026#34; true) | minify).RelPermalink -}} 这样，我们就得到了暗黑模式和明亮模式的两张图片，正如现在博客所看到的一样。 \",\"date\":\"2024-06-06\",\"objectID\":\"/posts/svg-dark-light/:1:0\",\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"uri\":\"/posts/svg-dark-light/#方案一通过模板生成两张图片\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"10 方案二：通过 CSS 实现响应式 然后，我在想这两张图除了背景色，其他都一毛一样，能不能通过 CSS 来实现呢？ 一番尝试过后，答案是肯定的。 假设我们只有一张图片，drop.responsive.svg，还是通过 CSS 来实现切换： #header-desktop { \\u0026amp;::after { background-image: url(/images/drop.responsive.svg); } [data-theme=\\u0026#39;dark\\u0026#39;] \\u0026amp; { background-image: url(/images/drop.responsive.svg#drop-dark-only); } } 再创建一个 SVG 文件 drop.responsive.svg： \\u0026lt;svg id=\\u0026#34;drop-dark-only\\u0026#34; viewBox=\\u0026#34;0 0 778.95 302.64\\u0026#34; xmlns=\\u0026#34;http://www.w3.org/2000/svg\\u0026#34;\\u0026gt; \\u0026lt;style\\u0026gt; #header-drop { fill: #e6e5f8; } #drop-dark-only:target #header-drop { fill: #252627; } \\u0026lt;/style\\u0026gt; \\u0026lt;path id=\\u0026#34;header-drop\\u0026#34; d=\\u0026#34;m28 14.56h778.71c-8.44 1.45-18.8 3-29.06 5-13.35 2.63-25.55 8.28-37.25 15-9.4 5.44-15.62 13.66-19.51 23.52-8.79 22.33-10 45.36-6 68.89 2.21 13.09 4.06 26.26 5.47 39.45a36.37 36.37 0 0 1 -1.59 13.5c-1.76 6.12-6.65 9.46-12 9.4s-9.52-3.32-11.77-9.32c-3.27-8.7-3.39-17.75-2-26.7 3-18.85 5.71-37.7 4.73-56.86a46.33 46.33 0 0 0 -1.6-9.56c-1.36-5.06-3.63-9.74-9.74-10s-10.86 2.71-13.77 8.06c-5 9.18-5.52 19.16-4.79 29.32.76 10.6 2 21.21 2 31.81 0 5.9-1.82 11.95-3.68 17.65s-6.11 8.1-11.52 7.92c-5-.17-8.76-3.08-10.72-8.53-2.42-6.69-1.42-13.44 0-20.13 2.61-12 5.78-23.85 7.89-35.92 2.43-13.92 3.11-27.94-2.19-41.55-4.23-10.85-14.09-12.81-21.12-3.56a61.82 61.82 0 0 1 -18.93 16.39c-3.95 2.27-7.46 5.32-11.13 8.07-7.31 5.46-13.69 4.33-18.88-3.22-5.52-8-9-16.89-11.55-26.27a56.4 56.4 0 0 0 -4.49-12c-3.1-5.81-9.92-6.05-12.45-.07a62 62 0 0 0 -4.39 18.75c-1.64 19.65 3.05 38.79 5.56 58.1.68 5.24.44 10.61.49 15.92a10.44 10.44 0 0 1 -.83 3.43c-1.68 4.76-5.19 7.58-9 7.29s-7.57-4-7.63-9.07c-.09-7.8.77-15.61 1-23.42s.69-15.38.32-23c-.19-3.87-1.42-8.17-6.18-9.32a8.82 8.82 0 0 0 -10.4 5.05c-3 6.5-6.06 13.34-7.05 20.33-3.34 23.67-2.93 47.47-.37 71.23 2.06 19.08 4.48 38.13 6.07 57.25 1.1 13.29.43 26.63-3.49 39.55a30.52 30.52 0 0 1 -3.69 8c-4.75 7.12-13 7.49-18.15.65a28.17 28.17 0 0 1 -4.42-9.55c-4.22-15.75-3.16-31.62-.46-47.48 4.92-29 11.36-57.79 9.32-87.49-.87-12.69-3.56-24.86-11.22-35.45-5.59-7.73-12.08-10.24-20.8-6.34-8 3.55-15.42 4.52-24 2.25-8.4-2.23-16.74 3.72-20.65 13.16-4.89 11.8-4.15 24-2.15 36.22 1.35 8.29 3.32 16.52 1.46 25-1.65 7.55-5.75 12.08-11.15 11.76s-9.66-5.63-9-13.27c.81-9.36 2.87-18.62 4.68-27.87 2-10.34 4.32-20.77 2-31.18-1.3-5.86-4.33-11.49-7.4-16.74-1.31-2.25-4.51-3.84-7.19-4.76-6.55-2.24-11.76 1.36-11.86 8.29-.07 4.84.91 9.68 1.25 14.54a73 73 0 0 1 .33 11.91c-.55 5.75-4.3 9.55-9.36 10.42-4.85.83-10.69-2-12.48-7.22a27 27 0 0 1 -1.22-12c1.62-11.68 4.51-23.21 5.7-34.92.64-6.26-.52-13-2.12-19.14-1.86-7.18-9.18-10.05-16-7a53.2 53.2 0 0 0 -8.63 5.33c-2.77 2-5.25 4.35-8 6.35-7 5.13-11.33 4.93-18.63.1-3.4-2.25-7.09-4.61-11-5.49-14.83-3.34-25.13 5.83-25.77 22.26-.71 18.29.73 36.32 5.61 54 1.64 6 .52 11.74-2.34 17.18-3.89 7.4-9.56 10.74-15.92 9.39-5.95-1.27-11.29-7.9-11-15.5.35-9 2-17.87 2.82-26.83.58-6.59 1.46-13.31.8-19.83-1-10.3-8.28-14.9-18.33-12.24-14.63 3.87-24.42 11.86-27.78 28-4.53 21.8-3.6 43.53-2.49 65.36 1.36 26.85 9.17 52.61 13.89 78.9 2.22 12.38 3.17 25.1-1.34 37.26-1.46 3.94-4.1 8.12-7.4 10.58-10 7.42-22.1 2.86-23.9-9.4a110.27 110.27 0 0 1 -.57-30c3.9-29.74 9.37-59.37 8-89.47-1-22.07-1.74-44.34-8.78-65.68-3.29-10-8.3-18.25-18-23.72-5.32-3-9.91-7.88-13.77-12.76-4-5.1-8.66-8-15-7.87a52.19 52.19 0 0 0 -11 1c-14 3.26-23.37-3.18-30.62-14.24-2.06-3.41-3.85-7.19-6.43-10.41-15-18.79-35-29.58-58.16-34.93-1.69-.39-3.39-.76-5.08-1.13z\\u0026#34; transform=\\u0026#34;translate(-27.76 -14.56)\\u0026#34; /\\u0026gt; \\u0026lt;/svg\\u0026gt; 注意，这个图片没有任何模板执行的内容，只是一个 SVG 图片，那我们就可以拿来直接使用了，例如： 主题 图片 明亮 light image 暗黑 dark image 但是！这个方案有一个缺点，在 Safari 浏览器下，切换时会出现卡顿，不够丝滑。 唉，真实遗憾，所以还是继续使用方案一了。 \",\"date\":\"2024-06-06\",\"objectID\":\"/posts/svg-dark-light/:2:0\",\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"uri\":\"/posts/svg-dark-light/#方案二通过-css-实现响应式\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。 \",\"date\":\"2024-04-17\",\"objectID\":\"/projects/vercel-gravatar/:0:0\",\"tags\":[\"Vercel\",\"Gravatar\"],\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"uri\":\"/projects/vercel-gravatar/#\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"13 思路 解析请求的 URL，并将其 host 修改为我们要代理的目标域名（这里是 www.gravatar.com）。 获取原始请求的方法、头部信息，并创建一个新的请求头部对象。 将新请求头部对象中的 Host 字段设置为目标域名，并将 Referer 字段设置为原始请求的 URL。 使用修改后的 URL、方法和头部信息发送请求到目标域名。 获取原始响应的状态码、头部信息和响应体，并克隆原始响应对象。 检查请求的 Referer 来源域名是否合法，如果不合法则返回一个 403 Forbidden 的响应。 设置新的响应头部信息，包括允许的请求方法、请求头部和缓存控制策略。 构造最终的响应对象，其中响应体为原始响应的内容，状态码和头部信息为修改后的值。 返回最终的响应对象。 安装上面的思路，理论上我们可以反代任何一个网站，并且支持设置 CORS 策略。GitHub 上也有类似的项目，比如 https://github.com/gaowanlu/google. 当然，网络不是非法之地，不要滥用这个功能反代一些不合法的网站哦。 \",\"date\":\"2024-04-17\",\"objectID\":\"/projects/vercel-gravatar/:1:0\",\"tags\":[\"Vercel\",\"Gravatar\"],\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"uri\":\"/projects/vercel-gravatar/#思路\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"14 实现 ⬆️ https://gravatar.lruihao.cn/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=64 实现 API 代码： api/gravatar.js const allowedReferrers = [ \\u0026#34;lruihao.cn\\u0026#34;, \\u0026#34;gravatar-x.vercel.app\\u0026#34;, \\u0026#34;-lrh-dev.vercel.app\\u0026#34;, \\u0026#34;-cell-x.vercel.app\\u0026#34;, \\u0026#34;localhost\\u0026#34;, ]; const upstream = \\u0026#34;www.gravatar.com\\u0026#34;; /** * whether the hostname is allowed * @param {String} hostname * @returns */ function isAllowedHost(hostname) { const regExp = new RegExp(allowedReferrers.join(\\u0026#34;|\\u0026#34;), \\u0026#34;g\\u0026#34;); // if hostname matches allowed referrers if (!hostname || regExp.test(hostname)) { return true } for (const referrer of allowedReferrers) { // if hostname ends with allowed referrers if (hostname.endsWith(referrer)) { return true } } return false } async function fetchAndApply(request) { let response = null; let url = new URL(request.url); url.host = upstream; let method = request.method; let request_headers = request.headers; let new_request_headers = new Headers(request_headers); new_request_headers.set(\\u0026#34;Host\\u0026#34;, upstream); new_request_headers.set(\\u0026#34;Referer\\u0026#34;, url.href); let original_response = await fetch(url.href, { method: method, headers: new_request_headers, }); let original_response_clone = original_response.clone(); let original_text = null; let response_headers = original_response.headers; let new_response_headers = new Headers(response_headers); let status = original_response.status; const hostname = (() =\\u0026gt; { try { return new URL(request.headers.get(\\u0026#34;Referer\\u0026#34;)).hostname; } catch (e) { return \\u0026#34;\\u0026#34;; } })(); if (!isAllowedHost(hostname)) { return new Response(`403 Forbidden: ${hostname}`, { headers: { \\u0026#34;Content-Type\\u0026#34;: \\u0026#34;text/html\\u0026#34; }, status: 403, statusText: \\u0026#34;Forbidden\\u0026#34;, }); } // new_response_headers.set(\\u0026#34;access-control-allow-origin\\u0026#34;, \\u0026#34;https://lruihao.cn\\u0026#34;); new_response_headers.set(\\u0026#34;Access-Control-Allow-Methods\\u0026#34;, \\u0026#34;GET, POST, OPTIONS\\u0026#34;); new_response_headers.set(\\u0026#34;Access-Control-Allow-Headers\\u0026#34;, \\u0026#34;Content-Type\\u0026#34;); new_response_headers.set( \\u0026#34;Cache-Control\\u0026#34;, \\u0026#34;max-age=600, s-maxage=2592000, stale-while-revalidate\\u0026#34; ); new_response_headers.delete(\\u0026#34;link\\u0026#34;); original_text = original_response_clone.body; response = new Response(original_text, { status, headers: new_response_headers, }); return response; } export const config = { runtime: \\u0026#34;experimental-edge\\u0026#34;, }; export default function (req) { return fetchAndApply(req); } 配置 vercel.json 文件： 最后部署到 Vercel 平台即可。 \",\"date\":\"2024-04-17\",\"objectID\":\"/projects/vercel-gravatar/:2:0\",\"tags\":[\"Vercel\",\"Gravatar\"],\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"uri\":\"/projects/vercel-gravatar/#实现\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"15 源码 Lruihao/vercel-gravatar Public archived Gravatar Proxy powered by Vercel. JavaScript 1 1 \",\"date\":\"2024-04-17\",\"objectID\":\"/projects/vercel-gravatar/:3:0\",\"tags\":[\"Vercel\",\"Gravatar\"],\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"uri\":\"/projects/vercel-gravatar/#源码\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/vercel gravatar: Gravatar Proxy powered by Vercel.\",\"date\":\"2024-04-17\",\"objectID\":\"/projects/lruihao/vercel-gravatar/\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"Gravatar Proxy powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-gravatar/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Vercel Gravatar 注意 Superseded by Lruihao/vercel-proxy. Gravatar Proxy powered by Vercel. Go to test Gravatar: https://gravatar.lruihao.cn/avatar/ https://gravatar-x.vercel.app/avatar/ \",\"date\":\"2024-04-17\",\"objectID\":\"/projects/lruihao/vercel-gravatar/:1:0\",\"tags\":[\"gravatar\",\"vercel\"],\"title\":\"Gravatar Proxy powered by Vercel.\",\"uri\":\"/projects/lruihao/vercel-gravatar/#vercel-gravatar data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/component projects: 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。 简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:0:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo 生态系统 | FixIt Lruihao 的开源项目 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:1:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:2:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"要求 FixIt v0.4.0 或更高版本 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:3:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#要求\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:4:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装为 Hugo 模块 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/component-projects\\u0026#34; 在第一次启动 Hugo 时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:4:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#安装为-hugo-模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装为 Git 子模块 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/component-projects.git themes/component-projects 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [\\u0026#34;FixIt\\u0026#34;, \\u0026#34;component-projects\\u0026#34;] \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:4:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#安装为-git-子模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"配置 最后，为了通过 FixIt 主题在 layouts/_partials/custom.html 文件中开放的 自定义块 将 component-projects.html 注入到 custom-head 或 custom-assets 中，你需要填写以下必要配置： [params] [params.customPartials] # ... other partials assets = [ \\u0026#34;inject/component-projects.html\\u0026#34; ] # ... other partials \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:5:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"访问令牌（可选） 获取仓库信息依赖 GitHub 官方 API。在开始使用之前，建议在 GitHub 上生成个人访问令牌，以防止 GitHub API 使用限制。 点击跳到 GitHub 生成 token，选择名为 public_repo 的范围以生成个人访问令牌。 配置环境变量 HUGO_PARAMS_GHTOKEN=your-person-access-token，详细信息请参见 os.Getenv | Hugo \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:6:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#访问令牌可选\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:7:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"布局 首先，创建 projects.yml 文件并编辑数据： cp themes/component-projects/projects.yml.example data/projects.yml 如果你的网站是多语言的，你可以为英语创建一个 projects.en.yml 文件，为中文创建一个 projects.zh-cn.yml 文件。 接下来，使用 projects 布局创建一个新页面： hugo new projects/_index.md 编辑新页面的标题和内容： --- title: My Projects titleIcon: fa-solid fa-laptop-code subtitle: \\u0026lt;https://github.com/Lruihao\\u0026gt; sectionSlot: Some text to display in the section slot which is above the related articles list. hiddenAdapters: false layout: projects --- Some text to display at the start of the page. \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:7:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#布局\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Shortcodes 在任何页面中使用 gh-repo-card-container 和 gh-repo-card 短代码来显示卡片式 GitHub 存储库： {{\\u0026lt; gh-repo-card-container \\u0026gt;}} {{\\u0026lt; gh-repo-card repo=\\u0026#34;hugo-fixit/component-projects\\u0026#34; \\u0026gt;}} {{\\u0026lt; gh-repo-card repo=\\u0026#34;Lruihao/hugo-blog\\u0026#34; \\u0026gt;}} {{\\u0026lt; /gh-repo-card-container \\u0026gt;}} \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:7:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#shortcodes\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"内容适配器 \\u0026#x1f389; 这是一个很棒的功能！它能够根据你配置的项目数据，把仓库的 README 自动生成博客文章。 在项目文件夹中创建 _content.gotmpl，添加以下代码： {{- partial \\u0026#34;adapters/projects.html\\u0026#34; . -}} 目录结构如下： content/ ├── projects/ │ ├── _content.gotmpl \\u0026lt;-- content adapter │ └── _index.md \\u0026lt;-- layout: projects data/ └── projects.yml \\u0026lt;-- projects data 然后，打开 hugo.toml 文件，配置的 projectsAdapters 选项，启用内容适配器： [params] [params.projectsAdapters] enable = true onlyPublic = true categories = [] collections = [] ignoreList = [] [params.projectsAdapters.params] hiddenFromHomePage = true # more font matter here ... \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:7:3\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#内容适配器\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"自定义块 你可以通过 define 来实现这些块。 块名称 描述 projects-aside 显示在项目页面的侧边栏中 projects-meta 显示在项目页面的开始处 projects-footer 显示在项目页面的底部处 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:7:4\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#自定义块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"定时任务 由于采用服务端渲染，所有数据是在构建时获取的，而不会在每次访问时都请求 GitHub API。因此，我们可以使用定时任务来更新数据，从而保持其最新状态。 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:8:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#定时任务\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"部署到 GitHub Pages 如果你的网站托管在 GitHub Pages 上，你可以使用 GitHub Actions 自动部署。 name: Hugo build and deploy on: schedule: # Rebuid the site every day at 00:00 UTC to update the projects data - cron: \\u0026#39;0 0 * * *\\u0026#39; push: branches: [ main ] workflow_dispatch: jobs: # Your build and deploy jobs here \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:8:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#部署到-github-pages\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"部署到 Vercel 如果你的网站托管在 Vercel 上，你可以使用 Vercel 的 Deploy Hooks 功能配合 GitHub Actions 自动部署。 name: Vercel deploy hook on: schedule: # Rebuid the site every day at 00:00 UTC to update the projects data - cron: \\u0026#39;0 0 * * *\\u0026#39; jobs: Vercel-Deploy: runs-on: ubuntu-latest steps: - name: Trigger Vercel deploy hook run: | curl -X POST ${{ secrets.VERCEL_DEPLOY_HOOK }} 在 Vercel 的项目设置中，创建一个部署钩子，并在 GitHub 项目的 Secrets 中添加 VERCEL_DEPLOY_HOOK 变量。 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:8:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#部署到-vercel\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"故障排除 本地调试时，可以在 hugo server 命令后加上 --ignoreCache 参数以清除缓存。 \",\"date\":\"2024-04-09\",\"objectID\":\"/projects/hugo-fixit/component-projects/:9:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"uri\":\"/projects/hugo-fixit/component-projects/#故障排除\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。 \",\"date\":\"2024-04-04\",\"objectID\":\"/projects/apple-devices-preview/:0:0\",\"tags\":[\"Vue2\"],\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"uri\":\"/projects/apple-devices-preview/#\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"1 在线体验 vue-el-demo#apple-devices-preview 源码 \",\"date\":\"2024-04-04\",\"objectID\":\"/projects/apple-devices-preview/:1:0\",\"tags\":[\"Vue2\"],\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"uri\":\"/projects/apple-devices-preview/#在线体验\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"2 实现原理 实现原理很简单，就是先写好布局，然后每个设备里面套一个 iframe，然后通过 iframe 的 src 属性来加载网页。 \",\"date\":\"2024-04-04\",\"objectID\":\"/projects/apple-devices-preview/:2:0\",\"tags\":[\"Vue2\"],\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"uri\":\"/projects/apple-devices-preview/#实现原理\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"3 卡壳点 iframe 存在跨域问题。 在将 DOM 转图片的时候，iframe 里面的内容无法转换，尝试了 html2canvas 和 dom-to-image-more 都不行，放弃了，改为用浏览器插件 Fireshot 截图。 一个未尝试的思路，如果跨域问题得以解决，转换图片的步骤可以分解为： 拿到每个 iframe 里的 body 内容，转为图片，然后将图片相对定位到对应的设备 iframe 里 隐藏原来的 iframe 最后将父容器的 DOM 转为图片 \",\"date\":\"2024-04-04\",\"objectID\":\"/projects/apple-devices-preview/:3:0\",\"tags\":[\"Vue2\"],\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"uri\":\"/projects/apple-devices-preview/#卡壳点\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"4 效果图 输入不同设备的 URL，选择背景颜色，点击预览，然后自行截图即可，比如用 Fireshot 插件捕获可见区域。 \",\"date\":\"2024-04-04\",\"objectID\":\"/projects/apple-devices-preview/:4:0\",\"tags\":[\"Vue2\"],\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"uri\":\"/projects/apple-devices-preview/#效果图\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:0:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"21 心路历程 写博客一直都懒得配图，主要是除了截图一直懒得找素材，然后还得考虑压缩等，直到心血来潮写文档时加上了封面图，发现效果还不错，就开始思考如何快速地搞定封面图，经历了以下几个阶段： Google 搜图：最开始的时候，直接 Google 搜图，然而很难找到合适的图片。 手动制作：然后开始用 Excalidraw 制作，但是每篇文章都要重新画，太麻烦了。 稿定: FixIt 主题群群友推荐了 稿定，可以快速生成封面图，但是要付费啊，受不了一点。 原 CoverView：最后还是 FixIt 主题群群友又推荐了 CoverView，哎！这个可以，但是样式有点跑版，还有图片无法下载等诸多 BUG，主要还无法适配 Hugo FixIt 主题的封面尺寸。 自己写：既然 CoverView 是开源的，那就先克隆一份，自己改改啰。 为什么封面图片比你想象的更重要？ 每天约有 700 万篇博文被发表。随着新时代博客工具的兴起，这个数字还会持续上升。一个好的封面图片比随机的库存图片能带来更高的转化率。 \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:1:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#心路历程\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"22 项目介绍 该项目基于原项目 CoverView 修改而成，感谢原作者 Rutik Wankhade 的优秀作品，我又连夜花了五天时间，做了如下改动和优化： 修复了带有图案背景的图片无法下载的问题 修复了无法下载和上传 SVG 格式图标的问题 修复了移动端样式混乱的问题 修复了重置所有按钮功能异常的问题 添加了 ESLint 支持 添加了 I18n 支持 增强了 Unsplash 图片搜索功能 添加了下载图片格式选择（PNG/JPEG），并支持 JPEG 图片质量调整 优化了图片下载速度 优化了 Devicons 以多色 SVG 图标显示 添加了更多字体和平台支持 统一了不同主题下载图片的大小 以及更多 \\u0026hellip; 至此已经足以让我感到满足和使用了，当然还有一些正在开发或者尝试开发的需求： 支持复制到剪切板和从剪切板上传截图 #8 尝试实现拖拽文本或者图标 #9 设置自定义平台封面图片的宽高比、适配常用尺寸宽高比 #10 现在 demo 版本已经上线，Unsplash API 的 production 版本还在审核中，最后传承开源精神开源出来，并保留了原作者 commit 记录聊表敬意。 🛠 Create awesome cover images for your blog posts quickly. github.com/Lruihao/CoverView \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:2:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#项目介绍\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"23 如何使用 可以看到，本文的封面图就是它生成的，很快啊！我当时大意了！没有闪！（玩个梗😂） 在线使用地址： https://coverview.lruihao.cn https://coverview-x.vercel.app 添加博客文章的标题和作者 自定义颜色、字体、图标等 从不同的主题中选择 点击下载按钮，即可下载封面图 有了简单、快速、易用的 CoverView，为博客创建封面图片现在变得非常容易，这样大家就可以专注于撰写博客，而不必担心封面图片了。 \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:3:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#如何使用\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"24 图片压缩 关于图片压缩问题，当时在开发之初 #9，是准备增加下载为 WebP 格式的功能，但是由于没找到合适的实现库，所以很遗憾没有实现，可手动通过 Cwebp 工具转换。 例如： cwebp -q 50 cover_*.jpeg -o cover.webp cwebp -q 50 -lossless cover_*.png -o cover_lossless.webp 幸运的是，我增加了下载为 JPEG 格式的功能，可以在下载时调整图片质量，以减少图片大小。 比如上面这张图片，选择 JPEG 格式，图片质量选择 50%，下载下来的体积仅仅 70kb，wow! 太棒了！只需要简单输入，然后轻轻一点。 当然啦，可以找压缩工具进行压缩，例如：TinyPNG，它可以帮助你快速压缩图片，减少图片大小，提高网站加载速度。 \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:4:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#图片压缩\"},{\"categories\":[\"React\"],\"collections\":[\"project\"],\"content\":\"25 收获 为了这个完善开发这个工具，先顺手学了一下 React，发现其实入门上手也很简单。 就这样，我又多了一个得心应手的工具 🛠️。 \",\"date\":\"2024-04-02\",\"objectID\":\"/projects/coverview/:5:0\",\"tags\":[\"CoverView\",\"React\"],\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"uri\":\"/projects/coverview/#收获\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/CoverView: 🛠 Create awesome cover images for your blog posts quickly.\",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"CoverView 👉 简体中文说明 | English README 该项目基于原始的 CoverView。 现在为你的博客创建封面图片变得非常简单。 \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:1:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#coverview data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"💥 变更通知 自 2024 年 03 月 28 日起，已将原始的 CoverView 复刻到我的存储库，并进行了以下更改和增强： 修复了具有图案背景的图像无法下载的问题 修复了无法下载和上传 SVG 格式图标的问题 修复了移动端样式混乱的问题 修复了 重置所有 按钮功能异常的问题 添加了 ESLint 支持 添加了 I18n 支持 增强了 Unsplash 图像搜索功能 添加了下载图像格式选择（PNG/JPEG/SVG/Blob），并支持 JPEG 图像质量调整 优化了图像下载速度 优化 Devicons 以多色 SVG 图标显示 添加了更多字体和平台支持 统一了不同主题下下载图像的尺寸 等等\\u0026hellip; \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:2:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#-变更通知\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"⚡ 特性 🚀 超快速且易于使用 🌈 7 种不同主题，多种字体 🌠 100+ 开发图标，并提供上传自定义图标选项 ✨ 15+ 种不同背景图案 💾 基于博客平台或常用尺寸的封面大小 Hashnode Dev.to Hugo FixIt 稀土掘金 \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:3:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#-特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"👩‍💻 开发 本项目主要使用以下技术栈： React 19 Tailwind CSS Vite 下载项目并安装依赖： git clone https://github.com/Lruihao/CoverView.git cd CoverView/ pnpm i 从 Unsplash API 获取访问密钥。 在 .env.local 文件中添加 REACT_APP_UNSPLASH_ACCESS_KEY 环境变量。 # https://unsplash.com/ Access Key REACT_APP_UNSPLASH_ACCESS_KEY=\\u0026#34;your_access_key_here\\u0026#34; 运行以下命令开始项目： pnpm dev \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:4:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#-开发\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"👇 贡献 欢迎提交拉取请求。对于重大更改，请先打开一个问题来讨论你想要更改的内容。 克隆它 (https://github.com/Lruihao/CoverView/fork) 创建你的功能分支 (git checkout -b feature/fooBar) 提交你的更改 (git commit -am 'Add some fooBar') 推送到分支 (git push origin feature/fooBar) 创建一个新的拉取请求 \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:5:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#-贡献\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"🙏 致谢 Rutik Wankhade（原始 CoverView） dom-to-image-more Hero Patterns Devicons Font Virgil Font MMT 如果你觉得这个项目有用，请别忘了留下一个 ⭐。 \",\"date\":\"2024-03-28\",\"objectID\":\"/projects/lruihao/coverview/:6:0\",\"tags\":[],\"title\":\"🛠 Create awesome cover images for your blog posts quickly.\",\"uri\":\"/projects/lruihao/coverview/#-致谢\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。 但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。 经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。 \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:0:0\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1 标题中的大写规则 \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:1:0\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#标题中的大写规则\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.1 英式英语 文章标题一般只第一个单词的首字母大写，主副标题均是。 例如：China Daily《中国日报》的文章标题均第一个单词首字母大写。 China\\u0026rsquo;s panda protection bears fruit amid 150th anniversary of discovery. \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:1:1\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#英式英语\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.2 美式英语（比较常见） 标题的第一个单词，无论是实词还是虚词，首字母要大写。 实词首字母要大写，比如名词、动词、形容词、副词、代词等。 虚词推荐使用小写，除非在标题的第一个单词，比如冠词、介词、连词、感叹词等。 满 5 个字母的虚词可以大写，不满 5 个字母的不得大写，满 7 个字母的虚词（through）则在标题或条标中必须大写。 还有一种说法：虚词字母多于 3 个（不含 3）时首字母大写。 例如： The Visual Arts and the Catholic Reformation 视觉艺术与天主教改革 看到这里和我高中所学的规则是一致的，终于对上了。另外这种风格对应的就是 Hugo 的 titleCaseStyle 配置项的 chicago，Chicago Manual of Style（应该是吧 :D） \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:1:2\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#美式英语比较常见\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"2 句子的大写规则 句子开头的第一个字母要大写。“I（我）”在句中任何位置都要大写。 例如：Mary and I are teachers． 直接引语中，句首字母要大写。 例如：\\u0026ldquo;Then,\\u0026rdquo; I said, \\u0026ldquo;You have been making a mistake, and the letter is not in the apartment.\\u0026rdquo; 诗歌每一行的第一个单词的首字母要大写。 \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:2:0\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#句子的大写规则\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"3 专有名词、缩略词及其他大写情况 国名、地名、人名、艺术作品、船只、航空器等专有名词首字母要大写。 例如：Russia（俄罗斯），Youyang（酉阳），Chengdu（成都），Jack（杰克） 由普通名词构成的专有名词词组，除其中的冠词、较短的介词和连词外，每个词的首字母都要大写。 例如：the Great Wall（长城），the United States（美国） 表示语种、民族的名词或形容词首字母要大写。 例如：Russian（俄语、俄罗斯人的），Chinese（汉语、中国人的） 星期、月份名称的首字母要大写，但季节名称首字母不大写。 例如：Sunday 星期天，August 八月（星期、月份大写） winter 冬天，spring 春天（季节不大写） 一些大型节日名称的第一个实词的首字母大写。 例如：Children\\u0026rsquo;s Day 儿童节，National Day 国庆节，Teachers\\u0026rsquo; Day 教师节 大型会议、文件、条约、组织机关、学校等名称中的每个实词的首字母都要大写，这些名称的缩略词也大写。 例如：Conference of Asia and Africa 亚非会议 World Trade Organization 世界贸易组织（WTO） Beijing Normal University 北京师范大学（BNU） 书名、报刊名中的每个实词的首字母应大写（且用斜体）。 New York Times《纽约时报》 English Coaching Paper《英语辅导报》 south，north 等方位名词一般小写，但形成专有名词时要大写。 例如：South Africa（南非），North Carolina（北卡罗莱纳州） 一些亲属关系（如 mother，sister，mum，dad 等）用作称呼语时首字母要大写。 例如：Thank you, Granny．谢谢你，奶奶。 人名前的称呼，以及头衔、职务的词首字母要大写。 例如：Mr Green 格林先生，Dr. Li 李博士 大多数的缩略词要大写。 例如：OK (Okay), CCTV (China Central Television) 由单词首字母构成的缩略词一般全部字母都大写，注意区分下列情况： who 谁 WHO (World Health Organization) 世界卫生组织 Project Hope 希望工程 Project HOPE (Health Opportunities for People Everywhere) 世界健康基金会（简称世健会） \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:3:0\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#专有名词缩略词及其他大写情况\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"4 全部字母大写 表示惊讶、感叹或强调时，部分单词会全部大写。 美术设计根据需要，书名会全部字母大写。 例如： LOOKING AHEAD \",\"date\":\"2024-03-26\",\"objectID\":\"/posts/c6bc2d5/:4:0\",\"tags\":[\"English\"],\"title\":\"写文档时英文标题什么时候要大写？\",\"uri\":\"/posts/c6bc2d5/#全部字母大写\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？ \",\"date\":\"2024-02-29\",\"objectID\":\"/posts/overflow-tooltip/:0:0\",\"tags\":[\"Vue2\"],\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"uri\":\"/posts/overflow-tooltip/#\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"13 Demo 先来看一下效果：demo \",\"date\":\"2024-02-29\",\"objectID\":\"/posts/overflow-tooltip/:1:0\",\"tags\":[\"Vue2\"],\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"uri\":\"/posts/overflow-tooltip/#demo\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"14 实现代码 直接贴上完整的代码，通过一个自定义指定 v-overflow-tooltip 来实现： const setTooltip = (el, binding) =\\u0026gt; { // 设置内容 el.innerText = binding.value const elComputed = document.defaultView.getComputedStyle(el, \\u0026#39;\\u0026#39;) const padding = parseInt(elComputed.paddingLeft.replace(\\u0026#39;px\\u0026#39;, \\u0026#39;\\u0026#39;)) + parseInt(elComputed.paddingRight.replace(\\u0026#39;px\\u0026#39;, \\u0026#39;\\u0026#39;)) const range = document.createRange() range.setStart(el, 0) range.setEnd(el, el.childNodes.length) const rangeWidth = range.getBoundingClientRect().width const isEllipsis = rangeWidth + padding \\u0026gt; el.offsetWidth || el.scrollWidth \\u0026gt; el.offsetWidth // 鼠标移入时，将浮层元素插入到 body 中 el.onmouseenter = function(e) { if (!isEllipsis) { return } // 创建浮层元素并设置样式 const vcTooltipDom = document.createElement(\\u0026#39;div\\u0026#39;) Object.assign(vcTooltipDom.style, { position: \\u0026#39;absolute\\u0026#39;, background: \\u0026#39;#303133\\u0026#39;, color: \\u0026#39;#fff\\u0026#39;, fontSize: \\u0026#39;12px\\u0026#39;, zIndex: \\u0026#39;6000\\u0026#39;, padding: \\u0026#39;10px\\u0026#39;, borderRadius: \\u0026#39;4px\\u0026#39;, lineHeight: 1.2, minHeight: \\u0026#39;10px\\u0026#39;, wordWrap: \\u0026#39;break-word\\u0026#39;, }) // 设置 id 方便寻找 vcTooltipDom.setAttribute(\\u0026#39;id\\u0026#39;, \\u0026#39;vc-tooltip\\u0026#39;) // 将浮层插入到 body 中 document.body.appendChild(vcTooltipDom) // 浮层中的文字 通过属性值传递动态的显示文案 document.getElementById(\\u0026#39;vc-tooltip\\u0026#39;).innerHTML = binding.value } // 鼠标移动时，动态修改浮层的位置属性 el.onmousemove = function(e) { if (!isEllipsis) { return } const vcTooltipDom = document.getElementById(\\u0026#39;vc-tooltip\\u0026#39;) const padding = 5 let offsetX = e.clientX + 15 let offsetY = e.clientY + 15 // 判断是否超出视窗边界（横向） if (offsetX + vcTooltipDom.offsetWidth \\u0026gt; document.documentElement.clientWidth) { offsetX = document.documentElement.clientWidth - vcTooltipDom.offsetWidth - padding } if (offsetX \\u0026lt;= 0) { offsetX = padding vcTooltipDom.style.width = document.documentElement.clientWidth - padding * 2 + \\u0026#39;px\\u0026#39; } // 判断是否超出视窗边界（纵向） if (offsetY + vcTooltipDom.offsetHeight \\u0026gt; document.documentElement.clientHeight) { offsetY = document.documentElement.clientHeight - vcTooltipDom.offsetHeight - padding } if (offsetY \\u0026lt;= 0) { offsetY = padding vcTooltipDom.style.height = document.documentElement.clientHeight - padding * 2 + \\u0026#39;px\\u0026#39; } vcTooltipDom.style.left = offsetX + \\u0026#39;px\\u0026#39; vcTooltipDom.style.top = offsetY + \\u0026#39;px\\u0026#39; // 注：当浮层元素和窗口大小差不多时，浮层会覆盖原本的内容，导致浮层闪一下就不见了 } // 鼠标移出时将浮层元素销毁 el.onmouseleave = function() { if (!isEllipsis) { return } // 找到浮层元素并移出 const vcTooltipDom = document.getElementById(\\u0026#39;vc-tooltip\\u0026#39;) vcTooltipDom \\u0026amp;\\u0026amp; document.body.removeChild(vcTooltipDom) } } const plugin = { install(Vue) { Vue.directive(\\u0026#39;overflow-tooltip\\u0026#39;, { inserted: (el, binding) =\\u0026gt; { // 设置元素样式 Object.assign(el.style, { overflow: \\u0026#39;hidden\\u0026#39;, textOverflow: \\u0026#39;ellipsis\\u0026#39;, whiteSpace: \\u0026#39;nowrap\\u0026#39;, }) // 监控元素可见性变化 const observer = new IntersectionObserver((entries) =\\u0026gt; { if (entries[0].isIntersecting) { setTooltip(el, binding) } }) observer.observe(el) // 监控元素宽度变化 const resizeObserver = new ResizeObserver(() =\\u0026gt; { setTooltip(el, binding) }) resizeObserver.observe(el) // 设置浮层内容 setTooltip(el, binding) }, update: (el, binding) =\\u0026gt; { // 更新浮层内容 setTooltip(el, binding) }, unbind: (el) =\\u0026gt; { el.onmouseenter = null el.onmousemove = null el.onmouseleave = null }, }) } } let GlobalVue = null if (typeof window !== \\u0026#39;undefined\\u0026#39;) { GlobalVue = window.Vue } else if (typeof global !== \\u0026#39;undefined\\u0026#39;) { GlobalVue = global.Vue } if (GlobalVue) { GlobalVue.use(plugin) } export default plugin 使用很简单，导入并注册之后，就可以在需要的地方使用 v-overflow-tooltip 指令了： import overflowTooltip from \\u0026#39;@/directives/overflow-tooltip\\u0026#39; Vue.use(overflowTooltip) 比如说： \\u0026lt;span v-overflow-tooltip=\\u0026#34;content\\u0026#34; style=\\u0026#34;display: inline-block; width: 100px;\\u0026#34; /\\u0026gt; \",\"date\":\"2024-02-29\",\"objectID\":\"/posts/overflow-tooltip/:2:0\",\"tags\":[\"Vue2\"],\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"uri\":\"/posts/overflow-tooltip/#实现代码\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"15 实现原理 通过 getComputedStyle 获取元素的 padding 值，然后通过 createRange 获取元素的宽度。 如果元素的内容宽度大于元素的宽度，那么就显示 tooltip。 鼠标移入时，将浮层元素插入到 body 中，鼠标移动时，动态修改浮层的位置属性，鼠标移出时将浮层元素销毁。（浮层需要做边界检测） 其中最关键的一段代码是： const range = document.createRange() range.setStart(el, 0) range.setEnd(el, el.childNodes.length) const rangeWidth = range.getBoundingClientRect().width 这段代码是通过 createRange 设置元素的范围，然后通过 getBoundingClientRect 获取元素的宽度。 \",\"date\":\"2024-02-29\",\"objectID\":\"/posts/overflow-tooltip/:3:0\",\"tags\":[\"Vue2\"],\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"uri\":\"/posts/overflow-tooltip/#实现原理\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。 \",\"date\":\"2024-02-21\",\"objectID\":\"/posts/auto-sizes/:0:0\",\"tags\":[\"HTML\"],\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"uri\":\"/posts/auto-sizes/#\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"17 前景 起因是网友给 FixIt 提了一个 issue hugo-fixit/FixIt#411，说图片比例异常，我一回想，最近没动过图片的代码，于是用 Safari 和 Edge 试了一下，发现没问题，那么基本可以确定是 Chrome 新版的问题了。 经查，从 Chrome (121.0.6167.85) 开始，给 img size=\\u0026ldquo;auto\\u0026rdquo; 加了一个默认样式，恰巧 FixIt 主题之前用到了 lazysizes.js 这个库来做图片懒加载，也用了 size=\\u0026ldquo;auto\\u0026rdquo; 这个属性，于是就导致图片宽高比异常了。 解决办法：既然 FixIt 并没有再使用 lazysizes.js 来做图片懒加载，那么就直接去掉 size=\\u0026ldquo;auto\\u0026rdquo; 这个属性就好了。 好，问题解决了，那么就来看看这个 size=\\u0026ldquo;auto\\u0026rdquo; 到底是什么。 \",\"date\":\"2024-02-21\",\"objectID\":\"/posts/auto-sizes/:1:0\",\"tags\":[\"HTML\"],\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"uri\":\"/posts/auto-sizes/#前景\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"18 简介 在网页开发中，我们通常会遇到需要对网页上的元素，尤其是图片进行布局和尺寸调整的情况。在 HTML 中，我们可以利用一些内置的属性来帮助我们完成这项工作，而 sizes 就是其中之一。sizes 属性定义了用于描述其中 \\u0026lt;img\\u0026gt;、\\u0026lt;source\\u0026gt; 元素 display size，以及 \\u0026lt;link\\u0026gt; 元素 viewport 的 source 大小。换句话说，它是一种设定网页元素尺寸的机制。 编写、阅读和维护响应式图片的 sizes 属性是最繁琐的部分；对于懒加载的图片，auto-sizes 是对平台的一个很好的补充。据统计，目前已有十分之一的 sizes 属性正在使用 auto，但是是通过 lazysizes.js（一个用于支持图片懒加载的库）。 \",\"date\":\"2024-02-21\",\"objectID\":\"/posts/auto-sizes/:2:0\",\"tags\":[\"HTML\"],\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"uri\":\"/posts/auto-sizes/#简介\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"19 详解 sizes 支持了 \\u0026ldquo;auto\\u0026rdquo; 值，那么情况就会变得稍微有些复杂。所谓的 \\u0026ldquo;auto\\u0026rdquo; 模式，实际上是一种让浏览器自动设定图片尺寸的模式。在这种模式下，浏览器会试图选择最合适的尺寸来显示图片，以获得最佳的用户体验。它的应用场景主要是在网站设计和开发过程中，需要灵活设定元素尺寸，尤其是图片的尺寸，以便于在不同设备和浏览器环境下，都能呈现出良好的布局和视觉效果。 根据 HTML 规范 4.8.4.2.2 Sizes attributes 的提示： 注意 此外，强烈建议使用 width 和 height 属性或使用 CSS 来指定尺寸。如果没有指定尺寸，图像可能会以 300x150 尺寸渲染，因为在渲染部分 sizes==\\u0026ldquo;auto\\u0026rdquo; 中有所暗示。contain-intrinsic-size: 300px 150px Chrome 中打开调试台，可以看到默认样式： img:has([sizes=\\u0026#34;auto\\u0026#34; i], [sizes^=\\u0026#34;auto,\\u0026#34; i]) { contain: size !important; contain-intrinsic-size: 300px 150px; } 这段 CSS 代码使用了属性选择器来选择 img 元素，具体的选择规则如下： [sizes=\\u0026quot;auto\\u0026quot; i]：选择具有 sizes 属性且其值为 auto（不区分大小写）的 img 元素。 [sizes^=\\u0026quot;auto,\\u0026quot; i]：选择具有 sizes 属性且以 auto, 开头（不区分大小写）的 img 元素。 对于匹配上述选择规则的 img 元素，应用以下样式： contain: size !important;：将元素的内容缩放以适合其容器的大小，并禁止其他样式表覆盖此规则（!important 用于提升优先级）。 contain-intrinsic-size: 300px 150px;：指定元素的内在尺寸为宽度 300 像素和高度 150 像素。这可以影响到元素在执行缩放时的最终尺寸。 顺便说一下，CSS 中的伪类 :has 被称为“父选择器”，但目前并没有广泛支持，因此这个选择器可能无法在所有浏览器中正常工作。另外，i 标记表示进行不区分大小写的匹配。 响应式图像自然尺寸的设定可能会让人意想不到的复杂，但实际上： 有许多方式可以让已加载资源的自然尺寸影响其对应的 \\u0026lt;img\\u0026gt; 的布局尺寸。 每当 \\u0026lt;img\\u0026gt; 标签的布局尺寸发生变化，sizes=\\u0026ldquo;auto\\u0026rdquo; 的值就会进行更新，这可能会触发新的资源加载。 一旦加载新的资源，这个资源就会有新的自然尺寸，这可能会影响 \\u0026lt;img\\u0026gt; 的布局尺寸，导致 sizes=\\u0026ldquo;auto\\u0026rdquo; 的值更新，然后可能会触发又一次的资源加载；新加载的资源会有新的自然尺寸，这样以此类推\\u0026hellip;等等。 关于 sizes=\\u0026ldquo;auto\\u0026rdquo; 的规范讨论其实主要就是：那些能通过这种方式让 srcset 中的每一个资源依次被加载的极端情况。 Simon Pieters，撰写了 auto-sizes 规范的人，曾经巧妙并勇敢地尝试定义可能触发循环依赖的所有情况，同时也采用了一些无法让作者察觉或是感到奇怪的解决方式来避开这些问题。但是，当真正落实到实现的时候，这些权宜之计并没有站住脚。最后，大家都认为唯一的解决方法是做出一个明确的切割：规定加载资源的自然尺寸绝对不能影响其所对应的 \\u0026lt;img\\u0026gt; 的布局，这一点在涉及到 sizes=\\u0026ldquo;auto\\u0026rdquo; 时尤为重要。 幸运的是，我们有一个相对较新的特性，它就是“尺寸包含”（size containment），专门用来解决这个问题。 所以，现在 Chrome 的 UA stylesheet 中的内容就变成了上面那段 CSS 代码的样子。 对于为什么选择 300×150，是因为这就是 \\u0026lt;video\\u0026gt; 和 \\u0026lt;canvas\\u0026gt; 标签所采取的方式；所有这些元素都会使用这种相对小一些但又不为零的默认尺寸，目的在于鼓励你优化你的布局。 \",\"date\":\"2024-02-21\",\"objectID\":\"/posts/auto-sizes/:3:0\",\"tags\":[\"HTML\"],\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"uri\":\"/posts/auto-sizes/#详解\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"20 参考链接 HTML 规范 4.8.4.2.2 Sizes attributes whatwg/html#9448 Chromium#41495139 \",\"date\":\"2024-02-21\",\"objectID\":\"/posts/auto-sizes/:4:0\",\"tags\":[\"HTML\"],\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"uri\":\"/posts/auto-sizes/#参考链接\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/kityminder core: 强大的脑图可视化工具\",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"KityMinder Core 注意 由于原项目 KityMinder Core 年久失修，存在一些 bug，所以 fork 了一份，进行了一些修复，并重新发布了 npm 包 @cell-x/kityminder-core。 \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:1:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#kityminder-core data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"简介 KityMinder 是一款强大的脑图可视化/编辑工具，由百度 FEX 团队开发并维护。 本仓库是 KityMinder 的核心实现部分： 包括脑图数据的可视化展示（Json 格式） 包括简单的编辑功能（节点创建、编辑、删除）。更加强大编辑功能的 KityMinder 编辑器请移步 kityminder-editor 不包含第三方格式（FreeMind、XMind、MindManager）的支持，可以加载 kityminder-protocol 来扩展第三方格式支持。 不包含文件存储的支持，需要自行实现存储。可参照百度脑图中的开源的 fio + 百度网盘方案进行实现。 \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:2:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#简介\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 可以参考 example.html 进行使用。 \\u0026lt;div id=\\u0026#34;minder-container\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;kityminder.core.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; var minder = new kityminder.Minder({ renderTo: \\u0026#39;#minder-container\\u0026#39; }); \\u0026lt;/script\\u0026gt; 更多详细的开发资料可以参考 wiki \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:3:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"兼容性 KityMinder 基于 SVG 技术实现，支持绝大多数的 HTML5 浏览器，包括： Chrome Firefox Safari Internet Explorer 10 或以上 \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:4:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#兼容性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"开发说明 npm install npm run dev \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:5:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#开发说明\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"联系我们 问题和建议反馈：Github Issues 邮件组: kity@baidu.com QQ 讨论群: 374918234 \",\"date\":\"2024-01-21\",\"objectID\":\"/projects/lruihao/kityminder-core/:6:0\",\"tags\":[],\"title\":\"强大的脑图可视化工具\",\"uri\":\"/projects/lruihao/kityminder-core/#联系我们\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:0:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"25 需求 使用 v-code-diff 组件，来开发一个接口请求结果比对的功能。 开发过程中，发现虽然它的 1.8.0 版本提供了具名插槽 stat，但是插槽并没有回传值，于是乎，看了一下它的源码，提了一个 PR 加了一个作用域，见 Shimada666/v-code-diff#119，作者很快也就合并了。 这样就简化了原插槽的使用： \\u0026lt;CodeDiff :old-string=\\u0026#34;form.oldString\\u0026#34; :new-string=\\u0026#34;form.newString\\u0026#34; :language=\\u0026#34;form.language\\u0026#34; :diff-style=\\u0026#34;form.diffStyle\\u0026#34; \\u0026gt; \\u0026lt;template #stat=\\u0026#34;{ stat }\\u0026#34;\\u0026gt; \\u0026lt;span class=\\u0026#34;diff-stat-added\\u0026#34;\\u0026gt;+{{ stat.additionsNum }} 增\\u0026lt;/span\\u0026gt; \\u0026lt;span class=\\u0026#34;diff-stat-deleted\\u0026#34;\\u0026gt;-{{ stat.deletionsNum }} 减\\u0026lt;/span\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;/CodeDiff\\u0026gt; 但这只是完成需求路上的一个小插曲，真正的难点在于“比对结果时，支持关键词过滤的功能”，也就是如果比对结果中有包含关键词的行，则忽略该行的 diff。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:1:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#需求\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"26 师必有名 “赵若献璧，乃惧怕我邦，不难臣服；若是不献，再去征讨，方算出师有名。” 自古战事都讲究师必有名，其实在代码世界也一样，得考虑这个需求是否通用，不然即使提交 PR 给原作者，也大概率不会合并。我自己也有开源，如果遇到定制化很重的需求，往往只会以一个 wontfix 的标签收尾。 所以，我先去查了有没有类似的工具或者产品有过类似的需求。 很快就找到了 Linux 的 diff 指令的 --ignore-matching-lines 参数有类似的功能。 diff file1.json file2.json --ignore-matching-lines=\\u0026#34;time\\u0026#34; 上面的命令在比较两个文件时，会忽略包含 time 的行。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:2:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#师必有名\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"27 出师有名 既然有了参考，那么就可以开始动手了。 多的先不管，先把 v-code-diff 的源码拉下来运行起来。 git clone git@github.com:Shimada666/v-code-diff.git \\u0026amp;\\u0026amp; cd v-code-diff 看了一眼是用 TypeScript 和 Vue3 的 Composition API 写的，这个我都不熟，不过没关系，先把它跑起来再说。 它的包管理器是 pnpm，那就先安装一下： npm i -g pnpm 然后安装依赖： pnpm install 然后在 package.json 找一下启动命令： 随便选一个运行： npm run dev:2 ok，顺利启动！ \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:3:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#出师有名\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"28 一招制敌 然后开始阅读源码，寻找突破点。 two hours later\\u0026hellip; 经过一段时间阅读，虽然没有用过 TypeScript 以及 Composition API，但是对于读懂逻辑影响不大，很多就找到了突破口。 既然忽略关键词是为了让有差异的行不显示，那么正常的行就无需处理，只要找到有差异的行处理的阶段，然后加入关键词过滤的逻辑就可以了。 然后给 CodeDiff 组件新增一个 ignoreMatchingLines 属性，用于接收匹配忽略关键词的正则表达式。 最后简单测试一个在 Vue2.x、Vue2.7 以及 Vue3.x 的 demo，然后顺手把文档也完善一下，就可以提交 PR 给原作者了。详见 Shimada666/v-code-diff#121。 在等待了短暂几天后，原作者也是很快合并了 PR，并发布了新的版本 1.9.0，这样我们就可以在自己项目中升级使用了。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:4:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#一招制敌\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"29 备用方案 如果作者觉得需求不妥，我们也可以 fork 一份，然后改名发包，或者只是简单的打包成一个 js 文件，然后放到自己的项目中使用。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:5:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#备用方案\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"30 总结 磨刀不误砍柴工，磨刀的过程也是砍柴的过程，找到根本原因，才能事半功倍。 比如，VS Code 的开发团队在使用 Electron 开发 VS Code 时，发现 Electron 的功能并不足以满足 VS Code 的开发需求，他们也是先参与到 Electron 的开发中，完善 Electron 后再使用 Electron 开发 VS Code 的。 经常逛 GitHub，潜移默化中，我也养成了看源码的习惯，遇到 BUG 时先想的是 PR，然后再是 issue，今年还提交了一下其他的 PR。 mdn/translated-content#15859 SchemaStore/schemastore#3411 SchemaStore/schemastore#3420 SchemaStore/schemastore#3463 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/900d5e4/:6:0\",\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"title\":\"记一次 Debug 第三方包的过程\",\"uri\":\"/posts/900d5e4/#总结\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"foo 和 bar 是在编程中常用的元变量（metasyntactic variables），它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz，qux，quux，corge，grault，garply，waldo，fred，plugh，xyzzy 和 thud 等。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/20b75e9/:0:0\",\"tags\":null,\"title\":\"为什么很多教程中都有 foo bar？\",\"uri\":\"/posts/20b75e9/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"9 foo 和 bar 这些名称起源于 MIT，然后通过 Hacker 文化传播开来。它们主要的用途是作为示例代码的占位符，这样编程教程或者文档可以更专注于解释语法和逻辑，而不需要花费太多的精力去考虑如何命名这些函数或变量。 这就像是在其他文字中使用\\u0026quot;John Doe\\u0026quot; 或 \\u0026ldquo;Jane Doe\\u0026quot;来代表一个非特定的人一样。在编程的世界中，foo 和 bar 就扮演了类似的角色。 例如，如果我们要解释 JavaScript 中函数的使用，我们可能会写出这样的代码： function foo(bar) { return bar + 1; } foo(1); // 2 在这个例子中，foo 是一个函数名，bar 是一个参数名，它们都可以被替换为任何合法的函数名和参数名，而不改变代码逻辑。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/20b75e9/:1:0\",\"tags\":null,\"title\":\"为什么很多教程中都有 foo bar？\",\"uri\":\"/posts/20b75e9/#foo-和-bar\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"10 quick brown fox 另外，还常常看到一个这样的句子： The quick brown fox jumps over the lazy dog 相应中文可简译为“快狐跨懒狗”，完整翻译则是“那只敏捷的棕毛狐狸跃过了那只懒狗”，是一个著名的英语全字母句，常用于测试字体显示效果和键盘是否故障。此句也常以“quick brown fox”做为指代简称。 简而言之，这些都是英文世界里一些约定俗成的用语，类似于中文里的“张三李四”、“甲乙丙丁”等等。 \",\"date\":\"2024-01-17\",\"objectID\":\"/posts/20b75e9/:2:0\",\"tags\":null,\"title\":\"为什么很多教程中都有 foo bar？\",\"uri\":\"/posts/20b75e9/#quick-brown-fox\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"Git 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。 \",\"date\":\"2024-01-11\",\"objectID\":\"/posts/6550187/:0:0\",\"tags\":[\"Git\"],\"title\":\"git submodule: already exists in the index\",\"uri\":\"/posts/6550187/#\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"9 问题 在 hugo-fixit/docs，里我增通过软连接的方式引入了 hugo-fixit/FixIt，位于 themes/FixIt 目录下。 然后为了把主题开发和主题文档分离（#404），我想通过 git submodule 的方式引入主题，于是我先把 themes/FixIt 目录删除，然后执行： git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt 结果报错： fatal: \\u0026#39;themes/FixIt\\u0026#39; already exists in the index \",\"date\":\"2024-01-11\",\"objectID\":\"/posts/6550187/:1:0\",\"tags\":[\"Git\"],\"title\":\"git submodule: already exists in the index\",\"uri\":\"/posts/6550187/#问题\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"10 解决方法 git rm -r --cached themes/FixIt \",\"date\":\"2024-01-11\",\"objectID\":\"/posts/6550187/:2:0\",\"tags\":[\"Git\"],\"title\":\"git submodule: already exists in the index\",\"uri\":\"/posts/6550187/#解决方法\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"date\":\"2024-01-10\",\"objectID\":\"/posts/el-card-collapse/:0:0\",\"tags\":[\"Vue2\"],\"title\":\"给 el-card 添加折叠功能\",\"uri\":\"/posts/el-card-collapse/#\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"17 效果 在线演示：https://lruihao.github.io/vue-el-demo/#/card-collapse \",\"date\":\"2024-01-10\",\"objectID\":\"/posts/el-card-collapse/:1:0\",\"tags\":[\"Vue2\"],\"title\":\"给 el-card 添加折叠功能\",\"uri\":\"/posts/el-card-collapse/#效果\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"18 实现过程 一开始想着使用 Vue 的自定义指令功能来实现，但是动手之前还是习惯性地先看 el-card 的源码，如下所示： \\u0026lt;template\\u0026gt; \\u0026lt;div class=\\u0026#34;el-card\\u0026#34; :class=\\u0026#34;shadow ? \\u0026#39;is-\\u0026#39; + shadow + \\u0026#39;-shadow\\u0026#39; : \\u0026#39;is-always-shadow\\u0026#39;\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;el-card__header\\u0026#34; v-if=\\u0026#34;$slots.header || header\\u0026#34;\\u0026gt; \\u0026lt;slot name=\\u0026#34;header\\u0026#34;\\u0026gt;{{ header }}\\u0026lt;/slot\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;div class=\\u0026#34;el-card__body\\u0026#34; :style=\\u0026#34;bodyStyle\\u0026#34;\\u0026gt; \\u0026lt;slot\\u0026gt;\\u0026lt;/slot\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; export default { name: \\u0026#39;ElCard\\u0026#39;, props: { header: {}, bodyStyle: {}, shadow: { type: String } } }; \\u0026lt;/script\\u0026gt; 这一看源码这么简单，直接改得了，还用啥自定义指令，开干！ \",\"date\":\"2024-01-10\",\"objectID\":\"/posts/el-card-collapse/:2:0\",\"tags\":[\"Vue2\"],\"title\":\"给 el-card 添加折叠功能\",\"uri\":\"/posts/el-card-collapse/#实现过程\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"19 实现方式 通过继承 el-card 组件来实现，这样就不用改 el-card 的源码了，也不用担心升级 Element 时会被覆盖掉。 然后在继承的组件中添加一个 isCollapse 属性来控制折叠状态。 继承也很简单，这样简单几行就完整继承了原来 el-card 的所有功能了： \\u0026lt;script\\u0026gt; import { Card } from \\u0026#39;element-ui\\u0026#39; export default { name: \\u0026#39;ElCardCollapse\\u0026#39;, extends: Card, } \\u0026lt;/script\\u0026gt; 然后，把 el-card template 中的代码先原封不动地复制过来，再在需要的地方添加折叠按钮和相关逻辑就行了： ElCardCollapse.vue \\u0026lt;template\\u0026gt; \\u0026lt;div class=\\u0026#34;el-card\\u0026#34; :class=\\u0026#34;shadow ? \\u0026#39;is-\\u0026#39; + shadow + \\u0026#39;-shadow\\u0026#39; : \\u0026#39;is-always-shadow\\u0026#39;\\u0026#34;\\u0026gt; \\u0026lt;div v-if=\\u0026#34;$slots.header || header\\u0026#34; class=\\u0026#34;el-card__header\\u0026#34; :class=\\u0026#34;isCollapseSelf ? \\u0026#39;collapse-icon-right\\u0026#39; : \\u0026#39;collapse-icon-down\\u0026#39;\\u0026#34; @click=\\u0026#34;isCollapseSelf = !isCollapseSelf\\u0026#34; \\u0026gt; \\u0026lt;slot name=\\u0026#34;header\\u0026#34;\\u0026gt;{{ header }}\\u0026lt;/slot\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;div class=\\u0026#34;el-card__body\\u0026#34; :style=\\u0026#34;bodyStyle\\u0026#34; :class=\\u0026#34;{\\u0026#39;is-collapse\\u0026#39;: isCollapseSelf}\\u0026#34; \\u0026gt; \\u0026lt;slot /\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; import { Card } from \\u0026#39;element-ui\\u0026#39; export default { name: \\u0026#39;ElCardCollapse\\u0026#39;, extends: Card, props: { isCollapse: { type: Boolean, default: false, }, }, data() { return { isCollapseSelf: this.isCollapse, } }, } \\u0026lt;/script\\u0026gt; \\u0026lt;style lang=\\u0026#34;scss\\u0026#34; scoped\\u0026gt; .el-card__header { cursor: pointer; position: relative; \\u0026amp;::after { font-family: element-icons !important; speak: none; font-style: normal; font-weight: 400; font-variant: normal; text-transform: none; line-height: 1; vertical-align: baseline; display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; position: absolute; right: 10px; top: 50%; transform: translateY(-50%); } \\u0026amp;.collapse-icon-right::after { content: \\u0026#39;\\\\e6e0\\u0026#39;; } \\u0026amp;.collapse-icon-down::after { content: \\u0026#39;\\\\e6df\\u0026#39;; } } .is-collapse { display: none; } \\u0026lt;/style\\u0026gt; \",\"date\":\"2024-01-10\",\"objectID\":\"/posts/el-card-collapse/:3:0\",\"tags\":[\"Vue2\"],\"title\":\"给 el-card 添加折叠功能\",\"uri\":\"/posts/el-card-collapse/#实现方式\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"20 使用方法 在 main.js 中引入： import ElCardCollapse from \\u0026#39;@/components/ElCardCollapse.vue\\u0026#39; Vue.component(\\u0026#39;ElCardCollapse\\u0026#39;, ElCardCollapse) 写法和 el-card 一样，只是多了一个 is-collapse 属性，使用 el-card-collapse 代替 el-card 即可： \\u0026lt;template\\u0026gt; \\u0026lt;div\\u0026gt; \\u0026lt;el-card-collapse class=\\u0026#34;box-card\\u0026#34; :is-collapse=\\u0026#34;isCollapse\\u0026#34;\\u0026gt; \\u0026lt;div slot=\\u0026#34;header\\u0026#34; class=\\u0026#34;flex-between\\u0026#34;\\u0026gt; \\u0026lt;span\\u0026gt;卡片名称\\u0026lt;/span\\u0026gt; \\u0026lt;el-button style=\\u0026#34;padding: 3px 0; margin-right: 10px;\\u0026#34; type=\\u0026#34;text\\u0026#34;\\u0026gt;操作按钮\\u0026lt;/el-button\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;div v-for=\\u0026#34;o in 4\\u0026#34; :key=\\u0026#34;o\\u0026#34; class=\\u0026#34;text item\\u0026#34;\\u0026gt; {{ \\u0026#39;列表内容 \\u0026#39; + o }} \\u0026lt;/div\\u0026gt; \\u0026lt;/el-card-collapse\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; export default { name: \\u0026#39;CardCollapse\\u0026#39;, data() { return { isCollapse: true, } }, } \\u0026lt;/script\\u0026gt; \\u0026lt;style lang=\\u0026#34;scss\\u0026#34; scoped\\u0026gt; .text { font-size: 14px; } .item { margin-bottom: 18px; } .flex-between { display: flex; justify-content: space-between; align-items: center; } .box-card { width: 480px; } \\u0026lt;/style\\u0026gt; \",\"date\":\"2024-01-10\",\"objectID\":\"/posts/el-card-collapse/:4:0\",\"tags\":[\"Vue2\"],\"title\":\"给 el-card 添加折叠功能\",\"uri\":\"/posts/el-card-collapse/#使用方法\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:0:0\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"17 前言 在维护 FixIt 这个项目时，很多新人可能第一次接触 Hugo，第一次使用 FixIt 主题，可能觉得无从下手。在之前的工作中，为了避免这个问题，我新增了两个模板项目： hugo-fixit-blog-go hugo-fixit-blog-git 然并卵哈哈哈🤣，大家似乎都有种惰性，不愿意认真地读一遍 README，即使只需简单几步就能通过 GitHub template 创建一个拥有完整主题配置、自动化部署完善的博客。 懒惰是人类进步的源泉，想到 Vue CLI、Create React App 这些脚手架，我决定开发一个轻量级的脚手架 fixit-cli，让大家能够快速地上手 FixIt 主题。 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:1:0\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#前言\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"18 思路 fixit-cli 的思路很简单，就是通过命令行交互，让用户输入一些信息，然后根据这些信息生成一个完整的博客项目。 fixit create my-blog 创建一个名为 my-blog 的项目 fixit check 检查 FixIt 主题的最新版本 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:2:0\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#思路\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"19 开发 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:3:0\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#开发\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"19.1 初始化项目 mkdir fixit-cli cd fixit-cli npm init -y 然后在 package.json 中写点项目信息。 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:3:1\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#初始化项目\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"19.2 安装依赖 npm install commander inquirer chalk simple-git ora --save 主要依赖： 依赖 用途 commander 完整的 Node.js 命令行解决方案 inquirer 常见交互式命令行用户界面的集合 chalk 命令行输出样式 simple-git 用于在任何 Node.js 应用程序中运行 Git 命令的轻量级接口 ora 命令行 loading 效果 如果需要使用简单的 git clone 下载模板，可以使用 download-git-repo 替代 simple-git。 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:3:2\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#安装依赖\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"19.3 定义一个 CLI 在 package.json 中添加 bin 字段，指定 CLI 的入口文件。 然后在 bin 目录下创建 cli.js 文件，写入以下内容： #!/usr/bin/env node console.log(\\u0026#39;Hello, FixIt!\\u0026#39;) 代码顶部的 #!/usr/bin/env node 是告诉终端，这个文件要使用 node 去执行，等同于 node bin/cli.js。 如果我们想要在终端执行 fixit 命令，可以使用 npm link 将 fixit 命令链接到全局。 npm link # 卸载本地包 npm unlink fixit 或者也可以使用 npm install -g 全局安装。 npm install -g fixit-cli /Users/cell/workspace/fixit-cli/ \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:3:3\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#定义一个-cli\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"19.4 命令行交互 先把要实现的命令和选项列出来： bin/cli.js #!/usr/bin/env node import { Command } from \\u0026#39;commander\\u0026#39; // ... // define commands program .command(\\u0026#39;create \\u0026lt;project-name\\u0026gt;\\u0026#39;) .description(\\u0026#39;create a new FixIt project from a template\\u0026#39;) .action(createAction) program .command(\\u0026#39;check\\u0026#39;) .description(\\u0026#39;check the latest version of FixIt theme\\u0026#39;) .action(checkAction) program .command(\\u0026#39;help \\u0026lt;command\\u0026gt;\\u0026#39;) .description(\\u0026#39;display help for a specific command\\u0026#39;) .action(helpAction) // define cli program .usage(\\u0026#39;\\u0026lt;command\\u0026gt; [options]\\u0026#39;) .description(description) .version(`${pkg.name} v${pkg.version}`, \\u0026#39;-v, --version\\u0026#39;) .showHelpAfterError() .parse(process.argv) 然后再去实现这些命令所执行的动作：createAction、checkAction、helpAction 和完善一下 logo 和 description 等细节。 fixit --help Usage: fixit \\u0026lt;command\\u0026gt; [options] ============================================= ▄████ ▄█ ▄ ▄█ ▄▄▄▄▀ █▀ ▀ ██ ▀▄ █ ██ ▀▀▀ █ █▀▀ ██ █ ▀ ██ █ █ ▐█ ▄ █ ▐█ █ █ ▐ █ ▀▄ ▐ ▀ ▀ ▀ fixit-cli v1.0.2 A cli tool for FixIt theme. ============================================= FixIt is a clean, elegant but advanced blog theme for Hugo built with love by Lruihao and his friends. Complete documentation is available at https://fixit.lruihao.cn/. Options: -v, --version output the version number -h, --help display help for command Commands: create \\u0026lt;project-name\\u0026gt; create a new FixIt project from a template check check the latest version of FixIt theme help \\u0026lt;command\\u0026gt; display help for a specific command 最后发布到 npm 上就完活了。 npm login npm publish 发布后，就可以通过 npm install -g fixit-cli 全局安装了。 安装后，例如，创建一个名为 my-blog 的站点： fixit create my-blog \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:3:4\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#命令行交互\"},{\"categories\":[\"Node.js\"],\"collections\":[\"project\"],\"content\":\"20 源码 命令动作的具体实现详见 FixIt CLI 源码。 hugo-fixit/fixit-cli Public 🛠️ A node-based tooling for FixIt site initialization. TypeScript 28 1 \",\"date\":\"2023-11-28\",\"objectID\":\"/projects/fixit-cli/:4:0\",\"tags\":[\"脚手架\",\"FixIt\"],\"title\":\"用 Node.js 开发一个轻量脚手架\",\"uri\":\"/projects/fixit-cli/#源码\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/fixit cli: 🛠️ A node-based tooling for FixIt site initialization.\",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"FixIt CLI 👉 中文 | English 🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。 \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:1:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#fixit-cli data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。 \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:2:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#系统依赖\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 使用 pnpx 或者 npx 直接运行 fixit-cli，创建一个新的 FixIt 项目会非常方便。 例如，创建一个名为 my-blog 的站点： pnpx fixit-cli create my-blog 当然你也可以全局安装 fixit-cli，然后使用 fixit 命令。 npm install -g fixit-cli # 或者 pnpm add -g fixit-cli # 或者 yarn global add fixit-cli \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:3:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"create 创建一个新的 FixIt 项目。 fixit create [project-name] 创建一个新的 FixIt 组件。 fixit create component [component-name] \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:3:1\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#create\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"split 将 hugo.toml 配置文件分割到 config/_default 目录。 分割本地文件： fixit split hugo.toml 分割远程文件： fixit split https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/hugo.toml # 或者 fixit split https://gitee.com/lruihao/FixIt/raw/main/hugo.toml 指定输出目录： fixit split hugo.toml -o config/development 分割后转换为 YAML 格式： fixit split hugo.toml -y \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:3:2\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#split\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"toml2yaml 将 TOML 配置文件转换为 YAML 格式，支持单个文件或整个目录。 转换单个文件： fixit toml2yaml hugo.toml 转换整个目录： fixit toml2yaml config/ 转换后替换原文件（删除 TOML 文件）： fixit toml2yaml hugo.toml -r fixit toml2yaml config/ -r \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:3:3\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#toml2yaml\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"check 检查 FixIt 主题的最新版本。 fixit check \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:3:4\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#check\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"更多帮助 获取所有可用命令的帮助信息： pnpx fixit-cli -h Usage: fixit \\u0026lt;command\\u0026gt; [options] ============================================= ▄████ ▄█ ▄ ▄█ ▄▄▄▄▀ █▀ ▀ ██ ▀▄ █ ██ ▀▀▀ █ █▀▀ ██ █ ▀ ██ █ █ ▐█ ▄ █ ▐█ █ █ ▐ █ ▀▄ ▐ ▀ ▀ ▀ fixit-cli v1.4.0 A cli tool for FixIt theme. ============================================= FixIt is a clean, elegant but advanced blog theme for Hugo built with love by Lruihao and his friends. Complete documentation is available at https://fixit.lruihao.cn/. Options: -v, --version output the version number -h, --help display help for command Commands: create|new [project-name] create a new FixIt project/component from a template split [options] [file] split hugo.toml into config/_default directory toml2yaml [options] [file] convert TOML file(s) to YAML format (support directory) check check the latest version of FixIt theme help [command] display help for command \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:4:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#更多帮助\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"开发 安装依赖项： pnpm install 在开发模式下运行 CLI： pnpm start -h 将包链接/取消链接到全局包目录： pnpm link pnpm unlink fixit-cli 从本地路径全局安装/卸载包： pnpm add -g path/to/fixit-cli pnpm remove -g fixit-cli \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:5:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#开发\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"TODO List fixit create 命令在选择模板后增加主题组件选项选择步骤 \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:5:1\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#todo-list\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"相关项目 本 CLI 工具是基于以下项目开发的： FixIt hugo-fixit-starter hugo-fixit-starter1 component-skeleton \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:6:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#相关项目\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作者 Lruihao \",\"date\":\"2023-11-20\",\"objectID\":\"/projects/hugo-fixit/fixit-cli/:7:0\",\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"uri\":\"/projects/hugo-fixit/fixit-cli/#作者\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。 \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:0:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"33 操作步骤 可以使用 SSH 通过自己生成的 SSH 密钥对提交进行签名。有关详细信息，请查看 user.Signingkey 的 Git 参考文档。如果已使用 SSH 密钥向 GitHub 进行了身份验证，还可以再次上传该相同密钥以用作签名密钥。可以添加到帐户的签名密钥数没有限制。 GitHub 使用 ssh_data（一种开放源代码 Ruby 库）来确认本地签名的提交和标记是否根据在 GitHub.com 上添加到帐户的公钥进行加密验证。 注意：SSH 签名验证可用于 Git 2.34 或更高版本。若要更新 Git 版本，请参阅 Git 网站。 要使用 SSH 对提交签名并在 GitHub 上验证这些提交，请执行以下步骤： 检查现有 SSH 密钥 生成新的 SSH 密钥 将 SSH 签名密钥添加到 GitHub 帐户 将你的签名密钥告诉 Git 对提交签名 对标记签名 \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:1:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#操作步骤\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"34 检查现有 SSH 密钥 打开终端。 输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥。 # Lists the files in your .ssh directory, if they exist ls -al ~/.ssh 检查目录列表以查看是否已经有 SSH 公钥。默认情况下，GitHub 的一个支持的公钥的文件名是以下之一。 id_rsa.pub id_ecdsa.pub id_ed25519.pub \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:2:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#检查现有-ssh-密钥\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"35 生成新的 SSH 密钥 注意 注意：GitHub 通过在 2022 年 3 月 15 日删除旧的、不安全的密钥类型来提高安全性。 自该日期起，不再支持 DSA 密钥 (ssh-dss)。无法在 GitHub.com 上向个人帐户添加新的 DSA 密钥。 2021 年 11 月 2 日之前带有 valid_after 的 RSA 密钥 (ssh-rsa) 可以继续使用任何签名算法。在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。一些较旧的客户端可能需要升级才能使用 SHA-2 签名。 打开终端。 粘贴下面的文本（替换为你的 GitHub 电子邮件地址）。 ssh-keygen -t ed25519 -C \\u0026#34;your_email@example.com\\u0026#34; 注意：如果你使用的是不支持 Ed25519 算法的旧系统，请使用以下命令： ssh-keygen -t rsa -b 4096 -C \\u0026#34;your_email@example.com\\u0026#34; 这将以提供的电子邮件地址为标签创建新 SSH 密钥。 \\u0026gt; Generating public/private ALGORITHM key pair. 当系统提示你“Enter a file in which to save the key（输入要保存密钥的文件）”时，可以按 Enter 键接受默认文件位置。请注意，如果以前创建了 SSH 密钥，则 ssh-keygen 可能会要求重写另一个密钥，在这种情况下，我们建议创建自定义命名的 SSH 密钥。为此，请键入默认文件位置，并将 id_ssh_keyname 替换为自定义密钥名称。 \\u0026gt; Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter] 在提示符下，键入安全密码。有关详细信息，请参阅“使用 SSH 密钥密码”。 \\u0026gt; Enter passphrase (empty for no passphrase): [Type a passphrase] \\u0026gt; Enter same passphrase again: [Type passphrase again] 更多请查看 生成新的 SSH 密钥。 \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:3:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#生成新的-ssh-密钥\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"36 新增 SSH 密钥到 GitHub 帐户 注意：添加 SSH 密钥的类型选择 Signing Key，细节略，详见 将 SSH 签名密钥添加到 GitHub 帐户。 \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:4:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#新增-ssh-密钥到-github-帐户\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"37 将 SSH 密钥告知 Git 打开终端。 配置 Git 使用 SSH 对提交和标记签名： git config --global gpg.format ssh 若要在 Git 中设置 SSH 签名密钥，请粘贴下面的文本，将 /PATH/TO/KEY.PUB 替换为要使用的公钥路径（例如：~/.ssh/id_ed25519.pub）。 git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:5:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#将-ssh-密钥告知-git\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"38 对提交签名 当本地分支中的提交更改时，可以将 -S 添加到 git commit 命令： # Creates a signed commit git commit -S -m \\u0026#34;YOUR_COMMIT_MESSAGE\\u0026#34; 若要将 Git 客户端配置为默认对本地存储库的提交进行签名，请在 Git 版本 2.0.0 及更高版本中，运行： git config commit.gpgsign true 要在计算机上的任何本地存储库中默认对所有提交进行签名，请运行： git config --global commit.gpgsign true 在本地完成创建提交后，将其推送到 GitHub 上的远程仓库，在 GitHub 上查看提交记录就能看到 Verified 的标志了。 \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:6:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#对提交签名\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"39 对标记签名 若要对标记进行签名，请将 -s 添加到 git tag 命令。 # Creates a signed tag git tag -s MYTAG 通过运行 git tag -v [tag-name] 验证已签名的标记。 # Verifies the signed tag git tag -v MYTAG 或者，可以将 gpgsign 设置为 true，以便在创建标记时自动对其进行签名： git config tag.gpgsign true # 或者 git config --global tag.gpgsign true \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:7:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#对标记签名\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"40 其他 创建可信公钥列表文件： mkdir -p ~/.config/git touch ~/.config/git/allowed_signers 可信公钥列表文件内容格式如下，每个公钥占一行： 公钥的身份 公钥内容 例如，可以将 ~/.ssh/id_ed25519.pub 公钥复制然后粘贴： pbcopy \\u0026lt; ~/.ssh/id_ed25519.pub open ~/.config/git/allowed_signers Cell ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5bRSsXZ5HnUkMMEWS5/jxEQaqbLb+i6xjMyC6qiXsb xxx@xxx.com 将可信公钥列表文件路径添加到 Git 配置中： git config --global gpg.ssh.allowedSignersFile \\u0026#34;~/.config/git/allowed_signers\\u0026#34; 本地查看提交日志签名状况： git log --show-signature \",\"date\":\"2023-10-22\",\"objectID\":\"/posts/ssh-sign/:8:0\",\"tags\":[\"Git\",\"SSH\"],\"title\":\"SSH 提交签名验证\",\"uri\":\"/posts/ssh-sign/#其他\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"29 背景 今天鬼事神差想起去年写的一段 dirty hack 代码，当时是在 vue-minder-editor-extended 这个项目为了解决百度开源的 @7polo/kityminder-core npm 包的 bug，但是百度早在 17-18 年就停止更新了，我又不想自己 fork 一份源码然后重新发包，于是当时直接从 node_modules 里面复制出了打包后的源码进行修改，然后放到了项目中 src/script/patch/kityminder.core.js，并因修改了引入： - require(\\u0026#39;@7polo/kityminder-core\\u0026#39;); + require(\\u0026#39;./script/patch/kityminder.core\\u0026#39;); 但是今天刷抖音看到类似的问题，回想起来这种做法真的是太蠢了，于是就想着有没有更好的办法，于是就一番搜索有了这篇文章。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:1:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#背景\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"30 安装 patch-package npm i patch-package --save-dev \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:2:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#安装-patch-package\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"31 修改源码 在 node_modules 目录下找到需要打补丁的包，然后修改源码，比如我这里修改了 node_modules/@7polo/kityminder-core/dist/kityminder.core.js，修改后直接保存。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:3:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#修改源码\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"32 生成补丁 npx patch-package @7polo/kityminder-core 此时在根目录下会得到如下文件： ├── patches │ └── @7polo-kityminder-core+1.4.53.patch └── package.json 想看看这个补丁文件里面是什么东西，打开 patches/@7polo-kityminder-core+1.4.53.patch，内容如下： diff --git a/node_modules/@7polo/kityminder-core/.DS_Store b/node_modules/@7polo/kityminder-core/.DS_Store new file mode 100644 index 0000000..c88a062 Binary files /dev/null and b/node_modules/@7polo/kityminder-core/.DS_Store differ diff --git a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js index 78dfbaf..32f276d 100644 --- a/node_modules/@7polo/kityminder-core/dist/kityminder.core.js +++ b/node_modules/@7polo/kityminder-core/dist/kityminder.core.js @@ -513,6 +513,8 @@ _p[9] = { * * @param {string} name 要执行的命令名称 * @param {argument} args 要传递给命令的其它参数 + * + * @patch 2022.10.19 @Lruihao 修复缺少 afterExecCommand hook */ execCommand: function(name) { if (!name) return null; @@ -547,6 +549,8 @@ _p[9] = { this._interactChange(); } } + // Fix: afterExecCommand hook + this._fire(new MinderEvent(\\u0026#34;afterExecCommand\\u0026#34;, eventParams, false)); return result === undefined ? null : result; } }); @@ -1254,6 +1258,22 @@ _p[13] = { }); return this; }, + /** + * @patch 2022.10.26 @Lruihao 修复缺少 once 侦听指定事件一次 + * @param {String} name + * @param {Function} callback + */ + once: function(name, callback) { + var km = this; + name.split(/\\\\s+/).forEach(function(n) { + const tmpCallback = (e) =\\u0026gt; { + callback(e); + km.off(n.toLowerCase(), tmpCallback) + }; + km._listen(n.toLowerCase(), tmpCallback); + }); + return this; + }, off: function(name, callback) { var types = name.split(/\\\\s+/); var i, j, callbacks, removeIndex; 发现其实就是一个 diff 文件，这个文件里面记录了修改的内容，以及修改的位置，这样就可以在安装依赖的时候自动执行补丁了。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:4:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#生成补丁\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"33 使用补丁 在 package.json 中添加如下内容： \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:5:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#使用补丁\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"34 提交补丁 git add . git commit -m \\u0026#34;Chore: patch @7polo/kityminder-core\\u0026#34; git push \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:6:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#提交补丁\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"35 测试 执行一次完整的依赖安装 =\\u0026gt; 构建发布，一切符合预期，大功告成~ \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/patch-package/:7:0\",\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"title\":\"如何给 npm 包打补丁？\",\"uri\":\"/posts/patch-package/#测试\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:0:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括： 拖拽元素：用户可以从预定义的元素列表中选择并将其拖拽到仪表盘上。这些元素可以是图表、指标、过滤器、小部件等。 放置和调整：拖拽后，用户可以将元素放置到所需的位置，并调整它们的大小和布局，以满足个人需求。 数据关联：用户可以将数据源与仪表盘上的元素关联起来，以显示实时或静态数据。这使用户能够轻松地创建可视化报表和图表。 交互性：拖拽式仪表盘通常支持用户与元素进行交互，如数据筛选、排序、聚合等操作，以便更深入地分析数据。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#特点和功能\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2 优势和益处 拖拽式仪表盘具有多个优势，使其成为用户和开发者的首选选择： 用户友好：拖拽式操作使得构建和定制仪表盘变得直观和简单，无需复杂的编码或技术知识。 灵活性：用户可以根据自己的需求和偏好自定义仪表盘布局、样式和内容，使其适应不同的工作场景和数据展示要求。 实时更新：通过数据关联和实时更新功能，拖拽式仪表盘可以显示最新的数据，帮助用户做出准确的决策。 可视化效果：仪表盘上的图表、指标和图形化元素可以提供直观和易于理解的数据展示，帮助用户快速洞察关键信息和趋势。 可扩展性：拖拽式仪表盘通常具有可扩展性，可以集成其他功能和插件，以满足特定的业务需求。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#优势和益处\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"3 应用领域 拖拽式仪表盘在许多领域中都得到广泛应用，包括但不限于： 数据分析和报告：拖拽式仪表盘使数据分析师和业务用户能够轻松构建个性化的数据报表和仪表盘，以实时监控和分析关键指标。 业务管理和监控：企业管理者可以使用拖拽式仪表盘来跟踪业务绩效、销售数据、供应链指标等，以便做出战略决策。 项目管理和协作：拖拽式仪表盘可用于项目管理和团队协作，帮助团队成员追踪任务、进度和资源分配情况。 客户关系管理：在销售和客户服务领域，拖拽式仪表盘可以显示客户数据、销售漏斗、客户满意度等信息，以支持客户关系管理和提高客户体验。 运营监控和故障排除：拖拽式仪表盘可用于监控系统运行状况、网络流量、服务器负载等，帮助运维团队及时发现和解决问题。 市场营销和广告分析：拖拽式仪表盘可以用于跟踪市场营销活动、广告效果和用户行为数据，以优化营销策略和广告投放。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:3:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#应用领域\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"4 未来发展 拖拽式仪表盘是一种强大而灵活的工具，为用户提供了以直观和个性化的方式展示和操作数据的能力。它们在各个领域中都发挥着重要作用，帮助用户快速洞察数据、做出决策并优化业务流程。随着技术的不断发展，拖拽式仪表盘的功能和性能将进一步增强，为用户提供更多可能性和创新的数据可视化体验。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:4:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#未来发展\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"5 收获与总结 在开发拖拽式仪表盘的过程中，我学到了很多东西，包括但不限于：更加深入 Vue.js 的使用，包括组件、插槽、指令、混入、依赖注入等。 独立设计和开发一个完整的功能、思考的过程比最终的结果更加有趣。比如以前没尝试过的自定义 HooK、Provide/Inject 等。还有，相比于以前的工作，大多是由后端主导逻辑，这次的工作是从设计到开发完全由前端主导，逻辑可控，之后维护起来也会更加简单。 并且未来方便之后不同的同事开发不同的仪表盘组件，我写了完整详细的文档，包括方法参数、属性配置、事件钩子等，方便他们快速上手。 一步步完善每个小功能的过程中，也写下了几篇前驱文章： CSS 实现网格背景效果 在 Vue 项目中更优雅地使用 icon 封装 Vue FullScreenToggler 组件 另外，我还收集了一些拖拽式相关的库： react-grid-layout，用于 React 的拖拽式布局系统，比 Vue 版的更完善 vue-draggable-resizable 总的来说，拖拽式仪表盘这个功能还是很有趣的，这也使得我孜孜不倦地去开发完善。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-summary/:5:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"title\":\"拖拽式仪表盘系列总结\",\"uri\":\"/posts/dashboard-summary/#收获与总结\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-usage/:0:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件开发\",\"uri\":\"/posts/dashborad-widget-usage/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"9 第一个组件 先通过一个简单的便利贴组件为例，介绍如何开发一个仪表盘组件。 Talk is cheap. Show you the code. 便利贴组件（dashboard 示例组件） \\u0026lt;template\\u0026gt; \\u0026lt;el-card\\u0026gt; \\u0026lt;span class=\\u0026#34;note-content\\u0026#34;\\u0026gt;{{ params.content }}\\u0026lt;/span\\u0026gt; \\u0026lt;el-popover v-model=\\u0026#34;formVisible\\u0026#34; trigger=\\u0026#34;manual\\u0026#34; popper-class=\\u0026#34;form-popover\\u0026#34; \\u0026gt; \\u0026lt;el-form ref=\\u0026#34;form\\u0026#34; label-width=\\u0026#34;80px\\u0026#34; label-position=\\u0026#34;top\\u0026#34; :model=\\u0026#34;form\\u0026#34; :rules=\\u0026#34;rules\\u0026#34; \\u0026gt; \\u0026lt;el-form-item label=\\u0026#34;便利贴\\u0026#34; prop=\\u0026#34;content\\u0026#34;\\u0026gt; \\u0026lt;el-input v-model=\\u0026#34;form.content\\u0026#34; type=\\u0026#34;textarea\\u0026#34; :autosize=\\u0026#34;{ minRows: 2, maxRows: 4 }\\u0026#34; /\\u0026gt; \\u0026lt;/el-form-item\\u0026gt; \\u0026lt;/el-form\\u0026gt; \\u0026lt;div class=\\u0026#34;text-right\\u0026#34;\\u0026gt; \\u0026lt;el-button type=\\u0026#34;text\\u0026#34; size=\\u0026#34;mini\\u0026#34; @click=\\u0026#34;formVisible = false\\u0026#34;\\u0026gt;取消\\u0026lt;/el-button\\u0026gt; \\u0026lt;el-button type=\\u0026#34;primary\\u0026#34; size=\\u0026#34;mini\\u0026#34; @click=\\u0026#34;save\\u0026#34;\\u0026gt;保存\\u0026lt;/el-button\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/el-popover\\u0026gt; \\u0026lt;/el-card\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; export default { /** * 组件名称，必须且唯一 */ name: \\u0026#39;ExampleWidget\\u0026#39;, /** * 组件配置对象 * @property {String} name 组件名称，用于在组件列表中显示组件名称 * @property {String} [icon=\\u0026#39;el-icon-postcard\\u0026#39;] 组件图标，用于在组件列表中显示组件图标，支持 el-icon、iconfont 和 svg-icon * @property {Object} [params] 组件参数，一般搭配 setting 钩子函数使用 * @property {Boolean} [disabled] 是否禁用组件，设置为 true 则不会被注册（组件弃用时可设置为 true） * @property {Boolean} [hidden] 是否隐藏组件，设置为 true 则不会在组件列表中显示（组件即将弃用时可设置为 true） * 以下参数参考 https://jbaysolutions.github.io/vue-grid-layout/zh/guide/properties.html#griditem * @property {Number} w 组件宽度 * @property {Number} h 组件高度 * @property {Number} [minW] 组件最小宽度 * @property {Number} [minH] 组件最小高度 * @property {Number} [maxW] 组件最大宽度 * @property {Number} [maxH] 组件最大高度 * @property {Boolean} [isResizable=false] 是否可调整大小 */ widget: { name: \\u0026#39;便利贴\\u0026#39;, icon: \\u0026#39;el-icon-postcard\\u0026#39;, params: { content: \\u0026#39;\\u0026#39;, }, disabled: false, hidden: false, w: 8, h: 3, minW: 8, minH: 3, maxW: 24, maxH: 6, isResizable: true, }, inject: [\\u0026#39;$dashboard\\u0026#39;], props: { /** * 组件实例数据 */ item: { type: Object, default: () =\\u0026gt; ({}), }, /** * 组件参数，用于接收用户已配置的参数，支持 `.sync` 修饰符 */ params: { type: Object, default: () =\\u0026gt; ({}), }, }, data() { return { formVisible: false, form: { content: \\u0026#39;\\u0026#39;, }, rules: { content: [{ required: true, message: \\u0026#39;请输入便利贴内容\\u0026#39;, trigger: \\u0026#39;change\\u0026#39; }], }, } }, watch: { \\u0026#39;$dashboard.isCollapse\\u0026#39;(val) { // 当侧栏组件列表折叠时，关闭配置弹窗 if (val) { this.formVisible = false } }, \\u0026#39;params.content\\u0026#39;(val) { // 当用户修改了参数，更新表单中对应的参数 this.form.content = val }, }, mounted() { this.form = { ...this.params } }, /** * hook for refresh widget item * 点击刷新组件按钮时触发，一般用于刷新组件数据 * @param {Object} item 组件实例数据 */ refresh(item) { // to refresh widget data }, /** * hook for setting widget item * 点击配置组件按钮时触发，一般搭配 widget.params 使用 * @param {Object} item 组件实例数据 */ setting(item) { this.formVisible = true }, /** * hook for moving widget item * @param {Object} item item config data * @param {Number} i the item id/index * @param {Number} newX new x position in grid rows * @param {Number} newY new y position in grid columns */ move(item, i, newX, newY) { // to do something when widget item moving }, /** * hook for moved widget item * @param {Object} item item config data * @param {Number} i the item id/index * @param {Number} newX new x position in grid rows * @param {Number} newY new y position in grid columns */ moved(item, i, newX, newY) { // to do something when widget item moved }, /** * hook for resizing widget item * @param {Object} item item config data * @param {Number} i the item id/index * @param {Number} newH new height in grid rows * @param {Number} newW new width in grid columns * @param {String} newHPx new height in pixels * @param {String} newWPx new width in pixels */ resize(item, i, newH, newW, newHPx, newWPx) { // to do something when widget item resizing }, /** * hook for resized widget item * @param {Object} item item config data * @param {Number} i the item id/index * @par\",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-usage/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件开发\",\"uri\":\"/posts/dashborad-widget-usage/#第一个组件\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"10 万物皆组件 系统中的仪表盘，除了承载业务组件外，还可以承载一些系统级别的组件，发挥想象力，将任何 idea 开发成为仪表盘的组件，比如： 时钟 天气 便利贴 倒计时 …… 等等，只要你想得到，就可以开发成为仪表盘的组件，灵感可以来自于手机平板桌面、浏览器网址导航等。 又例如，我在 iTab 新标签页 网址导航中，看到了一个“一言组件”觉得很有意思。 于是乎，我也开发了一个“一言组件”，在线 demo，组件源码 hitokoto.vue，功能如下： 点击左键复制，右键切换 支持自定义一言类型、长度 一键百度搜索当前一言内容 效果如下： 一言组件局部动画 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-usage/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件开发\",\"uri\":\"/posts/dashborad-widget-usage/#万物皆组件\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。 Talk is cheap. Show you the code. \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-usage/:0:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 模板使用\",\"uri\":\"/posts/dashborad-template-usage/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"9 代码 \\u0026lt;!-- 首页 dashboard 页面布局 --\\u0026gt; \\u0026lt;script\\u0026gt; import Dashboard, { registerComponents } from \\u0026#39;@/components/Dashboard\\u0026#39; // 加载测试跟踪 widgets 目录下所有组件 const requireTrackingComponents = require.context(\\u0026#39;@/views/tracking/dashboard/widgets\\u0026#39;, true, /\\\\.vue$/) const trackingComponents = registerComponents(requireTrackingComponents) // 加载接口测试 widgets 目录下所有组件 const requireInterfaceComponents = require.context(\\u0026#39;@/views/interface/dashboard/widgets\\u0026#39;, true, /\\\\.vue$/) const interfaceComponents = registerComponents(requireInterfaceComponents) // 加载 WebUI 测试 widgets 目录下所有组件 const requireWebUIComponents = require.context(\\u0026#39;@/views/webui/dashboard/widgets\\u0026#39;, true, /\\\\.vue$/) const webuiComponents = registerComponents(requireWebUIComponents) // 加载 App 测试 widgets 目录下所有组件 const requireAppComponents = require.context(\\u0026#39;@/views/app/dashboard/widgets\\u0026#39;, true, /\\\\.vue$/) const appComponents = registerComponents(requireAppComponents) export default { name: \\u0026#39;HomeDashboard\\u0026#39;, extends: Dashboard, data() { return { // 设置默认布局 defaultLayout: [ { i: 1, component: \\u0026#39;TrackingCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 0, y: 0, w: 6, h: 2, params: { type: \\u0026#39;product\\u0026#39; }}, { i: 2, component: \\u0026#39;TrackingCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 6, y: 0, w: 6, h: 2, params: { type: \\u0026#39;case\\u0026#39; }}, { i: 3, component: \\u0026#39;TrackingCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 12, y: 0, w: 6, h: 2, params: { type: \\u0026#39;testplan\\u0026#39; }}, { i: 4, component: \\u0026#39;TrackingCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 18, y: 0, w: 6, h: 2, params: { type: \\u0026#39;report\\u0026#39; }}, { i: 5, component: \\u0026#39;InterfaceCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 0, y: 2, w: 6, h: 2, params: { type: \\u0026#39;task\\u0026#39; }}, { i: 6, component: \\u0026#39;InterfaceCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 6, y: 2, w: 6, h: 2, params: { type: \\u0026#39;api\\u0026#39; }}, { i: 7, component: \\u0026#39;InterfaceCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 12, y: 2, w: 6, h: 2, params: { type: \\u0026#39;case\\u0026#39; }}, { i: 8, component: \\u0026#39;InterfaceCountsWidget\\u0026#39;, name: \\u0026#39;总数统计\\u0026#39;, x: 18, y: 2, w: 6, h: 2, params: { type: \\u0026#39;device\\u0026#39; }}, { i: 9, component: \\u0026#39;MyTestplan\\u0026#39;, name: \\u0026#39;我的测试计划\\u0026#39;, x: 0, y: 4, w: 12, h: 6, minW: 8, minH: 6, maxW: 24, maxH: 6, isResizable: true, params: { type: \\u0026#39;myAttend\\u0026#39; }}, { i: 10, component: \\u0026#39;MyInterfaceTask\\u0026#39;, name: \\u0026#39;我创建的测试\\u0026#39;, x: 12, y: 4, w: 12, h: 6, minW: 12, minH: 6, maxW: 24, maxH: 6, isResizable: true }, ], } }, created() { // 加载组件列表 this.addComponents(\\u0026#39;测试跟踪\\u0026#39;, trackingComponents) this.addComponents(\\u0026#39;接口测试\\u0026#39;, interfaceComponents) this.addComponents(\\u0026#39;WebUI 测试\\u0026#39;, webuiComponents) this.addComponents(\\u0026#39;App 测试\\u0026#39;, appComponents) // 设置权限 this.hasEditPermission = this.checkPermission([\\u0026#39;admin\\u0026#39;]) || !this.dashboard.isDefault }, } \\u0026lt;/script\\u0026gt; \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-usage/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 模板使用\",\"uri\":\"/posts/dashborad-template-usage/#代码\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"10 效果 画质感人，将就看吧～ \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-usage/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 模板使用\",\"uri\":\"/posts/dashborad-template-usage/#效果\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"本文将对 Dashboard 组件的使用方法进行介绍。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:0:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"33 A note on terminology “Widget（小部件）”和“Component（组件）”都是计算机科学中常见的术语，用于描述可重复使用的用户界面元素。Widget 通常更简单，具有预定义的样式和功能，而 Component 可以更灵活、可定制，并具有更丰富的行为和交互性。Widget 更倾向于描述独立的、自包含的小型组件，而 Component 则更倾向于描述较大规模的、可组合的用户界面元素。 Vue 项目通常选用 Component，与之相比仪表盘组件功能更加局限，使用 Widget 来描述显然更符合实际情况。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#a-note-on-terminology\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"34 Widget Example 完整例子详见 @/components/Dashboard/widgets/example.vue 组件。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#widget-example\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"35 Inject dashboard 组件及其后代组件可以通过注入 $dashboard 访问容器中的属性或方法。 $dashboard (Object): 当前 dashboard 容器实例 例如： \\u0026lt;script\\u0026gt; export default { name: \\u0026#39;ExampleWidget\\u0026#39;, widget: { /* ... */ }, inject: [\\u0026#39;$dashboard\\u0026#39;], mounted() { // 组件通过 this.$dashboard 访问容器中的属性或方法 this.$dashboard.notify(\\u0026#39;example widget mounted\\u0026#39;) }, /* ... */ } \\u0026lt;/script\\u0026gt; \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:3:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#inject\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"36 Props 容器中的组件可以接收一些上层传递的参数，如下： 参数 类型 说明 item Object 组件实例数据 params Object 组件参数，用于接收用户已配置的参数，支持 .sync 修饰符 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:4:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#props\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"37 Widget Properties 属性 类型 必填 说明 name String Y 组件名称，必须且唯一（同 Vue 组件 name 属性） widget Object Y 组件配置信息，参考文档 widget 配置如下： 属性 类型 必填 说明 name String Y 组件名称，用于在组件列表中显示组件名称 icon String Y 组件图标，用于在组件列表中显示组件图标，支持 el-icon、iconfont 和 svg-icon params Object N 组件参数，一般搭配 setting 钩子函数使用 disabled Boolean N 是否禁用组件，设置为 true 则不会被注册（组件弃用时可设置为 true） hidden Boolean N 是否隐藏组件，设置为 true 则不会在组件列表中显示（组件即将弃用时可设置为 true） w Number Y 组件宽度 h Number Y 组件高度 minW Number N 组件最小宽度 minH Number N 组件最小高度 maxW Number N 组件最大宽度 maxH Number N 组件最大高度 isResizable Boolean N 是否可调整大小 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:5:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#widget-properties\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38 Widget Events 事件名 类型 说明 回调参数 refresh Function hook for refresh widget item item setting Function hook for setting widget item item move Function hook for moving widget item item, \\u0026hellip;args moved Function hook for moved widget item item, \\u0026hellip;args resize Function hook for resizing widget item item, \\u0026hellip;args resized Function hook for resized widget item item, \\u0026hellip;args containerResized Function hook for resized grid container item, \\u0026hellip;args 参数说明： item：Object，组件实例数据，参考文档 args：Array，传递给事件的其他参数，参考文档 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:6:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#widget-events\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"39 Widget Styles 组件默认含有 box-shadow、background-color 等样式，可在组件根节点通过以下样式调整或根据实际情况自行覆盖。 名称 类型 说明 shadow prop 组件阴影，可选值：always、hover、never，默认值：always .bg-transparent class 组件背景透明 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:7:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#widget-styles\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"40 Widget Directory dashboard 组件统一存放目录： 通用组件：@/components/Dashboard/widgets/ 模块组件：@/views/{module_name}/widgets/ \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-widget-docs/:8:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"uri\":\"/posts/dashborad-widget-docs/#widget-directory\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"Dashboard 组件 1 是一个公共模板组件，用于快速创建 Dashboard 页面。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:0:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"33 Basic Usage 每个模块的 dashboard 页面可继承 Dashboard 组件，如： \\u0026lt;script\\u0026gt; import Dashboard from \\u0026#39;@/components/Dashboard\\u0026#39; export default { name: \\u0026#39;Dashboard\\u0026#39;, extends: Dashboard, } \\u0026lt;/script\\u0026gt; 使用 registerComponents 函数注册组件，通用组件模板中默认已导入，模块组件需要自行导入，如： \\u0026lt;script\\u0026gt; import Dashboard, { registerComponents } from \\u0026#39;@/components/Dashboard\\u0026#39; // 加载 widgets 目录下所有组件 const requireComponents = require.context(\\u0026#39;./widgets\\u0026#39;, true, /\\\\.vue$/) const components = registerComponents(requireComponents) export default { name: \\u0026#39;Dashboard\\u0026#39;, extends: Dashboard, created() { // 加载组件列表 this.addComponents(\\u0026#39;组件分类\\u0026#39;, components) }, } \\u0026lt;/script\\u0026gt; 设置默认布局 \\u0026lt;script\\u0026gt; import Dashboard, { registerComponents } from \\u0026#39;@/components/Dashboard\\u0026#39; // ... export default { name: \\u0026#39;Dashboard\\u0026#39;, extends: Dashboard, data() { return { // 设置默认布局 defaultLayout: [ { i: 1, component: \\u0026#39;ExampleWidget\\u0026#39;, name: \\u0026#39;便利贴\\u0026#39;, x: 0, y: 0, w: 8, h: 8, params: { content: \\u0026#39;hello world!\\u0026#39; }}, // ... ], } }, // ... } \\u0026lt;/script\\u0026gt; 完整例子详见 @/views/dashboard/index.vue 页面。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#basic-usage\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"34 Export registerComponents (Function): 注册组件（widget.disabled 为 true 的组件不注册） param requireComponents (Function): require.context 函数 return (Array) 已注册的组件列表 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#export\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"35 Provide 提供当前 dashboard 实例给后代组件注入，用于后代组件访问容器内的属性或方法。 $dashboard (Object): 当前 dashboard 容器实例 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:3:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#provide\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"36 Data Properties componentsList (Array): 组件列表 e.g. [{ category: \\u0026lsquo;分类名称\\u0026rsquo;, components: [组件列表] }] isCollapse (Boolean): 是否折叠侧边栏 colNum (Number): 栅格列数 rowHeight (Number): 栅格行高 gaps (Array): 栅格间隙 [水平间隙，垂直间隙] e.g. [8, 8] dashboardGrid (Element): 可接收拖放的栅格容器 dashboardList (Array): 仪表盘列表 dashboard (Object): 仪表盘数据 id (Number): 仪表盘 ID route (String): 路由名称 name (String): 仪表盘名称 layout (Array): 组件布局数据 aside (String): 侧边栏位置（left 或 right） compact (Boolean): 是否垂直压缩布局 isDefault (Boolean): 是否默认布局 responsive (Boolean): 是否响应式布局 loading (Boolean): 是否正在加载/保存布局数据 defaultLayout (Array): 默认布局组件数据 hasEditPermission (Boolean): 是否有编辑权限 selectedCategory (String): 已选中的组件分类 menuCollapse (Boolean): 是否折叠组件分类菜单 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:4:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#data-properties\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"37 Computed Properties selectedDashboardId (Number): 已选中的仪表盘 ID components (Array): 所有已注册组件，用于 dashboard 布局中的组件渲染，包含 hidden 为 true 的组件 componentsListAvailable (Array): 过滤后的组件列表，用于组件列表显示，过滤 hidden 为 true 的组件，过滤组件列表为空的分类 componentsByCategory (Array): 根据 selectedCategory 获取对应的组件列表 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:5:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#computed-properties\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38 Methods \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#methods\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.1 notify(message, type = \\u0026lsquo;success\\u0026rsquo;) dashboard 显示通知 参数 类型 说明 message String 通知内容 type String 通知类型，可选值：success、warning、info、error \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:1\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#notifymessage-type--success\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.2 addComponents(category, components, isPrepend = false) 添加组件列表及分类 参数 类型 说明 category String 组件分类 components Array 组件列表 isPrepend Boolean 是否追加到组件列表开头 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:2\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#addcomponentscategory-components-isprepend--false\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.3 selectCategory(category) 选中组件分类时显示对应的组件列表 参数 类型 说明 category String 组件分类 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:3\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#selectcategorycategory\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.4 switchDashboard(id) 切换仪表盘 参数 类型 说明 id Number/String 仪表盘 ID 或者 \\u0026rsquo;new’ \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:4\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#switchdashboardid\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.5 handleCommand(type) 处理仪表盘操作 参数 类型 说明 type String 操作类型，可选值：copy、edit、delete \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:5\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#handlecommandtype\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.6 guide() 打开新手引导 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:6\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#guide\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.7 refreshAllItems() 刷新容器内所有组件的数据 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:7\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#refreshallitems\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.8 clearLayout() 清空布局 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:8\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#clearlayout\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.9 idIncrement() 生成一个自增的 id，用于组件的唯一标识 i \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:9\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#idincrement\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.10 sortItems() 对 layout 数据进行排序，按照 y 坐标从小到大，x 坐标从小到大的顺序 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:10\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#sortitems\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.11 addItem(component, widget) 添加组件到 layout 中 参数 类型 说明 component String 组件名称，对应组件的 name 属性 widget Object 组件配置对象，对应组件的 widget 属性 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:11\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#additemcomponent-widget\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.12 removeItem(i, save = true) 从 layout 中移除组件 参数 类型 说明 i String 组件的唯一标识 save Boolean 是否立即保存布局数据 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:12\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#removeitemi-save--true\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.13 confirmRemoveItem(i) 用户删除组件双重确认 参数 类型 说明 i String 组件的唯一标识 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:13\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#confirmremoveitemi\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.14 hasHook(component, hook) 判断组件是否有配置对应的 hook 参数 类型 说明 component String 组件名称，对应组件的 name 属性 hook String 需要判断的 hook 名称 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:14\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#hashookcomponent-hook\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.15 triggerHook(item, hook, args = [], save = false) 容器内的组件触发对应的 hook 参数 类型 说明 item Object 组件实例数据，参考文档 hook String 需要触发的 hook 名称 args Array 传递给 hook 的其他参数 save Boolean 触发 hook 后是否立即保存布局数据 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:15\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#triggerhookitem-hook-args---save--false\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.16 mouseInGrid(x, y) 判断鼠标是否在容器内 参数 类型 说明 x Number 鼠标 x 坐标 y Number 鼠标 y 坐标 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:16\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#mouseingridx-y\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.17 removeUnExistItems(fromLayout) 移除 layout 中不存在于所有已注册组件的组件 参数 类型 说明 fromLayout Object layout 数据 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:17\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#removeunexistitemsfromlayout\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.18 dragStart(e) 开始拖动 组件/侧栏 时，设置拖动来源 参数 类型 说明 e Event event \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:18\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#dragstarte\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.19 dragEnd(e) 结束拖动 组件/侧栏 时，清空拖动来源 参数 类型 说明 e Event event \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:19\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#dragende\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.20 drag(component, widget, e) 拖动组件时，记录拖动的组件信息和显示拖动轨迹 参数 类型 说明 component String 组件名称，对应组件的 name 属性 widget Object 组件配置对象，对应组件的 widget 属性 e Event event \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:20\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#dragcomponent-widget-e\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.21 onDragoverDashboard(e) 拖动组件经过容器时，阻止默认事件 参数 类型 说明 e Event event \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:21\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#ondragoverdashboarde\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.22 onDropDashboard(e) 拖动 组件/侧栏 放置到容器内时的拖放事件 参数 类型 说明 e Event event \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:22\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#ondropdashboarde\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.23 getDashboard() 通过 route 获取 dashboard 数组（后端自动获取组织 ID） \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:23\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#getdashboard\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.24 saveDashboard() 保存 dashboard \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:24\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#savedashboard\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.25 addDashboard() 新增 dashboard \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:25\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#adddashboard\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.26 updateDashboard() 更新 dashboard \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:26\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#updatedashboard\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"38.27 deleteDashboard() 删除 dashboard \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:6:27\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#deletedashboard\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"39 Appendix A: Data Dictionary 仅供参考 字段名 字段类型 字段说明 id int 仪表盘 ID route varchar(150) 仪表盘路由 layout longtext 仪表盘布局 organization_id bigint 组织 ID create_time datetime 创建时间 update_time datetime 更新时间 aside varchar(15) 侧栏位置 compact varchar(5) 压缩布局 name varchar(250) 仪表盘名称 dashboard 表结构 CREATE TABLE `dashboard` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `route` varchar(150) NOT NULL DEFAULT \\u0026#39;\\u0026#39; COMMENT \\u0026#39;dashborad 名称\\u0026#39;, `layout` longtext COMMENT \\u0026#39;dashborad 布局 JSON\\u0026#39;, `organization_id` bigint(11) DEFAULT \\u0026#39;0\\u0026#39; COMMENT \\u0026#39;组织 id\\u0026#39;, `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT \\u0026#39;创建时间\\u0026#39;, `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT \\u0026#39;更新时间\\u0026#39;, `aside` varchar(15) DEFAULT NULL COMMENT \\u0026#39;侧栏位置\\u0026#39;, `compact` varchar(5) NOT NULL DEFAULT \\u0026#39;false\\u0026#39; COMMENT \\u0026#39;压缩布局\\u0026#39;, `name` varchar(250) DEFAULT NULL COMMENT \\u0026#39;仪表盘名称\\u0026#39;, PRIMARY KEY (`id`), KEY `name` (`route`) ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT=\\u0026#39;Dashboard 组件布局数据\\u0026#39;; \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:7:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#appendix-a-data-dictionary\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"40 Appendix B: API Reference 详见 dashboard.js 基于 Vue2 和 vue-grid-layout 开发的拖拽式 Dashboard 模板，查看源码。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashborad-template-docs/:8:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"uri\":\"/posts/dashborad-template-docs/#appendix-b-api-reference\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"1 仪表盘简介 仪表盘（dashboard）作为一种直观、灵活的数据可视化工具，正在越来越多地应用于各种领域，帮助用户实时监控和分析数据。常见于各类数据分析平台、数据可视化平台、数据大屏等场景。 传统的仪表盘往往是开发者固定好的，用户只能使用，无法自定义。而拖拽式仪表盘则可以让用户自由地选择、拖拽、调整仪表盘中的各种组件，从而实现自定义的仪表盘。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:1:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#仪表盘简介\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2 功能需求 由于本系列文章写作在设计和开发之后，所以先一睹为快，看看最终的效果：在线 Demo 技术背景是基于 Vue2 实现，功能需求大致如下： \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:2:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#功能需求\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2.1 布局需求 仪表盘布局是拖拽式仪表盘的核心功能之一。布局应该是一个可复用的模板，因为对于一个中后台系统，往往会有多个仪表盘，所有基础功能应该提炼出来，以便于快速复用。 组件拖放到布局容器中时，用户应能够自由拖拽、调整组件的大小和位置，也可以对组件进行排序、刷新、删除等操作 允许创建、删除、复制布局，每个布局可以有不同的组件排列 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:2:1\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#布局需求\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2.2 组件需求 统一的配置项（宽高、是否可调整大小、各种事件钩子等） 组件分类 自动加载组件列表 组件独立（每个组件有自己完整的生命周期） 每个组件应该拥有相同的配置项，以便于按照相同的规范限制进行后续的组件开发。 组件统一存放在一个文件夹中，仪表盘模板自动加载这个文件夹中的所有组件到组件列表。 组件列表中的组件可以通过拖拽或者点击添加到布局容器中。 组件需要有分类，例如：模块 A 的组件、模块 B 的组件等。因为虽然系统中的每个模块的仪表盘只需要显示当前模块相关的图表组件，但是整个系统的仪表盘需要显示各个模块的图表统计数据，所以需要对组件进行分类。 另外，应该有一个通用分类，用于存放所有模块都可以使用的组件。例如：便签、天气组件、时间组件等。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:2:2\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#组件需求\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2.3 布局和组件交互 仪表盘布局内通常有多个组件，布局和组件之间可能需要进行交互，例如： 点击总的刷新按钮，所有组件都刷新；点击某个组件的刷新按钮，只刷新当前组件 点击某个组件的设置按钮，弹出设置框，设置当前组件的配置项保存到当前布局数据中 点击某个组件的删除按钮，从当前布局数据中删除当前组件 …… \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:2:3\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#布局和组件交互\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"2.4 用户角色和权限管理需求 在拖拽式仪表盘中，不同用户角色可能具有不同的访问权限和操作权限。 管理员拥有完整的权限： 可以查看所有仪表盘 可以编辑所有仪表盘 可以删除除默认仪表盘之外的所有仪表盘 可以拖拽、调整所有组件在仪表盘中的位置和大小 普通用户只能永远部分权限： 可以查看所有仪表盘 工作台仪表盘可以新增、删除、编辑组织内可见的仪表盘布局 工作台仪表盘可以拖拽、调整组件在非默认仪表盘布局中的位置和大小 其他模块的仪表盘只能查看和刷新，不能编辑 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:2:4\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#用户角色和权限管理需求\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"拖拽式仪表盘系列\"],\"content\":\"3 总结 通过分析，简单来说，拖拽式仪表盘的功能需求主要包括： 布局需求 组件需求 布局和组件交互 用户角色和权限管理需求 了解清楚需求后，下一篇文章将探讨拖拽式仪表盘的布局模板设计。 \",\"date\":\"2023-10-12\",\"objectID\":\"/posts/dashboard-analysis/:3:0\",\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"uri\":\"/posts/dashboard-analysis/#总结\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:0:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"21 引言 会写 Markdown 的人很多，但写得好 Markdown 的人却很少。这一方面是 Markdown 生态系统自身的问题：语法变种和实现方式 五花八门，互不兼容甚至相互矛盾。 另一方面，也鲜有人愿意花时间去仔细阅读 Markdown 的技术规范；大多数人都只是读了一两篇「速成」，就自我批准出师了，对于一些细节问题并未关注；如果在写作中遇到，也是凭想象和直觉随意判断。 由此，就产生了大量语法天马行空、版面张牙舞爪，让读者和排版软件都困惑不已的 Markdown 文件。 既然 JavaScript 有 ESLint，Python 有 PyLint，是不是 Markdown 也有 markdownlint 呢？答案是肯定的！ \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:1:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#引言\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"22 示例 本博客源码已引入 markdownlint 规范，可下载本博客源码查看配置。 Lruihao/hugo-blog github.com/Lruihao/hugo-blog \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:2:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#示例\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"23 引入 markdownlint markdownlint 是一个 Markdown 语法检查工具，它可以检查 Markdown 文件中的语法错误，以及一些不规范的写法，让 Markdown 干净又卫生。 markdownlint 有两个版本，分别是 Mark Harrison 基于 Ruby 的 原版 和 David Anson 基于 Node.js 的 移植版。Node.js 版在人气和活跃程度上后来居上，本文也以 Node.js 版为例。 markdownlint 可以在多个场景下使用，包括： 在线版 VSCode 扩展 markdownlint-cli 和 markdownlint-cli2 本文主要的目的是介绍 markdownlint-cli2 的使用，因为它可以在项目中集成，方便团队协作。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:3:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#引入-markdownlint\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"23.1 markdownlint cli 历史 根据 David 的博客1，在大约 2015 年左右 Igor Shubovych 和他探讨了开发 CLI 工具的想法，当时，David 还没做好准备，所以 Igor 独自开发了 markdownlint-cli 这个 CLI 工具。 经过两年的发展，越来越多的人开始使用 markdownlint-cli，于是 David 开始给 markdownlint-cli 项目贡献代码，添加新功能，并在之后三年里成为了主要的维护人员。直到 2020 年，David 觉得在别人的项目中，很难改变一些事情（可能涉及向后兼容性的问题），因此他重新建立了一个名叫 markdownlint-cli2 的项目，在 markdownlint-cli 的基础上进行了改进，使其具有更快的执行速度、更灵活的配置和更少的依赖等优点。 目前，这两个工具仍然随着 markdownlint 的更新而更新。如果已经在使用 markdownlint-cli 的旧项目，可以继续使用它，以避免出现未知的问题。而对于新引入的项目，可以考虑使用更强大的 markdownlint-cli2。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:3:1\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#markdownlint-cli-历史\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"23.2 安装 markdownlint-cli2 npm install markdownlint-cli2 --save-dev 配置快捷命令： 安装 markdownlint-rule-search-replace 插件2： npm install markdownlint-rule-search-replace --save-dev 在项目根目录下创建 .markdownlint.jsonc 文件，配置规则： 在项目根目录下再创建 .markdownlint-cli2.jsonc 文件，配置规则： \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:3:2\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#安装-markdownlint-cli2\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"23.3 安装 lint-staged npm install lint-staged --save-dev 配置 .lintstagedrc.json： \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:3:3\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#安装-lint-staged\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"23.4 安装 husky 本教程基于 husky 8 版本，最新版本方式以 husky 官网教程为准。 npx husky-init \\u0026amp;\\u0026amp; npm install 配置 .husky/pre-commit #!/usr/bin/env sh . \\u0026#34;$(dirname -- \\u0026#34;$0\\u0026#34;)/_/husky.sh\\u0026#34; npx lint-staged 这样每次提交代码时，就会自动检查并修复 content 目录下的所有 Markdown 文件中的语法错误。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:3:4\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#安装-husky\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"24 引入 AutoCorrect \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:4:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#引入-autocorrect\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"24.1 盘古之白 在很多中文社区，中英文之间要手动加空格，俗称「盘古之白」，都是不成文的风格要求。这项要求是否合理、又该如何满足，是很有价值的话题，但超出了本文的讨论范围3。 这里，只简单概括通说：中英文之间加入空隙，是为了实现视觉上的区隔，更加美观和易读。理想情况下，这种「空隙」应当由排版引擎自动加入，宽度宜为 1/4 个全角空格（em）。但由于数字排版环境复杂多变，在大多数时候（包括最常见的网页环境）不能指望排版引擎有这种能力，因此只能退而求其次，手动插入一个半角空格（因其宽度通常接近于 1/4 em），达到类似效果。 如果想要在中英文之间手动加空格，有什么自动检查和补全的方法吗？ 答案是当然有，而且选择也不止一个。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:4:1\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#盘古之白\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"24.2 pangu.js 其中，最著名的可能是 pangu.js 项目。如果你用过一个叫做「为什么你们就是不能加个空格呢？」的浏览器插件，那你也就用过 pangu.js —— 它正是出自同一位作者之手、以 pangu.js 为底层支撑的。Hugo FixIt 主题也内置了 pangu.js 以自动优化博客文章内容中西混排。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:4:2\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#pangujs\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"24.3 AutoCorrect 另一个选择是 AutoCorrect。与主要关注文本内容的 pangu.js 相比，AutoCorrect 出生于 Ruby 语言的中文社区，因此从一开始就考虑到了编程代码中的中英混排场景（可以参见该项目的 测试文件），通用性更强。 pangu.js 和 AutoCorrect 的对比： 项目 在线版 VSCode 扩展 命令行工具 pangu.js ❌ ❌ ✅ AutoCorrect AutoCorrect Editor AutoCorrect ✅ pangu.js 没有官方 VSCode 插件，使用较多的是 xlthu 开发的 Pangu-Markdown 第三方移植版 pangu.js 的命令行工具受限于 Node.js，需要通过 npm 安装：npm i pangu AutoCorrect 的命令行工具则可独立安装，同时也有 Rust、Node.js 等更多语言版本 我在博客、VSCode、浏览器插件中都使用了 pangu.js，长期以来，就会发现很多问题，它的便捷同时也带来了“暴力”，处理规则不可控，这一直让我很头疼，所以本文尝试使用 AutoCorrect 替代 pangu.js。事实上，AutoCorrect 的效果确实更好。 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:4:3\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#autocorrect\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"24.4 Use AutoCorrect in NPM 安装 autocorrect-node： npm install autocorrect-node --save-dev 修改快捷命令： 修改 .lintstagedrc.json： 新增 .autocorrectignore： # AutoCorrect Link ignore rules. # https://github.com/huacnlee/autocorrect # # Like `.gitignore`, this file to tell AutoCorrect which files need to check, some need to ignore. node_modules/ build/ public/ resources/ 执行 npx autocorrect init 拉取默认 .autocorrectrc 配置，然后添加一条规则： textRules: # sorted by `LC_ALL=C sort` command 一二三,四五六.七八九: 0 \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:4:4\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#use-autocorrect-in-npm\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"25 总结 本文主要介绍了 markdownlint-cli2 和 AutoCorrect 两个工具，前者用于检查 Markdown 语法和风格，后者用于自动补齐中英文之间的「盘古之白」。这两个工具都可以在项目中集成，方便统一规范、团队协作。 If one is good, two must be better [markdownlint-cli2 is a new kind of command-line interface for markdownlint]\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; markdownlint-rule-search-replace 用于搜索和替换模式的自定义 markdownlint 规则\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; 如果有进一步兴趣，请阅读知乎讨论「中英文混排时中文与英文之间是否要有空格？」，W3C 标准草案《中文排版需求》§3.2.2，以及收听《字谈字畅》播客 第 14 期。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2023-10-11\",\"objectID\":\"/posts/markdownlint/:5:0\",\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"title\":\"给你的 Markdown 挑挑刺\",\"uri\":\"/posts/markdownlint/#总结\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"53 摘要 循环复杂度（Cyclomatic Complexity）最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:1:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#摘要\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"53.1 术语说明 虽然认知复杂度（Cognitive Complexity）是一种语言中立的度量标准，同样适用于文件和类，以及方法、过程、函数等等，但为了方便起见，本文中使用面向对象的术语“类”和“方法”。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:1:1\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#术语说明\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"54 引言 循环复杂度（Cyclomatic Complexity）是一种用于衡量代码中控制流的度量标准，它最初是由 Thomas J. McCabe 在 1976 年提出的。1 该度量标准的目的是衡量代码的“可测试性和可维护性”。虽然它在衡量前者方面表现出色，但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准，它摒弃了使用数学模型评估代码的做法，以弥补循环复杂度的不足之处，并产生更准确地反映方法、类和应用程序的相对难度的度量标准。 与此同时，循环复杂度已经不再全面。它于 1976 年在 Fortran 环境中制定，不包括像 try/catch 和 lambda 这样的现代语言结构。 最后，由于每个方法的最小循环复杂度分数为 1，我们无法知道具有高聚合循环复杂度的任何给定类是一个大型、易于维护的域类，还是一个具有复杂控制流的小型类。除了类级别之外，广泛认可的观点是应用程序的循环复杂度得分与其代码行数总和相关。换句话说，循环复杂度在方法级别以上几乎没有用处。 为了解决这些问题，认知复杂度（Cognitive Complexity）已经被制定出来，以解决现代语言结构的问题，并产生在类和应用程序级别上有意义的值。更重要的是，它摒弃了基于数学模型评估代码的做法，以便能够提供与程序员对理解流程所需的心智或认知努力的直觉相符的控制流评估。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:2:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#引言\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"55 问题示例 从一个示例开始讨论认知复杂度可以帮助理解它的应用对象。下面的两个方法具有相同的循环复杂度，但在可理解性方面却存在明显的差异。 循环复杂度的数学模型给予这两个方法相同的权重，然而直观上很明显，sumOfPrimes 方法的控制流比 getWords 方法更难理解。这就是为什么认知复杂度放弃了使用数学模型评估控制流的做法，而采用了一组简单的规则，将程序员的直觉转化为数字。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:3:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#问题示例\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"56 基本准则和方法 根据三个基本规则来评估认知复杂度得分： 忽略允许多个语句可读性缩写成一个的结构 每次中断代码的线性流程时增加一个（加一） 嵌套时进行增量计算 此外，复杂度得分由四种不同类型的增量组成： A. 嵌套（Nesting）— 对嵌套控制流结构进行评估 B. 结构（Structural）— 对受嵌套增量影响并增加嵌套计数的控制流结构进行评估 C. 基础（Fundamental）— 对不受嵌套增量影响的语句进行评估 D. 混合（Hybrid）— 对不受嵌套增量影响的控制流结构进行评估 虽然在数学上，增量的类型没有影响，每个增量都会将最终得分增加一点，但对被计数的特征类别进行区分可以更容易地理解嵌套增量适用和不适用的地方。 这些规则及其背后的原则在以下章节中进一步详细介绍。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:4:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#基本准则和方法\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"57 忽略简写 在制定认知复杂度的过程中，一个指导原则是它应该激励良好的编码实践。也就是说，它应该忽略或减少使代码更易读的特性。 方法的结构本身就是一个很好的例子。将代码分解为方法可以将多个语句压缩为一个具有描述性名称的调用，即“简写（shorthand）”。因此，认知复杂度不会针对方法进行增量计算。 认知复杂度还忽略许多编程语言中常见的空合并运算符，因为它们允许将多行代码缩减为一行。例如，下面两个代码示例执行相同的操作： 左侧版本的含义需要一些时间来理解，而一旦理解了空合并语法，右侧版本就立即清晰明了。因此，认知复杂度忽略了空合并运算符。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:5:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#忽略简写\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58 中断线性流程 在制定认知复杂度的过程中，另一个指导原则是打破代码从上到下、从左到右的正常线性流程的结构会使维护者在理解代码时需要付出更多的努力。为了认可这种额外的努力，认知复杂度对以下结构进行结构增量评估： 循环结构：for、while、do while、\\u0026hellip; 条件判断：三元运算符、if、#if、#ifdef、\\u0026hellip; 它对混合增量进行评估： else if、elif、else、\\u0026hellip; 对于这些结构，不会评估嵌套增量，因为在阅读条件语句时已经承担了心理成本。 这些增量目标对于那些习惯于圈复杂度的人来说可能会很熟悉。此外，认知复杂度还会增加以下方面的复杂度： \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#中断线性流程\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58.1 捕获（Catches） catch 语句与 if 语句一样，代表了控制流程中的一种分支。因此，每个 catch 子句都会对认知复杂度进行结构增量评估。请注意，无论捕获了多少种异常类型，每个 catch 子句只会给认知复杂度得分增加一个点。try 和 finally 块则完全被忽略。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:1\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#捕获catches\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58.2 开关（Switches） 一个 switch 语句及其所有的 case 合并会导致一个单独的结构增量。 在圈复杂度中，switch 语句被视为类似于 if-else if 链的模拟。也就是说，switch 语句中的每个 case 都会导致增量，因为它在控制流的数学模型中引起了一个分支。 但是从维护者的角度来看，一个 switch 语句，它将一个变量与一组明确命名的字面值进行比较，比一个 if-else if 链容易理解得多，因为后者可能进行任意数量的比较，使用任意数量的变量和值。 简而言之，必须仔细阅读 if-else if 链，而 switch 语句通常可以一目了然地理解。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:2\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#开关switches\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58.3 逻辑运算符序列（Sequences of logical operators） 出于类似的原因，认知复杂度不会对每个二进制逻辑运算符进行增量计算。相反，它对每个二进制逻辑运算符序列进行基本增量评估。例如，考虑以下几对示例： a \\u0026amp;\\u0026amp; b a \\u0026amp;\\u0026amp; b \\u0026amp;\\u0026amp; c \\u0026amp;\\u0026amp; d a || b a || b || c || d 理解每对示例中的第二行并不比理解第一行困难太多。然而，对于理解下面两行的努力确实存在明显的差异： a \\u0026amp;\\u0026amp; b \\u0026amp;\\u0026amp; c \\u0026amp;\\u0026amp; d a || b \\u0026amp;\\u0026amp; c || d 因为混合运算符的布尔表达式变得更难理解，所以认知复杂度会对每个新的相同运算符序列进行增量计算。例如： if (a // +1 for `if` \\u0026amp;\\u0026amp; b \\u0026amp;\\u0026amp; c // +1 || d || e // +1 \\u0026amp;\\u0026amp; f) // +1 if (a // +1 for `if` \\u0026amp;\\u0026amp; // +1 !(b \\u0026amp;\\u0026amp; c)) // +1 虽然相对于圈复杂度，认知复杂度对相同的运算符提供了一种“折扣”，但它会对所有的二元布尔运算符序列进行增量计算，例如变量赋值、方法调用和返回语句中的序列。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:3\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#逻辑运算符序列sequences-of-logical-operators\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58.4 递归（Recursion） 与圈复杂度不同，认知复杂度对递归循环中的每个方法（无论是直接递归还是间接递归）都会增加一个基本增量。 这个决定有两个动机。首先，递归代表了一种“元循环（meta-loop）”，而认知复杂度对循环进行增量计算。其次，认知复杂度旨在估计理解方法控制流的相对难度，即使对一些经验丰富的程序员来说，递归也很难理解。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:4\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#递归recursion\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"58.5 跳转到标签（Jumps to labels） 使用 goto 语句会给认知复杂度增加一个基本增量，同样的，使用带有标签的 break 或 continue 语句以及其他多级跳转（如某些语言中的带有数字的 break 或 continue 语句）也会增加增量。但是，因为提前返回通常可以使代码更清晰，其他跳转或提前退出不会增加增量。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:6:5\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#跳转到标签jumps-to-labels\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"59 嵌套流程中的增量 直观上很明显，一系列线性的五个 if 和 for 结构比相同的五个结构连续嵌套更容易理解，而不管每个系列中的执行路径数量如何。因为这样的嵌套增加了理解代码的心理需求，认知复杂度对其进行了嵌套增量的评估。 具体来说，每当一个导致结构增量或混合增量的结构嵌套在另一个这样的结构内部时，每个嵌套级别都会增加一个嵌套增量。例如，在下面的示例中，对于方法本身或 try 语句，都没有嵌套增量，因为这两个结构都不会导致结构增量或混合增量： 然而，if、for、while和catch结构都会受到结构增量和嵌套增量的影响。 此外，顶层方法会被忽略，并且 lambda 表达式、嵌套方法和类似特性不会导致结构增量，但当这些方法嵌套在其他类似方法的结构内部时，会增加嵌套级别： \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:7:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#嵌套流程中的增量\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"60 影响 认知复杂度的主要目标是计算方法分数，以更准确地反映方法的相对可理解性，并且其次目标是处理现代语言结构并生成在方法级别以上有价值的度量标准。可以证明，处理现代语言结构的目标已经实现。下面将对另外两个目标进行详细讨论。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:8:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#影响\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"60.1 直观地“正确”的复杂性分数 这次讨论始于一对具有相等圈复杂度但明显不同可理解性的方法。现在是重新审视这些方法并计算它们的认知复杂度分数的时候了。 认知复杂度算法给出了这两个方法明显不同的分数，这些分数更能反映它们相对可理解性的差异。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:8:1\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#直观地正确的复杂性分数\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"60.2 高于方法级别的有价值的指标 此外，由于认知复杂度不会针对方法结构增加增量，聚合的数值变得有用起来。现在，通过比较它们的度量值，你可以轻松区分一个包含大量简单的 getter 和 setter 的领域类和一个包含复杂控制流的类。因此，认知复杂度成为衡量类和应用程序相对可理解性的工具。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:8:2\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#高于方法级别的有价值的指标\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"61 结论 编写和维护代码是人类过程，它们的输出必须符合数学模型，但它们本身并不适合数学模型。这就是为什么数学模型不足以评估它们所需努力的原因。 认知复杂度打破了使用数学模型评估软件可维护性的做法。它起源于圈复杂度所设定的先例，但使用人类判断来评估应该如何计算结构，并决定整体模型应该加入什么内容。结果，它产生了方法复杂度分数，相对于以前的模型，程序员认为这些分数更公平地评估了可理解性。 此外，因为认知复杂度对于一个方法没有“进入成本”的要求，它不仅在方法级别产生了这些更公平的相对评估，还在类和应用程序级别上产生了相应的评估。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:9:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#结论\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"62 参考文献 本文翻译自 G. Ann Campbell 的文章“{Cognitive Complexity} a new way of measuring understandability”2，原文发表于 2023 年 8 月 29 日，版本号为 1.7。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:10:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#参考文献\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"63 附录 A：补偿用法 认知复杂度被设计为一种与语言无关的度量标准，但不可忽视的是不同的编程语言提供了不同的特性。例如，COBOL 中没有 else if 结构，而 JavaScript 直到最近也缺乏类似的结构。不幸的是，这些缺陷并不能阻止开发人员需要这些结构或者试图用手头的工具构建类似的结构。在这种情况下，严格遵守认知复杂度规则会导致不成比例的高分。 因此，为了不惩罚一种语言相对于另一种语言的使用，对于语言的缺陷，即在考虑的语言中普遍使用并且在大多数现代语言中都是期望的结构，但在该语言中缺失的结构（例如 COBOL 缺少的 else if），可以进行例外处理。 另一方面，当一种语言创新引入一个特性时，例如 Java 7 可以一次捕获多个异常类型，其他语言中缺乏这种创新不应被视为缺陷，因此不应有例外。 这意味着如果一次捕获多个异常类型成为一种常见预期的语言特性，那么对于不提供该功能的语言中的“额外”catch 子句可能会添加例外。这种可能性并没有排除，但对于是否添加这样的未来例外的评估应该以保守为原则。换句话说，新的例外应该慢慢引入。 另一方面，如果 COBOL 标准的未来版本添加了\\u0026quot;else if\\u0026quot;结构，应尽快放弃 COBOL 的\\u0026quot;else \\u0026hellip; if\\u0026quot;例外（如下所述）。 到目前为止，已经确定了三个例外情况： \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:11:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#附录-a补偿用法\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"63.1 COBOL: Missing else if 对于缺乏 else if 结构的 COBOL 语言，一个 else 子句中如果只包含一个 if 语句，则不会增加嵌套惩罚。此外，else 本身不会增加复杂度。也就是说，如果 else 后面紧跟着 if 语句，尽管从语法上讲它并不是 else if，但在计算复杂度时会视作 else if。 例如： IF condition1 // +1 structure, +0 for nesting ... ELSE IF condition2 // +1 structure, +0 for nesting ... ELSE IF condition3 // +1 structure, +0 for nesting statement1 IF condition4 // +1 structure, +1 for nesting ... END-IF END-IF ENDIF ENDIF. \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:11:1\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#cobol-missing-else-if\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"63.2 JavaScript: Missing class structures 尽管 ECMAScript 6 规范最近为 JavaScript 添加了类的功能，但这个特性尚未被广泛采用。实际上，许多流行的框架要求继续使用一种补偿习惯用法：使用外部函数作为替代，创建一种命名空间或伪类。为了不对 JavaScript 用户进行惩罚，当外部函数仅用作声明机制时（即它们只包含顶级的声明），它们将被忽略。 然而，如果一个函数位于顶级（即不嵌套在子函数内部），并且包含需要进行结构增加的语句，那么说明它不仅仅是纯粹的声明使用。因此，这类函数应该接受标准处理。 例如： \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:11:2\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#javascript-missing-class-structures\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"63.3 Python: Decorators Python 的装饰器习惯用法允许在不修改函数本身的情况下向现有函数添加额外的行为。这是通过在装饰器中使用嵌套函数来实现的，嵌套函数提供了额外的行为。 为了不对使用其语言的 Python 开发人员进行惩罚，已经添加了一个例外。然而，已经试图对例外进行明确定义。具体来说，要符合例外的条件，一个函数只能包含一个嵌套函数和一个 return 语句。 例如： \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:11:3\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#python-decorators\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"64 附录 B：规范 本节的目的是对增加认知复杂度的结构和情况进行简明列举，但需考虑 附录 A 中列出的例外情况。这旨在提供一个全面的列表，但并非穷尽所有编程语言。也就是说，如果某种语言对关键字有非典型的拼写，例如用 elif 表示 else if，那么在此处的省略并不意味着在规范中忽略该结构。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:12:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#附录-b规范\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"64.1 B1. 增量（Increments） 对于以下每个结构，都会增加复杂度的计数： if、else if、else 条件语句和三元运算符 switch for、foreach while、do while catch goto LABEL、break LABEL、continue LABEL、break NUMBER、continue NUMBER 连续的二元逻辑运算符 递归循环中的每个方法 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:12:1\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#b1-增量increments\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"64.2 B2. 嵌套级别（Nesting level） 以下结构会增加嵌套层级的计数： if、else if、else 条件语句和三元运算符 switch for、foreach while、do while catch 嵌套方法和类似方法的结构，如 lambda 表达式。 \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:12:2\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#b2-嵌套级别nesting-level\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"64.3 B3. 嵌套增量（Nesting increments） 以下结构将根据其在 B2 结构内的嵌套深度而增加相应的嵌套层级计数： if 条件语句和三元运算符 switch for、foreach while、do while catch \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:12:3\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#b3-嵌套增量nesting-increments\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"65 附录 C：示例 Note 译者注：在各大 IDE 中可以安装 SonarLint 插件，以便在编码过程中实时检查代码质量，详见 来自 SonarJava 分析器中的 org.sonar.java.resolve.JavaSymbol.java： 来自 sonar-persistit 中的 com.persistit.TimelyResource.java： 来自 SonarQube 中的 org.sonar.api.utils.WildcardPattern.java： 来自 YUI 中的 model.js： Thomas J. McCabe, \\u0026ldquo;A Complexity Measure\\u0026rdquo;, IEEE Transactions on Software Engineering, Vol. SE-2, No. 4, December 1976\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; G. Ann Campbell, \\u0026ldquo;Cognitive Complexity - a new way of measuring understandability\\u0026rdquo;, Sonar, 29 August 2023, Version 1.7\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2023-10-08\",\"objectID\":\"/posts/cognitive-complexity/:13:0\",\"tags\":null,\"title\":\"认知复杂度（Cognitive Complexity）\",\"uri\":\"/posts/cognitive-complexity/#附录-c示例\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"最近读了张鑫旭大佬的掘金小册《技术写作指南》，学到了很多写作技巧，其中感触最深的就是“技巧：如何搭建文章的框架结构”这一小节，这篇文章就来分享一下。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:0:0\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 方法论的作用 所谓方法论，通俗点讲就是套路，虽然限制了天才的火花，但是保证了合格的下限。 这个不难理解，拿武侠举例，每个门派都有剑招或者拳法，招式都是固定的，这个固定的招式就可以看成是方法论，而武功的最高境界是无招胜有招，讲求见招拆招，是不希望有固定的套路的。 但是，这些固定的招数你又不能不学，因为天才总是少数，而学习固定的招式，至少可以保证门派弟子比路人强一截。 学习如何说话，学习如何写作也是类似的，对于那些天生会说话，天生会写作的人而言，方法论反而是个桎梏，会限制他们的发挥。 但是对于原本不是这块料的人而言，方法论可以让你迅速进入学习的正轨，保证了实践结果不至于太差。 张鑫旭大佬结合自己的写作经验，总结出了一套核心思想，并抽象出了若干写作方法论。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:1:0\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#方法论的作用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 核心思想 文章书写的核心思想无非这两个： 文字前后连贯； 内容重点突出。 这些核心思想和人类的认知特点正好是相匹配的。 \\u0026hellip; \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:2:0\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#核心思想\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 具体的写作套路 这里按照文章类型的不同讲下可以拿来套用的写作路数。 正所谓一图胜千言，每一种写作结构都做了示意图。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:0\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#具体的写作套路\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.1 1. 技术科普 技术科普是人人都可以创作的一种文章类型，这类文章适合新人阅读，受众广泛。 这类文章结构可以如下图这般搭建： graph LR A[\\\"作用是什么？ （亮点前置）\\\"] B((\\\"效果演示 (如果有)\\\")) C[\\\"语法和参数\\\"] D[\\\"具体使用说明 （主要篇幅）\\\"] E{\\\"案例\\\"} F[\\\"细节知识（包括兼容性）\\\"] G[\\\"点评总结 （稀缺内容）\\\"] A---B---C---D---F---G D-.-\\u003eE graph LR A[\\\"作用是什么？ （亮点前置）\\\"] B((\\\"效果演示 (如果有)\\\")) C[\\\"语法和参数\\\"] D[\\\"具体使用说明 （主要篇幅）\\\"] E{\\\"案例\\\"} F[\\\"细节知识（包括兼容性）\\\"] G[\\\"点评总结 （稀缺内容）\\\"] A---B---C---D---F---G D-.-\\u003eE graph LR A[\\\"作用是什么？ （亮点前置）\\\"] B((\\\"效果演示 (如果有)\\\")) C[\\\"语法和参数\\\"] D[\\\"具体使用说明 （主要篇幅）\\\"] E{\\\"案例\\\"} F[\\\"细节知识（包括兼容性）\\\"] G[\\\"点评总结 （稀缺内容）\\\"] A---B---C---D---F---G D-.-\\u003eE graph LR A[\\\"作用是什么？ （亮点前置）\\\"] B((\\\"效果演示 (如果有)\\\")) C[\\\"语法和参数\\\"] D[\\\"具体使用说明 （主要篇幅）\\\"] E{\\\"案例\\\"} F[\\\"细节知识（包括兼容性）\\\"] G[\\\"点评总结 （稀缺内容）\\\"] A---B---C---D---F---G D-.-\\u003eE 很多在线文档也是按照这个结构撰写的。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:1\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#1-技术科普\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.2 2. 原理剖析 原理剖析类的文章对于创作者加深对当前技术的理解很有帮助，虽然受众不一定广泛，但是对于自身的学习却很有帮助。 通常，这类文章可以遵循由表及里，层层深入的架构策略，方便他人的学习与理解。 graph LR A[现象描述] B((\\\"想象演示 （视频或图片）\\\")) C[解释说明] D[基本概念] E[浅层原因] F[\\\"更深入解释 （体现专业深度）\\\"] G[\\\"启示与拓展 （稀缺内容）\\\"] D-.-\\u003eC A---B---C---F---G E-.-\\u003eC graph LR A[现象描述] B((\\\"想象演示 （视频或图片）\\\")) C[解释说明] D[基本概念] E[浅层原因] F[\\\"更深入解释 （体现专业深度）\\\"] G[\\\"启示与拓展 （稀缺内容）\\\"] D-.-\\u003eC A---B---C---F---G E-.-\\u003eC graph LR A[现象描述] B((\\\"想象演示 （视频或图片）\\\")) C[解释说明] D[基本概念] E[浅层原因] F[\\\"更深入解释 （体现专业深度）\\\"] G[\\\"启示与拓展 （稀缺内容）\\\"] D-.-\\u003eC A---B---C---F---G E-.-\\u003eC graph LR A[现象描述] B((\\\"想象演示 （视频或图片）\\\")) C[解释说明] D[基本概念] E[浅层原因] F[\\\"更深入解释 （体现专业深度）\\\"] G[\\\"启示与拓展 （稀缺内容）\\\"] D-.-\\u003eC A---B---C---F---G E-.-\\u003eC \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:2\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#2-原理剖析\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.3 3. 功能实现 我们所有的互联网产品都是通过一个又一个的功能实现的，比方说“鼠标经过按钮变色”就属于一个功能，点击按钮复制内容也属于功能。 所有这些功能的实现都可以创作成文章，而这些文章会成为搜索引擎流量来源大户。 因为很多开发者在实现某一个功能的时候，都习惯先去找找有没有现成的代码可以直接拿来使用。 这就要求我们在文章中一定要放代码，最后配上演示页面，然后为了吸引用户继续阅读，通常会把实现好的效果放在最前面，即上面提到的亮点前置。 所以，可以尝试使用下图所示的文章结构： graph LR A[功能或效果说明] B((效果演示)) C[在线 demo] D[视频或截图] E[实现思路] F[\\\"实现代码 （读者最关心）\\\"] G[实现原理] H[总结与拓展] C-.-\\u003eB E-. 你也可以在这个位置 .-\\u003eG A---B---E---F---G---H D-.-\\u003eB graph LR A[功能或效果说明] B((效果演示)) C[在线 demo] D[视频或截图] E[实现思路] F[\\\"实现代码 （读者最关心）\\\"] G[实现原理] H[总结与拓展] C-.-\\u003eB E-. 你也可以在这个位置 .-\\u003eG A---B---E---F---G---H D-.-\\u003eB graph LR A[功能或效果说明] B((效果演示)) C[在线 demo] D[视频或截图] E[实现思路] F[\\\"实现代码 （读者最关心）\\\"] G[实现原理] H[总结与拓展] C-.-\\u003eB E-. 你也可以在这个位置 .-\\u003eG A---B---E---F---G---H D-.-\\u003eB graph LR A[功能或效果说明] B((效果演示)) C[在线 demo] D[视频或截图] E[实现思路] F[\\\"实现代码 （读者最关心）\\\"] G[实现原理] H[总结与拓展] C-.-\\u003eB E-. 你也可以在这个位置 .-\\u003eG A---B---E---F---G---H D-.-\\u003eB \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:3\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#3-功能实现\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.4 4. 使用教程 每个人对教程的理解不一样，在我的写作认知中，教程专指针对小白的那种奶妈式的教学文章，会非常详细与具体，会有大量的配图与案例，生怕对方走错一步就不知道接下来该怎么办。 这类文章其实按部就班呈现就可以了： graph LR A[\\\"背景说明 （如果有）\\\"] B[\\\"步骤1/操作1 （注意事项或示意图）\\\"] C[\\\"步骤2/操作2 （注意事项或示意图）\\\"] D[\\\"步骤3/操作3 （注意事项或示意图）\\\"] E[其他说明] A---B---C---D-- ... ---E graph LR A[\\\"背景说明 （如果有）\\\"] B[\\\"步骤1/操作1 （注意事项或示意图）\\\"] C[\\\"步骤2/操作2 （注意事项或示意图）\\\"] D[\\\"步骤3/操作3 （注意事项或示意图）\\\"] E[其他说明] A---B---C---D-- ... ---E graph LR A[\\\"背景说明 （如果有）\\\"] B[\\\"步骤1/操作1 （注意事项或示意图）\\\"] C[\\\"步骤2/操作2 （注意事项或示意图）\\\"] D[\\\"步骤3/操作3 （注意事项或示意图）\\\"] E[其他说明] A---B---C---D-- ... ---E graph LR A[\\\"背景说明 （如果有）\\\"] B[\\\"步骤1/操作1 （注意事项或示意图）\\\"] C[\\\"步骤2/操作2 （注意事项或示意图）\\\"] D[\\\"步骤3/操作3 （注意事项或示意图）\\\"] E[其他说明] A---B---C---D-- ... ---E \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:4\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#4-使用教程\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.5 5. 问题解决 如果问题解决的过程是写给公司内部的人（尤其是领导）看的，或者说写作的目的是炫一把自己解决问题的能力，则自己的思考过程一定要重点阐述。 如果你写作的目的很单纯，就是希望帮助外面遇到同样问题的人，那就可以多讲讲问题产生的原因，以及如何解决即可，别人对你的思考过程并不在意。 下面这个文章结构示意图是按照内部创作的背景设计的，强调个人在整个过程中的能动性。 graph LR A[\\\"背景描述 （如果有）\\\"] B[问题描述] C((\\\"问题演示 （视频或图片）\\\")) D[\\\"我的思考 再次思考 ...\\\"] E[\\\"初次尝试 再次尝试 ...\\\"] F{结果} G[结语] A---B---C---D==\\u003eE==\\u003eF-- YES --\\u003eG F== NO ==\\u003eD graph LR A[\\\"背景描述 （如果有）\\\"] B[问题描述] C((\\\"问题演示 （视频或图片）\\\")) D[\\\"我的思考 再次思考 ...\\\"] E[\\\"初次尝试 再次尝试 ...\\\"] F{结果} G[结语] A---B---C---D==\\u003eE==\\u003eF-- YES --\\u003eG F== NO ==\\u003eD graph LR A[\\\"背景描述 （如果有）\\\"] B[问题描述] C((\\\"问题演示 （视频或图片）\\\")) D[\\\"我的思考 再次思考 ...\\\"] E[\\\"初次尝试 再次尝试 ...\\\"] F{结果} G[结语] A---B---C---D==\\u003eE==\\u003eF-- YES --\\u003eG F== NO ==\\u003eD graph LR A[\\\"背景描述 （如果有）\\\"] B[问题描述] C((\\\"问题演示 （视频或图片）\\\")) D[\\\"我的思考 再次思考 ...\\\"] E[\\\"初次尝试 再次尝试 ...\\\"] F{结果} G[结语] A---B---C---D==\\u003eE==\\u003eF-- YES --\\u003eG F== NO ==\\u003eD 如果你是对外创作，则可以根据侧重点不同，微调写作结构。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:5\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#5-问题解决\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.6 6. 项目总结 项目总结一定是对内的，即使我们在外网看到一些大公司团队发的项目总结类的文章，也是内销转出口。 这类文章一般看起来都很高大上，但读完一阵空虚，啥也没学到。 这是正常且理所当然的，因为项目总结的目的本质上就是一种职场邀功炫技手段，而不是技术传道。 所以，这类文章的难点不在于结构设计，而是如何通过不会让人反感的朴实无华的语言透露出项目牛逼、项目人员牛逼的信息。 graph LR A[项目背景] B[取得的成绩] C((漂亮数据\\\\n或最终效果)) E[贡献] F[困难与解决] G[成长] H[主体可以是个人一可以是团队] I[总结] J[感谢] C-.-\\u003eB A---B---D---I---J subgraph D[\\\"项目详情（根据实际情况调整）\\\"] direction BT E \\u0026 F \\u0026 G---H end graph LR A[项目背景] B[取得的成绩] C((漂亮数据\\\\n或最终效果)) E[贡献] F[困难与解决] G[成长] H[主体可以是个人一可以是团队] I[总结] J[感谢] C-.-\\u003eB A---B---D---I---J subgraph D[\\\"项目详情（根据实际情况调整）\\\"] direction BT E \\u0026 F \\u0026 G---H end graph LR A[项目背景] B[取得的成绩] C((漂亮数据\\\\n或最终效果)) E[贡献] F[困难与解决] G[成长] H[主体可以是个人一可以是团队] I[总结] J[感谢] C-.-\\u003eB A---B---D---I---J subgraph D[\\\"项目详情（根据实际情况调整）\\\"] direction BT E \\u0026 F \\u0026 G---H end graph LR A[项目背景] B[取得的成绩] C((漂亮数据\\\\n或最终效果)) E[贡献] F[困难与解决] G[成长] H[主体可以是个人一可以是团队] I[总结] J[感谢] C-.-\\u003eB A---B---D---I---J subgraph D[\\\"项目详情（根据实际情况调整）\\\"] direction BT E \\u0026 F \\u0026 G---H end \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:6\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#6-项目总结\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.7 7. 会议记录 国内每年都会有很多技术峰会，当然，这几年因为口罩原因，多以线上为主了。 然后各个城市还有不少免费的技术沙龙，各个技术社区也会有一些免费的线上活动，一些知名行业从业者也会不定期直播，因此，只要你有兴趣，都可以作为观众参与其中。 参加完了，是不是可以写篇文章记录下呢？ 跟大家讲，这种文章不需要技术含量，但是访问量相当的高，因为人都是懒惰的，总希望以最低的成本收获最多的东西。 一看，嘿，这个不错，我只要花几分钟看一下，就能学到别人花好几个小时学到的东西，何乐而不为呢？哪怕什么都没学到，至少满足了自己的好奇心，怎么看都不亏。 而这类文章的内容结构也比较固定，就按照时间进行组织就好了，会议的按会议时间，直播的按直播时间。 graph LR A[\\\"会议简介 （时间、与会人等）\\\"] B((\\\"现场照片 （如果有）\\\")) C[\\\"过程1 点评（如果有）\\\"] D[\\\"过程2 点评（如果有）\\\"] E[\\\"过程3 点评（如果有）\\\"] F[自己的感受] A---B--\\u003eC-- 时间 --\\u003eD-- 顺序 --\\u003eE-- ... ---F graph LR A[\\\"会议简介 （时间、与会人等）\\\"] B((\\\"现场照片 （如果有）\\\")) C[\\\"过程1 点评（如果有）\\\"] D[\\\"过程2 点评（如果有）\\\"] E[\\\"过程3 点评（如果有）\\\"] F[自己的感受] A---B--\\u003eC-- 时间 --\\u003eD-- 顺序 --\\u003eE-- ... ---F graph LR A[\\\"会议简介 （时间、与会人等）\\\"] B((\\\"现场照片 （如果有）\\\")) C[\\\"过程1 点评（如果有）\\\"] D[\\\"过程2 点评（如果有）\\\"] E[\\\"过程3 点评（如果有）\\\"] F[自己的感受] A---B--\\u003eC-- 时间 --\\u003eD-- 顺序 --\\u003eE-- ... ---F graph LR A[\\\"会议简介 （时间、与会人等）\\\"] B((\\\"现场照片 （如果有）\\\")) C[\\\"过程1 点评（如果有）\\\"] D[\\\"过程2 点评（如果有）\\\"] E[\\\"过程3 点评（如果有）\\\"] F[自己的感受] A---B--\\u003eC-- 时间 --\\u003eD-- 顺序 --\\u003eE-- ... ---F \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:7\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#7-会议记录\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.8 8. 工具测评 这类文章也非常适合新手创作，大家应该也都见过，比方说某某框架初体验、A 框架和 B 框架我该使用哪个？ 这类文章的核心价值就在于评测，你以一个过来人的身份，是否建议读者使用这个工具之类的。 但评测是否中肯可信，还需要一些证明，这些证明就可以通过展示使用过程和最终效果来完成。 下图是可以参考使用的一种框架结构： graph LR A[\\\"故事背景 （为什么会使用此工具？）\\\"] B[使用过程全记录] C[\\\"使用感受 （核心价值）\\\"] D[\\\"优点是？缺点是？\\\"] E[\\\"和同类工具对比如何？\\\"] F[\\\"对其未来发展的判断是？\\\"] G[最后的总结] H((视频或截图)) A---B---C--\\u003eD \\u0026 E \\u0026 F--\\u003eG H-.-\\u003eB graph LR A[\\\"故事背景 （为什么会使用此工具？）\\\"] B[使用过程全记录] C[\\\"使用感受 （核心价值）\\\"] D[\\\"优点是？缺点是？\\\"] E[\\\"和同类工具对比如何？\\\"] F[\\\"对其未来发展的判断是？\\\"] G[最后的总结] H((视频或截图)) A---B---C--\\u003eD \\u0026 E \\u0026 F--\\u003eG H-.-\\u003eB graph LR A[\\\"故事背景 （为什么会使用此工具？）\\\"] B[使用过程全记录] C[\\\"使用感受 （核心价值）\\\"] D[\\\"优点是？缺点是？\\\"] E[\\\"和同类工具对比如何？\\\"] F[\\\"对其未来发展的判断是？\\\"] G[最后的总结] H((视频或截图)) A---B---C--\\u003eD \\u0026 E \\u0026 F--\\u003eG H-.-\\u003eB graph LR A[\\\"故事背景 （为什么会使用此工具？）\\\"] B[使用过程全记录] C[\\\"使用感受 （核心价值）\\\"] D[\\\"优点是？缺点是？\\\"] E[\\\"和同类工具对比如何？\\\"] F[\\\"对其未来发展的判断是？\\\"] G[最后的总结] H((视频或截图)) A---B---C--\\u003eD \\u0026 E \\u0026 F--\\u003eG H-.-\\u003eB \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:8\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#8-工具测评\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.9 9. 技术人文 如果是技术人文，则情况就会变得复杂，因为技术人文所包含的写作范围非常广泛，例如软技能分享、心理困惑答疑、职业发展指导、行业发展看法等都属于技术人文的写作范畴，而不同的主题所需要的框架结构都是不一样的。 很多文章可以从其他类型的文章中找到可以借鉴的套路，这里，我就单纯地展示下观点类的技术文章的写作结构： graph LR A[\\\"论点先行 （我认为…）\\\"] B[\\\"原因1 （案例佐证）\\\"] C[\\\"原因2 （案例佐证）\\\"] D[\\\"原因3 （案例佐证）\\\"] E[最后的总结] A---B---C---D-- ... ---E graph LR A[\\\"论点先行 （我认为…）\\\"] B[\\\"原因1 （案例佐证）\\\"] C[\\\"原因2 （案例佐证）\\\"] D[\\\"原因3 （案例佐证）\\\"] E[最后的总结] A---B---C---D-- ... ---E graph LR A[\\\"论点先行 （我认为…）\\\"] B[\\\"原因1 （案例佐证）\\\"] C[\\\"原因2 （案例佐证）\\\"] D[\\\"原因3 （案例佐证）\\\"] E[最后的总结] A---B---C---D-- ... ---E graph LR A[\\\"论点先行 （我认为…）\\\"] B[\\\"原因1 （案例佐证）\\\"] C[\\\"原因2 （案例佐证）\\\"] D[\\\"原因3 （案例佐证）\\\"] E[最后的总结] A---B---C---D-- ... ---E \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:9\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#9-技术人文\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19.10 10. 职场故事 职场故事通常都是当事人的真实经历，是比较好写的，按照时间线讲好每个时间段的故事即可，如果分享的是刚编的故事，也可以遵循这个套路： graph LR A[背景故事] B[做了什么事情] C[发生了什么结果] D[当事人的感受] E[\\\"再后来……\\\"] A---B--\\u003eC--\\u003eD--\\u003eE--\\u003eB graph LR A[背景故事] B[做了什么事情] C[发生了什么结果] D[当事人的感受] E[\\\"再后来……\\\"] A---B--\\u003eC--\\u003eD--\\u003eE--\\u003eB graph LR A[背景故事] B[做了什么事情] C[发生了什么结果] D[当事人的感受] E[\\\"再后来……\\\"] A---B--\\u003eC--\\u003eD--\\u003eE--\\u003eB graph LR A[背景故事] B[做了什么事情] C[发生了什么结果] D[当事人的感受] E[\\\"再后来……\\\"] A---B--\\u003eC--\\u003eD--\\u003eE--\\u003eB 当然，还有其他类型的技术文章，例如技术八卦、行业新闻等，我就不一一展示了，基本上都是有迹可循的。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:3:10\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#10-职场故事\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 没有固定的套路 回到本文一开始的那个观点，写作其实是没有固定的套路的，这就像武功招式一样，这一套剑法必中其要害，结果人家穿了软猬甲，刀枪不入，是不是需要变化和调整？ 写作也是这样，现实世界总是多变的，理想的条件总是难以满足，所以，套路虽好用，但也要学会应变。比方说： 不同的账号主体 不同的阅读对象 同样类型的文章，如果发布的账号主体不同，则文章的结构也会有所不同，同样的主题，给同事看的和给同行看的文章结构也是大不相同。 \",\"date\":\"2023-09-26\",\"objectID\":\"/posts/article-structure/:4:0\",\"tags\":null,\"title\":\"写作技巧：如何搭建文章的框架结构？\",\"uri\":\"/posts/article-structure/#没有固定的套路\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:0:0\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"13 背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。 Element UI 的解决办法：通过设置 max-height 或者 height 属性来实现上述需求。 Element UI 的解决不足点：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。 为了解决以上痛点/需求，减少开发和维护成本，于是我开发了 el-table-sticky 插件，在线示例。 el-table-stick github.com/Lruihao/el-table-sticky 如果你觉得这个插件还不错，赏个 star 吧 😛，如果你有更好的实现方案，欢迎提 issue 或者 PR。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:1:0\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#背景\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"14 解决思路 el-table-sticky 插件从两个不同的角度解决问题： 通过 position: sticky 属性，让 el-table 的表头等元素固定 沿用 Element UI 的 max-height 和 height 属性，通过自定义指令的方式，让 el-table 的表格内容高度自适应 插件包含 4 个指令： v-sticky-header：表头吸顶 v-sticky-footer：表尾吸底 v-sticky-scroller：横向滚动条吸底 v-height-adaptive：高度自适应 目前 4 个指令在 1.x 版本都已开发完成，已发布到 npm 上，可通过以下命令安装： npm install @cell-x/el-table-sticky 具体使用方式，本文不做赘述，详见 README.md。 接下来，我们来看看如何实现这些功能。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:2:0\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#解决思路\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"14.1 表头吸顶\\u0026amp;表尾吸底 表头吸顶是我最迫切想要解决的问题，所以在 0.x 版本开发完，我就马上发布并在公司老项目中引入了。 思路拆解： 找到 el-table__header 并赋予 sticky top 特性 Debug 发现如果 el-table-column 设置了 fixed 值，Element UI 使用的是 fixed 定位，并将 el-table__header 对应的栏位隐藏 el-table__header sticky 后为了让固定栏位保持和 Element UI 一样的效果，需要找到这些栏位，设置为 sticky，然后按左右方向堆叠位置 实现表头吸顶后，再看表尾合并行吸底效果也就是依葫芦画瓢，思路一样，于是为了复用代码，我抽离出来一个 Sticky Class。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:2:1\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#表头吸顶表尾吸底\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"14.2 高度自适应 沿用 Element UI 的 max-height 和 height 属性，所以 el-table 初始化时必须设置高度。 这个就比较简单了，监听 el-table 元素的 resize，然后 JS 计算出表格的可用高度，最后调用 $table.layout.setHeight 设置高度即可。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:2:2\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#高度自适应\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"14.3 横向滚动条吸底 这个指令的实现我放在最后，主要的难点在于如何创建自定义滚动条代替原生滚动条的问题，以下是我的开发过程： 最开始看到了一个插件 el-table-horizontal-scroll，它的做法是手动给 el-table 加上一个 el-scrollbar 并绑定事件处理，于是决定使用它的方案，但是看了源码，它使用的 fixed 定位和我预想有差距，而且手动绑定事件，可能有很多细节遗漏，维护起来或有诸多不便。 然后，我想能不能通过 render 函数直接渲染一个 el-scrollbar，我就去看 el-scrollbar 的源码，打开源码有惊喜，第一行注释找到了gemini-scrollbar 这个插件，打开 Github 看了一下，能够实现预期效果。 开造思路： 在 el-table 中创建一个空元素当作 scroller，宽度保持和表格内容宽度一致 为 scroller 创建自定义滚动条，并赋予 sticky bottom 特性 同步 el-table 横向滚动的行为到 scroller 同步 scroller 横向滚动的行为到 el-table A few moments later\\u0026hellip; 经过一番 code，实现了横向滚动条的吸底固定效果，但是基于 gemini-scrollbar 实现，存在以下已知问题： safari 浏览器存在兼容性1 当禁用原生滚动条时，gemini-scrollbar 计算滑块偏移距离时存在误差，详见 最后为了简化使用，将 v-sticky-scroller 的功能内置到了 v-sticky-header 和 v-sticky-footer 指令中，使用时无需重复使用。 \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:2:3\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#横向滚动条吸底\"},{\"categories\":[\"Vue.js\"],\"collections\":[\"project\"],\"content\":\"15 总结 一念对开源蠢蠢欲动，一念对维护犹豫不决，一念成就开源，一念成就自己。 Non sunt multiplicanda entia sine necessitate 若无必要，勿增实体 不到迫不得已，不要轻易造轮子，要善于发现和利用已有的轮子、最理想的状态就是永远站在巨人的肩膀上。 但是通过造轮子，可以更好的学习和理解技术，也能体会到很多写业务代码不能感受到的快乐。 学而不思则罔，思而不学则殆。 如有必要，以后版本需要替换 gemini-scrollbar 实现自定义滚动条的功能。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2023-09-25\",\"objectID\":\"/projects/el-table-sticky/:3:0\",\"tags\":[\"Vue2\"],\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"uri\":\"/projects/el-table-sticky/#总结\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。 \",\"date\":\"2023-09-17\",\"objectID\":\"/posts/vue-fullscreen-toggler/:0:0\",\"tags\":[\"Vue2\",\"JavaScript\"],\"title\":\"封装 Vue FullScreenToggler 组件\",\"uri\":\"/posts/vue-fullscreen-toggler/#\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"17 简介 vue-fullscreen 是一个用于将任意页面元素进行全屏切换的 Vue 插件，基于 screenfull。这个插件本身提供了组件、指令以及 API 三种使用方式，具体的使用方法请参考 vue-fullscreen。 \",\"date\":\"2023-09-17\",\"objectID\":\"/posts/vue-fullscreen-toggler/:1:0\",\"tags\":[\"Vue2\",\"JavaScript\"],\"title\":\"封装 Vue FullScreenToggler 组件\",\"uri\":\"/posts/vue-fullscreen-toggler/#简介\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"18 在线演示 \",\"date\":\"2023-09-17\",\"objectID\":\"/posts/vue-fullscreen-toggler/:2:0\",\"tags\":[\"Vue2\",\"JavaScript\"],\"title\":\"封装 Vue FullScreenToggler 组件\",\"uri\":\"/posts/vue-fullscreen-toggler/#在线演示\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"19 安装 npm install vue-fullscreen@^2.6.1 # 或者 yarn add vue-fullscreen@^2.6.1 \",\"date\":\"2023-09-17\",\"objectID\":\"/posts/vue-fullscreen-toggler/:3:0\",\"tags\":[\"Vue2\",\"JavaScript\"],\"title\":\"封装 Vue FullScreenToggler 组件\",\"uri\":\"/posts/vue-fullscreen-toggler/#安装\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"20 封装组件 vue-fullscreen 有 Vue2 和 Vue3 两个版本，本文将基于其 Vue2 版本的指令使用方式再封装一层。 这个组件会显示为一个切换按钮，通过绑定 target 属性来指定全屏的目标元素，通过 bodyAgent 属性来指定是否使用 document.body 代理全屏元素，目标元素则改为网页全屏，避免弹窗等元素在全屏模式下不可见的问题。 信息 vue-fullscreen 插件处理弹窗等元素在全屏模式下不可见问题的方案是通过 teleport 修饰符将目标元素移动到 document.body 下，从而避免层级遮挡问题。个人不太喜欢这种改变 DOM 结构的方式，所以封装的插件新增一个参数 bodyAgent，当设置为 true 时，会使用 document.body 代理全屏元素，目标元素则改为网页全屏，此时 document.fullscreenElement 为 document.body 而不是真实设置的 target 元素。 FullScreenToggler.vue \\u0026lt;!-- 全屏/退出全屏切换组件，浏览器不支持时，打开网页内全屏 --\\u0026gt; \\u0026lt;script\\u0026gt; import { directive as fullscreen } from \\u0026#39;vue-fullscreen\\u0026#39; export default { name: \\u0026#39;FullScreenToggler\\u0026#39;, directives: { fullscreen, }, props: { target: { type: String, default: \\u0026#39;document.body\\u0026#39;, }, /** * 是否使用 document.body 代理全屏元素，目标元素则改为网页全屏 * 避免弹窗等元素在全屏模式下不可见的问题（推荐） */ bodyAgent: { type: Boolean, default: true, }, fullscreenClass: { type: String, default: \\u0026#39;is-fullscreen\\u0026#39;, }, /** * 不调用全屏 API，而是将当前元素撑满网页 */ pageOnly: { type: Boolean, default: false, }, /** * v-fullscreen 指令修饰符 teleport 进入全屏时目标元素会被移动到 document.body 下 * vue-fullscreen 插件处理弹窗等元素在全屏模式下不可见问题的方案（不推荐） */ teleport: { type: Boolean, default: false, }, }, data() { return { isFullscreen: false, } }, computed: { options() { return { target: this.bodyAgent ? \\u0026#39;document.body\\u0026#39; : this.target, callback: (isFullscreen) =\\u0026gt; { this.isFullscreen = isFullscreen // 网页全屏 if (this.bodyAgent \\u0026amp;\\u0026amp; this.target !== \\u0026#39;document.body\\u0026#39;) { document.querySelector(this.target).classList.toggle(\\u0026#39;is-fullscreen-fullpage\\u0026#39;, isFullscreen) } // 触发事件传递给父组件 this.$emit(\\u0026#39;change\\u0026#39;, isFullscreen) }, fullscreenClass: this.fullscreenClass, } }, }, render(h) { return h(\\u0026#39;span\\u0026#39;, { class: \\u0026#39;full-screen-toggler\\u0026#39;, attrs: { title: this.isFullscreen ? \\u0026#39;退出全屏\\u0026#39; : \\u0026#39;全屏\\u0026#39;, }, directives: [ { name: \\u0026#39;fullscreen\\u0026#39;, value: this.options, modifiers: { pageOnly: this.pageOnly, teleport: this.teleport, }, }, ], }, [ h(\\u0026#39;svg-icon\\u0026#39;, { props: { iconClass: this.isFullscreen ? \\u0026#39;exit-fullscreen\\u0026#39; : \\u0026#39;fullscreen\\u0026#39;, } }), ]) }, } \\u0026lt;/script\\u0026gt; \\u0026lt;style lang=\\u0026#34;scss\\u0026#34; scoped\\u0026gt; .full-screen-toggler { cursor: pointer; } \\u0026lt;/style\\u0026gt; \\u0026lt;style\\u0026gt; .is-fullscreen-fullpage { position: fixed !important; top: 0px; left: 0px; width: 100% !important; height: 100% !important; background: white; z-index: 2000; box-sizing: border-box; } \\u0026lt;/style\\u0026gt; 使用方式如下： \\u0026lt;template\\u0026gt; \\u0026lt;div class=\\u0026#34;page-container\\u0026#34;\\u0026gt; \\u0026lt;full-screen-toggler target=\\u0026#34;.page-container\\u0026#34; /\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; import FullScreenToggler from \\u0026#39;@/components/FullScreenToggler\\u0026#39; export default { components: { FullScreenToggler, }, } \\u0026lt;/script\\u0026gt; \",\"date\":\"2023-09-17\",\"objectID\":\"/posts/vue-fullscreen-toggler/:4:0\",\"tags\":[\"Vue2\",\"JavaScript\"],\"title\":\"封装 Vue FullScreenToggler 组件\",\"uri\":\"/posts/vue-fullscreen-toggler/#封装组件\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"37 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。 Fullscreen API 是一组用于控制全屏显示的方法和属性，它们允许我们将网页内容以全屏的方式展示给用户，并提供了相应的事件来监听全屏模式的变化。 在本文中，我们将介绍如何判断浏览器是否支持全屏功能，如何实现进入全屏和退出全屏的功能，以及如何获取当前全屏元素和监听全屏模式的变化。 注意：Fullscreen API 在不同浏览器之间可能存在差异，请在使用时进行兼容性测试和处理。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:1:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#背景\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"38 全屏是否可用 在使用 Fullscreen API 之前，我们需要先判断当前浏览器是否支持全屏功能。可以通过 document.fullscreenEnabled 属性来检查。 以下是一个示例： if (document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled) { console.log(\\u0026#39;浏览器支持全屏功能\\u0026#39;); } else { console.log(\\u0026#39;浏览器不支持全屏功能\\u0026#39;); } 详细的 API 说明可以参考 Fullscreen API - MDN Web Docs。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:2:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#全屏是否可用\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"39 实现全屏 要实现全屏，我们可以使用 requestFullscreen() 方法。该方法可用于 DOM 元素，使其进入全屏模式。 以下是一个示例： const element = document.getElementById(\\u0026#39;my-element\\u0026#39;); if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { // Firefox element.mozRequestFullScreen(); } else if (element.webkitRequestFullscreen) { // Chrome, Safari and Opera element.webkitRequestFullscreen(); } else if (element.msRequestFullscreen) { // Internet Explorer and Edge element.msRequestFullscreen(); } 详细的 API 说明可以参考 Element.requestFullscreen() - MDN Web Docs。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:3:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#实现全屏\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"40 退出全屏 当我们需要退出全屏时，可以使用 exitFullscreen() 方法。该方法可用于当前处于全屏状态的元素。 以下是一个示例： if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { // Firefox document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { // Internet Explorer and Edge document.msExitFullscreen(); } 详细的 API 说明可以参考 Document.exitFullscreen() - MDN Web Docs。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:4:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#退出全屏\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"41 获取全屏元素 在全屏模式下，我们可能需要获取当前处于全屏状态的元素。可以使用document.fullscreenElement属性来获取。 以下是一个示例： const fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement; if (fullscreenElement) { console.log(\\u0026#39;当前全屏元素：\\u0026#39;, fullscreenElement); } else { console.log(\\u0026#39;没有全屏元素\\u0026#39;); } 详细的 API 说明可以参考 Document.fullscreenElement - MDN Web Docs。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:5:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#获取全屏元素\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"42 监听全屏模式变化 如果我们希望在全屏模式发生变化时得到通知，可以使用 Fullscreen API 提供的事件。 以下是一个示例： document.addEventListener(\\u0026#39;fullscreenchange\\u0026#39;, handleFullscreenChange); document.addEventListener(\\u0026#39;mozfullscreenchange\\u0026#39;, handleFullscreenChange); // Firefox document.addEventListener(\\u0026#39;webkitfullscreenchange\\u0026#39;, handleFullscreenChange); // Chrome, Safari and Opera document.addEventListener(\\u0026#39;MSFullscreenChange\\u0026#39;, handleFullscreenChange); // Internet Explorer and Edge function handleFullscreenChange() { if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement) { console.log(\\u0026#39;进入全屏模式\\u0026#39;); } else { console.log(\\u0026#39;退出全屏模式\\u0026#39;); } } 通过添加相应的事件监听器，可以在全屏模式变化时执行自定义的处理函数。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:6:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#监听全屏模式变化\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"43 相关插件 了解以上 API 后本来已经准备开始写插件了，不过秉承不重复造轮子的思想，找到了以下两个库，基本满足开发需求了。 screenfull vue-fullscreen \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:7:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#相关插件\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"44 小插曲 document.fullscreen、document.fullscreenElement、document.fullscreenEnabled 的 MDN 文档中文翻译已过时，然后顺手提了一个 PR mdn/translated-content#15859 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:8:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#小插曲\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"45 参考链接 Fullscreen API - MDN Web Docs Element.requestFullscreen() - MDN Web Docs Document.exitFullscreen() - MDN Web Docs Document.fullscreenElement - MDN Web Docs \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/js-fullscreen/:9:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 实现全屏和退出全屏\",\"uri\":\"/posts/js-fullscreen/#参考链接\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。 其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。 为保证简体中文文档格式的一致性，翻译指南列出了部分规范。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:0:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"33 标点符号 除了代码中使用的符号以及一些特殊情况外，请将英文（半角）符号替换成中文（大部分为全角）符号。 但请注意，请不要使用全角数字（特殊情况除外）。 示例如下： 正确：我们可以学习 JavaScript——一种很酷的语言 错误：我们可以学习 JavaScript--一种很酷的语言 正确：以下示例是“可交互的” 错误：以下示例是\\u0026quot;可交互的\\u0026quot; 另外，请注意并列的词语间应使用顿号而非逗号： 原文：a, b, and c 宜：a、b 和 c 不宜：a，b，和 c \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:1:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#标点符号\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"33.1 常见中/英文标点 名称 中文 英文 括号 （） () 冒号 ： : 引号 “” \\u0026quot;\\u0026quot; 破折号 —— \\u0026ndash; 、 — 简体中文标点符号参考资源： 教育部《标点符号用法》 维基百科：标点符号 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:1:1\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#常见中英文标点\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"34 中文和拉丁语系文字间加空格 对于简体中文文档，请在中文和拉丁语系文字之间保留一个空格，但在拉丁语系文字和中文标点之间，则无需保留空格。 示例如下： 正确：学习 Web 开发 错误：学习Web开发 正确：学习 JavaScript、HTML、CSS 等 错误：学习 JavaScript、 HTML、 CSS 等 正确：应用程序接口（API） 错误：应用程序接口（ API ） 对于链接文字和非链接文字部分，同样适用此规则： 正确：它指向一个[示例](#示例) 错误：它指向一个 [示例](#示例) 正确：指向 [MDN 开发者文档](https://developer.mozilla.org/)的链接 错误：指向[MDN开发者文档](https://developer.mozilla.org/)的链接 请注意，数字与中文之间也请保留空格： 正确：需 10 个小时完成 错误：需10个小时完成 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:2:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#中文和拉丁语系文字间加空格\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"35 排版 英文文档中，对于较长的段落，会通过断行的形式截断，以方便维护文档。但在 Markdown 中，断行会引入空格，在简体中文翻译中，我们有如下约定： 在段落不是特别长的情况下（200 个字符以内），请不要断行。 若段落过长，也请在中文与拉丁语系文字、数字之间，或是句子末尾断行。 例如： This is an example. We usually write a paragraph into multiple lines. Like this. 而在中文文档中，应该使它们在同一行内： 这是一个示例。我们不应该断行写这一段话。就像这样。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:3:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#排版\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"36 词语翻译 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:4:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#词语翻译\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"37 代名词 我们无需将“you”翻译为“您”，在文档正文部分的翻译中，请统一使用“你”。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:5:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#代名词\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"38 复数形式 英文文档中，为了使语句的语法正确，会使用大量的复数形式。在中文翻译中，则无需保留这些复数的形式（未翻译的英文名词也同理）。 原文：Application Programming Interfaces (APIs) 宜：应用程序接口（API） 不宜：应用程序接口（APIs） 不宜：应用程序接口们（APIs） \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:6:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#复数形式\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"39 术语表 我们在仓库中维护了一个术语表，旨在统一目前还未有明确中文翻译的术语。在翻译文档时，请尽量使用术语表中的术语，以保证文档的一致性。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:7:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#术语表\"},{\"categories\":[\"Spec\",\"翻译\"],\"collections\":null,\"content\":\"40 常用标题 英文文档中使用了一些常见标题，为了保持简体中文文档的一致性，请在翻译时参考术语表中的标题和表格的翻译。 \",\"date\":\"2023-09-15\",\"objectID\":\"/posts/translation-guide/:8:0\",\"tags\":[\"他山之石\"],\"title\":\"中文翻译的常见问题\",\"uri\":\"/posts/translation-guide/#常用标题\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"37 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。 随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:1:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#前言\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"38 工具 svg-sprite-loader svgo-loader svg-sprite-loader用来打包 svg 图标，svgo-loader 来精简我们的 svg 内容。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:2:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#工具\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"39 封装组件 在 src/components 目录下新建 SvgIcon.vue 组件： \\u0026lt;template\\u0026gt; \\u0026lt;div v-if=\\u0026#34;isExternal\\u0026#34; :style=\\u0026#34;styleExternalIcon\\u0026#34; class=\\u0026#34;svg-external-icon svg-icon\\u0026#34; v-on=\\u0026#34;$listeners\\u0026#34; /\\u0026gt; \\u0026lt;svg v-else class=\\u0026#34;svg-icon\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34; v-on=\\u0026#34;$listeners\\u0026#34;\\u0026gt; \\u0026lt;use :href=\\u0026#34;iconName\\u0026#34; /\\u0026gt; \\u0026lt;/svg\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; export default { name: \\u0026#39;SvgIcon\\u0026#39;, props: { iconClass: { type: String, required: true }, className: { type: String, default: \\u0026#39;\\u0026#39; } }, computed: { isExternal() { return /^(https?:\\\\/\\\\/|data:image)/.test(this.iconClass) }, iconName() { return `#icon-${this.iconClass}` }, styleExternalIcon() { return { mask: `url(${this.iconClass}) no-repeat 50% 50%`, \\u0026#39;-webkit-mask\\u0026#39;: `url(${this.iconClass}) no-repeat 50% 50%` } } } } \\u0026lt;/script\\u0026gt; \\u0026lt;style scoped\\u0026gt; .svg-icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; } .svg-external-icon { background-color: currentColor; mask-size: cover!important; display: inline-block; } \\u0026lt;/style\\u0026gt; \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:3:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#封装组件\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"40 安装 npm install svg-sprite-loader svgo-loader -D # 或 yarn add svg-sprite-loader svgo-loader -D \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:4:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#安装\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"41 配置 统一将所有的 icon 都以 svg 的形式都放在 src/assets/icons 目录中。 然后在 vue.config.js 中添加如下配置： const { defineConfig } = require(\\u0026#39;@vue/cli-service\\u0026#39;) const path = require(\\u0026#39;path\\u0026#39;) function resolve(dir) { return path.join(__dirname, dir) } module.exports = defineConfig({ // ... chainWebpack: (config) =\\u0026gt; { // set svg-sprite-loader const svgPath = resolve(\\u0026#39;src/assets/icons\\u0026#39;) config.module .rule(\\u0026#39;svg\\u0026#39;) .exclude.add(svgPath) .end() config.module .rule(\\u0026#39;svg-icon\\u0026#39;) .test(/.svg$/) .include.add(svgPath) .end() .use(\\u0026#39;svg-sprite-loader\\u0026#39;) .loader(\\u0026#39;svg-sprite-loader\\u0026#39;) .options({ symbolId: \\u0026#39;icon-[name]\\u0026#39;, }) .end() // remove origin svg fill attr .use(\\u0026#39;svgo-loader\\u0026#39;) .loader(\\u0026#39;svgo-loader\\u0026#39;) .tap((options) =\\u0026gt; ({ ...options, // 删除 svg 中 fill 和 fill-rule plugins: [{ name: \\u0026#39;removeAttrs\\u0026#39;, params: { attrs: \\u0026#39;fill|fill-rule\\u0026#39; } }], })) .end() }, // ... }) \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:5:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#配置\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"42 自动引入 自动引入 src/assets/icons 中的 icon，需要用到 webpack 中的 require.context。 在 src/main.js 中引入所有的 svg 图标，之后可在文件夹自行添加或者删除图标，所以图标都会被自动导入，无需手动操作： import Vue from \\u0026#39;vue\\u0026#39; import SvgIcon from \\u0026#39;@/components/SvgIcon\\u0026#39; // register svg component globally Vue.component(\\u0026#39;SvgIcon\\u0026#39;, SvgIcon) // require all svg const requireAll = (requireContext) =\\u0026gt; requireContext.keys().map(requireContext) const req = require.context(\\u0026#39;@/assets/icons\\u0026#39;, false, /\\\\.svg$/) requireAll(req) \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:6:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#自动引入\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"43 使用 icon \\u0026lt;svg-icon icon-class=\\u0026#34;fullscreen\\u0026#34; class=\\u0026#39;custom-class\\u0026#39; /\\u0026gt; \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:7:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#使用-icon\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"43.1 颜色 svg-icon 默认会读取其父级的 color fill: currentColor; 你可以改变父级的 color 或者直接改变 fill 的颜色即可。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:7:1\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#颜色\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"43.2 大小 图标可从 iconfont 项目中下载或者由 UI 切图，同一个项目中使用的 Svg Icon 图标建议统一大小规格，比如 128*128。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:7:2\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#大小\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"44 示例 本文 示例 代码已上传至 vue-el-demo 项目中，可自行下载查看。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:8:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#示例\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"45 参考资料 手摸手，带你优雅的使用 icon 未来必热：SVG Sprites 技术介绍 SVG 精简压缩工具 svgo 简介和初体验 svg-sprite-loader svgo svgo-loader \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vue-svg-icon/:9:0\",\"tags\":[\"SVG\",\"Vue2\"],\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"uri\":\"/posts/vue-svg-icon/#参考资料\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:0:0\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 新建代码片段 在 VScode 主界面-\\u0026gt;点击左下角设置图标-\\u0026gt;点击用户代码片段，可以建立全局代码片段，也可以建立单个项目的代码片段，也可以设置语言类型的代码片段。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:1:0\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#新建代码片段\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 代码片段格式 代码片段格式如下： 可以使用工具 snippet-generator 生成代码片段。 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:2:0\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#代码片段格式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 常用代码片段 \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:3:0\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#常用代码片段\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.1 JavaScript \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:3:1\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#javascript\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.2 Markdown \",\"date\":\"2023-09-14\",\"objectID\":\"/posts/vscode-snippets/:3:2\",\"tags\":[\"Shortcodes\"],\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"uri\":\"/posts/vscode-snippets/#markdown\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。 \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:0:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"29 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。 最先想到的是使用 CSS 来实现这个效果，经过一番尝试，发现可以通过使用 CSS 的一些技术点，轻松实现不同类型的网格背景效果，包括实线网格和虚线网格。 \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:1:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#前言\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"30 前驱知识 在开始之前，我们需要了解一些必要的 CSS 属性和知识点。 linear-gradient：CSS linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于\\u0026lt;gradient\\u0026gt;数据类型，是一种特别的\\u0026lt;image\\u0026gt;数据类型。 radial-gradient：radial-gradient() CSS 函数创建一个图像，该图像由从原点辐射的两种或多种颜色之间的渐进过渡组成。它的形状可以是圆形或椭圆形。函数的结果是 \\u0026lt;gradient\\u0026gt; 数据类型的对象。这是一种特别的 \\u0026lt;image\\u0026gt;。 background-size background-repeat background-position ::before 和 ::after 伪元素 \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:2:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#前驱知识\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"31 实线网格 这个效果，我最初是在刷掘金的时候发现的，掘金文章内容区的背景一个实线网格，呈现出的效果类似一页学生时代的记事本，当时觉得很有意思，于是扒下来当作了现在博客文章内容的背景。 实线网格的实现思路是使用 linear-gradient 来绘制横向和纵向的网格线，然后通过 background-size 来控制网格线的间距。 具体代码如下： .grid { background-image: linear-gradient(to right, rgba(60, 10, 30, 0.04) 1px, transparent 0), linear-gradient(to bottom, rgba(60, 10, 30, 0.04) 1px, transparent 0); background-size: 20px 20px; } 上面的代码中，background-image 属性使用了两个 linear-gradient，通过渐变颜色从 rgba(60, 10, 30, 0.04) 到 transparent 实现了横向和纵向的网格线。通过指定 background-size 为 20px 20px，设置了背景大小为 20px，由于 background-repeat 默认为 repeat，所以就实现了 20px 间距的网格线。 \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:3:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#实线网格\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"32 虚线网格 虚线网格的实现思路需要借助 ::before 和 ::after 伪元素，然后还是通过类似实线的思路实现网格线，然后两个伪元素叠加在一起，从而实现虚线网格。 未做实例 \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:4:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#虚线网格\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"33 点阵网格 这里把渐变修改为径向渐变就实现点点背景了，原理和前面说的都是一样的。 .grid { background-image: radial-gradient(circle , #5a5a5a .5px, transparent .5px); background-size: 20px 20px; } \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:5:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#点阵网格\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"34 总结 最后为了实现我在实际开发中的需求，我还需要控制网格宽度为容器的 1/24，这里就需要使用 calc() 函数来计算了。 /* 背景显示网格辅助线（宽：1/24 高：40+8px） */ background-image: linear-gradient(90deg, rgba(60, 10, 30, 0.04) 1px, transparent 0), linear-gradient(1turn, rgba(60, 10, 30, 0.04) 1px, transparent 0); background-size: calc((100% - 8px) / 24) 48px; background-position: 4px 4px; /* 或者点阵网格辅助线（宽：1/24 高：40+8px） */ background-image: radial-gradient(circle , #5a5a5a .5px, transparent .5px); background-size: calc((100% - 8px) / 24) 48px; background-position: 24px 24px; \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:6:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#总结\"},{\"categories\":[\"CSS\"],\"collections\":[\"Modern CSS\"],\"content\":\"35 参考 CSS+HTML\\u0026lt;网格背景效果\\u0026gt; \",\"date\":\"2023-09-02\",\"objectID\":\"/posts/grid-bg-image/:7:0\",\"tags\":[\"CSS\"],\"title\":\"CSS 如何实现网格背景效果？\",\"uri\":\"/posts/grid-bg-image/#参考\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/vue el demo: Vue2 and element-ui related demos\",\"date\":\"2023-08-08\",\"objectID\":\"/projects/lruihao/vue-el-demo/\",\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"title\":\"Vue2 and element-ui related demos\",\"uri\":\"/projects/lruihao/vue-el-demo/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"vue-el-demo Vue and element-ui related demos. \",\"date\":\"2023-08-08\",\"objectID\":\"/projects/lruihao/vue-el-demo/:1:0\",\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"title\":\"Vue2 and element-ui related demos\",\"uri\":\"/projects/lruihao/vue-el-demo/#vue-el-demo data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Project setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn build This project is built with Rsbuild, a fast build tool powered by Rspack. \",\"date\":\"2023-08-08\",\"objectID\":\"/projects/lruihao/vue-el-demo/:2:0\",\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"title\":\"Vue2 and element-ui related demos\",\"uri\":\"/projects/lruihao/vue-el-demo/#project-setup\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。 \",\"date\":\"2023-07-20\",\"objectID\":\"/posts/el-backtop-fix/:0:0\",\"tags\":[\"Vue2\"],\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"uri\":\"/posts/el-backtop-fix/#\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"13 前言 由于某些原因，我希望在路由切换时给每个页面的总容器都加上一个共同的 class page-container，然后我就在布局中里面加了这么一段代码： \\u0026lt;template\\u0026gt; \\u0026lt;div :class=\\u0026#34;classObj\\u0026#34; class=\\u0026#34;app-wrapper\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;app-container\\u0026#34;\\u0026gt; \\u0026lt;topbar class=\\u0026#34;header-container\\u0026#34; /\\u0026gt; \\u0026lt;el-container class=\\u0026#34;main-container\\u0026#34;\\u0026gt; \\u0026lt;sidebar class=\\u0026#34;aside-container\\u0026#34; /\\u0026gt; \\u0026lt;el-container class=\\u0026#34;is-vertical minor-container\\u0026#34;\\u0026gt; \\u0026lt;breadcrumb class=\\u0026#34;breadcrumb-container\\u0026#34; /\\u0026gt; \\u0026lt;!-- 这一行 --\\u0026gt; \\u0026lt;page-container class=\\u0026#34;page-container\\u0026#34; /\\u0026gt; \\u0026lt;/el-container\\u0026gt; \\u0026lt;/el-container\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;el-backtop class=\\u0026#34;app-b2t\\u0026#34; target=\\u0026#34;.page-container\\u0026#34; :visibility-height=\\u0026#34;50\\u0026#34; /\\u0026gt; \\u0026lt;!-- \\u0026lt;back-to-top class=\\u0026#34;app-b2t\\u0026#34; target=\\u0026#34;.page-container\\u0026#34; :visibility-height=\\u0026#34;50\\u0026#34; /\\u0026gt; --\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; PageContainer.vue \\u0026lt;template\\u0026gt; \\u0026lt;transition name=\\u0026#34;fade-transform\\u0026#34; mode=\\u0026#34;out-in\\u0026#34;\\u0026gt; \\u0026lt;keep-alive :include=\\u0026#34;cachedViews\\u0026#34;\\u0026gt; \\u0026lt;router-view /\\u0026gt; \\u0026lt;/keep-alive\\u0026gt; \\u0026lt;/transition\\u0026gt; \\u0026lt;/template\\u0026gt; 没错，相当于在 router-view 上直接加了一个 class page-container。 \",\"date\":\"2023-07-20\",\"objectID\":\"/posts/el-backtop-fix/:1:0\",\"tags\":[\"Vue2\"],\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"uri\":\"/posts/el-backtop-fix/#前言\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"14 问题 那么问题就来了，此时 el-backtop 的 target 设置为 .page-container，但是当我切换路由时，.page-container 会被移除再添加为新的页面，此时 el-backtop 就会失效。 原意是想让 el-backtop 指向每一个包含 .page-container 的页面。 \",\"date\":\"2023-07-20\",\"objectID\":\"/posts/el-backtop-fix/:2:0\",\"tags\":[\"Vue2\"],\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"uri\":\"/posts/el-backtop-fix/#问题\"},{\"categories\":[\"Vue.js\",\"JavaScript\"],\"collections\":null,\"content\":\"15 解决 RTFSC，发现 el-backtop 的 target 属性只会在 mounted 时初始化一次，所以想办法在每次路由切换时重新初始化一下 el-backtop 的 target 属性就行了。 创建 MutationObserver 实例来观察 target 的父元素的子元素变化已解决上述 bug 增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器 最后代码如下： BackToTop.vue \\u0026lt;script\\u0026gt; /** * BackToTop 继承 el-backtop * 1. 修复 el-backtop 在 target 被移除后，无法重新初始化的问题 * 2. 增加 target 的 data-target 属性，用于指定 target 的子元素作为滚动容器。例如：\\u0026lt;div data-target=\\u0026#34;.list-pane\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt; */ import { Backtop } from \\u0026#39;element-ui\\u0026#39; import throttle from \\u0026#39;throttle-debounce/throttle\\u0026#39; export default { name: \\u0026#39;BackToTop\\u0026#39;, extends: Backtop, data() { return { el: null, container: null, visible: false, observer: null, } }, mounted() { this.init() this.observeTarget() }, beforeDestroy() { // 清除事件监听 this.container.removeEventListener(\\u0026#39;scroll\\u0026#39;, this.throttledScrollHandler) // 停止观察 this.observer.disconnect() }, methods: { init() { this.container = document this.el = document.documentElement if (this.target) { this.el = document.querySelector(this.target) if (!this.el) { throw new Error(`target is not existed: ${this.target}`) } // 如果 this.el 有 data-target 属性，就使用 data-target 属性的值作为 target if (this.el.dataset.target) { const subEl = this.el.querySelector(this.el.dataset.target) subEl \\u0026amp;\\u0026amp; (this.el = subEl) } this.container = this.el } this.throttledScrollHandler = throttle(300, this.onScroll) this.container.addEventListener(\\u0026#39;scroll\\u0026#39;, this.throttledScrollHandler) }, /** * 观察 this.container 是否被移除或者新增 * 注意 router-view 切换页面步骤：1. 新增 router-view -\\u0026gt; 2. 删除旧 router-view */ observeTarget() { // 创建 MutationObserver 实例并传入回调函数 this.observer = new MutationObserver((mutationsList) =\\u0026gt; { for (const mutation of mutationsList) { if (mutation.type === \\u0026#39;childList\\u0026#39;) { // 检测到删除节点 if (mutation.removedNodes.length \\u0026gt; 0) { for (const node of mutation.removedNodes) { if (node === this.container) { // 观察如果 this.container 从页面中被移除了，就清除事件监听 this.container.removeEventListener(\\u0026#39;scroll\\u0026#39;, this.throttledScrollHandler) this.visible = false break } } // 检测删除前是否有新增节点 if (document.querySelector(this.target) === mutation.nextSibling) { // 观察如果 this.container 被删除前的下一个兄弟节点是 this.target，就重新初始化 this.init() } } } } }) // 观察 this.container 父元素的子元素变化 this.observer.observe(document.querySelector(this.target).parentNode, { childList: true, }) }, }, } \\u0026lt;/script\\u0026gt; \",\"date\":\"2023-07-20\",\"objectID\":\"/posts/el-backtop-fix/:3:0\",\"tags\":[\"Vue2\"],\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"uri\":\"/posts/el-backtop-fix/#解决\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/el table sticky: A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"el-table-sticky 在线示例 一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。 \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:1:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#el-table-sticky data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。 Element UI 的解决办法：通过设置 max-height 或者 height 属性来实现上述需求。 Element UI 的解决不足点：高度值只支持设置数字型，在实际开发中往往需要借助 JS 来计算。 为了解决以上痛点/需求，减少开发和维护成本，于是就有了这个插件，详见 思路分析。 \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:2:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#背景\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特性 v-sticky-* 指令依赖于 position: sticky 属性，不支持 IE 浏览器。 支持表头吸顶 (v-sticky-header) 支持表尾合计行吸底 (v-sticky-footer) 支持横向滚动条吸底 (v-sticky-scroller) 支持高度自适应 (v-height-adaptive) \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:3:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#特性\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装 npm install @cell-x/el-table-sticky \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:4:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"注册指令 全局注册指令： import elTableSticky from \\u0026#39;@cell-x/el-table-sticky\\u0026#39; Vue.use(elTableSticky) // 或者 Vue.use(elTableSticky, { StickyHeader: { // 吸顶偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等 offsetTop: 0, // 滚动条吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等 offsetBottom: 0, }, StickyFooter: { // 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等 offsetBottom: 0, }, StickyScroller: { // 吸底偏移量，可以是 CSS 支持的距离值，如 `0px`、`10%`、`calc(100vh - 1rem)` 等 offsetBottom: 0, }, HeightAdaptive: { // 底部偏移量，只能是数字型 offsetBottom: 0, } }) 局部注册指令： import { StickyHeader, StickyFooter, StickyScroller, HeightAdaptive, } from \\u0026#39;@cell-x/el-table-sticky\\u0026#39; export default { directives: { StickyHeader: new StickyHeader({ offsetTop: 0, offsetBottom: 0 }).init(), StickyFooter: new StickyFooter({ offsetBottom: 0 }).init(), StickyScroller: new StickyScroller({ offsetBottom: 0 }).init(), HeightAdaptive: new HeightAdaptive({ offsetBottom: 0 }).init(), } } \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:5:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#注册指令\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 \\u0026lt;el-table v-sticky-header\\u0026gt;...\\u0026lt;/el-table\\u0026gt; \\u0026lt;el-table v-sticky-footer\\u0026gt;...\\u0026lt;/el-table\\u0026gt; \\u0026lt;el-table v-sticky-scroller\\u0026gt;...\\u0026lt;/el-table\\u0026gt; \\u0026lt;el-table v-height-adaptive\\u0026gt;...\\u0026lt;/el-table\\u0026gt; \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:6:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"指令参数 指令 说明 修饰符 类型 默认值 v-sticky-header 表头吸顶指令 .always Object{Number, String} offsetTop: 0, offsetBottom: 0 v-sticky-footer 表尾合计行吸底指令 .always Object{Number, String} offsetBottom: 0 v-sticky-scroller 横向滚动条吸底指令 .always Object{Number, String} offsetBottom: 0 v-height-adaptive 高度自适应指令 - Object{Number} offsetBottom: 0 \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:7:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#指令参数\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"注意事项 v-sticky-header 和 v-sticky-footer 已内置滚动条吸底功能，无需重复使用 v-sticky-scroller 指令 当 v-sticky-header 和 v-sticky-footer 同时使用时，滚动条 offsetBottom 以 v-sticky-footer 为准 横向滚动条默认显示方式为 hover，可通过设置修饰符 .always 改为一直显示 v-height-adaptive 指令不依赖于 position: sticky 属性，可单独使用 \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:8:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#注意事项\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Project setup yarn install # Compiles and hot-reloads for development yarn serve # Compiles and minifies for production yarn build # Compiles and minifies for production with demo yarn build:demo # Lints and fixes files yarn lint Customize configuration see Configuration Reference. \",\"date\":\"2023-06-14\",\"objectID\":\"/projects/lruihao/el-table-sticky/:9:0\",\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"uri\":\"/projects/lruihao/el-table-sticky/#project-setup\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。 \",\"date\":\"2023-06-14\",\"objectID\":\"/posts/gen-router/:0:0\",\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"uri\":\"/posts/gen-router/#\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"9 源码 Gist: https://gist.github.com/Lruihao/d8f2984525dc9e78dd6a49e15f49cf38 gen-router.js const fs = require(\\u0026#39;fs\\u0026#39;) const os = require(\\u0026#39;os\\u0026#39;) const vueDir = \\u0026#39;./src/views/\\u0026#39; const routerFile = \\u0026#39;./src/router.js\\u0026#39; fs.readdir(vueDir, function (err, files) { if (err) { console.error(\\u0026#39;❌ Could not list the directory.\\u0026#39;, err) return } const routes = [] for (const filename of files) { if (filename.indexOf(\\u0026#39;.\\u0026#39;) \\u0026lt; 0) { continue } const [name, ext] = filename.split(\\u0026#39;.\\u0026#39;) if (ext !== \\u0026#39;vue\\u0026#39;) { continue } const routeName = name.replace(/-([a-z])/g, (_, match) =\\u0026gt; match.toUpperCase()) let routeDescription = \\u0026#39;\\u0026#39; const contentFull = fs.readFileSync(`${vueDir}${filename}`, \\u0026#39;utf-8\\u0026#39;) // get route description from first line comment const match = /\\u0026lt;!--\\\\s*(.*)\\\\s*--\\u0026gt;/g.exec(contentFull.split(os.EOL)[0]) if (match) { routeDescription = match[1].trim() } routes.push(` { path: \\u0026#39;/${name === \\u0026#39;home\\u0026#39; ? \\u0026#39;\\u0026#39; : name}\\u0026#39;, name: \\u0026#39;${routeName}\\u0026#39;,${routeDescription ? `\\\\n meta: { description: \\u0026#39;${routeDescription}\\u0026#39; },` : \\u0026#39;\\u0026#39;} component: () =\\u0026gt; import(/* webpackChunkName: \\u0026#34;${routeName}\\u0026#34; */ \\u0026#39;@/views/${filename}\\u0026#39;), },`) } const result = `// This file is automatically generated by gen-router.js, please do not modify it manually！ import VueRouter from \\u0026#39;vue-router\\u0026#39; import Vue from \\u0026#39;vue\\u0026#39; Vue.use(VueRouter) const routes = [ ${routes.join(os.EOL)} ] const router = new VueRouter({ mode: \\u0026#39;hash\\u0026#39;, routes, }) export default router ` fs.writeFile(routerFile, result, \\u0026#39;utf-8\\u0026#39;, (err) =\\u0026gt; { if (err) throw err console.log(`✅ Router generated successfully in ${routerFile}`) }) }) 生成效果如下： router.js // This file is automatically generated by gen-router.js, please do not modify it manually！ import VueRouter from \\u0026#39;vue-router\\u0026#39; import Vue from \\u0026#39;vue\\u0026#39; Vue.use(VueRouter) const routes = [ { path: \\u0026#39;/\\u0026#39;, name: \\u0026#39;home\\u0026#39;, meta: { description: \\u0026#39;Home\\u0026#39; }, component: () =\\u0026gt; import(/* webpackChunkName: \\u0026#34;home\\u0026#34; */ \\u0026#39;@/views/home.vue\\u0026#39;), }, ] const router = new VueRouter({ mode: \\u0026#39;hash\\u0026#39;, routes, }) export default router \",\"date\":\"2023-06-14\",\"objectID\":\"/posts/gen-router/:1:0\",\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"uri\":\"/posts/gen-router/#源码\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"10 参考 sunzsh/vue-el-demo \",\"date\":\"2023-06-14\",\"objectID\":\"/posts/gen-router/:2:0\",\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"uri\":\"/posts/gen-router/#参考\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"13 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示： 看错误，是一个 catch 参数的问题，在新版本的 Node 中，catch 参数是可以省略的，但是在旧版本中，catch 参数是必须的。 由于使用了 nvm 管理 Node 版本，项目中的 Node 是正常的，但是 SourceTree 使用的是系统的 Node，所以会出现这个问题。 \",\"date\":\"2023-06-12\",\"objectID\":\"/posts/sourcetree-husky/:1:0\",\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"uri\":\"/posts/sourcetree-husky/#问题描述\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"14 解决方案 知道了问题的原因，解决起来就很简单了，只需要将 SourceTree husky hook 阶段的 Node 版本切换到项目中的 Node 版本即可。 配置 .huskyrc 文件，内容如下： ~/.huskyrc export PATH=\\\\\\u0026#34;$(dirname $(which node)):\\\\$PATH\\\\\\u0026#34; 如果你使用了 zsh 和 nvm, 建议在 $ZSH_CUSTOM 目录下添加一个自定义 zsh 脚本。 这个脚本会在你进入包含了 .nvmrc 文件目录中自动切换 node 版本，切换版本后修正 ~/.huskyrc 的 path 内容。 vim $ZSH_CUSTOM/nvm_custom.zsh /nvm_custom.zsh # https://github.com/nvm-sh/nvm#manual-install export NVM_DIR=\\u0026#34;$HOME/.nvm\\u0026#34; [ -s \\u0026#34;$NVM_DIR/nvm.sh\\u0026#34; ] \\u0026amp;\\u0026amp; \\\\. \\u0026#34;$NVM_DIR/nvm.sh\\u0026#34; # This loads nvm [ -s \\u0026#34;$NVM_DIR/bash_completion\\u0026#34; ] \\u0026amp;\\u0026amp; \\\\. \\u0026#34;$NVM_DIR/bash_completion\\u0026#34; # This loads nvm bash_completion # https://github.com/nvm-sh/nvm#deeper-shell-integration autoload -U add-zsh-hook load-nvmrc() { local node_version=\\u0026#34;$(nvm version)\\u0026#34; local nvmrc_path=\\u0026#34;$(nvm_find_nvmrc)\\u0026#34; if [ -n \\u0026#34;$nvmrc_path\\u0026#34; ]; then local nvmrc_node_version=$(nvm version \\u0026#34;$(cat \\u0026#34;${nvmrc_path}\\u0026#34;)\\u0026#34;) if [ \\u0026#34;$nvmrc_node_version\\u0026#34; = \\u0026#34;N/A\\u0026#34; ]; then nvm install elif [ \\u0026#34;$nvmrc_node_version\\u0026#34; != \\u0026#34;$node_version\\u0026#34; ]; then nvm use fi elif [ \\u0026#34;$node_version\\u0026#34; != \\u0026#34;$(nvm version default)\\u0026#34; ]; then echo \\u0026#34;Reverting to nvm default version\\u0026#34; nvm use default fi # fix husky hook # ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421 # for husky 8 ~/.huskyrc, for husky 9 ~/.config/husky/init.sh echo \\u0026#34;export PATH=\\\\\\u0026#34;$(dirname $(which node)):\\\\$PATH\\\\\\u0026#34;\\u0026#34; \\u0026gt; ~/.config/husky/init.sh } add-zsh-hook chpwd load-nvmrc load-nvmrc # https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries export NVM_NODEJS_ORG_MIRROR=https://mirrors.ustc.edu.cn/node/ 如果你使用的是 husky 9 之后的版本，需要将 ~/.huskyrc 替换为 ~/.config/husky/init.sh。 \",\"date\":\"2023-06-12\",\"objectID\":\"/posts/sourcetree-husky/:2:0\",\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"uri\":\"/posts/sourcetree-husky/#解决方案\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"15 参考 解决 SourceTree 提交时候 husky 命令失败问题 https://github.com/typicode/husky/issues/390#issuecomment-762213421 https://github.com/typicode/husky/issues/904#issuecomment-862184954 https://github.com/nvm-sh/nvm#deeper-shell-integration \",\"date\":\"2023-06-12\",\"objectID\":\"/posts/sourcetree-husky/:3:0\",\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"uri\":\"/posts/sourcetree-husky/#参考\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"13 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目： vue create vue2-tailwind 根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。 关于 ESLint 当在 Vue 创建项目时，你可以根据自己的需求选择不同的 ESLint 配置。以下是一些常见的选项及其优缺点和注意事项： ESLint with error prevention only: 优点：这个配置只会帮助你防止代码中的错误，它的规则相对宽松。适用于刚开始使用 ESLint 或者希望避免太多约束的开发者。 缺点：由于规则相对宽松，可能无法完全确保代码风格的一致性。 注意事项：如果你想要更严格的代码检查，可以考虑其他配置。 ESLint + Airbnb config: 优点：Airbnb 的配置非常严格，能够帮助你遵循最佳实践和编写高质量的代码。此外，它也包含了许多 ES6+ 的规则。 缺点：由于其严格性，初学者可能需要花费更多时间来解决 ESLint 报告的问题。 注意事项：在使用此配置时，请确保你理解并接受 Airbnb 的代码规范。 ESLint + Standard config: 优点：Standard 的配置旨在提供一个相对简单、一致的代码风格，适合那些喜欢“零配置”的开发者。 缺点：这个配置可能不适用于所有项目，因为它有自己的代码风格要求。 注意事项：如果你的团队或项目已经有自己的编码规范，使用 Standard 配置可能会导致不一致。 ESLint + Prettier: 优点：Prettier 是一个自动格式化工具，可以与 ESLint 结合使用，以确保代码风格的一致性。这可以提高代码可读性，并减少在代码审查过程中关注格式问题的时间。 缺点：Prettier 可能会覆盖某些 ESLint 规则，所以需要花一些时间确保配置正确。 注意事项：为了避免冲突，请确保 ESLint 和 Prettier 的规则正确配置。 总之，在选择 ESLint 配置时，需要根据你的团队、项目需求和个人偏好来权衡。选择适当的配置可以帮助你提高代码质量并保持一致的代码风格。 \",\"date\":\"2023-06-03\",\"objectID\":\"/posts/v2-tailwind/:1:0\",\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"title\":\"Vue2 + tailwindcss 初始化\",\"uri\":\"/posts/v2-tailwind/#新建-vue2-项目\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"14 安装 tailwindcss 打开项目，安装 tailwindcss： cd vue2-tailwind # 安装 tailwindcss 低版本及相关插件 npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9 然后创建配置文件： # 创建 postcss.config.js, tailwind.config.js npx tailwindcss init -p postcss.config.js module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, } } tailwind.config.js module.exports = { purge: [ \\u0026#34;./src/App.vue\\u0026#34;, \\u0026#34;./src/views/**/*.{vue,js,ts,jsx,tsx}\\u0026#34;, \\u0026#34;./src/components/**/*.{vue,js,ts,jsx,tsx}\\u0026#34;, ], darkMode: \\u0026#39;class\\u0026#39;, // or \\u0026#39;media\\u0026#39; or \\u0026#39;class\\u0026#39; mode: \\u0026#39;jit\\u0026#39;, // 是否开启 jit 模式，开启以后编译会更快，当然，tailwindcss 版本需要在 2.1 以上 theme: { extend: {}, }, variants: { extend: {}, }, plugins: [], } 最后在 main.js 中引入 tailwindcss import \\u0026#34;tailwindcss/tailwind.css\\u0026#34; \",\"date\":\"2023-06-03\",\"objectID\":\"/posts/v2-tailwind/:2:0\",\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"title\":\"Vue2 + tailwindcss 初始化\",\"uri\":\"/posts/v2-tailwind/#安装-tailwindcss\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"15 启动项目 启动项目，修改模板中的 class 进行测试。 npm run serve src/App.vue \\u0026lt;template\\u0026gt; \\u0026lt;div id=\\u0026#34;app\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;bg-gray-100\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;container mx-auto\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;flex justify-center items-center h-screen\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;text-4xl text-gray-700\\u0026#34;\\u0026gt;Hello Vue2 + tailwindcss\\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \",\"date\":\"2023-06-03\",\"objectID\":\"/posts/v2-tailwind/:3:0\",\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"title\":\"Vue2 + tailwindcss 初始化\",\"uri\":\"/posts/v2-tailwind/#启动项目\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。 此指南仅供参考，请根据自身实际情况灵活调整。 转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51 \",\"date\":\"2023-03-14\",\"objectID\":\"/posts/vue2-guid/:0:0\",\"tags\":[\"Vue2\",\"他山之石\"],\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"uri\":\"/posts/vue2-guid/#\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"1 起步 扎实的 JavaScript / HTML / CSS 基本功。这是前置条件。 通读官方教程 (guide) 的基础篇。不要用任何构建工具，就只用最简单的 \\u0026lt;script\\u0026gt;，把教程里的例子模仿一遍，理解用法。不推荐上来就直接用 vue-cli 构建项目，尤其是如果没有 Node/Webpack 基础。 照着官网上的示例，自己想一些类似的例子，模仿着实现来练手，加深理解。 阅读官方教程进阶篇的前半部分，到『自定义指令 (Custom Directive) 』为止。着重理解 Vue 的响应式机制和组件生命周期。『渲染函数（Render Function)』如果理解吃力可以先跳过。 阅读教程里关于路由和状态管理的章节，然后根据需要学习 vue-router 和 vuex。同样的，先不要管构建工具，以跟着文档里的例子理解用法为主。 走完基础文档后，如果你对于基于 Node 的前端工程化不熟悉，就需要补课了。下面这些严格来说并不是 Vue 本身的内容，也不涵盖所有的前端工程化知识，但对于大型的 Vue 工程是前置条件，也是合格的『前端工程师』应当具备的知识。 \",\"date\":\"2023-03-14\",\"objectID\":\"/posts/vue2-guid/:1:0\",\"tags\":[\"Vue2\",\"他山之石\"],\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"uri\":\"/posts/vue2-guid/#起步\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"2 前端生态/工程化 了解 JavaScript 背后的规范，ECMAScript 的历史和目前的规范制定方式。学习 ES2015/16 的新特性，理解 ES2015 modules，适当关注还未成为标准的提案。 学习命令行的使用。建议用 Mac。 学习 Node.js 基础。建议使用 nvm 这样的工具来管理机器上的 Node 版本，并且将 npm 的 registry 注册表配置为淘宝的镜像源。 至少要了解 npm 的常用命令，npm scripts 如何使用，语义化版本号规则，CommonJS 模块规范（了解它和 ES2015 Modules 的异同），Node 包的解析规则，以及 Node 的常用 API。应当做到可以自己写一些基本的命令行程序。注意最新版本的 Node (6+) 已经支持绝大部分 ES2015 的特性，可以借此巩固 ES2015。 了解如何使用 / 配置 Babel 来将 ES2015 编译到 ES5 用于浏览器环境。 学习 Webpack。Webpack 是一个极其强大同时也复杂的工具，作为起步，理解它的『一切皆模块』的思想，并基本了解其常用配置选项和 loader 的概念/使用方法即可，比如如何搭配 Webpack 使用 Babel。学习 Webpack 的一个挑战在于其本身文档的混乱，建议多搜索搜索，应该还是有质量不错的第三方教程的。英文好的建议阅读 Webpack 2.0 的文档，比起 1.0 有极大的改善，但需要注意和 1.0 的不兼容之处。 \",\"date\":\"2023-03-14\",\"objectID\":\"/posts/vue2-guid/:2:0\",\"tags\":[\"Vue2\",\"他山之石\"],\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"uri\":\"/posts/vue2-guid/#前端生态工程化\"},{\"categories\":[\"Vue.js\"],\"collections\":null,\"content\":\"3 Vue 进阶 有了 Node 和 Webpack 的基础，可以通过 vue-cli 来搭建基于 Webpack，并且支持单文件组件的项目了。建议用 webpack-simple 这个模板开始，并阅读官方教程进阶篇剩余的内容以及 vue-loader 的文档，了解一些进阶配置。有兴趣的可以自己亲手从零开始搭一个项目加深理解。 根据 例子 尝试在 Webpack 模板基础上整合 vue-router 和 vuex 深入理解 Virtual DOM 和『渲染函数 (Render Functions)』这一章节（可选择性使用 JSX)，理解模板和渲染函数之间的对应关系，了解其使用方法和适用场景。 （可选）根据需求，了解服务端渲染的使用（需要配合 Node 服务器开发的知识）。其实更重要的是理解它所解决的问题并搞清楚你是否需要它。 阅读开源的 Vue 应用、组件、插件源码，自己尝试编写开源的 Vue 组件、插件。 参考 贡献指南 阅读 Vue 的源码，理解内部实现细节。（需要了解 Flow） 参与 Vue GitHub issue 的定位 -\\u0026gt; 贡献 PR -\\u0026gt; 加入核心团队 -\\u0026gt; 升任 CTO -\\u0026gt; 迎娶白富美\\u0026hellip;（误 注：目前 Vue3 已经发布并广泛使用，文章 Vue 相关文档链接可能重定向至 Vue3，请自行甄别。 \",\"date\":\"2023-03-14\",\"objectID\":\"/posts/vue2-guid/:3:0\",\"tags\":[\"Vue2\",\"他山之石\"],\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"uri\":\"/posts/vue2-guid/#vue-进阶\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/shortcode mmt netease: 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。 \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:1:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#shortcode-mmt-netease data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Demo https://lruihao.cn/guestbook/ \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:2:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#demo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装 提示 本组件适用于所有 Hugo 主题，但你必须有一个主体主题来使用它，以下以 FixIt 主题为例。 安装方法与 安装主题 相同。有几种安装方法，请选择一种。 \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:3:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装为 Hugo 模块 首先确保你的项目本身是一个 Hugo 模块。 然后将此主题组件添加到你的 hugo.toml 配置文件中： [module] [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/FixIt\\u0026#34; [[module.imports]] path = \\u0026#34;github.com/hugo-fixit/shortcode-mmt-netease\\u0026#34; 在第一次启动 Hugo 时，它将下载所需的文件。 要更新到模块的最新版本，请运行： hugo mod get -u hugo mod tidy \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:3:1\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#安装为-hugo-模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装为 Git 子模块 将 FixIt 和此 git 存储库克隆到你的主题文件夹中，并将其添加为网站目录的子模块。 git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/shortcode-mmt-netease.git themes/shortcode-mmt-netease 接下来编辑项目的 hugo.toml 并将此主题组件添加到你的主题中： theme = [\\u0026#34;FixIt\\u0026#34;, \\u0026#34;shortcode-mmt-netease\\u0026#34;] \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:3:2\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#安装为-git-子模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用 mmt-netease shortcode 有以下命名参数： mid [必需]（第一个位置参数）网易云歌单 ID autoplay [可选]（第二个位置参数）是否自动播放，默认：false fixed [可选]（第三个位置参数）是否启用固定模式，默认：false mini [可选]（第四个位置参数）是否启用迷你模式，默认：false volume [可选]（第五个位置参数）默认音量，注意播放器会记住用户设置，用户自己设置音量后默认音量将不起作用，默认：0.7 current [可选]（第六个位置参数）是否播放当前评论的音乐，默认：false 这是一个用法示例： {{\\u0026lt; mmt-netease mid=\\u0026#34;2280569152\\u0026#34; autoplay=\\u0026#34;false\\u0026#34; \\u0026gt;}} \\u0026lt;!-- OR --\\u0026gt; {{\\u0026lt; mmt-netease \\u0026#34;2280569152\\u0026#34; false \\u0026gt;}} \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:4:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#使用\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Dependencies APlayer MetingJS mmt-webfont vercel-proxy \",\"date\":\"2023-02-28\",\"objectID\":\"/projects/hugo-fixit/shortcode-mmt-netease/:5:0\",\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"uri\":\"/projects/hugo-fixit/shortcode-mmt-netease/#dependencies\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"记录使用 HTML 原生方案实现图片的懒加载。 \",\"date\":\"2023-02-12\",\"objectID\":\"/posts/native-img-loading-lazy/:0:0\",\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"uri\":\"/posts/native-img-loading-lazy/#\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"17 语法规范 HTML loading 属性适用于 img 和 iframe，语法规范见 HTML Standard - Lazy loading attributes。 关键词 状态 描述 lazy 懒惰的 用于延迟获取资源，直到满足某些条件。 eager 渴望的 用于立即获取资源；默认状态。 属性的 缺失值默认值 和 无效值默认值 都是 Eager状态。 \",\"date\":\"2023-02-12\",\"objectID\":\"/posts/native-img-loading-lazy/:1:0\",\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"uri\":\"/posts/native-img-loading-lazy/#语法规范\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"18 实际应用 基于 FixIt 主题 版本大于 v0.2.18 的博客网站使用就是原生的懒加载方案，大致如下： \\u0026lt;img loading=\\u0026#34;lazy\\u0026#34; src=\\u0026#34;./example.jpg\\u0026#34; data-title=\\u0026#34;title text\\u0026#34; data-alt=\\u0026#34;alt text\\u0026#34; onload=\\u0026#34;this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of [\\u0026#39;data-title\\u0026#39;,\\u0026#39;data-alt\\u0026#39;,\\u0026#39;onerror\\u0026#39;,\\u0026#39;onload\\u0026#39;]){this.removeAttribute(a);}this.dataset.lazyloaded=\\u0026#39;\\u0026#39;;\\u0026#34; onerror=\\u0026#34;this.title=this.dataset.title;this.alt=this.dataset.alt;for(const a of [\\u0026#39;data-title\\u0026#39;,\\u0026#39;data-alt\\u0026#39;,\\u0026#39;onerror\\u0026#39;,\\u0026#39;onload\\u0026#39;]){this.removeAttribute(a);}\\u0026#34; /\\u0026gt; 为了达到 loading 的效果，以上代码中在 onload 后会给图片加上一个 data-lazyloaded 属性，所以我们可以这样来写 css 以达到显示 loading 图标的效果： img[loading=\\u0026#39;lazy\\u0026#39;]:not([data-lazyloaded]) { background: url(loading.svg) no-repeat center; } 设置 data-title 和 data-alt 是因为移动浏览器大多数只要有 title 或 alt 就会显示图片的替代字符，所以等到图片加载完或加载失败后再回填。 \",\"date\":\"2023-02-12\",\"objectID\":\"/posts/native-img-loading-lazy/:2:0\",\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"uri\":\"/posts/native-img-loading-lazy/#实际应用\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"19 懒加载特性的研究 以下结论来自 浏览器 IMG 图片原生懒加载 loading=”lazy”实践指南 « 张鑫旭 - 鑫空间 - 鑫生活 总结部分。 Lazy loading 加载数量与屏幕高度有关，高度越小加载数量越少，但并不是线性关系。 Lazy loading 加载数量与网速有关，网速越慢，加载数量越多，但并不是线性关系。 Lazy loading 加载没有缓冲，滚动即会触发新的图片资源加载。 Lazy loading 加载在窗口 resize 尺寸变化时候也会触发，例如屏幕高度从小变大的时候。 Lazy loading 加载也有可能会先加载后面的图片资源，例如页面加载时滚动高度很高的时候。 \",\"date\":\"2023-02-12\",\"objectID\":\"/posts/native-img-loading-lazy/:3:0\",\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"uri\":\"/posts/native-img-loading-lazy/#懒加载特性的研究\"},{\"categories\":[\"HTML\"],\"collections\":null,\"content\":\"20 参考链接 Lazy loading - Web 性能 | MDN Lazy loading via attribute for images \\u0026amp; iframes 兼容性 \",\"date\":\"2023-02-12\",\"objectID\":\"/posts/native-img-loading-lazy/:4:0\",\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"uri\":\"/posts/native-img-loading-lazy/#参考链接\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。 整个渲染流程分为多个阶段，分别是：HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画 每个阶段都有明确的输入输出，上一个阶段的输出会成为下一个阶段的输入。 这样，整个渲染流程就形成了一套组织严密的生产流水线。 渲染的第一步是解析 HTML。 解析过程中遇到 CSS 解析 CSS，遇到 JS 执行 JS。为了提高解析效率，浏览器在开始解析前，会启动一个预解析的线程，率先下载 HTML 中的外部 CSS 文件和 外部的 JS 文件。 如果主线程解析到link位置，此时外部的 CSS 文件还没有下载解析好，主线程不会等待，继续解析后续的 HTML。这是因为下载和解析 CSS 的工作是在预解析线程中进行的。这就是 CSS 不会阻塞 HTML 解析的根本原因。 如果主线程解析到script位置，会停止解析 HTML，转而等待 JS 文件下载好，并将全局代码解析执行完成后，才能继续解析 HTML。这是因为 JS 代码的执行过程可能会修改当前的 DOM 树，所以 DOM 树的生成必须暂停。这就是 JS 会阻塞 HTML 解析的根本原因。 第一步完成后，会得到 DOM 树和 CSSOM 树，浏览器的默认样式、内部样式、外部样式、行内样式均会包含在 CSSOM 树中。 渲染的下一步是样式计算。 主线程会遍历得到的 DOM 树，依次为树中的每个节点计算出它最终的样式，称之为 Computed Style。 在这一过程中，很多预设值会变成绝对值，比如red会变成rgb(255,0,0)；相对单位会变成绝对单位，比如em会变成px 这一步完成后，会得到一棵带有样式的 DOM 树。 接下来是布局，布局完成后会得到布局树。 布局阶段会依次遍历 DOM 树的每一个节点，计算每个节点的几何信息。例如节点的宽高、相对包含块的位置。 大部分时候，DOM 树和布局树并非一一对应。 比如display:none的节点没有几何信息，因此不会生成到布局树；又比如使用了伪元素选择器，虽然 DOM 树中不存在这些伪元素节点，但它们拥有几何信息，所以会生成到布局树中。还有匿名行盒、匿名块盒等等都会导致 DOM 树和布局树无法一一对应。 下一步是分层 主线程会使用一套复杂的策略对整个布局树中进行分层。 分层的好处在于，将来某一个层改变后，仅会对该层进行后续处理，从而提升效率。 滚动条、堆叠上下文、transform、opacity 等样式都会或多或少的影响分层结果，也可以通过will-change属性更大程度的影响分层结果。 再下一步是绘制 主线程会为每个层单独产生绘制指令集，用于描述这一层的内容该如何画出来。 完成绘制后，主线程将每个图层的绘制信息提交给合成线程，剩余工作将由合成线程完成。 合成线程首先对每个图层进行分块，将其划分为更多的小区域。 它会从线程池中拿取多个线程来完成分块工作。 分块完成后，进入光栅化阶段。 合成线程会将块信息交给 GPU 进程，以极高的速度完成光栅化。 GPU 进程会开启多个线程来完成光栅化，并且优先处理靠近视口区域的块。 光栅化的结果，就是一块一块的位图 最后一个阶段就是画了 合成线程拿到每个层、每个块的位图后，生成一个个「指引（quad）」信息。 指引会标识出每个位图应该画到屏幕的哪个位置，以及会考虑到旋转、缩放等变形。 变形发生在合成线程，与渲染主线程无关，这就是transform效率高的本质原因。 合成线程会把 quad 提交给 GPU 进程，由 GPU 进程产生系统调用，提交给 GPU 硬件，完成最终的屏幕成像。 \",\"date\":\"2023-02-05\",\"objectID\":\"/posts/browser-rendering/:1:0\",\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"title\":\"浏览器渲染原理\",\"uri\":\"/posts/browser-rendering/#浏览器是如何渲染页面的\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"2 什么是 reflow？ reflow 的本质就是重新计算 layout 树。 当进行了会影响布局树的操作后，需要重新计算布局树，会引发 layout。 为了避免连续的多次操作导致布局树反复计算，浏览器会合并这些操作，当 JS 代码全部完成后再进行统一计算。所以，改动属性造成的 reflow 是异步完成的。 也同样因为如此，当 JS 获取布局属性时，就可能造成无法获取到最新的布局信息。 浏览器在反复权衡下，最终决定获取属性立即 reflow。 \",\"date\":\"2023-02-05\",\"objectID\":\"/posts/browser-rendering/:2:0\",\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"title\":\"浏览器渲染原理\",\"uri\":\"/posts/browser-rendering/#什么是-reflow\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"3 什么是 repaint？ repaint 的本质就是重新根据分层信息计算了绘制指令。 当改动了可见样式后，就需要重新计算，会引发 repaint。 由于元素的布局信息也属于可见样式，所以 reflow 一定会引起 repaint。 \",\"date\":\"2023-02-05\",\"objectID\":\"/posts/browser-rendering/:3:0\",\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"title\":\"浏览器渲染原理\",\"uri\":\"/posts/browser-rendering/#什么是-repaint\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"4 为什么 transform 的效率高？ 因为 transform 既不会影响布局也不会影响绘制指令，它影响的只是渲染流程的最后一个「draw」阶段 由于 draw 阶段在合成线程中，所以 transform 的变化几乎不会影响渲染主线程。反之，渲染主线程无论如何忙碌，也不会影响 transform 的变化。 \",\"date\":\"2023-02-05\",\"objectID\":\"/posts/browser-rendering/:4:0\",\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"title\":\"浏览器渲染原理\",\"uri\":\"/posts/browser-rendering/#为什么-transform-的效率高\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\" 以下参考来源：阮一峰的 中文技术文档的写作规范 英语世界里，文档非常受重视，许多公司和组织都有自己的文档规范，清楚地规定写作要求，比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等（维基百科有一份完整的清单）。中文的也有不少，但都不令人满意，要么太简单，要么不太适用。 对于开发者来说，在工作中也需要适当地产出一些技术文档，但是很多人都不知道怎么写文档，都是凭着感觉写。 对于开发的系统、软件而言，系统用词的准确性和统一性也显得十分重要。 参考上面的规范，于是有了下面一份中文技术文档的写作规范。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:0:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29 标题 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:1:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#标题\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29.1 层级 标题分为四级。 一级标题：文章的标题 二级标题：文章主要部分的大标题 三级标题：二级标题下面一级的小标题 四级标题：三级标题下面某一方面的小标题 下面是示例。 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 注：最多支持六级，但是同论文写作一样，层级太深，会使得整体显得杂乱无章，当确实需要更深层级时，应另起新篇单独论述。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:1:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#层级\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29.2 原则 （1）一级标题下，不能直接出现三级标题。 示例：下面的文章结构，缺少二级标题。 # 一级标题 ### 三级标题 （2）标题要避免孤立编号（即同级标题只有一个）。 示例：下面的文章结构，二级标题 A只包含一个三级标题，完全可以省略三级标题 A。 ## 二级标题 A ### 三级标题 A ## 二级标题 B （3）下级标题不重复上一级标题的名字。 示例：下面的文章结构，二级标题与下属的三级标题同名，建议避免。 ## 概述 ### 概述 （4）谨慎使用四级标题，尽量避免出现，保持层级的简单，防止出现过于复杂的章节。 如果三级标题下有并列性的内容，建议只使用项目列表（Item list）。 示例：下面的结构二要好于结构一。结构一适用的场景，主要是较长篇幅的内容。 结构一 ### 三级标题 #### 四级标题 A #### 四级标题 B #### 四级标题 C 结构二 ### 三级标题 **（1）A** **（2）B** **（3）C** \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:1:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#原则\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30 文本 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:2:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#文本\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30.1 字间距 （1）全角中文字符与半角英文字符之间，应有一个半角空格。 错误：本文介绍如何快速启动Windows系统。 正确：本文介绍如何快速启动 Windows 系统。 （2）全角中文字符与半角阿拉伯数字之间，有没有半角空格都可，但必须保证风格统一，不能两种风格混杂。 正确：2011年5月15日，我订购了5台笔记本电脑与10台平板电脑。 正确：2011 年 5 月 15 日，我订购了 5 台笔记本电脑与 10 台平板电脑。 半角的百分号，视同阿拉伯数字。 正确：今年我国经济增长率是6.5%。 正确：今年我国经济增长率是 6.5%。 （3）英文单位若不翻译，单位前的阿拉伯数字与单位符号之间，应留出适当的空隙。 例1：一部容量为 16 GB 的智能手机 例2：1 h = 60 min = 3,600 s （4）半角英文字符和半角阿拉伯数字，与全角标点符号之间不留空格。 错误：他的电脑是 MacBook Air 。 正确：他的电脑是 MacBook Air。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:2:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#字间距\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30.2 句子 （1）避免使用长句。 不包含任何标点符号的单个句子，或者以逗号分隔的句子构件，长度尽量保持在 20 个字以内；20 ～ 29 个字的句子，可以接受；30 ～ 39 个字的句子，语义必须明确，才能接受；多于 40 个字的句子，任何情况下都不能接受。 错误：本产品适用于从由一台服务器进行动作控制的单一节点结构到由多台服务器进行动作控制的并行处理程序结构等多种体系结构。 正确：本产品适用于多种体系结构。无论是由一台服务器（单一节点结构），还是由多台服务器（并行处理结构）进行动作控制，均可以使用本产品。 逗号分割的长句，总长度不应该超过 100 字或者正文的 3 行。 （2）尽量使用简单句和并列句，避免使用复合句。 并列句：他昨天生病了，没有参加会议。 复合句：那个昨天生病的人没有参加会议。 （3）同样一个意思，尽量使用肯定句表达，不使用否定句表达。 错误：请确认没有接通装置的电源。 正确：请确认装置的电源已关闭。 （4）避免使用双重否定句。 错误：没有删除权限的用户，不能删除此文件。 正确：用户必须拥有删除权限，才能删除此文件。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:2:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#句子\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30.3 写作风格 （1）尽量不使用被动语态，改为使用主动语态。 错误：假如此软件尚未被安装， 正确：假如尚未安装这个软件， （2）不使用非正式的语言风格。 错误：Lady Gaga 的演唱会真是酷毙了，从没看过这么给力的表演！！！ 正确：无法参加本次活动，我深感遗憾。 （3）不使用冷僻、生造或者文言文的词语，而要使用现代汉语的常用表达方式。 错误：这是唯二的快速启动的方法。 正确：这是仅有的两种快速启动的方法。 （4）用对“的”、“地”、“得”。 她露出了开心的笑容。 （形容词＋的＋名词） 她开心地笑了。 （副词＋地＋动词） 她笑得很开心。 （动词＋得＋副词） （5）使用代词时（比如“其”、“该”、“此”、“这”等词），必须明确指代的内容，保证只有一个含义。 错误：从管理系统可以监视中继系统和受其直接控制的分配系统。 正确：从管理系统可以监视两个系统：中继系统和受中继系统直接控制的分配系统。 （6）名词前不要使用过多的形容词。 错误：此设备的使用必须在接受过本公司举办的正式的设备培训的技师的指导下进行。 正确：此设备必须在技师的指导下使用，且指导技师必须接受过由本公司举办的正式设备培训。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:2:3\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#写作风格\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30.4 英文处理 （1）英文原文如果使用了复数形式，翻译成中文时，应该将其还原为单数形式。 英文：...information stored in random access memory (RAMs)... 中文：⋯⋯存储在随机存取存储器（RAM）里的信息⋯⋯ （2）外文缩写可以使用半角圆点 (.) 表示缩写。 U.S.A. Apple, Inc. （3）表示中文时，英文省略号（...）应改为中文省略号（⋯⋯）。 英文：5 minutes later... 中文：5 分钟过去了⋯⋯ （4）英文书名或电影名改用中文表达时，双引号应改为书名号。 英文：He published an article entitled \\u0026#34;The Future of the Aviation\\u0026#34;. 中文：他发表了一篇名为《航空业的未来》的文章。 （5）第一次出现英文词汇时，在括号中给出中文标注。此后再次出现时，直接使用英文缩写即可。 IOC（International Olympic Committee，国际奥林匹克委员会）。这样定义后，便可以直接使用“IOC”了。 （6）专有名词中每个词第一个字母均应大写，非专有名词则不需要大写。 “American Association of Physicists in Medicine”（美国医学物理学家协会）是专有名词，需要大写。 “online transaction processing”（在线事务处理）不是专有名词，不应大写。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:2:4\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#英文处理\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"31 段落 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:3:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#段落\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"31.1 原则 一个段落只能有一个主题，或一个中心句子。 段落的中心句子放在段首，对全段内容进行概述。后面陈述的句子为中心句子服务。 一个段落的长度不能超过七行，最佳段落长度小于等于四行。 段落的句子语气要使用陈述和肯定语气，避免使用感叹语气。 段落之间使用一个空行隔开。 段落开头不要留出空白字符。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:3:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#原则-1\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"31.2 引用 引用第三方内容时，应注明出处。 One man’s constant is another man’s variable. — Alan Perlis 如果是全篇转载，请在全文开头显著位置注明作者和出处，并链接至原文。 本文转载自 WikiQuote 使用外部图片时，必须在图片下方或文末标明来源。 本文部分图片来自 Wikipedia \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:3:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#引用\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32 数值 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#数值\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32.1 半角数字 阿拉伯数字一律使用半角形式，不得使用全角形式。 错误：这件商品的价格是１０００元。 正确：这件商品的价格是 1000 元。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#半角数字\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32.2 千分号 数值为千位以上，应添加千分号（半角逗号）。 XXX 公司的实收资本为 ￥1,258,000 人民币。 对于 4 位的数值，千分号是选用的，比如1000和1,000都可以接受。对于 4 位以上的数值，应添加千分号。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#千分号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32.3 货币 货币应为阿拉伯数字，并在数字前写出货币符号，或在数字后写出货币中文名称。 $1,000 1,000 美元 英文的货币名称，建议参考国际标准 ISO 4217。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:3\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#货币\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32.4 数值范围 表示数值范围时，用波浪线（～）或一字线（—）连接。参见《标点符号》一节的“连接号”部分。 带有单位或百分号时，两个数字建议都要加上单位或百分号。 132 kg～234 kg 67%～89% \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:4\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#数值范围\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"32.5 变化程度的表示法 数字的增加要使用“增加了”、“增加到”。“了”表示增量，“到”表示定量。 增加到过去的两倍 （过去为一，现在为二） 增加了两倍 （过去为一，现在为三） 数字的减少要使用“降低了”、“降低到”。“了”表示增量，“到”表示定量。 降低到百分之八十 （定额是一百，现在是八十） 降低了百分之八十 （原来是一百，现在是二十） 不能用“降低 N 倍”或“减少 N 倍”的表示法，要用“降低百分之几”或“减少百分之几”。因为减少（或降低）一倍表示数值原来为一百，现在等于零。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:4:5\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#变化程度的表示法\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33 标点符号 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#标点符号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.1 原则 （1）中文语句的标点符号，均应该采取全角符号，这样可以与全角文字保持视觉的一致。 （2）如果整句为英文，则该句使用英文/半角标点。 （3）句号、问号、叹号、逗号、顿号、分号和冒号不得出现在一行之首。 （4）点号（句号、逗号、顿号、分号、冒号）不得出现在标题的末尾，而标号（引号、括号、破折号、省略号、书名号、着重号、间隔号、叹号、问号）可以。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#原则-2\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.2 句号 （1）中文语句的结尾处应该用全角句号（。）。 （2）句子末尾用括号加注时，句号应在括号之外。 错误：关于文件的输出，请参照第 1.3 节（见第 26 页。） 正确：关于文件的输出，请参照第 1.3 节（见第 26 页）。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#句号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.3 逗号 （1）逗号（，）表示句子内部的一般性停顿。 （2）注意避免“一逗到底”，即整个段落除了结尾，全部停顿都使用逗号。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:3\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#逗号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.4 顿号 （1）句子内部的并列词，应该用全角顿号 (、) 分隔，而不用逗号，即使并列词是英语也是如此。 错误：我最欣赏的科技公司有 Google, Facebook, 腾讯, 阿里和百度等。 正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。 （2）英文句子中，并列词语之间使用半角逗号（,）分隔。 例句：Microsoft Office includes Word, Excel, PowerPoint, Outlook and other components. （3）中文句子内部的并列词，最后一个尽量使用（和）来连接，使句子读起来更加连贯，下面两个句子都可以，第二个更优。 正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里，以及百度等。 正确：我最欣赏的科技公司有 Google、Facebook、腾讯、阿里和百度等。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:4\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#顿号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.5 分号 （1）分号（；）表示复句内部并列分句之间的停顿。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:5\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#分号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.6 引号 （1）引用时，应该使用全角双引号（“ ”），注意前后双引号不同。 例句：许多人都认为客户服务的核心是“友好”和“专业”。 （2）引号里面还要用引号时，外面一层用双引号，里面一层用单引号（‘ ’），注意前后单引号不同。 例句：鲍勃解释道：“我要放音乐，可萨利说，‘不行！’。” \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:6\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#引号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.7 括号 （1）补充说明时，使用全角圆括号（（）），括号前后不加空格。 例句：请确认所有的连接（电缆和接插件）均安装牢固。 （2）几种括号的中英文名称。 英文 中文 { } braces 或 curly brackets 大括号 [ ] square brackets 或 brackets 方括号 \\u0026lt; \\u0026gt; angled brackets 尖括号 ( ) parentheses 圆括号 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:7\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#括号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.8 冒号 （1）全角冒号（：）常用在需要解释的词语后边，引出解释和说明。 例句：请确认以下几项内容：时间、地点、活动名称和来宾数量。 （2）表示时间时，应使用半角冒号（:）。 例句：早上 8:00 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:8\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#冒号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.9 省略号 （1）省略号（⋯⋯）表示语句未完、或者语气的不连续。 （2）省略号占两个汉字空间、包含六个省略点，不要使用。。。或...等非标准形式。 （3）省略号不应与“等”这个词一起使用。 错误：我们为会餐准备了香蕉、苹果、梨…等各色水果。 正确：我们为会餐准备了各色水果，有香蕉、苹果、梨⋯⋯ 正确：我们为会餐准备了香蕉、苹果、梨等各色水果。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:9\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#省略号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.10 感叹号 （1）应该使用平静的语气叙述，尽量避免使用感叹号（！）。 （2）不得多个感叹号连用，比如！！和!!!。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:10\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#感叹号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.11 破折号 （1）破折号————一般用于进一步解释。 （2）破折号应占两个汉字的位置。如果破折号本身只占一个汉字的位置，那么前后应该留出一个半角空格。 例句：直觉————尽管它并不总是可靠的————告诉我，这事可能出了些问题。 例句：直觉 —— 尽管它并不总是可靠的 —— 告诉我，这事可能出了些问题。 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:11\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#破折号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"33.12 连接号 （1）连接号用于连接两个类似的词。 （2）以下场合应该使用直线连接号（-），占一个半角字符的位置。 两个名词的复合 图表编号 例句：氧化-还原反应 例句：图 1-1 （3）数值范围（例如日期、时间或数字）应该使用波浪连接号（～）或一字号（—），占一个全角字符的位置。 例句：2009 年～2011 年 注意，波浪连接号前后两个值都建议加上单位。 （4）波浪连接号也可以用汉字“至”代替。 例句：周围温度：-20 °C 至 -10 °C \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:5:12\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#连接号\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"34 文档体系 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:6:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#文档体系\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"34.1 结构 软件手册是一部完整的书，建议采用下面的结构。 简介（Introduction）：[必备] [文件] 提供对产品和文档本身的总体的、扼要的说明 快速上手（Getting Started）：[可选] [文件] 如何最快速地使用产品 入门篇（Basics）：[必备] [目录] 又称“使用篇”，提供初级的使用教程 环境准备（Prerequisite）：[必备] [文件] 软件使用需要满足的前置条件 安装（Installation）：[可选] [文件] 软件的安装方法 设置（Configuration）：[必备] [文件] 软件的设置 进阶篇（Advanced)：[可选] [目录] 又称“开发篇”，提供中高级的开发教程 API（Reference）：[可选] [目录 | 文件] 软件 API 的逐一介绍 FAQ：[可选] [文件] 常见问题解答 附录（Appendix）：[可选] [目录] 不属于教程本身、但对阅读教程有帮助的内容 Glossary：[可选] [文件] 名词解释 Recipes：[可选] [文件] 最佳实践 Troubleshooting：[可选] [文件] 故障处理 ChangeLog：[可选] [文件] 版本说明 Feedback：[可选] [文件] 反馈方式 下面是两个真实范例，可参考。 Redux 手册 Atom 手册 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:6:1\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#结构\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"34.2 文件名 文档的文件名不得含有空格。 文件名必须使用半角字符，不得使用全角字符。这也意味着，中文不能用于文件名。 错误：名词解释.md 正确：glossary.md 文件名建议只使用小写字母，不使用大写字母。 错误：TroubleShooting.md 正确：troubleshooting.md 为了醒目，某些说明文件的文件名，可以使用大写字母，比如README、LICENSE。 文件名包含多个单词时，单词之间建议使用半角的连词线（-）分隔。 不佳：advanced_usage.md 正确：advanced-usage.md \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:6:2\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#文件名\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"35 参考链接 产品手册中文写作规范, by 华为 写作规范和格式规范, by DaoCloud 技术写作技巧在日汉翻译中的应用, by 刘方 简体中文规范指南, by lengoo 文档风格指南, by LeanCloud 豌豆荚文案风格指南, by 豌豆荚 中文文案排版指北, by sparanoid 中文排版需求, by W3C 为什么文件名要小写？, by 阮一峰 Google Developer Documentation Style Guide, by Google 出版物上数字用法的规定（国家标准 GBT15835－2011） GB 3100-1993 国际单位制及其应用 markdownlint, VSCode 插件 pangu.js, 盘古之白系列插件 \",\"date\":\"2023-02-04\",\"objectID\":\"/posts/document-style-guide/:7:0\",\"tags\":null,\"title\":\"中文技术文档的写作规范\",\"uri\":\"/posts/document-style-guide/#参考链接\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:0:0\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"13 浏览器的进程模型 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:1:0\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#浏览器的进程模型\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"13.1 何为进程？ 程序运行需要有它自己专属的内存空间，可以把这块内存空间简单的理解为进程 进程可以简单理解为单独的内存空间 每个应用至少有一个进程，进程之间相互独立，即使要通信，也需要双方同意。 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:1:1\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#何为进程\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"13.2 何为线程？ 有了进程后，就可以运行程序的代码了。 运行代码的「人」称之为「线程」。 一个进程至少有一个线程，所以在进程开启后会自动创建一个线程来运行代码，该线程称之为主线程。 如果程序需要同时执行多块代码，主线程就会启动更多的线程来执行代码，所以一个进程中可以包含多个线程。 一个进程可以有 N 个线程 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:1:2\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#何为线程\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"13.3 浏览器有哪些进程和线程？ 浏览器是一个多进程多线程的应用程序，浏览器内部工作极其复杂。 为了避免相互影响，为了减少连环崩溃的几率，当启动浏览器后，它会自动启动多个进程。 浏览器进程 可以在浏览器的任务管理器中查看当前的所有进程 其中，最主要的进程有： 浏览器进程 主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。 网络进程 负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。 渲染进程（本篇重点讲解的进程） 渲染进程启动后，会开启一个渲染主线程，主线程负责执行 HTML、CSS、JS 代码。 默认情况下，浏览器会为每个标签页开启一个新的渲染进程，以保证不同的标签页之间不相互影响。 将来该默认模式可能会有所改变，有兴趣的同学可参见 chrome 官方说明文档 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:1:3\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#浏览器有哪些进程和线程\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"14 渲染主线程是如何工作的？ 渲染主线程是浏览器中最繁忙的线程，需要它处理的任务包括但不限于： 解析 HTML 解析 CSS 计算样式 布局 处理图层 每秒把页面画 60 次 执行全局 JS 代码 执行事件处理函数 执行计时器的回调函数 \\u0026hellip;\\u0026hellip; 思考题：为什么渲染进程不适用多个线程来处理这些事情？ 要处理这么多的任务，主线程遇到了一个前所未有的难题：如何调度任务？ 比如： 我正在执行一个 JS 函数，执行到一半的时候用户点击了按钮，我该立即去执行点击事件的处理函数吗？ 我正在执行一个 JS 函数，执行到一半的时候某个计时器到达了时间，我该立即去执行它的回调吗？ 浏览器进程通知我“用户点击了按钮”，与此同时，某个计时器也到达了时间，我应该处理哪一个呢？ \\u0026hellip;\\u0026hellip; 渲染主线程想出了一个绝妙的主意来处理这个问题：排队 所有要执行的任务都要排队，FIFO 在最开始的时候，渲染主线程会进入一个无限循环 每一次循环会检查消息队列中是否有任务存在。如果有，就取出第一个任务执行，执行完一个后进入下一次循环；如果没有，则进入休眠状态。 其他所有线程（包括其他进程的线程）可以随时向消息队列添加任务。新任务会加到消息队列的末尾。在添加新任务时，如果主线程是休眠状态，则会将其唤醒以继续循环拿取任务 这样一来，就可以让每个任务有条不紊的、持续的进行下去了。整个过程，被称之为事件循环（消息循环）。 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:2:0\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#渲染主线程是如何工作的\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"15 若干解释 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:3:0\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#若干解释\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"15.1 何为异步？ 代码在执行过程中，会遇到一些无法立即处理的任务，比如： 计时完成后需要执行的任务 —— setTimeout、setInterval 网络通信完成后需要执行的任务 — XHR、Fetch 用户操作后需要执行的任务 — addEventListener 如果让渲染主线程等待这些任务的时机达到，就会导致主线程长期处于「阻塞」的状态，从而导致浏览器「卡死」 同步策略会导致卡死 渲染主线程承担着极其重要的工作，无论如何都不能阻塞！ 因此，浏览器选择异步来解决这个问题 异步策略，渲染主线程永不阻塞 使用异步的方式，渲染主线程永不阻塞 面试题：如何理解 JS 的异步？ 参考答案： JS 是一门单线程的语言，这是因为它运行在浏览器的渲染主线程中，而渲染主线程只有一个。 而渲染主线程承担着诸多的工作，渲染页面、执行 JS 都在其中运行。 如果使用同步的方式，就极有可能导致主线程产生阻塞，从而导致消息队列中的很多其他任务无法得到执行。这样一来，一方面会导致繁忙的主线程白白的消耗时间，另一方面导致页面无法及时更新，给用户造成卡死现象。 所以浏览器采用异步的方式来避免。具体做法是当某些任务发生时，比如计时器、网络、事件监听，主线程将任务交给其他线程去处理，自身立即结束任务的执行，转而执行后续代码。当其他线程完成时，将事先传递的回调函数包装成任务，加入到消息队列的末尾排队，等待主线程调度执行。 在这种异步模式下，浏览器永不阻塞，从而最大限度的保证了单线程的流畅运行。 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:3:1\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#何为异步\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"15.2 JS 为何会阻碍渲染？ 先看代码 \\u0026lt;h1\\u0026gt;Mr.Yuan is awesome!\\u0026lt;/h1\\u0026gt; \\u0026lt;button\\u0026gt;change\\u0026lt;/button\\u0026gt; \\u0026lt;script\\u0026gt; var h1 = document.querySelector(\\u0026#39;h1\\u0026#39;); var btn = document.querySelector(\\u0026#39;button\\u0026#39;); // 死循环指定的时间 function delay(duration) { var start = Date.now(); while (Date.now() - start \\u0026lt; duration) {} } btn.onclick = function () { h1.textContent = \\u0026#39;袁老师很帅！\\u0026#39;; delay(3000); }; \\u0026lt;/script\\u0026gt; 点击按钮后，会发生什么呢？ \\u0026lt;复制代码自行演示\\u0026gt; \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:3:2\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#js-为何会阻碍渲染\"},{\"categories\":[\"Browser\"],\"collections\":null,\"content\":\"15.3 任务有优先级吗？ 任务没有优先级，在消息队列中先进先出 但消息队列是有优先级的 根据 W3C 的最新解释： 每个任务都有一个任务类型，同一个类型的任务必须在一个队列，不同类型的任务可以分属于不同的队列。 在一次事件循环中，浏览器可以根据实际情况从不同的队列中取出任务执行。 浏览器必须准备好一个微队列，微队列中的任务优先所有其他任务执行 https://html.spec.whatwg.org/multipage/webappapis.html#perform-a-microtask-checkpoint 随着浏览器的复杂度急剧提升，W3C 不再使用宏队列的说法 在目前 chrome 的实现中，至少包含了下面的队列： 微队列：用户存放需要最快执行的任务，优先级「最高」 延时队列：用于存放计时器到达后的回调任务，优先级「中」 交互队列：用于存放用户操作后产生的事件处理任务，优先级「高」 微队列、延时队列、交互队列 添加任务到微队列的主要方式主要是使用 Promise、MutationObserver，例如： // 立即把一个函数添加到微队列 Promise.resolve().then(() =\\u0026gt; {}); 浏览器还有很多其他的队列，由于和我们开发关系不大，不作考虑。 面试题：阐述一下 JS 的事件循环 参考答案： 事件循环又叫做消息循环，是浏览器渲染主线程的工作方式。 在 Chrome 的源码中，它开启一个不会结束的 for 循环，每次循环从消息队列中取出第一个任务执行，而其他线程只需要在合适的时候将任务加入到队列末尾即可。 过去把消息队列简单分为宏队列和微队列，这种说法目前已无法满足复杂的浏览器环境，取而代之的是一种更加灵活多变的处理方式。 根据 W3C 官方的解释，每个任务有不同的类型，同类型的任务必须在同一个队列，不同的任务可以属于不同的队列。不同任务队列有不同的优先级，在一次事件循环中，由浏览器自行决定取哪一个队列的任务。但浏览器必须有一个微队列，微队列的任务一定具有最高的优先级，必须优先调度执行。 面试题：JS 中的计时器能做到精确计时吗？为什么？ 参考答案： 不行，因为： 计算机硬件没有原子钟，无法做到精确计时 操作系统的计时函数本身就有少量偏差，由于 JS 的计时器最终调用的是操作系统的函数，也就携带了这些偏差 按照 W3C 的标准，浏览器实现计时器时，如果嵌套层级超过 5 层，则会带有 4 毫秒的最少时间，这样在计时时间少于 4 毫秒时又带来了偏差 受事件循环的影响，计时器的回调函数只能在主线程空闲时运行，因此又带来了偏差 \",\"date\":\"2023-01-11\",\"objectID\":\"/posts/event-loop/:3:3\",\"tags\":[\"Browser\",\"JavaScript\"],\"title\":\"浏览器原理 - 事件循环\",\"uri\":\"/posts/event-loop/#任务有优先级吗\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效的解决办法\",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/:0:0\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"17 罪魁祸首 首先定位到这次问题的根本原因是安装 Homebrew 导致的，这点可以很快也很明确地定位到，因为以前安装 Homebrew 也遇到了这个问题，但是当时的做法是卸载 Homebrew 避免冲突。 \",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/:1:0\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/#罪魁祸首\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"18 Why 分析为啥会冲突，Homebrew 安装的工程中也会默认一部分依赖的二进制文件，npm 和 npx 也在其中，所以这导致了 Homebrew 的安装 npm 和 npx 覆盖了系统中 node 的 npm 和 npx 进而导致 node 和 npm 版本不一致，无法使用 npm 启动项目。 \",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/:2:0\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/#why\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"19 Where 找一下目前 npm 和 npx 的二进制文件在哪。 nvm use system node -v # 8.10.0 which npm # /opt/homebrew/bin/npm which npx # /opt/homebrew/bin/npx \",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/:3:0\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/#where\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"20 How 很明显前面的猜测是对的，那就打开这个目录看看： open /opt/homebrew/bin 找到 npm 和 npx，把他们重命名为 npm-brew 和 npx-brew, 这样通过别名也保留 Homebrew 的 npm 和 npx. 修改完后，重启终端，再看看 npm 和 npx 是否生效： nvm use system node -v # 8.10.0 which npm # /usr/local/bin/npm which npx # /usr/local/bin/npx npm -v npx -v 一切正常了，可以用 npm 继续启动原来的项目了。 \",\"date\":\"2022-12-15\",\"objectID\":\"/posts/homebrew-npm/:4:0\",\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"uri\":\"/posts/homebrew-npm/#how\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/vue minder editor extended: 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:1:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#vue-minder-editor data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Install npm install vue-minder-editor-extended --save \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:2:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#install\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Usage 注册组件： import vueMinderEditor from \\u0026#39;vue-minder-editor-extended\\u0026#39; import Vue from \\u0026#39;vue\\u0026#39; Vue.use(vueMinderEditor) 使用组件： \\u0026lt;template\\u0026gt; \\u0026lt;div\\u0026gt; \\u0026lt;minder-editor :progress-enable=\\u0026#34;false\\u0026#34; :import-json=\\u0026#34;importJson\\u0026#34;/\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/template\\u0026gt; \\u0026lt;script\\u0026gt; import minderEditor from \\u0026#39;../../dist/static/vue-minder-editor-extended\\u0026#39; import vue from \\u0026#39;vue\\u0026#39; vue.use(minderEditor); export default { name: \\u0026#39;test-plugin\\u0026#39;, data() { return { importJson: { // 节点数据 root: { data: { // 文本内容 text: \\u0026#39;vue-minder-editor-extended\\u0026#39;, // 标签 resource: [\\u0026#39;模块1\\u0026#39;], // 是否禁止修改 disable: true, // 默认展开或折叠，默认是展开的，collapse 可设为折叠 // expandState: \\u0026#39;collapse\\u0026#39;, // 在 disable 为 true 的情况下，允许添加标签 tagEnable: true, // 在 disable 为 true 的情况下，允许删除节点 allowDelete: true, // 在 disable 为 true 的情况下，允许添加标签，优先级比 tagEnable 高 allowDisabledTag: true, }, // 子节点 children: [ { data: { text: \\u0026#39;child1\\u0026#39;, disable: true, expandState: \\u0026#39;collapse\\u0026#39;, resource: [\\u0026#39;模块2\\u0026#39;] }, children: [ { data: { text: \\u0026#39;child11\\u0026#39;, disable: true, resource: [\\u0026#39;模块2\\u0026#39;] }, }, { data: { text: \\u0026#39;child12\\u0026#39;, } } ] }, { data: { text: \\u0026#39;child2\\u0026#39;, } } ] }, }, tags: [\\u0026#39;模块1\\u0026#39;,\\u0026#39;模块2\\u0026#39;] } } } \\u0026lt;/script\\u0026gt; \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:3:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#usage\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"国际化 // 方式一 import locale from \\u0026#39;/src/locale/lang/en-US\\u0026#39; Vue.use(vueMinderEditorExtended, { locale }); // 方式二 import lang from \\u0026#39;/src/locale/lang/en-US\\u0026#39; import locale from \\u0026#39;/src/locale\\u0026#39; locale.use(lang) Vue.use(vueMinderEditorExtended); // 方式三 import Vue from \\u0026#39;vue\\u0026#39;; import VueI18n from \\u0026#39;vue-i18n\\u0026#39;; import enLocale from \\u0026#39;vue-minder-editor-extended/src/locale/lang/en-US\\u0026#39;; import zhLocale from \\u0026#39;vue-minder-editor-extended/src/locale/lang/zh-CN\\u0026#39;; import vueMinderEditor from \\u0026#39;vue-minder-editor-extended\\u0026#39;; const messages = { en: { message: \\u0026#39;hello\\u0026#39;, ...enLocale }, zh: { message: \\u0026#39;你好\\u0026#39;, ...zhLocale } } Vue.use(VueI18n); const i18n = new VueI18n({ locale: \\u0026#39;en\\u0026#39;, // set locale messages, // set locale messages }) Vue.use(vueMinderEditor, { i18n: (key, value) =\\u0026gt; i18n.t(key, value) }); \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:4:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#国际化\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"主题 Vue Minder Editor 组件已支持初始化时设置主题及注册主题，默认主题为 fresh-blue。 如需手动注册设置主题，允许使用的主题及其配置项可以使用 window.kityminder.Minder.getThemeList() 查询。 // 注册主题 window.kityminder.Theme.register(\\u0026#39;my-minder-theme\\u0026#39;, minderThemeItems) // 设置主题 window.minder.useTheme(\\u0026#39;my-minder-theme\\u0026#39;) // 或者 window.minder.execCommand(\\u0026#39;theme\\u0026#39;, \\u0026#39;my-minder-theme\\u0026#39;) \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:5:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#主题\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Props 以下配置部分为 kityminder-core 扩展的功能，kityminder-core 本身的 minder 对象提供了丰富的功能，使用该组件时可通过 window.minder 对象获取 minder 对象具体的使用方法，可以参考它的文档扩展 kityminder-core wiki 以及 #API 章节补充。 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:6:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#props\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"基础配置 Name Description Type Default importJson 需要脑图解析的 js 对象，参数详情可参考上文 demo，或者调用 minder.exportJson() 查看具体参数 Object null height 显示高度，默认 500px Number 500 theme 设置初始化主题，可选值使用 window.kityminder.Minder.getThemeList() 查询 String fresh-blue registerTheme 注册主题，参数为主题配置项，如 registerTheme: { ...minderThemeItems } Object null disabled 是否禁止编辑 Boolean null defaultMold 外观设置中样式的默认值 Number 3 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:6:1\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#基础配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"启用配置 Name Description Type Default sequenceEnable 是否启用优先级功能 Boolean true tagEnable 是否启用标签功能 Boolean true progressEnable 是否启用完成进度功能 Boolean true moveEnable 是否启用上移下移功能 Boolean true \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:6:2\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#启用配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"优先级配置 Name Description Type Default priorities 优先级选项，当该参数不为空时 priorityCount, priorityStartWithZero, priorityPrefix 不生效 Array [] priorityCount 优先级最大显示数量，最多支持显示 9 个级别 Number 4 priorityStartWithZero 优先级是否从 0 开始 Boolean true priorityPrefix 优先级显示的前缀 String \\u0026lsquo;P\\u0026rsquo; priorityDisableCheck 优先级设置的回调函数，如果返回 true 则无法设置优先级 Function null \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:6:3\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#优先级配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"标签配置 Name Description Type Default tags 标签选项 Array [] distinctTags 定义排他标签，比如 [\\u0026rsquo;tag1\\u0026rsquo;,\\u0026rsquo;tag2\\u0026rsquo;], 则 tag1 不能和 tag2 共存 Array [] tagDisableCheck 菜单栏是否允许打标签的回调函数，返回 true 则不允许打标签 Function null tagEditCheck 打标签时的回调函数，返回 false 则打标签不成功，参数为当前节点的标签数组 Function null \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:6:4\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#标签配置\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Slots Name Description - 在脑图区域自定义额外内容 edit-menu 在思维导图 tab 最后自定义额外内容 view-menu 在外观样式 tab 最后自定义额外内容 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:7:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#slots\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"API 补充 kityminder-core wiki 中未说明的 API 文档。 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#api\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"minder 更多请查看 window.minder 对象或者 window.km 对象 window.minder.setTheme() 设置主题 window.minder.useTheme() 设置主题 (同 setTheme) window.minder.getTheme() 获取当前主题 window.minder.getThemeItems() 获取当前主题的所有样式 window.minder.execCommand(command, params) 执行命令 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:1\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#minder\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"kityminder 更多请查看 window.kityminder 对象 window.kityminder.Minder.getThemeList() 获取所有主题及主题配置项 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:2\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#kityminder\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"minderEditor 更多请查看 window.minderEditor 对象 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:3\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#mindereditor\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"kity 更多请查看 window.kity 对象 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:4\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#kity\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"HotBox 更多请查看 window.HotBox 对象 \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:8:5\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#hotbox\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Build Setup # npm install -g node-gyp # install npm dependencies npm install # serve with hot reload at localhost:8088 npm run dev # build for plugin with minification npm run build # License BSD-3-Clause License \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:9:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#build-setup\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参考 vue-minder-editor-plus vue-mindeditor kityminder-editor \",\"date\":\"2022-10-10\",\"objectID\":\"/projects/lruihao/vue-minder-editor-extended/:10:0\",\"tags\":[\"editor\",\"minder\",\"vue\"],\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"uri\":\"/projects/lruihao/vue-minder-editor-extended/#参考\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/hugo fixit starter: 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English 这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。 它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。 \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:1:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#hugo-fixit-博客模板go data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:2:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#目录结构\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"快速入门 完整的快速入门，请参阅此 页面。 \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#快速入门\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"准备 Go Hugo (extended version) \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:1\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#准备\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的存储库。 存储库创建后，只需克隆并享受吧！ # 使用你自己的存储库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#使用模板\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的存储库。 存储库创建后，只需克隆并享受吧！ # 使用你自己的存储库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#cli\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的存储库。 存储库创建后，只需克隆并享受吧！ # 使用你自己的存储库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#手动\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"启动站点 # 开发环境 hugo server # 生产环境 hugo server -e production \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:3\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#启动站点\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"构建站点 当你的站点准备部署时，运行以下命令： hugo \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:4\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#构建站点\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"部署到 GitHub Pages 注意 聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。 转到 Setting =\\u0026gt; Actions =\\u0026gt; General =\\u0026gt; Workflow permissions =\\u0026gt; 选中 \\u0026ldquo;Read and write permissions\\u0026rdquo;。 GitHub Pages 设置：Setting =\\u0026gt; Pages =\\u0026gt; Source: GitHub Actions。 修改 config/_default/hugo.toml 文件中的 baseURL 为你的站点 URL。 提交上一步的修改到 main 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。 \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:5\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#部署到-github-pages\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"更新主题 之后，你可以使用以下命令升级主题： # 手动更新主题 hugo mod get -u github.com/hugo-fixit/FixIt@latest hugo mod tidy 通过 NPM 脚本启动 # 构建博客 npm run build # 运行带有监视的本地调试服务器 npm run server # 在生产环境中运行本地调试服务器 npm run server:production # 更新主题子模块 npm run update:theme \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:3:6\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#更新主题\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"故障排除 remote: Permission to git denied to github-actions[bot]. 转到 Setting =\\u003e Actions =\\u003e General =\\u003e Workflow permissions =\\u003e 选中 \\\"Read and write permissions\\\"。 与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2022-09-30\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter/:4:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter/#故障排除\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/hugo fixit starter1: 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English 这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。 它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。 \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:1:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#hugo-fixit-博客模板git data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:2:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#目录结构\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"快速入门 完整的快速入门请参阅此 页面。 \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#快速入门\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"准备 Hugo: \\u0026gt;= 0.132.0 (extended version) \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:1\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#准备\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用此模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的仓库。 仓库创建后，只需克隆并开始使用！ # 使用你自己的仓库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#使用此模板\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用此模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的仓库。 仓库创建后，只需克隆并开始使用！ # 使用你自己的仓库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#cli\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用此模板 CLI npx fixit-cli create my-blog 手动 点击 Use this template，在 GitHub 上创建你的仓库。 仓库创建后，只需克隆并开始使用！ # 使用你自己的仓库 URL 进行克隆 git clone --recursive https://github.com/\\u0026lt;your_name\\u0026gt;/\\u0026lt;your_blog_repo\\u0026gt;.git 提示 仓库名决定了你的 GitHub Pages URL，例如： 仓库名 GitHub Pages \\u0026lt;your_name\\u0026gt;.github.io https://\\u0026lt;your_name\\u0026gt;.github.io/ blog https://\\u0026lt;your_name\\u0026gt;.github.io/blog/ \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:2\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#手动\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"启动站点 # 开发环境 hugo server # 生产环境 hugo server -e production \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:3\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#启动站点\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"构建站点 当你的站点准备部署时，运行以下命令： hugo \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:4\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#构建站点\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"部署到 GitHub Pages 注意 聪明的你可能已经注意到，模板初始化后的第一次 GitHub Actions 自动部署失败了。这是因为你还没有配置 Workflow 权限和 GitHub Pages。 转到 Setting =\\u0026gt; Actions =\\u0026gt; General =\\u0026gt; Workflow permissions =\\u0026gt; 选中 \\u0026ldquo;Read and write permissions\\u0026rdquo;。 GitHub Pages 设置：Setting =\\u0026gt; Pages =\\u0026gt; Source: GitHub Actions。 修改 config/_default/hugo.toml 文件中的 baseURL 为你的站点 URL。 提交上一步的修改到 main 分支，GitHub Actions 将自动打包并部署站点到 GitHub Pages。 \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:5\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#部署到-github-pages\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"更新主题 之后，你可以使用以下命令升级主题： # 手动更新主题 git submodule update --remote --merge themes/FixIt 通过 NPM 脚本启动 npm install # 构建博客 npm run build # 运行带有监视的本地调试服务器 npm run server # 在生产环境中运行本地调试服务器 npm run server:production # 更新主题子模块 npm run update:theme \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:3:6\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#更新主题\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"故障排除 remote: Permission to git denied to github-actions[bot]. 转到 Setting =\\u003e Actions =\\u003e General =\\u003e Workflow permissions =\\u003e 选中 \\\"Read and write permissions\\\"。 与单一站点配置文件不同，配置按环境、根配置键和语言进行拆分。\\u0026#160;\\u0026#x21a9;\\u0026#xfe0e; \",\"date\":\"2022-09-27\",\"objectID\":\"/projects/hugo-fixit/hugo-fixit-starter1/:4:0\",\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"uri\":\"/projects/hugo-fixit/hugo-fixit-starter1/#故障排除\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/hugo shell: Using frequently-used Hugo commands by shell.\",\"date\":\"2022-09-04\",\"objectID\":\"/projects/hugo-fixit/hugo-shell/\",\"tags\":[\"hugo\"],\"title\":\"Using frequently-used Hugo commands by shell.\",\"uri\":\"/projects/hugo-fixit/hugo-shell/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo Shell Using frequently-used Hugo commands by shell. \",\"date\":\"2022-09-04\",\"objectID\":\"/projects/hugo-fixit/hugo-shell/:1:0\",\"tags\":[\"hugo\"],\"title\":\"Using frequently-used Hugo commands by shell.\",\"uri\":\"/projects/hugo-fixit/hugo-shell/#hugo-shell data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Download Add a submodule for your Hugo blog project. git submodule add https://github.com/hugo-fixit/hugo-shell.git your_hugo_blog/.shell \",\"date\":\"2022-09-04\",\"objectID\":\"/projects/hugo-fixit/hugo-shell/:2:0\",\"tags\":[\"hugo\"],\"title\":\"Using frequently-used Hugo commands by shell.\",\"uri\":\"/projects/hugo-fixit/hugo-shell/#download\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Usage Run hugo_main.sh to choice frequently-used Hugo commands: cd .shell \\u0026amp;\\u0026amp; sh hugo_main.sh --------------Hugo Admin-------------- Please enter the serial number to work -------------------------------------- 1. post 2. server 3. server:production 4. build 5. submodule-sync 6. push -------------------------------------- Press Ctrl+C to stop \",\"date\":\"2022-09-04\",\"objectID\":\"/projects/hugo-fixit/hugo-shell/:3:0\",\"tags\":[\"hugo\"],\"title\":\"Using frequently-used Hugo commands by shell.\",\"uri\":\"/projects/hugo-fixit/hugo-shell/#usage\"},{\"categories\":[\"Go\"],\"collections\":null,\"content\":\"记录 GO 及 Beego 框架安装及基础配置。 \",\"date\":\"2022-08-31\",\"objectID\":\"/posts/beego-install/:0:0\",\"tags\":[\"Beego\",\"Go\"],\"title\":\"Beego 安装及配置\",\"uri\":\"/posts/beego-install/#\"},{\"categories\":[\"Go\"],\"collections\":null,\"content\":\"13 安装 Go 官网下载安装包：https://golang.google.cn/dl/ 通过二进制文件快速安装，默认安装目录：/usr/local/go 配置环境变量 vim ~/.bash_profile # golang export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/go export GOPROXY=https://goproxy.cn # Go work bin export PATH=$PATH:$GOPATH/bin \",\"date\":\"2022-08-31\",\"objectID\":\"/posts/beego-install/:1:0\",\"tags\":[\"Beego\",\"Go\"],\"title\":\"Beego 安装及配置\",\"uri\":\"/posts/beego-install/#安装-go\"},{\"categories\":[\"Go\"],\"collections\":null,\"content\":\"14 安装 Beego Beego repository Beego docs Beego new docs Beego 的安装需要在新建项目且 go mod init \\u0026lt;module_name\\u0026gt;之后，在项目下执行，具体参考 beego#quick-start。 \",\"date\":\"2022-08-31\",\"objectID\":\"/posts/beego-install/:2:0\",\"tags\":[\"Beego\",\"Go\"],\"title\":\"Beego 安装及配置\",\"uri\":\"/posts/beego-install/#安装-beego\"},{\"categories\":[\"Go\"],\"collections\":null,\"content\":\"15 安装 bee bee repository 注意：arm64 架构的 mac (M1 ～系列)，下载安装 bee 时最好，使用 Rosetta 打开终端，不然无法下载 darwin_arm64 的依赖，如果已经安装了，可以使用 Rosetta 打开终端后，运行 bee update 升级，升级完后将终端复原。 bee 工具安装，go install 安裝指定版本的 bee 工具，例如： go install github.com/beego/bee/v2@latest 安装成功后，可以在 $GOPATH/bin 下看到 bee 的可执行文件。 检验 bee 工具是否安装成功： bee version 创建一个新的 Beego 项目 bee new hello cd hello go mod tidy bee run \",\"date\":\"2022-08-31\",\"objectID\":\"/posts/beego-install/:3:0\",\"tags\":[\"Beego\",\"Go\"],\"title\":\"Beego 安装及配置\",\"uri\":\"/posts/beego-install/#安装-bee\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下： MAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:0:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"25 格式 基本的语法格式如下，更多请参考 Backus–Naur Form Grammar for Valid SemVer Versions \\u0026lt;valid semver\\u0026gt; ::= \\u0026lt;version core\\u0026gt; | \\u0026lt;version core\\u0026gt; \\u0026#34;-\\u0026#34; \\u0026lt;pre-release\\u0026gt; | \\u0026lt;version core\\u0026gt; \\u0026#34;+\\u0026#34; \\u0026lt;build\\u0026gt; | \\u0026lt;version core\\u0026gt; \\u0026#34;-\\u0026#34; \\u0026lt;pre-release\\u0026gt; \\u0026#34;+\\u0026#34; \\u0026lt;build\\u0026gt; 范例： 代码状态 等级 规则 版本样例 首次发布 新品发布 以 1.0.0 开始 1.0.0 bug 修复，向后兼容 补丁版本发布 变更第三位数字 1.0.1 新功能，向后兼容 次版本发布 变更第二位数字，并且第三位数字重置为 0 1.1.0 重大变更，不向后兼容 主版本发布 变更第一位数字，并且第二位，第三位数字重置为 0 2.0.0 “v1.2.3”是一个语义化版本号吗？ “v1.2.3”并不是的一个语义化的版本号。 但是，在语义化版本号之前增加前缀“v”是用来表示版本号的常用做法。 在版本控制系统中，将“version”缩写为“v”是很常见的。 比如：git tag v1.2.3 -m \\u0026quot;Release version 1.2.3\\u0026quot; 中，标签是“v1.2.3”，语义化版本号是“1.2.3”。 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:1:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#格式\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"26 规范 以下关键词 MUST、MUST NOT、REQUIRED、SHALL、SHALL NOT、SHOULD、SHOULD NOT、RECOMMENDED、MAY、OPTIONAL 依照 RFC 2119 的叙述解读。 语义化版本控制规范（SemVer） 使用语义化版本控制的软件必须（MUST）定义公共 API。该 API 可以在代码中被定义或出现于严谨的文档内。无论何种形式都应该力求精确且完整。 标准的版本号必须（MUST）采用 X.Y.Z 的格式，其中 X、Y 和 Z 为非负的整数，且禁止（MUST NOT）在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须（MUST）以数值来递增。例如：1.9.1 -\\u0026gt; 1.10.0 -\\u0026gt; 1.11.0。 标记版本号的软件发行后，禁止（MUST NOT）改变该版本软件的内容。任何修改都必须（MUST）以新版本发行。 主版本号为零（0.y.z）的软件处于开发初始阶段，一切都可能随时被改变。这样的公共 API 不应该被视为稳定版。 1.0.0 的版本号用于界定公共 API 的形成。这一版本之后所有的版本号更新都基于公共 API 及其修改内容。 修订号 Z（x.y.Z | x \\u0026gt; 0）必须（MUST）在只做了向下兼容的修正时才递增。这里的修正指的是针对不正确结果而进行的内部修改。 次版本号 Y（x.Y.z | x \\u0026gt; 0）必须（MUST）在有向下兼容的新功能出现时递增。在任何公共 API 的功能被标记为弃用（deprecated）时也必须（MUST）递增。也可以（MAY）在内部程序有大量新功能或改进被加入时递增，其中可以（MAY）包括修订级别的改变。每当次版本号递增时，修订号必须（MUST）归零。 主版本号 X（X.y.z | X \\u0026gt; 0）必须（MUST）在有任何不兼容的修改被加入公共 API 时递增。其中可以（MAY）包括次版本号及修订级别的改变。每当主版本号递增时，次版本号和修订号必须（MUST）归零。 先行版本号可以（MAY）被标注在修订版之后，先加上一个连接号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。数字型的标识符禁止（MUST NOT）在前方补零。先行版的优先级低于相关联的标准版本。被标上先行版本号则表示这个版本并非稳定而且可能无法满足预期的兼容性需求。范例：1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。 版本编译信息可以（MAY）被标注在修订版或先行版本号之后，先加上一个加号再加上一连串以句点分隔的标识符来修饰。标识符必须（MUST）由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成，且禁止（MUST NOT）留白。当判断版本的优先层级时，版本编译信息可（SHOULD）被忽略。因此当两个版本只有在版本编译信息有差别时，属于相同的优先层级。范例：1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。 版本的优先层级指的是不同版本在排序时如何比较。 判断优先层级时，必须（MUST）把版本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较（版本编译信息不在这份比较的列表中）。 由左到右依序比较每个标识符，第一个差异值用来决定优先层级：主版本号、次版本号及修订号以数值比较。 例如：1.0.0 \\u0026lt; 2.0.0 \\u0026lt; 2.1.0 \\u0026lt; 2.1.1。 当主版本号、次版本号及修订号都相同时，改以优先层级比较低的先行版本号决定。 例如：1.0.0-alpha \\u0026lt; 1.0.0。 有相同主版本号、次版本号及修订号的两个先行版本号，其优先层级必须（MUST）透过由左到右的每个被句点分隔的标识符来比较，直到找到一个差异值后决定： 只有数字的标识符以数值高低比较。 有字母或连接号时则逐字以 ASCII 的排序来比较。 数字的标识符比非数字的标识符优先层级低。 若开头的标识符都相同时，栏位比较多的先行版本号优先层级比较高。 例如：1.0.0-alpha \\u0026lt; 1.0.0-alpha.1 \\u0026lt; 1.0.0-alpha.beta \\u0026lt; 1.0.0-beta \\u0026lt; 1.0.0-beta.2 \\u0026lt; 1.0.0-beta.11 \\u0026lt; 1.0.0-rc.1 \\u0026lt; 1.0.0 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:2:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#规范\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"27 版本阶段 Base: 设计阶段，只有相应的设计没有具体的功能实现 Alpha: 软件的初级版本，基本功能已经实现，但存在较多的 bug Bate: 相对于 Alpha 已经有了很大的进步，消除了严重的 BUG，但还存在一些潜在的 BUG，还需要不断测试 RC: 该版本已经相当成熟了，基本上不存在导致错误的 Bug，与即将发行的正式版本相差无几 RELEASE: 最终发布版本，没有太大的问题 最终发布版本（RELEASE）之前的所有版本，都称为先行版本（pre-release）。 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:3:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#版本阶段\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"28 FAQ \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:4:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#faq\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29 其他相关 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:5:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#其他相关\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29.1 npm SemVer 通常我们发布一个包到 npm 仓库时，我们的做法是先修改 package.json 为某个版本，然后执行 npm publish 命令。手动修改版本号的做法建立在你对 SemVer 规范特别熟悉的基础之上，否则可能会造成版本混乱。npm 和 yarn 两个包管理都提供了 SemVer 规范的版本控制命令： npm-version yarn version npm 发包基础命令： # 1. 创建一个新的包 npm init # 2. 查看是否官方源 npm config get registry # 3. 登录 npm login # 4. 发布 npm publish # 版本变化 major.minor.patch npm version patch # 升级补丁版本 npm version minor # 升级小版号 npm version major # 升级大版号 # 下架 [-force] npm unpublish 全局设置版本号前缀 # https://docs.npmjs.com/cli/v8/using-npm/config#tag-version-prefix npm config set tag-version-prefix \\u0026#34;\\u0026#34; # 全局设置版本更新 commit 提交信息 # https://docs.npmjs.com/cli/v8/using-npm/config#message npm config set message \\u0026#34;Chore(release): %s\\u0026#34; 或者设置项目的 .npmrc 或者 .yarnrc # .npmrc tag-version-prefix=\\u0026#34;\\u0026#34; message=\\u0026#34;Chore(release): %s\\u0026#34; # .yarnrc version-tag-prefix \\u0026#34;\\u0026#34; version-git-message \\u0026#34;Chore(release): %s\\u0026#34; package.json 版本控制规则使用了一些些符号： ^ ~ \\u0026gt; \\u0026gt;= \\u0026lt; \\u0026lt;= = - || 这些规则的详情如下： ^: 只会执行不更改最左边非零数字的更新。如果写入的是 ^0.13.0，则当运行 npm update 时，可以更新到 0.13.1、0.13.2 等，但不能更新到 0.14.0 或更高版本。如果写入的是 ^1.13.0，则当运行 npm update 时，可以更新到 1.13.1、1.14.0 等，但不能更新到 2.0.0 或更高版本。 ~: 如果写入的是 〜0.13.0，则当运行 npm update 时，会更新到补丁版本：即 0.13.1 可以，但 0.14.0 不可以。 \\u0026gt;: 接受高于指定版本的任何版本。 \\u0026gt;=: 接受等于或高于指定版本的任何版本。 \\u0026lt;=: 接受等于或低于指定版本的任何版本。 \\u0026lt;: 接受低于指定版本的任何版本。 =: 接受确切的版本。 -: 接受一定范围的版本。例如：2.1.0 - 2.6.2。 ||: 组合集合。例如 \\u0026lt; 2.1 || \\u0026gt; 2.6。 可以合并其中的一些符号，例如 1.0.0 || \\u0026gt;=1.1.0 \\u0026lt;1.2.0，即使用 1.0.0 或从 1.1.0 开始但低于 1.2.0 的版本。 还有其他的规则： 无符号：仅接受指定的特定版本（例如 1.2.1）。 latest: 使用可用的最新版本。 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:5:1\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#npm-semver\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"29.2 版本保留 对于大型软件，每个版本都有使用价值时，应保留所有历史版本 对于始终以最新版本为准的软件，则可保留至少最近的 10 个次版本 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:5:2\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#版本保留\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"30 参考 Semantic Versioning 2.0.0 使用 npm 的语义版本控制 \",\"date\":\"2022-08-13\",\"objectID\":\"/posts/semver/:6:0\",\"tags\":[\"SemVer\"],\"title\":\"语义版本控制（SemVer）\",\"uri\":\"/posts/semver/#参考\"},{\"categories\":[\"Spec\",\"Git\"],\"collections\":null,\"content\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted. \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/commit-spec/:0:0\",\"tags\":[\"Git\"],\"title\":\"Commit Message Spec\",\"uri\":\"/posts/commit-spec/#\"},{\"categories\":[\"Spec\",\"Git\"],\"collections\":null,\"content\":\"13 Format [{emoji} ]{type}[({module})]: {subject within 50 words}[ (#{issue/pull request})] example: : tada: Feat: add shortcode fixit-encryptor shortcode (#123) : arrow_up: Chore(libs): update Artalk from 2.2.12 to 2.3.4 (#150) \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/commit-spec/:1:0\",\"tags\":[\"Git\"],\"title\":\"Commit Message Spec\",\"uri\":\"/posts/commit-spec/#format\"},{\"categories\":[\"Spec\",\"Git\"],\"collections\":null,\"content\":\"14 Emoji https://gitmoji.dev vscode plugin utools plugin GitEmoji \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/commit-spec/:2:0\",\"tags\":[\"Git\"],\"title\":\"Commit Message Spec\",\"uri\":\"/posts/commit-spec/#emoji\"},{\"categories\":[\"Spec\",\"Git\"],\"collections\":null,\"content\":\"15 Message Emoji Type Example Description (No Ambiguous) \\u0026#x1f389; \\u0026#x2728; Feat Feat: add {feature} new feature \\u0026#x1f69a; Feat: adjust/migrate {feature name}, {change details} For the adjustment feature, it is necessary to describe the current situation (before) and after adjustment (after) \\u0026#x1f525; Feat: delete {feature name}, {deletion reason} If the feature is deleted, the reason for deletion must be explained \\u0026#x1f41b; \\u0026#x1f6a7; \\u0026#x1f6a8; Fix Fix: fix {bug description} Fix known bugs \\u0026#x1f3a8; \\u0026#x1f484; \\u0026#x270f;\\u0026#xfe0f; Style Style: Typesetting/CSS style {optimizing content} Changes that do not affect code operation, such as code layout and style change \\u0026#x267b;\\u0026#xfe0f; Refactor Refactor: override {feature name} It is neither a new function nor a code change to fix a bug. Simply rewriting the code of a function does not affect the function result \\u0026#x26a1; Perf Perf: improve performance {function name}, {improve content} Optimize code performance \\u0026#x23ea; Revert Revert: restore version {commit message of restore version} Restore the version of one commit \\u0026#x1f4dd; \\u0026#x270f;\\u0026#xfe0f; Docs Docs: revise comments/update documents Adjustment of documents and notes \\u0026#x1f527; Chore Chore: update plugin version Changes in the construction process or auxiliary tools \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/commit-spec/:3:0\",\"tags\":[\"Git\"],\"title\":\"Commit Message Spec\",\"uri\":\"/posts/commit-spec/#message\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"总结一下最近 electron 开发遇到的问题和一些重要知识点。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:0:0\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"13 简介 如果你可以建一个网站，你就可以建一个桌面应用程序。 Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的开源框架，它负责比较难搞的部分，你只需把精力放在你的应用的核心上即可。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:1:0\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#简介\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14 知识点 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:2:0\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#知识点\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14.1 进程 electron 由两种进程组成，包括主进程和 0 个或 n 个渲染进程。 主进程：承担应用的生命周期（包括启动，退出，准备，正在切换到后台，正在切换到前台等，还负责与原生操作系统 API 通信） 渲染进程：做 web 页面的 ui，渲染进程之间独立在各自的单线程，渲染进程之间相互隔离，不能直接访问操作系统，需要通信到主线程，在通过主线程操作访问操作形态，一个 BrowserWindow 实例即为一个渲染进程 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:2:1\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#进程\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14.2 技术栈 electron 整合了 Node 和浏览器的所有能力，可以随意发挥这些技术栈的特点。由于固定浏览器内核，可以无需考虑兼容性地使用 html/js/css 新特性。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:2:2\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#技术栈\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14.3 安装 安装 electron 时，可能因为网络问题导致下载失败，需要使用镜像仓库来下载。 # 设置 electron 镜像仓库 # https://registry.npmmirror.com/-/binary/electron # 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v npm config set electron_mirror=https://npmmirror.com/mirrors/electron/ M1 Mac 安装较低版本 electron 时可能会报错，Failed to find Electron v xxx for darwin-arm64，因为这些版本的 electron 不支持 darwin-arm64 架构。Apple 针对未适配的 X64 应用提供了 Rosetta2 转换器，安装 darwin-x64 版本的 electron 在 Intel 模式下运行即可，参考。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:2:3\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#安装\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14.4 remote 不要频繁使用 remote, 更多应该手动进行和主进程之间的通信。 使用时需在窗口创建时设置 webPreferences.enableRemoteModule 为 true。 旧版本的 electron.remote 已经弃用，应该使用依赖 electron/remote 代替。 使用了旧版本的 remote 时会有控制台警告信息： (electron) The remote module is deprecated. Use https://github.com/electron/remote instead. 获取当前窗口：remote.getCurrentWindow() \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:2:4\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#remote\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15 问题点 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:0\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#问题点\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.1 打开外部浏览器 electron 的 shell 模块，可以使用 shell.openExternal(url) 在默认浏览器打开链接。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:1\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#打开外部浏览器\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.2 防抖与节流 防抖：短期内大量触发事件时，只执行最后一次。 function debounce(fn) { let timer = null; return function () { clearTimeOut(timer); timer = setTimeOut(() =\\u0026gt; { fn.applay(this, arguments); }, 300); }; } 节流：短期内大量触发事件时，只执行第一次。 function throttle(fn) { let timer = null; return function () { if (timer) return; timer = setTimeOut(() =\\u0026gt; { fn.applay(this, arguments); timer = null; }, 300); }; } \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:2\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#防抖与节流\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.3 devTools 初始化窗口时设置 webPreferences.devTools 为 true，然后通过 mainWindow.webContents.openDevTools() 打开开发者工具。 如果只在开发环境启用开发者工具，则需要设置 webPreferences.devTools 为 process.env.NODE_ENV === 'development' \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:3\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#devtools\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.4 启动白屏 在创建窗口时设置 show: false，在 ready-to-show 事件之后执行 mainWindow.show()， 可见官方文档 优雅地显示窗口。 15.4.1 启动前 loading 额外创建一个 loading 窗口，该窗口可设置为透明只包含 loading 图标和文字，在 mainWindow.show() 后关闭。 15.4.2 启动后 loading 如果使用了 Vue 框架，在 Vue 初始化之前窗口虽然出现了，但是内容时空白的，可以在 Vue 实例 #app 里写一个 loading, Vue 加载完后会覆盖掉。 \\u0026lt;div id=\\u0026#34;app\\u0026#34;\\u0026gt; \\u0026lt;!-- Display the loading icon and text until Vue initialization is complete --\\u0026gt; \\u0026lt;style type=\\u0026#34;text/css\\u0026#34;\\u0026gt; html, body { height: 100%; margin: 0; } body { display: flex; } #app { margin: auto; display: flex; align-items: center; } @media (prefers-color-scheme: dark) { body { color: #fff; background-color: #202124; } } \\u0026lt;/style\\u0026gt; \\u0026lt;svg xmlns=\\u0026#34;http://www.w3.org/2000/svg\\u0026#34; style=\\u0026#34;margin:auto;background:0 0\\u0026#34; width=\\u0026#34;60\\u0026#34; height=\\u0026#34;60\\u0026#34; viewBox=\\u0026#34;0 0 100 100\\u0026#34; preserveAspectRatio=\\u0026#34;xMidYMid\\u0026#34; display=\\u0026#34;block\\u0026#34; \\u0026gt; \\u0026lt;circle cx=\\u0026#34;50\\u0026#34; cy=\\u0026#34;50\\u0026#34; r=\\u0026#34;20\\u0026#34; stroke-width=\\u0026#34;4\\u0026#34; stroke=\\u0026#34;#a5a5a5\\u0026#34; stroke-dasharray=\\u0026#34;31.416 31.416\\u0026#34; fill=\\u0026#34;none\\u0026#34; stroke-linecap=\\u0026#34;round\\u0026#34; transform=\\u0026#34;rotate(67.21 50 50)\\u0026#34; \\u0026gt; \\u0026lt;animateTransform attributeName=\\u0026#34;transform\\u0026#34; type=\\u0026#34;rotate\\u0026#34; repeatCount=\\u0026#34;indefinite\\u0026#34; dur=\\u0026#34;1s\\u0026#34; keyTimes=\\u0026#34;0;1\\u0026#34; values=\\u0026#34;0 50 50;360 50 50\\u0026#34; /\\u0026gt; \\u0026lt;/circle\\u0026gt; \\u0026lt;/svg\\u0026gt; \\u0026lt;span\\u0026gt;加载中 ...\\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:4\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#启动白屏\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.4 启动白屏 在创建窗口时设置 show: false，在 ready-to-show 事件之后执行 mainWindow.show()， 可见官方文档 优雅地显示窗口。 15.4.1 启动前 loading 额外创建一个 loading 窗口，该窗口可设置为透明只包含 loading 图标和文字，在 mainWindow.show() 后关闭。 15.4.2 启动后 loading 如果使用了 Vue 框架，在 Vue 初始化之前窗口虽然出现了，但是内容时空白的，可以在 Vue 实例 #app 里写一个 loading, Vue 加载完后会覆盖掉。 \\u0026lt;div id=\\u0026#34;app\\u0026#34;\\u0026gt; \\u0026lt;!-- Display the loading icon and text until Vue initialization is complete --\\u0026gt; \\u0026lt;style type=\\u0026#34;text/css\\u0026#34;\\u0026gt; html, body { height: 100%; margin: 0; } body { display: flex; } #app { margin: auto; display: flex; align-items: center; } @media (prefers-color-scheme: dark) { body { color: #fff; background-color: #202124; } } \\u0026lt;/style\\u0026gt; \\u0026lt;svg xmlns=\\u0026#34;http://www.w3.org/2000/svg\\u0026#34; style=\\u0026#34;margin:auto;background:0 0\\u0026#34; width=\\u0026#34;60\\u0026#34; height=\\u0026#34;60\\u0026#34; viewBox=\\u0026#34;0 0 100 100\\u0026#34; preserveAspectRatio=\\u0026#34;xMidYMid\\u0026#34; display=\\u0026#34;block\\u0026#34; \\u0026gt; \\u0026lt;circle cx=\\u0026#34;50\\u0026#34; cy=\\u0026#34;50\\u0026#34; r=\\u0026#34;20\\u0026#34; stroke-width=\\u0026#34;4\\u0026#34; stroke=\\u0026#34;#a5a5a5\\u0026#34; stroke-dasharray=\\u0026#34;31.416 31.416\\u0026#34; fill=\\u0026#34;none\\u0026#34; stroke-linecap=\\u0026#34;round\\u0026#34; transform=\\u0026#34;rotate(67.21 50 50)\\u0026#34; \\u0026gt; \\u0026lt;animateTransform attributeName=\\u0026#34;transform\\u0026#34; type=\\u0026#34;rotate\\u0026#34; repeatCount=\\u0026#34;indefinite\\u0026#34; dur=\\u0026#34;1s\\u0026#34; keyTimes=\\u0026#34;0;1\\u0026#34; values=\\u0026#34;0 50 50;360 50 50\\u0026#34; /\\u0026gt; \\u0026lt;/circle\\u0026gt; \\u0026lt;/svg\\u0026gt; \\u0026lt;span\\u0026gt;加载中 ...\\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:4\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#启动前-loading\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.4 启动白屏 在创建窗口时设置 show: false，在 ready-to-show 事件之后执行 mainWindow.show()， 可见官方文档 优雅地显示窗口。 15.4.1 启动前 loading 额外创建一个 loading 窗口，该窗口可设置为透明只包含 loading 图标和文字，在 mainWindow.show() 后关闭。 15.4.2 启动后 loading 如果使用了 Vue 框架，在 Vue 初始化之前窗口虽然出现了，但是内容时空白的，可以在 Vue 实例 #app 里写一个 loading, Vue 加载完后会覆盖掉。 \\u0026lt;div id=\\u0026#34;app\\u0026#34;\\u0026gt; \\u0026lt;!-- Display the loading icon and text until Vue initialization is complete --\\u0026gt; \\u0026lt;style type=\\u0026#34;text/css\\u0026#34;\\u0026gt; html, body { height: 100%; margin: 0; } body { display: flex; } #app { margin: auto; display: flex; align-items: center; } @media (prefers-color-scheme: dark) { body { color: #fff; background-color: #202124; } } \\u0026lt;/style\\u0026gt; \\u0026lt;svg xmlns=\\u0026#34;http://www.w3.org/2000/svg\\u0026#34; style=\\u0026#34;margin:auto;background:0 0\\u0026#34; width=\\u0026#34;60\\u0026#34; height=\\u0026#34;60\\u0026#34; viewBox=\\u0026#34;0 0 100 100\\u0026#34; preserveAspectRatio=\\u0026#34;xMidYMid\\u0026#34; display=\\u0026#34;block\\u0026#34; \\u0026gt; \\u0026lt;circle cx=\\u0026#34;50\\u0026#34; cy=\\u0026#34;50\\u0026#34; r=\\u0026#34;20\\u0026#34; stroke-width=\\u0026#34;4\\u0026#34; stroke=\\u0026#34;#a5a5a5\\u0026#34; stroke-dasharray=\\u0026#34;31.416 31.416\\u0026#34; fill=\\u0026#34;none\\u0026#34; stroke-linecap=\\u0026#34;round\\u0026#34; transform=\\u0026#34;rotate(67.21 50 50)\\u0026#34; \\u0026gt; \\u0026lt;animateTransform attributeName=\\u0026#34;transform\\u0026#34; type=\\u0026#34;rotate\\u0026#34; repeatCount=\\u0026#34;indefinite\\u0026#34; dur=\\u0026#34;1s\\u0026#34; keyTimes=\\u0026#34;0;1\\u0026#34; values=\\u0026#34;0 50 50;360 50 50\\u0026#34; /\\u0026gt; \\u0026lt;/circle\\u0026gt; \\u0026lt;/svg\\u0026gt; \\u0026lt;span\\u0026gt;加载中 ...\\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:4\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#启动后-loading\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.5 阻止窗口关闭 可以在关闭前一些事件里做拦截，比如：onbeforeunload 等，详见 实例事件。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:5\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#阻止窗口关闭\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.6 手动关闭窗口 当自定义关闭时，使用 mainWindow.destroy() 来关闭窗口，因为使用 mainWindow.close() 时，windows 系统打开开发者工具时会出现无法关闭窗口的情况。 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:6\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#手动关闭窗口\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.7 全局快捷键 当 electron 版本较低时，比如 13.1.7，会出现在 mac 系统上复制粘贴等常用快捷键失效的问题。可通过设置菜单并绑定快捷键的方式解决。 const main = [ { label: \\u0026#39;\\u0026#39;, submenu: [ { label: \\u0026#39;关于\\u0026#39;, role: \\u0026#39;about\\u0026#39; }, { label: \\u0026#39;关闭\\u0026#39;, role: \\u0026#39;close\\u0026#39; }, { label: \\u0026#39;退出\\u0026#39;, role: \\u0026#39;quit\\u0026#39; } ] }, { label: \\u0026#39;编辑\\u0026#39;, submenu: [ { label: \\u0026#39;撤销\\u0026#39;, role: \\u0026#39;undo\\u0026#39; }, { label: \\u0026#39;恢复\\u0026#39;, role: \\u0026#39;redo\\u0026#39; }, { type: \\u0026#39;separator\\u0026#39; }, { label: \\u0026#39;剪切\\u0026#39;, role: \\u0026#39;cut\\u0026#39; }, { label: \\u0026#39;复制\\u0026#39;, role: \\u0026#39;copy\\u0026#39; }, { label: \\u0026#39;粘贴\\u0026#39;, role: \\u0026#39;paste\\u0026#39; }, { type: \\u0026#39;separator\\u0026#39; }, { label: \\u0026#39;全选\\u0026#39;, role: \\u0026#39;selectAll\\u0026#39; } ] } ]; const dev = [ { label: \\u0026#39;开发者\\u0026#39;, submenu: [ { label: \\u0026#39;刷新\\u0026#39;, role: \\u0026#39;reload\\u0026#39; }, { label: \\u0026#39;强制刷新\\u0026#39;, role: \\u0026#39;forcereload\\u0026#39; }, { type: \\u0026#39;separator\\u0026#39; }, { label: \\u0026#39;开发者工具\\u0026#39;, role: \\u0026#39;toggledevtools\\u0026#39; } ] } ]; if (process.env.NODE_ENV === \\u0026#39;development\\u0026#39;) { main.push(...dev); } export default main; import memuConfig from \\u0026#39;./menu\\u0026#39;; import { Menu } from \\u0026#39;electron\\u0026#39;; if (process.platform === \\u0026#39;darwin\\u0026#39;) { const menu = Menu.buildFromTemplate(memuConfig); Menu.setApplicationMenu(menu); } \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:7\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#全局快捷键\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.8 electron-builder 下载时，可能因为网络问题导致下载失败，可设置 GitHub 下载镜像。 # GitHub 仓库下载地址前缀镜像 npm config set disturl=https://registry.npmmirror.com/-/binary/ 或者去 GitHub 手动下载，然后解压到缓存目录： macOS: ~/Library/Caches/electron-builder/ linux: ~/.cache/electron-builder/ windows: %LOCALAPPDATA%\\\\electron-builder\\\\cache\\\\ mac 上缓存目录如下，其他可 参考 ▸ nsis/ ▸ nsis-resources-3.4.1/ ▸ nsis-3.0.4.1/ ▸ winCodeSign/ ▸ winCodeSign-2.6.0/ ▸ wine/ ▸ wine-4.0.1-mac/ 15.8.1 windows 打包 windows 系统打包配置，当没有配置签名时，sign 字段应删除或者配置为 null，否则可能导致打包时报错。 注：win11 打包在 win10 上可能运行不了，最好使用 win10 打包或者 mac 打包指定系统和位数。 15.8.2 macOS 打包 问题：mac 升级之后 electron 打包报错 Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决：网上搜到的下载 python 2.7 是治标不治本，正确做法是升级 electron-builder 到 23.0.2 或更高版本，参考 electron-builder#6726 参考链接 Electron-Mac 应用的签名步骤说明 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:8\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#electron-builder\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.8 electron-builder 下载时，可能因为网络问题导致下载失败，可设置 GitHub 下载镜像。 # GitHub 仓库下载地址前缀镜像 npm config set disturl=https://registry.npmmirror.com/-/binary/ 或者去 GitHub 手动下载，然后解压到缓存目录： macOS: ~/Library/Caches/electron-builder/ linux: ~/.cache/electron-builder/ windows: %LOCALAPPDATA%\\\\electron-builder\\\\cache\\\\ mac 上缓存目录如下，其他可 参考 ▸ nsis/ ▸ nsis-resources-3.4.1/ ▸ nsis-3.0.4.1/ ▸ winCodeSign/ ▸ winCodeSign-2.6.0/ ▸ wine/ ▸ wine-4.0.1-mac/ 15.8.1 windows 打包 windows 系统打包配置，当没有配置签名时，sign 字段应删除或者配置为 null，否则可能导致打包时报错。 注：win11 打包在 win10 上可能运行不了，最好使用 win10 打包或者 mac 打包指定系统和位数。 15.8.2 macOS 打包 问题：mac 升级之后 electron 打包报错 Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决：网上搜到的下载 python 2.7 是治标不治本，正确做法是升级 electron-builder 到 23.0.2 或更高版本，参考 electron-builder#6726 参考链接 Electron-Mac 应用的签名步骤说明 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:8\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#windows-打包\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.8 electron-builder 下载时，可能因为网络问题导致下载失败，可设置 GitHub 下载镜像。 # GitHub 仓库下载地址前缀镜像 npm config set disturl=https://registry.npmmirror.com/-/binary/ 或者去 GitHub 手动下载，然后解压到缓存目录： macOS: ~/Library/Caches/electron-builder/ linux: ~/.cache/electron-builder/ windows: %LOCALAPPDATA%\\\\electron-builder\\\\cache\\\\ mac 上缓存目录如下，其他可 参考 ▸ nsis/ ▸ nsis-resources-3.4.1/ ▸ nsis-3.0.4.1/ ▸ winCodeSign/ ▸ winCodeSign-2.6.0/ ▸ wine/ ▸ wine-4.0.1-mac/ 15.8.1 windows 打包 windows 系统打包配置，当没有配置签名时，sign 字段应删除或者配置为 null，否则可能导致打包时报错。 注：win11 打包在 win10 上可能运行不了，最好使用 win10 打包或者 mac 打包指定系统和位数。 15.8.2 macOS 打包 问题：mac 升级之后 electron 打包报错 Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决：网上搜到的下载 python 2.7 是治标不治本，正确做法是升级 electron-builder 到 23.0.2 或更高版本，参考 electron-builder#6726 参考链接 Electron-Mac 应用的签名步骤说明 \",\"date\":\"2022-08-12\",\"objectID\":\"/posts/electron-summary/:3:8\",\"tags\":[\"electron\"],\"title\":\"electron 踩坑总结\",\"uri\":\"/posts/electron-summary/#macos-打包\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"记录一下前端实现页面加密的思路。 \",\"date\":\"2022-08-08\",\"objectID\":\"/posts/encryption-fe/:0:0\",\"tags\":[\"JavaScript\",\"加密\"],\"title\":\"前端页面内容加密总结\",\"uri\":\"/posts/encryption-fe/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"1 加密基础知识 \",\"date\":\"2022-08-08\",\"objectID\":\"/posts/encryption-fe/:1:0\",\"tags\":[\"JavaScript\",\"加密\"],\"title\":\"前端页面内容加密总结\",\"uri\":\"/posts/encryption-fe/#加密基础知识\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"1.1 双向加密 可还原的加密算法，可以逆向解密。 对称加密（单密钥加密） 采用单钥密码系统的加密方法，同一个密钥同时用作信息的加密和解密。 密钥生成算法有 DES、3DES、AES。 非对称加密（公开密钥系统） 两个密钥：公开密钥（publickey）和私有密钥（privatekey）。 公钥/私钥加密/签名，用私钥/公钥解密/验证签名。 密钥生成算法有 RSA（公钥、私钥）、DSA（公钥、私钥、数字签名）。 \",\"date\":\"2022-08-08\",\"objectID\":\"/posts/encryption-fe/:1:1\",\"tags\":[\"JavaScript\",\"加密\"],\"title\":\"前端页面内容加密总结\",\"uri\":\"/posts/encryption-fe/#双向加密\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"1.2 单向加密 不可还原的加密算法（暴力撞库除外），常见的算法有：MD5、SHA1、SHA256、SHA512。 \",\"date\":\"2022-08-08\",\"objectID\":\"/posts/encryption-fe/:1:2\",\"tags\":[\"JavaScript\",\"加密\"],\"title\":\"前端页面内容加密总结\",\"uri\":\"/posts/encryption-fe/#单向加密\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"2 页面内容加密 内容加密算法 通过比对密码和输入的 md5 值来判断密码是否输入正确 密码验证通过后，开始解密内容 拿到正确的输入值的 sha256 值的部分内容 然后按照加密规则解秘内容 这里利用 Set 进行事件管理，简单模拟了 addEventListener 和 removeEventListener 的操作。并提供了两个事件：decrypted 和 reset，详见 fixit-decryptor.js。 \",\"date\":\"2022-08-08\",\"objectID\":\"/posts/encryption-fe/:2:0\",\"tags\":[\"JavaScript\",\"加密\"],\"title\":\"前端页面内容加密总结\",\"uri\":\"/posts/encryption-fe/#页面内容加密\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:0:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\"21 安装依赖 npm install qcloud-cdn-node-sdk \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:1:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#安装依赖\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\"22 编写脚本 vim .scripts/qcloudcdn.js /** * Refresh Qcloud CDN cache * @command `node qcloudcdn.js $SECRET_ID $SECRET_KEY` */ const qcloudSDK = require(\\u0026#39;qcloud-cdn-node-sdk\\u0026#39;); // Get the config from https://console.qcloud.com/capi qcloudSDK.config({ secretId: process?.argv[2], secretKey: process?.argv[3] }); qcloudSDK.request( \\u0026#39;RefreshCdnDir\\u0026#39;, { // See https://cloud.tencent.com/document/api/228/3947 \\u0026#39;dirs.0\\u0026#39;: \\u0026#39;https://lruihao.cn/\\u0026#39; }, (res) =\\u0026gt; { res.code \\u0026amp;\\u0026amp; console.log(res); } ); \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:2:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#编写脚本\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\"23 增加快捷指令 打开 package.json 增加 scripts: 运行方式： SECRET_ID=\\u0026lt;secretId\\u0026gt; SECRET_KEY=\\u0026lt;secretKey\\u0026gt; npm run qcloudcdn Mac OS 环境变量配置（可选） vim ~/.bash_profile # Qcloud secret key-value export SECRET_ID=\\u0026lt;secretId\\u0026gt; export SECRET_KEY=\\u0026lt;secretKey\\u0026gt; source ~/.bash_profile 然后，在本地可简化指令为 npm run qcloudcdn 或者 yarn qcloudcdn。 等同于 SECRET_ID=$SECRET_ID SECRET_KEY=$SECRET_KEY npm run qcloudcdn \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:3:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#增加快捷指令\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\"24 配置 GitHub Actions 在原有 GitHub Actions 中部署后增加一个步骤： - name: Refresh Qcloud CDN cache env: SECRET_ID: ${{ secrets.SECRET_ID }} SECRET_KEY: ${{ secrets.SECRET_KEY }} run: npm run qcloudcdn 在仓库 Settings \\u0026gt; Secrets \\u0026gt; Actions 中增加两个 Secret: SECRET_ID 和 SECRET_KEY，原来有配置过的就不用了，比如，我原来的叫 COS_SECRET_ID 和 COS_SECRET_ID，那修改上面配置 env 中的变量名即可。 最后上传代码，以后更新仓库时就会自动刷新 CDN 缓存了。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:4:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#配置-github-actions\"},{\"categories\":[\"Node.js\",\"JavaScript\"],\"collections\":null,\"content\":\"25 参考资料 Qcloud_CDN_API/nodejs 本方案使用的旧的 API 请求方式，如果失效，可以参考新的 API，见 SDK 中心。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/qcloudcdn/:5:0\",\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"uri\":\"/posts/qcloudcdn/#参考资料\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。 周五下班的时候想在 windows 电脑上跑一下 FixIt 看看有没有什么 bug, 然后就发现了 typyit shortcode 开头多出一行空行，mermaid shortcode 则直接语法报错了。 看了一下代码明明有 trim \\\\n 处理，而且 Vercel 打包和 Mac 上运行打包都没问题。debug 了一下才发现 Windows 系统上的换行是 \\\\r\\\\n, 而 Mac 系统上的换行是 \\\\n。于是查了一下不同系统的换行符的差异问题。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/newline/:0:0\",\"tags\":[\"newline\"],\"title\":\"不同系统的换行符的差异\",\"uri\":\"/posts/newline/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"17 历史 简单来说，回车换行这些说法是从打字机那个时代开始叫的，然后在不同的标准下换行符有不同的表现符号。 Windows 系统设计遵循了 CR + LF 的约定，而 Unix 系统则遵循了 LF 的约定，之后的 类 Unix (Linux, macOS) 系统也遵循了 LF 的约定。 当然也有异类，老版的 mac 系统使用 CR 作为换行符。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/newline/:1:0\",\"tags\":[\"newline\"],\"title\":\"不同系统的换行符的差异\",\"uri\":\"/posts/newline/#历史\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"18 表示 CR 回车：\\\\r LF 换行：\\\\n 操作系统 换行符号 Windows \\\\r\\\\n Unix、Linux、MacOS \\\\n classic Mac OS \\\\r \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/newline/:2:0\",\"tags\":[\"newline\"],\"title\":\"不同系统的换行符的差异\",\"uri\":\"/posts/newline/#表示\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"19 问题 由于这个差异，会导致文本类的文件在跨系统浏览时会产生一些差异，比如说，Mac 的文本文件在 Windows 打开会全部挤在一行等等。 对于开发人员来说，这很有可能导致某些程序失效，比如正则去除空行等等。 甚至因此，Linux 系统下提供有两个命令用来进行 Windows 和 Unix 文件的转化：dos2unix和 unix2dos。 \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/newline/:3:0\",\"tags\":[\"newline\"],\"title\":\"不同系统的换行符的差异\",\"uri\":\"/posts/newline/#问题\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"20 参考 Newline \",\"date\":\"2022-08-07\",\"objectID\":\"/posts/newline/:4:0\",\"tags\":[\"newline\"],\"title\":\"不同系统的换行符的差异\",\"uri\":\"/posts/newline/#参考\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"ohmyzsh 自带了很多主题，也有很多没有收录的扩展主题，我就想要个简约的主题，但是每个都差点意思，干脆改一个主题。 \",\"date\":\"2022-07-31\",\"objectID\":\"/posts/ohmyzsh-custom/:0:0\",\"tags\":null,\"title\":\"自定义 ohmyzsh 主题\",\"uri\":\"/posts/ohmyzsh-custom/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"9 自定义主题 复制默认主题，当作模板： cd ~/.oh-my-zsh cat themes/robbyrussell.zsh-theme \\u0026gt; custom/custom.zsh-theme vim custom/custom.zsh-theme 然后修改里面的内容： if [[ -z $ZSH_THEME_CUSTOM_PREFIX ]]; then ZSH_THEME_CUSTOM_PREFIX=\\u0026#34;\\u0026gt;\\u0026#34; fi PROMPT=\\u0026#34;%(?:%{$fg_bold[blue]%}$ZSH_THEME_CUSTOM_PREFIX:%{$fg_bold[red]%}$ZSH_THEME_CUSTOM_PREFIX)\\u0026#34; PROMPT+=\\u0026#39; %{$fg[blue]%}%c%{$reset_color%} $(git_prompt_info)\\u0026#39; ZSH_THEME_GIT_PROMPT_PREFIX=\\u0026#34;%{$fg_bold[green]%}git:(%{$fg[magenta]%}\\u0026#34; ZSH_THEME_GIT_PROMPT_SUFFIX=\\u0026#34;%{$reset_color%} \\u0026#34; ZSH_THEME_GIT_PROMPT_DIRTY=\\u0026#34;%{$fg[green]%}) %{$fg[yellow]%}✗\\u0026#34; ZSH_THEME_GIT_PROMPT_CLEAN=\\u0026#34;%{$fg[green]%})\\u0026#34; \",\"date\":\"2022-07-31\",\"objectID\":\"/posts/ohmyzsh-custom/:1:0\",\"tags\":null,\"title\":\"自定义 ohmyzsh 主题\",\"uri\":\"/posts/ohmyzsh-custom/#自定义主题\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"10 配置 vim ~/.zshrc ZSH_THEME=custom 然后重启终端即可。 \",\"date\":\"2022-07-31\",\"objectID\":\"/posts/ohmyzsh-custom/:2:0\",\"tags\":null,\"title\":\"自定义 ohmyzsh 主题\",\"uri\":\"/posts/ohmyzsh-custom/#配置\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。 \",\"date\":\"2022-07-30\",\"objectID\":\"/posts/linux-permission/:0:0\",\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"title\":\"linux 文件权限\",\"uri\":\"/posts/linux-permission/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"13 查看文件权限 查看 linux 系统下的文件权限，可以使用 ll 命令或者 ls 命令 带 -l（长列表选项） ➜ ~ ll total 160 drwx------@ 8 liruihao staff 256B Jul 5 14:47 Applications drwx------@ 10 liruihao staff 320B Jul 27 11:31 Desktop drwx------+ 7 liruihao staff 224B Jun 17 15:01 Documents drwx------@ 22 liruihao staff 704B Jul 29 16:35 Downloads drwx------@ 94 liruihao staff 2.9K Jul 23 19:02 Library drwx------ 4 liruihao staff 128B Nov 13 2021 Movies drwx------+ 6 liruihao staff 192B Nov 18 2021 Music drwx------+ 9 liruihao staff 288B Apr 26 10:25 Pictures drwxr-xr-x+ 5 liruihao staff 160B Nov 14 2021 Public drwxr-xr-x 5 liruihao staff 160B Jul 29 17:48 file-share drwxr-xr-x 3 liruihao staff 96B Jul 26 17:17 node_modules -rw-r--r-- 1 liruihao staff 27B Jun 24 13:47 package-lock.json drwxr-xr-x 20 liruihao staff 640B Jul 29 22:20 workspace -rw-r--r-- 1 liruihao staff 86B Jul 26 17:17 yarn.lock 文件列表信息分为：文件类型、权限、链接数、所属用户、所属用户组、文件大小、最后修改时间、文件名。 \",\"date\":\"2022-07-30\",\"objectID\":\"/posts/linux-permission/:1:0\",\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"title\":\"linux 文件权限\",\"uri\":\"/posts/linux-permission/#查看文件权限\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"14 文件类型 linux 一共有 7 种文件类型，分别如下： -: 普通文件 d: 目录文件 l: 链接文件 b: 块设备文件 p: 管道文件 c: 字符设备文件 s: 套接口文件/数据接口文件 后四种是特殊文件 \",\"date\":\"2022-07-30\",\"objectID\":\"/posts/linux-permission/:2:0\",\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"title\":\"linux 文件权限\",\"uri\":\"/posts/linux-permission/#文件类型\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"15 文件权限对应关系 权限 含义 对应数字 r 读权限 4 w 写权限 2 x 执行权限 1 读、写、运行三项权限用数字表示就是 r=4,w=2,x=1。所以，-rw-r--r-- 用数字表示成 644。 权限字段 -rwxrwxrwx 的内容总共会有 10 个 -，第一个表示文件类型，如该文件是文件 (-表示），文件夹 (d 表示）, 连接文件 (l 表示），后面 9 个按照每三位为一组分。 drwxr-xr-x 5 liruihao staff 160B Jul 29 17:48 file-share d: 代表文件夹 rwx: 代表文件所有者 (u 表示）权限，这里是 liruihao，liruihao 对该文件拥有读写执行权限。 r-x: 代表所属（g 表示）的权限，这里同组用户拥有对该文件读和执行的权限。 r-x: 代表其他用户（o 表示）的权限，这里和上面权限一样。 \",\"date\":\"2022-07-30\",\"objectID\":\"/posts/linux-permission/:3:0\",\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"title\":\"linux 文件权限\",\"uri\":\"/posts/linux-permission/#文件权限对应关系\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。 \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:0:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33 配置文件 Mac 上有很多配置文件都可以用来保存环境变量等配置，根据自己的理解记录了四个文件的用途： # etc/profile 系统配置文件 # etc/.bash_profile 系统环境变量配置 # ~/.bash_profile 个人环境变量配置 # ~/.zshrc zsh 的配置文件 # $ZSH_CUSTOM/*.zsh 自定义 zsh 脚本，在 zsh 启动时会自动执行 编辑最多的应该是 ~/.bash_profile 和 ~/.zshrc, 基本上建议所有的个人配置都放在 ~/.bash_profile 中，然后在 ~/.zshrc 最后执行 source ~/.bash_profile, 这样也方便将自己的个人环境变量配置备份。 注意 pnpm setup 会自动在 ~/.zshrc 中添加一些配置，如下： # pnpm export PNPM_HOME=\\u0026#34;/Users/liruihao/Library/pnpm\\u0026#34; case \\u0026#34;:$PATH:\\u0026#34; in *\\u0026#34;:$PNPM_HOME:\\u0026#34;*) ;; *) export PATH=\\u0026#34;$PNPM_HOME:$PATH\\u0026#34; ;; esac # pnpm end \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:1:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#配置文件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34 常用命令 # 安装/卸载 homebrew install.sh/uninstall.sh /bin/bash -c \\u0026#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\\u0026#34; # 注意：安装 Homebrew 会下载 node, 请做好 node 环境被破坏的准备 # 显示隐藏文件 true/false or cmd+shift+. defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder # 释放端口 lsof -i:$your_port # 1. 查看使用端口进程 kill -9 $your_PID # 2. 释放进程 \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:2:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#常用命令\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35 Node # 设置阿里镜像 npm config set registry=https://registry.npmmirror.com # npm config set registry https://registry.npmjs.org # GitHub 仓库下载地址前缀镜像 npm config set disturl=https://registry.npmmirror.com/-/binary/ # 全局安装的依赖 npm install -g npm@8.13.1 npm install -g cnpm npm install -g @vue/cli npm install -g nvm npm install -g nrm npm install -g yarn npm install -g yrm # npm 参数 --ignore-scripts # 忽略脚本错误 --force # 会无视冲突，并强制获取远端 npm 库资源，即使本地有资源也会覆盖掉 --legacy-peer-deps # 安装时忽略所有 peerDependencies，忽视依赖冲突，采用 npm 版本 4 到版本 6 的样式去安装依赖，已有的依赖不会覆盖 # 清除缓存 npm cache clean --force rm -rf node_modules rm -rf package-lock.json npm install # nvm nvm alias default [node_version] # 设置默认版本 # 检查过时依赖 npm outdated # 安全更新 npm update # ncu 更新检查工具 # https://blog.51cto.com/u_13028258/5115637?b=totalstatistic npm install -g npm-check-updates ## 检查 ncu ncu vue ## 更新 ncu -u ncu -u vue electron 相关配置 # 设置 electron 镜像仓库 # https://registry.npmmirror.com/-/binary/electron # 13.1.7 版本 下载链接可能会拼错导致 404，要设置成 https://registry.npmmirror.com/-/binary/electron/v npm config set electron_mirror=https://npmmirror.com/mirrors/electron/ \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:3:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#node\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36 SourceTree Custom actions Script target: /bin/bash Parameters: /Users/liruihao/workspace/.shell/sync_tags.sh 技巧 根据不同的 shell 程序选择不同的文件后缀名，并给文件增加可执行权限： zsh: .zsh bash: .sh #! /bin/bash # 同步远程仓库标签分支脚本 git tag -l | xargs git tag -d # git fetch origin --prune # git fetch origin --tags git fetch origin --prune --prune-tags #! /bin/bash # 同步所有子模组 git submodule update --remote --merge #! /bin/zsh # ssh 配置但无法连接时 ssh-agent -s ssh-add ~/.ssh/Lruihao-Github # 私钥路径 技巧 开机启动时系统会去自动读取 id_rsa 的私钥来启动 SSH 链接，若不是默认命令就会失败需要手动执行上诉命令启动，可添加到开机自启动。 SourceTree 相关文章 解决 SourceTree 提交时候 husky 命令失败问题 \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:4:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#sourcetree\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"37 Terminal Terminal: 系统自带 Shell: zsh 美化：ohmyzsh 修改启动语 vim $PREFIX/etc/motd \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:5:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#terminal\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"38 sublime-text 3 # Terminal 启用 sublime 别名 subl ## 1.设置软链（推荐） sudo ln -s \\u0026#34;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl\\u0026#34; /usr/local/bin/subl ## 2.设置别名 vim ~/.bash_profile alias subl=\\u0026#34;\\u0026#39;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl\\u0026#39;\\u0026#34; source ~/.bash_profile # 每打开一个命令窗口，需要先让命令生效 \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:6:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#sublime-text-3\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39 开机自启动 系统偏好设置 -\\u0026gt; 用户与群组 -\\u0026gt; 登录项 -\\u0026gt; 增删可执行文件 (需配置默认启动软件) 将 shell 命令添加到 /System/Library/StartupItems/ 或 /Library/StartupItems/ 文件夹（测试无效） \",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:7:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#startup\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"40 备份 ~/.bash_profile # ------------------------------------- # This configuration is for Lruihao. # https://lruihao.cn/posts/config4mac/ # ------------------------------------- export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 # workspace export WORKSPACE=\\u0026#34;$HOME/workspace\\u0026#34; # alias alias subl=\\u0026#34;\\u0026#39;/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl\\u0026#39;\\u0026#34; alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin alias incr=\\u0026#34;source $WORKSPACE/.shell/incr*.zsh\\u0026#34; alias typora=\\u0026#34;open -a typora\\u0026#34; # maven export M2_HOME=$HOME/Applications/apache-maven-3.8.5 export PATH=$PATH:$M2_HOME/bin # jenv export PATH=\\u0026#34;$HOME/.jenv/bin:$PATH\\u0026#34; eval \\u0026#34;$(jenv init -)\\u0026#34; # java export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home export JAVA_HOME=$JAVA_8_HOME # 设置一个中间变量，为了方便多个 JDK 版本时更换 JAVA_HOME export PATH=$JAVA_HOME/bin:$PATH:. # 冒号前代表 JDK 目录下的 bin 目录，冒号后代表当前目录 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # jmeter export JMETER_HOME=$HOME/jmeter/apache-jmeter-5.4.1 export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar # platform-tools of Android SDK export PATH=$PATH:$HOME/Applications/platform-tools # Electron-Mac app development export CSC_LINK=$WORKSPACE/mac_app_dev/Mac.p12 export CSC_KEY_PASSWORD=xxxxxxxxx # yarn export PATH=\\u0026#34;$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH\\u0026#34; # zsh custom plugin # https://mimosa-pudica.net/zsh-incremental.html # source $WORKSPACE/.shell/incr*.zsh # Qcloud secret key-value export SECRET_ID=\\u0026#34;\\u0026#34; export SECRET_KEY=\\u0026#34;\\u0026#34; # golang export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/go export GOPROXY=https://goproxy.cn # Go work bin export PATH=$PATH:$GOPATH/bin # sass_embedded export PATH=$PATH:$HOME/Applications/sass_embedded /nvm_custom.zsh # https://github.com/nvm-sh/nvm#manual-install export NVM_DIR=\\u0026#34;$HOME/.nvm\\u0026#34; [ -s \\u0026#34;$NVM_DIR/nvm.sh\\u0026#34; ] \\u0026amp;\\u0026amp; \\\\. \\u0026#34;$NVM_DIR/nvm.sh\\u0026#34; # This loads nvm [ -s \\u0026#34;$NVM_DIR/bash_completion\\u0026#34; ] \\u0026amp;\\u0026amp; \\\\. \\u0026#34;$NVM_DIR/bash_completion\\u0026#34; # This loads nvm bash_completion # https://github.com/nvm-sh/nvm#deeper-shell-integration autoload -U add-zsh-hook load-nvmrc() { local node_version=\\u0026#34;$(nvm version)\\u0026#34; local nvmrc_path=\\u0026#34;$(nvm_find_nvmrc)\\u0026#34; if [ -n \\u0026#34;$nvmrc_path\\u0026#34; ]; then local nvmrc_node_version=$(nvm version \\u0026#34;$(cat \\u0026#34;${nvmrc_path}\\u0026#34;)\\u0026#34;) if [ \\u0026#34;$nvmrc_node_version\\u0026#34; = \\u0026#34;N/A\\u0026#34; ]; then nvm install elif [ \\u0026#34;$nvmrc_node_version\\u0026#34; != \\u0026#34;$node_version\\u0026#34; ]; then nvm use fi elif [ \\u0026#34;$node_version\\u0026#34; != \\u0026#34;$(nvm version default)\\u0026#34; ]; then echo \\u0026#34;Reverting to nvm default version\\u0026#34; nvm use default fi # fix husky hook # ref: https://github.com/typicode/husky/issues/390#issuecomment-762213421 echo \\u0026#34;export PATH=\\\\\\u0026#34;$(dirname $(which node)):\\\\$PATH\\\\\\u0026#34;\\u0026#34; \\u0026gt; ~/.huskyrc } add-zsh-hook chpwd load-nvmrc load-nvmrc # https://github.com/nvm-sh/nvm#use-a-mirror-of-node-binaries export NVM_NODEJS_ORG_MIRROR=https://mirrors.ustc.edu.cn/node/ 先添加一些基础配置 basic.vim ~/.vimrc \\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34; \\u0026#34; =\\u0026gt; Custom config for Lruihao \\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\\u0026#34;\",\"date\":\"2022-07-29\",\"objectID\":\"/posts/config4mac/:8:0\",\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"title\":\"Mac 上的开发配置总结\",\"uri\":\"/posts/config4mac/#备份\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/docs: 📄 The open-source repo for fixit.lruihao.cn\",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"FixIt 主题文档 👉 中文 | English FixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。 \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:1:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#fixit-主题文档 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:2:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#系统依赖\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"贡献文档 首先，点击 fork 按钮 fork 本仓库。 然后，克隆你 fork 的仓库。 git clone https://github.com/hugo-fixit/docs.git fixit-docs \\u0026amp;\\u0026amp; cd fixit-docs 接着，安装开发依赖。 pnpm install 最后，你就可以开始了！ 这里有一些有用的命令。 # 运行带有监听文件变化的本地调试服务器 pnpm run server # 运行带有监听文件变化的本地调试服务器（生产环境） pnpm run server:production # 查看编辑主题部分 pnpm run server:development \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:3:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#贡献文档\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参与翻译 包含 missing-translation shortcode 的文档表示该部分尚未翻译，点击查看 缺失翻译的文档。 \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:4:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#参与翻译\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"编辑主题 如果你想做与文档相关的主题更改，最简单的方法是将 fixit-docs 和 FixIt 克隆为兄弟目录，然后运行： HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths \\u0026#34;**\\u0026#34; 最后，在 https://github.com/hugo-fixit/docs/pulls 创建一个新的 pull request 来提交你的贡献 🎉 \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:5:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#编辑主题\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"感谢赞助 translate.js 赞助企业级翻译通道。 \",\"date\":\"2022-07-23\",\"objectID\":\"/projects/hugo-fixit/docs/:6:0\",\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"uri\":\"/projects/hugo-fixit/docs/#感谢赞助\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"作为非安卓专业开发，无需下载 Android SDK， 仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。 \",\"date\":\"2022-07-05\",\"objectID\":\"/posts/adb-for-mac/:0:0\",\"tags\":[\"Android\",\"ADB\"],\"title\":\"Mac 配置 ADB\",\"uri\":\"/posts/adb-for-mac/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 安装 platform-tools \",\"date\":\"2022-07-05\",\"objectID\":\"/posts/adb-for-mac/:1:0\",\"tags\":[\"Android\",\"ADB\"],\"title\":\"Mac 配置 ADB\",\"uri\":\"/posts/adb-for-mac/#安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 配置环境变量 open .bash_profile 写入以下内容 # platform-tools of Android SDK export PATH=$PATH:$HOME/Applications/platform-tools source .bash_profile Windows 系统打开高级设置，配置 PATH 变量，增加一条路径即可。 \",\"date\":\"2022-07-05\",\"objectID\":\"/posts/adb-for-mac/:2:0\",\"tags\":[\"Android\",\"ADB\"],\"title\":\"Mac 配置 ADB\",\"uri\":\"/posts/adb-for-mac/#配置环境变量\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 ADB 命令 通过 USB 连接手机和电脑，执行以下命令 # 1. 打开手机 tcpip 5555 端口 adb tcpip 5555 # 2. 查看手机网络 IP adb shell ifconfig # 3. 在电脑上 ping 手机网络 IP # 4. adb connect [Android IP] Android 调试桥 (adb) awesome-adb \",\"date\":\"2022-07-05\",\"objectID\":\"/posts/adb-for-mac/:3:0\",\"tags\":[\"Android\",\"ADB\"],\"title\":\"Mac 配置 ADB\",\"uri\":\"/posts/adb-for-mac/#adb-命令\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 注意 windows 系统下的文件（夹）命名所采用的是 GBK 编码，而 linux 是采用的 UTF-8 编码，使用 adb 的 push 和 pull 命令时由于编码方式的不同会产生错误，因此需要修改 adb 的源代码来支持编码转换。 \",\"date\":\"2022-07-05\",\"objectID\":\"/posts/adb-for-mac/:4:0\",\"tags\":[\"Android\",\"ADB\"],\"title\":\"Mac 配置 ADB\",\"uri\":\"/posts/adb-for-mac/#注意\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。 每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。 \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:0:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"25 数组方法 some, every, find, filter, map 共同点：这几个方法都不会改变原始数组。 some some() 方法测试数组中是不是至少有 1 个元素通过了被提供的函数测试，它返回一个布尔值。 数组中有至少一个元素通过回调函数的测试就会返回 true，所有元素都没有通过回调函数的测试返回值才会为 false。 arr.some(callback(element[, index[, array]])[, thisArg]) [2, 5, 8, 1, 4].some((x) =\\u0026gt; x \\u0026gt; 10); // false [12, 5, 8, 1, 4].some((x) =\\u0026gt; x \\u0026gt; 10); // true 技巧 some() 不会对空数组进行检测，空数组返回 false every 助记：every() 和 some() 功能相反 every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试，它返回一个布尔值。 如果回调函数的每一次返回都为 truthy 值，返回 true ，否则返回 false。 arr.every(callback(element[, index[, array]])[, thisArg]) [12, 5, 8, 130, 44].every((x) =\\u0026gt; x \\u0026gt;= 10); // false [12, 54, 18, 130, 44].every((x) =\\u0026gt; x \\u0026gt;= 10); // true 技巧 every() 不会对空数组进行检测，空数组返回 true Find 助记：功能和 some() 类似，some() 返回布尔值，find() 返回找到的元素 find() 方法返回数组中满足提供的测试函数的第一个元素的值，否则返回 undefined。 arr.find(callback[, thisArg]) const array1 = [5, 12, 8, 130, 44]; const found = array1.find((element) =\\u0026gt; element \\u0026gt; 10); console.log(found); // expected output: 12 引用 另请参见 findIndex() 方法，它返回数组中找到的元素的索引，而不是其值。 如果你需要找到一个元素的位置或者一个元素是否存在于数组中，使用 Array.prototype.indexOf() 或 Array.prototype.includes()。 filter 助记：如字面意思，它是一个筛子，会筛选出满足条件的元素 filter() 方法创建一个新数组，其包含通过所提供函数实现的测试的所有元素。 返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。 var newArray = arr.filter(callback(element[, index[, array]])[, thisArg]) const words = [\\u0026#39;spray\\u0026#39;, \\u0026#39;limit\\u0026#39;, \\u0026#39;elite\\u0026#39;, \\u0026#39;exuberant\\u0026#39;, \\u0026#39;destruction\\u0026#39;, \\u0026#39;present\\u0026#39;]; const result = words.filter((word) =\\u0026gt; word.length \\u0026gt; 6); console.log(result); // expected output: Array [\\u0026#34;exuberant\\u0026#34;, \\u0026#34;destruction\\u0026#34;, \\u0026#34;present\\u0026#34;] map 助记：功能和 filter() 类似，filter() 返回筛选的元素，map() 返回筛选的结果值 map() 方法创建一个新数组，这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。 返回值是一个新的、由通过测试的元素组成的数组，如果没有任何数组元素通过测试，则返回空数组。 var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg]) const array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map((x) =\\u0026gt; x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32] \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:1:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#数组方法-some-every-find-filter-map\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"26 使用 Object.hasOwn 替代 in 操作符 有时，我们想知道对象上是否存在某个属性，一般会使用 in 操作符或 obj.hasOwnProperty，但它们都有各自的缺陷。 in 如果指定的属性位于对象或其原型链中，in 运算符将返回 true。 const Person = function (age) { this.age = age; }; Person.prototype.name = \\u0026#39;fatfish\\u0026#39;; const p1 = new Person(24); console.log(\\u0026#39;age\\u0026#39; in p1); // true console.log(\\u0026#39;name\\u0026#39; in p1); // true 注意这里 obj.hasOwnProperty hasOwnProperty 方法会返回一个布尔值，表示对象自身属性中是否具有对应的值（原型链上的属性不会读取）。 const Person = function (age) { this.age = age; }; Person.prototype.name = \\u0026#39;fatfish\\u0026#39;; const p1 = new Person(24); console.log(p1.hasOwnProperty(\\u0026#39;age\\u0026#39;)); // true console.log(p1.hasOwnProperty(\\u0026#39;name\\u0026#39;)); // fasle 注意这里 obj.hasOwnProperty 已经可以过滤掉原型链上的属性，但在某些情况下，它还是不安全。 Object.create(null).hasOwnProperty(\\u0026#39;name\\u0026#39;); // Uncaught TypeError: Object.create(...).hasOwnProperty is not a function Object.hasOwn 别急，我们可以使用 Object.hasOwn 来避免这两个问题，这比 obj.hasOwnProperty 方法更加方便、安全。 let object = { age: 24 }; Object.hasOwn(object, \\u0026#39;age\\u0026#39;); // true let object3 = Object.create(null); Object.hasOwn(object3, \\u0026#39;age\\u0026#39;); // false \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:2:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#使用-objecthasown-替代-in-操作符\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"27 使用 \\u0026ldquo;#\\u0026rdquo; 声明私有属性 以前，我们一般用 _ 表示私有属性，但它并不靠谱，还是会被外部修改。 class Person { constructor(name) { this._money = 1; this.name = name; } get money() { return this._money; } set money(money) { this._money = money; } showMoney() { console.log(this._money); } } const p1 = new Person(\\u0026#39;fatfish\\u0026#39;); console.log(p1.money); // 1 console.log(p1._money); // 1 p1._money = 2; // 依旧可以从外部修改_money 属性，所以这种做法并不安全 console.log(p1.money); // 2 console.log(p1._money); // 2 使用 # 实现真正私有属性 class Person { #money = 1; constructor(name) { this.name = name; } get money() { return this.#money; } set money(money) { this.#money = money; } showMoney() { console.log(this.#money); } } const p1 = new Person(\\u0026#39;fatfish\\u0026#39;); console.log(p1.money); // 1 // p1.#money = 2 // 没法从外部直接修改 p1.money = 2; console.log(p1.money); // 2 console.log(p1.#money); // Uncaught SyntaxError: Private field \\u0026#39;#money\\u0026#39; must be declared in an enclosing class \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:3:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#使用--声明私有属性\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"28 有用的数字分隔符 可以使用 _ 分隔数字，当然也可以用于计算 // ✅ 更加易于阅读 const newSixBillion = 6000_000_000; // ❌ 难以阅读 const originSixBillion = 6000000000; console.log(newSixBillion === originSixBillion); // expected output: true const sum = 1000 + 6000_000_000; // expected output: 6000001000 技巧 另外，我们写时间时，24*60*60*1000 的可读性也是远大于 86400000 的。 \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:4:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#有用的数字分隔符\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"29 \\u0026ldquo;?.\\u0026rdquo;, \\u0026ldquo;??\\u0026rdquo;, \\u0026ldquo;??=\\u0026rdquo; 的使用 可选链 ?. 以前我们为了简化 if else，通常会写出这样的代码 const obj = null; console.log(obj \\u0026amp;\\u0026amp; obj.name); const $title = document.querySelector(\\u0026#39;.title\\u0026#39;); const title = $title ? title.innerText : undefined; 使用 ?. 简化 \\u0026amp;\\u0026amp; 和三元运算符 const obj = null; console.log(obj?.name); const $title = document.querySelector(\\u0026#39;.title\\u0026#39;); const title = $title?.innerText; 空值合并运算符 ?? 之前给变量赋默认值时，我们一般会用 || 来写，比如 let foo = 1; let bar = foo || 2; console.log(bar); // 1 let foo = 0; let bar = foo || 2; console.log(bar); // 2 注意这里 所以，|| 有时候并不是很安全，所以我们不得不加判断 let foo = 0; let bar = foo !== undefined ? foo : 2; console.log(bar); // 0 现在使用 ?? 可以使代码更加优雅 let foo = 1; let bar = foo ?? 2; console.log(bar); // 1 let foo = 0; let bar = foo ?? 2; console.log(bar); // 0 空值赋值运算符 ??= let foo = 0; foo ??= 2; console.log(foo); // 0 let foo = 1; foo ??= 2; console.log(foo); // 1 很好理解，这里的 foo ??= 2 等价于 foo = foo ?? 2 \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:5:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#---的使用\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"30 使用 BigInt 支持大数计算 JS 中超过 Number.MAX_SAFE_INTEGER 的数字计算将是不安全的。 Example: Math.pow(2, 53) === Math.pow(2, 53) + 1; // true // Math.pow(2, 53) =\\u0026gt; 9007199254740992 // Math.pow(2, 53) + 1 =\\u0026gt; 9007199254740992 使用 BigInt 完全可以避免这个问题 BigInt(Math.pow(2, 53)) === BigInt(Math.pow(2, 53)) + BigInt(1); // false // BigInt(Math.pow(2, 53)) =\\u0026gt; 9007199254740992n // BigInt(Math.pow(2, 53)) + BigInt(1) =\\u0026gt; 9007199254740993n 要创建一个 BigInt，可以在一个整数的末尾添加字符n，或者调用函数 BigInt()。 let foo = BigInt(1); // 1n let bar = BigInt(2); // 2n console.log(foo \\u0026gt; bar); // false console.log(1n \\u0026gt; 2n); // false 学无止境，与未来的自己共勉 \",\"date\":\"2022-05-01\",\"objectID\":\"/posts/js-rediscover/:6:0\",\"tags\":[\"JavaScript\",\"ES6\"],\"title\":\"重新认识 JavaScript\",\"uri\":\"/posts/js-rediscover/#使用-bigint-支持大数计算\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"关于 CSS 和 Scss 变量运算那些事\",\"date\":\"2022-04-30\",\"objectID\":\"/posts/css-scss-var/\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"uri\":\"/posts/css-scss-var/\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"13 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。 造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的） 知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。 \",\"date\":\"2022-04-30\",\"objectID\":\"/posts/css-scss-var/:1:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"uri\":\"/posts/css-scss-var/#问题分析\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"14 奇技淫巧 由于 Scss 区分大小写而 CSS 不区分，所以为了不让 Scss 中的函数覆盖 CSS 的函数，我们可以使用除了 max 以外的 23 - 1 种写法，这样就能使用原生 CSS 的 max 函数来比较了，就不会报错了。 .foo { padding-left: MAX(10vh, 3.5rem); } 使用 Scss 没有的 CSS 函数 clamp: clamp(MIN, VAL, MAX) 其实就是表示 max(MIN, min(VAL, MAX)) .foo { padding-left: clamp($header-height, 10vh, 10vh); } 使用 unquote($string) 函数让 Scss 删除字符串最前和最后的单引号或双引号 .foo { padding-left: unquote(\\u0026#39;max(10vh, #{$header-height})\\u0026#39;); } \",\"date\":\"2022-04-30\",\"objectID\":\"/posts/css-scss-var/:2:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"uri\":\"/posts/css-scss-var/#奇技淫巧\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"15 By the way 如果需要在 CSS 函数内部恢复 Scss 解析（引用 Scss 变量），只需用 #{...} 包围 Scss 代码。 $header-height: 3.5rem !default; .foo { margin: calc(10vh - $header-height); } 上面的 Scss 将解析成 以下无效的 CSS 代码： .foo { margin: calc(10vh - $header-height); } 用 #{...} 包围 Scss 变量 $header-height: 3.5rem !default; .foo { margin: calc(10vh - #{$header-height}); } \",\"date\":\"2022-04-30\",\"objectID\":\"/posts/css-scss-var/:3:0\",\"tags\":[\"CSS\",\"Scss\"],\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"uri\":\"/posts/css-scss-var/#by-the-way\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;. Reference #20 \",\"date\":\"2021-12-22\",\"objectID\":\"/posts/gtd/:0:0\",\"tags\":[\"GTD\"],\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"uri\":\"/posts/gtd/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 理解 简而言之原则就是： 搜集 (Collections Box) 处理 组织 Next actions Projects Waiting for Someday 检查 \",\"date\":\"2021-12-22\",\"objectID\":\"/posts/gtd/:1:0\",\"tags\":[\"GTD\"],\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"uri\":\"/posts/gtd/#理解\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 Apple Reminders app 按照以上原则就可以把 Apple 的提醒事项建 5 个大分类， 日常各种想法收集到收集箱， 空闲下来后再组织，分到不同时间点去做， 然后就要自律地去执行处理，做完回顾检查是否都完成。 还可以通过标签更加细分我们的 idea, 配合日历使用让生活学习更高效。 \",\"date\":\"2021-12-22\",\"objectID\":\"/posts/gtd/:2:0\",\"tags\":[\"GTD\"],\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"uri\":\"/posts/gtd/#apple-reminders-app\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 Github 收集：选择 repository -\\u0026gt; 建 issue 处理：解决并关闭 issue 组织： Labels Projects Milestone Lable Description bug Something isn\\u0026rsquo;t working documentation Improvements or additions to documentation duplicate e or pull request already exists enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed invalid This doesn\\u0026rsquo;t seem right priority Something to deal with first question Further information is requested study Self learning plan wontfix This will not be worked on \",\"date\":\"2021-12-22\",\"objectID\":\"/posts/gtd/:3:0\",\"tags\":[\"GTD\"],\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"uri\":\"/posts/gtd/#github\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 总结 之前在 Foxconn 工作，因为工作电脑、个人电脑、手机可以做到互不干扰，本来想的是把工作、学习 (Free Code) 和 生活 的计划完全分开。 但是换工作后用自己的电脑，工作和 Free Code 就有了交集，换 mac 后，由于苹果生态的原因，不可避免生活计划也加入其中，形成一个三者互相交错的 Venn 图，所以简单分一下： 工作、生活 苹果生态：日历、提醒、备忘录（标签区分） 学习 Github (collection, backup), Blog (summarize) \",\"date\":\"2021-12-22\",\"objectID\":\"/posts/gtd/:4:0\",\"tags\":[\"GTD\"],\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"uri\":\"/posts/gtd/#总结\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hugo fixit/FixIt: 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。 如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:0:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。 警告 v0.x 版本仅接受 bug 修复，如需提交新功能，请基于 v1 分支开发。 1.0 版本计划在 2027 年上半年 发布，欢迎加入开发和讨论！详见 v1 里程碑。 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:1:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#fixit data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"即时预览 💟 Docs | ❇️ Test | 🚼 Demo | 🆕 Starter 更多 FixIt 的例子参见 这里。 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:2:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#即时预览\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"使用指南 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:3:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#使用指南\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"主题文档 前往 快速上手 页面，了解如何使用 FixIt 主题创建一个新网站的详细步骤。 大纲：安装篇 ➜ 入门篇 ➜ 内容管理 ➜ 进阶篇 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:3:1\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#主题文档\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"快速开始 我们提供了一个 CLI 工具，可以通过一个命令来创建一个新的 FixIt 项目。 pnpx fixit-cli create my-blog \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:3:2\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#快速开始\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"模板 点击以下链接使用模板生成一个新的仓库： 模板 仓库 生成链接 基于 Hugo Modules 的快速入门模板。 hugo-fixit-starter 点击生成 基于 Git submodule 的快速入门模板。 hugo-fixit-starter1 点击生成 使用 Fixit 主题构建多语言网站。 docs 点击生成 基于 FixIt 主题进行自定义设置。 Lruihao/hugo-blog 点击生成 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:3:3\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#模板\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"特色 点击展开 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:4:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#特色\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"性能和 SEO 性能优化：在 Google PageSpeed Insights 中，99/100 的移动设备得分和 100/100 的桌面设备得分 使用基于 JSON-LD 格式 的 SEO SCHEMA 文件进行 SEO 优化 支持 Google Analytics 支持 Fathom Analytics 支持 百度统计 支持 Umami Analytics 支持 Plausible Analytics 支持 Cloudflare Web Analytics 支持 Splitbee Analytics 支持搜索引擎的网站验证 (Google, Bing, Yandex, Pinterest, Baidu, 360 and Sogou) 支持所有第三方库的 CDN \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:4:1\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#性能和-seo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"外观和布局 响应式布局 浅色/深色 主题模式 全局一致的设计语言 支持分页 易用和自动展开的文章目录 支持多语言和国际化 美观的 CSS 动画 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:4:2\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#外观和布局\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"社交和评论系统 支持 Gravatar 头像 支持本地头像 支持多达 87 种社交链接 支持多达 28 种网站分享 支持 Disqus 评论系统 支持 Gitalk 评论系统 支持 Valine 评论系统 支持 Waline 评论系统 支持 Facebook 评论系统 支持 Telegram comments 评论系统 支持 Commento 评论系统 支持 Utterances 评论系统 支持 Artalk 评论系统 支持 Twikoo 评论系统 支持 giscus 评论系统 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:4:3\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#社交和评论系统\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"扩展功能 支持基于 PostChat 的 AI 摘要、AI 搜索 和 AI 智能客服 支持渐进式网页应用 支持二级菜单 支持内容加密（页面、局部） 支持友情链接的页面模板 支持基于 algolia、Fuse.js、 CSE 或 PostChat 的搜索 支持基于 Google 的自定义搜索引擎 (CSE) 支持 Twemoji 支持代码高亮 一键复制代码到剪贴板 支持基于 lightgallery 的图片画廊 支持 Font Awesome 图标的 Markdown 扩展语法 支持上标注释的 Markdown 扩展语法 支持分数的 Markdown 扩展语法 支持多种 admonitions shortcode 或 alerts 的 Markdown 扩展语法 支持标签页的 shortcode，提供多种设计样式 支持基于 KaTeX 或 MathJax 的数学公式 支持基于 mermaid 的图表 代码块扩展语法和 shortcode 支持基于 ECharts 的交互式数据可视化 代码块扩展语法和 shortcode 支持 Timeline 的代码块扩展语法和 shortcode 支持 文件树 的代码块扩展语法和 shortcode 支持基于 Mapbox GL JS 的 Mapbox shortcode 支持基于 APlayer 和 MetingJS 的音乐播放器 shortcode 支持 Bilibili 视频 和 抖音视频 shortcode 支持自定义样式的 shortcode 支持自定义脚本的 shortcode 支持自定义模板块 支持基于 TypeIt 的打字动画 shortcode 支持基于 cookieconsent 的 Cookie 许可横幅 支持基于 cell-watermark 的网页水印 支持基于 pangu.js 的中文排版 支持本地缓存远程图床图片 …… \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:4:4\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#扩展功能\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"多语言和国际化 FixIt 主题多语言基本配置及自动翻译等详见 内容管理 文档，欢迎 贡献一种新的语言。 FixIt 支持下列语言。 英语 简体中文 繁体中文 法语 波兰语 巴西葡萄牙语 意大利语 西班牙语 德语 塞尔维亚语 俄语 罗马尼亚语 越南语 印地语 日语 韩语 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:5:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#多语言和国际化\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"主题组件 FixIt 主题旨在在简洁性和可扩展性之间取得平衡。为此，我们开发了一系列额外的 Hugo 主题组件 供用户选择。 点击展开 fixit-bundle 🌲 Bundles the FixIt core theme and all hugo-fixit components into a single component. cmpt-flyfish 🐟 A canvas implemented animation effect of small fish swimming. cmpt-mdevtools Mobile devtools component powered by vConsole and eruda. cmpt-santa-hat A Christmas Easter Egg by JavaScript. cmpt-translate 🌐 A component for site automatic translation. component-projects 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. hugo-atom-feed Hugo theme component for ATOM feed custom Output Format. hugo-json-feed Hugo theme component for JSON feed custom Output Format. shortcode-asciinema A Hugo theme component with asciinema-embed shortcode. shortcode-caniuse A Hugo theme component with caniuse shortcode. shortcode-docs-bookmark 🔖 Embed bookmark of FixIt Docs. shortcode-missing-translation A Hugo theme component with missing-translation shortcode. shortcode-mmt-netease 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode. \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:6:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#主题组件\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"社区支持 所有的反馈都是欢迎的！详见 Discussions、Pull requests 和 Issues。 官方社区 说明 Discussions GitHub 讨论区 FixIt 主题交流群（微信） 关注「菠菜眾長」回复“FixIt”获取 FixIt 主题交流群（QQ） QQ 群：814031017 Hugo FixIt 星球 付费知识星球 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:7:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#社区支持\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"参与贡献 我们欢迎你加入 FixIt 的开发，贡献出你的一份力量。请看开源 贡献指南。 🤗 你也可以随时向我们的 官方插件 提交 Issue 或 Pull Request。 注意 在贡献时，请先通过此存储库上的讨论来讨论你希望进行的更改，然后再进行实际更改。 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:8:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#参与贡献\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"致谢 感谢 所有贡献者 的支持！ 感谢 Hugo DoIt 主题和 Hexo NexT 主题给予的灵感和借鉴。 感谢 FixIt 主题中使用的所有开源项目。 normalize.css Font Awesome Simple Icons Animate.css autocomplete-js algoliasearch Fuse.js object-fit-images Twemoji emoji-data lightgallery Sharer.js TypeIt KaTeX MathJax mermaid ECharts Mapbox GL JS APlayer MetingJS Gitalk Valine cookieconsent cell-watermark 不蒜子 Vercount pangu.js Artalk Waline Twikoo github-corners giscus crypto-js pace xxhash-wasm \\u0026lt;tab-container\\u0026gt; element \\u0026lt;json-viewer\\u0026gt; element \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:9:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#致谢\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"许可协议 FixIt 根据 MIT 许可协议授权。更多信息请查看 LICENSE 文件。 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:10:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#许可协议\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"赞助支持 如果你喜爱这个主题，请考虑给我买杯咖啡 ☕️，谢谢！ 微信支付 支付宝 PayPal 感谢以下赞助商提供大力支持： translate.js 赞助企业级翻译通道。 \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:11:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#赞助支持\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"作者 Lruihao \",\"date\":\"2021-12-16\",\"objectID\":\"/projects/hugo-fixit/fixit/:12:0\",\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"uri\":\"/projects/hugo-fixit/fixit/#作者\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/subl_imgpaste2/:0:0\",\"tags\":[\"Markdown\",\"Sublime\"],\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"uri\":\"/posts/subl_imgpaste2/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 功能 支持 Windows/Linux 系统下，实现对剪切板图像的处理调用 (Ctrl+Shift+V) 默认使用 JPG 的方式保存，可以显著减小图片的存储体积。 对剪切板图像保存到本地并在 Markdown 文本中插入链接地址 对剪切板中的图像地址，直接插入到 Markdown 文本中 \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/subl_imgpaste2/:1:0\",\"tags\":[\"Markdown\",\"Sublime\"],\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"uri\":\"/posts/subl_imgpaste2/#功能\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 食用说明 首先下载 zip 到本地，放到 sublime 安装目录的 xxx\\\\sublime\\\\Data\\\\Packages 中，注意不是 xxx\\\\sublime\\\\Packages 下哦。 记得要把 subl_imgpaste2-master 的 -master 删除掉。接着重新打开 sublime, 选择 Preferences-\\u0026gt;Package Settings-\\u0026gt;ImaPaste2-\\u0026gt;settings-Default 输入如下内容： 然后就可以愉快的使用截图，然后在 sublime 里使用 ctrl+shift+v 粘贴 Markdown 格式的图片。默认会自动根据 md 文件名在同级目录下新建文件夹，图片就默认保存在那。如图： 使用演示 VScode 也有更好用的插件：Past Image \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/subl_imgpaste2/:2:0\",\"tags\":[\"Markdown\",\"Sublime\"],\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"uri\":\"/posts/subl_imgpaste2/#食用说明\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接 和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理， 使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-cardlink/:0:0\",\"tags\":[\"hugo\",\"Shortcodes\"],\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"uri\":\"/posts/hugo-cardlink/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 源碼 基於 LoveIt 主題的 Link Shortcodes, 主要改到以下幾個文件，完整提交記錄 assets/css/custom.scss assets/css/partial/cardlink.scss # 卡片式鏈接樣式 layouts/partials/plugin/cardlink.html # 卡片式鏈接模板 layouts/shortcodes/cardlink.html static/images/card-link-bg.jpg \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-cardlink/:1:0\",\"tags\":[\"hugo\",\"Shortcodes\"],\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"uri\":\"/posts/hugo-cardlink/#源碼\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 使用 使用參數见 FixIt 擴展 Shortcodes - Link {{\\u0026lt; cardlink href=\\u0026#34;https://github.com/Lruihao/hugo-blog/commit/089c303693e806bff855ecf3fee110baa62b870b\\u0026#34; content=\\u0026#34;知乎卡片式链接 Git 記錄\\u0026#34; \\u0026gt;}} \\u0026#x1f4a1; 注：FixIt 已合併 shortcode cardlink 到 shortcode link，只需添加 card=true {{\\u0026lt; link href=\\u0026#34;https://github.com/Lruihao/FixIt\\u0026#34; content=\\u0026#34;卡片式链接已整合到 FixIt 主题\\u0026#34; card=true \\u0026gt;}} 信息 我的博客即将同步至腾讯云 + 社区，邀请大家一同入驻： https://cloud.tencent.com/developer/support-plan?invite_code=3o5dmfzf0xkwk \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-cardlink/:2:0\",\"tags\":[\"hugo\",\"Shortcodes\"],\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"uri\":\"/posts/hugo-cardlink/#使用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。 更新说明：FixIt 主题已支持中文繁體。 \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-i18n-zh-tw/:0:0\",\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"uri\":\"/posts/hugo-i18n-zh-tw/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 翻譯 屬於直譯，有些詞語可能並不符合現在臺灣或者香港那邊的說法。比如，分類好像臺灣常說歸類吧 新建 i18n/zh-TW.toml # Translations for Traditional Chinese # 繁體中文的翻譯 # https://gohugo.io/content-management/multilingual/#translation-of-strings # === baseof == [backToTop] other = \\u0026#34;回到頂部\\u0026#34; [viewComments] other = \\u0026#34;查看評論\\u0026#34; # === baseof == # === Post === [posts] other = \\u0026#34;文章\\u0026#34; # === Post === # === Taxonomy === [allSome] other = \\u0026#34;所有{{ .Some }}\\u0026#34; [tag] other = \\u0026#34;標籤\\u0026#34; [tags] other = \\u0026#34;標籤\\u0026#34; [category] other = \\u0026#34;分類\\u0026#34; [categories] other = \\u0026#34;分類\\u0026#34; [years] other = \\u0026#34;年度總結\\u0026#34; # === Taxonomy === # === Pagination === [more] other = \\u0026#34;更多\\u0026#34; # === Pagination === # === partials/header.html === [selectLanguage] other = \\u0026#34;選擇語言\\u0026#34; [switchTheme] other = \\u0026#34;切換主題\\u0026#34; # === partials/header.html === # === partials/footer.html === [poweredBySome] other = \\u0026#34;由 {{ .Hugo }} 強力驅動 | 主題 - {{ .Theme }}\\u0026#34; # === partials/footer.html === # === partials/comment.html === [valineLang] other = \\u0026#34;zh-TW\\u0026#34; [valinePlaceholder] other = \\u0026#34;你的評論 ...\\u0026#34; [facebookLanguageCode] other = \\u0026#34;zh-TW\\u0026#34; # === partials/comment.html === # === partials/assets.html === [search] other = \\u0026#34;搜索\\u0026#34; [searchPlaceholder] other = \\u0026#34;搜索文章標題或內容 ...\\u0026#34; [clear] other = \\u0026#34;清空\\u0026#34; [cancel] other = \\u0026#34;取消\\u0026#34; [noResultsFound] other = \\u0026#34;沒有找到結果\\u0026#34; [lunrLanguageCode] other = \\u0026#34;zh\\u0026#34; [lunrLanguageLib] other = \\u0026#34;lib/lunr/lunr.zh.js\\u0026#34; [lunrSegmentitLib] other = \\u0026#34;lib/lunr/lunr.segmentit.js\\u0026#34; [copyToClipboard] other = \\u0026#34;複製到剪貼板\\u0026#34; [cookieconsentMessage] other = \\u0026#34;本網站使用 Cookies 來改善您的流覽體驗。\\u0026#34; [cookieconsentDismiss] other = \\u0026#34;同意\\u0026#34; [cookieconsentLink] other = \\u0026#34;瞭解更多\\u0026#34; # === partials/assets.html === # === partials/plugin/share.html === [shareOn] other = \\u0026#34;分享到\\u0026#34; # === partials/plugin/share.html === # === posts/single.html === [contents] other = \\u0026#34;目錄\\u0026#34; [publishedOnDate] other = \\u0026#34;發佈於 {{ .Date }}\\u0026#34; [includedInCategories] other = \\u0026#34;收錄於 {{ .Categories }}\\u0026#34; [wordCount] other = \\u0026#34;約 {{ .Count }} 字\\u0026#34; [readingTime] other = \\u0026#34;預計閱讀 {{ .Count }} 分鐘\\u0026#34; [views] other = \\u0026#34;次閱讀\\u0026#34; [author] other = \\u0026#34;作者\\u0026#34; [updatedOnDate] other = \\u0026#34;更新於 {{ .Date }}\\u0026#34; [readMarkdown] other = \\u0026#34;閱讀原始文檔\\u0026#34; [back] other = \\u0026#34;返回\\u0026#34; [home] other = \\u0026#34;主頁\\u0026#34; [readMore] other = \\u0026#34;閱讀全文\\u0026#34; # === posts/single.html === # === 404.html === [pageNotFound] other = \\u0026#34;頁面沒找到\\u0026#34; [pageNotFoundText] other = \\u0026#34;抱歉，您要查找的頁面不存在。\\u0026#34; # === 404.html === # === shortcodes/admonition.html === [note] other = \\u0026#34;注意\\u0026#34; [abstract] other = \\u0026#34;摘要\\u0026#34; [info] other = \\u0026#34;信息\\u0026#34; [tip] other = \\u0026#34;技巧\\u0026#34; [success] other = \\u0026#34;成功\\u0026#34; [question] other = \\u0026#34;問題\\u0026#34; [warning] other = \\u0026#34;警告\\u0026#34; [failure] other = \\u0026#34;失敗\\u0026#34; [danger] other = \\u0026#34;危險\\u0026#34; [bug] other = \\u0026#34;Bug\\u0026#34; [example] other = \\u0026#34;示例\\u0026#34; [quote] other = \\u0026#34;引用\\u0026#34; # === shortcodes/admonition.html === # === shortcodes/version.html === [new] other = \\u0026#34;新增\\u0026#34; [changed] other = \\u0026#34;更改\\u0026#34; [deleted] other = \\u0026#34;刪除\\u0026#34; # === shortcodes/version.html === \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-i18n-zh-tw/:1:0\",\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"uri\":\"/posts/hugo-i18n-zh-tw/#翻譯\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 配置 打開 config.toml defaultContentLanguage = \\u0026#34;zh-tw\\u0026#34; \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-i18n-zh-tw/:2:0\",\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"uri\":\"/posts/hugo-i18n-zh-tw/#配置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt 友情鏈接範本 lruihao.cn/friends/ \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:0:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"21 創建模板 開始之前去看了 hugo 的官網，再看了一下 go 模板的語法。 新建 layouts/friends/single.html {{- define \\u0026#34;title\\u0026#34; }}{{ .Title }} - {{ .Site.Title }}{{ end -}} {{- define \\u0026#34;content\\u0026#34; -}} {{- $params := .Scratch.Get \\u0026#34;params\\u0026#34; -}} \\u0026lt;div class=\\u0026#34;page single special\\u0026#34;\\u0026gt; {{- /* Title */ -}} \\u0026lt;h1 class=\\u0026#34;single-title animated pulse faster\\u0026#34;\\u0026gt;{{- .Title -}}\\u0026lt;/h1\\u0026gt; {{- /* Subtitle */ -}} {{- with $params.subtitle -}} \\u0026lt;h2 class=\\u0026#34;single-subtitle\\u0026#34;\\u0026gt;{{ . }}\\u0026lt;/h2\\u0026gt; {{- end -}} {{- /* Friend links */ -}} {{- $loading := resources.Get \\u0026#34;svg/loading.svg\\u0026#34; | minify -}} \\u0026lt;script src=\\u0026#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;/friends/css/_friends.css\\u0026#34; /\\u0026gt; \\u0026lt;div class=\\u0026#34;friend-links\\u0026#34;\\u0026gt; {{ range $index, $friend := .Site.Data.friends }} \\u0026lt;a class=\\u0026#34;friend-link\\u0026#34; title=\\u0026#34;{{ $friend.description }}\\u0026#34; href=\\u0026#34;{{ $friend.url | safeURL }}\\u0026#34; rel=\\u0026#34;external nofollow noopener noreferrer\\u0026#34; target=\\u0026#34;_blank\\u0026#34; \\u0026gt; {{ if $friend.avatar }} \\u0026lt;img class=\\u0026#34;friend-avatar lazyload\\u0026#34; src=\\u0026#34;{{ $loading.RelPermalink }}\\u0026#34; data-src=\\u0026#34;{{ $friend.avatar }}\\u0026#34; alt=\\u0026#34;{{ $friend.nickname }}\\u0026#34; /\\u0026gt; {{ else }} \\u0026lt;svg class=\\u0026#34;friend-avatar\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt; \\u0026lt;use xlink:href=\\u0026#34;#icon-{{ add 1 $index }}\\u0026#34;\\u0026gt;\\u0026lt;/use\\u0026gt; \\u0026lt;/svg\\u0026gt; {{ end }} \\u0026lt;span class=\\u0026#34;friend-nickname\\u0026#34; title=\\u0026#34;{{ $friend.nickname }}\\u0026#34;\\u0026gt;@{{ $friend.nickname }}\\u0026lt;/span\\u0026gt; \\u0026lt;/a\\u0026gt; {{ end }} \\u0026lt;/div\\u0026gt; {{- /* Content */ -}} \\u0026lt;div class=\\u0026#34;content\\u0026#34; id=\\u0026#34;content\\u0026#34;\\u0026gt; {{- dict \\u0026#34;Content\\u0026#34; .Content \\u0026#34;Ruby\\u0026#34; $params.ruby \\u0026#34;Fraction\\u0026#34; $params.fraction \\u0026#34;Fontawesome\\u0026#34; $params.fontawesome | partial \\u0026#34;function/content.html\\u0026#34; | safeHTML -}} \\u0026lt;/div\\u0026gt; {{- /* Comment */ -}} {{- partial \\u0026#34;comment.html\\u0026#34; . -}} \\u0026lt;/div\\u0026gt; {{- end -}} \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:1:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#創建模板\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"22 模板樣式 新建文件 _friends.css /** * @Description: Style of layout named \\u0026#39;Friend links\\u0026#39;. * @Author: lruihao.cn * @Updated: 2021/9/20 19:26 */ .friend-links { margin-top: 1rem; display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; } @media (max-width: 576px) { .friend-links { justify-content: space-around; } } .friend-link { width: 150px; height: 200px; font-size: 1rem; text-align: center; background: rgba(255, 255, 255, 0.3); box-sizing: border-box; box-shadow: 3px 3px 5px #aaa; border-radius: 5px; border: none; transition-duration: 0.3s; margin-bottom: 1rem; display: flex; flex-direction: column; justify-content: space-between; } .friend-link:hover { background: #fff; transform: scale(1.03); box-shadow: 0 0 3px #aaa; } .friend-avatar { object-fit: cover; object-position: center; width: 100% !important; height: 150px !important; border-radius: 5px; margin: 0; padding: 0; } .friend-nickname { display: block; position: relative; color: #2bbc8a; font-weight: bold; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 18px; margin-bottom: 1rem; } .friend-nickname:hover { color: #d480aa; } \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:2:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#模板樣式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"23 友鏈頁面 hugo new friends/index.md 將 _friends.css 放到 content/friends/css/ 打開友鏈頁面 content/friends/index.md --- title: \\u0026#39;友鏈\\u0026#39; date: 2021-09-19T12:33:48+08:00 type: \\u0026#39;friends\\u0026#39; --- \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:3:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#友鏈頁面\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"24 數據 新建數據文件 data/friends.yml, 數據格式為： # - nickname: 标题 # avatar: 头像 # url: 站点 # description: 描述 - nickname: Lruihao avatar: https://gravatar.loli.net/avatar/3f985efb5907ca52944a3cd7edd51606?d=wavatar\\u0026amp;v=1.3.10 url: https://lruihao.cn description: 不怕萬人阻擋，只怕自己投降 \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:4:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#數據\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25 結語 這樣每次添加友鏈或者刪除友鏈衹要操作數據文件 friends.yml 就好，乾淨又衛生！ 友鏈頁面 content/friends/index.md 繼承了基礎頁面的功能，內容評論等 \",\"date\":\"2021-10-05\",\"objectID\":\"/posts/hugo-friends/:5:0\",\"tags\":[\"hugo\"],\"title\":\"Hugo 友情連結模板\",\"uri\":\"/posts/hugo-friends/#結語\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"使用 Shell 腳本管理 Hugo 本地博客\",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。 自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:0:0\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 實現 一共六個腳本，放在 hugo-site/_localadmin/ 下 _localadmin/ ├── auto_push.sh # 自動化提交源碼 ├── hugo_builder.sh # 構建 hugo 命令 ├── hugo_main.sh # 主介面入口 ├── hugo_server.sh # 啟動本地服務 ├── post_generator.sh # 創建文章 └── public_async.sh # 同步 public 子模組 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:0\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#實現\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 post_generator.sh 輸入文章名稱（建議使用英文） 文章是否會插入圖片等資源（默認：否） #!/bin/bash #author: Lruihao cd .. read -p \\u0026#34;Please enter the article name: \\u0026#34; postName if [ -z $postName ];then echo \\u0026#34;The article name is required!\\u0026#34; else read -p \\u0026#34;Will there be pictures in this article? [y/n]...\\u0026#34; choice if [ $choice = \\u0026#34;y\\u0026#34; ];then hugo new posts/$postName/index.md else hugo new posts/$postName.md fi fi \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:1\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#post_generatorsh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.2 hugo_server.sh cd .. hugo server --disableFastRender \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:2\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#hugo_serversh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.3 hugo_builder.sh cd .. hugo --minify \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:3\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#hugo_buildersh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.4 public_async.sh cd .. git submodule update --remote git add public git commit -m \\u0026#34;Feat: Update public module commit id\\u0026#34; \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:4\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#public_asyncsh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.5 auto_push.sh 不輸入 Git 提交訊息會使用腳本中默認訊息 Docs: 『菠菜眾長』内容更新 YYYY-MM-DD week hh:mm::ss #!/bin/bash #author: Lruihao cd .. # 是否需要每次提交自動更新子模組 # git submodule update --remote # git add public # git commit -m \\u0026#34;Feat: Update public module commit id\\u0026#34; git add . read -p \\u0026#34;Please enter commit message: \\u0026#34; commitMsg if [ -z $commitMsg ];then commitMsg=\\u0026#34;Docs: 『菠菜眾長』内容更新 $(date +\\u0026#39;%F %a %T\\u0026#39;)\\u0026#34; fi git commit -m \\u0026#34;$commitMsg\\u0026#34; git push \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:5\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#auto_pushsh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.6 hugo_main.sh 可單獨執行子腳本也可以通過主介面來選擇序號執行 #!/bin/bash #author: Lruihao echo \\u0026#34;Please enter the serial number to work\\u0026#34; echo \\u0026#34;--------------------------------------\\u0026#34; echo \\u0026#34;1. post generator\\u0026#34; echo \\u0026#34;2. hugo server\\u0026#34; echo \\u0026#34;3. hugo build\\u0026#34; echo \\u0026#34;4. public async\\u0026#34; echo \\u0026#34;5. auto push\\u0026#34; echo \\u0026#34;--------------------------------------\\u0026#34; echo \\u0026#34;Press Ctrl+C to stop\\u0026#34; read num case $num in 1) sh post_generator.sh ;; 2) sh hugo_server.sh ;; 3) sh hugo_builder.sh ;; 4) sh public_async.sh ;; 5) sh auto_push.sh ;; *) echo \\u0026#34;There is no such serial number\\u0026#34; ;; esac echo \\u0026#34;Press any key to continue...\\u0026#34; read x clear sh hugo_main.sh \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:1:6\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#hugo_mainsh\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 使用 將 hugo_main.sh 建立桌面快捷鍵 雙擊 hugo_main.sh 進入根據提示使用即可 由於一般寫博客會便邊寫邊預覽，所以一般開兩個主介面窗口，如下圖： 一個選擇 2 啟動本地服務 一個用於生成文章，部署文章等 Hugo Admin \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/hugo-admin/:2:0\",\"tags\":[\"hugo\",\"shell\"],\"title\":\"Hugo 本地管理 Shell 腳本\",\"uri\":\"/posts/hugo-admin/#使用\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。 也就是説實現了在線寫靜態博客的需求。 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:0:0\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"13 準備 工作流程涉及到兩個倉庫和一個 cos 桶，例如： Lruihao/hugo-blog # Blog source repository Lruihao/lruihao.github.io # GitHub pages repository blog-1256932288 # COS bucket \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:1:0\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#準備\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"14 Github Actions \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:2:0\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#github-actions\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"14.1 創建 workflows 任務 創建 hugo-site/.github/workflows/deploy.yml, 這個文件會寫一些命令告訴 Github 在我們提交源碼的時候，它要幫我們做哪些事情。 name: Auto Deploy hugo on: [push] jobs: Explore-GitHub-Actions: runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v2 with: submodules: recursive # Fetch Hugo themes (true OR recursive) fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: ${{ vars.HUGO_VERSION || \\u0026#39;latest\\u0026#39; }} extended: true - name: Build Hugo static files run: hugo --minify - name: Deploy to Github Pages uses: peaceiris/actions-gh-pages@v3 with: deploy_key: ${{ secrets.GP_DEPLOY_KEY }} external_repository: Lruihao/lruihao.github.io publish_branch: main publish_dir: ./public commit_message: ${{ github.event.head_commit.message }} - name: Install coscmd run: sudo pip install coscmd - name: Configure coscmd env: COS_SECRET_ID: ${{ secrets.COS_SECRET_ID }} COS_SECRET_KEY: ${{ secrets.COS_SECRET_KEY }} COS_BUCKET_NAME: blog-1256932288 # Change for yourself COS_BUCKET_REGION: ap-chengdu # Change for yourself run: coscmd config -a $COS_SECRET_ID -s $COS_SECRET_KEY -b $COS_BUCKET_NAME -r $COS_BUCKET_REGION - name: Deploy to COS Bucket run: coscmd upload -r -s --delete -f public/ / \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:2:1\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#創建-workflows-任務\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"14.2 配置 Github Pages 密鑰 為了讓 Lruihao/hugo-blog 提交代碼后自動部署到 Lruihao/lruihao.github.io, 需要生成一對 ssh key. ssh-keygen -t rsa -b 4096 -C \\u0026#34;$(git config user.email)\\u0026#34; -f gh-pages -N \\u0026#34;\\u0026#34; # You will get 2 files: # gh-pages.pub (public key) # gh-pages (private key) 打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 private key, name 为 GP_DEPLOY_KEY 打開 Lruihao/lruihao.github.io, 点击 Deploy keys, 添加 public key, name 隨意，Allow write access 一定要勾上，否則無法提交 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:2:2\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#配置-github-pages-密鑰\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"14.3 配置 COS 密鑰 打開 Lruihao/hugo-blog 倉庫的 settings, 再点击 Secrets, 然後添加 COS 桶的 secret_id 和 secret_key: COS_SECRET_ID COS_SECRET_KEY 至此，Github Pages 和 COS 都已經可以通過 Github Actions 自動部署了，有部署記錄后， 打開 Lruihao/hugo-blog -\\u0026gt; Actions 可以看到構建過程和結果，構建失敗也會收到 Github 發給你的郵件。 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:2:3\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#配置-cos-密鑰\"},{\"categories\":[\"Memo\",\"Git\"],\"collections\":null,\"content\":\"15 COS 自動同步（備用） 本小節內容和 Github Actions 無關，僅作為 COS 備用上傳方式。 COSBrowser 下載 COS 官方軟件 COSBrowser 點開右上角 工具箱 選擇 文件同步 選擇 本地文件夹 eg. hugo-site/public 選擇 存储桶目录 同步类型：單次同步、自動同步、定時同步 同步前先執行 hugo 構建命令，eg. hugo --minify 有 Github actions 選單次同步就好，在 Github 不好用時可用。 \",\"date\":\"2021-10-04\",\"objectID\":\"/posts/github-actions/:3:0\",\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"uri\":\"/posts/github-actions/#cos-自動同步備用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:0:0\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 Hugo 准备 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:0\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#hugo-准备\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.1 概念 Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again. 那 hugo 基于编译语言 GO 构建，对于静态页面的构建肯定是碾压 hexo 的存在，其官方标语也是很直白 \\u0026quot;The world’s fastest framework for building websites\\u0026quot;, 作为先后使用过 hexo 和 hugo 的我来说，这确实名副其实。 gohugo \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:1\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#概念\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.2 安装 hugo 提供了很多种安装方式，Git, Docker, Binary. 个人电脑使用二进制安装是最方便快捷的，无需安装其他依赖。 到 Hugo Releases 下载对应的 windows 操作系统版本的 Hugo 二进制文件，玩就要玩全的，所以我就选择了扩展版本，此次选择的最新版为 hugo_extended_0.88.1_Windows-64bit.zip, 然后自行解压安装即可。 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:2\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.3 生成站点 使用 Hugo 快速生成站点，比如希望生成到 /path/to/site 路径： hugo new site /path/to/site 站点目录结构： ▸ archetypes/ # 配置文章模板，相当于 hexo 的 scaffolds ▸ content/ # 文章页面内容，相当于 hexo 的 source ▸ data/ # 可存放一些 yaml, json, toml 格式的数据 ▸ layouts/ # 页面布局源码，改造主题可不动主题源码 ▸ static/ # 静态文件存放 config.toml # 站点配置文件，相当于 hexo 的 _config.yml \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:3\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#生成站点\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.4 创建文章 注：路径要写以 content/ 为根目录的相对路径 hugo new path/fileName \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:4\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#创建文章\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.5 添加主题 添加主题的方式选用 Git 子模组的形式，为了日后快速升级，避免在使用 hexo 中因大量魔改 next 主题而导致难以升级的困扰。 精挑细选最终选择了 LoveIt =\\u0026gt; FixIt git init git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt 在 config.toml 添加 theme = \\u0026ldquo;LoveIt\\u0026rdquo; theme = \\u0026#34;FixIt\\u0026#34; \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:5\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#添加主题\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.6 在本地启动网站 使用以下命令启动网站： hugo serve --disableFastRender 去查看 http://localhost:1313 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:6\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#在本地启动网站\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.7 hugo build 使用以下命令生成静态文件，然后自己可手动选择部署到 github pages 或 COS 等服务器 hugo --minify \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:1:7\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#hugo-build\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 写作指北 FixIt 主题文档 - 基本概念 FixIt 主题文档 - 内容 FixIt 主题文档 - 内置 Shortcodes FixIt 主题文档 - 扩展 Shortcodes \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:2:0\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#写作指北\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 Todo list 本站源码备份 github.com/Lruihao/hugo-blog 原来 hexo 做了大量的美化和扩展功能，迁移到 hugo 想尽可能多的保留。取之精华，去其糟粕。 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:3:0\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#todo-list\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.1 Base 迁移 hexo 所有文章内容 迁移 hexo 所有页面内容 留言页面 网友打赏支持页面，整合到留言页面 重写关于页面，一切从简 友情链接页面 重写 404 页面 站点时间和不蒜子计数改到 hello-world 页面 cos-album 和 🍚 饭醉团伙 🍷 整合到博客 cos-album/ #7 (wontfix) 新增 demo/, 以子模组的形式存放前端 demo, serverless 记账本等（保持原本博客的纯粹性） 博客 valine 评论，阅读数迁移，可用 leancloud API 写代码转化（但似乎没必要） 博客 SEO 优化迁移 baidu_urls.txt Github actions 自动部署到 Github pages 和 COS 脚本编写 hugo 本地管理 shell 脚本工具编写 知乎卡片式链接 改成 hugo shortcodes, 取名 cardlink zxm/沐目体 归档 :( #6 安装 沐目体 压缩 沐目体 fontspider 沐目体 post 修订 typyit 配合 随机诗词和网易云热评 API 实时预览功能 base on Vuejs [恋爱叙事体] love 归档 [光] 归档 hugo 内容加密研究 #3 Lruihao/hugo-blog README 撰写，MIT, 发布 1.0.0 版本做完整备份，base on theme version 更换 gravatar 头像 #4 博客在线编辑器研究 github1s 等 #5 [baidu_urls.txt]:↩︎ 生成百度链接集合小技巧，关掉归档分页，在归档页面控制台执行以下代码即可获得所有文章链接 let urls = []; for (let a of document.querySelectorAll(\\u0026#39;.archive-item a\\u0026#39;)) { urls.push(a.href); } console.log(urls.join(\\u0026#39;\\\\n\\u0026#39;)); FixIt 主题已支持自动输出 baidu_urls.txt 文件 \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:3:1\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#base\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.2 Theme FixIt hugo LoveIt 主题整体优化，必要时建 PR 或 issue 到 LoveIt 仓库 (LoveIt 已停更一年多） 先把自己发现和 LoveIt 原 repo 的 issue 尽可能的修复，修改的原则是：不改动原项目代码， 唯一途径就是在站点相同的目录用新增的方式替代修改、删除操作。 之后再等等看作者是否还会更新，如已做大量的更改，再做考虑整合为一个新的主题。 为了更好的完善博客功能以及修复 BUG 已创建新的主题 FixIt (fork from LoveIt) Hugo theme FixIt github.com/Lruihao/FixIt 进度更新至 #8 CSS 优化，背景，元素圆角化，外圆内方，居中对齐等 沐目体引入 TOC 序号生成 Fix: 无标题时也会生成目录的 BUG subtitle 等细节优化 Fix: typeit 打印代码时跑版的问题 Fix: 文章 h1 标题多行跑版 Code Review \",\"date\":\"2021-10-03\",\"objectID\":\"/posts/hexo-to-hugo/:3:2\",\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"uri\":\"/posts/hexo-to-hugo/#theme-fixit\"},{\"categories\":null,\"collections\":null,\"content\":\"「菠菜眾長」的友情链接\",\"date\":\"2021-09-19\",\"objectID\":\"/friends/\",\"tags\":null,\"title\":\"友情链接\",\"uri\":\"/friends/\"},{\"categories\":null,\"collections\":null,\"content\":\"本页共 -\\u0026nbsp;次阅读 \",\"date\":\"2021-09-19\",\"objectID\":\"/friends/:0:0\",\"tags\":null,\"title\":\"友情链接\",\"uri\":\"/friends/#\"},{\"categories\":null,\"collections\":null,\"content\":\"基本信息 网络 ID：Lruihao 头像：https://lruihao.cn/images/avatar.jpg URL：https://lruihao.cn 描述：菠菜眾長 - 「不怕萬人阻擋，只怕自己投降」（或者你对我的看法😉） \",\"date\":\"2021-09-19\",\"objectID\":\"/friends/:1:0\",\"tags\":null,\"title\":\"友情链接\",\"uri\":\"/friends/#基本信息\"},{\"categories\":null,\"collections\":null,\"content\":\"友链要求 友情提醒：那些不尊重他人劳动成果，转载不加出处的，或恶意行为的网站，还请你不要来进行交换了。 原创博客文章至少 10 篇以上，内容健康，无违法违规内容。 网站创建时间至少 3 个月以上，且长期保持更新。（频率至少一年 1 篇） 目前仅限个人非商业博客/网站。（商务合作邮件联系） 满足上述基本要求，互换友链请按以下格式在评论区留言： ```yaml - nickname: \\u0026lt;your nickname\\u0026gt; avatar: \\u0026lt;your avatar\\u0026gt; url: \\u0026lt;your site link\\u0026gt; description: \\u0026lt;description of your site\\u0026gt; ``` \",\"date\":\"2021-09-19\",\"objectID\":\"/friends/:2:0\",\"tags\":null,\"title\":\"友情链接\",\"uri\":\"/friends/#友链要求\"},{\"categories\":null,\"collections\":null,\"content\":\"失效链接 公示一个月后删除，如更换域名请及时联系！ \",\"date\":\"2021-09-19\",\"objectID\":\"/friends/:3:0\",\"tags\":null,\"title\":\"友情链接\",\"uri\":\"/friends/#失效链接\"},{\"categories\":null,\"collections\":null,\"content\":\"互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！\",\"date\":\"2021-09-13\",\"objectID\":\"/guestbook/\",\"tags\":null,\"title\":\"留言\",\"uri\":\"/guestbook/\"},{\"categories\":null,\"collections\":null,\"content\":\"-\\u0026nbsp;次阅读 Welcome 互联网的广大朋友们，欢迎光临我的小博客！欢迎留言！ 温馨提示，音乐自动播放，请带好耳机～ From playlist, Powered by mmt-netease. 给博主买杯卡布奇诺～ 赞赏 支付宝 微信 -\\u0026nbsp;次阅读 \",\"date\":\"2021-09-13\",\"objectID\":\"/guestbook/:0:0\",\"tags\":null,\"title\":\"留言\",\"uri\":\"/guestbook/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/hugo blog: Lruihao's Note\",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:1:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#菠菜眾長 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Content 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。 以内容为中心，搭建了智能笔记知识库，支持 AI 搜索、AI 对话、智能摘要等功能，点击左下角 🤖 图标 立即体验。 归档 分类 合集 标签 提示 你可以通过我的微信公众号、GitHub 或 RSS 来订阅本博客。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:2:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#content\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Source 博客中涉及的相关源码： HTML/CSS/JS Demo Vue2 Demo Hugo FixIt CoverView Vercel API Proxy MMT webfont package 更多 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:3:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#source\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Roadmap \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:4:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#roadmap\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Project setup 本博客已部署到 Vercel 和 GitHub Pages，工作流如下图所示： ▸ .github/ # GitHub configuration ▸ .scripts/ # custom scripts ▸ .shell/ # shell commands for hugo project, entrance: hugo_main.sh ▸ archetypes/ # page archetypes (like scaffolds for hexo) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ private/ # private submodule for encrypted content ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:5:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#project-setup\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"System requirements Node.js: \\u0026gt;= 18.0.0 Go Hugo: \\u0026gt;= 0.147.7 (extended version) \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:5:1\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#system-requirements\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Clone 首先点上 Star 😜，然后下载源码： git clone --recursive git@github.com:Lruihao/hugo-blog.git \\u0026amp;\\u0026amp; cd hugo-blog 下载源码后，有两种方法可以启动这个博客。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:5:2\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#clone\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"NPM npm install # build the blog npm run build # run a local debugging server with watch npm run server # run a local debugging server in production environment npm run server:production # update theme submodules npm run update:theme 如果没有全局安装 Hugo，甚至可以通过 hugo-bin 在 Node.js 环境下使用 Hugo。 参考：hugo-bin npm install hugo-bin --save-dev package.json 需配置 extended 版本： 再通过 npx hugo 启动。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:5:3\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#npm\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Hugo # Development environment hugo server --disableFastRender --navigateToChanged --bind 0.0.0.0 # Production environment hugo server --disableFastRender --navigateToChanged --environment production --bind 0.0.0.0 此外，还可以运行 shell 脚本来选择常用的 Hugo 命令。 cd .shell \\u0026amp;\\u0026amp; sh hugo_main.sh --------------Hugo Admin-------------- Please enter the serial number to work -------------------------------------- 1. post 2. server 3. server:production 4. build 5. submodule-sync 6. push -------------------------------------- Press Ctrl+C to stop \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:5:4\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#hugo\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"License 此存储库中的文本、图像和视频等内容采用 CC BY-NC-SA 4.0 许可 此存储库中的代码采用 MIT 许可 content/private 目录不在任何许可范围内 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:6:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#license\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Sponsor 赞赏记录，感谢大家的支持！❤️ 长期赞助致谢： translate.js 赞助企业级翻译通道。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:7:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#sponsor\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Powered 博客基于 Hugo 和 FixIt 搭建，建站的初衷不是为了炫耀所知，而是记录无知。 \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:8:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#powered\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Author Lruihao \",\"date\":\"2021-09-08\",\"objectID\":\"/projects/lruihao/hugo-blog/:9:0\",\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"title\":\"Lruihao's Note\",\"uri\":\"/projects/lruihao/hugo-blog/#author\"},{\"categories\":null,\"collections\":null,\"content\":\" 不卑不亢，不矜不伐，戒骄戒躁 不嗔不怒，不争不弃，独善其身 —— 自我期许 \",\"date\":\"2021-09-07\",\"objectID\":\"/about/:0:0\",\"tags\":null,\"title\":\"关于\",\"uri\":\"/about/#\"},{\"categories\":null,\"collections\":null,\"content\":\"关于作者 人知道的越多，就会发现无知的越多。有更广袤的世界可以探索，真是莫大的快乐！ 喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。 👨‍💻 一名前端开发工程师 🫶 Hugo FixIt 作者 📚 专业：计算机科学与技术 \\u0026nbsp;关注 Follow：Lruihao \\u0026nbsp;微信公众号：菠菜眾長 \",\"date\":\"2021-09-07\",\"objectID\":\"/about/:1:0\",\"tags\":null,\"title\":\"关于\",\"uri\":\"/about/#关于作者\"},{\"categories\":null,\"collections\":null,\"content\":\"关于博客 博客内容主要以前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。 你可以通过我的微信公众号、GitHub 或 RSS 来订阅本博客。 /** * 菠菜眾長，取“兼收並蓄，博採眾長”之意。 * Licensed under CC BY-NC-SA 4.0 * @since 2018-05-28 20:01:01 */ class Blog { constructor(name, author, url) { this.name = name; this.author = author; this.url = url; } } // 建站的初衷不是为了炫耀所知，而是记录无知。 const site = new Blog(\\u0026#39;菠菜眾長\\u0026#39;, \\u0026#39;Lruihao\\u0026#39;, \\u0026#39;https://lruihao.cn\\u0026#39;); 博客历史 部署从 GitHub Pages 迁移至 Vercel。 2023-05-01 17:13:51大学毕业后，出湖南工作。网警打电话告知我迁移备案，我觉得麻烦就注销了，同时部署从腾讯云 COS 桶迁移至 GitHub Pages。 2023-02-14 18:00:40LoveIt =\\u0026gt; FixIt LoveIt 长期停更，博客主题改为 FixIt，并自行开发维护。 2021-12-18 16:15:22博客迁移至 Hugo，使用 LoveIt 主题，重新出发。 2021-09-08 20:53:21升级 Windows 11，系统更新出现故障，整理磁盘时不小心把代码全删除了，无备份，GitHub 仅备份了 Markdown 源码。博客开始停止运行。 2021-08-19 22:48:06博客名称“博採眾長”改为“菠菜眾長”，因为网站备案不能使用成语。 这个时候博客内容开始转向前端开发了。部署在腾讯云 COS 桶，速度嘎嘎快。 2019-12-06 21:04:01基于 Hexo + NexT 主题搭建博客，博客取名为“博採眾長”，取“兼收並蓄，博採眾長”之意。 当时还在打 ACM，博客内容也主要是记录题解。 2018-05-28 20:01:01 \",\"date\":\"2021-09-07\",\"objectID\":\"/about/:2:0\",\"tags\":null,\"title\":\"关于\",\"uri\":\"/about/#关于博客\"},{\"categories\":null,\"collections\":null,\"content\":\"有偿帮助 前后端开发需求可以联系我，暂定价格 50～100 元/小时，具体详聊。 （其他类型开发也可以咨询） \",\"date\":\"2021-09-07\",\"objectID\":\"/about/:3:0\",\"tags\":null,\"title\":\"关于\",\"uri\":\"/about/#有偿帮助\"},{\"categories\":null,\"collections\":null,\"content\":\"商务合作 广告投放、其他平台同步授权等事宜请邮件与我联系。 📮 邮箱：1024@lruihao.cn（备注来意） 已授权平台：云 + 社区 进入PGgyIGNb5fbcbd56537bce1ee1174c5e0fe69e3a75437f9867b76600ad802dffsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmlbDmja7liIbmnpAiPjxzcGFuPuaVsOaNruWIhuaekDwvc3Bhbj4KICA8YSBocmVmPSIjJWU2JTk1JWIwJWU2JThkJWFlJWU1JTg4JTg2JWU2JTllJTkwIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI\\u0026#43;PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E\\u0026#43;CjwvaDI\\u0026#43;PHVsPgo8bGk\\u0026#43;PGEgaHJlZj0iaHR0cHM6Ly91cy51bWFtaS5pcy9zaGFyZS9GU1B3bTFJc3JRRlk3WnZQL2xydWloYW8uY24iIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPlVtYW1pPGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k\\u0026#43;PC9hPjwvbGk\\u0026#43;CjxsaT48YSBocmVmPSJodHRwczovL3ZlcmNvdW50Lm9uZS9kYXNoYm9hcmQvYW5hbHl0aWNzP2RvbWFpbj1scnVpaGFvLmNuIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj5WZXJjb3VudDxpIGNsYXNzPSJmYS1zb2xpZCBmYS1leHRlcm5hbC1saW5rLWFsdCBmYS14cyBtcy0xIHRleHQtc2Vjb25kYXJ5IiBhcmlhLWhpZGRlbj0idHJ1ZSI\\u0026#43;PC9pPjwvYT48L2xpPgo8L3VsPgo= -\\u0026nbsp;次阅读 \",\"date\":\"2021-09-07\",\"objectID\":\"/about/:4:0\",\"tags\":null,\"title\":\"关于\",\"uri\":\"/about/#商务合作\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。 轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:0:0\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"1 為什麼，什麼時候要使用 CSS 前置處理器？ (Why, When) CSS 有具體以下幾個缺點： 語法不夠強大，比如無法嵌套書寫，導致模組化開發中需要書寫很多重複的選擇器 沒有變數和合理的樣式複用機制，使得邏輯上相關的屬性值必須以字面量的形式重複輸出，導致難以維護 這就導致了我們在工作中無端增加了許多工作量。而使用 CSS 前置處理器可大大提高了我們的開發效率： 提供 CSS 缺失的樣式層複用機制 減少冗餘碼 提高樣式代碼的可維護性。 但是，CSS 的好處在於簡便、隨時隨地被使用和調試。這就使得預編譯 CSS 步驟的加入具有以下缺點： 開發工作流中多了一個環節，調試也變得更麻煩 預編譯很容易造成後代選擇器的濫用 所以我們在實際項目中衡量預編譯方案時，還是得想想，比起帶來的額外維護開銷，CSS 前置處理器有沒有解決更大的麻煩。 系統級框架開發（大型複雜的樣式設計） 持續維護 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:1:0\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#為什麼什麼時候要使用-css-前置處理器-why-when\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"2 Less、Sass/Scss 是什麼？ (What) \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:2:0\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#lesssassscss-是什麼-what\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"2.1 Less 是一種動態樣式語言。對 CSS 賦予了動態語言的特性，如變數、繼承、運算、函數。 Less 既可以在用戶端上運行（支援 IE 6+, Webkit, Firefox)，也可在服務端運行。 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:2:1\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#less\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"2.2 Sass 是一種動態樣式語言，Sass 語法屬於縮排語法， 比 CSS 比多出好些功能（如變數、嵌套、運算，混入 (Mixin)、繼承、顏色處理，函數等），更容易閱讀。 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:2:2\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#sass\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"2.3 Sass 與 Scss 的關係 Sass 的縮排語法，對於寫慣 CSS 的前端開發者來說很不直觀，也不能將 CSS 代碼加入到 Sass 裡面，因此 Sass 語法進行了改良，Sass 3 就變成了 Scss(Sassy CSS)。與原來的語法相容，只是用{}取代了原來的縮進。Sass 相當於 Scss 的嚴格模式。 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:2:3\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#sass-與-scss-的關係\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"3 Sass 和 Less 的比較 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:3:0\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#sass-和-less-的比較\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"3.1 相同點 Less 和 Sass 在語法上有些共性，比如下面這些： 混入 (Mixins)——class 中的 class 參數混入——可以傳遞參數的 class，就像函數一樣 嵌套規則——Class 中嵌套 class，從而減少重複的代碼 運算——CSS 中用上數學 顏色功能——可以編輯顏色 名字空間 (namespace)——分組樣式，從而可以被調用 作用域——局部修改樣式 JavaScript 賦值——在 CSS 中使用 JavaScript 運算式賦值 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:3:1\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#相同點\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"3.2 不同點 實現方式 Less 是基於 JavaScript，是在用戶端處理的 Sass 是基於 Ruby 的，是在伺服器端處理的 關於變數在 Less 和 Sass 中的唯一區別就是 Less 用@，Sass 用$ less 中的變量運算可帶、可不帶單位，Sass 需要帶單位元 語法不同，請詳見 Less、Sass 官網 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:3:2\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#不同點\"},{\"categories\":[\"CSS\"],\"collections\":null,\"content\":\"4 選用 Less 還是 Sass ? 無論是學習資料，討論情況，以及項目使用情況 Sass/Scss 都優於 Less，比如 Bootstrap 4 就使用的 Sass, 但是 Less 的使用更加簡單，使用門檻也較低，內網開發的情況，Less 則更加適合。 \",\"date\":\"2021-06-22\",\"objectID\":\"/posts/less-sass-scss/:4:0\",\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"title\":\"less\\u0026sass\\u0026scss\",\"uri\":\"/posts/less-sass-scss/#選用-less-還是-sass-\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"13 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。 一般的網頁，圖片是使用 img 標籤寫在 HTML 頁面中，圖片點擊并不會放大，想放大看圖片要麼方法整個網頁，要麼複製圖片鏈接新開窗口，操作繁瑣，而使用 Lightbox 的網站可以点击缩略图浮层显示大图，放大後可点击键盘 ←、→ 键切换图片，也可以鼠标点击左右箭头切换。按下键盘 Esc 键或者点击关闭按钮可輕鬆關閉圖層，圖片流覽的體驗度是遠遠大於未使用的 Lightbox 的網站。 \",\"date\":\"2021-06-21\",\"objectID\":\"/posts/lightbox/:1:0\",\"tags\":[\"Lightbox\",\"JavaScript\"],\"title\":\"Lightbox\",\"uri\":\"/posts/lightbox/#簡介\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14 實現思路 大概思路就在每个图片的点击事件中添加图层与图片副本。 /** * @author github.com@flymysql */ let container = document.documentElement || document.body; let img, div, src, btnleft, btnright; var imgid = 0; let x, y, w, h, tx, ty, tw, th, ww, wh; let closeMove = function () { if (div == undefined) { return false; } div.style.opacity = 0; img.style.height = h + \\u0026#39;px\\u0026#39;; img.style.width = w + \\u0026#39;px\\u0026#39;; img.style.left = x + \\u0026#39;px\\u0026#39;; img.style.top = y - container.scrollTop + \\u0026#39;px\\u0026#39;; // 延迟移除 dom setTimeout(function () { div.remove(); img.remove(); btnright.remove(); btnleft.remove(); }, 100); }; let closeFade = function () { if (div == undefined) { return false; } div.style.opacity = 0; img.style.opacity = 0; // 延迟移除 dom setTimeout(function () { div.remove(); img.remove(); btnright.remove(); btnleft.remove(); }, 100); }; let style = function () { btnleft.style.cssText = ` position:fixed; border-radius: 50%;; left:${x - 20}px; top:${y - container.scrollTop + h / 2}px; width:50px; height:50px; border: 0px; background-color: rgba(200,200,200,0.8); font-size: 20px; z-index: 999999999; transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1); `; btnright.style.cssText = ` position:fixed; border-radius: 50%; left:${x + w + 20}px; top:${y - container.scrollTop + h / 2}px; width:50px; border: 0px; height:50px; font-size: 20px; background-color: rgba(200,200,200,0.8); z-index: 999999999; transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1); `; btnleft.innerText = \\u0026#39;\\u0026lt;\\u0026#39;; btnright.innerText = \\u0026#39;\\u0026gt;\\u0026#39;; img.style.cssText = ` position:fixed; border-radius: 12px; left:${x}px; top:${y - container.scrollTop}px; width:${w}px; height:${h}px; z-index: 999999999; transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1); opacity:0; `; }; // 监听滚动关闭层 document.addEventListener(\\u0026#39;scroll\\u0026#39;, function () { closeFade(); }); document.querySelectorAll(\\u0026#39;img\\u0026#39;).forEach((v) =\\u0026gt; { if (v.parentNode.localName != \\u0026#39;a\\u0026#39;) { v.id = imgid; imgid++; v.addEventListener(\\u0026#39;click\\u0026#39;, function (e) { // 注册事件 // 记录小图的位置个大小 x = e.target.offsetLeft; y = e.target.offsetTop; w = e.target.offsetWidth; h = e.target.offsetHeight; src = e.target.src; id = e.target.id; // 创建遮罩层 div = document.createElement(\\u0026#39;div\\u0026#39;); div.style.cssText = ` position:fixed; left:0; top:0; bottom:0; right:0; background-color: rgba(25,25,25,0.8); z-index:99999999; transition:all .3s cubic-bezier(0.165, 0.84, 0.44, 1); `; document.body.appendChild(div); setTimeout(function () { div.style.opacity = 1; }, 0); // （此处可以加 loading) // 创建副本 img = new Image(); btnright = document.createElement(\\u0026#39;button\\u0026#39;); btnleft = document.createElement(\\u0026#39;button\\u0026#39;); img.src = src; style(); btnleft.onclick = function () { if (id === 0) { alert(\\u0026#39;已经是第一张了！\\u0026#39;); return; } var left = document.getElementById(id - 1); img.src = left.src; x = left.offsetLeft; y = left.offsetTop; w = left.offsetWidth; h = left.offsetHeight; style(); id--; }; btnright.onclick = function () { id++; if (id \\u0026gt;= imgid) { alert(\\u0026#39;已经是最后一张了！\\u0026#39;); return; } var right = document.getElementById(id); img.src = right.src; x = right.offsetLeft; y = right.offsetTop; w = right.offsetWidth; h = right.offsetHeight; style(); }; img.onload = function () { document.body.appendChild(img); document.body.appendChild(btnright); document.body.appendChild(btnleft); // 浏览器宽高 wh = window.innerHeight; ww = window.innerWidth; // 目标宽高和坐标 if (w / h \\u0026lt; ww / wh) { th = wh - 80; tw = ((w / h) * th) \\u0026gt;\\u0026gt; 0; tx = (ww - tw) / 2; ty = 40; } else { tw = ww * 0.8; th = ((h / w) * tw) \\u0026gt;\\u0026gt; 0; tx = ww * 0.1; ty = (wh - th) / 2; } // 延迟写入否则不会有动画 setTimeout(function () { img.style.opacity = 1; img.style.height = th + \\u0026#39;px\\u0026#39;; img.style.width = tw + \\u0026#39;px\\u0026#39;; img.style.left = tx + \\u0026#39;px\\u0026#39;; img.style.top = ty + \\u0026#39;px\\u0026#39;; btnleft.style.left = tx - 90 + \\u0026#39;px\\u0026#39;; btnleft.style.top = ty + th / 2 + \\u0026#39;px\\u0026#39;; btnright.style.left = tx + tw + 40 + \\u0026#39;px\\u0026#39;; btnright.style.top = ty + th / 2 + \\u0026#39;px\\u0026#39;; // 点击隐藏 \",\"date\":\"2021-06-21\",\"objectID\":\"/posts/lightbox/:2:0\",\"tags\":[\"Lightbox\",\"JavaScript\"],\"title\":\"Lightbox\",\"uri\":\"/posts/lightbox/#實現思路\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15 fancybox fancybox 是一個完善的 lightbox 插件 jQuery lightbox script for displaying images, videos and more. Touch enabled, responsive and fully customizable. \",\"date\":\"2021-06-21\",\"objectID\":\"/posts/lightbox/:3:0\",\"tags\":[\"Lightbox\",\"JavaScript\"],\"title\":\"Lightbox\",\"uri\":\"/posts/lightbox/#fancybox\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15.1 Quick start Add latest jQuery and fancyBox files \\u0026lt;script src=\\u0026#34;https://code.jquery.com/jquery-3.3.1.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;link href=\\u0026#34;/path/to/jquery.fancybox.min.css\\u0026#34; rel=\\u0026#34;stylesheet\\u0026#34; /\\u0026gt; \\u0026lt;script src=\\u0026#34;/path/to/jquery.fancybox.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; Create links \\u0026lt;a data-fancybox=\\u0026#34;gallery\\u0026#34; href=\\u0026#34;big_1.jpg\\u0026#34;\\u0026gt; \\u0026lt;img src=\\u0026#34;small_1.jpg\\u0026#34; /\\u0026gt; \\u0026lt;/a\\u0026gt; \\u0026lt;a data-fancybox=\\u0026#34;gallery\\u0026#34; href=\\u0026#34;big_2.jpg\\u0026#34;\\u0026gt; \\u0026lt;img src=\\u0026#34;small_2.jpg\\u0026#34; /\\u0026gt; \\u0026lt;/a\\u0026gt; Enjoy! \",\"date\":\"2021-06-21\",\"objectID\":\"/posts/lightbox/:3:1\",\"tags\":[\"Lightbox\",\"JavaScript\"],\"title\":\"Lightbox\",\"uri\":\"/posts/lightbox/#quick-start\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/watermark: Create watermark for webpage and automatic adjust when window resize.\",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Watermark Create watermark for webpage and automatic adjust when windows resize. \",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/:1:0\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/#watermark data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Documentation \",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/:2:0\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/#documentation\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Usage \",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/:3:0\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/#usage\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Browser Clone source git clone git@github.com:Lruihao/watermark.git Load Watermark \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;./src/watermark.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;!-- Or CDN --\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;https://cdn.jsdelivr.net/npm/cell-watermark\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; Initialization document.addEventListener(\\u0026#39;DOMContentLoaded\\u0026#39;, function () { new Watermark({ content: \\u0026#34;cell-watermark\\u0026#34; }) }); \",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/:3:1\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/#browser\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"NPM Install npm i cell-watermark Import import Watermark from \\u0026#39;cell-watermark\\u0026#39; /* Or */ var Watermark = require(\\u0026#34;cell-watermark\\u0026#34;) \",\"date\":\"2021-05-24\",\"objectID\":\"/projects/lruihao/watermark/:3:2\",\"tags\":[\"cell-watermark\",\"watermark\"],\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"uri\":\"/projects/lruihao/watermark/#npm\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Usage \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:1:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#usage data-decreased\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Browser Clone source git clone git@github.com:Lruihao/watermark.git Load Watermark \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;./src/watermark.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;./src/watermark.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;!-- Or CDN --\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;https://cdn.jsdelivr.net/npm/cell-watermark@1.0.3/src/watermark.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; Initialization document.addEventListener(\\u0026#39;DOMContentLoaded\\u0026#39;, function () { new Watermark({ content: \\u0026#34;cell-watermark\\u0026#34; }) }); \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:2:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#browser\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"NPM Install npm i cell-watermark Import import Watermark from \\u0026#39;cell-watermark\\u0026#39; /* Or */ var Watermark = require(\\u0026#34;cell-watermark\\u0026#34;) \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:3:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#npm\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Class: Watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:4:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#class-watermark data-decreased\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Watermark(options) new Watermark(options) Parameters Name Type Description options Object The options of watermark（Properties） Properties Name Type Attributes Default Description content String \\u0026lt;optional\\u0026gt; watermark\\u0026rsquo;s text appendTo String \\u0026lt;optional\\u0026gt; \\u0026lsquo;body\\u0026rsquo; parent of watermark\\u0026rsquo;s container width Number \\u0026lt;optional\\u0026gt; 150 watermark\\u0026rsquo;s width. unit: px height Number \\u0026lt;optional\\u0026gt; 20 watermark\\u0026rsquo;s height. unit: px rowSpacing Number \\u0026lt;optional\\u0026gt; 60 row spacing of watermarks. unit: px colSpacing Number \\u0026lt;optional\\u0026gt; 30 col spacing of watermarks. unit: px rotate Number \\u0026lt;optional\\u0026gt; 15 watermark\\u0026rsquo;s tangent angle. unit: deg opacity Number \\u0026lt;optional\\u0026gt; 0.1 watermark\\u0026rsquo;s transparency fontSize Number \\u0026lt;optional\\u0026gt; 0.85 watermark\\u0026rsquo;s fontSize. unit: rem fontFamily String \\u0026lt;optional\\u0026gt; \\u0026lsquo;inherit\\u0026rsquo; watermark\\u0026rsquo;s fontFamily Author: Lruihao \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#watermarkoptions\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Watermark(options) new Watermark(options) Parameters Name Type Description options Object The options of watermark（Properties） Properties Name Type Attributes Default Description content String \\u0026lt;optional\\u0026gt; watermark\\u0026rsquo;s text appendTo String \\u0026lt;optional\\u0026gt; \\u0026lsquo;body\\u0026rsquo; parent of watermark\\u0026rsquo;s container width Number \\u0026lt;optional\\u0026gt; 150 watermark\\u0026rsquo;s width. unit: px height Number \\u0026lt;optional\\u0026gt; 20 watermark\\u0026rsquo;s height. unit: px rowSpacing Number \\u0026lt;optional\\u0026gt; 60 row spacing of watermarks. unit: px colSpacing Number \\u0026lt;optional\\u0026gt; 30 col spacing of watermarks. unit: px rotate Number \\u0026lt;optional\\u0026gt; 15 watermark\\u0026rsquo;s tangent angle. unit: deg opacity Number \\u0026lt;optional\\u0026gt; 0.1 watermark\\u0026rsquo;s transparency fontSize Number \\u0026lt;optional\\u0026gt; 0.85 watermark\\u0026rsquo;s fontSize. unit: rem fontFamily String \\u0026lt;optional\\u0026gt; \\u0026lsquo;inherit\\u0026rsquo; watermark\\u0026rsquo;s fontFamily Author: Lruihao \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#new-watermarkoptions\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Watermark(options) new Watermark(options) Parameters Name Type Description options Object The options of watermark（Properties） Properties Name Type Attributes Default Description content String \\u0026lt;optional\\u0026gt; watermark\\u0026rsquo;s text appendTo String \\u0026lt;optional\\u0026gt; \\u0026lsquo;body\\u0026rsquo; parent of watermark\\u0026rsquo;s container width Number \\u0026lt;optional\\u0026gt; 150 watermark\\u0026rsquo;s width. unit: px height Number \\u0026lt;optional\\u0026gt; 20 watermark\\u0026rsquo;s height. unit: px rowSpacing Number \\u0026lt;optional\\u0026gt; 60 row spacing of watermarks. unit: px colSpacing Number \\u0026lt;optional\\u0026gt; 30 col spacing of watermarks. unit: px rotate Number \\u0026lt;optional\\u0026gt; 15 watermark\\u0026rsquo;s tangent angle. unit: deg opacity Number \\u0026lt;optional\\u0026gt; 0.1 watermark\\u0026rsquo;s transparency fontSize Number \\u0026lt;optional\\u0026gt; 0.85 watermark\\u0026rsquo;s fontSize. unit: rem fontFamily String \\u0026lt;optional\\u0026gt; \\u0026lsquo;inherit\\u0026rsquo; watermark\\u0026rsquo;s fontFamily Author: Lruihao \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#parameters\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Watermark(options) new Watermark(options) Parameters Name Type Description options Object The options of watermark（Properties） Properties Name Type Attributes Default Description content String \\u0026lt;optional\\u0026gt; watermark\\u0026rsquo;s text appendTo String \\u0026lt;optional\\u0026gt; \\u0026lsquo;body\\u0026rsquo; parent of watermark\\u0026rsquo;s container width Number \\u0026lt;optional\\u0026gt; 150 watermark\\u0026rsquo;s width. unit: px height Number \\u0026lt;optional\\u0026gt; 20 watermark\\u0026rsquo;s height. unit: px rowSpacing Number \\u0026lt;optional\\u0026gt; 60 row spacing of watermarks. unit: px colSpacing Number \\u0026lt;optional\\u0026gt; 30 col spacing of watermarks. unit: px rotate Number \\u0026lt;optional\\u0026gt; 15 watermark\\u0026rsquo;s tangent angle. unit: deg opacity Number \\u0026lt;optional\\u0026gt; 0.1 watermark\\u0026rsquo;s transparency fontSize Number \\u0026lt;optional\\u0026gt; 0.85 watermark\\u0026rsquo;s fontSize. unit: rem fontFamily String \\u0026lt;optional\\u0026gt; \\u0026lsquo;inherit\\u0026rsquo; watermark\\u0026rsquo;s fontFamily Author: Lruihao \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:0\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#properties\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#methods\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#uploadcontent\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#parameters-1\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#renderoptions\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#parameters-2\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"Methods upload(content) Upload watermark\\u0026rsquo;s text content Parameters Name Type Description content String watermark\\u0026rsquo;s text render(options) Rerender watermark Parameters Name Type Description options Object The options of watermark（Properties） destroy() Force destroy watermark \",\"date\":\"2021-05-23\",\"objectID\":\"/projects/cell-watermark/:5:1\",\"tags\":[\"watermark\",\"JavaScript\"],\"title\":\"Cell Watermark\",\"uri\":\"/projects/cell-watermark/#destroy\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度： 程式執行效能更好 程式碼結構更精簡 程式執行效能就是從速度跟空間來思考，執行時間越短、變數佔用空間越小。而程式碼結構則會從可讀性和精簡來衡量，例如：變數的命名有沒有意義、程式碼有沒有冗余、繁瑣的部分等等。只不過新手很容易停留在寫出程式的喜悅以及受到固有的解題思考，而忽略優化的過程。 透過「Code Review」是推薦新手的方法，經由反饋與討論來找出程式中可優化的空間。 \",\"date\":\"2021-03-04\",\"objectID\":\"/posts/codereview/:1:0\",\"tags\":[\"codereview\"],\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"uri\":\"/posts/codereview/#程式碼的持續優化\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"2 Code Review 的關注點 以我自己的經驗來說，Review 一份專案的時候會關注： 程式能不能正常操作，有没有什么明显的错误？（低標） 程式碼當中有沒有奇怪的地方？（優化） 第一個關注點是程式碼的低標，結果正確與可正常運行一定是最重要的。如果程式無法運行動或存在很明顯的問題，那再多的優化都沒有意義。除了確保執行之外，同時也會檢查一下是否有低級的邏輯失誤或是安全性的疑慮，像是資料庫沒有正確關閉或密碼明碼沒有加密之類的問題。 第二個關注點是「程式碼品質提升」的部分，我會把它定義成程式運作上沒有問題，但看起來很不舒服或執行效率很差的部分。大致上可以從以下幾點下手： 命名有沒有意義/不一致 資料庫的正規化情況 是否存在特別複雜的程式片段（例如多次的資料庫查詢、多層的迴圈使用） 重複的程式碼有沒有定義成 function 冗長的程式碼能不能拆分成 function 不過一次的 Code Review 建議著重在 3 - 5 個優化地方，比較容易聚焦在優化的品質。根據時程的壓力，決定 Code Review 迭代的次數。 \",\"date\":\"2021-03-04\",\"objectID\":\"/posts/codereview/:2:0\",\"tags\":[\"codereview\"],\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"uri\":\"/posts/codereview/#code-review-的關注點\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"3 從架構的規劃到細節的優化 在拿到一份程式碼時，通常會先掃過一眼程式的檔案結構，是否有不該上傳的檔案或缺漏。 以這個例子來說，第一眼會覺得檔案配置蠻結構化的。但再多看一點會發現存在幾個冗餘的檔案，例如：-filesqqqq、diff，甚至 /icon 資料夾也不該放在最上層。 進入程式的第一步先從 package.json 檔案開始，確認一下專案的基本資訊是否完整、使用到的套件與版本，以及程式的進入點是什麼。然後打開進入點的檔案（通常會命名成 app 或 main），通常有幾個點需要注意：「套件的載入順序」會建議從第三方套件 → 自定義的模組 → 程式內的變數這樣順序定義；「善用 MVC 的架構」將非主程式的部分依照功能拆分模組，避免檔案資訊量太雜亂。接著就會從 Router → Controller → Service → View 的流程一個一個功能，以下分享一些存在優化空間的程式碼： 善用工具，已有的工具，不用自己手刻 變數名稱不建議用大寫開頭（通常是用在 Class 的命名） 保持優化的空間與彈性 「優化其實是一種取捨」，不需要也不應該追求一步到位。開發往往都是在品質跟產出做取捨，初期可以把開發目標放在「先求可以動，再求持續優化」的節奏上。新手需要在意的點有幾下兩點： 很容易把重點全部放在程式碼的產出上而忽略的程式碼的品質。 停留在做出成果的喜悅，而停滯了優化的步調。 因此，會建議在開發當下就「多想」兩秒鐘，感覺可優化但來不及的部分先在旁邊加個註解提醒自己。另外也養成一段時間回頭看之前的程式碼的習慣，試著刻意找出可以優化改進的部分。專案的提交可能會有期限，但程式碼的優化沒有盡頭。面對相同的專案與程式碼，唯有透過不停的迭代優化才能打造更好的程式，同時也見證了你和程式一起變得更好的過程。所以建立逐步優化的空間，養成持續提升程式碼品質的習慣，才是一個新手工程師需要修煉的心法。 \",\"date\":\"2021-03-04\",\"objectID\":\"/posts/codereview/:3:0\",\"tags\":[\"codereview\"],\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"uri\":\"/posts/codereview/#從架構的規劃到細節的優化\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"17 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！ 自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下； 三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！ \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:1:0\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#起因\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"18 經過 作為一個程序猿，怎麼能接受這麼麻煩的記賬方式呢，拿起筆就開始畫，於是有了下面這張圖的公式。簡單說明一下就是： 設前面說的四種組合為：X1, X2, X3, X4，個人實際付款總額為：Y1, Y2, Y3，那麼帶入未知數，我們就可以算出每個人最後結算時的錢：S1, S2, S3， 綜上所述，很好理解，當 S \\u0026gt;= 0 時，收紅包，當 S \\u0026lt; 0 時，發紅包。 OK，一個簡單的初中方程式已經到位了，下一步，思考一下，用什麼來運作這個這個方程。來，先跑個題，春節期間，不是每天都要在騰訊文檔上填表記錄活動軌跡嗎？再回來，那不如就用 excel 實現吧，三個人都可以在手機上編輯。好的，說做就做。 一頓操作，10 minutes later\\u0026hellip; 只新建了一個 excel 文件，O.o! 不會 excel，果斷放棄，另尋他路。 \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:2:0\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#經過\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19 結果 回到本職，那不如寫個網站吧，可是畢業後，學生機服務器也過期了，怎麼搞？那就寫個純前端的，數據呢存哪裡？ 別急，重新擼一擼需求先： 存取消費數據 計算每月，實付（總分），應付以及最後計算結算金額 按月查詢，月結賬單 三人皆可編輯 主要就是存取數據這點，沒有服務器，數據庫怎麼實現？ valine 可以實現無後端，那我是不是也可以，leancloud 文檔走一波，然後“數據表”設計一下，其實是 leancloud-storage Object，於是有了以下東西，源碼放在 Github bill-note github.com/Lruihao/bill-note \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:0\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#結果\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.1 數據設計 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段： name type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:1\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#數據設計\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.2 主要邏輯 19.2.1 初始化 set for yourself. AV.init({ appId: \\u0026#39;\\u0026#39;, appKey: \\u0026#39;\\u0026#39;, serverURL: \\u0026#39;\\u0026#39; }); 19.2.2 存數據 //記賬提交按鈕事件監聽 document.querySelector(\\u0026#39;.submit\\u0026#39;).addEventListener(\\u0026#39;click\\u0026#39;, function (event) { event.preventDefault(); let formPay = document.querySelector(\\u0026#39;#form-pay\\u0026#39;); let bill = new AV.Object(\\u0026#39;Bill\\u0026#39;); bill.set(\\u0026#39;pay\\u0026#39;, Number(formPay.pay.value)); bill.set(\\u0026#39;pay_type\\u0026#39;, Number(formPay.pay_type.value)); bill.set(\\u0026#39;pay_user\\u0026#39;, Number(formPay.pay_user.value)); bill.set(\\u0026#39;pay_description\\u0026#39;, formPay.pay_description.value); bill.save().then( (object) =\\u0026gt; { formPay.reset(); }, function (error) { console.log(JSON.stringify(error)); alert(\\u0026#39;保存失敗\\u0026#39;); } ); }); 19.2.3 取數據 /** * 獲取歷史消費記錄數據 * @param [start=0] 開始位置 * @param [count=15] 每次查詢筆數 */ function getBillData(start = 0, count = 15) { queryBill .descending(\\u0026#39;createdAt\\u0026#39;) .skip(start * count) .limit(count) .find() .then(function (response) { let billLength = response.length; if (billLength \\u0026gt; 0) { billVm.noMore = billLength !== count ? true : false; for (bill of response) { billVm.bills.push({ pay: bill.attributes.pay, payType: payType[bill.attributes.pay_type], payUser: payUser[bill.attributes.pay_user], payDescription: bill.attributes.pay_description, payDt: new Date(bill.createdAt).toLocaleString() }); } } else { billVm.noMore = true; } }); } /** * 獲取月賬單數據 * @param month 年月份 fmt: yyyy-MM */ function getMonthBill(month) { let dateTime = `${month} 00:00:00`; let startMonth = new Date(dateTime); let nextMonth = new Date(new Date(dateTime).setMonth(startMonth.getMonth() + 1)); let startDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); startDateQuery.greaterThanOrEqualTo(\\u0026#39;createdAt\\u0026#39;, startMonth); let endDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); endDateQuery.lessThan(\\u0026#39;createdAt\\u0026#39;, nextMonth); let MonthBillQuery = AV.Query.and(startDateQuery, endDateQuery); MonthBillQuery.find().then(function (response) { billVm.monthBill = { payType0: 0, payType1: 0, payType2: 0, payType3: 0, payUser0: 0, payUser1: 0, payUser2: 0 }; for (bill of response) { let { pay, pay_type, pay_user } = bill.attributes; billVm.monthBill[`payType${pay_type}`] += pay; billVm.monthBill[`payUser${pay_user}`] += pay; } }); } \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:2\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#主要邏輯\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.2 主要邏輯 19.2.1 初始化 set for yourself. AV.init({ appId: \\u0026#39;\\u0026#39;, appKey: \\u0026#39;\\u0026#39;, serverURL: \\u0026#39;\\u0026#39; }); 19.2.2 存數據 //記賬提交按鈕事件監聽 document.querySelector(\\u0026#39;.submit\\u0026#39;).addEventListener(\\u0026#39;click\\u0026#39;, function (event) { event.preventDefault(); let formPay = document.querySelector(\\u0026#39;#form-pay\\u0026#39;); let bill = new AV.Object(\\u0026#39;Bill\\u0026#39;); bill.set(\\u0026#39;pay\\u0026#39;, Number(formPay.pay.value)); bill.set(\\u0026#39;pay_type\\u0026#39;, Number(formPay.pay_type.value)); bill.set(\\u0026#39;pay_user\\u0026#39;, Number(formPay.pay_user.value)); bill.set(\\u0026#39;pay_description\\u0026#39;, formPay.pay_description.value); bill.save().then( (object) =\\u0026gt; { formPay.reset(); }, function (error) { console.log(JSON.stringify(error)); alert(\\u0026#39;保存失敗\\u0026#39;); } ); }); 19.2.3 取數據 /** * 獲取歷史消費記錄數據 * @param [start=0] 開始位置 * @param [count=15] 每次查詢筆數 */ function getBillData(start = 0, count = 15) { queryBill .descending(\\u0026#39;createdAt\\u0026#39;) .skip(start * count) .limit(count) .find() .then(function (response) { let billLength = response.length; if (billLength \\u0026gt; 0) { billVm.noMore = billLength !== count ? true : false; for (bill of response) { billVm.bills.push({ pay: bill.attributes.pay, payType: payType[bill.attributes.pay_type], payUser: payUser[bill.attributes.pay_user], payDescription: bill.attributes.pay_description, payDt: new Date(bill.createdAt).toLocaleString() }); } } else { billVm.noMore = true; } }); } /** * 獲取月賬單數據 * @param month 年月份 fmt: yyyy-MM */ function getMonthBill(month) { let dateTime = `${month} 00:00:00`; let startMonth = new Date(dateTime); let nextMonth = new Date(new Date(dateTime).setMonth(startMonth.getMonth() + 1)); let startDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); startDateQuery.greaterThanOrEqualTo(\\u0026#39;createdAt\\u0026#39;, startMonth); let endDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); endDateQuery.lessThan(\\u0026#39;createdAt\\u0026#39;, nextMonth); let MonthBillQuery = AV.Query.and(startDateQuery, endDateQuery); MonthBillQuery.find().then(function (response) { billVm.monthBill = { payType0: 0, payType1: 0, payType2: 0, payType3: 0, payUser0: 0, payUser1: 0, payUser2: 0 }; for (bill of response) { let { pay, pay_type, pay_user } = bill.attributes; billVm.monthBill[`payType${pay_type}`] += pay; billVm.monthBill[`payUser${pay_user}`] += pay; } }); } \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:2\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#初始化\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.2 主要邏輯 19.2.1 初始化 set for yourself. AV.init({ appId: \\u0026#39;\\u0026#39;, appKey: \\u0026#39;\\u0026#39;, serverURL: \\u0026#39;\\u0026#39; }); 19.2.2 存數據 //記賬提交按鈕事件監聽 document.querySelector(\\u0026#39;.submit\\u0026#39;).addEventListener(\\u0026#39;click\\u0026#39;, function (event) { event.preventDefault(); let formPay = document.querySelector(\\u0026#39;#form-pay\\u0026#39;); let bill = new AV.Object(\\u0026#39;Bill\\u0026#39;); bill.set(\\u0026#39;pay\\u0026#39;, Number(formPay.pay.value)); bill.set(\\u0026#39;pay_type\\u0026#39;, Number(formPay.pay_type.value)); bill.set(\\u0026#39;pay_user\\u0026#39;, Number(formPay.pay_user.value)); bill.set(\\u0026#39;pay_description\\u0026#39;, formPay.pay_description.value); bill.save().then( (object) =\\u0026gt; { formPay.reset(); }, function (error) { console.log(JSON.stringify(error)); alert(\\u0026#39;保存失敗\\u0026#39;); } ); }); 19.2.3 取數據 /** * 獲取歷史消費記錄數據 * @param [start=0] 開始位置 * @param [count=15] 每次查詢筆數 */ function getBillData(start = 0, count = 15) { queryBill .descending(\\u0026#39;createdAt\\u0026#39;) .skip(start * count) .limit(count) .find() .then(function (response) { let billLength = response.length; if (billLength \\u0026gt; 0) { billVm.noMore = billLength !== count ? true : false; for (bill of response) { billVm.bills.push({ pay: bill.attributes.pay, payType: payType[bill.attributes.pay_type], payUser: payUser[bill.attributes.pay_user], payDescription: bill.attributes.pay_description, payDt: new Date(bill.createdAt).toLocaleString() }); } } else { billVm.noMore = true; } }); } /** * 獲取月賬單數據 * @param month 年月份 fmt: yyyy-MM */ function getMonthBill(month) { let dateTime = `${month} 00:00:00`; let startMonth = new Date(dateTime); let nextMonth = new Date(new Date(dateTime).setMonth(startMonth.getMonth() + 1)); let startDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); startDateQuery.greaterThanOrEqualTo(\\u0026#39;createdAt\\u0026#39;, startMonth); let endDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); endDateQuery.lessThan(\\u0026#39;createdAt\\u0026#39;, nextMonth); let MonthBillQuery = AV.Query.and(startDateQuery, endDateQuery); MonthBillQuery.find().then(function (response) { billVm.monthBill = { payType0: 0, payType1: 0, payType2: 0, payType3: 0, payUser0: 0, payUser1: 0, payUser2: 0 }; for (bill of response) { let { pay, pay_type, pay_user } = bill.attributes; billVm.monthBill[`payType${pay_type}`] += pay; billVm.monthBill[`payUser${pay_user}`] += pay; } }); } \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:2\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#存數據\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.2 主要邏輯 19.2.1 初始化 set for yourself. AV.init({ appId: \\u0026#39;\\u0026#39;, appKey: \\u0026#39;\\u0026#39;, serverURL: \\u0026#39;\\u0026#39; }); 19.2.2 存數據 //記賬提交按鈕事件監聽 document.querySelector(\\u0026#39;.submit\\u0026#39;).addEventListener(\\u0026#39;click\\u0026#39;, function (event) { event.preventDefault(); let formPay = document.querySelector(\\u0026#39;#form-pay\\u0026#39;); let bill = new AV.Object(\\u0026#39;Bill\\u0026#39;); bill.set(\\u0026#39;pay\\u0026#39;, Number(formPay.pay.value)); bill.set(\\u0026#39;pay_type\\u0026#39;, Number(formPay.pay_type.value)); bill.set(\\u0026#39;pay_user\\u0026#39;, Number(formPay.pay_user.value)); bill.set(\\u0026#39;pay_description\\u0026#39;, formPay.pay_description.value); bill.save().then( (object) =\\u0026gt; { formPay.reset(); }, function (error) { console.log(JSON.stringify(error)); alert(\\u0026#39;保存失敗\\u0026#39;); } ); }); 19.2.3 取數據 /** * 獲取歷史消費記錄數據 * @param [start=0] 開始位置 * @param [count=15] 每次查詢筆數 */ function getBillData(start = 0, count = 15) { queryBill .descending(\\u0026#39;createdAt\\u0026#39;) .skip(start * count) .limit(count) .find() .then(function (response) { let billLength = response.length; if (billLength \\u0026gt; 0) { billVm.noMore = billLength !== count ? true : false; for (bill of response) { billVm.bills.push({ pay: bill.attributes.pay, payType: payType[bill.attributes.pay_type], payUser: payUser[bill.attributes.pay_user], payDescription: bill.attributes.pay_description, payDt: new Date(bill.createdAt).toLocaleString() }); } } else { billVm.noMore = true; } }); } /** * 獲取月賬單數據 * @param month 年月份 fmt: yyyy-MM */ function getMonthBill(month) { let dateTime = `${month} 00:00:00`; let startMonth = new Date(dateTime); let nextMonth = new Date(new Date(dateTime).setMonth(startMonth.getMonth() + 1)); let startDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); startDateQuery.greaterThanOrEqualTo(\\u0026#39;createdAt\\u0026#39;, startMonth); let endDateQuery = new AV.Query(\\u0026#39;Bill\\u0026#39;); endDateQuery.lessThan(\\u0026#39;createdAt\\u0026#39;, nextMonth); let MonthBillQuery = AV.Query.and(startDateQuery, endDateQuery); MonthBillQuery.find().then(function (response) { billVm.monthBill = { payType0: 0, payType1: 0, payType2: 0, payType3: 0, payUser0: 0, payUser1: 0, payUser2: 0 }; for (bill of response) { let { pay, pay_type, pay_user } = bill.attributes; billVm.monthBill[`payType${pay_type}`] += pay; billVm.monthBill[`payUser${pay_user}`] += pay; } }); } \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:2\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#取數據\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"19.3 技術棧 leancloud-storage Vue.js HTML,CSS,JS \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:3:3\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#技術棧\"},{\"categories\":[\"瞎折腾\"],\"collections\":[\"project\"],\"content\":\"20 總結 簡單總結一下，登录功能不做，安不安全自己说了算。删除修改功能也不做，直接上 leancloud 操作，css 美化的样式也不写，干净又卫生！ 然后衍生一下，什么过年斗地主，天炸，麻将，字牌记账系统那不也是同理可得嘛！ over! Demo \",\"date\":\"2021-03-02\",\"objectID\":\"/projects/bill-note/:4:0\",\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/bill-note/#總結\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/bill note: 基于 leancloud-storage 实现的无后端记账本\",\"date\":\"2021-02-28\",\"objectID\":\"/projects/lruihao/bill-note/\",\"tags\":[\"vue\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/lruihao/bill-note/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段： name type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 \",\"date\":\"2021-02-28\",\"objectID\":\"/projects/lruihao/bill-note/:1:0\",\"tags\":[\"vue\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/lruihao/bill-note/#preparation data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Init set for yourself. AV.init({ appId: \\u0026#39;\\u0026#39;, appKey: \\u0026#39;\\u0026#39;, serverURL: \\u0026#39;\\u0026#39; }); \",\"date\":\"2021-02-28\",\"objectID\":\"/projects/lruihao/bill-note/:2:0\",\"tags\":[\"vue\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/lruihao/bill-note/#init data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Push push the bill-note/docs to web server. \",\"date\":\"2021-02-28\",\"objectID\":\"/projects/lruihao/bill-note/:3:0\",\"tags\":[\"vue\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/lruihao/bill-note/#push data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"技术栈 leancloud-storage Vue.js HTML, CSS, JS \",\"date\":\"2021-02-28\",\"objectID\":\"/projects/lruihao/bill-note/:4:0\",\"tags\":[\"vue\"],\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"uri\":\"/projects/lruihao/bill-note/#技术栈 data-decreased\"},{\"categories\":[\"PHP\"],\"collections\":[\"project\"],\"content\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。 \",\"date\":\"2020-07-25\",\"objectID\":\"/projects/cell-blog/:0:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 功能介绍与安装\",\"uri\":\"/projects/cell-blog/#\"},{\"categories\":[\"PHP\"],\"collections\":[\"project\"],\"content\":\"17 功能 支持 Markdown, 文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理（发布，评论开关，排序） 自定义导航（显示开关，排序） 自定义页面（发布开关） 友情链接（显示开关，排序） COS 桶相册 丰富的博客配置（方便扩展，支持自定义 JS 脚本） 不蒜子计数 Leancloud 计数 Valine 评论插件 文章分享插件 \",\"date\":\"2020-07-25\",\"objectID\":\"/projects/cell-blog/:1:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 功能介绍与安装\",\"uri\":\"/projects/cell-blog/#功能\"},{\"categories\":[\"PHP\"],\"collections\":[\"project\"],\"content\":\"18 截图 \",\"date\":\"2020-07-25\",\"objectID\":\"/projects/cell-blog/:2:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 功能介绍与安装\",\"uri\":\"/projects/cell-blog/#截图\"},{\"categories\":[\"PHP\"],\"collections\":[\"project\"],\"content\":\"19 安装 注意事项：PHP 取消禁用函数putenv()和symlink()，安装fileinfo扩展。 下载 git clone https://github.com/Lruihao/cell-blog.git 进入站点 cd cell-blog 生成。env cp .env.example .env 编辑。env 环境配置 APP_URL=http://localhost #使用本地文件系统存储文件时，必须填写正确地址 APP_DEBUG=false #关闭调试 DB_HOST= #数据库地址 DB_PORT=3306 #数据库端口 DB_DATABASE= #数据库名称 DB_USERNAME= #数据库用户 DB_PASSWORD= #数据库密码 打开app\\\\Providers\\\\AppServiceProvider.php, 注释SystemController:load() 防止后续步骤报错 public function boot() { Schema::defaultStringLength(191); //SystemController::load(); } 安装项目依赖 composer install 生成 key php artisan key:generate 运行数据迁移和后台数据填充 php artisan admin:install已包含数据迁移命令php artisan migrate G:\\\\cell-blog\\\\app\\\\Admin directory already exists !无需理会，继续执行剩下命令即可。 php artisan admin:install php artisan admin:import media-manager php artisan db:seed 默认下使用了本地文件系统，创建 storage 目录在 public 的软链接 php artisan storage:link 打开app\\\\Providers\\\\AppServiceProvider.php, 取消注释SystemController:load() public function boot() { Schema::defaultStringLength(191); SystemController::load(); } 将博客网站根目录指向入口 public 目录 如果使用 Nginx，要设置伪静态 location / { try_files $uri $uri/ /index.php?$query_string; } 启动服务后，在浏览器打开http://localhost/admin/, 使用用户名admin和密码admin登录。 \",\"date\":\"2020-07-25\",\"objectID\":\"/projects/cell-blog/:3:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 功能介绍与安装\",\"uri\":\"/projects/cell-blog/#安装\"},{\"categories\":[\"PHP\"],\"collections\":[\"project\"],\"content\":\"20 License Cell Blog is open-sourced software licensed under the MIT license. \",\"date\":\"2020-07-25\",\"objectID\":\"/projects/cell-blog/:4:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 功能介绍与安装\",\"uri\":\"/projects/cell-blog/#license\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" Cell Blog 开发记录，项目地址 \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:0:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"73 搭建 php 环境 安装 wampserver 安装 composer 更换 aliyun 源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:1:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#搭建-php-环境\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"74 新建 laravel 项目 composer create-project --prefer-dist laravel/laravel cell-blog \\u0026#34;7.*\\u0026#34; 或者 composer global require laravel/installer laravel new blog \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:2:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#新建-laravel-项目\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"75 下载 debugbar composer require barryvdh/laravel-debugbar --dev \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:3:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#下载-debugbar\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"76 修改语言时区 修改 config/app.php，将 local 的值 en 改成 zh-CN(laravel-admin 自带 zh-CN)： ## 时区 \\u0026#39;timezone\\u0026#39; =\\u0026gt; \\u0026#39;Asia/Shanghai\\u0026#39;, ## 语言 \\u0026#39;locale\\u0026#39; =\\u0026gt; \\u0026#39;zh-CN\\u0026#39;, \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:4:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#修改语言时区\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"77 配置数据库 首先确保安装好了 laravel，并且数据库连接设置正确。 APP_URL=http://cell.blog DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3307 DB_DATABASE=cell_blog DB_USERNAME=root DB_PASSWORD=123456 \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:5:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#配置数据库\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"78 下载 laravel-admin cd cell-blog composer require encore/laravel-admin 卸载命令composer remove xxx 然后运行下面的命令来发布资源： php artisan vendor:publish --provider=\\u0026#34;Encore\\\\Admin\\\\AdminServiceProvider\\u0026#34; 在该命令会生成配置文件config/admin.php，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。 然后运行下面的命令完成安装： php artisan admin:install 运行这个命令的时候，如果遇到了下面的错误： SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter tableusersadd uniqueusers_email_unique(email)) 参考这个 issue 来解决 https://github.com/z-song/laravel-admin/issues/1541 在app\\\\Providers\\\\AppServiceProvider.php添加默认值 \\u0026lt;?php namespace App\\\\Providers; use Illuminate\\\\Support\\\\ServiceProvider; use Illuminate\\\\Support\\\\Facades\\\\Schema; //add fixed sql class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); //add fixed sql } /** * Register any application services. * * @return void */ public function register() { // } } 启动服务后，在浏览器打开 http://localhost/admin/ , 使用用户名 admin 和密码 admin 登录。 报错Disk [admin] not configured, please add a disk config in config/filesystems.php 在config/filesystems.php中 disks 处添加以下配置后执行php artisan storage:link来创建软链接（windows 和 linux 的软链接不一样不能直接复制！） 宝塔执行时删除禁用函数 putenv(),symlink() \\u0026#39;admin\\u0026#39; =\\u0026gt; [ \\u0026#39;driver\\u0026#39; =\\u0026gt; \\u0026#39;local\\u0026#39;, \\u0026#39;root\\u0026#39; =\\u0026gt; storage_path(\\u0026#39;app/public/system\\u0026#39;), \\u0026#39;url\\u0026#39; =\\u0026gt; env(\\u0026#39;APP_URL\\u0026#39;).\\u0026#39;/storage/system\\u0026#39;, \\u0026#39;visibility\\u0026#39; =\\u0026gt; \\u0026#39;public\\u0026#39;, ], 或 \\u0026#39;admin\\u0026#39; =\\u0026gt; [ \\u0026#39;driver\\u0026#39; =\\u0026gt; \\u0026#39;local\\u0026#39;, \\u0026#39;root\\u0026#39; =\\u0026gt; public_path(\\u0026#39;uploads\\u0026#39;), \\u0026#39;url\\u0026#39; =\\u0026gt; env(\\u0026#39;APP_URL\\u0026#39;).\\u0026#39;/public/uploads/\\u0026#39;, \\u0026#39;visibility\\u0026#39; =\\u0026gt; \\u0026#39;public\\u0026#39;, ], \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:6:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#下载-laravel-admin\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"79 下载 dcat-admin composer require dcat/laravel-admin 然后运行下面的命令来发布资源： php artisan admin:publish 在该命令会生成配置文件config/admin.php，可以在里面修改安装的地址、数据库连接、以及表名，建议都是用默认配置不修改。 然后运行下面的命令完成安装： php artisan admin:install \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:7:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#下载-dcat-admin\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"80 迁移文件创建表 php artisan make:migration create_articles_table php artisan make:migration create_tags_table php artisan make:migration create_categories_table php artisan make:migration create_article_tags_table php artisan make:migration create_navigations_table php artisan make:migration create_friendship_links_table php artisan make:migration create_pages_table php artisan make:migration create_systems_table php artisan make:migration create_mottoes_table 运行迁移 php artisan migrate \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:8:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#迁移文件创建表\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"81 创建模型 model php artisan make:model Models/Article php artisan make:model Models/Category php artisan make:model Models/Tag php artisan make:model Models/Navigation php artisan make:model Models/FriendshipLink php artisan make:model Models/Page php artisan make:model Models/System php artisan make:model Models/Motto \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:9:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#创建模型-model\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"82 创建控制器 php artisan admin:make ArticleController --model=App\\\\Models\\\\Article php artisan admin:make CategoryController --model=App\\\\Models\\\\Category php artisan admin:make TagController --model=App\\\\Models\\\\Tag php artisan admin:make NavigationController --model=App\\\\Models\\\\Navigation php artisan admin:make FriendshipLinkController --model=App\\\\Models\\\\FriendshipLink php artisan admin:make PageController --model=App\\\\Models\\\\Page php artisan admin:make SystemController --model=App\\\\Models\\\\System php artisan admin:make MottoController --model=App\\\\Models\\\\Motto \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:10:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#创建控制器\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"83 添加后台路由 app/Admin/routes.php $router-\\u0026gt;resource(\\u0026#39;articles\\u0026#39;, ArticleController::class); $router-\\u0026gt;resource(\\u0026#39;categories\\u0026#39;, CategoryController::class); $router-\\u0026gt;resource(\\u0026#39;tags\\u0026#39;, TagController::class); $router-\\u0026gt;resource(\\u0026#39;navigations\\u0026#39;, NavigationController::class); $router-\\u0026gt;resource(\\u0026#39;friendship-links\\u0026#39;, FriendshipLinkController::class); $router-\\u0026gt;resource(\\u0026#39;pages\\u0026#39;, PageController::class); $router-\\u0026gt;resource(\\u0026#39;systems\\u0026#39;, SystemController::class); $router-\\u0026gt;resource(\\u0026#39;mottoes\\u0026#39;, MottoController::class); \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:11:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#添加后台路由\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"84 editormd 安装 editormd github 图像问题 \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:12:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#editormd-安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"84.1 存放本地表情 public\\\\vendor\\\\laravel-admin-ext\\\\editormd\\\\editormd-1.5.0\\\\images\\\\emojis 修改 editormd.js 及 editormd.min.js // Emoji graphics files url path editormd.emoji = { path : \\u0026#34;/iamges/emojis/\\u0026#34;, ext : \\u0026#34;.png\\u0026#34; }; \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:12:1\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#存放本地表情\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"84.2 图片上传 84.2.1 csrf 419 错误 可以在VerifyCsrfToken.php中添加白名单跳过验证，或者手动添加 csrf 验证器： 修改 image-dialog.js 的var dialogContent 参考 if (settings.crossDomainUpload) { action += \\u0026#34;\\u0026amp;callback=\\u0026#34; + settings.uploadCallbackURL + \\u0026#34;\\u0026amp;dialog_id=editormd-image-dialog-\\u0026#34; + guid; } //添加 csrf 验证 var csrfToken = $(\\u0026#39;meta[name=\\u0026#34;csrf-token\\u0026#34;]\\u0026#39;).attr(\\u0026#39;content\\u0026#39;); var csrfField = \\u0026#34;\\u0026#34;; if (csrfToken) { csrfField = \\u0026#34;\\u0026lt;input type=\\u0026#39;hidden\\u0026#39; name=\\u0026#39;_token\\u0026#39; value=\\u0026#39;\\u0026#34; + csrfToken + \\u0026#34;\\u0026#39; /\\u0026gt;\\u0026#34;; } \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:12:2\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#图片上传\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"84.2 图片上传 84.2.1 csrf 419 错误 可以在VerifyCsrfToken.php中添加白名单跳过验证，或者手动添加 csrf 验证器： 修改 image-dialog.js 的var dialogContent 参考 if (settings.crossDomainUpload) { action += \\u0026#34;\\u0026amp;callback=\\u0026#34; + settings.uploadCallbackURL + \\u0026#34;\\u0026amp;dialog_id=editormd-image-dialog-\\u0026#34; + guid; } //添加 csrf 验证 var csrfToken = $(\\u0026#39;meta[name=\\u0026#34;csrf-token\\u0026#34;]\\u0026#39;).attr(\\u0026#39;content\\u0026#39;); var csrfField = \\u0026#34;\\u0026#34;; if (csrfToken) { csrfField = \\u0026#34;\\u0026lt;input type=\\u0026#39;hidden\\u0026#39; name=\\u0026#39;_token\\u0026#39; value=\\u0026#39;\\u0026#34; + csrfToken + \\u0026#34;\\u0026#39; /\\u0026gt;\\u0026#34;; } \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:12:2\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#csrf-419-错误\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"85 markdown 转 HTML https://www.zhiqiexing.com/119.html Laravel Markdown 安装 composer require graham-campbell/markdown php artisan vendor:publish 扩展表格 composer require league/commonmark config/markdown.php \\u0026#39;extensions\\u0026#39; =\\u0026gt; [ League\\\\CommonMark\\\\Extension\\\\TaskList\\\\TaskListExtension::class, ], \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:13:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#markdown-转-html\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"86 Eloquent 模型事件 Eloquent 模型可以触发事件，允许你在模型生命周期中的多个时间点调用如下这些方法：retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored。事件允许你在一个指定模型类每次保存或更新的时候执行代码。 retrieved 事件会在从数据库中获取已存在模型时触发。当一个新模型被首次保存的时候，creating 和 created 事件会被触发。如果一个模型已经在数据库中存在并调用 save 方法，updating/updated 事件会被触发，无论是创建还是更新，saving/saved 事件都会被触发。 \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:14:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#eloquent-模型事件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"87 添加后台验证码 依赖 php 扩展fileinfo 添加验证码 \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:15:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#添加后台验证码\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"88 Media manager composer require laravel-admin-ext/media-manager php artisan admin:import media-manager \\u0026rsquo;extensions\\u0026rsquo; =\\u0026gt; [ \\u0026lsquo;media-manager\\u0026rsquo; =\\u0026gt; [ // Select a local disk that you configured in config/filesystem.php \\u0026lsquo;disk\\u0026rsquo; =\\u0026gt; \\u0026lsquo;public\\u0026rsquo; ], ], ## 给 laravel-admin 增加锁屏功能 composer require laravel-admin-ext/lock-screen \\u0026#39;route\\u0026#39; =\\u0026gt; [ \\u0026#39;prefix\\u0026#39; =\\u0026gt; \\u0026#39;demo\\u0026#39;, \\u0026#39;namespace\\u0026#39; =\\u0026gt; \\u0026#39;App\\\\\\\\Admin\\\\\\\\Controllers\\u0026#39;, // 在中间件数组中加上\\u0026#39;admin.lock\\u0026#39; \\u0026#39;middleware\\u0026#39; =\\u0026gt; [\\u0026#39;web\\u0026#39;, \\u0026#39;admin\\u0026#39;, \\u0026#39;admin.lock\\u0026#39;], ], \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:16:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#media-manager\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"89 前台设计 创建控制器 php artisan make:controller HomeController php artisan make:controller ArticleController php artisan make:controller CategoryController php artisan make:controller TagController php artisan make:controller PageController \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:17:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#前台设计\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"90 后台 img 灯箱 https://github.com/laravel-admin-extensions/grid-lightbox composer require laravel-admin-ext/grid-lightbox php artisan vendor:publish --tag=laravel-admin-grid-lightbox \",\"date\":\"2020-07-25\",\"objectID\":\"/posts/cell-blog-dev/:18:0\",\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"title\":\"cell-blog 开发记录\",\"uri\":\"/posts/cell-blog-dev/#后台-img-灯箱\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/cell blog: 基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。 \",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/:0:0\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 \",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/:1:0\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/#功能\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"截图 \",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/:2:0\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/#截图\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"安装 注意事项：PHP取消禁用函数putenv()和symlink()，安装fileinfo扩展。 下载 git clone https://github.com/Lruihao/cell-blog.git 进入站点 cd cell-blog 生成.env cp .env.example .env 编辑.env环境配置 APP_URL=http://localhost ##使用本地文件系统存储文件时，必须填写正确地址 APP_DEBUG=false ##关闭调试 DB_HOST= ##数据库地址 DB_PORT=3306 ##数据库端口 DB_DATABASE= ##数据库名称 DB_USERNAME= ##数据库用户 DB_PASSWORD= ##数据库密码 打开app\\\\Providers\\\\AppServiceProvider.php,注释SystemController:load() 防止后续步骤报错 public function boot() { Schema::defaultStringLength(191); //SystemController::load(); } 安装项目依赖 composer install 生成key php artisan key:generate 运行数据迁移和后台数据填充 php artisan admin:install已包含数据迁移命令php artisan migrate G:\\\\cell-blog\\\\app\\\\Admin directory already exists !无需理会，继续执行剩下命令即可。 php artisan admin:install php artisan admin:import media-manager php artisan db:seed 默认下使用了本地文件系统，创建storage目录在public的软链接 php artisan storage:link 打开app\\\\Providers\\\\AppServiceProvider.php,取消注释SystemController:load() public function boot() { Schema::defaultStringLength(191); SystemController::load(); } 将博客网站根目录指向入口public目录 如果使用Nginx，要设置伪静态 location / { try_files $uri $uri/ /index.php?$query_string; } 启动服务后，在浏览器打开http://localhost/admin/,使用用户名admin和密码admin登录. \",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/:3:0\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/#安装\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"License Cell Blog is open-sourced software licensed under the MIT license. \",\"date\":\"2020-04-17\",\"objectID\":\"/projects/lruihao/cell-blog/:4:0\",\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"uri\":\"/projects/lruihao/cell-blog/#license\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~ 直接丢代码，把代码挂到服务器上可以策马奔腾~，也可以生成二进制文件放到 Windows 桌面上随时使用~ 打包 exe 参考 #!/usr/bin/python # -*- coding: utf-8 -*- __author__ = \\u0026#39;lruihao.cn\\u0026#39; import urllib.request import re import time from bs4 import BeautifulSoup opener = urllib.request.build_opener() opener.addheaders = [(\\u0026#39;User-agent\\u0026#39;, \\u0026#39;Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36\\u0026#39;)] def get_article_url(page,name): endurl = \\u0026#34;/\\u0026#34;+name+\\u0026#34;/article/details/........\\u0026#34; print(name) p = re.compile(endurl) url = \\u0026#34;http://blog.csdn.net/\\u0026#34;+name+\\u0026#34;/article/list/\\u0026#34;+str(page) # 使用 build_opener() 是为了让 python 程序模仿浏览器进行访问 html = opener.open(url).read().decode(\\u0026#39;utf-8\\u0026#39;) allfinds = p.findall(html) return allfinds #print(\\u0026#39;allfinds\\u0026#39;,allfinds) def start_do(allfinds): urlBase = \\u0026#34;http://blog.csdn.net\\u0026#34; # 需要将网址合并的部分 # 页面中的网址有重复的，需要使用 set 进行去重复 mypages = list(set(allfinds)) for i in range(len(mypages)): mypages[i] = urlBase + mypages[i] print(\\u0026#39;要刷的网页有：\\u0026#39;) for index, page in enumerate(mypages): print(str(index), page) # 设置每个网页要刷的次数 brushNum = 1 # 所有的页面都刷 print(\\u0026#39;下面开始刷了哦：\\u0026#39;) for index, page in enumerate(mypages): for j in range(brushNum): try: pageContent = opener.open(page).read().decode(\\u0026#39;utf-8\\u0026#39;) # 使用 BeautifulSoup 解析每篇博客的标题 soup = BeautifulSoup(pageContent) blogTitle = str(soup.title.string) blogTitle = blogTitle[0:blogTitle.find(\\u0026#39;-\\u0026#39;)] print(str(j), blogTitle) except urllib.error.HTTPError: print(\\u0026#39;urllib.error.HTTPError\\u0026#39;) time.sleep(3) # 出现错误，停几秒先 except urllib.error.URLError: print(\\u0026#39;urllib.error.URLError\\u0026#39;) time.sleep(3) # 出现错误，停几秒先 time.sleep(0.5) # 正常停顿，以免服务器拒绝访问 def main(name): for page in range(1,5): print(\\u0026#34;************第\\u0026#34;+str(page)+\\u0026#34;页*************\\u0026#34;) endurl = get_article_url(page,name) start_do(endurl) if __name__ == \\u0026#39;__main__\\u0026#39;: name = input(\\u0026#34;输入你的 csdn 用户名：\\u0026#34;) if name==\\u0026#34;\\u0026#34;: name = \\u0026#34;qq_39520417\\u0026#34; #cheung99857 while 1: main(name) print(\\u0026#34;开始休息 ...\\u0026#34;) time.sleep(40) 主函数也可以这样写实现同时刷多人的访问量，人多可以适当减少休眠时间，当然有兴趣的可以尝试一下多线程~ if __name__ == \\u0026#39;__main__\\u0026#39;: # 多用户 names = [\\u0026#34;qq_39520417\\u0026#34;,\\u0026#34;cheung99857\\u0026#34;] while 1: for name in names: main(name) print(\\u0026#34;开始休息 ...\\u0026#34;) # 控制休眠时间相当于控制刷新的速度 time.sleep(30) \",\"date\":\"2020-03-26\",\"objectID\":\"/posts/csdnvisiter/:0:0\",\"tags\":[\"Python\"],\"title\":\"使用 Python 刷 csdn 访问量\",\"uri\":\"/posts/csdnvisiter/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"17 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt; Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/cron/:1:0\",\"tags\":[\"linux\",\"shell\",\"Cron\"],\"title\":\"Cron 表达式的基本语法\",\"uri\":\"/posts/cron/#基本语法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"18 域取值 位置 字段 约束 取值 可使用的特殊符号 1 秒 必须 0-59 , - * / 2 分钟 必须 0-59 , - * / 3 小时 必须 0-23（0 为午夜） , - * / 4 日期 必须 1-31 , - * ? / L W 5 月份 必须 1-12 或者 JAN-DEC , - * / 6 星期 必须 1-7 或者 SUN-SAT (1 代表星期一） , - ? / L # \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/cron/:2:0\",\"tags\":[\"linux\",\"shell\",\"Cron\"],\"title\":\"Cron 表达式的基本语法\",\"uri\":\"/posts/cron/#域取值\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"19 特殊符号 符号 含义 示例 * 所有可能的值。 在月域中，*表示每个月；在星期域中，*表示星期的每一天。 , 列出枚举值。 在分钟域中，5,20表示分别在 5 分钟和 20 分钟触发一次。 - 范围。 在分钟域中，5-20表示从 5 分钟到 20 分钟之间每隔一分钟触发一次。 / 指定数值的增量。 在分钟域中，0/15表示从第 0 分钟开始，每 15 分钟。在分钟域中3/20表示从第 3 分钟开始，每 20 分钟。*/ 和 0/ 相同 ? 不指定值，仅日期和星期域支持该字符。 当日期或星期域其中之一被指定了值以后，为了避免冲突，需要将另一个域的值设为?。 L 单词 Last 的首字母，表示最后一天，仅日期和星期域支持该字符。说明 指定L字符时，避免指定列表或者范围，否则，会导致逻辑问题。 在日期域中，L表示某个月的最后一天。在星期域中，L表示一个星期的最后一天，也就是星期日（SUN）。如果在L前有具体的内容，例如，在星期域中的6L表示这个月的最后一个星期六。 W 除周末以外的有效工作日，在离指定日期的最近的有效工作日触发事件。W字符寻找最近有效工作日时不会跨过当前月份，连用字符LW时表示为指定月份的最后一个工作日。 在日期域中5W，如果 5 日是星期六，则将在最近的工作日星期五，即 4 日触发。如果 5 日是星期天，则将在最近的工作日星期一，即 6 日触发；如果 5 日在星期一到星期五中的一天，则就在 5 日触发。 # 确定每个月第几个星期几，仅星期域支持该字符。 在星期域中，4#2表示某月的第二个星期四。 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/cron/:3:0\",\"tags\":[\"linux\",\"shell\",\"Cron\"],\"title\":\"Cron 表达式的基本语法\",\"uri\":\"/posts/cron/#特殊符号\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"20 举个栗子 🌰 表达式 说明 0 0/5 * * * ? 每隔 5 分钟执行一次 10 0/5 * * * ? 每隔 5 分钟执行一次，每次执行都在分钟开始的 10 秒，例如 10:00:10、10:05:10 等等。 0 30 10-13 ? * WED,FRI 每周三和每周五的 10:30、11:30、12:30、13:30 执行。 0 0/30 8-9 5,20 * ? 每个月的 5 号和 20 号的 8 点和 10 点之间每隔 30 分钟执行一次，也就是 8:00、8:30、9:00 和 9:30。 0 15 10 ? * * 每天上午 10:15 执行任务 0 15 10 * * ? 每天上午 10:15 执行任务 0 0 12 * * ? 每天中午 12:00 执行任务 0 0 10,14,16 * * ? 每天上午 10:00 点、下午 14:00 以及下午 16:00 执行任务 0 0/30 9-17 * * ? 每天上午 09:00 到下午 17:00 时间段内每隔半小时执行任务 0 * 14 * * ? 每天下午 14:00 到下午 14:59 时间段内每隔 1 分钟执行任务 0 0-5 14 * * ? 每天下午 14:00 到下午 14:05 时间段内每隔 1 分钟执行任务 0 0/5 14 * * ? 每天下午 14:00 到下午 14:55 时间段内每隔 5 分钟执行任务 0 0/5 14,18 * * ? 每天下午 14:00 到下午 14:55、下午 18:00 到下午 18:55 时间段内每隔 5 分钟执行任务 0 0 12 ? * WED 每个星期三中午 12:00 执行任务 0 15 10 15 * ? 每月 15 日上午 10:15 执行任务 0 15 10 L * ? 每月最后一日上午 10:15 执行任务 0 15 10 ? * 6L 每月最后一个星期六上午 10:15 执行任务 0 15 10 ? * 6#3 每月第三个星期六上午 10:15 执行任务 0 10,44 14 ? 3 WED 每年 3 月的每个星期三下午 14:10 和 14:44 执行任务 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/cron/:4:0\",\"tags\":[\"linux\",\"shell\",\"Cron\"],\"title\":\"Cron 表达式的基本语法\",\"uri\":\"/posts/cron/#举个栗子-\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip; 算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip; 哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip; 我和潇 X 巴哥确定思路后兵分两路： 他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:0:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"17 Windows 运行效果 打卡成功 重复打卡 定时任务日志 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:1:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#windows-运行效果\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"18 核心代码 适用湖南工程学院的打卡系统。 请勿滥用代码提交不实健康信息，隐瞒疫情将受到相关法律处理！ 完整代码 def lajaDaka(): # 登录 r1 = requests.post(login_url, data=login,headers=headers,verify=False) if r1.status_code == 200: print(time.strftime(\\u0026#34;%Y:%m:%d:%H:%M\\u0026#34;, time.localtime())) print(login[\\u0026#34;username\\u0026#34;] + \\u0026#34; 登录成功！\\u0026#34;) # 拿到登录后的 cookie 并添加到 header 中 header1 = r1.headers headers[\\u0026#34;Cookie\\u0026#34;] = header1[\\u0026#34;Set-Cookie\\u0026#34;] else: return # 打卡 r2 = requests.post(daka_url, data=daka,headers=headers,verify=False) response2=r2.json() if r2.status_code != 200: print(\\u0026#34;打卡失败！\\u0026#34;) return if response2[\\u0026#34;result\\u0026#34;] == True: print(\\u0026#34;打卡成功！\\u0026#34;) else: print(response2[\\u0026#34;errorInfoList\\u0026#34;][0][\\u0026#34;message\\u0026#34;]) if __name__==\\u0026#34;__main__\\u0026#34;: lajaDaka() \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:2:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#核心代码\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19 自动运行 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:3:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#自动运行\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19.1 Windows 适用 python 代码控制休眠时间 if __name__==\\u0026#34;__main__\\u0026#34;: while True: now_hour = time.strftime(\\u0026#34;%H\\u0026#34;, time.localtime()) now_min = time.strftime(\\u0026#34;%M\\u0026#34;, time.localtime()) # 设置每天 8 点发送 if now_hour \\u0026lt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 脚本将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后打卡\\u0026#34;) time.sleep(sleeptime) elif now_hour \\u0026gt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) + 24 sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 脚本将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后打卡\\u0026#34;) time.sleep(sleeptime) elif now_hour == \\u0026#34;08\\u0026#34;: print(\\u0026#34;软件明天开始将在每天 8 点发送数据！\\u0026#34;) lajaDaka() time.sleep(24*60*60-int(now_min)*60) \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:3:1\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#windows\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19.2 linux（云服务器） 搭建 python 环境下载依赖后，使用 shell 脚本定时执行。 python /home/python/yiban_daka/daka.py CRON 表达式的基本语法 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:3:2\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#linux云服务器\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"20 潇 x 巴哥的 java web 版本 符合程序员的应该有的简洁和方便，干净又卫生！ http://39.105.174.214/index.html java web 版 \",\"date\":\"2020-03-25\",\"objectID\":\"/posts/daka/:4:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"uri\":\"/posts/daka/#潇-x-巴哥的-java-web-版本\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\" SQL 增删改查 (CRUD) 语句与常用函数总结。 \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:0:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"33 SQL Introduction 一般我们对数据库的操作主要分为四种，增C(CREATE)、删D(DELETE)、改U(UPDATE)、查R(READ)，所以，我就从CRUD这四个方面来制作查询表。 开发规则： 尽量减少对数据库的访问次数，且不能查询无用的数据，浪费效能（例如：我只要男生的数据，你把所有人的数据都查询出来）。 属于SQL语法的要使用大写（SELECT, WHERE, INSERT etc\\u0026hellip;）。 属于使用者自己定义的要使用小写（表名、列名 etc\\u0026hellip;）。 表名与列名前后使用 ` 包起来，防止与关键字冲突（例如： INSERT INTO `user` VALUES(\\u0026lsquo;a\\u0026rsquo;,\\u0026lsquo;b\\u0026rsquo;); ）。 禁止使用 Table Join。 禁止使用 Oracle Trigger。 禁止使用 SELECT * （为了加强代码可读性）。 不能将查询数据库的 SQL 放在循环中查询。 \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:1:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#sql-introduction\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"34 新增（CREATE） 功能 语句 创建数据库 CREATE DATABASE \\u0026lt;数据库名\\u0026gt;; 创建数据表 CREATE TABLE \\u0026lt;表名\\u0026gt; (\\u0026lt;列名 1\\u0026gt; \\u0026lt;数据类型\\u0026gt; \\u0026lt;约束条件\\u0026gt;,\\u0026lt;列名 2\\u0026gt; \\u0026lt;数据类型\\u0026gt; \\u0026lt;约束条件\\u0026gt;,\\u0026lt;列名 3\\u0026gt; \\u0026lt;数据类型\\u0026gt; \\u0026lt;约束条件\\u0026gt;,......\\u0026lt;该表的的约束条件 1\\u0026gt;\\u0026lt;该表的的约束条件 2\\u0026gt;...); 插入数据 INSERT INTO \\u0026lt;表名\\u0026gt; （列名 1, 列名 2,...) VALUES （值 1, 值 2,...);（每列都有数据插入时，可省略列名。但是为了代码的可读性，不建议如此操作。） 增加列 ALTER TABLE \\u0026lt;表名\\u0026gt; ADD \\u0026lt;列名\\u0026gt; \\u0026lt;数据类型\\u0026gt; \\u0026lt;约束条件\\u0026gt; AFTER \\u0026lt;前一列列名\\u0026gt;;（默认插入到最后一列） \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:2:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#新增create\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"35 删除（DELETE） 功能 语句 删除数据库 DROP DATABASE \\u0026lt;数据库名\\u0026gt;; 删除数据表 DROP TABLE \\u0026lt;表名\\u0026gt;; 清空表数据 DELETE FROM \\u0026lt;表名\\u0026gt;; 或者 TRUNCATE TABLE \\u0026lt;表名\\u0026gt;; 删除行数据 DELETE FROM \\u0026lt;表名\\u0026gt; WHERE \\u0026lt;条件\\u0026gt;; 删除列数据 ALTER TABLE \\u0026lt;表名\\u0026gt; DROP \\u0026lt;列名\\u0026gt;; \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:3:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#删除delete\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"36 修改（UPDATE） 功能 语句 修改数据库名 RENAME DATABASE \\u0026lt;旧名称\\u0026gt; TO \\u0026lt;新名称\\u0026gt;; 修改表名 RENAME TABLE \\u0026lt;旧名称\\u0026gt; TO \\u0026lt;新名称\\u0026gt;; 修改数据 UPDATE \\u0026lt;表名\\u0026gt; SET \\u0026lt;列名 1\\u0026gt; = \\u0026lt;新值 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt; = \\u0026lt;新值 2\\u0026gt; WHERE \\u0026lt;条件\\u0026gt;; 修改列名 ALTER TABLE \\u0026lt;表名\\u0026gt; CHANGE \\u0026lt;旧列名\\u0026gt; \\u0026lt;新列名\\u0026gt; \\u0026lt;数据类型\\u0026gt; \\u0026lt;约束条件\\u0026gt;; 注意：重命名数据库与数据表一般不推荐使用，若想测试，请先备份好自己的数据库~ \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:4:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#修改update\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"37 查询（ R E A D ） 功能 语句 查询所有数据库 SHOW DATABASES; 查询指定数据库中所有表名 USE \\u0026lt;数据库名\\u0026gt;; 然后 SHOW TABLES;或者 SHOW TABLES FROM \\u0026lt;数据库名\\u0026gt;; 查询表中所有列信息 SHOW COLUMNS FROM \\u0026lt;表名\\u0026gt;; 查询表中所有数据 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt;; 查询表中某个数据 SELECT \\u0026lt;列名\\u0026gt; FROM \\u0026lt;表名\\u0026gt;; 查询表中指定多个数据 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt; WHERE \\u0026lt;条件\\u0026gt;; 查询表中指定一个数据 SELECT \\u0026lt;列名\\u0026gt; FROM \\u0026lt;表名\\u0026gt; WHERE \\u0026lt;条件\\u0026gt;; 查询指定范围数据 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt; WHERE\\u0026lt;某列名\\u0026gt; BETWEEN \\u0026lt;某列名范围值-小\\u0026gt; AND \\u0026lt;某列名范围值-大\\u0026gt;; 字符串模式匹配查询 SELECT \\u0026lt;列名\\u0026gt; FROM \\u0026lt;表名\\u0026gt; WHERE name LIKE 'Y%';（查询以 Y 开头的，更多匹配方式自行百度哦~。） 指定多个值数据查询 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt; WHERE\\u0026lt;某列名\\u0026gt; IN ('\\u0026lt;某列名值 1\\u0026gt;','\\u0026lt;某列名值 2\\u0026gt;','\\u0026lt;某列名值 3\\u0026gt;',...); 查询结果排序 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt; ORDER BY \\u0026lt;某列名\\u0026gt; DESC;（此处为递减排列，默认为递增ASC） 查询指定几笔数据 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,... FROM \\u0026lt;表名\\u0026gt; LIMIT n,m;（从n到m笔数据） 分群查询 SELECT \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,...,\\u0026lt;函数\\u0026gt; FROM \\u0026lt;表名\\u0026gt; GROUP BY \\u0026lt;列名 1\\u0026gt;,\\u0026lt;列名 2\\u0026gt;,\\u0026lt;列名 3\\u0026gt;,...;（常搭配函数有：SUM()、AVG()、COUNT()、MAX()、MIN()） \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:5:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#查询read\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"38 常用函数 函数名 用途 ABS（数值） ABS 函数（求绝对值） MOD（被除数，除数） MOD 函数（求余） ROUND（对象数值，保留小数的位数） ROUND 函数（四舍五入） 字符串 1 ΙΙ 字符串 2 ΙΙ 函数（拼接） LENGTH（字符串） LENGTH 函数（求字符串长度） LOWER（字符串） LOWER 函数（小写转换） UPPER（字符串） UPPER 函数（大写转换） REPLACE（对象字符串，替换前的字符串，替换后的字符串） REPLACE 函数（字符串的替换） SUBSTRING （对象字符串，截取的起始位置，截取的字符数） SUBSTRING 函数（字符串的截取） CURRENT_DATE CURRENT_DATE 函数（当前日期） CURRENT_TIME CURRENT_TIME 函数（当前时间） CURRENT_TIMESTAMP CURRENT_TIMESTAMP 函数（当前日期和时间） EXTRACT（日期元素 FROM 日期） EXTRACT 函数（截取日期元素） CAST（转换前的值 AS 想要转换的数据类型） CAST 函数（类型转换） COALESCE（数据 1, 数据 2, 数据 3\\u0026hellip;.) COALESCE 函数（将 NULL 转换为其他值） 补充：CASE 表达式。 CASE WHEN \\u0026lt;求值表达式\\u0026gt; THEN \\u0026lt;表达式\\u0026gt; WHEN \\u0026lt;求值表达式\\u0026gt; THEN \\u0026lt;表达式\\u0026gt; WHEN \\u0026lt;求值表达式\\u0026gt; THEN \\u0026lt;表达式\\u0026gt; ...... ELSE \\u0026lt;表达式\\u0026gt; END \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:6:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#常用函数\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"39 其他知识 \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:7:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#其他知识\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"39.1 常见数据类型 \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:7:1\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#常见数据类型\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"39.2 别名 给表设置别名，让 SQL 更简洁。例如： SELECT \\u0026lt;col-1\\u0026gt;,\\u0026lt;col-2\\u0026gt;,\\u0026lt;col-3\\u0026gt;,... FROM \\u0026lt;table1\\u0026gt; \\u0026lt;alias-a\\u0026gt;,\\u0026lt;table2\\u0026gt; \\u0026lt;alias-b\\u0026gt; WHERE \\u0026lt;alias-a\\u0026gt;.\\u0026lt;id\\u0026gt; = \\u0026lt;alias-b\\u0026gt;.\\u0026lt;id\\u0026gt;; 列名也可以设置别名。例如： SELECT \\u0026lt;col-1\\u0026gt; \\u0026lt;alias-a\\u0026gt;,\\u0026lt;col-2\\u0026gt; \\u0026lt;alias-b\\u0026gt;,\\u0026lt;col-3\\u0026gt; \\u0026lt;alias-c\\u0026gt;,... FROM \\u0026lt;table\\u0026gt;; 或者 SELECT \\u0026lt;col-1\\u0026gt; AS \\u0026lt;alias-a\\u0026gt;,\\u0026lt;col-2\\u0026gt; AS \\u0026lt;alias-b\\u0026gt;,\\u0026lt;col-3\\u0026gt; AS \\u0026lt;alias-c\\u0026gt;,... FROM \\u0026lt;table\\u0026gt;; \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:7:2\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#别名\"},{\"categories\":[\"MySQL\"],\"collections\":null,\"content\":\"40 总结 以上整理的内容均为基础内容，更多进阶知识还需各位自行 Google。 \",\"date\":\"2020-01-16\",\"objectID\":\"/posts/sql/:8:0\",\"tags\":[\"MySQL\"],\"title\":\"SQL 总结\",\"uri\":\"/posts/sql/#总结\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]， 功能虽好，但是还是先友情提示！ 开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:0:0\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"17 创建腾讯云 cos 存储桶 就创建一个 COS 就好了！有几点注意事项： 权限设置为共有读私有写 policy 权限设置整个桶的读操作 跨域访问 CORS 设置，自己随意 \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:1:0\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#创建腾讯云-cos-存储桶\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"18 上传照片 首先我这个 cos 相册，相册分类就是文件夹分类，所以 cos 桶里面先新建不同的文件夹，文件夹名称就是相册名称， 每个相册里面需要放置一张名称为**“封面.jpg”**的图片作为该相册的封面。 \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:2:0\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#上传照片\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"18.1 上传工具 COSBrowser GUI 工具，桌面/移动版【官方、推荐】 COSCMD 命令行工具【官方】 PicGo 图床上传工具【第三方、推荐】 \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:2:1\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#上传工具\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"19 食用方式 cos album 相册源码下载地址，别忘点赞哈 github.com/Lruihao/cos-album 首先，下载源码，引入 cos-album.css 和 cos-album.js 然后，在你的 js 中 new 一个 Cosalbum 对象 ( xmlLink 后不需要添加/) \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:3:0\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#食用方式\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"19.1 Step1 \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; type=\\u0026#34;text/css\\u0026#34; href=\\u0026#34;cos-album.min.css?v=1.1.2\\u0026#34;\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;cos-album.min.js?v=1.1.2\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:3:1\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#step1\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"19.2 Step2 \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; new Cosalbum({ \\u0026#39;xmlLink\\u0026#39;: \\u0026#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com\\u0026#39;, \\u0026#39;prependTo\\u0026#39;: \\u0026#39;.cos-album\\u0026#39;, \\u0026#39;viewNum\\u0026#39;: 8, \\u0026#39;imgUrl\\u0026#39;: \\u0026#39;//img.lruihao.cn\\u0026#39; }); \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:3:2\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#step2\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"19.3 Params param type default description xmlLink String 需要解析的騰訊云 COS 桶 XML 鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接，雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 viewport 视个人情况添加。 hexo 中使用时 css 和 js 都需要做适当调整，配合加密功能使用等等，这里不再展开。 注：代码设定不加载根目录文件，所以可以利用静态服务把源码部署在根目录，配合 PicGo、COSBrowser 上传来搭建个人图床。 \\u0026lt;!DOCTYPE html\\u0026gt; \\u0026lt;html\\u0026gt; \\u0026lt;head\\u0026gt; \\u0026lt;meta charset=\\u0026#34;UTF-8\\u0026#34; /\\u0026gt; \\u0026lt;title\\u0026gt;cos-album\\u0026lt;/title\\u0026gt; \\u0026lt;!-- \\u0026lt;meta name=\\u0026#34;viewport\\u0026#34; content=\\u0026#34;width=device-width, initial-scale=1.0\\u0026#34;\\u0026gt; --\\u0026gt; \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; type=\\u0026#34;text/css\\u0026#34; href=\\u0026#34;cos-album.css\\u0026#34; /\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;cos-album.js\\u0026#34; defer\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;/head\\u0026gt; \\u0026lt;body\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; new Cosalbum({ xmlLink: \\u0026#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com\\u0026#39;, prependTo: \\u0026#39;.cos-album\\u0026#39;, viewNum: 8, copyUrl: \\u0026#39;//img.lruihao.cn\\u0026#39; }); \\u0026lt;/script\\u0026gt; \\u0026lt;!-- 你的其他内容，如评论等 --\\u0026gt; \\u0026lt;/body\\u0026gt; \\u0026lt;/html\\u0026gt; cos-album demo \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:3:3\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#params\"},{\"categories\":[\"JavaScript\"],\"collections\":[\"project\"],\"content\":\"20 changelog 2020-9-28 22:46 升級：相冊封裝成類，可以更方便 new 出來 優化：相冊圖片樣式優化 2019-11-24 10:52:34 修改整理了一下代码，分割功能为函数，并写了注释，更加方便 伸手党! \",\"date\":\"2019-11-24\",\"objectID\":\"/projects/cos-album/:4:0\",\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"uri\":\"/projects/cos-album/#changelog\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/cos album: 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date\":\"2019-11-23\",\"objectID\":\"/projects/lruihao/cos-album/\",\"tags\":[\"cos-album\",\"cos-bucket\"],\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"uri\":\"/projects/lruihao/cos-album/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"cos-album demo \",\"date\":\"2019-11-23\",\"objectID\":\"/projects/lruihao/cos-album/:1:0\",\"tags\":[\"cos-album\",\"cos-bucket\"],\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"uri\":\"/projects/lruihao/cos-album/#cos-album data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Step1 \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; type=\\u0026#34;text/css\\u0026#34; href=\\u0026#34;cos-album.min.css?v=1.1.6\\u0026#34;\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;cos-album.min.js?v=1.1.6\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2019-11-23\",\"objectID\":\"/projects/lruihao/cos-album/:2:0\",\"tags\":[\"cos-album\",\"cos-bucket\"],\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"uri\":\"/projects/lruihao/cos-album/#step1\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Step2 \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; new Cosalbum({ \\u0026#39;xmlLink\\u0026#39;: \\u0026#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com\\u0026#39;, \\u0026#39;prependTo\\u0026#39;: \\u0026#39;.cos-album\\u0026#39;, \\u0026#39;viewNum\\u0026#39;: 8, \\u0026#39;copyUrl\\u0026#39;: \\u0026#39;//img.lruihao.cn\\u0026#39; }); \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-11-23\",\"objectID\":\"/projects/lruihao/cos-album/:3:0\",\"tags\":[\"cos-album\",\"cos-bucket\"],\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"uri\":\"/projects/lruihao/cos-album/#step2\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明 \",\"date\":\"2019-11-23\",\"objectID\":\"/projects/lruihao/cos-album/:4:0\",\"tags\":[\"cos-album\",\"cos-bucket\"],\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"uri\":\"/projects/lruihao/cos-album/#params\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789 \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:0:0\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"13 Noun 一般资源 通用于一律使用复数名词 例如：/books 或 /books/123。但有部分人认为应该使用单数名词，因为： /book/123 看似比 /books/123 合理。但想想文件系统的目录命名（例如 /Users 或 /Documents)，其实用复数也没问题。复数可以保持 API endpoint 的一致性，所以一般资源建议用复数。 唯一资源：对 client 而言只有一份的资源 通用于单数名词 例如：user 是指目前验证的使用者，使用者永远只能同时登入一个使用者 \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:1:0\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#noun\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14 Http Method MethodIdempotentSafeCRUDOO生活动词用途GETYYReadgetget取得资料list列出资料POSTCreateaddcreate建立一个可以完全独立存在的实体add增加一个必须依赖于某个实体的实体PUTYUpdatesetreplace取代一个关系，已存在时先删除后建立，不存在时直接建立add附加唯一关系，两个关系实体可以互相独立存在，且已经存在PATCHedit编辑某个实体DELETEDeleteremoveremove delete删除某个实体 Safe：该操作不会改变伺服器端的资源状态（而且结果可以被 cache），属于 Safe 的操作必定属于 Idempotent Idempotent (幂等性)：该操作不管做 1 遍或做 n 遍，都会得到同样的资源状态结果（但不一定得到同样的返回值，例如第 2 次 DELETE 请求可能回传 404），因此 client 端可以放心 retry \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:0\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#http-method\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14.1 GET Safe：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料） Idempotent：每次执行操作时，GET 只有读取 Resource，不会改变到任何的 Resource（资源，资料），所以任何资源的任何状态都是一样的 \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:1\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#get\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14.2 POST 每次执行操作时，POST 都会建立一个 Resource（资源，资料） Create：建立一个可以完全独立存在的实体 范例：建立使用者 执行第一次时：建立一个 name = \\u0026ldquo;李四\\u0026rdquo; 的 user，但其 id = 1，执行第二次时：建立一个 name = \\u0026ldquo;李四\\u0026rdquo; 的 user，但其 id = 2，发送同样的请求，可每次都是不同的 Resource 建立使用者前不需要建立任何的东西，就可以建立使用者了，使用者是可以完全独立的存在 POST /users HTTP/1.1 Host: 127.0.0.1 { \\u0026#34;name\\u0026#34;: \\u0026#34;李四\\u0026#34; } Add：增加一个必须依赖于某个实体的实体 资料结构：一对多的关系 范例：Add a public key on behalf of a user 增加一个代表使用者的公钥 (Gitea API) 增加这个公钥之前，使用者必须存在，公钥必须归属于某个使用者之下，公钥跟姓名一样，使用相同电脑的公钥就会相同，但不表示是同一个使用者，故公钥也会有自己的 ID 我每次增加公钥时，都将生成不同的公钥 ID POST /api/v1/admin/users/{username}/keys HTTP/1.1 Host: gitea.com { \\u0026#34;key\\u0026#34;: \\u0026#34;string\\u0026#34;, \\u0026#34;read_only\\u0026#34;: true, \\u0026#34;title\\u0026#34;: \\u0026#34;string\\u0026#34; } \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:2\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#post\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14.3 PUT Idempotent：每次执行操作时，PUT 都会取代 Resource，不管操作几次，使用者获取得 Resource 结果都是一样的 Replace：不论资源如何，最终的资源状态都是一样的，Resource 已存在时，或许不理会、或许先删除后建立（取代）Resource 不存在时，直接建立 Add：添加唯一关系，建立这个唯一关系前，两个关连实体都必须存在。在没有建立关系前，两个关连实体都可以互相独立存在 资料结构：多对多，且两个关连实体的 PK，同时也是关系实体的 PK、FK 范例：增加使用者与角色的关系 增加使用者跟角色的关系前，使用者跟角色都必须存在；增加使用者跟角色的关系前，使用者跟角色可以独立存在， 使用者 12262 跟 角色 2 的关系最多只能有一条关系（使用者 12262 有 角色 2)，最少没有关系（使用者 12262 没有 角色 2 ) ，执行第二次操作时，使用者 12262 跟 角色 2 的从属关系仍然存在，也不会跑出第二条 使用者 12262 跟 角色 2 的从属关系 PUT user/{account}/roles HTTP/1.1 Host: 127.0.0.1 { \\u0026#34;role_id\\u0026#34;: \\u0026#34;2\\u0026#34; } 范例：Follow a user 关注一个使用者 (Gitea API) 增加关注关系时，关注者与被关注者（都是使用者）都必须存在；关注者 12262 跟被关注者 12231 的关系最多只能有一条关系（12262 关注 12231），最少没有关系（12262 不关注 12231），执行第二次操作时，关注者 12262 跟被关注者 12231 的关注关系仍然存在，也不会跑出第二条关注者 12262 跟被关注者 12231 的关注关系 PUT /api/v1/user/following/{username} HTTP/1.1 Host: gitea.com \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:3\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#put\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14.4 PATCH Edit：编辑可独立存在、且已经存在的实体，也就是产生新版本的实体，可能会影响其他 Resource 范例：编辑使用者 编辑使用者，使用者已经存在，且我们可能有纪录编辑时间、编辑人、编辑 IP，所以每次的编辑都会造成不一样的结果 第一次编辑使用者，更新时间变为 08:00，编辑人 12262，IP 172.18.0.66 第二次编辑使用者，更新时间变为 09:00，编辑人 12263，IP 172.18.0.67 PATCH /users/{account} HTTP/1.1 Host: 127.0.0.1 { \\u0026#34;username\\u0026#34;: \\u0026#34;李四\\u0026#34;, \\u0026#34;age\\u0026#34;: \\u0026#34;18\\u0026#34;, \\u0026#34;gender\\u0026#34;: \\u0026#34;male\\u0026#34; } \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:4\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#patch\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"14.5 DELETE Idempotent：每次执行操作时，DELETE 都会删除相同的东西 范例：删除使用者 第一次删除使用者 12262，删除使用者 12262, 第二次删除使用者 12262，还是删除使用者 12262，只不过使用者 12262 不存在了 DELETE /users/{account} HTTP/1.1 Host: 127.0.0.1 \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:2:5\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#delete\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"15 HTTP Status Code HTTP 状态码（HTTP Status Code）是用以表示网页服务器 HTTP 响应状态的 3 位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。除非另有说明，状态码是 HTTP/1.1 标准（RFC 7231）的一部分。 而关于 RESTful API 的请求状态，通常有以下两种设计方案： 方案一：使用 HTTP 状态码来表示请求状态，200 时返回的内容就是数据 方案二：所有接口都返回 200，在响应内容里约定错误码或错误信息 在实际应用中，应据具体情景及需要进行选择与调整。 方案优劣比较方案一优点对服务端来说较为简单方便缺点客户端难以根据状态码处理复杂问题方案二优点方便对返回资料进行统一处理和细微性的控制缺点相当于放弃了 HTTP 状态码的语义 \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:3:0\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#http-status-code\"},{\"categories\":[\"Spec\",\"计算机网络\"],\"collections\":null,\"content\":\"15.1 常用 HTTP 状态码 Code Message 用途 1XX Informational response 此类状态码通常代表的响应都是信息性的，告诉客户端可以进行下一步操作。 100 Continue 表示服务端已接收到请求头，客户端可以继续发送请求体（如 POST 请求）。 101 Switching Protocols 表示服务端支持更优协议，让客户端在服务端更换协议后重新访问。 2XX Successful 此类状态码通常代表请求已成功被服务端接收、理解并接受。 200 OK 表示请求成功。 201 Created 表示请求已被实现，通常是在成功创建了某个资源。 202 Accepted 表示请求已被服务端接收，但尚未进行处理。 204 No Content 表示请求成功，但不会返回任何内容。 205 Reset Content 表示请求成功，但不会返回任何内容，并且要求客户端重置表单。 3XX Redirect 此类状态码通常代表本次请求需要客户端采取进一步操作才能完成。通常用于重定向。 300 Multiple Choices 表示请求的资源有多个供可选择，客户端可自行选择一个进行请求的重定向。 301 Moved Permanently 表示请求的资源已经永久地移动到了新位置，并且将在 Location 域中携带该资源新的 URI。 304 Not Modified 表示请求的资源无发生修改，将不会返回任何资源。 4XX Client Error 此类状态码通常代表客户端可能出现了错误。 400 Bad Request 表示客户端发出的请求有误（格式、大小、无效的\\u0026hellip;)，服务端不能/ 不会处理该请求。 401 Unauthorized 表示客户端未能提供必要的验证，服务端拒绝提供资源。 403 Forbidden 表示服务端理解了该请求，但客户端没有足够权限以访问，遂拒绝提供该资源。 404 Not Found 表示服务端无法找到请求的资源，其可能已经暂时（永久）失效。 408 Request Timeout 表示请求超时。 409 Conflict 表示请求的资源发送了冲突，通常是 PUT 请求。 410 Gone 表示请求的资源已经永久失效，客户端不应再次请求。 411 Length Required 表示服务端拒绝在没有定义 Content-Length 头的情况下接收该请求。 5XX Server Error 此类状态码通常代表由于服务端的原因，导致无法完成请求。 500 Internal Server Error 表示由于服务端遇到意料之外的变故，导致无法完成请求。 501 Not Implemented 表示服务端不支持完成请求所需的功能，导致无法完成请求。 502 Bad Gateway 表示作为网关或代理的服务段在执行请求时，从上游服务器获得了无效的响应。 503 Service Unavailable 表示由于某些原因（服务器超载或系统维护等），导致暂时无法完成请求。 504 Gatewy Timeout 表示作为网关或代理的服务段在执行请求时，未能及时从上游服务器获得响应。 505 HTTP Version Not Supported 表示服务端不支持请求的 HTTP 协议版本，导致无法完成请求。 以上内容参考自\\u0026lt;https://zh.wikipedia.org/zh-cn/HTTP 状态码\\u0026gt;， 需要查看完整 HTTP 状态码请点击 https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes \",\"date\":\"2019-11-14\",\"objectID\":\"/posts/restful/:3:1\",\"tags\":[\"REST\",\"HTTP\"],\"title\":\"RESTful\",\"uri\":\"/posts/restful/#常用-http-状态码\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\" php 主动推送站点链接到百度站长，神马站长进行 SEO。 \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phppushurl/:0:0\",\"tags\":[\"PHP\"],\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"uri\":\"/posts/phppushurl/#\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\"9 代码 把需要提交的链接和各站长 api 分别放在两个 txt 文件里面，然后运行 php 文件进行提交，不同站长提交成功一般返回的都是 200 状态码。 \\u0026lt;?php //链接存放路径和站长 api 文件存放路径 $urls_path = \\u0026#34;H:\\\\\\\\lruihao.cn\\\\\\\\public\\\\\\\\baidu_urls.txt\\u0026#34;; $apis_path = \\u0026#34;G:\\\\\\\\Demo\\\\\\\\lrh01\\\\\\\\zhanzhang_api.txt\\u0026#34;; //将文件每一行读到一个数组里面去 $urls = file($urls_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $apis = file($apis_path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); for($x=0;$x\\u0026lt;count($apis);$x++){ $ch = curl_init(); $options = array( CURLOPT_URL =\\u0026gt; $apis[$x], CURLOPT_POST =\\u0026gt; true, CURLOPT_RETURNTRANSFER =\\u0026gt; true, CURLOPT_POSTFIELDS =\\u0026gt; implode(\\u0026#34;\\\\n\\u0026#34;, $urls), CURLOPT_HTTPHEADER =\\u0026gt; array(\\u0026#39;Content-Type: text/plain\\u0026#39;), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo \\u0026#34;API: \\u0026lt;br/\\u0026gt;\\u0026amp;emsp;\\u0026#34;.$apis[$x].\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; echo \\u0026#34;result: \\u0026lt;br/\\u0026gt;\\u0026amp;emsp;\\u0026#34;.$result.\\u0026#34;\\u0026lt;hr/\\u0026gt;\\u0026#34;; } ?\\u0026gt; \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phppushurl/:1:0\",\"tags\":[\"PHP\"],\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"uri\":\"/posts/phppushurl/#代码\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\"10 提交结果 \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phppushurl/:2:0\",\"tags\":[\"PHP\"],\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"uri\":\"/posts/phppushurl/#提交结果\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\"13 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。 \\u0026lt;?php //首先采用“fopen”函数打开文件，得到返回值的就是资源类型。 $file_handle = fopen(\\u0026#34;C:\\\\\\\\Users\\\\\\\\李瑞豪、\\\\Desktop\\\\\\\\备忘录。txt\\u0026#34;,\\u0026#34;r\\u0026#34;); if ($file_handle){ //接着采用 while 循环一行行地读取文件，然后输出每行的文字 while (!feof($file_handle)) { //判断是否到最后一行 $line = fgets($file_handle); //读取一行文本 echo $line; //输出一行文本 echo \\u0026#34;\\u0026lt;br /\\u0026gt;\\u0026#34;; //换行 } } fclose($file_handle);//关闭文件 ?\\u0026gt; readfile（）函数，返回一整个 String echo readfile(\\u0026#34;C:\\\\\\\\Users\\\\\\\\李瑞豪、\\\\Desktop\\\\\\\\备忘录。txt\\u0026#34;); \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phpfile/:1:0\",\"tags\":[\"PHP\"],\"title\":\"php 按行读取文件信息\",\"uri\":\"/posts/phpfile/#普通方法\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\"14 快速方法 file()函数把整个文件读入一个数组中。 数组中的每个元素都是文件中相应的一行，包括换行符在内。 语法 file(path,include_path,context) 参数 描述 path 必需。规定要读取的文件。 include_path 可选参数include_path 可以是以下一个或多个常量：**FILE_USE_INCLUDE_PATH在 include_path 中查找文件。FILE_IGNORE_NEW_LINES在数组每个元素的末尾不要添加换行符FILE_SKIP_EMPTY_LINES**跳过空行 context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL，则忽略。 \\u0026lt;?php $filepath=\\u0026#34;H:\\\\\\\\lruihao.cn\\\\\\\\public\\\\\\\\baidu_urls.txt\\u0026#34;; echo \\u0026#34;\\u0026lt;hr/\\u0026gt;\\u0026#34;; //将文件每一行读到一个数组里面去 $texts = file($filepath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); var_dump($texts); ?\\u0026gt; \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phpfile/:2:0\",\"tags\":[\"PHP\"],\"title\":\"php 按行读取文件信息\",\"uri\":\"/posts/phpfile/#快速方法\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\"15 结果 \",\"date\":\"2019-09-28\",\"objectID\":\"/posts/phpfile/:3:0\",\"tags\":[\"PHP\"],\"title\":\"php 按行读取文件信息\",\"uri\":\"/posts/phpfile/#结果\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/MMT: 沐目之，湘也。— 沐目体\",\"date\":\"2019-09-26\",\"objectID\":\"/projects/lruihao/mmt/\",\"tags\":[\"font\",\"mmt\"],\"title\":\"沐目之，湘也。— 沐目体\",\"uri\":\"/projects/lruihao/mmt/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\" 关于沐目体 \",\"date\":\"2019-09-26\",\"objectID\":\"/projects/lruihao/mmt/:0:0\",\"tags\":[\"font\",\"mmt\"],\"title\":\"沐目之，湘也。— 沐目体\",\"uri\":\"/projects/lruihao/mmt/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 使用javascript计算博客等网站的运行时间。 话不多说，直接贴码！ function createTime() { var now = new Date(); var run = new Date(\\u0026#39;05/28/2018 20:01:01\\u0026#39;); //總的秒數 var runTime = (now - run) / 1000, days = Math.floor(runTime / 60 / 60 / 24), hours = Math.floor(runTime / 60 / 60 - 24 * days), minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours), seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes); //前置零 if (String(hours).length === 1) { hours = \\u0026#39;0\\u0026#39; + hours; } if (String(minutes).length === 1) { minutes = \\u0026#39;0\\u0026#39; + minutes; } if (String(seconds).length === 1) { seconds = \\u0026#39;0\\u0026#39; + seconds; } /*document.querySelector(\\u0026#34;.run-times\\u0026#34;).innerHTML = days + \\u0026#34;\\u0026amp;thinsp; 天\\u0026amp;thinsp;\\u0026#34; + hours + \\u0026#34;\\u0026amp;thinsp; 时\\u0026amp;thinsp;\\u0026#34; + minutes + \\u0026#34;\\u0026amp;thinsp; 分\\u0026amp;thinsp;\\u0026#34; + seconds + \\u0026#34;\\u0026amp;thinsp; 秒\\u0026#34;; */ document.querySelector(\\u0026#39;.run-times\\u0026#39;).innerHTML = \\u0026#39;RunTime: \\u0026#39; + days + \\u0026#39;,\\u0026#39; + hours + \\u0026#39;:\\u0026#39; + minutes + \\u0026#39;:\\u0026#39; + seconds + \\u0026#39;\\u0026#39;; } //setInterval(\\u0026#34;createTime()\\u0026#34;, 500); if (!document.hidden) { var siteTime = setInterval(\\u0026#39;createTime()\\u0026#39;, 500); } else { clearInterval(siteTime); } /** * HTML 写法 \\u0026lt;span class=\\u0026#34;run-times\\u0026#34; title=\\u0026#34;网站运行时间\\u0026#34;\\u0026gt;载入时分秒 ...\\u0026lt;/span\\u0026gt; \\u0026lt;p class=\\u0026#34;run-times\\u0026#34; title=\\u0026#34;主頁运行时间\\u0026#34;\\u0026gt;RunTime Loading...\\u0026lt;/p\\u0026gt; */ \",\"date\":\"2019-09-19\",\"objectID\":\"/posts/site-time/:0:0\",\"tags\":[\"JavaScript\"],\"title\":\"设置网站运行时间\",\"uri\":\"/posts/site-time/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 注意 JS 的加载分为两个部分：下载和执行。 浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:0:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"29 不带任何属性 同步模式，又称阻塞模式，我们平时使用的最多的一种方式。当浏览器解析到\\u0026lt;script\\u0026gt;标签时，浏览器会停止解析其后的内容，而优先下载脚本文件，并执行其中的代码，是个同步阻塞的过程。 一般建议把\\u0026lt;script\\u0026gt;标签放在\\u0026lt;body\\u0026gt;结尾处，这样尽可能减少页面阻塞。 而如果想要异步执行 script，则可以给其加上 async 或 defer 属性。 \\u0026lt;script\\u0026gt; \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:1:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#不带任何属性\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"30 defer defer 属性在 HTML 解析期间异步下载文件，并且只在 HTML 解析完成后才执行它。对于 defer，我们可以理解是将外链的 js 放在了页面底部。js 的加载不会阻塞页面的渲染和资源的加载。不过 defer 会按照原本的 js 的顺序执行，所以如果前后有依赖关系的 js 可以放心使用。 \\u0026lt;script defer\\u0026gt; \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:2:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#defer\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"31 async async 属性会在 HTML 解析期间异步下载文件，并在完成下载后立即暂停 HTML 解析器去执行 script 中的代码。在执行过程中浏览器处于阻塞状态，响应不了任何需求。如果 js 前后有依赖性，用 async，就很有可能出错。 \\u0026lt;script async\\u0026gt; \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:3:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#async\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"32 区别 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:4:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#区别\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"32.1 相同点 加载文件时不阻塞页面渲染 对于 inline 的 script 无效（只适用有src的外部 js） 使用这两个属性的脚本中不能调用 document.write 方法 有脚本的 onload 的事件回调 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:4:1\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#相同点\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"32.2 区别点 html4.0 中定义了 defer；html5.0 中定义了 async 浏览器支持不同 每一个 async 属性的脚本都在它下载结束之后立刻执行，同时会在 window 的 load 事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况；每一个 defer 属性的脚本都是在页面解析完毕之后，按照原本的顺序执行，同时会在 document 的 DOMContentLoaded 之前执行。 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:4:2\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#区别点\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"33 那么这三种方式各在什么情况下使用呢？ 通常来说，尽可能使用async，然后是defer，最后不使用属性。 并遵循以下规则： 如果脚本是模块化的，并且不依赖于任何脚本，则使用async。 如果脚本依赖于或依赖于另一个脚本，则使用defer。 如果脚本很小并且有async脚本依赖该脚本，则不加属性。 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:5:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#那么这三种方式各在什么情况下使用呢\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"34 兼容性 Internet Explorer 10、Firefox、Opera、Chrome 和 Safari 支持 async 属性。 所有主流浏览器都支持 defer 属性。 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:6:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#兼容性\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"35 参考 https://www.growingwiththeweb.com/2014/02/async-vs-defer-attributes.html https://www.jianshu.com/p/17dc82bf08f1 \",\"date\":\"2019-09-08\",\"objectID\":\"/posts/async-defer/:7:0\",\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"title\":\"script 的三种加载方式 (async, defer)\",\"uri\":\"/posts/async-defer/#参考\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"Sublime Text3 快捷键一览表 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:0:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"21 tab 转 space 打开 Settings, 加入几行配置 { \\u0026#34;color_scheme\\u0026#34;: \\u0026#34;Packages/Color Scheme - Default/Monokai.sublime-color-scheme\\u0026#34;, \\u0026#34;font_size\\u0026#34;: 14, \\u0026#34;ignored_packages\\u0026#34;: [ \\u0026#34;Vintage\\u0026#34; ], \\u0026#34;theme\\u0026#34;: \\u0026#34;Adaptive.sublime-theme\\u0026#34;, + \\u0026#34;expand_tabs_on_save\\u0026#34;: true, + \\u0026#34;tab_size\\u0026#34;: 2, + \\u0026#34;translate_tabs_to_spaces\\u0026#34;: true } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:1:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#tab-转-space\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"22 选择类 Ctrl+D 选中光标所占的文本，继续操作则会选中下一个相同的文本。 Alt+F3 选中文本按下快捷键，即可一次性选择全部的相同文本进行同时编辑。举个栗子：快速选中并更改所有相同的变量名、函数名等。 Ctrl+L 选中整行，继续操作则继续选择下一行，效果和 Shift+↓ 效果一样。 Ctrl+Shift+L 先选中多行，再按下快捷键，会在每行行尾插入光标，即可同时编辑这些行。 Ctrl+Shift+M 选择括号内的内容（继续选择父括号）。举个栗子：快速选中删除函数中的代码，重写函数体代码或重写括号内里的内容。 Ctrl+M 光标移动至括号内结束或开始的位置。 Ctrl+Enter 在下一行插入新行。举个栗子：即使光标不在行尾，也能快速向下插入一行。 Ctrl+Shift+Enter 在上一行插入新行。举个栗子：即使光标不在行首，也能快速向上插入一行。 Ctrl+Shift+[ 选中代码，按下快捷键，折叠代码。 Ctrl+Shift+] 选中代码，按下快捷键，展开代码。 Ctrl+K+0 展开所有折叠代码。 Ctrl+← 向左单位性地移动光标，快速移动光标。 Ctrl+→ 向右单位性地移动光标，快速移动光标。 shift+↑ 向上选中多行。 shift+↓ 向下选中多行。 Shift+← 向左选中文本。 Shift+→ 向右选中文本。 Ctrl+Shift+← 向左单位性地选中文本。 Ctrl+Shift+→ 向右单位性地选中文本。 Ctrl+Shift+↑ 将光标所在行和上一行代码互换（将光标所在行插入到上一行之前）。 Ctrl+Shift+↓ 将光标所在行和下一行代码互换（将光标所在行插入到下一行之后）。 Ctrl+Alt+↑ 向上添加多行光标，可同时编辑多行。 Ctrl+Alt+↓ 向下添加多行光标，可同时编辑多行。 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:2:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#选择类\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"23 编辑类 Ctrl+J 合并选中的多行代码为一行。举个栗子：将多行格式的 CSS 属性合并为一行。 Ctrl+Shift+D 复制光标所在整行，插入到下一行。 Tab 向右缩进。 Shift+Tab 向左缩进。 Ctrl+K+K 从光标处开始删除代码至行尾。 Ctrl+Shift+K 删除整行。 Ctrl+/ 注释单行。 Ctrl+Shift+/ 注释多行。 Ctrl+K+U 转换大写。 Ctrl+K+L 转换小写。 Ctrl+Z 撤销。 Ctrl+Y 恢复撤销。 Ctrl+U 软撤销，感觉和 Gtrl+Z 一样。 Ctrl+F2 设置书签 Ctrl+T 左右字母互换。 F6 单词检测拼写 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:3:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#编辑类\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"24 搜索类 Ctrl+F 打开底部搜索框，查找关键字。 Ctrl+shift+F 在文件夹内查找，与普通编辑器不同的地方是 sublime 允许添加多个文件夹进行查找，略高端，未研究。 Ctrl+P 打开搜索框。举个栗子：1、输入当前项目中的文件名，快速搜索文件，2、输入@和关键字，查找文件中函数名，3、输入：和数字，跳转到文件中该行代码，4、输入#和关键字，查找变量名。 Ctrl+G 打开搜索框，自动带：，输入数字跳转到该行代码。举个栗子：在页面代码比较长的文件中快速定位。 Ctrl+R 打开搜索框，自动带@，输入关键字，查找文件中的函数名。举个栗子：在函数较多的页面快速查找某个函数。 Ctrl+：打开搜索框，自动带#，输入关键字，查找文件中的变量名、属性名等。 Ctrl+Shift+P 打开命令框。场景栗子：打开命名框，输入关键字，调用 sublime text 或插件的功能，例如使用 package 安装插件。 Esc 退出光标多行选择，退出搜索框，命令框等。 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:4:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#搜索类\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25 显示类 Ctrl+Tab 按文件浏览过的顺序，切换当前窗口的标签页。 Ctrl+PageDown 向左切换当前窗口的标签页。 Ctrl+PageUp 向右切换当前窗口的标签页。 Alt+Shift+1 窗口分屏，恢复默认 1 屏（非小键盘的数字） Alt+Shift+2 左右分屏 -2 列 Alt+Shift+3 左右分屏 -3 列 Alt+Shift+4 左右分屏 -4 列 Alt+Shift+5 等分 4 屏 Alt+Shift+8 垂直分屏 -2 屏 Alt+Shift+9 垂直分屏 -3 屏 Ctrl+K+B 开启/关闭侧边栏。 F11 全屏模式 Shift+F11 免打扰模式 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/sublime-text3/:5:0\",\"tags\":[\"Sublime\",\"他山之石\"],\"title\":\"Sublime Text3 快捷键大全\",\"uri\":\"/posts/sublime-text3/#显示类\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 安裝 官方下載點 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:1:0\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#安裝\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 擴充功能 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:2:0\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#擴充功能\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:2:1\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#安裝擴充功能\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:2:2\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#啟用已安裝的擴充功能\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:2:3\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#匯入設定\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 常用設定 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:0\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#常用設定\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。 在 NetBeans 中設置程式碼排版 打開 NetBeans-\\u0026gt;Tools-\\u0026gt;Options-\\u0026gt;Editor-\\u0026gt;Formatting； Language 選擇 All Languages，勾選\\u0026quot;Expand Tabs to Spaces\\u0026quot;, 用兩個空格鍵代替 Tab 鍵，首行留兩個 Tab 鍵。 點擊 Apply 或 Ok 完成設置。具體設置及效果如下圖所示： \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:1\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#程式碼排版\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.2 程式碼樣板 程式碼樣板可以幫助你快速書寫程序，不必繁瑣地聲明函數或其他代碼塊，更專注與邏輯的書寫。 在 NetBeans 中設置程式碼樣板 打開 NetBeans→Tools→Options→Editor→Code Templates； 選擇你所用的語言（這裡以 JavaScript 為例）； 點擊\\u0026quot;New\\u0026quot;新建屬於你的或修改原有的程式碼樣板（例子僅為演示）； 在編程中應用它。 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:2\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#程式碼樣板\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.3 前端壓縮 下載擴充套件netbeans minify 或者 minifierBeans 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇你下載的擴充套件開啟 開啟 NetBeans→Tools→options \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:3\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#前端壓縮\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.4 快捷鍵 键位 作用 Ctrl+/ 注释一行（或选中部分） Ctrl+X 剪切一行（或选中部分） Ctrl+E 删除一行（或选中部分） Shift+Alt+上下方向键 移动当前行 Ctrl+Shift+上下方向键 复制当前行（该操作并非复制到粘贴板） Shift+Alt+F 整理代码 TAB 代碼自動補全/缩进/選中文字同時缩进 Shift+TAB 選中文字同時取消缩进 Ctrl+F 查找某个字 Ctrl+Shift+F 整个项目中查找某个字 Ctrl+H 替换某个字 Ctrl+Enter 增加空白行，光标不动。 Ctrl+(0~7) 打开各种小窗口 Shift+方向键 選中文字 Ctrl+Alt+Space 代码输入提示，不习惯的可以设置为 (Alt+/)，超级好用！！！ Ctrl+Shift+F5 调试当前程序 Shift+F6 运行当前程序 F6 运行主程序 Alt+Enter 显示程式 bug 建议或者警示等 NetBeans 中常用的快捷鍵 ↑： 三種複製行方法 复制一行：Ctrl + Shift + 上下方向键（该操作并非复制到粘贴板）； 复制一行：在该行任何地方连续三击选中一样，然后 Ctrl + C 即可复制一行。； 复制一行（使用宏）: 编辑 - 开始录制宏 (Home,Shift + End,Ctrl + C)-停止录制宏 - 设置宏名称（如 select-entire-line)-设置快捷键（如 Ctrl + Alt + C)； 也可自己修改快捷鍵 (Tools→Options→Keympa), 如下圖 {% asset_img quickkey.png quickkey %} \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:4\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#快捷鍵\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.5 遠程開發 (FTP) 工作为例 新建项目 打开软件，进入新建项目页面（File-New Project），新建 php 项目，选择第一个（PHP-PHP Application） 项目名和地址自己选择（注意，选择地址后需在地址最后面加上\\u0026quot;/项目名\\u0026quot;） FTP 设置 点击下一步，进入 FTP 设置，Run As 选择 Remote Web Site(FTP,SFTP) Project URL 填写http://127.0.0.1/training/工号 Manage 设置 点击 Manage, 进入页面。名字自取。Host Name 填写：127.0.0.1 Encryption 选择 Pure FTP,User Name 和 Password（填写工号/课务系统登录密码） Initial Directory 填写_training 点击 Test Connection 测试是否连接成功 其他设置 Upload Directory, 上传目录不填，直接上传至个人根目录 Upload File 改为保存时上传文件（On Save） \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:5\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#遠程開發-ftp\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.6 Chrome with NetNeans Connector 打開 chrome 中的應用程式商店（使用 chrome 瀏覽器點擊下方鏈接即可） chrome 應用程式商店 在搜索框中輸入 NetNeans Connector 后搜索，然後點擊右邊的加到 Chrome 即可，安裝成功后右上角會顯示 NetBeans 圖標。 開啟 netbeans 選擇 Run→Set Project Browser→ 選中 Chrome with NetBeans Connector 選擇 default 下的 Customize → 選擇 Browser → 選擇 Browser 下 Chrome with NetBeans Connector 即可 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/netbeans/:3:6\",\"tags\":[\"NetBeans\",\"PHP\"],\"title\":\"NetBeans IDE 开发设置\",\"uri\":\"/posts/netbeans/#chrome-with-netneans-connector\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"61 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:1:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#精神\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"62 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:2:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#git\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"62.1 分支（Branch） 命名规则：应以此分支主要目的命名（修复什么 BUG，新增特定功能） 合并后的分支应该删除 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:2:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#分支branch\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"62.2 commit 遵循一个功能一个 commit 的原则 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:2:2\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#commit\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"63 Restful 资源名词站在 API 的角度思考 复数名词：可以复数笔数据，回传结果为 Array 举例：GET/users 取得多笔使用者资料 刪除，放在复数名词內，让 Router 保持一致性 增加，放在复数名詞內，让 Router 保持一致性 单数名词：仅取得单笔数据，必须指定 PK，两两一组，回传结果为 Object 举例：GET/user/{accont} 取得单笔使用者资料，必须指定 PK URL 中一律不带 id 参数 正确范例： calendar_manager/calendar/29 错误范例： calendar_manager/calendar/29?id=29 更多规则详见文档 RESTful \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:3:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#restful\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"64 命名 命名应根据内容做有意义的命名，让后续维护人员可以顾名思义！ 即使不会发生错误，代码英文大小写也需明确区分。 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:4:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#命名\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"64.1 语意 类型 命名规则 说明 属性 (Attribute, Property) 名词 user_name、userName 方法 (Method, Function) 动词 + 名词 getUserName、get_user_name 常見的动词有：get、set、update、delete、remove \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:4:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#语意\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"64.2 字母与分隔 语言 变量 (Variable, Parameter, Argument) 常量 (Constant) 面向对象 - 类名 (Class Name) 面向对象 - 成员 (mebmer) HTML 全部小写，不同单词以「-」分隔 e.g: user-id CSS、SCSS 全部小写，不同单词以「-」分隔，CSS 变量以「\\u0026ndash;」开头，SCSS 变量以「」开头\\u0026lt;br /\\u0026gt;e.g: .user-id、--header-height、header-height JavaScript 驼峰式命名法 首字小写，不同单字「首字以大写」分隔 e.g: userId 全部大写，不同单字以「_」分隔 MAX_COUNT 驼峰式命名法 首字大写，不同单字「首字以大写」分隔 一个文件放一个 Class, 文件名即为 Class Name e.g: User 驼峰式命名法 公有 (public) : 首字小写，不同单词「首字以大写」分隔 e.g: name, getName 私有 (private): _公有命名规则 e.g: _name,_getName Vue Java PHP 全部小写，不同单词以「_」分隔 e.g: user_id Python SQL 由使用者定义的：表名、字段名 全部小写，不同单词以「_」分隔 SQL 语法、函数全部大写 e.g: SELECT、INSERT INTO \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:4:2\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#字母与分隔\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"65 通用 代码编写 每个函数应该使用块注释，注释应包含函数功能说明、参数说明。规则见：JSDoc、JavaDoc 不必要的代码不要写，也应禁止放到注释里面！ if-else 的 {} 严禁省略 代码规范、代码排版等可通过 eslint 等工具做统一处理 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:5:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#通用\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"65.1 正确写法 public function test () { // do something if (a === b) { // do something } } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:5:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#正确写法\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"66 错误写法 public function test () { // do something if (a === b) { // do something } } 代码排版 任何代码应该以 2 个 space 为一个缩进做好排版、不可使用 tab 函数 (Function, Methd) 函数声明时需在函数上方加上函数注释，注释应包含函数说明、参数内容（参数类型、参数英文名称、参数说明）、返回值内容（返回值类型、返回值说明） 类 (Class) 一个类（Class）的声明只能存在一个文件 类（Class）的声明文件，文件名必须为类名 其他 连接本地任何其他资源（图片、文件、网站）皆使用相对路径，禁止使用绝对路径，非本地资源除外 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:6:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#错误写法\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"67 HTML \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:7:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#html\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"67.1 代码编写 禁止在 HTML 使用 \\u0026lt;style\\u0026gt;、\\u0026lt;script\\u0026gt;，一律使用外部档案引用方式引用 CSS、JavaScript 文件 HTML 标签需成双成对，有头有尾 块级标签：\\u0026lt;tag\\u0026gt;\\u0026lt;/tag\\u0026gt; 单标签：\\u0026lt;tag /\\u0026gt; 禁止使用已被 HTML 舍弃的旧标签、属性，如： \\u0026lt;!-- html tag --\\u0026gt; \\u0026lt;center\\u0026gt; \\u0026lt;font\\u0026gt; \\u0026lt;basefont\\u0026gt; \\u0026lt;s\\u0026gt; \\u0026lt;strike\\u0026gt; \\u0026lt;u\\u0026gt; \\u0026lt;listing\\u0026gt; \\u0026lt;plaintext\\u0026gt; \\u0026lt;xmp\\u0026gt; \\u0026lt;!-- html attribute --\\u0026gt; align bgcolor color \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:7:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#代码编写\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"68 CSS CSS 的定义应该独立一个 CSS 文件，禁止使用 \\u0026lt;style\\u0026gt; 或 style 属性直接在 HTML 中定义样式。 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:8:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#css\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"69 JavaScript 禁止使用 HTML 字串，一律使用 Dom 产生 HTML, e.g: document.createDocumentFragment() \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:9:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#javascript\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"69.1 注释 JavaScript 注释应该遵循 JSDoc 的标准撰写 69.1.1 全局变量 (Global) /* global ZT */ 69.1.2 常量 (Constant) /** * 常量說明 * @type {常量类型} */ Example /** * 请求地址 * @type {String} */ const REQUEST_URL = \\u0026#39;http://localhost:8080\\u0026#39;; 69.1.3 函數、方法 (Function, Method) /** * 函数用途说明 * @param {参数类型} 参数名称参数说明 * @param {参数类型} [选择性参数名称] 参数说明 * @param {参数类型} [选择性参数名称=参数预设值] 参数说明 * @returns {返回值类型} 返回值说明 */ Example /** * 取得使用者 * @param {Int} userId 使用者 ID * @param {Object} [options] 其他选项 * @param {String} [options.query=\\u0026#39;a\\u0026#39;] 查询关键词 默认为 \\u0026#39;a\\u0026#39; * @returns {Object} 使用者资料 */ function getUser(userId, options) { // do something return user; } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:9:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#注释\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"69.1 注释 JavaScript 注释应该遵循 JSDoc 的标准撰写 69.1.1 全局变量 (Global) /* global ZT */ 69.1.2 常量 (Constant) /** * 常量說明 * @type {常量类型} */ Example /** * 请求地址 * @type {String} */ const REQUEST_URL = \\u0026#39;http://localhost:8080\\u0026#39;; 69.1.3 函數、方法 (Function, Method) /** * 函数用途说明 * @param {参数类型} 参数名称参数说明 * @param {参数类型} [选择性参数名称] 参数说明 * @param {参数类型} [选择性参数名称=参数预设值] 参数说明 * @returns {返回值类型} 返回值说明 */ Example /** * 取得使用者 * @param {Int} userId 使用者 ID * @param {Object} [options] 其他选项 * @param {String} [options.query=\\u0026#39;a\\u0026#39;] 查询关键词 默认为 \\u0026#39;a\\u0026#39; * @returns {Object} 使用者资料 */ function getUser(userId, options) { // do something return user; } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:9:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#全局变量-global\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"69.1 注释 JavaScript 注释应该遵循 JSDoc 的标准撰写 69.1.1 全局变量 (Global) /* global ZT */ 69.1.2 常量 (Constant) /** * 常量說明 * @type {常量类型} */ Example /** * 请求地址 * @type {String} */ const REQUEST_URL = \\u0026#39;http://localhost:8080\\u0026#39;; 69.1.3 函數、方法 (Function, Method) /** * 函数用途说明 * @param {参数类型} 参数名称参数说明 * @param {参数类型} [选择性参数名称] 参数说明 * @param {参数类型} [选择性参数名称=参数预设值] 参数说明 * @returns {返回值类型} 返回值说明 */ Example /** * 取得使用者 * @param {Int} userId 使用者 ID * @param {Object} [options] 其他选项 * @param {String} [options.query=\\u0026#39;a\\u0026#39;] 查询关键词 默认为 \\u0026#39;a\\u0026#39; * @returns {Object} 使用者资料 */ function getUser(userId, options) { // do something return user; } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:9:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#常量-constant\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"69.1 注释 JavaScript 注释应该遵循 JSDoc 的标准撰写 69.1.1 全局变量 (Global) /* global ZT */ 69.1.2 常量 (Constant) /** * 常量說明 * @type {常量类型} */ Example /** * 请求地址 * @type {String} */ const REQUEST_URL = \\u0026#39;http://localhost:8080\\u0026#39;; 69.1.3 函數、方法 (Function, Method) /** * 函数用途说明 * @param {参数类型} 参数名称参数说明 * @param {参数类型} [选择性参数名称] 参数说明 * @param {参数类型} [选择性参数名称=参数预设值] 参数说明 * @returns {返回值类型} 返回值说明 */ Example /** * 取得使用者 * @param {Int} userId 使用者 ID * @param {Object} [options] 其他选项 * @param {String} [options.query=\\u0026#39;a\\u0026#39;] 查询关键词 默认为 \\u0026#39;a\\u0026#39; * @returns {Object} 使用者资料 */ function getUser(userId, options) { // do something return user; } \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:9:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#函數方法-function-method\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"70 Vue 待补充 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:10:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#vue\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"71 Java Java 注释应该遵循 JavaDoc 的标准撰写 待补充 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:11:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#java\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72 PHP \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#php\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72.1 前端参数取得 参数取得需通过 filter_input 函数取得，不得使用 _GET、_POST \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#前端参数取得\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72.2 输出到前台 参数命名必须为：全部小写，不同单字以「_」分隔 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:2\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#输出到前台\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72.3 注解 PHP 注解应该遵循 PHPDoc 的标准撰写 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:3\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#注解\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72.4 成员变量 (Member) 成员变量只的是 Class 内的成员变数，我们都会要求替成员变量增加注解说明。通常 Function 的变量除非太特别否则都不需要特别注解说明。 /** * 成员变量說明 * @type {类型} */ Example /** * 使用者 ID * @type {String} */ $userId = \\u0026#39;Hello\\u0026#39;; \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:4\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#成员变量-member\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"72.5 函数、方法 (Function, Method) /** * 函数用途说明 * @param 参数型态 参数名称 参数说明 * @option 参数选项类型 参数选项名称 参数选项说明 * @uses 全局变量 全域变数说明 * @returns 返回值类型 返回值说明 */ Example /** * 取得使用者 * @param int userId 使用者 ID * @param object options 其他选项 * @option string options[\\u0026#39;query\\u0026#39;] 查询关键字 * @uses $_POST[\\u0026#39;role_id\\u0026#39;] 从前端以 POST 取得角色 ID * @returns object 使用者资料 */ function getUser ($userId, $options) { // do something return $user; }; \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:12:5\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#函数方法-function-method\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"73 Python 待补充 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:13:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#python\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"74 Database 禁止使用 Table Join。 禁止使用 Oracle Trigger。 禁止将查询数据库的 SQL 放在循环中查询 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:14:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#database\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"74.1 SQL 撰写 属于 SQL 语法使用大写（SELECT，WHERE，INSERT etc..） 属于使用者自己定义的使用小写（表名 table name，字段名 column name etc..） 表名、字段名前后需加上 ` Example INSERT INTO `user` VALUES(\\u0026#39;a\\u0026#39;, \\u0026#39;b\\u0026#39;); \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:14:1\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#sql-撰写\"},{\"categories\":[\"Spec\"],\"collections\":null,\"content\":\"75 统一用词 系统中常用词，例如弹出框按钮、搜索框等，仅为举例，不限与此。 用词 统一 最后、最终 最后 关闭、Cancel、取消 取消 存储、保存、修改、OK、确定 确定 搜寻、查询、查找、搜索 搜索 \",\"date\":\"2019-08-15\",\"objectID\":\"/posts/dev-rules/:15:0\",\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"title\":\"Web 开发规则，代码规范\",\"uri\":\"/posts/dev-rules/#统一用词\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\" 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh， PHP 表单安全性的重要提示 $_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]变量能够被黑客利用！ 如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。 比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。 跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。 可以像 valine 一样在用户输入完后保留输入，还有一些正则控制输入提示等简单功能。UI 就丑爆了算了。 \\u0026lt;!DOCTYPE HTML\\u0026gt; \\u0026lt;html\\u0026gt; \\u0026lt;head\\u0026gt; \\u0026lt;style\\u0026gt; .error {color: #FF0000;} .main{ width: 20%; height: 100%; border: 1px #000 solid; padding: 20px; } \\u0026lt;/style\\u0026gt; \\u0026lt;/head\\u0026gt; \\u0026lt;body\\u0026gt; \\u0026lt;?php // 定义变量并设置为空值 $nameErr = $emailErr = $genderErr = $websiteErr = \\u0026#34;\\u0026#34;; $name = $email = $gender = $comment = $website = \\u0026#34;\\u0026#34;; if ($_SERVER[\\u0026#34;REQUEST_METHOD\\u0026#34;] == \\u0026#34;POST\\u0026#34;) { if (empty($_POST[\\u0026#34;name\\u0026#34;])) { $nameErr = \\u0026#34;Name is required\\u0026#34;; } else { $name = test_input($_POST[\\u0026#34;name\\u0026#34;]); // 检查名字是否包含字母和空格 if (!preg_match(\\u0026#34;/^[a-zA-Z ]*$/\\u0026#34;,$name)) { $nameErr = \\u0026#34;Only letters and white space allowed\\u0026#34;; } } if (empty($_POST[\\u0026#34;email\\u0026#34;])) { $emailErr = \\u0026#34;Email is required\\u0026#34;; } else { $email = test_input($_POST[\\u0026#34;email\\u0026#34;]); // 检查电邮地址语法是否有效 if (!preg_match(\\u0026#34;/([\\\\w\\\\-]+\\\\@[\\\\w\\\\-]+\\\\.[\\\\w\\\\-]+)/\\u0026#34;,$email)) { $emailErr = \\u0026#34;Invalid email format\\u0026#34;; } } if (empty($_POST[\\u0026#34;website\\u0026#34;])) { $website = \\u0026#34;\\u0026#34;; } else { $website = test_input($_POST[\\u0026#34;website\\u0026#34;]); // 检查 URL 地址语言是否有效（此正则表达式同样允许 URL 中的下划线） if (!preg_match(\\u0026#34;/\\\\b(?:(?:https?|ftp):\\\\/\\\\/|www\\\\.)[-a-z0-9+\\u0026amp;@#\\\\/%?=~_|!:,.;]*[-a-z0-9+\\u0026amp;@#\\\\/% =~_|]/i\\u0026#34;,$website)) { $websiteErr = \\u0026#34;Invalid URL\\u0026#34;; } } if (empty($_POST[\\u0026#34;comment\\u0026#34;])) { $comment = \\u0026#34;\\u0026#34;; } else { $comment = test_input($_POST[\\u0026#34;comment\\u0026#34;]); } if (empty($_POST[\\u0026#34;gender\\u0026#34;])) { $genderErr = \\u0026#34;Gender is required\\u0026#34;; } else { $gender = test_input($_POST[\\u0026#34;gender\\u0026#34;]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?\\u0026gt; \\u0026lt;div class=\\u0026#34;main\\u0026#34;\\u0026gt; \\u0026lt;h2\\u0026gt;PHP 验证实例\\u0026lt;/h2\\u0026gt; \\u0026lt;form method=\\u0026#34;post\\u0026#34; action=\\u0026#34;\\u0026lt;?php echo htmlspecialchars($_SERVER[\\u0026#39;PHP_SELF\\u0026#39;]);?\\u0026gt;\\u0026#34;\\u0026gt; 姓名：\\u0026lt;input type=\\u0026#34;text\\u0026#34; name=\\u0026#34;name\\u0026#34; value=\\u0026#34;\\u0026lt;?php echo $name;?\\u0026gt;\\u0026#34;\\u0026gt; \\u0026lt;span class=\\u0026#34;error\\u0026#34;\\u0026gt;* \\u0026lt;?php echo $nameErr;?\\u0026gt;\\u0026lt;/span\\u0026gt; \\u0026lt;br\\u0026gt;\\u0026lt;br\\u0026gt; 性别： \\u0026lt;input type=\\u0026#34;radio\\u0026#34; name=\\u0026#34;gender\\u0026#34; \\u0026lt;?php if (isset($gender) \\u0026amp;\\u0026amp; $gender==\\u0026#34;女性\\u0026#34;) echo \\u0026#34;checked\\u0026#34;;?\\u0026gt; value=\\u0026#34;女性\\u0026#34;\\u0026gt;女性 \\u0026lt;input type=\\u0026#34;radio\\u0026#34; name=\\u0026#34;gender\\u0026#34; \\u0026lt;?php if (isset($gender) \\u0026amp;\\u0026amp; $gender==\\u0026#34;男性\\u0026#34;) echo \\u0026#34;checked\\u0026#34;;?\\u0026gt; value=\\u0026#34;男性\\u0026#34;\\u0026gt;男性 \\u0026lt;span class=\\u0026#34;error\\u0026#34;\\u0026gt;* \\u0026lt;?php echo $genderErr;?\\u0026gt;\\u0026lt;/span\\u0026gt; \\u0026lt;br\\u0026gt;\\u0026lt;br\\u0026gt; 电邮：\\u0026lt;input type=\\u0026#34;text\\u0026#34; name=\\u0026#34;email\\u0026#34; value=\\u0026#34;\\u0026lt;?php echo $email;?\\u0026gt;\\u0026#34;\\u0026gt; \\u0026lt;span class=\\u0026#34;error\\u0026#34;\\u0026gt;* \\u0026lt;?php echo $emailErr;?\\u0026gt;\\u0026lt;/span\\u0026gt; \\u0026lt;br\\u0026gt;\\u0026lt;br\\u0026gt; 网址：\\u0026lt;input type=\\u0026#34;text\\u0026#34; name=\\u0026#34;website\\u0026#34; value=\\u0026#34;\\u0026lt;?php echo $website;?\\u0026gt;\\u0026#34;\\u0026gt; \\u0026lt;span class=\\u0026#34;error\\u0026#34;\\u0026gt;\\u0026lt;?php echo $websiteErr;?\\u0026gt;\\u0026lt;/span\\u0026gt; \\u0026lt;br\\u0026gt;\\u0026lt;br\\u0026gt; 评论：\\u0026lt;textarea name=\\u0026#34;comment\\u0026#34; rows=\\u0026#34;5\\u0026#34; cols=\\u0026#34;40\\u0026#34;\\u0026gt;\\u0026lt;?php echo $comment;?\\u0026gt;\\u0026lt;/textarea\\u0026gt; \\u0026lt;br\\u0026gt;\\u0026lt;br\\u0026gt; \\u0026lt;input type=\\u0026#34;submit\\u0026#34; name=\\u0026#34;submit\\u0026#34; value=\\u0026#34;提交\\u0026#34;\\u0026gt; \\u0026lt;h2\\u0026gt;你的输入是：\\u0026lt;/h2\\u0026gt; \\u0026lt;?php echo $name.\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; echo $gender.\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; echo $email.\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; echo $website.\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; echo $comment.\\u0026#34;\\u0026lt;br/\\u0026gt;\\u0026#34;; ?\\u0026gt; \\u0026lt;br/\\u0026gt; \\u0026lt;/form\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/body\\u0026gt; \\u0026lt;/html\\u0026gt; \",\"date\":\"2019-07-19\",\"objectID\":\"/posts/phpform/:0:0\",\"tags\":[\"PHP\"],\"title\":\"简单评论模块--php 表单练习\",\"uri\":\"/posts/phpform/#\"},{\"categories\":[\"PHP\"],\"collections\":null,\"content\":\" 练习 php 函数的基本使用。 注： 必选参数在可选参数的前面。 可在函数中定义函数，需要先调用外层函数才能调用内层函数。 \\u0026lt;?php /* 创建表格 */ function createTable($rows,$cols,$bgcolor=\\u0026#39;pink\\u0026#39;,$content=\\u0026#39;x\\u0026#39;){ $table = \\u0026#34;\\u0026lt;table border=\\u0026#39;1\\u0026#39; bgcolor=\\u0026#39;{$bgcolor}\\u0026#39; cellpadding=\\u0026#39;10\\u0026#39; cellspacing=\\u0026#39;0\\u0026#39; width=\\u0026#39;50%\\u0026#39; \\u0026gt;\\u0026#34;; for($i=1;$i\\u0026lt;=$rows;$i++){ $table.=\\u0026#34;\\u0026lt;tr\\u0026gt;\\u0026#34;; for($j=1;$j\\u0026lt;=$cols;$j++){ $table.=\\u0026#34;\\u0026lt;td\\u0026gt;{$content}\\u0026lt;/td\\u0026gt;\\u0026#34;; } $table .=\\u0026#34;\\u0026lt;/tr\\u0026gt;\\u0026#34;; } $table.=\\u0026#34;\\u0026lt;/table\\u0026gt;\\u0026#34;; return $table; } echo createTable(5,5,\\u0026#39;pink\\u0026#39;,\\u0026#39;hello lruihao\\u0026#39;); ?\\u0026gt; \",\"date\":\"2019-07-15\",\"objectID\":\"/posts/phpfunc/:0:0\",\"tags\":[\"PHP\"],\"title\":\"php 函数学习\",\"uri\":\"/posts/phpfunc/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 使用 WAMPServer 时自定义网站根目录。 \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:0:0\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 WAMPServer 自定义网站根目录 \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:1:0\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#wampserver-自定义网站根目录\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.1 修改 apache 配置文件 打开httpd.conf文件搜索documentroot后，找到路径修改为自定义的。 再打开httpd-vhost.conf文件修改对应的路径。 修改完配置文件需要重启所有服务！ \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:1:1\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#修改-apache-配置文件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.2 修改 wampmanager 文件 在 wampserver 安装路径根目录知道wampmanager.ini和wampmanager.tpl两个文件。搜索menu.left, 然后也修改为自定义的路径。 然后退出，重启软件！ \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:1:2\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#修改-wampmanager-文件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13.3 编写 php 文件测试 \\u0026lt;?php echo \\u0026#34;hello world\\u0026#34;; ?\\u0026gt; \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:1:3\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#编写-php-文件测试\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 WAMPServer 多站点配置 打开httpd-vhost.conf文件，复制原有的几行配置文件，粘贴修改路径和域名等配置。比如 ## Virtual Hosts # \\u0026lt;VirtualHost *:80\\u0026gt; ServerName localhost ServerAlias localhost DocumentRoot \\u0026#34;g:/Demo\\u0026#34; \\u0026lt;Directory \\u0026#34;g:/Demo\\u0026#34;\\u0026gt; Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local \\u0026lt;/Directory\\u0026gt; \\u0026lt;/VirtualHost\\u0026gt; \\u0026lt;VirtualHost *:80\\u0026gt; ServerName test01.com DocumentRoot \\u0026#34;g:/Demo/test01\\u0026#34; \\u0026lt;/VirtualHost\\u0026gt; \\u0026lt;VirtualHost *:80\\u0026gt; ServerName test02.com DocumentRoot \\u0026#34;g:/Demo/test02\\u0026#34; \\u0026lt;/VirtualHost\\u0026gt; 再打开C:\\\\Windows\\\\System32\\\\drivers\\\\etc\\\\hosts文件，在文件最后添加类似于云服务器的域名解析，进行本地域名解析，当输入域名时优先从本地申请资源。 ... ## For example: # ## 102.54.94.97 rhino.acme.com ## source server ## 38.25.63.10 x.acme.com ## x client host ## localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 127.0.0.1 steamcommunity.com 192.168.28.1 windows10.microdone.cn 127.0.0.1 localhost ::1 localhost 127.0.0.1 test01.com 127.0.0.1 test02.com \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:2:0\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#wampserver-多站点配置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 WAMPServer 自拟定端口 WAMP 服务我安装了好几次，每次因为修改配置文件搞崩了。第一次装的时候发现 80 端口被占用了，因为以前玩了一下 Windows 的 IIS，暂停 IIS 的网站，再使用命令或者直接在控制面板关掉就好了。 如果不使用 80 多为默认端口，比如修改为 8080，还是在httpd.conf文件里修改。搜索80都改成8080然后，Ctrl+S 保存，重新启动 WampServer 在浏览器地址栏输入localhost:8000 #监听端口 Listen 0.0.0.0:8080 Listen [::0]:8080 ServerName localhost:8080 使用 Notepad++打开 C:\\\\wamp 目录下的 wampmanager.ini 和 wampmanager.tpl Ctrl+F 查找 localhost 将其全部替换为localhost:8000 然后，Ctrl+S 保存，重新启动 WampServer \",\"date\":\"2019-07-12\",\"objectID\":\"/posts/wamproot/:3:0\",\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"title\":\"WAMPServer 自定义网站根目录等设置\",\"uri\":\"/posts/wamproot/#wampserver-自拟定端口\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 后面几天讲的有点杂，简单记录一下知识点。 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:0:0\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13 6.19 这些知识点在课上都只是简单的提到了一下。 比如一些库的使用与安装都不会再课上详细讲解，需要课后再去研究。 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:0\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#619\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.1 切片操作 列表切片操作 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:1\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#切片操作\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.2 字符串 13.2.1 python 原始字符串 print(r\\u0026#34;D:\\\\three\\\\two\\u0026#34;) 13.2.2 长字符串 用三个单引号或者双引号包裹，前后呼应，成双成对。 13.2.3 用、换行字符表示字符未结束 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#字符串\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.2 字符串 13.2.1 python 原始字符串 print(r\\u0026#34;D:\\\\three\\\\two\\u0026#34;) 13.2.2 长字符串 用三个单引号或者双引号包裹，前后呼应，成双成对。 13.2.3 用、换行字符表示字符未结束 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#python-原始字符串\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.2 字符串 13.2.1 python 原始字符串 print(r\\u0026#34;D:\\\\three\\\\two\\u0026#34;) 13.2.2 长字符串 用三个单引号或者双引号包裹，前后呼应，成双成对。 13.2.3 用、换行字符表示字符未结束 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#长字符串\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.2 字符串 13.2.1 python 原始字符串 print(r\\u0026#34;D:\\\\three\\\\two\\u0026#34;) 13.2.2 长字符串 用三个单引号或者双引号包裹，前后呼应，成双成对。 13.2.3 用、换行字符表示字符未结束 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#用换行字符表示字符未结束\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.3 格式化输出 format \\u0026quot;=={}==\\u0026quot;，{}表示占位符，其前后字符保持原样输出。 #TempConvert.py TempStr = input(\\u0026#34;请输入带有符号的温度值：\\u0026#34;) if TempStr[-1] in [\\u0026#39;F\\u0026#39;,\\u0026#39;f\\u0026#39;]: C = (eval(TempStr[0:-1]) - 32)/1.8 print(\\u0026#34;转换后的温度是{:.2f}C\\u0026#34;.format(C)) elif TempStr[-1] in [\\u0026#39;C\\u0026#39;,\\u0026#39;c\\u0026#39;]: F = 1.8*eval(TempStr[0:-1]) + 32 print(\\u0026#34;转换后的温度是{:.2f}F\\u0026#34;.format(F)) else: print(\\u0026#34;输入格式错误\\u0026#34;) \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:3\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#格式化输出-format\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.4 多变量赋值与交换（斐波那契数列） python 3.x 版本 end=\\u0026quot;\\u0026quot; 可使输出不换行 print(x, end=\\u0026#34;\\u0026#34;) #斐波那契数列 a, b = 1,1 while a \\u0026lt; 500: ## 输出不大于 500 的序列 print(a,end=\\u0026#34;,\\u0026#34;) a,b = b,a + b #交换变量 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:4\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#多变量赋值与交换斐波那契数列\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.5 笑傲江湖统计字符 (dict, 文件流） 统计《笑傲江湖》小说中出现的所有中文字符及标点符号的数量，每个字符及数目间用冒号:隔开，例如\\u0026quot;笑：1024\\u0026quot;，将所有字符及数量的对应采用逗号分隔，以 CSV 文件格式保存到“笑傲江湖--字符统计。txt”文件中。注意，统计字符不包括空格和回车。 csv 文件格式： ‘,’逗号连接元素 fi = open(\\u0026#34;data/笑傲江湖 - 网络版。txt\\u0026#34;,\\u0026#34;r\\u0026#34;,encoding=\\u0026#34;utf-8\\u0026#34;) fo = open(\\u0026#34;data/笑傲江湖 - 字符统计。txt\\u0026#34;,\\u0026#34;w\\u0026#34;,encoding=\\u0026#34;utf-8\\u0026#34;) txt = fi.read() #打开文件 #txt d = {} for c in txt: d[c] = d.get(c,0)+1 del d[\\u0026#39; \\u0026#39;] #删除字典中的空格和回车的键值对 del d[\\u0026#39;\\\\n\\u0026#39;] ls = [] for key in d: ls.append(\\u0026#34;{}:{}\\u0026#34;.format(key,d[key])) fo.write(\\u0026#34;,\\u0026#34;.join(ls)) fi.close() fo.close() \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:5\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#笑傲江湖统计字符-dict-文件流\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.6 numpy 模块 \\u0026hellip; \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:6\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#numpy-模块\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"13.7 pandas 模块 \\u0026hellip; \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:1:7\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#pandas-模块\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"14 6.20 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:2:0\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#620\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"14.1 matplotlib 绘图 import matplotlib.pyplot as plt import numpy as np x = np.arange(-5,5,0.01) y = 2**x+1 plt.plot(x,y) plt.title(\\u0026#34;y=2^x+1\\u0026#34;,fontsize=24) plt.xlabel(\\u0026#34;X\\u0026#34;,fontsize=14) plt.ylabel(\\u0026#34;Y\\u0026#34;,fontsize=14) plt.tick_params(axis=\\u0026#34;both\\u0026#34;,labelsize=14) plt.show() \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:2:1\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#matplotlib-绘图\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"14.2 爬虫 举了一个金融界，炒股，获取数据的爬虫 （今天没仔细听课，这数据爬过什么意思，咱不懂，咱也不敢问！） #! /usr/bin/env python #-*- encoding: utf-8 -*- #author pythontab.com import numpy as np import matplotlib.pyplot as plt import pandas as pd import pandas_datareader.data as web import datetime #import tushare as ts df_stockload = web.DataReader(\\u0026#34;000001.SS\\u0026#34;, \\u0026#34;yahoo\\u0026#34;, datetime.datetime(2017,1,1), datetime.date.today()) #print(type(datetime.datetime.now().strftime(\\u0026#39;%Y-%m-%d\\u0026#39;))) #df_stockload = ts.get_hist_data(\\u0026#39;sh\\u0026#39;,start=\\u0026#39;2017-01-01\\u0026#39;,end=datetime.datetime.now().strftime(\\u0026#39;%Y-%m-%d\\u0026#39;)) print (df_stockload.columns)#查看列名 print (df_stockload.index)#查看索引 print (df_stockload.describe())#查看各列数据描述性统计 #绘制移动平均线 df_stockload.Close.plot(c=\\u0026#39;b\\u0026#39;) df_stockload.Close.rolling(window=30).mean().plot(c=\\u0026#39;r\\u0026#39;) #pd.rolling_mean(df_stockload.Close,window=30).plot(c=\\u0026#39;r\\u0026#39;) df_stockload.Close.rolling(window=60).mean().plot(c=\\u0026#39;g\\u0026#39;) #pd.rolling_mean(df_stockload.Close,window=60).plot(c=\\u0026#39;g\\u0026#39;) plt.legend([\\u0026#39;Close\\u0026#39;,\\u0026#39;30ave\\u0026#39;,\\u0026#39;60ave\\u0026#39;],loc=\\u0026#39;best\\u0026#39;) plt.show() Index([\\u0026#39;High\\u0026#39;, \\u0026#39;Low\\u0026#39;, \\u0026#39;Open\\u0026#39;, \\u0026#39;Close\\u0026#39;, \\u0026#39;Volume\\u0026#39;, \\u0026#39;Adj Close\\u0026#39;], dtype=\\u0026#39;object\\u0026#39;) DatetimeIndex([\\u0026#39;2017-01-03\\u0026#39;, \\u0026#39;2017-01-04\\u0026#39;, \\u0026#39;2017-01-05\\u0026#39;, \\u0026#39;2017-01-06\\u0026#39;, \\u0026#39;2017-01-09\\u0026#39;, \\u0026#39;2017-01-10\\u0026#39;, \\u0026#39;2017-01-11\\u0026#39;, \\u0026#39;2017-01-12\\u0026#39;, \\u0026#39;2017-01-13\\u0026#39;, \\u0026#39;2017-01-16\\u0026#39;, ... \\u0026#39;2019-06-05\\u0026#39;, \\u0026#39;2019-06-06\\u0026#39;, \\u0026#39;2019-06-10\\u0026#39;, \\u0026#39;2019-06-11\\u0026#39;, \\u0026#39;2019-06-12\\u0026#39;, \\u0026#39;2019-06-13\\u0026#39;, \\u0026#39;2019-06-14\\u0026#39;, \\u0026#39;2019-06-19\\u0026#39;, \\u0026#39;2019-06-20\\u0026#39;, \\u0026#39;2019-06-21\\u0026#39;], dtype=\\u0026#39;datetime64[ns]\\u0026#39;, name=\\u0026#39;Date\\u0026#39;, length=596, freq=None) High Low Open Close Volume \\\\ count 596.000000 596.000000 596.000000 596.000000 5.960000e+02 mean 3076.147753 3039.201569 3056.960338 3060.169056 5.098201e+06 std 269.276147 273.757358 271.612122 272.072346 1.199107e+08 min 2488.479004 2440.906982 2446.019043 2464.363037 8.820000e+04 25% 2845.308228 2800.168762 2825.239502 2827.754822 1.375250e+05 50% 3153.184937 3118.613525 3134.300537 3139.085449 1.666500e+05 75% 3280.115234 3244.825256 3265.322021 3268.600342 2.091250e+05 max 3587.031982 3534.195068 3563.639893 3559.465088 2.927580e+09 Adj Close count 596.000000 mean 3060.169056 std 272.072346 min 2464.363037 25% 2827.754822 50% 3139.085449 75% 3268.600342 max 3559.465088 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:2:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#爬虫\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15 6.21 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:0\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#621\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.1 类 比第一天稍微仔细一点讲了一下类，有点需要注意： self相当于this表示当前对象 python 类的所有函数的第一个参数都要写self参数，self 也可以是其他的比如lrh等字符替代，但是必须保持一致。 __表示私有的 class 的定义可以不加 (),() 内可写继承的父类 \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:1\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#类\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.2 GUI 设计 wxPython pip install wxPython import wx import wx #导入 wxPython 库 class Panel(wx.Panel): def __init__(self,parent): wx.Panel.__init__(self,parent=parent, id=-1) pass class Frame(wx.Frame): def __init__(self): wx.Frame.__init__(self, parent = None, title = u\\u0026#39;量化软件\\u0026#39;, size=(1000,600), style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX) self.DispPanel= Panel(self) pass class App(wx.App): def OnInit(self): self.frame = Frame() self.frame.Show() self.SetTopWindow(self.frame) return True if __name__ == \\u0026#39;__main__\\u0026#39;: app = App() app.MainLoop() import wx app = wx.App() window = wx.Frame(None, title=\\u0026#34;wxPython 你好！\\u0026#34;, size=(400, 300)) panel = wx.Panel(window) label = wx.StaticText(panel, label=\\u0026#34;Hello World\\u0026#34;, pos=(100, 100)) window.Show(True) app.MainLoop() \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:2\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#gui-设计-wxpython\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.3 talib 库的安装 下载 whl 文件 pip install TA_Lib-0.4.17-cp37-cp37m-win_amd64.whl pip install TA-Lib \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:3\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#talib-库的安装\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.4 选择排序递归版 def SelectSort(L): L=L[:] if len(L)\\u0026lt;=1: return L min = 0 for i in range(1,len(L)): if L[i]\\u0026lt;L[min]: min = i L[min],L[0] = L[0],L[min] return [L[0]]+SelectSort(L[1:]) L = [5,2,3,6,1,9,8,10,0] print(SelectSort(L)) [0, 1, 2, 3, 5, 6, 8, 9, 10] \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:4\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#选择排序递归版\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.5 机房上机系统（自我实践） import time class student(): def __init__(self,stu_no=\\u0026#34;\\u0026#34;,stu_name=\\u0026#34;\\u0026#34;,stu_xi=\\u0026#34;\\u0026#34;,stu_time=\\u0026#34;\\u0026#34;): self.stu_no = stu_no self.stu_name = stu_name self.stu_xi = stu_xi self.stu_time = stu_time def print(self): print(\\u0026#34;学号：\\u0026#34;+self.stu_no+\\u0026#34;\\\\t 姓名：\\u0026#34;+self.stu_name+\\u0026#34;\\\\t 系别：\\u0026#34;+self.stu_xi+\\u0026#34;\\\\t 机时 (h)：\\u0026#34;+self.stu_time) def get_stu_name(self): return self.stu_name def get_stu_time(self): return int(self.stu_time) def set_stu_time(self,add_time): self.stu_time = add_time def menu(): print(\\u0026#34;\\\\t 机房上机系统 V0.1\\u0026#34;) print(\\u0026#34;********************************\\u0026#34;) print(\\u0026#34;\\\\t—\\u0026gt;1. 录入学生信息\\u0026#34;) print(\\u0026#34;\\\\t—\\u0026gt;2. 上机\\u0026#34;) print(\\u0026#34;\\\\t—\\u0026gt;3. 下机\\u0026#34;) print(\\u0026#34;\\\\t—\\u0026gt;4. 缴费\\u0026#34;) print(\\u0026#34;\\\\t—\\u0026gt;5. 退出\\u0026#34;) print(\\u0026#34;********************************\\u0026#34;) select = eval(input(\\u0026#34;请输入序号：\\u0026#34;)) while select not in [1,2,3,4,5]: print(\\u0026#34;输入错误，请重新输入！\\u0026#34;) select = eval(input(\\u0026#34;请输入序号：\\u0026#34;)) return select def get_time(): #获取当前时间 return time.strftime(\\u0026#34;%H:%M:%S\\u0026#34;, time.localtime()) def main(): ## 全局变量 text = [] ## 上机记录列表 start_time = \\u0026#34;\\u0026#34; end_time = \\u0026#34;\\u0026#34; sum = 0 ## 本系统按小时计费，不足一小时按一小时算 people = student() online_flag = False down_flag = False input_flag = False while True: select = menu() ## 启用菜单 if select == 1: if input_flag: print(\\u0026#34;已录入，无需重复操作，缴费请输入 4:\\u0026#34;) continue else: input_flag = True stu_no = input(\\u0026#34;请输入学号：\\u0026#34;) stu_name = input(\\u0026#34;请输入姓名：\\u0026#34;) stu_xi = input(\\u0026#34;请输入系别：\\u0026#34;) stu_time = input(\\u0026#34;请输入机时：\\u0026#34;) people = student(stu_no,stu_name,stu_xi,stu_time) people.print() continue elif select == 2: if not input_flag: print(\\u0026#34;未录入学生信息，请录入！\\u0026#34;) continue if not online_flag: online_flag = True start_time = get_time() start_num = int(start_time[0:2]) #print(start_num) text.append(\\u0026#34;上机时间：\\u0026#34;+start_time) print(\\u0026#34;已上机！上机时间为：\\u0026#34;+start_time) continue else: print(\\u0026#34;已上机！上机时间为：\\u0026#34;+start_time) continue elif select == 3: if not online_flag: print(\\u0026#34;还未上机，请上机！\\u0026#34;) continue else: end_time = get_time() end_num = int(end_time[0:2]) sum = end_num - start_num sum = sum if(sum\\u0026gt;=0) else sum+24 sum = sum+1 if(sum==0) else sum print(\\u0026#34;已下机！下机时间为：\\u0026#34;+end_time+\\u0026#34;\\\\n 上机时长 (h)：\\u0026#34;+str(sum)+\\u0026#34;\\\\t 剩余机时 (h)：\\u0026#34;+str(people.get_stu_time()-sum)) text.append(\\u0026#34;下机时间：\\u0026#34;+end_time+\\u0026#34;\\\\n 上机时长 (h)：\\u0026#34;+str(sum)+\\u0026#34;\\\\t\\u0026#34;+people.get_stu_name()+\\u0026#34;剩余机时 (h)：\\u0026#34;+str(people.get_stu_time()-sum)) people.set_stu_time(str(people.get_stu_time()-sum)) down_flag = True continue elif select == 4: if not input_flag: print(\\u0026#34;未录入学生信息，请录入！\\u0026#34;) continue else: people.print() add_time = eval(input(\\u0026#34;请输入机时：\\u0026#34;)) people.set_stu_time(str(add_time+people.get_stu_time())) people.print() else: if down_flag: print(\\u0026#34;3s 后退出系统，感谢使用！\\u0026#34;) time.sleep(3) ## 延迟 3s，显示提示文字 break ## 退出系统 写入文件 else: print(\\u0026#34;请下机！\\u0026#34;) continue #写入 computer.txt 文件 fo = open(\\u0026#34;D:\\\\\\\\computer.txt\\u0026#34;,\\u0026#34;w\\u0026#34;,encoding=\\u0026#34;utf-8\\u0026#34;) fo.write(\\u0026#34;\\\\n\\u0026#34;.join(text)) fo.close() if __name__==\\u0026#34;__main__\\u0026#34;: main() \",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:5\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#机房上机系统自我实践\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"15.6 量化交易代码分析与调试 由于 python 的版本问题和一些库的导入问题所以还未调试成功，先挂上代码。以后改篇再论。 #! /usr/bin/env python #-*- encoding: utf-8 -*- #author pythontab.com import wx import wx.adv import numpy as np import pandas as pd import pandas_datareader.data as web import matplotlib import matplotlib.pyplot as plt from matplotlib.figure import Figure import matplotlib.dates as mdates import mpl_finance as mpf from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas import matplotlib.gridspec as gridspec#分割子图 import datetime import talib import csv,os import codecs from RedefPanelMod import MPL_Panel_Base,Loop_Panel_Base from StockDataMod import GetStockDatPro from IndicatStrateMod import Excave_Indic_Base, QuantPickTimeSys,FactorPickStockAng plt.rcParams[\\u0026#39;font.sans-serif\\u0026#39;]=[\\u0026#39;SimHei\\u0026#39;] #用来正常显示中文标签 plt.rcParams[\\u0026#39;axes.unicode_minus\\u0026#39;]=False #用来正常显示负号 class UserDialog(wx.Dialog):## user-defined def __init__(self,parent,text): wx.Dialog.__init__(self,parent,-1,u\\u0026#34;选股提示\\u0026#34;,size=(400,500),style=wx.CAPTION|wx.CLOSE_BOX|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX) sizer = wx.BoxSizer(wx.VERTICAL) pstock_Text = wx.StaticText(self, -1, u\\u0026#39;选股策略筛选结果\\u0026#39;) pstock_Text.SetFont(wx.Font(18,wx.DEFAULT,wx.NORMAL,wx.BOLD)) pstock_sure = wx.TextCtrl(self, -1, \\u0026#34;角度值：\\\\n\\u0026#34;,size=(350,300),style = wx.TE_MULTILINE|wx.TE_READONLY)#多行 | 只读 pstock_sure.SetFont(wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.BOLD)) okbtn = wx.Button(self,wx.ID_OK,u\\u0026#34;确认\\u0026#34;) okbtn.SetDefault() sizer.Add(pstock_Text,flag=wx.ALIGN_CENTER) sizer.Add(pstock_sure,flag=wx.ALIGN_CENTER) sizer.Add(okbtn,flag=wx.ALIGN_CENTER) self.SetSizer(sizer) for i in text:pstock_sure.AppendText(i) class Frame(wx.Frame): def __init__(self): wx.Frame.__init__(self, parent = None, title = u\\u0026#39;量化软件\\u0026#39;, size=(1500,800), style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX) #创建显示区面板 self.DispPanel = MPL_Panel_Base(self) self.BackPanel = Loop_Panel_Base(self) self.am = self.DispPanel.am self.vol = self.DispPanel.vol self.devol = self.DispPanel.devol self.macd = self.DispPanel.macd #创建参数区面板 self.ParaPanel = wx.Panel(self,-1) paraInput_Box = wx.StaticBox(self.ParaPanel, -1, u\\u0026#39;参数输入\\u0026#39;) paraInput_Sizer = wx.StaticBoxSizer(paraInput_Box, wx.VERTICAL) self.StNameCodedict = {u\\u0026#34;开山股份\\u0026#34;:\\u0026#34;300257.SZ\\u0026#34;,u\\u0026#34;浙大网新\\u0026#34;:\\u0026#34;600797.SS\\u0026#34;,u\\u0026#34;水晶光电\\u0026#34;:\\u0026#34;002273.SZ\\u0026#34;, u\\u0026#34;高鸿股份\\u0026#34;:\\u0026#34;000851.SZ\\u0026#34;} #初始化股票代码变量 self.stockName_Val = u\\u0026#34;开山股份\\u0026#34; self.stockCode_Val = self.StNameCodedict[self.stockName_Val] self.stockName_CMBO = wx.ComboBox(self.ParaPanel, -1,self.stockName_Val, choices = list(self.StNameCodedict.keys()), style = wx.CB_READONLY|wx.CB_DROPDOWN) #股票名称 stockCode_Text = wx.StaticText(self.ParaPanel, -1, u\\u0026#39;股票名称\\u0026#39;) #策略选取 strate_Text = wx.StaticText(self.ParaPanel, -1, u\\u0026#39;策略名称\\u0026#39;) strate_Combo_Val = [u\\u0026#34;双趋势融合\\u0026#34;, u\\u0026#34;阿尔法\\u0026#34;, u\\u0026#34;布林带\\u0026#34;] self.pickstrate_Val = u\\u0026#34;双趋势融合\\u0026#34; self.pickstrate_CMBO = wx.ComboBox(self.ParaPanel, -1, self.pickstrate_Val, choices = strate_Combo_Val, style = wx.CB_READONLY|wx.CB_DROPDOWN) #策略名称 #日历控件选择数据周期 self.dpcEndTime = wx.adv.DatePickerCtrl(self.ParaPanel, -1,style = wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY|wx.adv.DP_ALLOWNONE)#结束时间 self.dpcStartTime = wx.adv.DatePickerCtrl(self.ParaPanel, -1,style = wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY|wx.adv.DP_ALLOWNONE)#起始时间 DateTimeNow = wx.DateTime.Now()#wx.DateTime 格式\\u0026#34;03/03/18 00:00:00\\u0026#34; #DateTimeNow = datetime.datetime.fromtimestamp(wx.DateTime.Now().GetTicks()) #DateTimeNow = datetime.datetime.fromtimestamp(DateTimeNow) self.dpcEndTime.SetValue(DateTimeNow) DateTimeNow.SetYear(DateTimeNow.year-1) self.dpcStartTime.SetValue(DateTimeNow) stockData_Text = wx.StaticText(self.ParaPanel, -1, u\\u0026#39;日期 (Start-End)\\u0026#39;) #初始化时间变量 dateVal = self.dpcStartTime.GetValue() self.stockSdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day) dateVal = self.dpcEndTime.GetValue() self.stockEdate_Val = datetime.datetime(dateVal.year,dateVal.month+1,dateVal.day) paraInput\",\"date\":\"2019-06-21\",\"objectID\":\"/posts/pysx2/:3:6\",\"tags\":[\"Python\"],\"title\":\"python 实训总结Ⅱ\",\"uri\":\"/posts/pysx2/#量化交易代码分析与调试\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。 \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:0:0\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"9 6.17 print(\\u0026#34;Hello World!\\u0026#34;) 讲了一下变量和 python 的特色什么的。 还讲了模块定义def和类定义 class zxm(): def __init__(self): self.x=0 self.y=0 def move_up(self): self.y +=1 my_zxm=zxm() print(my_zxm) \\u0026lt;__main__.zxm object at 0x000001D99CFEF668\\u0026gt; \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:1:0\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#617\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10 6.18 \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:0\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#618\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10.1 输入输出 print 输出 input 输入 eval 执行一个字符串表达式，并返回表达式的值 x=eval(input(\\u0026#34;请输入 x 的值：\\u0026#34;)) y=eval(input(\\u0026#34;请输入 y 的值：\\u0026#34;)) z=(x**2+y**2)**0.5 print(z) # 导入复数数学模块 import cmath num = int(input(\\u0026#34;请输入一个数字：\\u0026#34;)) num_sqrt = cmath.sqrt(num) print(\\u0026#39;{0} 的平方根为 {1:0.3f}+{2:0.3f}j\\u0026#39;.format(num ,num_sqrt.real,num_sqrt.imag)) \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:1\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#输入输出\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10.2 数据类型 今天还讲了一下数据类型 字符串： \\u0026quot;\\u0026quot; '' 元组 tuple(2,3) 列表 list[2,3] 字典 dict{Key:Value} 集合{} x=[1,10] type(x)#判断元素类型 list \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:2\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#数据类型\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10.3 循环判断 for x in range(1,10,2): # (start,stop,step) pass # pass 不做任何事情，一般用做占位语句 for letter in \\u0026#39;Python\\u0026#39;: if letter == \\u0026#39;h\\u0026#39;: pass print(\\u0026#39;这是 pass 块\\u0026#39;) print(\\u0026#39;当前字母 :\\u0026#39;+ letter) print(\\u0026#34;Good bye!\\u0026#34;) 当前字母 :P 当前字母 :y 当前字母 :t 这是 pass 块 当前字母 :h 当前字母 :o 当前字母 :n Good bye! \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:3\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#循环判断\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10.4 str() 、import 导库 x=10 print(\\u0026#34;整数转字符串\\u0026#34;+str(x)) import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren\\u0026#39;t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you\\u0026#39;re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it\\u0026#39;s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let\\u0026#39;s do more of those! Google 翻译意思是： 美丽胜过丑陋。显式优于隐式。简单比复杂更好。复杂比复杂更好。Flat 优于嵌套。稀疏优于密集。可读性很重要。特殊情况不足以打破规则。虽然实用性胜过纯洁。错误不应该默默地传递。除非明确沉默。面对模棱两可，拒绝猜测的诱惑。应该有一个最好只有一个明显的方法来做到这一点。虽然这种方式起初可能并不明显，除非你是荷兰人。现在比永远好。虽然现在永远不会比正确好。如果实施很难解释，这是一个坏主意。如果实现很容易解释，那可能是个好主意。命名空间是一个很棒的主意，让我们做更多的事情吧！ \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:4\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#str-import-导库\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"10.5 turtle 绘图库（内置模块） \",\"date\":\"2019-06-18\",\"objectID\":\"/posts/pysx1/:2:5\",\"tags\":[\"Python\",\"turtle\"],\"title\":\"python 实训总结Ⅰ\",\"uri\":\"/posts/pysx1/#turtle-绘图库内置模块\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。 白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。 \",\"date\":\"2019-05-26\",\"objectID\":\"/posts/judgetriangle/:0:0\",\"tags\":[\"黑盒测试\",\"C\"],\"title\":\"判断三角形的黑盒测试\",\"uri\":\"/posts/judgetriangle/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"9 程序 #include\\u0026lt;stdio.h\\u0026gt; #include\\u0026lt;stdlib.h\\u0026gt; #define N 2\\u0026lt;\\u0026lt;25 int a=N,b=N,c=N,d=N; void shuru(); void panduan(int a1,int b1,int c1); int main() { char se; shuru(); panduan(a,b,c); while(1) { printf(\\u0026#34;是否要继续 y or n :\\u0026#34;); scanf(\\u0026#34;%c\\u0026#34;,\\u0026amp;se); if(se==\\u0026#39;\\\\n\\u0026#39;) scanf(\\u0026#34;%c\\u0026#34;,\\u0026amp;se); switch(se) { case \\u0026#39;y\\u0026#39;: shuru(); panduan(a,b,c); break; case \\u0026#39;n\\u0026#39;: return 0; } } } void shuru() { printf(\\u0026#34;Please enter 三角形三边 (a,b,c)\\\\n\\u0026#34;); while(!scanf(\\u0026#34;%d,%d,%d,%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;c,\\u0026amp;d)){//判断非数字字符 fflush(stdin);//清理缓存 a=N;b=N;c=N;d=N; printf(\\u0026#34;输入错误、n\\u0026#34;); } fflush(stdin); while((a\\u0026lt;1||a\\u0026gt;100)||(b\\u0026lt;1||b\\u0026gt;100)||(c\\u0026lt;1||c\\u0026gt;100)||d!=N) { if(b==N||c==N||d!=N) printf(\\u0026#34;输入错误、n\\u0026#34;);//边数为 1、2、4 条 else if(a==0||b==0||c==0) printf(\\u0026#34;边长不能为 0\\\\n\\u0026#34;); else if(a\\u0026lt;0||b\\u0026lt;0||c\\u0026lt;0) printf(\\u0026#34;边长不能为负、n\\u0026#34;); else printf(\\u0026#34;Please enter 1-100 之间的整数、n\\u0026#34;); a=N;b=N;c=N;d=N; while(!scanf(\\u0026#34;%d,%d,%d,%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;c,\\u0026amp;d)){//判断非数字字符 fflush(stdin);//清理缓存 a=N;b=N;c=N;d=N; printf(\\u0026#34;输入错误、n\\u0026#34;); } fflush(stdin); } } void panduan(int a1,int b1,int c1) { if(a1+b1\\u0026gt;c1\\u0026amp;\\u0026amp;b1+c1\\u0026gt;a1\\u0026amp;\\u0026amp;a1+c1\\u0026gt;b1) { if(a1==b1\\u0026amp;\\u0026amp;a1==c1) printf(\\u0026#34;等边三角形、n\\u0026#34;); else if(a1==b1||a1==c1||b1==c1) printf(\\u0026#34;等腰三角形、n\\u0026#34;); else printf(\\u0026#34;一般三角形、n\\u0026#34;); } else printf(\\u0026#34;非三角形、n\\u0026#34;); } \",\"date\":\"2019-05-26\",\"objectID\":\"/posts/judgetriangle/:1:0\",\"tags\":[\"黑盒测试\",\"C\"],\"title\":\"判断三角形的黑盒测试\",\"uri\":\"/posts/judgetriangle/#程序\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"10 测试 测试 1 测试 2 测试 3 \",\"date\":\"2019-05-26\",\"objectID\":\"/posts/judgetriangle/:2:0\",\"tags\":[\"黑盒测试\",\"C\"],\"title\":\"判断三角形的黑盒测试\",\"uri\":\"/posts/judgetriangle/#测试\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj 安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。 更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录 \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/hustoj/:0:0\",\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"title\":\"HustOJ 基础搭建教程\",\"uri\":\"/posts/hustoj/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 快速安装 OJ 下载 wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh 安装 sudo bash install-ubuntu16+.sh 等待中一路回车，当提示 done！则表示安装成功： \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/hustoj/:1:0\",\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"title\":\"HustOJ 基础搭建教程\",\"uri\":\"/posts/hustoj/#快速安装-oj\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 使用 HustOJ 打开网页/IP 地址 注册 admin 用 admin 作为用户名注册一个用户，将会自动成为管理员。 注册成功，会提示： 登录后台 登录账号，并点击右上角的管理： 添加测试题目 在后台选择添加题目，添加成功： 然后再提交代码测试判题机。 \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/hustoj/:2:0\",\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"title\":\"HustOJ 基础搭建教程\",\"uri\":\"/posts/hustoj/#使用-hustoj\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 说明 安装后几个重要配置文件的位置 /home/judge/etc/judge.conf /home/judge/src/web/include/db_info.inc.php /etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini /etc/nginx/sites-enabled/default \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/hustoj/:3:0\",\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"title\":\"HustOJ 基础搭建教程\",\"uri\":\"/posts/hustoj/#说明\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。 \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/gcd-bit/:0:0\",\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"title\":\"最大公约数（二进制算法）\",\"uri\":\"/posts/gcd-bit/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 原理 本算法基于以下事实： 对于两个数的最大公约数 gcd(m, n)，有 m\\u0026lt;n 时，gcd(m, n)=gcd(n, m) m 偶 n 偶时，gcd(m, n)=2*gcd(m/2, n/2) m 偶 n 奇时，gcd(m, n)=gcd(m/2, n) m 奇 n 偶时，gcd(m, n)=gcd(m, n/2) m 奇 n 奇时，gcd(m, n)=gcd(n, m-n) 采用递归即可。 \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/gcd-bit/:1:0\",\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"title\":\"最大公约数（二进制算法）\",\"uri\":\"/posts/gcd-bit/#原理\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 实现 inline int GCD(int x,int y) { int i,j; if(x==0) return y; if(y==0) return x; for(i=0;0==(x\\u0026amp;1);++i)x\\u0026gt;\\u0026gt;=1; // 去掉所有的 2 for(j=0;0==(y\\u0026amp;1);++j)y\\u0026gt;\\u0026gt;=1; // 去掉所有的 2 if(j\\u0026lt;i) i=j; while(1){ if(x\\u0026lt;y)x^=y,y^=x,x^=y; // 若 x \\u0026lt; y 交换 x, y if(0==(x-=y)) return y\\u0026lt;\\u0026lt;i; // 若 x == y，gcd == x == y（就是在辗转减，while(1) 控制） while(0==(x\\u0026amp;1))x\\u0026gt;\\u0026gt;=1; // 去掉所有的 2 } } int get_lcm(int a,int b)///获得最小公倍数 { int x=a; int y=b; while(b) { int t=a; a=b; b=t%b; } return x/a*y; } \",\"date\":\"2019-05-17\",\"objectID\":\"/posts/gcd-bit/:2:0\",\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"title\":\"最大公约数（二进制算法）\",\"uri\":\"/posts/gcd-bit/#实现\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文 \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:0:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"21 准备工作 已经安装宝塔面板 在宝塔后台创建一个站点 下载 ImgURL 2.x 上传到站点根目录并解压 \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:1:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#准备工作\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"22 设置伪静态 如果你宝塔面板安装的 Apache 则不需要再设置伪静态，直接跳过这个步骤，如果使用的 Nginx 环境，请继续往下看。 找到对应的站点 - 点击后面设置按钮 - 伪静态 - 添加下面的伪静态规则 location / { try_files $uri $uri/ /index.php?$query_string; } location ~* \\\\.(db3|json)$ { deny all; } location ~* ^/(temp|upload|imgs|data|application|static|system)/.*.(php|php5)$ { return 403; } \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:2:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#设置伪静态\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"23 安装 fileinfo \\u0026amp; imagemagick 在宝塔后台 - 软件管理 - 找到你站点对应的 PHP 版本 - 设置 PHP - 安装扩展 - 勾选fileinfo和imagemagick，如下截图。 \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:3:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#安装-fileinfo--imagemagick\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"24 安装 ImgURL 2.x 其它所需扩展宝塔默认已经支持，重点是安装fileinfo和imagemagick，扩展安装完毕后就可以访问你自己的域名安装 ImgURL 了，如果正常会看到 ImgURL 安装界面。 \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:4:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#安装-imgurl-2x\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"25 其它说明 如果安装遇到任何问题，请留言反馈或到 3T 官方社区 进行反馈 ImgURL 更多使用说明请参考帮助文档：https://dwz.ovh/imgurldoc \",\"date\":\"2019-05-16\",\"objectID\":\"/posts/imgurl/:5:0\",\"tags\":[\"ImgURL\",\"宝塔面板\"],\"title\":\"宝塔面板安装 ImgURL 图床\",\"uri\":\"/posts/imgurl/#其它说明\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。 要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。 \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:0:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"21 背景 麻小科技： 麻小科技全名深圳市麻小科技有限公司，成立于 2017 年 1 月。是我高一的时候参加Peer 夏令营带我们一个玩的“老师”和他的朋友的创业公司，说老师有点奇怪，我们都是直接叫名字的，比如大家都叫我瑞豪，我也就叫他文捷哥，简称捷哥吧。他们公司主要的开发模式是，小程序前端+php 后端，然后做的是酒店小程序，为每个酒店定制小程序。这些小程序可以贴在客房中给访客提供一些服务，大大节省了成本也提高了效率。 然后每个酒店小程序都有独立的后台，后台会记录一些点击需求的数据。现在他们有一个需求需要把每个酒店小程序后台的数据在每天早上 9 点发送至对应酒店的微信群。 \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:1:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#背景\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"22 实现代码 缓存登录信息，短时间类无需重复登录，仅第一次需要扫码登录（相当于微信网页版），后面的登录只需在手机上确认登录信息。 #!/usr/bin/python import requests import json import time from wxpy import * ## 基本信息填写： ## 酒店 id，酒店名称及群名列表数据，格式：[\\u0026#34;xxx\\u0026#34;,\\u0026#34;xxx\\u0026#34;,\\u0026#34;xxx\\u0026#34;] ## 使用时请将以下三个列表一一对应 hotel=[\\u0026#34;xxxx\\u0026#34;,\\u0026#34;xxxx\\u0026#34;] ## 酒店后台数据接口二级域名，已匿名 hotel_name=[\\u0026#34;增城宾馆\\u0026#34;,\\u0026#34;百丽酒店\\u0026#34;] grouplist = [\\u0026#34;麻小\\u0026#34;,\\u0026#34;富强民主文明和谐自由平等公正法治\\u0026#34;] ## post 请求发送的数据 postData = { ## \\u0026#39;username\\u0026#39;:\\u0026#39;test\\u0026#39;, ## \\u0026#39;password\\u0026#39;:\\u0026#39;123456\\u0026#39;, } def get_data(): result = [] #结果列表 i = 0 #计数器 for each in hotel: url=\\u0026#34;http://\\u0026#34;+each+\\u0026#34;.maxiaokeji.com/xxx/xxxxxxx/xxx\\u0026#34; ## 为保护隐私及权益，这里不提供接口 r = requests.post(url,data=postData) ## print(r.text) ## 把结果转化为 json 字符串 response=json.dumps(r.json(),indent=4,ensure_ascii=False) #sort_keys=True ## 把 json 转换为 dict 字典作为中间结果，再取出昨日数据 midresult=json.loads(response) result.append(\\u0026#34;早上好！\\u0026#34;+hotel_name[i]+\\u0026#34;小程序昨日数据如下：\\\\n 访问数：\\u0026#34;+str(midresult[\\u0026#34;data\\u0026#34;][\\u0026#34;yesterday_data\\u0026#34;][\\u0026#34;type1\\u0026#34;])+\\u0026#34;\\\\n 房间数：\\u0026#34;+str(midresult[\\u0026#34;data\\u0026#34;][\\u0026#34;yesterday_data\\u0026#34;][\\u0026#34;type2\\u0026#34;])+\\u0026#34;\\\\n 需求量：\\u0026#34;+str(midresult[\\u0026#34;data\\u0026#34;][\\u0026#34;yesterday_data\\u0026#34;][\\u0026#34;type3\\u0026#34;])+\\u0026#34;\\\\n 商品点击量：\\u0026#34;+str(midresult[\\u0026#34;data\\u0026#34;][\\u0026#34;yesterday_data\\u0026#34;][\\u0026#34;type4\\u0026#34;])) i+=1 ## print(result) return result def wechat_send(bot,result): ## my_friend = bot.friends().search(\\u0026#39;lrh\\u0026#39;)[0] ## my_friend.send(result) i = 0 ## 计数器 for group in grouplist: my_group = bot.groups().search(group)[0] #依次搜索每一个群名称，每次一个 my_group.send(result[i]) print(result[i]) print(\\u0026#34;已发送至群：\\u0026#34;+group) i+=1 def main(bot): ## 设置最大休眠时间，防止程序长时间占用系统资源 while True: now_hour = time.strftime(\\u0026#34;%H\\u0026#34;, time.localtime()) now_min = time.strftime(\\u0026#34;%M\\u0026#34;, time.localtime()) ## 设置每天 8 点发送 if now_hour \\u0026lt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 软件将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后发送数据\\u0026#34;) time.sleep(sleeptime) elif now_hour \\u0026gt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) + 24 sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 软件将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后发送数据\\u0026#34;) time.sleep(sleeptime) elif now_hour == \\u0026#34;08\\u0026#34;: print(\\u0026#34;软件明天开始将在每天 8 点发送数据！\\u0026#34;) result=get_data() ## 获取数据 wechat_send(bot,result) ## 发送数据 time.sleep(86400-int(now_min)*60) if __name__==\\u0026#34;__main__\\u0026#34;: bot = Bot(cache_path=True) ## 初始化机器人，扫码登陆 main(bot); \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:2:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#实现代码\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"23 测试结果 \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:3:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#测试结果\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"24 程序打包 使用 pyinstaller 工具打包成可执行文件即可。（可执行文件不可跨平台运行，分平台打包） 目前该程序已经上线测试中 \\u0026hellip; 暂未反馈问题 \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:4:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#程序打包\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"25 收获 第一次参与实际公司的项目开发，虽然只是一个小的需求设计，但是我在这个过程中也学到了很多，比如通过实际一两周的编程对 Python 的熟悉度远远好过以前在实验室看的一个月视频。 还有就是在此次开发中，也感受到了实际项目开发的团队合作重要性，刚开始拿到这个需求，由于我对 python 和后台，以及数据接口这些基本的操作都不懂，就拿数据获取来说，我一开始一位要自己模拟登陆后台（已知密码），一顿操作、百度等等失败告终，后来涛哥给了一个数据接口，加上涛哥耐心指点，我才终于拿到了数据。 还有在多人合作的项目中，为保持代码的可读性，要尽量的多些注释，还有函数方法的命名尽量具备可读性。比如我代码中的wechat_send()，一开始的命名是wxfs()，经捷哥指正我才改过来的。 \",\"date\":\"2019-05-11\",\"objectID\":\"/posts/mx2wx/:5:0\",\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"uri\":\"/posts/mx2wx/#收获\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt; \\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt; 项目范例说明 ![if !IE]The NOT operator. This is placed immediately in front of the\\u0026nbsp;feature,\\u0026nbsp;operator, or\\u0026nbsp;subexpression\\u0026nbsp;to reverse the Boolean meaning of the expression. NOT 运算符。这是摆立即在前面的功能，操作员，或子表达式扭转布尔表达式的意义。lt [if lt IE 5.5] The less-than operator. Returns true if the first argument is less than the second argument. 小于运算符。如果第一个参数小于第二个参数，则返回 true。 lte[if lte IE 6]The less-than or equal operator. Returns true if the first argument is less than or equal to the second argument. 小于或等于运算。如果第一个参数是小于或等于第二个参数，则返回 true。 gt[if gt IE 5]The greater-than operator. Returns true if the first argument is greater than the second argument. 大于运算符。如果第一个参数大于第二个参数，则返回 true。 gte [if gte IE 7]The greater-than or equal operator. Returns true if the first argument is greater than or equal to the second argument. 大于或等于运算。如果第一个参数是大于或等于第二个参数，则返回 true。 ( )[if !(IE 7)]Subexpression operators. Used in conjunction with boolean operators to create more complex expressions. 子表达式运营商。在与布尔运算符用于创建更复杂的表达式。\\u0026amp;[if (gt IE 5)\\u0026amp;(lt IE 7)]The AND operator. Returns true if all subexpressions evaluate to true AND 运算符。如果所有的子表达式计算结果为 true，返回 true|[if (IE 6)|(IE 7)]The OR operator. Returns true if any of the subexpressions evaluates to true. OR 运算符。返回 true，如果子表达式计算结果为 true。 \\u0026lt;!--[if lt IE 9]\\u0026gt; 加载 CSS1 \\u0026lt;!--[else]\\u0026gt; 加载 CSS2 \\u0026lt;![endif]--\\u0026gt; 这样有效是有效，但是用 HTML VALIDATOR 里，报错，因为这个不符合 XHTML 1.1 的规范， 如果把 ELSE 语句去掉，则正确。 加载 CSS2 \\u0026lt;!--[if lt IE 9]\\u0026gt; 加载 CSS1（可以把要重写的写在这里）. \\u0026lt;![endif]--\\u0026gt; \",\"date\":\"2019-05-10\",\"objectID\":\"/posts/ifzhushi/:0:0\",\"tags\":[\"HTML\",\"他山之石\"],\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"uri\":\"/posts/ifzhushi/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。 第二次运行后直接休眠一天，到每天早上 8 点执行任务。 （该程序需要一直挂着，保持网络不断） import time while True: now_hour = time.strftime(\\u0026#34;%H\\u0026#34;, time.localtime()) now_min = time.strftime(\\u0026#34;%M\\u0026#34;, time.localtime()) if now_hour \\u0026lt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 软件将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后发送数据\\u0026#34;) time.sleep(sleeptime) elif now_hour \\u0026gt; \\u0026#34;08\\u0026#34;: rest = 8 - int(now_hour) + 24 sleeptime = (rest-1)*3600 + (60-int(now_min))*60 print(\\u0026#34;启动时北京时间为：\\u0026#34;+time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()),\\u0026#34;\\\\t 软件将在\\u0026#34;,rest-1,\\u0026#34;小时\\u0026#34;,int((sleeptime-(rest-1)*3600)/60),\\u0026#34;分钟后发送数据\\u0026#34;) time.sleep(sleeptime) elif now_hour == \\u0026#34;08\\u0026#34;: print(\\u0026#34;启动时北京时间为：\\u0026#34; + time.strftime(\\u0026#34;%H:%M\\u0026#34;, time.localtime()), \\u0026#34;\\\\t 软件将在每天 8 点发送数据！\\u0026#34;) # 以下为定时任务 print(\\u0026#34;数据\\u0026#34;) time.sleep(86400-int(now_min)*60) \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pysettime/:0:0\",\"tags\":[\"Python\",\"Cron\"],\"title\":\"python 设置程序每天 8 点定时执行任务\",\"uri\":\"/posts/pysettime/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。 \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:0:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"25 下载 去官网下载 pyinstaller 安装包：https://pypi.org/project/PyInstaller/#files \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:1:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#下载\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"26 解压 我这里解压到E:\\\\应用、Python37\\\\Lib\\\\site-packages\\\\PyInstaller-3.4 \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:2:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#解压\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"27 安装 cmd 也进入到上面的路径下，然后执行Python setup.py install，等待安装完毕 \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:3:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#安装\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"28 pyinstaller 简介 pyinstaller 将 Python 脚本打包成可执行程序，使在没有 Python 环境的机器上运行。 最新版是 pyinstaller 3.4，可运行在 Windows，Mac 和 Linux 操作系统下。但它不是跨编译的，也就是说在 Windows 下用 PyInstaller 生成的 exe 只能运行在 Windows 下，在 Linux 下生成的只能运行在 Linux 下。 \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:4:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#pyinstaller-简介\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"29 打包 打包的 app 里并不包含任何源码，但将脚本的 .pyc 文件打包了。 基本语法： pyinstaller options myscript.py 常用的可选参数如下： --onefile 将结果打包成一个可执行文件 --onedir 将所有结果打包到一个文件夹中，该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件（默认） --paths=DIR 设置导入路径 --distpath=DIR 设置将打包的结果文件放置的路径 --specpath=DIR 设置将 spec 文件放置的路径 --windowed 使用 windows 子系统执行，不会打开命令行（只对 windows 有效） --nowindowed 使用控制台子系统执行（默认）（只对 windows 有效） --icon=\\u0026lt;FILE.ICO\\u0026gt; 将 file.ico 添加为可执行文件的资源（只对 windows 有效） 如pyinstaller --paths=\\u0026quot;D:\\\\\\u0026quot; test.py \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:5:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#打包\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"30 CSDN 访问量脚本实例 比如，拿以前写的一个刷 csdn 访问量工具 csdn.py（放在桌面上），代码详见 在 cmd 进入桌面路径，输入如下命令 pyinstaller --onefile --nowindowed csdn.py \",\"date\":\"2019-05-09\",\"objectID\":\"/posts/pyinstallererror/:6:0\",\"tags\":[\"Python\",\"pyinstaller\"],\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"uri\":\"/posts/pyinstallererror/#csdn-访问量脚本实例\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。 \",\"date\":\"2019-05-08\",\"objectID\":\"/posts/singlethreaddown/:0:0\",\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"title\":\"java 实现一个单线程的资源下载器\",\"uri\":\"/posts/singlethreaddown/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"13 GUI 设计基本流程 先记录一下 GUI 设计的基本流程： 根据需要从相应的顶层容器继承（如果创建窗体就继承 JFrame，对话框就继承 JDialog），新建一个子类。 然后设置顶层容器的属性，包括大小、位置、标题和关闭事件等。 设置界面上 GUI 组件的事件响应。 public void actionPerformed(ActionEvent e) {} 向顶层容器上添加 GUI 组件，并设置布局。（通常利用 JPanel 组件先作为微型容器） 创建新建子类的实例，调用 setVisible(true) 方法显示页面。（也可以直接在子类中设置 setVisible(true)） \",\"date\":\"2019-05-08\",\"objectID\":\"/posts/singlethreaddown/:1:0\",\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"title\":\"java 实现一个单线程的资源下载器\",\"uri\":\"/posts/singlethreaddown/#gui-设计基本流程\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"14 实现代码 package cn.lruihao.base; import java.awt.FlowLayout; import java.awt.Font; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class SingleThreadDown extends JFrame implements ActionListener { private final JPanel panel=new JPanel(); private final JLabel label1=new JLabel(\\u0026#34;网络资源的单线程下载：\\u0026#34;); private final JLabel label2=new JLabel(\\u0026#34;网络资源的网址：\\u0026#34;); JButton StartButton = new JButton(\\u0026#34;单击开始下载\\u0026#34;); JButton resetButton = new JButton(\\u0026#34;清空\\u0026#34;); JButton exitButton = new JButton(\\u0026#34;退出\\u0026#34;); JTextField urlField = new JTextField(20); public SingleThreadDown() { panel.setLayout(new FlowLayout()); //布局管理器 label1.setFont(new Font(\\u0026#34;雅黑\\u0026#34;,Font.BOLD,15)); panel.add(label1); panel.add(label2); panel.add(urlField); panel.add(StartButton); panel.add(resetButton); panel.add(exitButton); setContentPane(panel); setSize(400,200); setLocation(400,400); setVisible(true); //面板可视化，也可以在 main 中通过 JFrame 子类对象调用方法设置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默认关闭事件 StartButton.addActionListener(this);//添加点击事件，传入 ActionListener 对象，由于子类继承了 ActionListener 接口，所以 this resetButton.addActionListener(this); exitButton.addActionListener(this); } public void download(String address) throws Exception { URL url = new URL(address); URLConnection urlcon = url.openConnection(); urlcon.connect(); InputStream in=urlcon.getInputStream();//获取的字节流对象 String filePath = url.getFile(); int pos=filePath.lastIndexOf(\\u0026#34;/\\u0026#34;); //\\u0026#34;/\\u0026#34;分割的最后一个串的下标 String fileName = filePath.substring(pos+1); FileOutputStream out = new FileOutputStream(\\u0026#34;C:\\\\\\\\Users\\\\\\\\李瑞豪、\\\\Desktop\\\\\\\\\\u0026#34;+fileName); byte[] b = new byte[1024]; int len=0; while((len=in.read(b,0,1024))!=-1) { out.write(b,0,len); } out.close(); in.close(); JOptionPane.showMessageDialog(this, \\u0026#34;下载完毕\\u0026#34;); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==StartButton) { if(\\u0026#34;\\u0026#34;.equals(urlField.getText())){ JOptionPane.showMessageDialog(this, \\u0026#34;请输入资源地址\\u0026#34;); } String url = urlField.getText(); try { download(url); } catch (Exception e1) { JOptionPane.showMessageDialog(this, \\u0026#34;资源地址有误，请检查~\\u0026#34;); e1.printStackTrace(); } }else if(e.getSource()==resetButton) { urlField.setText(\\u0026#34;\\u0026#34;); }else { System.exit(0); } } public static void main(String[] args) { new SingleThreadDown(); } } \",\"date\":\"2019-05-08\",\"objectID\":\"/posts/singlethreaddown/:2:0\",\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"title\":\"java 实现一个单线程的资源下载器\",\"uri\":\"/posts/singlethreaddown/#实现代码\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"15 运行结果测试 通过https://github.com/Lruihao/Grocery/raw/master/fonts/MMT_last.ttf下载沐目体 ttf 字体文件，稍微等待一下弹出对话框“下载完毕”，经检查下载内容正常。 \",\"date\":\"2019-05-08\",\"objectID\":\"/posts/singlethreaddown/:3:0\",\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"title\":\"java 实现一个单线程的资源下载器\",\"uri\":\"/posts/singlethreaddown/#运行结果测试\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。 \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/jsoninfo/:0:0\",\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"title\":\"Python 如何操作 Json？\",\"uri\":\"/posts/jsoninfo/#\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"1 json 的数据格式 在 json 中，遵循“键值对”的这样一种方式，比如：“{\\u0026ldquo;name\\u0026rdquo;:\\u0026ldquo;tom\\u0026rdquo;}”, 就是一个 json 格式的数据，json 的格式归纳下来，一般有以下几点： 对象通过键值对表现； 键通过双引号包裹，后面跟冒号“:”，然后跟该键的值； 值可以是字符串、数字、数组等数据类型； 对象与对象之间用逗号隔开； “{}”用来表达对象； “[]”用来表达数组； 我们看一个略为复杂一点的例子： 上例则是一个典型的 json 格式的数据，强大的 Python 提供了一个“json”模块，可以方便的将各种零散的数据通过模块的内置函数编码形成一个 json 格式的数据，也可以将一个 json 格式的数据解码形成自己需要的数据，非常好用，下面我们就来介绍一下。 \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/jsoninfo/:1:0\",\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"title\":\"Python 如何操作 Json？\",\"uri\":\"/posts/jsoninfo/#json-的数据格式\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"2 json.dumps() json 模块里的 dumps 函数是对数据进行编码，形成 json 格式的数据，我们看一下下面的例子： 通过输出的结果很容易看出，通过 dumps 方法使字典转换成为了 json 格式，虽然它们非常相似。其中，在 dumps 里的参数“sort_keys=True”，使得输出 json 后对 key 和 value 进行 09、a z 的顺序排序，如果不填，则按照无序排列。有时候，通过排序可以方便地比较 json 中的数据，因此，适当的排序是很有必要的。 此外，“Indent”参数表示缩进的意思，它可以使得输出的 Json 看起来更加整齐好看，可读性更强，例如： 下面列举一下 dumps（）的可填参数： skipkey：默认为 False，当 dict 对象里的数据不是 Python 的基本数据类型；（str,unicode,int,long,float,bool,None）时，当 skipkey 为 False，就会报错，如果 skipkey 为 True，则可以跳过这类 key； indent：如果填 0 或者不填，则按照一行进行打印，否则按照 indent 的数值显示前面的空格（正整数形式）； separators：分隔符，默认为“(\\u0026rsquo;,\\u0026rsquo;,\\u0026rsquo;:\\u0026rsquo;)”，它表示 key 之间用“,”隔开，key 和 value 之间用“:”隔开； encoding：编码格式，默认值是 UTF-8； sort_keys：对 key、value 进行排序，默认值是 False，即不排序； ensure_ascii：默认为 True，如果 dict 对象里含有 none-ASCII 的字符，则显示、uXX 的格式，如果为 False，则能正常显示出来； \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/jsoninfo/:2:0\",\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"title\":\"Python 如何操作 Json？\",\"uri\":\"/posts/jsoninfo/#jsondumps\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"3 json.loads() 和 dumps 相反，loads 函数则是将 json 格式的数据解码，转换为 Python 字典，我们看一下下面的例子： 有时候，输出结果遇到中文的时候，会出现编码格式不一样的情况，显示出为 Unicode 的编码格式，使得不易读懂，解决办法是添加参数“encoding”参数，即上面的改写成这样：d1 = json.loads(data1,encoding=\\u0026lsquo;utf-8\\u0026rsquo;) 即可。 \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/jsoninfo/:3:0\",\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"title\":\"Python 如何操作 Json？\",\"uri\":\"/posts/jsoninfo/#jsonloads\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\"4 json.dump() 和 json.load() 相对于上面所讲的 dumps 和 loads 来说，dump 和 load 函数的功能类似，只不过前者是用来处理字符串类型的，而后者是用于处理文件类型的，如下所示： 上例列举出了 json 的四个方法：dumps（）和 dump（）、loads（）和 load（）的简单使用方法，可见，Python 对于 json 的处理相当方便，不像 c++那样（谁用谁知道）。 \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/jsoninfo/:4:0\",\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"title\":\"Python 如何操作 Json？\",\"uri\":\"/posts/jsoninfo/#jsondump-和-jsonload\"},{\"categories\":[\"Python\"],\"collections\":null,\"content\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法： requests.get() requests.post() 最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 #!/usr/bin/python import requests \\u0026#34;\\u0026#34;\\u0026#34; 通过 requests 可以向某个地址发送请求 requests.post(url,json date) post 方法还有其他参数，如 header 等 \\u0026#34;\\u0026#34;\\u0026#34; # post 发送的数据 postData = { # \\u0026#39;username\\u0026#39;:\\u0026#39;test\\u0026#39;, # \\u0026#39;password\\u0026#39;:\\u0026#39;123456\\u0026#39;, # \\u0026#39;salary\\u0026#39;:2000, } # 接口这里不便公开 r = requests.post(\\u0026#39;http://demo.maxiaokeji.com/xx/xxxxx/xxxx\\u0026#39;,data=postData) # print(r.text) response=r.json() print(response) 运行后会在屏幕打印出返回的 json 数据 \",\"date\":\"2019-05-07\",\"objectID\":\"/posts/posttest/:0:0\",\"tags\":[\"Python\",\"HTTP\"],\"title\":\"python 发送 post 请求进行简单的接口测试\",\"uri\":\"/posts/posttest/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。 package cn.lruihao.base; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class URLReader { public static void main(String[] args) throws Exception{ try { URL lrh=new URL(\\u0026#34;https://www.lruihao.cn\\u0026#34;); File file=new File(\\u0026#34;C:\\\\\\\\Users\\\\\\\\李瑞豪、\\\\Desktop\\\\\\\\lrh.html\\u0026#34;); FileWriter fout=new FileWriter(file); BufferedReader in =new BufferedReader(new InputStreamReader(lrh.openStream()));//字节流转化成字符流，再构建缓冲字符流 String inputLine; while((inputLine=in.readLine())!=null) { System.out.println(inputLine); fout.write(inputLine); } in.close(); fout.close(); //获取响应 header 信息 URLConnection conn=lrh.openConnection(); conn.connect(); System.out.println(\\u0026#34;获取到的响应长度：\\u0026#34;+conn.getContentLength()); System.out.println(\\u0026#34;响应类型：\\u0026#34;+conn.getContentType()); //用 BufferedReader 读取 URL 的响应 in =new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; String result=null; while((line=in.readLine())!=null) { result+=line; } System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } } \",\"date\":\"2019-05-06\",\"objectID\":\"/posts/java-urlreader/:0:0\",\"tags\":[\"URLConnection\",\"Java\"],\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"uri\":\"/posts/java-urlreader/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。 这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。 \",\"date\":\"2019-05-02\",\"objectID\":\"/posts/byteio/:0:0\",\"tags\":[\"Java\"],\"title\":\"文件加密解密（字节流）\",\"uri\":\"/posts/byteio/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 文件加密解密 package cn.lruihao.base; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class EncryptFile { public static void main(String[] args) throws IOException { byte pwd=123;//加密/解密密码 FileInputStream f=new FileInputStream(\\u0026#34;src/cn/lruihao/base/EncryptFile.java\\u0026#34;);//待加密文件 FileOutputStream fout=new FileOutputStream(\\u0026#34;encrypted.txt\\u0026#34;);//已加密文件 System.out.println(\\u0026#34;开始加密。\\u0026#34;); int n=f.available()/5; byte[] b=new byte[n];//以一个字节数组的长度读取和复制 int count=0; while((count=f.read(b,0,n))!=-1) { //写入之前先加密/解密 for(int i=0;i\\u0026lt;count;i++) { b[i]=(byte)(b[i]^pwd);// } fout.write(b,0,count); } System.out.println(\\u0026#34;完成加密\\u0026#34;); f.close(); fout.close(); // f=new FileInputStream(\\u0026#34;encrypted.txt\\u0026#34;); // fout=new FileOutputStream(\\u0026#34;unencrypted.txt\\u0026#34;); // System.out.println(\\u0026#34;开始解密。\\u0026#34;); // n=f.available()/5; // b=new byte[n];//以一个字节数组的长度读取和复制 // count=0; // while((count=f.read(b,0,n))!=-1) { // //写入之前先加密/解密 // for(int i=0;i\\u0026lt;count;i++) { // b[i]=(byte)(b[i]^pwd); // } // fout.write(b,0,count); // } // System.out.println(\\u0026#34;完成解密\\u0026#34;); // f.close(); // fout.close(); } } \",\"date\":\"2019-05-02\",\"objectID\":\"/posts/byteio/:1:0\",\"tags\":[\"Java\"],\"title\":\"文件加密解密（字节流）\",\"uri\":\"/posts/byteio/#文件加密解密\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 文件复制 package cn.lruihao.base; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileStreamCopy { public static void main(String[] args) throws IOException { int size; FileInputStream f=new FileInputStream(\\u0026#34;src/cn/lruihao/base/FileStreamCopy.java\\u0026#34;); FileOutputStream fout=new FileOutputStream(\\u0026#34;copy-of-file.txt\\u0026#34;); System.out.println(\\u0026#34;总长度：\\u0026#34;+(size=f.available())); int n=size/10; System.out.print(\\u0026#34;使用单字节方法读取后：\\u0026#34;); for(int i=0;i\\u0026lt;n;i++) { fout.write(f.read()); } System.out.println(\\u0026#34;剩余长度：\\u0026#34;+f.available()); System.out.println(\\u0026#34;读取一个字节数组后：\\u0026#34;); byte b[]=new byte[n]; f.read(b); fout.write(b); System.out.println(\\u0026#34;剩余长度：\\u0026#34;+f.available()); System.out.println(\\u0026#34;读取余下数据：\\u0026#34;); int count=0; while((count=f.read(b,0,n))!=-1) { //System.out.println(count); fout.write(b,0,count); } System.out.println(\\u0026#34;剩余长度：\\u0026#34;+f.available()); f.close(); fout.flush(); fout.close(); } } package cn.lruihao.base; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class BufferedStreamCopy { public static void main(String[] args) throws IOException { FileInputStream f=new FileInputStream(\\u0026#34;src/cn/lruihao/base/BufferedStreamCopy.java\\u0026#34;); FileOutputStream fout=new FileOutputStream(\\u0026#34;copy-of-file.txt\\u0026#34;); BufferedInputStream bis=new BufferedInputStream(f); BufferedOutputStream bos=new BufferedOutputStream(fout); System.out.println(\\u0026#34;开始复制。\\u0026#34;); int n=f.available()/5; byte[] b=new byte[n]; int count=0; while((count=bis.read(b,0,n))!=-1) { bos.write(b,0,count); } System.out.println(\\u0026#34;复制完成\\u0026#34;); bis.close(); bos.flush(); bos.close(); f.close(); fout.flush(); fout.close(); } } \",\"date\":\"2019-05-02\",\"objectID\":\"/posts/byteio/:2:0\",\"tags\":[\"Java\"],\"title\":\"文件加密解密（字节流）\",\"uri\":\"/posts/byteio/#文件复制\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 实现代码 这里的异常主要是InputMismatchException, 可以直接捕获该异常，我直接捕获了父类异常。 package cn.lruihao.Exception; import java.util.Scanner; /** * @author 李瑞豪 * 借书系统（异常练习） */ public class ExceptionDemo { private final Book[] books = { new Book(\\u0026#34;数据结构\\u0026#34;), new Book(\\u0026#34;Java\\u0026#34;), new Book(\\u0026#34;php\\u0026#34;), new Book(\\u0026#34;c\\u0026#34;) }; public static void main(String[] args) { System.out.println(\\u0026#34;欢迎来到借书系统！\\u0026#34;); ExceptionDemo jieshu= new ExceptionDemo(); jieshu.menu(); } public void menu() { System.out.println(\\u0026#34;输入命令：1. 书名查找；\\\\t2. 序号查找；\\u0026#34;); //初始化并捕获用户输入 Scanner sc = new Scanner(System.in); // 捕获异常 try { int id =sc.nextInt(); if(id==1||id==2) { inquire(id); }else { System.out.println(\\u0026#34;输入错误！请根据提示输入~~\\u0026#34;);//输入非 1，2 的数字情况 menu(); } }catch (Exception e) {//输入字符为非数字 e.printStackTrace(); System.out.println(\\u0026#34;输入错误，请输入数字命令~~\\u0026#34;); menu(); }finally{ sc.close(); } } private void inquire(int id) { Scanner sc = new Scanner(System.in); if(id==1) { System.out.println(\\u0026#34;请输入要查找的书名！\\u0026#34;); String name=sc.nextLine(); int num=FindName(name); if(num==0?false:true) {//验证书名是否存在 存在则打印 System.out.println(\\u0026#34;book:\\u0026#34;+name+\\u0026#34;\\\\t 序号：\\u0026#34;+num); //menu();//回到访问起点 也可以去掉终止程序 }else{ System.out.println(\\u0026#34;图书不存在\\u0026#34;); menu(); } sc.close(); }else if(id == 2) { System.out.println(\\u0026#34;请输入您要查找的序号：\\u0026#34;); int id2=sc.nextInt(); FindNum(id2); sc.close(); } } private void FindNum(int num) { try { if(num\\u0026gt;=0\\u0026amp;\\u0026amp;num\\u0026lt;books.length) { System.out.println(books[num].getName()); //menu();//回到访问起点 也可以去掉终止程序 }else{ System.out.println(\\u0026#34;图书不存在\\u0026#34;); menu(); } }catch (Exception e) { e.printStackTrace(); System.out.println(\\u0026#34;输入有误！~~\\u0026#34;); } } private int FindName(String name) { int num=0; for(Book i:books) { String name1=i.getName(); if(name1.equals(name)) { return num; } num++; } return 0; } } package cn.lruihao.Exception; public class Book { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Book(String name) { this.name = name; } } \",\"date\":\"2019-05-01\",\"objectID\":\"/posts/javaexception/:1:0\",\"tags\":[\"Java\"],\"title\":\"模拟借书系统（java 异常练习）\",\"uri\":\"/posts/javaexception/#实现代码\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 大致运行效果 \",\"date\":\"2019-05-01\",\"objectID\":\"/posts/javaexception/:2:0\",\"tags\":[\"Java\"],\"title\":\"模拟借书系统（java 异常练习）\",\"uri\":\"/posts/javaexception/#大致运行效果\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。 可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:0:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"29 示例 from MyQR import myqr import os version, level, qr_name = myqr.run( words=\\u0026#39;https://lruihao.cn\\u0026#39;, version=1, level=\\u0026#39;H\\u0026#39;, picture=\\u0026#39;2.jpg\\u0026#39;, colorized=True, contrast=1.0, brightness=1.0, save_name=None, save_dir=os.getcwd() ) # help(myqr) # https://github.com/sylnsfar/qrcode/ \\u0026#39;\\u0026#39;\\u0026#39; Positional parameter words: str # 链接或者文字 Optional parameters version: int, from 1 to 40 # 控制边长 level: str, just one of (\\u0026#39;L\\u0026#39;,\\u0026#39;M\\u0026#39;,\\u0026#39;Q\\u0026#39;,\\u0026#39;H\\u0026#39;) # 控制纠错水平，从左到右依次升高。 picutre: str, a filename of a image # 图片，需在同路径，默认 None colorized: bool # 是否彩色 默认 False constrast: float # 对比度 默认 1.0 brightness: float # 亮度 默认 1.0 save_name: str, the output filename like \\u0026#39;example.png\\u0026#39; #控制文件名，默认 None,\\u0026#39;qrcode.png\\u0026#39; save_dir: str, the output directory # 储存路径 \\u0026#39;\\u0026#39;\\u0026#39; \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:1:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#示例\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"30 安装 # 通过 pip pip(3) install myqr(or MyQR) \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:2:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#安装\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31 使用方法 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#使用方法\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31.1 命令行方式 （提示：如果你尚未安装 MyQR ，以下内容请使用python(3) myqr.py 而非myqr 。） # 概括 myqr Words [-v {1,2,3,...,40}] [-l {L,M,Q,H}] [-n output-filename] [-d output-directory] [-p picture_file] [-c] [-con contrast] [-bri brightness] 普通二维码 介绍了 Words, -v, -l, -n, -d 艺术二维码 介绍了 -p, -c, -con, -bri 动态 GIF 二维码 介绍了动态的生成方法和注意点 31.1.1 普通二维码 #1 Words myqr https://github.com 在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。 #2 -v, -l myqr https://github.com -v 10 -l Q 默认边长是取决于你输入的信息的长度和使用的纠错等级； 而默认纠错等级是最高级的 H。 自定义：如果想要控制边长和纠错水平就使用 -v 和 -l 参数。 -v 控制边长，范围是1 至 40，数字越大边长越大； -l 控制纠错水平，范围是L、M、Q、H，从左到右依次升高。 #3 -n, -d myqr https://github.com -n github_qr.jpg -d .../paths/ 默认输出文件名是“qrcode.png \\u0026ldquo;，而默认存储位置是当前目录。 自定义：可以自己定义输出名称和位置。注意同名文件会覆盖旧的。 -n 控制文件名，格式可以是 .jpg， .png ，.bmp ，.gif ； -d 控制位置。 31.1.2 艺术二维码 #1 -p myqr https://github.com -p github.jpg 参数-p 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张黑白图片。 #2 -c myqr https://github.com -p github.jpg -c 加上参数 -c 可以使产生的图片由黑白变为彩色的。 #3 -con, -bri myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6 参数-con 用以调节图片的对比度，1.0 表示原始图片，更小的值表示更低对比度，更大反之。默认为 1.0。 参数 -bri 用来调节图片的亮度，其余用法和取值与 -con 相同。 31.1.3 动态 GIF 二维码 动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 .gif 格式的图片即可生成黑白或者彩色的动态二维码。但注意如果使用了 -n 参数自定义输出的文件名，切记其格式也必须是 .gif 格式。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:1\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#命令行方式\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31.1 命令行方式 （提示：如果你尚未安装 MyQR ，以下内容请使用python(3) myqr.py 而非myqr 。） # 概括 myqr Words [-v {1,2,3,...,40}] [-l {L,M,Q,H}] [-n output-filename] [-d output-directory] [-p picture_file] [-c] [-con contrast] [-bri brightness] 普通二维码 介绍了 Words, -v, -l, -n, -d 艺术二维码 介绍了 -p, -c, -con, -bri 动态 GIF 二维码 介绍了动态的生成方法和注意点 31.1.1 普通二维码 #1 Words myqr https://github.com 在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。 #2 -v, -l myqr https://github.com -v 10 -l Q 默认边长是取决于你输入的信息的长度和使用的纠错等级； 而默认纠错等级是最高级的 H。 自定义：如果想要控制边长和纠错水平就使用 -v 和 -l 参数。 -v 控制边长，范围是1 至 40，数字越大边长越大； -l 控制纠错水平，范围是L、M、Q、H，从左到右依次升高。 #3 -n, -d myqr https://github.com -n github_qr.jpg -d .../paths/ 默认输出文件名是“qrcode.png \\u0026ldquo;，而默认存储位置是当前目录。 自定义：可以自己定义输出名称和位置。注意同名文件会覆盖旧的。 -n 控制文件名，格式可以是 .jpg， .png ，.bmp ，.gif ； -d 控制位置。 31.1.2 艺术二维码 #1 -p myqr https://github.com -p github.jpg 参数-p 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张黑白图片。 #2 -c myqr https://github.com -p github.jpg -c 加上参数 -c 可以使产生的图片由黑白变为彩色的。 #3 -con, -bri myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6 参数-con 用以调节图片的对比度，1.0 表示原始图片，更小的值表示更低对比度，更大反之。默认为 1.0。 参数 -bri 用来调节图片的亮度，其余用法和取值与 -con 相同。 31.1.3 动态 GIF 二维码 动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 .gif 格式的图片即可生成黑白或者彩色的动态二维码。但注意如果使用了 -n 参数自定义输出的文件名，切记其格式也必须是 .gif 格式。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:1\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#普通二维码\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31.1 命令行方式 （提示：如果你尚未安装 MyQR ，以下内容请使用python(3) myqr.py 而非myqr 。） # 概括 myqr Words [-v {1,2,3,...,40}] [-l {L,M,Q,H}] [-n output-filename] [-d output-directory] [-p picture_file] [-c] [-con contrast] [-bri brightness] 普通二维码 介绍了 Words, -v, -l, -n, -d 艺术二维码 介绍了 -p, -c, -con, -bri 动态 GIF 二维码 介绍了动态的生成方法和注意点 31.1.1 普通二维码 #1 Words myqr https://github.com 在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。 #2 -v, -l myqr https://github.com -v 10 -l Q 默认边长是取决于你输入的信息的长度和使用的纠错等级； 而默认纠错等级是最高级的 H。 自定义：如果想要控制边长和纠错水平就使用 -v 和 -l 参数。 -v 控制边长，范围是1 至 40，数字越大边长越大； -l 控制纠错水平，范围是L、M、Q、H，从左到右依次升高。 #3 -n, -d myqr https://github.com -n github_qr.jpg -d .../paths/ 默认输出文件名是“qrcode.png \\u0026ldquo;，而默认存储位置是当前目录。 自定义：可以自己定义输出名称和位置。注意同名文件会覆盖旧的。 -n 控制文件名，格式可以是 .jpg， .png ，.bmp ，.gif ； -d 控制位置。 31.1.2 艺术二维码 #1 -p myqr https://github.com -p github.jpg 参数-p 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张黑白图片。 #2 -c myqr https://github.com -p github.jpg -c 加上参数 -c 可以使产生的图片由黑白变为彩色的。 #3 -con, -bri myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6 参数-con 用以调节图片的对比度，1.0 表示原始图片，更小的值表示更低对比度，更大反之。默认为 1.0。 参数 -bri 用来调节图片的亮度，其余用法和取值与 -con 相同。 31.1.3 动态 GIF 二维码 动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 .gif 格式的图片即可生成黑白或者彩色的动态二维码。但注意如果使用了 -n 参数自定义输出的文件名，切记其格式也必须是 .gif 格式。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:1\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#艺术二维码\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31.1 命令行方式 （提示：如果你尚未安装 MyQR ，以下内容请使用python(3) myqr.py 而非myqr 。） # 概括 myqr Words [-v {1,2,3,...,40}] [-l {L,M,Q,H}] [-n output-filename] [-d output-directory] [-p picture_file] [-c] [-con contrast] [-bri brightness] 普通二维码 介绍了 Words, -v, -l, -n, -d 艺术二维码 介绍了 -p, -c, -con, -bri 动态 GIF 二维码 介绍了动态的生成方法和注意点 31.1.1 普通二维码 #1 Words myqr https://github.com 在命令后输入链接或者句子作为参数，然后在程序的当前目录中产生相应的二维码图片文件，默认命名为“qrcode.png”。 #2 -v, -l myqr https://github.com -v 10 -l Q 默认边长是取决于你输入的信息的长度和使用的纠错等级； 而默认纠错等级是最高级的 H。 自定义：如果想要控制边长和纠错水平就使用 -v 和 -l 参数。 -v 控制边长，范围是1 至 40，数字越大边长越大； -l 控制纠错水平，范围是L、M、Q、H，从左到右依次升高。 #3 -n, -d myqr https://github.com -n github_qr.jpg -d .../paths/ 默认输出文件名是“qrcode.png \\u0026ldquo;，而默认存储位置是当前目录。 自定义：可以自己定义输出名称和位置。注意同名文件会覆盖旧的。 -n 控制文件名，格式可以是 .jpg， .png ，.bmp ，.gif ； -d 控制位置。 31.1.2 艺术二维码 #1 -p myqr https://github.com -p github.jpg 参数-p 用来将 QR 二维码图像与一张同目录下的图片相结合，产生一张黑白图片。 #2 -c myqr https://github.com -p github.jpg -c 加上参数 -c 可以使产生的图片由黑白变为彩色的。 #3 -con, -bri myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6 参数-con 用以调节图片的对比度，1.0 表示原始图片，更小的值表示更低对比度，更大反之。默认为 1.0。 参数 -bri 用来调节图片的亮度，其余用法和取值与 -con 相同。 31.1.3 动态 GIF 二维码 动态二维码与上述的带图片的二维码的生成方法没什么区别，你只要采用 .gif 格式的图片即可生成黑白或者彩色的动态二维码。但注意如果使用了 -n 参数自定义输出的文件名，切记其格式也必须是 .gif 格式。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:1\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#动态-gif-二维码\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"31.2 作为导入文件 # 安装模块后 from MyQR import myqr version, level, qr_name = myqr.run( words, version=1, level=\\u0026#39;H\\u0026#39;, picture=None, colorized=False, contrast=1.0, brightness=1.0, save_name=None, save_dir=os.getcwd() ) 以下各个参数已经在上文命令行方式有所介绍 # help(myqr) Positional parameter words: str Optional parameters version: int, from 1 to 40 level: str, just one of (\\u0026#39;L\\u0026#39;,\\u0026#39;M\\u0026#39;,\\u0026#39;Q\\u0026#39;,\\u0026#39;H\\u0026#39;) picutre: str, a filename of a image colorized: bool constrast: float brightness: float save_name: str, the output filename like \\u0026#39;example.png\\u0026#39; save_dir: str, the output directory \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:3:2\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#作为导入文件\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"32 使用提示 请采用正方形或近似正方形的图片 建议在图片尺寸大的时候使用 -v 的值也应该适当变大。 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:4:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#使用提示\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"33 可用字符 数字 0 到 9 大小写的英文字母 常用英文标点符号和空格 · , . : ; + - * / \\\\ ~ ! @ # $ % ^ \\u0026amp; ` \\u0026#39; = \\u0026lt; \\u0026gt; [ ] ( ) ? _ { } | and (space) \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:5:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#可用字符\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"34 依赖库 pillow numpy imageio \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:6:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#依赖库\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"35 运行环境 Linux, Python 3 Windows, Python 3 Mac, Python 3 \",\"date\":\"2019-04-27\",\"objectID\":\"/posts/qrcode/:7:0\",\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"uri\":\"/posts/qrcode/#运行环境\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。 Success 富士康在学校有一个春招的机会，我和朋友抱着侥幸的心理去试了试。 虽然深知自己还身有很多缺点，但是不面试不知道，一面试都暴露出来了，以下记录一下自己的不足之处： php 和 sql 的经典组合虽然有所接触了解，但是确实什么都会，得花时间学 html/css 等虽然平时折腾博客这些应用的比较多，但是今天竟然紧张地忘记了 margin 和 padding 都不会写了 如上一条，公众表现能力有待加强。正如当今“酒香也怕巷子深”，何况“不香”。 惊喜的事说来就来，本来知道自己这么多缺点，这么菜后，觉得这个实习的 offer 是没戏了，没想到下午技术主管微信发来消息，说录用了。当场懵逼，受宠若惊的感觉！非常谢谢面试官老师！ 无论生活还是学习，希望以后的自己一定要保持一颗谦逊爱学的心，早日实现全栈工程师的梦想，还有早点存钱把大学学费的贷款还掉！ \",\"date\":\"2019-04-24\",\"objectID\":\"/posts/1thintervivew/:0:0\",\"tags\":[\"面试\"],\"title\":\"第一次面试经历\",\"uri\":\"/posts/1thintervivew/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看 \",\"date\":\"2019-04-22\",\"objectID\":\"/posts/mmtimgpy/:0:0\",\"tags\":[\"Python\"],\"title\":\"python 爬取网站图片（图片链接相似）\",\"uri\":\"/posts/mmtimgpy/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"17 思路设计 通过观察目标网页中字符图片的链接，很容易发现每个字符图片的直链是由两部分组成。 固定链接 图片文件编号 其中固定连接为https://image.xiezixiansheng.com/users/2010/700/unzip/579767/, 图片文件为xxxxx.png@50q，如果去掉@50q，获取到的图片就是透明背景的不然就是白色背景。然后发现编号大多是 5 位数的形式，但是还有一些是 4 位的，甚至还有 2-3 位的数字。仔细看看 127 前的编号都是一些国际符号诸如英文和数字等。比对一下发现正是 ASCII 码对应的命名方式。可想而知中文自然也是通过编码来命名的。一个标准的字库文件至少包含 6763 个汉字，也就是我书写的这个GB2312-80, 范围： 0xA1A1 - 0xFEFE，其中汉字范围： 0xB0A1 - 0xF7FE。两个 16 进制位对应一个字节，一个汉字至少由两个字节组成，这样理解，范围自然是 4 个 16 进制位。所以转换成 10 进制，范围大致在 65278 以下。要了解更加具体一点的范围还需要去查一下汉字编码的分区等。这里暂时不必了解，因为本来就打算暴力下载。 说了这么多，既然图片链接这么简单，所以我是想暴力遍历，搜索图片，判断链接状态码，然后下载图片。 \",\"date\":\"2019-04-22\",\"objectID\":\"/posts/mmtimgpy/:1:0\",\"tags\":[\"Python\"],\"title\":\"python 爬取网站图片（图片链接相似）\",\"uri\":\"/posts/mmtimgpy/#思路设计\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"18 源码设计 大致分为三个范围吧 英文字符 中文符号 汉字范围 我主要分这几个区间查找 33 ~ 126 8212 ~ 8243 12289 ~ 12305 19968 ~ 40864 65281 ~ 65509 磨刀不误砍柴工，分析观察了这么久，终于可以运行程序了，F5 后就静静等待吧，可以去看看 java，或者打一把王者 hhhhh! import os import requests path=\\u0026#34;C:\\\\\\\\Users\\\\\\\\李瑞豪、\\\\Desktop\\\\\\\\MMT_images\\\\\\\\\\u0026#34; #下载路径：绝对或者相对路径比如。/image/ os.makedirs(path+\\u0026#34;0\\\\\\\\\\u0026#34;, exist_ok=True) ## 创建文件夹 os.makedirs(path+\\u0026#34;1\\\\\\\\\\u0026#34;, exist_ok=True) ## 下载图片 def urllib_download(url,num): ## （下载链接，图片编号） from urllib.request import urlretrieve urlretrieve(url,path+num+\\u0026#34;.png\\u0026#34;) ## 判断状态码 def get_status(url): r = requests.get(url, allow_redirects = False) return r.status_code def main(): BASE_URL = \\u0026#34;https://image.xiezixiansheng.com/users/2010/700/unzip/579767/\\u0026#34; n=33 total=0 print(\\u0026#34;正在爬取第 1 张图片！\\u0026#34;) while n \\u0026lt; 65510: #分段爬取，不然会超时！！！## 33 ~ 126 ## 8212 ~ 8243 ## 12289 ~ 12305 ## 19968 ~ 40864 ## 65281 ~ 65509 if n == 127: n = 8212 continue elif n == 8244: n = 12289 continue elif n ==12306: n = 19968 continue elif n == 40865: n = 65281 continue ## for n in range(37341,40865): num = str(n) IMAGE_URL = BASE_URL+num+\\u0026#34;.png\\u0026#34; ## xxx.png 是透明背景，xxx.png@50q 是白色背景，分别存放在 0，1 文件夹 p 是中小 w 是小图 if(get_status(IMAGE_URL)==200): ## 同时下载透明和白色背景的图片 total+=1 urllib_download(IMAGE_URL,\\u0026#34;0\\\\\\\\\\u0026#34;+num) IMAGE_URL += \\u0026#34;@50q\\u0026#34; urllib_download(IMAGE_URL,\\u0026#34;1\\\\\\\\\\u0026#34;+num) print(\\u0026#34;Downloaded \\u0026#34;+num+\\u0026#34;.png\\u0026#34;) print(\\u0026#34;正在爬取第\\u0026#34;,total+1,\\u0026#34;张图片！\\u0026#34;) n+=1 print(\\u0026#34;\\\\n 爬取完毕！共爬取\\u0026#34;,total,\\u0026#34;张图片！\\u0026#34;) print(\\u0026#34;图片存放路径：\\u0026#34;+path) print(\\u0026#34;作者博客：lruihao.cn\\u0026#34;) if __name__==\\u0026#34;__main__\\u0026#34;: main(); \",\"date\":\"2019-04-22\",\"objectID\":\"/posts/mmtimgpy/:2:0\",\"tags\":[\"Python\"],\"title\":\"python 爬取网站图片（图片链接相似）\",\"uri\":\"/posts/mmtimgpy/#源码设计\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19 爬取过程及结果 文件夹左下角数目变化 爬取过程 危险 说实话看着控制台不停地输出提示信息有没有很爽，对于强迫症来说真的是很治愈了！但是爬取第 6042 张图片的时候，我打开了一下目标网页发现无法加载图片了，就想这应该也算是一次 Dos 攻击了吧！打开控制台果然停了，相当于访问了近两万次！唉，还是太暴力了！！还差 800 多张，只好又重新接着写上次的位置爬！不慎造成目标网站服务器压力，实在对不起！ 错误提示 一个半小时左右后终于下载完了，一共是 6886 张；程序是同时下载了透明和白色背景的图片的！分别在 0,1 子文件夹！ 爬取完毕 \",\"date\":\"2019-04-22\",\"objectID\":\"/posts/mmtimgpy/:3:0\",\"tags\":[\"Python\"],\"title\":\"python 爬取网站图片（图片链接相似）\",\"uri\":\"/posts/mmtimgpy/#爬取过程及结果\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"20 其他思路 模拟浏览器载入 html 文件，获取源码，查找到所有\\u0026lt;img\\u0026gt;标签内链接，必要时配合正则表达式，然后下载图片。 \",\"date\":\"2019-04-22\",\"objectID\":\"/posts/mmtimgpy/:4:0\",\"tags\":[\"Python\"],\"title\":\"python 爬取网站图片（图片链接相似）\",\"uri\":\"/posts/mmtimgpy/#其他思路\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播 查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wxpy1/:0:0\",\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"title\":\"python 玩微信：初探 wxpy\",\"uri\":\"/posts/wxpy1/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"17 前期准备 wxpy pyecharts（百度 echarts） \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wxpy1/:1:0\",\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"title\":\"python 玩微信：初探 wxpy\",\"uri\":\"/posts/wxpy1/#前期准备\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"18 查看微信好友男女比例 from wxpy import * from pyecharts import Pie bot = Bot(cache_path = True) #定义一个微信机器人 friends = bot.friends(update=False) #获取更新好友列表 male = female = other = 0 for i in friends[1:]: #[1:] 自己是第一个，排除掉 sex = i.sex if sex == 1: male += 1 elif sex == 2: female += 1 else: other += 1 total = len(friends[1:]) #计算总数 #下面为分析 attr = [\\u0026#34;男性\\u0026#34;,\\u0026#34;女性\\u0026#34;,\\u0026#34;其他\\u0026#34;] v1 = [float(male),float(female),float(other)] pie = Pie(\\u0026#34;饼图 - 圆环图示例\\u0026#34;, title_pos=\\u0026#39;center\\u0026#39;) pie.add(\\u0026#34;\\u0026#34;, attr, v1, radius=[40, 75], label_text_color=None, is_label_show=True, legend_orient=\\u0026#39;vertical\\u0026#39;, legend_pos=\\u0026#39;left\\u0026#39;) pie.render(\\u0026#34;sex.html\\u0026#34;) \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wxpy1/:2:0\",\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"title\":\"python 玩微信：初探 wxpy\",\"uri\":\"/posts/wxpy1/#查看微信好友男女比例\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19 查看好友地区分布 from wxpy import * from pyecharts import Map #因为获取的列表城市都没有带市字，而 pyecharts 需要带个市字 b = \\u0026#39;市\\u0026#39; def s(x): return x+b #只提取湖南的 bot = Bot(cache_path = True) friends = bot.friends(update=False).search(province = \\u0026#39;湖南\\u0026#39;) citys = [] for f in friends : city = f.city citys.append(city) r = map(s,citys) cityss = list(r) #为城市计数 a = {} for i in cityss: a[i] = cityss.count(i) a.pop(\\u0026#39;市\\u0026#39;) #把字典进行有序拆分为 2 个列表 attrs = [] values = [] for value, attr in a.items(): values.append(attr) attrs.append(value) #开始绘图 map = Map(\\u0026#34;湖南地图示例\\u0026#34;, width=1200, height=600) map.add(\\u0026#34;\\u0026#34;, attrs, values, maptype=\\u0026#39;湖南\\u0026#39;, is_visualmap=True, visual_text_color=\\u0026#39;#000\\u0026#39;) map.render(\\u0026#34;city.html\\u0026#34;) 以上参考简书 陈思煜 \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wxpy1/:3:0\",\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"title\":\"python 玩微信：初探 wxpy\",\"uri\":\"/posts/wxpy1/#查看好友地区分布\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"20 统计所有群男女数目 统计结果会自动发送到所有群聊 男女人数和不一定等于总数（有些人不显示性别） #encoding=utf-8 from wxpy import * import numpy def removeAll(the_list, val): return [value for value in the_list if value != val] def stats_text(target_group, group_name): print(group_name + \\u0026#34;群共有：\\u0026#34; + str(len(target_group)) + \\u0026#34;人，其中：\\u0026#34;) all_stats_text = [] all_dict = {} ## 乱序先整理一份省份 + 地点的列表 for user in target_group.members: trimed_data = user.province.replace(\\u0026#39; \\u0026#39;, \\u0026#39;\\u0026#39;) + user.city.replace(\\u0026#39; \\u0026#39;, \\u0026#39;\\u0026#39;) if trimed_data != \\u0026#39;\\u0026#39;: all_stats_text.append(trimed_data) ## 计数 for data in all_stats_text: if all_stats_text.count(data) != 0: all_dict[data] = all_stats_text.count(data) all_stats_text = removeAll(all_stats_text, data) final_dict = {} for i in sorted(all_dict.keys()): final_dict[i] = all_dict[i] return final_dict def stats_sex(target_group): male = 0 female = 0 other = 0 for user in target_group.members: if user.sex == 1: male = male + 1 if user.sex == 2: female = female + 1 else: other = other + 1 print(\\u0026#34;男的有：\\u0026#34; + str(male) + \\u0026#34;人\\u0026#34;) print(\\u0026#34;女的有：\\u0026#34; + str(female) + \\u0026#34;人\\u0026#34;) msg = \\u0026#34;男的有：\\u0026#34; + str(male) + \\u0026#34;人、n\\u0026#34; + \\u0026#34;女的有：\\u0026#34; + str(female) + \\u0026#34;人、n\\u0026#34; return msg bot = Bot() target_group = bot.groups(update=True, contact_only=False) for curr_group in target_group: ## 小于 10 人的群过滤掉 if len(curr_group) \\u0026lt; 10: continue curr_group.update_group(members_details=True) print(curr_group.name + \\u0026#34;一共有：\\u0026#34; + str(len(curr_group)) + \\u0026#34;人、n\\u0026#34;) msg = stats_sex(curr_group) curr_group.send(curr_group.name + \\u0026#34;群，一共有：\\u0026#34; + str(len(curr_group)) + \\u0026#34;人、n\\u0026#34; + msg) \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wxpy1/:4:0\",\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"title\":\"python 玩微信：初探 wxpy\",\"uri\":\"/posts/wxpy1/#统计所有群男女数目\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除） 文中涉及的图片涉及个人隐私，仅做举例，请勿传播 文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删 \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wximgpy/:0:0\",\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"uri\":\"/posts/wximgpy/#\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"17 依赖 wxpy（Pythone 登录微信） pillow（拼接头像） os（文件夹操作） math（数学计算） wxpy: wxpy 在 itchat 的基础上，通过大量接口优化提升了模块的易用性，并进行丰富的功能扩展。 PIL： Python Imaging Library，已经是 Python 平台事实上的图像处理标准库了。PIL 功能非常强大，但 API 却非常简单易用。由于 PIL 仅支持到 Python 2.7，加上年久失修，于是一群志愿者在 PIL 的基础上创建了兼容的版本，名字叫 Pillow，支持最新 Python 3.x，又加入了许多新特性，因此，我们可以直接安装使用 Pillow。 \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wximgpy/:1:0\",\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"uri\":\"/posts/wximgpy/#依赖\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"18 安装 pip install -U wxpy -i \\u0026#34;https://pypi.doubanio.com/simple/\\u0026#34; pip install pillow \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wximgpy/:2:0\",\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"uri\":\"/posts/wximgpy/#安装\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"19 运行 如果在 Python IDE 运行出错，可能是因为微信好友的 id 是特殊字符，在 IDE 打印出错，注释掉代码 36 行即可。 from wxpy import * import math import PIL.Image as Image import os import sys import shutil # ### 获取文件所在的绝对路径 def get_dir(sys_arg): sys_arg = sys_arg.split(\\u0026#34;/\\u0026#34;) dir_str = \\u0026#34;\\u0026#34; count = 0 for cur_dir in sys_arg: if count == 0: count = count + 1 if count == len(sys_arg): break dir_str = dir_str + cur_dir + \\u0026#34;/\\u0026#34; count = count + 1 return dir_str curr_dir = get_dir(sys.argv[0]) bot = Bot() ## 机器人账号自身 myself = bot.self my_friends = bot.friends(update=True) if not os.path.exists(curr_dir + \\u0026#34;group-images/\\u0026#34;): os.mkdir(curr_dir + \\u0026#34;group-images/\\u0026#34;) count = 0 for friend in my_friends: print(friend.nick_name) friend.get_avatar(curr_dir + \\u0026#34;group-images/\\u0026#34; + str(count) + \\u0026#34;.jpg\\u0026#34;) count = count + 1 ## 获取下载的头像文件 ls = os.listdir(curr_dir + \\u0026#39;group-images\\u0026#39;) ## 去除非 .jpg 文件 for filter_ls in ls: if \\u0026#34;.jpg\\u0026#34; in filter_ls: continue else: ls.remove(filter_ls) ## 排序 ls.sort(key=lambda x:int(x[:-4])) ## 头像墙尺寸 image_size = 2560 each_size = math.floor(image_size/math.floor(math.sqrt(len(ls)))) x_lines = math.ceil(math.sqrt(len(ls))) y_lines = math.ceil(math.sqrt(len(ls))) image = Image.new(\\u0026#39;RGB\\u0026#39;, (each_size * x_lines, each_size * y_lines)) x = 0 y = 0 for file_names in ls: try: img = Image.open(curr_dir + \\u0026#34;group-images/\\u0026#34; + file_names) print(\\u0026#34;正在处理\\u0026#34; + file_names.split(\\u0026#39;.jpg\\u0026#39;)[0] + \\u0026#34;/\\u0026#34; + str(len(ls))) except IOError: continue else: img = img.resize((each_size, each_size)) image.paste(img, (x * each_size, y * each_size)) x += 1 if x == x_lines: x = 0 y += 1 img = image.save(curr_dir + \\u0026#34;all.jpg\\u0026#34;) try: shutil.rmtree(curr_dir + \\u0026#34;group-images/\\u0026#34;) print(\\u0026#34;收尾，清理临时文件\\u0026#34;) except FileNotFoundError: print(\\u0026#34;没什么好删的\\u0026#34;) print(\\u0026#34;！！！\\\\n 生成完毕了，放在了目录\\u0026#34; + curr_dir + \\u0026#34;，去看看吧。\\u0026#34;) print(\\u0026#34;工具作者：@Sunbelife（新浪微博）\\u0026#34;) print(\\u0026#34;公众号：Sunbelife\\u0026#34;) print(\\u0026#34;感谢使用\\u0026#34;) print(\\u0026#34;v1.2\\u0026#34;) print(\\u0026#34;2019.4.18\\u0026#34;) \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wximgpy/:3:0\",\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"uri\":\"/posts/wximgpy/#运行\"},{\"categories\":[\"瞎折腾\",\"Python\"],\"collections\":null,\"content\":\"20 群友全家福 修改 11 行群名称 import itchat import math import PIL.Image as Image import os import shutil ## 变量 itchat.auto_login(hotReload=True,enableCmdQR=False) roomslist = itchat.get_chatrooms(update=True)[0:] itchat.dump_login_status() ## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊 myroom=itchat.search_chatrooms(name=u\\u0026#39;绥宁一中高 396 班\\u0026#39;) #群聊名称 gsq=itchat.update_chatroom(myroom[0][\\u0026#39;UserName\\u0026#39;], detailedMember=True) num = 0 if not os.path.exists(\\u0026#34;./group-images/\\u0026#34;): os.mkdir(\\u0026#34;./group-images/\\u0026#34;) for i in gsq[\\u0026#39;MemberList\\u0026#39;]: print(i[\\u0026#34;UserName\\u0026#34;]) img = itchat.get_head_img(userName=i[\\u0026#34;UserName\\u0026#34;],chatroomUserName=myroom[0][\\u0026#39;UserName\\u0026#39;]) fileImage = open(\\u0026#34;./group-images/\\u0026#34; + str(num) + \\u0026#34;.jpg\\u0026#34;,\\u0026#39;wb\\u0026#39;) fileImage.write(img) fileImage.close() num += 1 ls = os.listdir(\\u0026#39;./group-images\\u0026#39;) each_size = int(math.sqrt(float(640*640)/len(ls))) lines = int(640/each_size) image = Image.new(\\u0026#39;RGBA\\u0026#39;, (640, 640)) x = 0 y = 0 for i in range(0,len(ls)+1): try: img = Image.open(\\u0026#34;./group-images/\\u0026#34; + str(i) + \\u0026#34;.jpg\\u0026#34;) except IOError: print(\\u0026#34;Error\\u0026#34;) else: img = img.resize((each_size, each_size), Image.ANTIALIAS) image.paste(img, (x * each_size, y * each_size)) x += 1 if x == lines: x = 0 y += 1 image.save(\\u0026#34;all.png\\u0026#34;) shutil.rmtree(\\u0026#34;./group-images\\u0026#34;) 绥宁一中高 396 班 加个列表，加个循环实现自动爬取所有群聊头像并发送 import itchat import math import PIL.Image as Image import os import shutil ## 变量 itchat.auto_login(hotReload=True,enableCmdQR=False) roomslist = itchat.get_chatrooms(update=True)[0:] itchat.dump_login_status() ## 显示所有的群聊信息，默认是返回保存到通讯录中的群聊 for room in roomslist: print(room[\\u0026#39;UserName\\u0026#39;]) gsq=itchat.update_chatroom(room[\\u0026#39;UserName\\u0026#39;], detailedMember=True) num = 0 if not os.path.exists(\\u0026#34;./group-images/\\u0026#34;): os.mkdir(\\u0026#34;./group-images/\\u0026#34;) for i in gsq[\\u0026#39;MemberList\\u0026#39;]: print(i[\\u0026#34;UserName\\u0026#34;]) img = itchat.get_head_img(userName=i[\\u0026#34;UserName\\u0026#34;],chatroomUserName=room[\\u0026#39;UserName\\u0026#39;]) fileImage = open(\\u0026#34;./group-images/\\u0026#34; + str(num) + \\u0026#34;.jpg\\u0026#34;,\\u0026#39;wb\\u0026#39;) fileImage.write(img) fileImage.close() num += 1 ls = os.listdir(\\u0026#39;./group-images\\u0026#39;) each_size = int(math.sqrt(float(640*640)/len(ls))) lines = int(640/each_size) image = Image.new(\\u0026#39;RGB\\u0026#39;, (640, 640)) x = 0 y = 0 for i in range(0,len(ls)+1): try: img = Image.open(\\u0026#34;./group-images/\\u0026#34; + str(i) + \\u0026#34;.jpg\\u0026#34;) except IOError: print(\\u0026#34;Error\\u0026#34;) else: img = img.resize((each_size, each_size), Image.ANTIALIAS) image.paste(img, (x * each_size, y * each_size)) x += 1 if x == lines: x = 0 y += 1 image.save(\\u0026#34;all.jpg\\u0026#34;) itchat.send(\\u0026#34;写了个好玩的… 测试一下\\u0026#34;, room[\\u0026#39;UserName\\u0026#39;]) itchat.send_image(\\u0026#34;all.jpg\\u0026#34;, room[\\u0026#39;UserName\\u0026#39;]) shutil.rmtree(\\u0026#34;./group-images\\u0026#34;) \",\"date\":\"2019-04-20\",\"objectID\":\"/posts/wximgpy/:4:0\",\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"uri\":\"/posts/wximgpy/#群友全家福\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。 由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。 javac java \",\"date\":\"2019-04-19\",\"objectID\":\"/posts/hellojava/:0:0\",\"tags\":[\"Java\"],\"title\":\"用记事本编写第一个 java 程序\",\"uri\":\"/posts/hellojava/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 编写 java 用记事本编辑 java 文件，并且把后缀改成.java，文件名和类名要一样。 public class HelloWorld{ public static void main(String[] args){ System.out.println(\\u0026#34;Hello World!\\u0026#34;); } } \",\"date\":\"2019-04-19\",\"objectID\":\"/posts/hellojava/:1:0\",\"tags\":[\"Java\"],\"title\":\"用记事本编写第一个 java 程序\",\"uri\":\"/posts/hellojava/#编写-java\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 打开 cmd \",\"date\":\"2019-04-19\",\"objectID\":\"/posts/hellojava/:2:0\",\"tags\":[\"Java\"],\"title\":\"用记事本编写第一个 java 程序\",\"uri\":\"/posts/hellojava/#打开-cmd\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"13 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\u0026#34;^[a-zA-Z0-9_!#$%\\u0026amp;\\u0026#39;*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\u0026#34;); String[] emails = {\\u0026#34;admin@lruihao.cn\\u0026#34;, \\u0026#34;lruihao.cn\\u0026#34;}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\u0026#34;匹配结果：\\u0026#34; + matcher.matches()); } } } admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false \",\"date\":\"2019-04-18\",\"objectID\":\"/posts/java-regex/:1:0\",\"tags\":[\"regex\",\"Java\"],\"title\":\"java 正则表达式练习\",\"uri\":\"/posts/java-regex/#邮箱\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"14 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\u0026#34;^[1][3,4,5,7,8][0-9]{9}$\\u0026#34;); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\u0026#34;匹配结果： \\u0026#34;+matcher.matches()); } } /** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\u0026#34;^[1][3,4,5,7,8][0-9]{9}$\\u0026#34;); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\u0026#34;^[0][1-9]{2,3}-[0-9]{5,10}$\\u0026#34;); // 验证带区号的 p2 = Pattern.compile(\\u0026#34;^[1-9]{1}[0-9]{5,8}$\\u0026#34;); // 验证没有区号的 if (str.length() \\u0026gt; 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; } \",\"date\":\"2019-04-18\",\"objectID\":\"/posts/java-regex/:2:0\",\"tags\":[\"regex\",\"Java\"],\"title\":\"java 正则表达式练习\",\"uri\":\"/posts/java-regex/#电话\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"15 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\u0026#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\u0026#34; + \\u0026#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\u0026#34; + \\u0026#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\u0026#34;; \",\"date\":\"2019-04-18\",\"objectID\":\"/posts/java-regex/:3:0\",\"tags\":[\"regex\",\"Java\"],\"title\":\"java 正则表达式练习\",\"uri\":\"/posts/java-regex/#身份证\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"17 StringBuffer/StringBuilder（掌握） \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:1:0\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#stringbufferstringbuilder掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"17.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。 和 StringBuffer 的功能一样。就是效率高一些，但是不安全。 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:1:1\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#stringbuffer-是线程安全的可变字符串\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"17.2 构造方法 StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer(50); StringBuffer sb = new StringBuffer(\\u0026ldquo;hello\\u0026rdquo;); \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:1:2\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#构造方法\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"17.3 成员方法：（自己补齐方法和意思） 添加功能 public StringBuffer append(String str): 追加字符串 public StringBuffer insert(int offset,String str): 在指定位置插入字符串 删除功能 public StringBuffer deleteCharAt(int index): 删除指定位置字符 public StringBuffer delete(int start,int end): 删除从指定开始到结束的字符，左闭右开 替换功能 public StringBuffer replace(int start,int end,String str): 以字符串替代从指定开始到结束的字符 反转功能 public StringBuffer reverse(): 反转 截取功能 public String substring(int start): 从指定索引到末尾的字符串 public String substring(int start,int end): 从指定索引开始到指定索引结束的字符串 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:1:3\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#成员方法自己补齐方法和意思\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"17.4 案例 String 和 StringBuffer 的相互转换，通过构造即可。 把数组转成指定的字符串格式 把字符串反转 判断一个字符串是否是对称字符串 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:1:4\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#案例\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"18 数组高级部分（理解） \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:2:0\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#数组高级部分理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"18.1 排序 冒泡排序 相邻元素，两两比较，大的往后放。 public static void bubbleSort(int[] arr) { for(int x=0; x\\u0026lt;arr.length-1; x++) { for(int y=0; y\\u0026lt;arr.length-1-x; y++) { if(arr[y]\\u0026gt;arr[y+1]) { int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } } 选择排序 从 0 开始，依次和后面的比较，小的往前放。 public static void selectSort(int[] arr) { for(int x=0; x\\u0026lt;arr.length-1; x++) { for(int y=x+1; y\\u0026lt;arr.length; y++) { if(arr[y] \\u0026lt; arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } } public static void selectSort(int[] a) { int min=0; int temp=0; if((a==null)||(a.length==0)) return; for(int i=0;i\\u0026lt;a.length-1;i++) { min=i;//无序区的最小数据数组下标 for(int j=i+1;j\\u0026lt;a.length;j++) { //在无序区中找到最小数据并保存其数组下标 if(a[j]\\u0026lt;a[min]) { min=j; } } //将最小元素放到本次循环的前端 temp=a[i]; a[i]=a[min]; a[min]=temp; } } \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:2:1\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#排序\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"18.2 查找 基本查找 数组无序 二分查找 数组有序 public static int getIndex(int[] arr,int value) { int max = arr.length-1; int min = 0; int mid = (max+min)/2; while(arr[mid] != value) { if(arr[mid] \\u0026gt; value) { max = mid - 1; }else if(arr[mid] \\u0026lt; value) { min = mid + 1; } if(max \\u0026lt; min) { return -1; } mid = (max+min)/2; } return mid; } \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:2:2\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#查找\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"19 Arrays 工具类（掌握） \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:3:0\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#arrays-工具类掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"19.1 Arrays 是针对数组进行操作的工具类，提供了排序和查找等功能 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:3:1\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#arrays-是针对数组进行操作的工具类提供了排序和查找等功能\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"19.2 成员方法：（自己补齐方法和意思） 把数组转成字符串 public static String toString(): 将任意类型数据转换成字符串 排序 public static void sort()： 二分查找 public static int binarySearch(int[] arr,int key) \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:3:2\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#成员方法自己补齐方法和意思-1\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"19.3 案例 把字符串中的字符进行排序 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:3:3\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#案例-1\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"20 基本类型包装类（掌握） \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:4:0\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#基本类型包装类掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"20.1 为了让我们对基本类型进行更多的操作，java 针对每种基本类型提供了对应的包装类类型 \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:4:1\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#为了让我们对基本类型进行更多的操作java-针对每种基本类型提供了对应的包装类类型\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"20.2 分别是哪些呢？ byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 特殊：void Void \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:4:2\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#分别是哪些呢\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"20.3 Integer 构造方法 Integer i = new Integer(100); Integer i = new Integer(\\u0026ldquo;100\\u0026rdquo;); 成员方法（自己补齐方法和意思） 把字符串转成 int 类型 String-\\u0026gt;int: Integer.parseInt() int-\\u0026gt;String: String.valueOf() 或 Integer.toString() JDK5 的新特性 自动装箱： int --\\u0026gt; Integer //Integer.valueOf() 自动拆箱： Integer --\\u0026gt; int //Integer.intValue() 请解释： Integer i = 100; i+=200; System.out.println(i); byte 缓存池面试题 byte,short,char\\u0026mdash;\\u0026gt;小于 127，否则报 -6 的错误（查看 JDK) \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:4:3\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#integer\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"20.4 Character 构造方法 Character ch = new Character(\\u0026lsquo;a\\u0026rsquo;); 成员方法（自己补齐方法和意思） 判断字符是否是大写字母 public boolean isUpperCase(char ch) 判断字符是否是小写字母 public boolean isLowerCase(Char ch) 判断字符是否是数字字符 public boolean isDigit(Char ch) 把字符转成大写 public Char toUpperCase(Char ch) 把字符转成小写 public Char toLowerCase(Char ch) \",\"date\":\"2019-04-14\",\"objectID\":\"/posts/stringbuffer/:4:4\",\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"title\":\"java 常用类\",\"uri\":\"/posts/stringbuffer/#character\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 题目大意 题目链接 老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。 \",\"date\":\"2019-04-12\",\"objectID\":\"/posts/hdu1009/:1:0\",\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"uri\":\"/posts/hdu1009/#题目大意\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.1 Sample Input 5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1 \",\"date\":\"2019-04-12\",\"objectID\":\"/posts/hdu1009/:1:1\",\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"uri\":\"/posts/hdu1009/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.2 Sample Output 13.333 31.500 \",\"date\":\"2019-04-12\",\"objectID\":\"/posts/hdu1009/:1:2\",\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"uri\":\"/posts/hdu1009/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 分析 老鼠要用最少的猫粮来换取最多的食物 , 也就是 J[i]/F[i] 越大越好 , 所以按照 J[i]/F[i] 进行降序排列 , 然后依次用猫粮来换取食物 , 当所剩下的猫粮不足以完全换取食物 , 能换多少是多少。 #include\\u0026lt;stdio.h\\u0026gt; #include\\u0026lt;algorithm\\u0026gt; using namespace std; struct node{ double j; double f; double s; }a[1005]; int cmp(node x,node y){ return x.s\\u0026gt;y.s; } int main(){ int m,n,i; while(scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;m,\\u0026amp;n)\\u0026amp;\\u0026amp;(m!=-1\\u0026amp;\\u0026amp;n!=-1)){ memset(a,0,sizeof(a)); for(i=0;i\\u0026lt;n;i++){ scanf(\\u0026#34;%lf%lf\\u0026#34;,\\u0026amp;a[i].j,\\u0026amp;a[i].f); a[i].s=a[i].j/a[i].f; } sort(a,a+n,cmp); double sum=0; for(i=0;i\\u0026lt;n;i++){ if(m\\u0026gt;=a[i].f){ sum+=a[i].j; m-=a[i].f; }else{ sum+=a[i].s*m; m=0; } if(m\\u0026lt;=0) break; } printf(\\u0026#34;%.3lf\\\\n\\u0026#34;,sum); } return 0; } \",\"date\":\"2019-04-12\",\"objectID\":\"/posts/hdu1009/:2:0\",\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"uri\":\"/posts/hdu1009/#分析\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。 \",\"date\":\"2019-04-03\",\"objectID\":\"/posts/ngrok/:0:0\",\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"title\":\"本地搭建网站服务器并穿透内网\",\"uri\":\"/posts/ngrok/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1 搭建环境 我的电脑是ubuntu+windows双系统的，所以我先在 ubuntu 上面装了一个宝塔面板，方便通过 web 管理电脑，宝塔安装好后安装相关的环境mysql,php,nginx等。我们现在只能通过本地 ip127.0.0.1:8888访问面板。 \",\"date\":\"2019-04-03\",\"objectID\":\"/posts/ngrok/:1:0\",\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"title\":\"本地搭建网站服务器并穿透内网\",\"uri\":\"/posts/ngrok/#搭建环境\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2 ngrok 穿透 去 ngrok 注册登录，购买隧道（有免费的），然后绑定端口，绑定域名，这里我们拿端口8888和域名test.lruihao.cn做实验，也就是宝塔面板的端口，这样我们就可以透过域名远程访问本地服务器，这样是不是开始有云服务器的感觉了。然后宝塔面板设置也绑定好域名test.lruihao.cn,dns 服务商那里做好相应的解析。 然后在 ngrok 那里下载 sunny 客户端文件，我们是 ubuntu 选择linux-64bits版本。解压后在 ubuntu 打开终端进入 sunny 文件目录，权限给到 755，运行命令./sunny clientid xxxxxxx 后面的你的隧道订单的 id。 现在就可以通过互联网访问我的 ubuntu 服务器了。 \",\"date\":\"2019-04-03\",\"objectID\":\"/posts/ngrok/:2:0\",\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"title\":\"本地搭建网站服务器并穿透内网\",\"uri\":\"/posts/ngrok/#ngrok-穿透\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3 搭建网站 前面两步搞定，搭建网站就没问题了。 我们只要把网站的端口按第二步的在 ngrok 设置好就可以穿透了。 \",\"date\":\"2019-04-03\",\"objectID\":\"/posts/ngrok/:3:0\",\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"title\":\"本地搭建网站服务器并穿透内网\",\"uri\":\"/posts/ngrok/#搭建网站\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4 注意 访问本地网站的必要条件是你的电脑得是开机状态而且有网络。 \",\"date\":\"2019-04-03\",\"objectID\":\"/posts/ngrok/:4:0\",\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"title\":\"本地搭建网站服务器并穿透内网\",\"uri\":\"/posts/ngrok/#注意\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 原文链接 “卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。 如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:0:0\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 HTML \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:0\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#html\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 1. Doctype 作用，HTML5 为什么只需要写 \\u003c!DOCTYPE HTML\\u003e doctype 是一种标准通用标记语言的文档类型声明，目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义（DTD）来解析文档。\\u0026lt;!DOCTYPE\\u0026gt;声明必须是 HTML 文档的第一行，位于 html 标签之前 HTML5 不基于 SGML，所以不需要引用 DTD。在 HTML5 中\\u003c!DOCTYPE\\u003e只有一种 SGML: 标准通用标记语言，是现时常用的超文本格式的最高层次标准 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:1\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#1-doctype-作用html5-为什么只需要写-doctype-html\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.2 2. 行内元素有哪些，块级元素有哪些，空 (void) 元素有那些 行内元素：a span i img input select b 等 块级元素：div ul ol li h1~h6 p table 等 空元素：br hr link 等 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:2\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#2-行内元素有哪些块级元素有哪些空-void-元素有那些\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.3 3. 简述一下你对 HTML 语义化的理解 简单来说，就是合适的标签做合适的事情，这样具有以下好处： 有助于构架良好的 HTML 结构，有利于搜索引擎的建立索引、抓取，利于 SEO 有利于不同设备的解析 有利于构建清晰的机构，有利于团队的开发、维护 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:3\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#3-简述一下你对-html-语义化的理解\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.4 4. 常见的浏览器内核有哪些，介绍一下你对浏览器内核的理解 Trident 内核：IE Gecko 内核：NETSCAPE6 及以上版本，火狐 Presto 内核：Opera7 及以上。[Opera 内核原为：Presto，现为：Blink;] Webkit 内核：Safari，Chrome 等。[Chrome 的：Blink（WebKit 的分支）] 浏览器内核又可以分成两部分：渲染引擎和 JS 引擎。 渲染引擎主要负责取得网页的内容、整理讯息、计算网页的显示方式等，JS 引擎则是解析 Javascript 语言，执行 javascript 语言来实现网页的动态效果。 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:4\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#4-常见的浏览器内核有哪些介绍一下你对浏览器内核的理解\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.5 5. html5 有哪些新特性 语义化标签：header footer nav section article aside 等 增强型表单：date（从一个日期选择器选择一个日期） email（包含 e-mail 地址的输入域） number（数值的输入域） range（一定范围内数字值的输入域） search（用于搜索域） tel（定义输入电话号码字段）等 视频和音频：audio video Canvas 绘图 SVG 绘图 地理定位：Geolocation 拖放 API：drag web worker：是运行在后台的 JavaScript，独立于其他脚本，不会影响页面的性能 web storage: localStorage sessionStorage WebSocket: HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:5\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#5-html5-有哪些新特性\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.6 6. 描述一下 cookie，sessionStorage 和 localStorage 的区别 特性 Cookie localStorage sessionStorage 生命周期 可设置失效时间，没有设置的话，默认是关闭浏览器后失效 除非被手动清除，否则将会永久保存 仅在当前网页会话下有效，关闭页面或浏览器后就会被清除 存放数据大小 4KB 左右 可以保存 5MB 的信息 可以保存 5MB 的信息 http 请求 每次都会携带在 HTTP 头中，如果使用 cookie 保存过多数据会带来性能问题 仅在客户端（即浏览器）中保存，不参与和服务器的通信 仅在客户端（即浏览器）中保存，不参与和服务器的通信 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:6\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#6-描述一下-cookiesessionstorage-和-localstorage-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.7 7. 如何实现浏览器内多个标签页之间的通信 使用 localStorage: localStorage.setItem(key,value)、localStorage.getItem(key) websocket 协议 webworker 多个标签页之间的通信 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:7\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#7-如何实现浏览器内多个标签页之间的通信\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.8 8. HTML5 的离线存储怎么使用，解释一下工作原理 HTML5 的离线存储 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:8\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#8-html5-的离线存储怎么使用解释一下工作原理\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.9 9. src 与 href 的区别 区别：src 用于替代这个元素，而 href 用于建立这个标签与外部资源之间的关系 \\u0026lt;link href=\\u0026quot;style.css\\u0026quot; rel=\\u0026quot;stylesheet\\u0026quot; /\\u0026gt;浏览器加载到这里的时候，html 的渲染和解析不会暂停，css 文件的加载是同时进行的 \\u0026lt;script src=\\u0026quot;script.js\\u0026quot;\\u0026gt;\\u0026lt;/script\\u0026gt;当浏览器解析到这句代码时，页面的加载和解析都会暂停直到浏览器拿到并执行完这个 js 文件 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:9\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#9-src-与-href-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.10 10. 表单提交中 Get 和 Post 方式的区别 Get 一般用于从服务器上获取数据，Post 向服务器传送数据 Get 传输的数据是拼接在 Url 之后的，对用户是可见的；Post 的传输数据对用户是不可见的 Get 传送的数据量较小，不能大于 2KB。Post 传送的数据量较大，一般被默认为不受限制 Get 安全性非常低，Post 安全性较高 在 FORM 提交的时候，如果不指定 Method，则默认为 Get 请求 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:1:10\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#10-表单提交中-get-和-post-方式的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 CSS \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:0\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#css\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.1 1. css 盒子模型，box-sizing 属性的理解 css 的盒模型由 content（内容）、padding（内边距）、border（边框）、margin（外边距）组成。但盒子的大小由 content+padding+border 这几部分决定 box-sizing 是一个 CSS3 属性，与盒子模型有着密切联系。即决定元素的宽高如何计算，box-sizing 有三个属性： box-sizing: content-box|border-box|inherit: content-box 使得元素的宽高即为内容区的宽高（默认模式） border-box: 计算方式 content + padding + border = 本身元素大小，即缩小了 content 大小 inherit 指定 box-sizing 属性的值，应该从父元素继承 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:1\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#1-css-盒子模型box-sizing-属性的理解\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.2 2. 清除浮动，什么时候需要清除浮动，清除浮动都有哪些方法 浮动的元素是脱离文档标准流的，如果我们不清楚浮动，那么就会造成父元素高度塌陷，影响页面布局。 清除浮动的方式： 为父元素设置高度 为父元素添加overflow:hidden 伪元素 .fix::after { content: \\u0026#39;\\u0026#39;; display: block; clear: both; } 使用伪元素的好处：不增加冗余的 DOM 节点，符合语义化 overflow:hidden 可以触发 BFC 机制。BFC：块级格式化上下文，创建了 BFC 的元素就是一个独立的盒子，它规定了内部如何布局，并且与这个独立盒子里的布局不受外部影响，当然它也不会影响到外面的元素，计算 BFC 的高度时，浮动元素也参与计算 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:2\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#2-清除浮动什么时候需要清除浮动清除浮动都有哪些方法\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.3 3. 如何让一个不定宽高的盒子水平垂直居中 定位的方式 .father { position: relative; } .son { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; } css3 属性 .father { position: relative; } .son { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } flex 布局 .father { display: flex; justify-content: center; align-items: center; } \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:3\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#3-如何让一个不定宽高的盒子水平垂直居中\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.4 4. px 和 em 和 rem 的区别 px: 像素，相对长度单位。像素px是相对于显示器屏幕分辨率而言的 em的值并不是固定的，会继承父级元素的字体大小，代表倍数 rem的值并不是固定的，始终是基于根元素 \\u0026lt;html\\u0026gt; 的，也代表倍数 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:4\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#4-px-和-em-和-rem-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.5 5. position 的值有哪些 static：默认值。没有定位，元素出现在正常的流中 relative（相对定位）：生成相对定位的元素，相对于其正常（原先本身）位置进行定位 absolute（绝对定位）：生成绝对定位的元素，相对于 static 定位以外的第一个父元素进行定位 fixed（固定定位）：生成绝对定位的元素，相对于浏览器窗口进行定位 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:5\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#5-position-的值有哪些\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.6 6. display:none 与 visibility：hidden 的区别 区别 display:none visibility：hidden 的 是否占据空间 不占据任何空间，在文档渲染时，该元素如同不存在（但依然存在文档对象模型树中） 该元素空间依旧存在 是否渲染 会触发 reflow（回流），进行渲染 只会触发 repaint（重绘），因为没有发现位置变化，不进行渲染 是否是继承属性 不是继承属性，元素及其子元素都会消失 是继承属性，若子元素使用了 visibility:visible，则不继承，这个子孙元素又会显现出 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:6\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#6-displaynone-与-visibilityhidden-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.7 7. CSS 中 link 和@import 的区别 link 属于 XHTML 标签，@import 完全是 CSS 提供的一种方式，只能加载 CSS 加载顺序的差别，当一个页面被加载的时候，link 引用的 CSS 会同时被加载，而@import 引用的 CSS 会等到页面全部被下载完再被加载 兼容性的差别。由于@import 是 CSS2.1 提出的所以老的浏览器不支持，而 link 标签无此问题 当使用 javascript 控制 dom 去改变样式的时候，只能使用 link 标签，因为@import 不是 dom 可以控制的 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:7\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#7-css-中-link-和import-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.8 8. 什么是响应式设计，响应式设计的基本原理是什么 响应式网站设计是一个网站能够兼容多个终端，而不是为每一个终端做一个特定的版本。基本原理是通过媒体查询检测不同的设备屏幕尺寸做处理 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:8\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#8-什么是响应式设计响应式设计的基本原理是什么\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.9 9. 为什么要初始化 CSS 样式 因为浏览器的兼容问题，不同浏览器对有些标签的默认值是不同的，如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异 初始化样式会对 SEO 有一定的影响 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:9\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#9-为什么要初始化-css-样式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.10 10. CSS3 有哪些新特性 实现圆角border-radius，阴影box-shadow，边框图片border-image 对文字加特效text-shadow，强制文本换行word-wrap，线性渐变linear-gradient 实现旋转transform:rotate(90deg), 缩放scale(0.85,0.90),translate(0px,-30px)定位，倾斜skew(-9deg,0deg); 增加了更多的 CSS 选择器、多背景、rgba() 唯一引入的伪元素是::selection； 实现媒体查询@media，多栏布局flex 过渡transition 动画animation \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:10\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#10-css3-有哪些新特性\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.11 11. ::before 和 :after 中双冒号和单冒号有什么区别？解释一下这 2 个伪元素的作用 单冒号 (:) 用于 CSS3 伪类，双冒号 (::) 用于 CSS3 伪元素。（伪元素由双冒号和伪元素名称组成）, 双冒号是在当前规范中引入的，用于区分伪类和伪元素 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:11\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#11-before-和-after-中双冒号和单冒号有什么区别解释一下这-2-个伪元素的作用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.12 12. CSS 优化、提高性能的方法有哪些 移除空的 css 规则（Remove empty rules） 正确使用 display 的属性 不滥用浮动、web 字体 不声明过多的 font-size 不在选择符中使用 ID 标识符 遵守盒模型规则 尽量减少页面重排、重绘 抽象提取公共样式，减少代码量 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:12\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#12-css-优化提高性能的方法有哪些\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.13 13. 重绘和回流 重绘和回流 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:13\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#13-重绘和回流\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.14 14. flex 布局 flex 布局教程\\u0026ndash;阮一峰 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:14\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#14-flex-布局\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.15 15. css 预处理器 提供了一种 css 的书写方式，常见的就是 SAAS 文档 和 LESS 文档 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/ms-html-css/:2:15\",\"tags\":[\"HTML\",\"CSS\"],\"title\":\"前端面试题 - HTML+CSS\",\"uri\":\"/posts/ms-html-css/#15-css-预处理器\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？ 设公鸡，母鸡，小鸡数目分别为 x,y,z(x\\u0026lt;=20,y\\u0026lt;=33,z\\u0026lt;=100) \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/bqbj/:0:0\",\"tags\":[\"ACM\"],\"title\":\"百钱百鸡（枚举法）\",\"uri\":\"/posts/bqbj/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"13 约束条件 x+y+z=100 5x+3y+z/3=100 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/bqbj/:1:0\",\"tags\":[\"ACM\"],\"title\":\"百钱百鸡（枚举法）\",\"uri\":\"/posts/bqbj/#约束条件\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14 算法分析 若依次枚举 x,y,x, 则至少尝试 21*34*100=71400 次，显然效率太低。 在 x,y 的数目确定后，z 的数目也就确定下来了 100-x-y，无须再进行枚举，此时约束条件只有一个 5x+3y+z/3=100. 只需枚举 x,y，共 21*34=714 次。 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/bqbj/:2:0\",\"tags\":[\"ACM\"],\"title\":\"百钱百鸡（枚举法）\",\"uri\":\"/posts/bqbj/#算法分析\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15 算法设计 #include\\u0026lt;stdio.h\\u0026gt; int main(){ int x,y,z; for(x=0;x\\u0026lt;=20;x++) //21*34=714 for(y=0;y\\u0026lt;=33;y++){ z=100-y-x; if(z%3==0 \\u0026amp;\\u0026amp; (5*x+3*y+z/3)==100){//限定 z 能被 3 整除，进一步提高效率 printf(\\u0026#34;cock number:%d\\\\t\\u0026#34;,x); printf(\\u0026#34;hen number:%d\\\\t\\u0026#34;,y); printf(\\u0026#34;chick number:%d\\\\n\\u0026#34;,z); } } return 0; } 运行解 cock number:0 hen number:25 chick number:75 cock number:4 hen number:18 chick number:78 cock number:8 hen number:11 chick number:81 cock number:12 hen number:4 chick number:84 \",\"date\":\"2019-03-30\",\"objectID\":\"/posts/bqbj/:3:0\",\"tags\":[\"ACM\"],\"title\":\"百钱百鸡（枚举法）\",\"uri\":\"/posts/bqbj/#算法设计\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\" 大数乘法 c 版 (基础写法) #include\\u0026lt;stdio.h\\u0026gt; #include\\u0026lt;string.h\\u0026gt; #define N 202 int main() { int a[N] = {0}, b[N] = {0}, c[404] = {0}, la, lb, i, j,k, d = 0, n1, n2;//202 位数相乘，最长 404 位数 int get(int *p); void change(int *a, int *b, int n); la = get(a); lb = get(b); n1 = la \\u0026gt; lb ? la : lb;//较长的数长 n2 = la \\u0026lt; lb ? la : lb;//较短的数长 if (la \\u0026lt; lb) change(a, b, lb); //模拟乘法运算过程（进位等考虑） for (i = 0; i \\u0026lt; n2; i++) { for (j = 0; j \\u0026lt; n1; j++) { c[j + i] += (b[i] * a[j] + d)%10; d = (b[i] * a[j] + d) / 10; if (c[j+i]\\u0026gt;9){ d++; c[j+i]%=10; } if (a[j+1]==0\\u0026amp;\\u0026amp;d!=0){ k=j+i+1; c[k]=d; } } d=0; } k=k\\u0026gt;(j+i-2)?k:j+i-2; for (i = k; i \\u0026gt;= 0; i--)//将倒序装入的结果打印 printf(\\u0026#34;%d\\u0026#34;, c[i]); return 0; } //输入字符串作为数字，并返回数字去除前导 0 后的长度 int get(int *p) { char x[N]; int l, i, ex = 0; scanf(\\u0026#34;%s\\u0026#34;, x); l = strlen(x); while (x[ex] == \\u0026#39;0\\u0026#39;) ex++; for (i = ex; i \\u0026lt; l; i++) //提取字符串数字到 int 数组，倒序排列 *(p + l - i - 1) = x[i] - \\u0026#39;0\\u0026#39;; return l - ex; } void change(int *a, int *b, int n) { int i, t; for (i = 0; i \\u0026lt; n; i++) { t = a[i]; a[i] = b[i]; b[i] = t; } } 程序运行结果 1234567890123456789 98765432109876543210 121932631124517831023715309991126352690 \",\"date\":\"2019-03-28\",\"objectID\":\"/posts/dacheng/:0:0\",\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"title\":\"大数乘法\",\"uri\":\"/posts/dacheng/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。 \",\"date\":\"2019-03-28\",\"objectID\":\"/posts/http2https/:0:0\",\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"title\":\"vps 配置 ssl 及 https 重定向\",\"uri\":\"/posts/http2https/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"9 强制重定向 https 有一种情况相信很多人都遇到过，就是虽然我们配置了 ssl 证书，但是 https 和 http 地址都是各自都可以单独访问。我们应该也见过类似于 github 的代码托管网站有强制 https 的开关。如果是这种情况我们还可以通过 js 进行 301 定向。 \\u0026lt;script\\u0026gt; var targetProtocol = \\u0026#34;https:\\u0026#34;; var host = \\u0026#34;lruihao.cn\\u0026#34;; if (window.location.host == host \\u0026amp;\\u0026amp; window.location.protocol != targetProtocol){ window.location.href = targetProtocol + window.location.href.substring(window.location.protocol.length); } \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-28\",\"objectID\":\"/posts/http2https/:1:0\",\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"title\":\"vps 配置 ssl 及 https 重定向\",\"uri\":\"/posts/http2https/#强制重定向-https\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"10 腾讯云 CDN 配置 这个博客后来是转到了腾讯云的 cos 桶存储。当时在桶内静态网站设置的时候，设置强制 https 发现会出错。而且还接入了 CDN，所以今天在 CDN 设置那里也看到了 https 的设置，打开强制 https 就 OK 了。这天在三丰云撸了一个免费的主机，搭了一个 WordPress（想试试 wp 的感觉），然后 vps 的 SSL 问题现在也很简单了，第一步，到腾讯云申请免费证书；第二步，配置 CDN，按步骤来，其中接入方式选择自有源站；第三步，强制 https（可选）。 \",\"date\":\"2019-03-28\",\"objectID\":\"/posts/http2https/:2:0\",\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"title\":\"vps 配置 ssl 及 https 重定向\",\"uri\":\"/posts/http2https/#腾讯云-cdn-配置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"基于 hexo-theme-next 6.0+的 Pisces 模板做的 DIY 扩展性设计\",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 危险 如无必要，不再更新！（2019.09.13） 今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。 我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。 以下仍为当前博客使用主题，lib 资源已打包 github。 next 基于 hexo-theme-next 6.0+ 的 Pisces 模板做的 DIY 扩展性设计（部分兼容 next 其他几种模板）。主要是一些 custom style 还有一些第三方的 js。修改的地方太多也有点小乱就不提 PR 了。 modified 官方 Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，以后备份恢复博客也好方便自己。本文之前的美化修改请见 hexo 标签。 主题中若有遗漏第三方插件或应用的 key 及 id 值等请修改为自己对应的值 主要的几个自定义文件 _config.swig #主题配置文件 相关账户信息自己注册替换 \\\\layout\\\\custom\\\\head.swig #在头部自定义加入标签 \\\\layout\\\\custom\\\\google_adsense.swig #谷歌广告模块，内有注释暂时弃用 \\\\layout\\\\_layout.swig #主布局 \\\\layout\\\\_macro\\\\post.swig #文章布局 \\\\layout\\\\_macro\\\\post-copyright.swig #文章版权 \\\\layout\\\\_macro\\\\siderbar.swig #侧栏模板 \\\\layout\\\\_third-party\\\\copy-code.swig #复制按钮 \\\\layout\\\\_partials\\\\comments.swig #评论主模板 \\\\layout\\\\_partials\\\\footer.swig #底部模板#该模块在 layout.swig 引入，用于在 body 自定义标签 \\\\layout\\\\_partials\\\\footer_custom.swig #footer 自定义文件 \\\\layout\\\\_third-party\\\\custom.swig #该模块在 layout.swig 引入用于在 body 自定义标签 \\\\source\\\\css\\\\_custom\\\\customs.styl #主要用户自定义样式表 \\\\source\\\\fonts\\\\ #引入了一些我的手写体及外部字体 \\\\scripts\\\\qcloudcdn.js #腾讯云 cos 桶刷新缓存的脚本，不需要可删掉 [^1] ^1 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:0:0\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 初步安装 安装整个改过的主题，然后下载相应的 lib 资源解压放入 source 文件夹 cd hexo git clone https://github.com/Lruihao/hexo-theme-next themes/next 主题配置文件_config.yml, 选择主题 theme: next lib 下载 github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:1:0\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#初步安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 更新内容 更多自定义详见源码 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:0\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#更新内容\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.1 links 模板 自定义友链模板，打开hexo\\\\themes\\\\next\\\\layout\\\\新建links.swig文件，写下以下内容后保存。 {% extends \\u0026#39;_layout.swig\\u0026#39; %} {% import \\u0026#39;_macro/sidebar.swig\\u0026#39; as sidebar_template %} {% block title %}{# #}{% set page_title_suffix = \\u0026#39; | \\u0026#39; + title %}{# #}{% if page.type === \\u0026#34;categories\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.category\\u0026#39;) + page_title_suffix }}{# #}{% elif page.type === \\u0026#34;tags\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.tag\\u0026#39;) + page_title_suffix }}{# #}{% elif page.type === \\u0026#34;photos\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.photos\\u0026#39;) + page_title_suffix }}{# #}{% else %}{# #}{{ page.title + page_title_suffix }}{# #}{% endif %}{# #}{% endblock %} {% block page_class %}page-post-detail{% endblock %} {% block content %} \\u0026lt;div id=\\u0026#34;posts\\u0026#34; class=\\u0026#34;posts-expand\\u0026#34;\\u0026gt; {##################} {#### PAGE BLOCK ###} {##################} \\u0026lt;div class=\\u0026#34;post-block page\\u0026#34;\\u0026gt; {% include \\u0026#39;_partials/page-header.swig\\u0026#39; %} {#################} {#### PAGE BODY ###} {#################} \\u0026lt;script src=\\u0026#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;div class=\\u0026#34;post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction \\u0026amp;\\u0026amp; page.direction.toLowerCase() === \\u0026#39;rtl\\u0026#39; %} rtl{% endif %}\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;links-list\\u0026#34;\\u0026gt; {% for svg,link in site.data.links %} \\u0026lt;div class=\\u0026#34;card-box\\u0026#34; title=\\u0026#34;{{ link.info }}\\u0026#34;\\u0026gt; \\u0026lt;a href=\\u0026#34;{{ link.site }}\\u0026#34; target=\\u0026#34;_blank\\u0026#34;\\u0026gt; {% if link.avatar %} \\u0026lt;img class=\\u0026#34;card-avatar\\u0026#34; data-original=\\u0026#34;{{ link.avatar }}\\u0026#34; alt=\\u0026#34;{{ link.nickname }}\\u0026#34;/\\u0026gt; {% else %} \\u0026lt;svg class=\\u0026#34;card-avatar\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt; \\u0026lt;use xlink:href=\\u0026#34;#icon-{{svg+1}}\\u0026#34;\\u0026gt;\\u0026lt;/use\\u0026gt; \\u0026lt;/svg\\u0026gt; {% endif %} \\u0026lt;span title=\\u0026#34;{{ link.nickname }}\\u0026#34;\\u0026gt;@{{ link.nickname }}\\u0026lt;/span\\u0026gt; \\u0026lt;/a\\u0026gt; \\u0026lt;/div\\u0026gt; {% endfor %} \\u0026lt;/div\\u0026gt; {{ page.content }} \\u0026lt;/div\\u0026gt; \\u0026lt;style\\u0026gt; /* @Author: lruihao.cn */ .links-list { margin-top: 1rem; display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; } .card-box { width: 150px; height: 200px; font-size: 1rem; text-align: center; background: rgba(255,255,255,0.3); box-sizing: border-box; box-shadow: 3px 3px 5px #aaa; border-radius: 5px; transition-duration: 0.3s; margin-bottom: 1rem; display: flex; flex-direction: column; } .card-box:hover { background: #fff; transform: scale(1.03); box-shadow: 0 0 3px #aaa; } .card-box a { border:none; } .card-avatar { width: 100%!important; height: 150px!important; border-radius: 5px; margin: 0; padding: 0; } .card-box span{ display: block; position: relative; bottom: 1rem; align-self: flex-end; color: #2bbc8a; font-weight: bold; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; margin-top: 15px; } .card-box span:hover { color: #d480aa; } \\u0026lt;/style\\u0026gt; {#####################} {#### END PAGE BODY ###} {#####################} \\u0026lt;/div\\u0026gt; {% include \\u0026#39;_partials/breadcrumb.swig\\u0026#39; %} {######################} {#### END PAGE BLOCK ###} {######################} \\u0026lt;/div\\u0026gt; {% endblock %} {% block sidebar %} {{ sidebar_template.render(false) }} {% endblock %} {% block script_extra %} {% include \\u0026#39;_scripts/pages/post-details.swig\\u0026#39; %} {% endblock %} 若未使用懒加载请将模板中的data-original属性改为src 若懒加载无法加载预览图请手动添加src=\\u0026quot;/images/loading.gif\\u0026quot; 若 fancybox 显示 alt 内容请更换 fancybox2 或者将 alt 属值删除 \\u0026lt;img class=\\u0026#34;card-avatar\\u0026#34; data-original=\\u0026#34;{{ link.avatar }}\\u0026#34; alt=\\u0026#34;{{ link.nickname }}\\u0026#34;/\\u0026gt; 然后hexo n page links新建一个页面文章配置写下如下内容： --- title: 友情链接 layout: links --- 然后在links页面文件夹下面新建文件夹_data，再在里面新建links.yml，内容如下 - nickname: 博採眾長 avatar: http://lruihao.cn/images/avatar.png site: http://lruihao.cn info: 一个菜鸟的博客 - nickname: #友链名称 avatar: #友链头像 site: #友链地址 info: #友链说明 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:1\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#links-模板\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.2 备案信息自定义 ## ------------------------------------------------------------- ## footer_custom Settings ## ------------------------------------------------------------- beian: enable: true gov: 湘公网安备 43030402000254 号 recordcode: 43030402000254 icp: 湘 ICP 备 18020535 号 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:2\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#备案信息自定义\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.3 文字抖动特效 \\u0026lt;div class=\\u0026#34;shaky\\u0026#34;\\u0026gt;（づ●\\u0026#39;◡\\u0026#39;●) づ ❥内容区\\u0026lt;/div\\u0026gt; （づ●'◡'●) づ ❥内容区 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:3\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#文字抖动特效\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.4 左下角微信公众号 \\\\source\\\\css\\\\_custom\\\\customs.styl \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:4\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#左下角微信公众号\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.5 相关文章收纳 加入 H5 标签，实现可收纳功能，点击查看详情。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:5\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#相关文章收纳\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.6 Chat Services 共 chatra,tidio,daovoice 三个选项，三选一 ## Chatra Support ## See: https://chatra.io ## Dashboard: https://app.chatra.io/settings/general chatra: enable: false async: true id: ## visit Dashboard to get your ChatraID #embed: ## unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto ## Tidio Support ## See: https://www.tidiochat.com ## Dashboard: https://www.tidiochat.com/panel/dashboard tidio: enable: false key: ## Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer #在线客服 daovoice: true daovoice_app_id: xxxx ## http://www.daovoice.io/ \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:6\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#chat-services\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.7 pdf 和 Mermaid 解析模块 pdf 传送门 pdf: enable: false ## Default height height: 500px pdfobject: cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js ## Mermaid tag mermaid: enable: false ## Available themes: default | dark | forest | neutral theme: forest cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:7\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#pdf-和-mermaid-解析模块\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.8 模仿 csdn 转发样式 ... \\u0026lt;a class=\\u0026#34;post-title-link\\u0026#34; href=\\u0026#34;{{ url_for(post.path) }}\\u0026#34; itemprop=\\u0026#34;url\\u0026#34;\\u0026gt; + {% if post.repost %} + \\u0026lt;span class=\\u0026#34;repost\\u0026#34;\\u0026gt;转\\u0026lt;/span\\u0026gt; + {% endif %} {{ post.title | default(__(\\u0026#39;post.untitled\\u0026#39;))}} \\u0026lt;/a\\u0026gt; {% else -%} + {% if post.repost %} + \\u0026lt;span class=\\u0026#34;repost\\u0026#34;\\u0026gt;转\\u0026lt;/span\\u0026gt; + {% endif %} {{- post.title -}} ... .repost { color: #5acc79; border: 1px solid #e7f4df; border-radius: 20px; padding: 2px 5px; font-size: 15px; font-weight: 500; } --- title: xxxx repost: true --- 预览 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:8\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#模仿-csdn-转发样式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.9 热度页面 打开hexo\\\\themes\\\\next\\\\layout新建 top.swig 文件，写下如下内容保存： {% extends \\u0026#39;_layout.swig\\u0026#39; %} {% import \\u0026#39;_macro/sidebar.swig\\u0026#39; as sidebar_template %} {% block title %}{# #}{% set page_title_suffix = \\u0026#39; | \\u0026#39; + title %}{# #}{% if page.type === \\u0026#34;categories\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.category\\u0026#39;) + page_title_suffix }}{# #}{% elif page.type === \\u0026#34;tags\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.tag\\u0026#39;) + page_title_suffix }}{# #}{% elif page.type === \\u0026#34;photos\\u0026#34; and not page.title %}{# #}{{ __(\\u0026#39;title.photos\\u0026#39;) + page_title_suffix }}{# #}{% else %}{# #}{{ page.title + page_title_suffix }}{# #}{% endif %}{# #}{% endblock %} {% block page_class %}page-post-detail{% endblock %} {% block content %} \\u0026lt;div id=\\u0026#34;posts\\u0026#34; class=\\u0026#34;posts-expand\\u0026#34;\\u0026gt; {##################} {#### PAGE BLOCK ###} {##################} \\u0026lt;div class=\\u0026#34;post-block page\\u0026#34;\\u0026gt; {% include \\u0026#39;_partials/page-header.swig\\u0026#39; %} {#################} {#### PAGE BODY ###} {#################} \\u0026lt;div class=\\u0026#34;post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction \\u0026amp;\\u0026amp; page.direction.toLowerCase() === \\u0026#39;rtl\\u0026#39; %} rtl{% endif %}\\u0026#34;\\u0026gt; {{ page.content }} \\u0026lt;div id=\\u0026#34;top\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;style\\u0026gt; #top{ display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; width: 100%; min-height: calc({{ page.limit }} * 20px); } #top div{ width: 400px; height: 40px; max-width: 400px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } #top a{ color: #555; text-decoration: none; outline: 0; border-bottom: 1px solid #999; word-wrap: break-word; } \\u0026lt;/style\\u0026gt; \\u0026lt;script src=\\u0026#34;https://cdn1.lncld.net/static/js/av-core-mini-0.6.4.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script\\u0026gt;AV.initialize(\\u0026#34;{{ theme.valine.appid }}\\u0026#34;, \\u0026#34;{{ theme.valine.appkey }}\\u0026#34;);\\u0026lt;/script\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; setTimeout(function(){ var time=0 var title=\\u0026#34;\\u0026#34; var url=\\u0026#34;\\u0026#34; var query = new AV.Query(\\u0026#39;Counter\\u0026#39;); query.notEqualTo(\\u0026#39;id\\u0026#39;,0); query.descending(\\u0026#39;time\\u0026#39;); query.limit({{ page.limit }}); //设置篇数 query.find().then(function (todo) { for (var i=0;i\\u0026lt;{{ page.limit }};i++){ var result=todo[i].attributes; time=result.time; title=result.title; category=result.categories url=result.url; var content=\\u0026#34;\\u0026lt;div\\u0026gt;\\u0026#34;+\\u0026#34;【文章热度：\\u0026#34;+time+\\u0026#34;℃】\\u0026#34;+\\u0026#34;\\u0026lt;a href=\\u0026#39;\\u0026#34;+\\u0026#34;{{ config.url }}\\u0026#34;+\\u0026#34;\\u0026#34;+url+\\u0026#34;\\u0026#39;\\u0026gt;\\u0026#34;+title+\\u0026#34;\\u0026lt;/a\\u0026gt;\\u0026#34;+\\u0026#34;\\u0026lt;/div\\u0026gt;\\u0026#34;; document.getElementById(\\u0026#34;top\\u0026#34;).innerHTML+=content; } }, function (error) { console.log(\\u0026#34;error\\u0026#34;); }); },1000) \\u0026lt;/script\\u0026gt; {#####################} {#### END PAGE BODY ###} {#####################} \\u0026lt;/div\\u0026gt; {% include \\u0026#39;_partials/breadcrumb.swig\\u0026#39; %} {######################} {#### END PAGE BLOCK ###} {######################} \\u0026lt;/div\\u0026gt; {% endblock %} {% block sidebar %} {{ sidebar_template.render(false) }} {% endblock %} {% block script_extra %} {% include \\u0026#39;_scripts/pages/post-details.swig\\u0026#39; %} {% endblock %} 其中第 36 行改成你自己的 leancloud 的 appid 和 appkey, 比如我的是在主题配置文件里面的 valine 配置下，所以我就写成theme.valine.appid。和我一样就不需要修改，其他自行配置。 然后hexo n page top新建一个页面文章配置写下如下内容，limit 表示显示篇数： --- title: 热度 layout: top limit: 20 --- \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:9\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#热度页面\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.10 复制按钮样式 本来只想简单美化一下变成 night 样式的，后来写完发现 3dbtn 也挺喜欢的。 codeblock: ## Manual define the border radius in codeblock ## Leave it empty for the default 1 border_radius: 5 ## Add copy button on codeblock copy_button: enable: true ## Show text copy result show_result: true ## Style: \\u0026#39;light,night,flat,3dbtn\\u0026#39; is currently available, leave it empty or light is default theme style: night \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/hexo-theme-next/:2:10\",\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"title\":\"hexo-theme-next @modified LRH\",\"uri\":\"/posts/hexo-theme-next/#复制按钮样式\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/substatus/:0:0\",\"tags\":[\"Java\"],\"title\":\"Java 父类子类的对象初始化过程\",\"uri\":\"/posts/substatus/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 基本初始化过程 对于一个简单类的初始化过程是： static 修饰的模块（static 变量和 static 块） =\\u0026gt; 按照代码顺序依次执行。 ↓ 实例变量 及非 static 模块 =\\u0026gt; 按照代码顺序依次执行。 ↓ 构造函数 =\\u0026gt; 执行对应的构造函数。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/substatus/:1:0\",\"tags\":[\"Java\"],\"title\":\"Java 父类子类的对象初始化过程\",\"uri\":\"/posts/substatus/#基本初始化过程\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 子类的初始化过程 父类 static 修饰的模块 ↓ 子类 static 修饰模块 ↓ 父类实例变量和非 static 块 ↓ 父类对应构造函数。当子类对应构造函数中没有显示调用时调用的是父类默认的构造函数。 ↓ 子类实例变量和非 static 块 ↓ 子类构造函数 package code0507; public class Demo { public static void main(String[] args) { Sub sub = new Sub(); System.out.println(sub); } } class Super { int a = 6; public Super() { test(); //被子类同名函数覆盖，优先访问子类 test } int b=9; public void test() { System.out.println(a); } } class Sub extends Super { int a = 8; public Sub() { test(); } public void test() { System.out.println(a); } } 运行结果 0 8 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/substatus/:2:0\",\"tags\":[\"Java\"],\"title\":\"Java 父类子类的对象初始化过程\",\"uri\":\"/posts/substatus/#子类的初始化过程\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/windefault/:0:0\",\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"uri\":\"/posts/windefault/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1 修改/etc/default/grub文件 同时按住键盘上的“Ctrl Alt T”三个键（即快捷键“Ctrl+Alt+T”），打开终端窗口。在终端内输入 sudo gedit /etc/default/grub 按 Enter 键确认，提示输入用户密码，输入的用户密码是看不见的，不要管它，输入完成确认即可打开 grub 文件。 把 grub 文件中的 GRUB_DEFAULT=0 中的 0 改为 saved, 把 GRUB_TIMEOUT=10 中的 10 改为 5。（这里的 5 表示开机时等待选择操作系统是时间是 5 秒） 在文件末尾添加 GRUB_SAVEDEFAULT=true后保存文件并退出。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/windefault/:1:0\",\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"uri\":\"/posts/windefault/#修改etcdefaultgrub文件\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2 更新启动配置文件 在终端输入 sudo update-grub 按 Enter 键确认 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/windefault/:2:0\",\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"uri\":\"/posts/windefault/#更新启动配置文件\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3 重启 sudo reboot或者点击重启，重启到启动菜单时，选择你要更改为默认启动项的系统，按 Enter 键确认启动即可，下次启动时刚刚选择的系统即为默认启动系统，直到你手动选择启动其他的系统为止。以后可以轻松的来回切换默认系统了。 \",\"date\":\"2019-03-21\",\"objectID\":\"/posts/windefault/:3:0\",\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"uri\":\"/posts/windefault/#重启\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~ 原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。 注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:0:0\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"17 技术栈 后端：thinkphp 5.1 前端：layui 数据库：mysql \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:1:0\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#技术栈\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"18 演示站 已兼容移动端，测试账号仅供测试请勿修改密码！ test test123 https://player.ilt.me/ https://player.lruihao.cn/ \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:2:0\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#演示站\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19 安装 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:0\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#安装\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.1 视频安装教程 https://www.bilibili.com/video/av46476706 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:1\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#视频安装教程\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.2 依赖 composer php 5.6+ mysql 5.5+ \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:2\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#依赖\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.3 步骤 安装 php 依赖包 composer install 配置数据库，配置链接数据库名以及用户名密码 /config/database.php 创建数据库 字符编码：utf8 -- UTF-8 Unicode 导入数据库脚本，脚本位置 extend/database \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:3\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#步骤\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.4 伪静态配置 19.4.1 nginx location / { index index.htm index.html index.php; #访问路径的文件不存在则重写 URL 转交给 ThinkPHP 处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; break; } } 19.4.2 apache 项目自带 apache 静态化无需配置 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:4\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#伪静态配置\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.4 伪静态配置 19.4.1 nginx location / { index index.htm index.html index.php; #访问路径的文件不存在则重写 URL 转交给 ThinkPHP 处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; break; } } 19.4.2 apache 项目自带 apache 静态化无需配置 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:4\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#nginx\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.4 伪静态配置 19.4.1 nginx location / { index index.htm index.html index.php; #访问路径的文件不存在则重写 URL 转交给 ThinkPHP 处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; break; } } 19.4.2 apache 项目自带 apache 静态化无需配置 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:4\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#apache\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"19.5 启动项目 添加 public 为 web 根目录 若为 apache 服务器则默认伪静态，nginx 可自行配置伪静态 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:3:5\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#启动项目\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20 预览 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:0\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#预览\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20.1 首页 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:1\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#首页\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20.2 登陆页面 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:2\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#登陆页面\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20.3 后台首页 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:3\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#后台首页\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20.4 后台播放器管理页面 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:4\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#后台播放器管理页面\"},{\"categories\":[\"瞎折腾\",\"PHP\"],\"collections\":null,\"content\":\"20.5 后台歌单管理页面 \",\"date\":\"2019-03-19\",\"objectID\":\"/posts/player/:4:5\",\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"title\":\"宅音乐播放器\",\"uri\":\"/posts/player/#后台歌单管理页面\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/bt/:0:0\",\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"title\":\"宝塔面板安装\",\"uri\":\"/posts/bt/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"13 系统要求 操作系统：全新系统（支持 CentOS、Ubuntu、Debian、Fedora、Deepin)， 确保是干净的操作系统，没有安装过其它环境带的 Apache/Nginx/php/MySQL 宝塔 Linux6.0 版本是基于 centos7 开发的，强烈建议使用 centos7.x 系统 内存要求：内存要求最低 512MB，推荐 768MB 以上，纯面板约占系统 60MB 内存。 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/bt/:1:0\",\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"title\":\"宝塔面板安装\",\"uri\":\"/posts/bt/#系统要求\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"14 安装方法 官方号称 2 分钟装好面板，一键管理服务器。 使用 SSH 连接工具，如宝塔远程桌面助手连接到你的 Linux 服务器后，挂载磁盘，根据系统执行相应命令开始安装（大约 2 分钟完成面板安装）： yum install -y wget \\u0026amp;\\u0026amp; wget -O install.sh http://download.bt.cn/install/install_6.0.sh \\u0026amp;\\u0026amp; sh install.sh wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh \\u0026amp;\\u0026amp; sudo bash install.sh wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh \\u0026amp;\\u0026amp; bash install.sh wget -O install.sh http://download.bt.cn/install/install_6.0.sh \\u0026amp;\\u0026amp; bash install.sh \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/bt/:2:0\",\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"title\":\"宝塔面板安装\",\"uri\":\"/posts/bt/#安装方法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"15 搭建 ftp 和云盘服务器 可以很傻瓜式的搭建自己的云盘，和平时用的比较多的 ftp 服务器。搭建静态网站也可以用 ftp 来上传文件。 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/bt/:3:0\",\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"title\":\"宝塔面板安装\",\"uri\":\"/posts/bt/#搭建-ftp-和云盘服务器\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！ \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:0:0\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 front-end \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:0\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#front-end\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 html HTML+CSS 9.1.1 oblique 和 intalic 的区别 这两个都是font-style属性的值，这两个值都能实现倾斜的效果，但是有区别的。 intalic: 这个是字体的倾斜，相当于斜体，字体必须有倾斜属性。 oblique: 这个准确地说是让文字倾斜。相当于斜字，字体不一定要有倾斜属性。 9.1.2 title 显示换行 使用\\u0026amp;#10;或使用\\u0026amp;#13; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一行\\u0026amp;#10; 第二行\\u0026amp;#10; 第三行\\u0026#34;\\u0026gt;使用`\\u0026amp;#10;`\\u0026lt;/a\\u0026gt; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一排\\u0026amp;#13; 第二排\\u0026amp;#13; 第三排\\u0026#34;\\u0026gt;使用`\\u0026amp;#13;`\\u0026lt;/a\\u0026gt; 9.1.3 图片类型选择 图片类型选择 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:1\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#html\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 html HTML+CSS 9.1.1 oblique 和 intalic 的区别 这两个都是font-style属性的值，这两个值都能实现倾斜的效果，但是有区别的。 intalic: 这个是字体的倾斜，相当于斜体，字体必须有倾斜属性。 oblique: 这个准确地说是让文字倾斜。相当于斜字，字体不一定要有倾斜属性。 9.1.2 title 显示换行 使用\\u0026amp;#10;或使用\\u0026amp;#13; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一行\\u0026amp;#10; 第二行\\u0026amp;#10; 第三行\\u0026#34;\\u0026gt;使用`\\u0026amp;#10;`\\u0026lt;/a\\u0026gt; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一排\\u0026amp;#13; 第二排\\u0026amp;#13; 第三排\\u0026#34;\\u0026gt;使用`\\u0026amp;#13;`\\u0026lt;/a\\u0026gt; 9.1.3 图片类型选择 图片类型选择 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:1\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#oblique-和-intalic-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 html HTML+CSS 9.1.1 oblique 和 intalic 的区别 这两个都是font-style属性的值，这两个值都能实现倾斜的效果，但是有区别的。 intalic: 这个是字体的倾斜，相当于斜体，字体必须有倾斜属性。 oblique: 这个准确地说是让文字倾斜。相当于斜字，字体不一定要有倾斜属性。 9.1.2 title 显示换行 使用\\u0026amp;#10;或使用\\u0026amp;#13; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一行\\u0026amp;#10; 第二行\\u0026amp;#10; 第三行\\u0026#34;\\u0026gt;使用`\\u0026amp;#10;`\\u0026lt;/a\\u0026gt; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一排\\u0026amp;#13; 第二排\\u0026amp;#13; 第三排\\u0026#34;\\u0026gt;使用`\\u0026amp;#13;`\\u0026lt;/a\\u0026gt; 9.1.3 图片类型选择 图片类型选择 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:1\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#title-显示换行\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.1 html HTML+CSS 9.1.1 oblique 和 intalic 的区别 这两个都是font-style属性的值，这两个值都能实现倾斜的效果，但是有区别的。 intalic: 这个是字体的倾斜，相当于斜体，字体必须有倾斜属性。 oblique: 这个准确地说是让文字倾斜。相当于斜字，字体不一定要有倾斜属性。 9.1.2 title 显示换行 使用\\u0026amp;#10;或使用\\u0026amp;#13; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一行\\u0026amp;#10; 第二行\\u0026amp;#10; 第三行\\u0026#34;\\u0026gt;使用`\\u0026amp;#10;`\\u0026lt;/a\\u0026gt; \\u0026lt;a href=\\u0026#34;#\\u0026#34; title=\\u0026#34;第一排\\u0026amp;#13; 第二排\\u0026amp;#13; 第三排\\u0026#34;\\u0026gt;使用`\\u0026amp;#13;`\\u0026lt;/a\\u0026gt; 9.1.3 图片类型选择 图片类型选择 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:1\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#图片类型选择\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.2 css 9.2.1 flexbox Flex 布局将成为未来布局的首选方案，比如说常见的 bootstrap4 的版本就用 flex 替代了 float 来进行排版。 我在网上看到几个很好的教程，图文并茂，一目了然。 A Complete Guide to Flexbox Flex 布局教程：语法篇 实在懒癌发作，笔记本上手抄了笔记我就不写学习总结了，还有网友 Demo 也写了。 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:2\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#css\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.2 css 9.2.1 flexbox Flex 布局将成为未来布局的首选方案，比如说常见的 bootstrap4 的版本就用 flex 替代了 float 来进行排版。 我在网上看到几个很好的教程，图文并茂，一目了然。 A Complete Guide to Flexbox Flex 布局教程：语法篇 实在懒癌发作，笔记本上手抄了笔记我就不写学习总结了，还有网友 Demo 也写了。 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:2\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#flexbox\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.3 javascript 9.3.1 keydown 和 keypress keydown：按下键盘键 keypress：紧接着keydown事件触发（只有按下字符键时触发） 如果用户按下了一个字符键不放，就会重复触发keydown和keypress事件，直到用户松开该键为止。 如果用户按下了一个非字符键不放，就会重复触发keydown事件，直到用户松开该键为止。 详解键盘事件 (keydown，keypress，keyup) 9.3.2 textContent、innerText 和 innerHTML 的区别 设置标签中的文本内容，应该使用textContent或innerText（更老）属性，区别在于浏览器支援程度 innerHTML能够获得元素内的所有标签内容，也可以设置标签使之生效。（注意防止 XSS 注入） 如果某个属性在浏览器中不支持，那么这个属性的类型是undefined，判断这个属性的类型是不是undefined，就知道浏览器是否支持。 \\u0026lt;script\\u0026gt; // 设置任意的标签中间的任意文本内容 function setInnerText(element, text) { //判断浏览器是否支持这个属性 if (typeof element.textContent == \\u0026#34;undefined\\u0026#34;) {//不支持 element.innerText = text; } else {//支持这个属性 element.textContent = text; } }; \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:3\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#javascript\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.3 javascript 9.3.1 keydown 和 keypress keydown：按下键盘键 keypress：紧接着keydown事件触发（只有按下字符键时触发） 如果用户按下了一个字符键不放，就会重复触发keydown和keypress事件，直到用户松开该键为止。 如果用户按下了一个非字符键不放，就会重复触发keydown事件，直到用户松开该键为止。 详解键盘事件 (keydown，keypress，keyup) 9.3.2 textContent、innerText 和 innerHTML 的区别 设置标签中的文本内容，应该使用textContent或innerText（更老）属性，区别在于浏览器支援程度 innerHTML能够获得元素内的所有标签内容，也可以设置标签使之生效。（注意防止 XSS 注入） 如果某个属性在浏览器中不支持，那么这个属性的类型是undefined，判断这个属性的类型是不是undefined，就知道浏览器是否支持。 \\u0026lt;script\\u0026gt; // 设置任意的标签中间的任意文本内容 function setInnerText(element, text) { //判断浏览器是否支持这个属性 if (typeof element.textContent == \\u0026#34;undefined\\u0026#34;) {//不支持 element.innerText = text; } else {//支持这个属性 element.textContent = text; } }; \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:3\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#keydown-和-keypress\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.3 javascript 9.3.1 keydown 和 keypress keydown：按下键盘键 keypress：紧接着keydown事件触发（只有按下字符键时触发） 如果用户按下了一个字符键不放，就会重复触发keydown和keypress事件，直到用户松开该键为止。 如果用户按下了一个非字符键不放，就会重复触发keydown事件，直到用户松开该键为止。 详解键盘事件 (keydown，keypress，keyup) 9.3.2 textContent、innerText 和 innerHTML 的区别 设置标签中的文本内容，应该使用textContent或innerText（更老）属性，区别在于浏览器支援程度 innerHTML能够获得元素内的所有标签内容，也可以设置标签使之生效。（注意防止 XSS 注入） 如果某个属性在浏览器中不支持，那么这个属性的类型是undefined，判断这个属性的类型是不是undefined，就知道浏览器是否支持。 \\u0026lt;script\\u0026gt; // 设置任意的标签中间的任意文本内容 function setInnerText(element, text) { //判断浏览器是否支持这个属性 if (typeof element.textContent == \\u0026#34;undefined\\u0026#34;) {//不支持 element.innerText = text; } else {//支持这个属性 element.textContent = text; } }; \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:3\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#textcontentinnertext-和-innerhtml-的区别\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.4 图床方案 自行搭建 比如使用开源图床 ImgURL 搭建的img.lruihao.cn（需要服务器） 使用上传工具加第三方免费空间，比如PicGo + 腾讯云 COS（无需服务器） 使用各大图床 诸如 sm.ms，腾讯云 COS，阿里云 OSS，七牛云，又拍云，Github，微博图床，ImgURL 图床等等 \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:4\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#图床方案\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.5 font-awesome 现在使用 5 的版本，可以使用webfont+css或svg+js \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css\\u0026#34;\\u0026gt; 其他的图标 js \\u0026lt;script src=\\u0026#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;svg class=\\u0026#34;card-avatar\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt; \\u0026lt;use xlink:href=\\u0026#34;#icon-{{n+1}}\\u0026#34;\\u0026gt;\\u0026lt;/use\\u0026gt; \\u0026lt;!--n 为一个数字--\\u0026gt; \\u0026lt;/svg\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:5\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#font-awesome\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.6 响应式（自适应） \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css\\u0026#34;\\u0026gt; \\u0026lt;script src=\\u0026#34;https://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js\\u0026#34;\\u0026gt; \\u0026lt;meta name=\\u0026#34;viewport\\u0026#34; content=\\u0026#34;width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=0\\u0026#34;\\u0026gt; .col-xs- 超小屏幕 手机 \\u0026lt;768px .col-sm- 小屏幕 平板 \\u0026gt;=768px .col-md- 中等屏幕 \\u0026gt;=992px .col-lg- 大屏幕 \\u0026gt;1200px css3 写法 @media（宽度具体调整） /* 手机等小屏幕手持设备 */ @media screen and (min-width: 320px) and (max-width: 480px) { /*手机端 css 样式表*/ } /* 平板之类的宽度 1024 以下设备 */ @media only screen and (min-width: 321px) and (max-width: 1024px) { /*电脑端 css 样式表*/ } link 引入不同 css \\u0026lt;!--手机端--\\u0026gt; \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; type=\\u0026#34;text/css\\u0026#34; href=\\u0026#34;style_phone.css\\u0026#34; media=\\u0026#34;screen and (max-width: 960px)\\u0026#34;/\\u0026gt; \\u0026lt;!--电脑端--\\u0026gt; \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; type=\\u0026#34;text/css\\u0026#34; href=\\u0026#34;style_PC.css\\u0026#34; media=\\u0026#34;screen and (min-width: 960px)\\u0026#34;/\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:6\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#响应式自适应\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.7 jquery \\u0026lt;script src=\\u0026#34;https://code.jquery.com/jquery-3.3.1.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script src=\\u0026#34;https://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script src=\\u0026#34;https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;script src=\\u0026#34;http://cdn.bootcss.com/jquery/1.11.0/jquery.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; //还有其他的源 ... \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:7\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#jquery\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.8 QQ 推广链接 QQ 推广 QQ 群 \\u0026lt;a target=\\u0026#34;_blank\\u0026#34; href=\\u0026#34;https://wpa.qq.com/msgrd?v=3\\u0026amp;uin=1074627678\\u0026amp;site=qq\\u0026amp;menu=yes\\u0026#34;\\u0026gt;\\u0026lt;img border=\\u0026#34;0\\u0026#34; src=\\u0026#34;http://wpa.qq.com/pa?p=2:1074627678:51\\u0026#34; alt=\\u0026#34;点击这里给我发消息\\u0026#34; title=\\u0026#34;点击这里给我发消息\\u0026#34;/\\u0026gt;\\u0026lt;/a\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:8\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#qq-推广链接\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.9 Google fonts https://fonts.google.com/ 一般选用国内源镜像替代（待补充 ...） + https://fonts.loli.net + //fonts.lug.ustc.edu.cn \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:9\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#google-fonts\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9.10 fancybox github 介绍 fancybox 源 \\u0026lt;link href=\\u0026#34;https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css\\u0026#34; rel=\\u0026#34;stylesheet\\u0026#34;\\u0026gt; \\u0026lt;script src=\\u0026#34;https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:1:10\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#fancybox\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 back-end 更多学习内容见 学习课件 练习作业 源码+Demo \",\"date\":\"2019-03-18\",\"objectID\":\"/posts/webbiji/:2:0\",\"tags\":[\"JavaScript\"],\"title\":\"web 汇总\",\"uri\":\"/posts/webbiji/#back-end\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"date\":\"2019-03-16\",\"objectID\":\"/posts/fanxing/:0:0\",\"tags\":[\"泛型\",\"Java\"],\"title\":\"java 泛型 test\",\"uri\":\"/posts/fanxing/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 代码 package code0507; public class WildCardTest { public static void main(String[] args) { Box\\u0026lt;String\\u0026gt;name=new Box\\u0026lt;String\\u0026gt;(\\u0026#34;hello\\u0026#34;); Box\\u0026lt;Integer\\u0026gt;age=new Box\\u0026lt;Integer\\u0026gt;(12); Box\\u0026lt;Double\\u0026gt;number=new Box\\u0026lt;Double\\u0026gt;(210.50); Box\\u0026lt;Integer\\u0026gt;point=new Box\\u0026lt;Integer\\u0026gt;(); getData(name); getData(age); getData(number); point.printpoint(520, 1314); point.printpoint(\\u0026#34;me\\u0026#34;, \\u0026#34;too\\u0026#34;); } public static void getData(Box\\u0026lt;?\\u0026gt;data){//类型通配符 System.out.println(\\u0026#34;data:\\u0026#34;+data.getData()); } } class Box\\u0026lt;T\\u0026gt;{ private T data; public Box() {}//构造方法重载 public Box(T data) { setData(data); } public T getData() { return data; } public void setData(T data) { this.data = data; } //定义泛型方法 public\\u0026lt;T1,T2\\u0026gt;void printpoint(T1 x,T2 y){ T1 m=x; T2 n=y; System.out.println(\\u0026#34;This point is:\\u0026#34;+m+\\u0026#34;,\\u0026#34;+n); } } \",\"date\":\"2019-03-16\",\"objectID\":\"/posts/fanxing/:1:0\",\"tags\":[\"泛型\",\"Java\"],\"title\":\"java 泛型 test\",\"uri\":\"/posts/fanxing/#代码\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 运行结果 data:hello data:12 data:210.5 This point is:520,1314 This point is:me,too \",\"date\":\"2019-03-16\",\"objectID\":\"/posts/fanxing/:2:0\",\"tags\":[\"泛型\",\"Java\"],\"title\":\"java 泛型 test\",\"uri\":\"/posts/fanxing/#运行结果\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/eclipseuse/:1:0\",\"tags\":[\"eclipse\",\"Java\"],\"title\":\"eclipse 的基本使用\",\"uri\":\"/posts/eclipseuse/#基本使用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/eclipseuse/:2:0\",\"tags\":[\"eclipse\",\"Java\"],\"title\":\"eclipse 的基本使用\",\"uri\":\"/posts/eclipseuse/#eclipse-的基本设置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击） \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/eclipseuse/:3:0\",\"tags\":[\"eclipse\",\"Java\"],\"title\":\"eclipse 的基本使用\",\"uri\":\"/posts/eclipseuse/#快捷键的使用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters... \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/eclipseuse/:4:0\",\"tags\":[\"eclipse\",\"Java\"],\"title\":\"eclipse 的基本使用\",\"uri\":\"/posts/eclipseuse/#eclipse-中如何提高开发效率\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/qframe/:0:0\",\"tags\":[\"GUI\",\"Java\"],\"title\":\"匿名类在可视化界面中的应用\",\"uri\":\"/posts/qframe/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"13 代码 package cn.lruihao; import java.awt.event.*; import javax.swing.*; public class QFrame extends JFrame { public QFrame() { JButton jbtnew=new JButton(\\u0026#34;New\\u0026#34;);//新建按钮 JPanel panel=new JPanel();//面板容器 panel.add(jbtnew);//添加组件 add(panel); jbtnew.addActionListener(new ActionListener() { //新建一匿名类，并将该对应的事件监听器注册到“新建”按钮 就 jbtnew 上 @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, \\u0026#34;单击了新建按钮\\u0026#34;); System.out.println(\\u0026#34;lruihao.cn\\u0026#34;); } }); } public static void main(String[] args) { JFrame frame=new QFrame(); frame.setTitle(\\u0026#34;QFrame\\u0026#34;); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.pack(); frame.setVisible(true); } } 创建一个可视化界面，界面中有一个按钮，单击按钮显示“单击了新建按钮”。 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/qframe/:1:0\",\"tags\":[\"GUI\",\"Java\"],\"title\":\"匿名类在可视化界面中的应用\",\"uri\":\"/posts/qframe/#代码\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"14 结果 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/qframe/:2:0\",\"tags\":[\"GUI\",\"Java\"],\"title\":\"匿名类在可视化界面中的应用\",\"uri\":\"/posts/qframe/#结果\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"15 参考 JOptionPane 的使用 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/qframe/:3:0\",\"tags\":[\"GUI\",\"Java\"],\"title\":\"匿名类在可视化界面中的应用\",\"uri\":\"/posts/qframe/#参考\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡] \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/linkcard/:0:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"模仿知乎卡片式链接\",\"uri\":\"/posts/linkcard/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"9 源码 2021/10/2 1:29 更新 这是一种后加载，创建linkcard.js放到source/js/src/，然后在next\\\\layout\\\\_macro\\\\post.swig中引用 function cardLink() { let $cardLinks = document.querySelectorAll(\\u0026#39;.card-link\\u0026#39;); if ($cardLinks.length === 0) { return; } //插入样式 let $linkStyle = document.createElement(\\u0026#39;style\\u0026#39;); $linkStyle.innerHTML = \\u0026#39;.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;color:inherit;text-decoration:none}.ztext{word-break:break-word;line-height:1.6}.card-link-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/images/card-link-bg.jpg);background-repeat:no-repeat;-webkit-filter:blur(20px);filter:blur(20px);background-size:cover;background-position:center}.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:inherit;background-color:rgba(246,246,246,0.88)}.card-link-text{overflow:hidden}.card-link-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:calc(16px * 1.25 * 2);font-size:16px;font-weight:500;line-height:1.25;color:#1a1a1a}.card-link-meta{display:flex;margin-top:4px;font-size:14px;line-height:20px;color:#999;white-space:nowrap}.card-link-url{display: inline-flex;align-items: center;}.card-link-imageCell{margin-left:8px;border-radius:6px}.card-link-image{display:block;width:60px;height:60px;border-radius:inherit}\\u0026#39;; document.querySelector(\\u0026#39;body\\u0026#39;).appendChild($linkStyle); //渲染 DOM for (let $cardLink of $cardLinks) { $cardLink.innerHTML = `\\u0026lt;span class=\\u0026#39;card-link-backdrop\\u0026#39;\\u0026gt;\\u0026lt;/span\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-content\\u0026#39;\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-text\\u0026#39;\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-title\\u0026#39;\\u0026gt;${$cardLink.innerText}\\u0026lt;/span\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-meta\\u0026#39;\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-url\\u0026#39;\\u0026gt;\\u0026lt;svg class=\\u0026#39;Zi Zi--InsertLink\\u0026#39; fill=\\u0026#39;currentColor\\u0026#39; viewBox=\\u0026#39;0 0 24 24\\u0026#39; width=\\u0026#39;17\\u0026#39; height=\\u0026#39;17\\u0026#39;\\u0026gt;\\u0026lt;path d=\\u0026#39;M6.77 17.23c-.905-.904-.94-2.333-.08-3.193l3.059-3.06-1.192-1.19-3.059 3.058c-1.489 1.489-1.427 3.954.138 5.519s4.03 1.627 5.519.138l3.059-3.059-1.192-1.192-3.059 3.06c-.86.86-2.289.824-3.193-.08zm3.016-8.673l1.192 1.192 3.059-3.06c.86-.86 2.289-.824 3.193.08.905.905.94 2.334.08 3.194l-3.059 3.06 1.192 1.19 3.059-3.058c1.489-1.489 1.427-3.954-.138-5.519s-4.03-1.627-5.519-.138L9.786 8.557zm-1.023 6.68c.33.33.863.343 1.177.029l5.34-5.34c.314-.314.3-.846-.03-1.176-.33-.33-.862-.344-1.176-.03l-5.34 5.34c-.314.314-.3.846.03 1.177z\\u0026#39; fill-rule=\\u0026#39;evenodd\\u0026#39;\\u0026gt;\\u0026lt;/path\\u0026gt;\\u0026lt;/svg\\u0026gt;\\u0026lt;/span\\u0026gt;${$cardLink.href}\\u0026lt;/span\\u0026gt;\\u0026lt;/span\\u0026gt;\\u0026lt;span class=\\u0026#39;card-link-imageCell\\u0026#39;\\u0026gt;\\u0026lt;img class=\\u0026#39;card-link-image\\u0026#39; alt=\\u0026#39;card-link icon\\u0026#39; src=\\u0026#39;/images/linkicon.png\\u0026#39;\\u0026gt;\\u0026lt;/span\\u0026gt;\\u0026lt;/span\\u0026gt;`; } } window.onload = () =\\u0026gt; { cardLink(); }; \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/linkcard/:1:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"模仿知乎卡片式链接\",\"uri\":\"/posts/linkcard/#源码\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"10 使用 \\u0026lt;!--知乎卡片链接--\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;/js/src/card-link.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; html 链接写法，a 标签加上class=\\u0026quot;card-link\\u0026quot; \\u0026lt;a href=\\u0026#34;https://github.com/Lruihao/lruihao.github.io\\u0026#34; target=\\u0026#34;_blank\\u0026#34; class=\\u0026#34;card-link\\u0026#34;\\u0026gt;Lruihao 博客\\u0026lt;/a\\u0026gt; Lruihao 博客 github.com/Lruihao/lruihao.github.io \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/linkcard/:2:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"模仿知乎卡片式链接\",\"uri\":\"/posts/linkcard/#使用\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/ubuntutime/:0:0\",\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"title\":\"win10,ubuntu 双系统时间不一致\",\"uri\":\"/posts/ubuntutime/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"13 原因 在安装 Ubuntu 和 Windows 双系统的情况下，Ubuntu 的时间总会和 Windows 的时间相差 8 小时，原因在于 widows 认为 BIOS 时间是本地时间，Ubuntu 认为 BIOS 时间是 UTC 时间，即协调世界时，(Universal Time Coordinated) 英文缩写，是由国际无线电咨询委员会规定和推荐，并由国际时间局 (BIH) 负责保持的以秒为基础的时间标度。UTC 相当于本初子午线（即经度 0 度）上的平均太阳时，过去曾用格林威治平均时 (GMT) 来表示。北京时间比 UTC 时间早 8 小时，以 1999 年 1 月 1 日 00:00 UTC 为例，UTC 时间是零点，北京时间为 1999 年 1 月 1 日早上 8 点整。)，所以我们在时间上面相隔了 8 个小时。这个时候 bios 的时间和系统的时间当然是不一致，一个代表 utc 时间，一个代表 cst（＋ 8 时区），即我们常用的时间。 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/ubuntutime/:1:0\",\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"title\":\"win10,ubuntu 双系统时间不一致\",\"uri\":\"/posts/ubuntutime/#原因\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"14 方法一 在 Windows 下 进行如下修改：（博主 win10,win7 自测） 以管理员身份运行 CMD（win+x 后选择 Windows Powershell（管理员） Reg add HKLM\\\\SYSTEM\\\\CurrentControlSet\\\\Control\\\\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 重启看看时间发现 ok 了。 \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/ubuntutime/:2:0\",\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"title\":\"win10,ubuntu 双系统时间不一致\",\"uri\":\"/posts/ubuntutime/#方法一\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"15 方法二 老版 Ubuntu（Ubuntu10 左右）： 修改 /etc/default/rcS 文件 编辑 /etc/default/rcS 将 UTC=yes改成 UTC=no 。 新版 Ubuntu（Ubuntu16.04）： 新版本的 Ubuntu 使用 systemd 启动之后，时间也改成了由 timedatectl 来管理，此方法就不适用了。 $sudo timedatectl set-local-rtc 1 先在 ubuntu 下更新一下时间，确保时间无误： $sudo apt-get install ntpdate $sudo ntpdate time.windows.com 然后将时间更新到硬件上： $sudo hwclock --localtime --systohc 重新进入 windows10，发现时间恢复正常了！ \",\"date\":\"2019-03-15\",\"objectID\":\"/posts/ubuntutime/:3:0\",\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"title\":\"win10,ubuntu 双系统时间不一致\",\"uri\":\"/posts/ubuntutime/#方法二\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。 查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。 \",\"date\":\"2019-03-08\",\"objectID\":\"/posts/qqxml/:0:0\",\"tags\":[\"JavaScript\"],\"title\":\"QQ 强制生成卡片式链接\",\"uri\":\"/posts/qqxml/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"13 批量式刷新 //设置刷新前缀 url=首页地址（最好使用 https） var base_src = \\u0026#39;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=https://lruihao.cn\\u0026#39;; //用户地址 //var custom_src = \\u0026#34;https://lruihao.cn\\u0026#34;; //初始化工作地址 var new_src = \\u0026#39;\\u0026#39;; function createArrayAndOpenWindow() { //alert(\\u0026#34;number function\\u0026#34;); //定义数组存储后缀 var numberArray = new Array(4); //存储后缀 numberArray[0] = \\u0026#39;/about/\\u0026#39;; numberArray[1] = \\u0026#39;/categories/\\u0026#39;; numberArray[2] = \\u0026#39;/tags/\\u0026#39;; numberArray[3] = \\u0026#39;/archives/\\u0026#39;; //numberArray[4] = \\u0026#34;/guestbook/\\u0026#34;; //遍历 for (var i = 0; i \\u0026lt; numberArray.length; i++) { new_src = base_src + numberArray[i]; //打开该地址 open_new(); //清空后缀 new_src = \\u0026#39;\\u0026#39;; } } //负责打开窗口，并关闭 function open_new() { var new_window = window.open(new_src, \\u0026#39;\\u0026#39;, \\u0026#39;width=400,height=200\\u0026#39;); setTimeout(function () { //开启后 200ms（单页）关闭，速度自行把握数组越大时间越多 new_window.close(); }, 2000); } window.onload = function () { createArrayAndOpenWindow(); //设置定时函数，疯狂刷新直到 xml 出现内容 var timer = setInterval(\\u0026#39;createArrayAndOpenWindow()\\u0026#39;, 2000); }; \",\"date\":\"2019-03-08\",\"objectID\":\"/posts/qqxml/:1:0\",\"tags\":[\"JavaScript\"],\"title\":\"QQ 强制生成卡片式链接\",\"uri\":\"/posts/qqxml/#批量式刷新\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"14 单链接刷新 \\u0026lt;div style=\\u0026#34;text-align: center;\\u0026#34;\\u0026gt; \\u0026lt;input type=\\u0026#34;text\\u0026#34; id=\\u0026#34;input\\u0026#34; value=\\u0026#34;\\u0026#34; /\\u0026gt; \\u0026lt;input type=\\u0026#34;button\\u0026#34; value=\\u0026#34;疯狂刷新\\u0026#34; onclick=\\u0026#34;yanzheng()\\u0026#34; /\\u0026gt; \\u0026lt;/div\\u0026gt; //设置刷新前缀 url=首页地址（最好使用 https）https://lruihao.cn var base_src = \\u0026#39;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\\u0026#39;; //用户地址 var custom_src = \\u0026#39;\\u0026#39;; //初始化工作地址 var new_src = \\u0026#39;\\u0026#39;; //负责打开窗口，并关闭 function open_new() { var new_window = window.open(new_src, \\u0026#39;\\u0026#39;, \\u0026#39;width=400,height=200\\u0026#39;); setTimeout(function () { //开启后 200ms 关闭 new_window.close(); }, 200); } // 获取验证用户输入 function yanzheng() { var Input = document.getElementById(\\u0026#39;input\\u0026#39;); var oValue = Input.value; custom_src = oValue; new_src = base_src + custom_src; if (oValue == 0) { alert(\\u0026#39;请输入地址\\u0026#39;); } else { var timer = setInterval(\\u0026#39;open_new()\\u0026#39;, 200); } } \",\"date\":\"2019-03-08\",\"objectID\":\"/posts/qqxml/:2:0\",\"tags\":[\"JavaScript\"],\"title\":\"QQ 强制生成卡片式链接\",\"uri\":\"/posts/qqxml/#单链接刷新\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"15 demo 线上 demo 仅做参考请自行下载 效果 \",\"date\":\"2019-03-08\",\"objectID\":\"/posts/qqxml/:3:0\",\"tags\":[\"JavaScript\"],\"title\":\"QQ 强制生成卡片式链接\",\"uri\":\"/posts/qqxml/#demo\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1 外存的组织方式 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:0\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#外存的组织方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1.1 连续组织方式 连续组织方式的优点 顺序访问容易 顺序访问速度快 连续组织方式的缺点 分配连续的存储空间 必须知道文件长度 删除与插入数据不灵活 动态增长的文件分配空间问题 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:1\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#连续组织方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1.2 链接组织方式 隐式链接 显式链接 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:2\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#链接组织方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1.3 FAT 技术 FAT12 早期的 FAT12 文件系统 以簇为单位的 FAT12 文件系统 FAT16 FAT32 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:3\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#fat-技术\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1.4 NTFS 的文件组织方式 NTFS 新特征 磁盘组织 文件的组织 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:4\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#ntfs-的文件组织方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"1.5 索引组织方式 单级索引组织方式 多级索引组织方式 增量式索引组织方式 增量式索引组织方式的基本思想 UNIX System V 的组织方式 直接地址 一次间接地址 多次间接地址 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:1:5\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#索引组织方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2 文件存储空间的管理 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:2:0\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#文件存储空间的管理\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2.1 空闲表法和空闲链表法 空闲表法 空闲表 存储空间的分配与回收 空闲链表法 空闲盘块链 空闲盘区链 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:2:1\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#空闲表法和空闲链表法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2.2 位示图法 位示图 盘块的分配（步骤） 顺序扫描示图 转换盘块号 修改位示图 盘块的回收（步骤） 盘块号转换成行列号 修改位示图 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:2:2\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#位示图法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"2.3 成组链接法 空闲盘块的组织 空闲盘块的分配与回收 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:2:3\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#成组链接法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3 提高磁盘 I/O 速度的途径 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:3:0\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#提高磁盘-io-速度的途径\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3.1 磁盘高速缓存 数据交付方式 数据交付 指针交付 置换算法 周期性地写回磁盘 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:3:1\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#磁盘高速缓存\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3.2 提高磁盘 I/O 速度的其他方法 提前读 延迟写 优化物理块的分布 虚拟盘 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:3:2\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#提高磁盘-io-速度的其他方法\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"3.3 廉价磁盘冗余阵列 (RAID) 并行交叉存取 RAID 的分级 RAID 0 级 RAID 1 级 RAID 2 级 RAID 3 级 RAID 4 级 RAID 5 级 RAID 6 级和 RAID 7 级 RAID 的优点 可靠性高 磁盘 I/O 速度高 性价比高 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:3:3\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#廉价磁盘冗余阵列-raid\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4 提高磁盘可靠性的技术 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:4:0\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#提高磁盘可靠性的技术\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4.1 第一级容错技术 SFT-Ⅰ 双份目录和双份文件分配表 热修复重定向和写后读校验 热修复重定向 写后读校验方式 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:4:1\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#第一级容错技术-sft-\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4.2 第二级容错技术 SFT-Ⅱ 磁盘镜像 磁盘双工 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:4:2\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#第二级容错技术-sft-\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4.3 基于集群技术的容错功能 双机热备份模式 双机互为备份模式 公用磁盘模式 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:4:3\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#基于集群技术的容错功能\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"4.4 后备系统 磁带机 硬盘 移动磁盘 固定硬盘驱动器 光盘驱动器 CD-ROM 和 DVD-ROM 刻录机 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:4:4\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#后备系统\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"5 数据一致性控制 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:5:0\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#数据一致性控制\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"5.1 事务 事务的定义 事务记录 恢复算法 undo \\u0026lt;Ti\\u0026gt; redo \\u0026lt;Ti\\u0026gt; \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:5:1\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#事务\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"5.2 检查点 检查点的作用 新的恢复算法 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:5:2\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#检查点\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"5.3 并发控制 利用互斥锁实现“顺序性” 利用互斥锁和共享锁实现顺序性 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:5:3\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#并发控制\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"5.4 重复数据的数据一致性问题 重复文件的一致性 链接数一致性检查 \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/cipanadmin/:5:4\",\"tags\":[\"OS\",\"磁盘\"],\"title\":\"磁盘存储器的管理\",\"uri\":\"/posts/cipanadmin/#重复数据的数据一致性问题\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 请点击验证码处：↑ 验证码 JS 来源互联网 \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34;\\u0026gt; //设置一个全局的变量，便于保存验证码 var code; function createCode(){ //首先默认 code 为空字符串 code = \\u0026#39;\\u0026#39;; //设置长度，这里看需求，我这里设置了 4 var codeLength = 4; var codeV = document.getElementById(\\u0026#39;code\\u0026#39;); //设置随机字符 var random = new Array(0,1,2,3,4,5,6,7,8,9,\\u0026#39;A\\u0026#39;,\\u0026#39;B\\u0026#39;,\\u0026#39;C\\u0026#39;,\\u0026#39;D\\u0026#39;,\\u0026#39;E\\u0026#39;,\\u0026#39;F\\u0026#39;,\\u0026#39;G\\u0026#39;,\\u0026#39;H\\u0026#39;,\\u0026#39;I\\u0026#39;,\\u0026#39;J\\u0026#39;,\\u0026#39;K\\u0026#39;,\\u0026#39;L\\u0026#39;,\\u0026#39;M\\u0026#39;,\\u0026#39;N\\u0026#39;,\\u0026#39;O\\u0026#39;,\\u0026#39;P\\u0026#39;,\\u0026#39;Q\\u0026#39;,\\u0026#39;R\\u0026#39;, \\u0026#39;S\\u0026#39;,\\u0026#39;T\\u0026#39;,\\u0026#39;U\\u0026#39;,\\u0026#39;V\\u0026#39;,\\u0026#39;W\\u0026#39;,\\u0026#39;X\\u0026#39;,\\u0026#39;Y\\u0026#39;,\\u0026#39;Z\\u0026#39;); //循环 codeLength 我设置的 4 就是循环 4 次 for(var i = 0; i \\u0026lt; codeLength; i++){ //设置随机数范围，这设置为 0 ~ 36 var index = Math.floor(Math.random()*36); //字符串拼接 将每次随机的字符 进行拼接 code += random[index]; } //将拼接好的字符串赋值给展示的 Value codeV.value = code; } //下面就是判断是否== 的代码，无需解释，也可以结合 ajax 在后台做判断 function validate(){ var Input = document.getElementById(\\u0026#39;input\\u0026#39;); var oValue = Input.value.toUpperCase(); if(oValue ==0){ alert(\\u0026#39;请输入验证码\\u0026#39;); }else if(oValue != code){ Input.value = \\u0026#39;\\u0026#39;; alert(\\u0026#39;验证码不正确，请重新输入\\u0026#39;); createCode(); }else{ Input.value = \\u0026#39;\\u0026#39;; alert(\\u0026#39;验证码正确！\\u0026#39;);//window.open(\\u0026#39;http://lruihao.cn\\u0026#39;,\\u0026#39;_self\\u0026#39;); } } //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空 window.onload = function (){ createCode(); } \\u0026lt;/script\\u0026gt; \",\"date\":\"2019-03-04\",\"objectID\":\"/posts/js-vcode/:0:0\",\"tags\":[\"JavaScript\"],\"title\":\"JS 验证码\",\"uri\":\"/posts/js-vcode/#\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。 逢近年关，邻居家的王婶又在等她的儿子了。 她的儿子大抵有五年未曾回家了。记得去年，他同王婶说好了回家过年，王婶便从腊月二十直直地等到腊月三十，准备好一桌的年夜饭，最后却只是她一个人随便地扒拉了几口。 我尚且还记得那日，王婶与我母亲一同去河边处理鸡鸭，我也随了去。母亲同王婶说：“源子怎地还不回来？”王婶道：“许是买的车票晚了些，他早前和我说回家过年的，想来还在回来的路上。” 到晚上，万家灯火渐起，都说热热闹闹团圆饭，王婶家却格外冷清。王婶嫁过来时，家中便只有王叔一人，早些年，王叔随人去炸山取石，人也不幸被石头砸死，家中便只有王婶和她儿子二人。王源也知家中境况，自大学毕业后在外工作，至今，除了前年我暑假时回来过一次，其中便从未回来过。 人倒是挺奋进，这些年，王婶家从小木屋变成了三层小洋房，家里也添置了许多家具和电器。王婶倒像一个门卫，守着这栋房子，看着这个家。 不过别家事总归别家事。 王婶是个十分随和的人，也常常和村里人打趣逗乐，常见她笑眼眯眯。一年到头，也唯有这“头”让她难展笑颜。 “王婶子，源哥还没回来吗？” “快了，快了……” 王婶又坐在门口，纳着新鞋，常常一纳就是一天。 我们常听到一个词——衣锦还乡，其实，于父母而言，他们所看重的从来都只是还乡。而所谓衣锦，不过是死要面子者拿来的托辞。衣锦若无，无便无罢，衣锦若有，有便有罢。 衣锦随意，还乡就好。 戊戌年腊月廿七于家中。 \",\"date\":\"2019-02-01\",\"objectID\":\"/posts/renative/:0:0\",\"tags\":[\"随笔\",\"他山之石\"],\"title\":\"还乡\",\"uri\":\"/posts/renative/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/hexo theme next: Elegant and powerful theme for Hexo.\",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"hexo-theme-next 如无必要，不再更新！（2019.09.13） 今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改，next主题官方已经更新到了7.0+的版本，喜欢next主题风格的朋友可以在github更新。 我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。 以下仍为当前博客使用主题，lib资源已打包github。 基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\\u0026gt; https://theme-next.org 记录一下折腾过程，修改内容以博採眾長为准，以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值 主要的几个自定义文件 _config.swig #主题配置文件 相关账户信息自己注册替换 \\\\layout\\\\custom\\\\head.swig #在头部自定义加入标签 \\\\layout\\\\custom\\\\google_adsense.swig #谷歌广告模块，内有注释暂时弃用 \\\\layout\\\\_layout.swig #主布局 \\\\layout\\\\_macro\\\\post.swig #文章布局 \\\\layout\\\\_macro\\\\post-copyright.swig #文章版权 \\\\layout\\\\_macro\\\\siderbar.swig #侧栏模板 \\\\layout\\\\_third-party\\\\copy-code.swig #复制按钮 \\\\layout\\\\_partials\\\\comments.swig #评论主模板 \\\\layout\\\\_partials\\\\footer.swig #底部模板#该模块在layout.swig引入，用于在body自定义标签 \\\\layout\\\\_partials\\\\footer_custom.swig #footer自定义文件 \\\\layout\\\\_third-party\\\\custom.swig #该模块在layout.swig引入用于在body自定义标签 \\\\source\\\\css\\\\_custom\\\\customs.styl #主要用户自定义样式表 \\\\source\\\\fonts\\\\ #引入了一些我的手写体及外部字体 \\\\scripts\\\\qcloudcdn.js #腾讯云cos桶刷新缓存的脚本，不需要可删掉[^1] ^1 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:0:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"初步安装 安装整个改过的主题,然后下载相应的lib资源 cd hexo git clone https://github.com/Lruihao/hexo-theme-next themes/next \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:1:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#初步安装 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"更新内容 更多自定义详见源码 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:2:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#更新内容 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"links模板 自定义友链模板，打开hexo\\\\themes\\\\next\\\\layout\\\\新建links.swig文件，写下links.swig内容后保存。 若未使用懒加载请将模板中的data-original属性改为src 若懒加载无法加载预览图请手动添加src=\\u0026quot;/images/loading.gif\\u0026quot; 若fancybox显示alt内容请更换fancybox2或者将alt属值删除 然后hexo n page links新建一个页面文章配置写下如下内容： --- title: 友情链接 layout: links --- 然后在links页面文件夹下面新建文件夹_data，再在里面新建links.yml，内容如下 - nickname: 博採眾長 avatar: http://lruihao.cn/images/avatar.png site: http://lruihao.cn info: 一个菜鸟的博客 - nickname: #友链名称 avatar: #友链头像 site: #友链地址 info: #友链说明 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:3:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#links模板\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"备案信息自定义 # ------------------------------------------------------------- # footer_custom Settings # ------------------------------------------------------------- beian: enable: true gov: 湘公网安备 43030402000254号 recordcode: 43030402000254 icp: 湘ICP备18020535号 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:4:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#备案信息自定义\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"文字抖动特效 \\u0026lt;div class=\\u0026#34;shaky\\u0026#34;\\u0026gt;(づ●\\u0026#39;◡\\u0026#39;●)づ ❥内容区\\u0026lt;/div\\u0026gt; \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:5:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#文字抖动特效\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"左下角微信公众号 \\\\source\\\\css\\\\_custom\\\\customs.styl \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:6:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#左下角微信公众号\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"相关文章收纳 加入H5标签，实现可收纳功能，点击查看详情。 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:7:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#相关文章收纳\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Chat Services 共chatra,tidio,daovoice三个选项，三选一 # Chatra Support # See: https://chatra.io # Dashboard: https://app.chatra.io/settings/general chatra: enable: false async: true id: # visit Dashboard to get your ChatraID #embed: # unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto # Tidio Support # See: https://www.tidiochat.com # Dashboard: https://www.tidiochat.com/panel/dashboard tidio: enable: false key: # Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer #在线客服 daovoice: true daovoice_app_id: xxxx # http://www.daovoice.io/ \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:8:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#chat-services\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"pdf和Mermaid解析模块 pdf传送门 pdf: enable: false # Default height height: 500px pdfobject: cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js # Mermaid tag mermaid: enable: false # Available themes: default | dark | forest | neutral theme: forest cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:9:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#pdf和mermaid解析模块\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"模仿csdn转发样式 ... \\u0026lt;a class=\\u0026#34;post-title-link\\u0026#34; href=\\u0026#34;{{ url_for(post.path) }}\\u0026#34; itemprop=\\u0026#34;url\\u0026#34;\\u0026gt; + {% if post.repost %} + \\u0026lt;span class=\\u0026#34;repost\\u0026#34;\\u0026gt;转\\u0026lt;/span\\u0026gt; + {% endif %} {{ post.title | default(__(\\u0026#39;post.untitled\\u0026#39;))}} \\u0026lt;/a\\u0026gt; {% else -%} + {% if post.repost %} + \\u0026lt;span class=\\u0026#34;repost\\u0026#34;\\u0026gt;转\\u0026lt;/span\\u0026gt; + {% endif %} {{- post.title -}} ... .repost { color: #5acc79; border: 1px solid #e7f4df; border-radius: 20px; padding: 2px 5px; font-size: 15px; font-weight: 500; } --- title: xxxx repost: true --- 预览 \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:10:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#模仿csdn转发样式\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"热度页面 打开hexo\\\\themes\\\\next\\\\layout新建top.swig文件，写下如下内容保存： 其中第36行改成你自己的leancloud的appid和appkey,比如我的是在主题配置文件里面的valine配置下，所以我就写成theme.valine.appid。和我一样就不需要修改，其他自行配置。 然后hexo n page top新建一个页面文章配置写下如下内容，limit表示显示篇数： --- title: 热度 layout: top limit: 20 --- \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:11:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#热度页面\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"复制按钮样式 本来只想简单美化一下变成night样式的，后来写完发现3dbtn也挺喜欢的。 codeblock: # Manual define the border radius in codeblock # Leave it empty for the default 1 border_radius: 5 # Add copy button on codeblock copy_button: enable: true # Show text copy result show_result: true # Style: \\u0026#39;light,night,flat,3dbtn\\u0026#39; is currently available, leave it empty or light is default theme style: night \",\"date\":\"2019-01-31\",\"objectID\":\"/projects/lruihao/hexo-theme-next/:12:0\",\"tags\":[],\"title\":\"Elegant and powerful theme for Hexo.\",\"uri\":\"/projects/lruihao/hexo-theme-next/#复制按钮样式\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 引用 继承的好处： 提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强 设计原则：低耦合，高内聚。 耦合：类与类的关系。 内聚：自己完成事情的能力。 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:0:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"25 java 中的继承特点 Java 只支持单继承，不支持多继承。Java 支持多层继承（继承体系） class A { } class B extends A { } /* class C extends A,B { } */ class C extends B { } class ExtendsDemo { public static void main(String[] args) { } } \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:1:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#java-中的继承特点\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"26 java 中的继承注意事项 子类只能继承父类所有非私有的成员（成员方法和成员变量） 子类不能继承父类的构造方法，但是可以通过 super 关键字去访问父类构造方法。 不要为了部分功能而去继承 那么，我们什么时候考虑使用继承呢？ 继承中类之间体现的是：”is a”的关系。 如果两个类满足这个关系：xxx is a yyy，那么他们就可以使用继承。 Student,Person 对 Dog,Animal 对 Dog,Pig 错 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:2:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#java-中的继承注意事项\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"27 继承 继承间的构造方法关系：创建子类对象，会先去访问父类的构造方法。对父类的数据进行初始化。 package jicheng; class Fu{ public int num = 10; public Fu(){ System.out.println(\\u0026#34;父类\\u0026#34;); } } class Zi extends Fu{ public int num = 20; public Zi(){ System.out.println(\\u0026#34;子类\\u0026#34;); } public void show(){ int num = 30; System.out.println(num);//30 System.out.println(this.num);//20 System.out.println(super.num);//10 } } public class test { public static void main(String[] args) { Zi z = new Zi(); z.show(); } } 程序运行结果 父类 子类 30 20 10 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:3:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#继承\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"28 代码块 代码块的执行顺序：静态代码块 \\u0026ndash;\\u0026gt; 构造代码块 \\u0026ndash;\\u0026gt; 构造方法 代码的执行特点：静态代码块只执行一次，构造代码块每次调用构造方法都执行。 package jicheng; class Fu { static { System.out.println(\\u0026#34;父类静态代码块\\u0026#34;); } { System.out.println(\\u0026#34;父类构造代码块\\u0026#34;); } public Fu() { System.out.println(\\u0026#34;父类构造方法\\u0026#34;); } } class Zi extends Fu { static { System.out.println(\\u0026#34;子类静态代码块\\u0026#34;); } { System.out.println(\\u0026#34;子类构造代码块\\u0026#34;); } public Zi() { System.out.println(\\u0026#34;子类构造方法\\u0026#34;); } } public class test { public static void main(String[] args) { Zi z = new Zi(); Zi z2 = new Zi(); } } 程序运行结果： 父类静态代码块 子类静态代码块 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:4:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#代码块\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"29 继承间的成员关系 成员方法 不同名称：非常简单，一看就知道调用谁 相同名称：先在子类找，再在父类找 \\u0026hellip; 找不到就报错。 成员变量： 名字不同：非常的简单，一看就知道使用的是谁。 名字相同：就近原则。 使用变量的时候，会先找局部范围。 如果想直接使用成员变量，加关键字：this 即可。 如果想直接使用父类的成员变量，加关键字：super 即可。 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:5:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#继承间的成员关系\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"30 注意事项 子类中所有的构造方法默认都会访问父类中空参数的构造方法。为什么呢？因为子类会继承父类中的数据，可能还会使用父类的数据。所以，子类初始化之前，一定要先完成父类数据的初始化。 \",\"date\":\"2019-01-24\",\"objectID\":\"/posts/jicheng/:6:0\",\"tags\":[\"Java\"],\"title\":\"java 继承 test\",\"uri\":\"/posts/jicheng/#注意事项\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。 适用于 hexo, hugo 等静态博客的部署。 \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:0:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"29 创建存储桶 打开腾讯云控制台\\u0026ndash;云产品\\u0026ndash;存储\\u0026ndash;对象存储，然后创建存储桶。 \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:1:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#创建存储桶\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"30 开启静态网站设置 在基础配置打开静态网站（关掉强制 https) \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:2:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#开启静态网站设置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"31 绑定域名 SSL 设置 \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:3:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#绑定域名\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"32 域名解析，添加记录 去 dns 服务商添加域名解析记录 CNAME 指向上面的域名 \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:4:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#域名解析添加记录\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33 hexo 设置 安装插件 npm install hexo-deployer-cos --save 站点配置文件 deploy: type: cos bucket: yourBucketName #cos 桶名称 appId: yourAppId #cos 桶名称后数字 secretId: yourSecretId #云 API 密钥 secretKey: yourSecretKey #云 API 密钥 region: yourRegion #所属地域 发布还是一样的 hexo clean hexo g -d 结果类似于 \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:5:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#hexo-设置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34 CDN 刷新 每次更新博客内容完后，都要登陆腾讯云 CDN\\u0026ndash;缓存刷新，手动刷新一下 CDN。 用脚本在每次更新后刷新 安装 npm install qcloud-cdn-node-sdk --save 创建qcloudcdn.js放入script文件夹 const qcloudSDK = require(\\u0026#39;qcloud-cdn-node-sdk\\u0026#39;); qcloudSDK.config({ secretId: \\u0026#39;你的 ID\\u0026#39;, secretKey: \\u0026#39;你的密钥\\u0026#39; }); qcloudSDK.request( \\u0026#39;RefreshCdnDir\\u0026#39;, { \\u0026#39;dirs.1\\u0026#39;: \\u0026#39;http://博客地址\\u0026#39; }, (res) =\\u0026gt; { console.log(res); } ); \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:6:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#cdn-刷新\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35 自动 CDN 刷新配置（推荐） 进入腾讯云，找到 函数计算 -\\u0026gt; CDN 缓存刷新函数 -\\u0026gt; 创建 CDN 缓存刷新函数 修改 index.js 内容后重新部署 \\u0026#39;use strict\\u0026#39;; const CosSdk = require(\\u0026#39;cos-nodejs-sdk-v5\\u0026#39;); const CdnSdk = require(\\u0026#39;./common/CdnSdk\\u0026#39;); const CdnRefreshTask = require(\\u0026#39;./common/CdnRefreshTask\\u0026#39;); const { getParams, getObjectUrl, logger, getLogSummary } = require(\\u0026#39;./common/utils\\u0026#39;); exports.main_handler = async (event, context, callback) =\\u0026gt; { /** * parse param from event and process.env */ const { objects, cdnHosts, secretId, secretKey, token } = getParams(event); logger({ title: \\u0026#39;param is parsed success, param as follow: \\u0026#39;, data: { objects, cdnHosts, event } }); /** * init cos instance */ if (!secretId || !secretKey || !token) { throw new Error(`secretId, secretKey or token is missing`); } const cdnSdkInstance = new CdnSdk({ secretId, secretKey, token }); const cosInstance = new CosSdk({ SecretId: secretId, SecretKey: secretKey, XCosSecurityToken: token }); const taskList = objects.map(({ bucket, region, key }) =\\u0026gt; { /* 变更内容-START */ const purgeUrls = []; cdnHosts.forEach((host) =\\u0026gt; { const tempUrl = getObjectUrl({ cosInstance, bucket, region, key, origin: `${/^(http\\\\:\\\\/\\\\/|https\\\\:\\\\/\\\\/)/.test(host) ? \\u0026#39;\\u0026#39; : \\u0026#39;https://\\u0026#39;}${host}` }); purgeUrls.push(tempUrl); // 如果以 /index.html 结尾，则增加目录首页/。 // 例如 https://www.xxxx.com/index.html, 则增加 https://www.xxxx.com/。 if (tempUrl.lastIndexOf(\\u0026#39;/index.html\\u0026#39;) == tempUrl.length - 11) { purgeUrls.push(tempUrl.substr(0, tempUrl.length - 10)); } }); return new CdnRefreshTask({ cdnSdkInstance, urls: purgeUrls }); /* 变更内容-END */ }); const taskResults = []; for (const task of taskList) { const results = await task.runPurgeTasks(); taskResults.push(...results); } logger({ title: \\u0026#39;cdn refresh full logs:\\u0026#39;, data: taskResults }); const { status, messages } = getLogSummary(taskResults); logger({ messages: messages.map((item) =\\u0026gt; item.replace(/\\\\,\\\\ /g, \\u0026#39;\\\\n\\u0026#39;)) }); if (status === \\u0026#39;fail\\u0026#39;) { throw messages.join(\\u0026#39;; \\u0026#39;); } else { return messages.join(\\u0026#39;; \\u0026#39;); } }; \",\"date\":\"2019-01-22\",\"objectID\":\"/posts/cos-hexo/:7:0\",\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"uri\":\"/posts/cos-hexo/#自动-cdn-刷新配置推荐\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"13 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"date\":\"2019-01-18\",\"objectID\":\"/posts/java-arrays/:1:0\",\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"title\":\"Arrays 类及基本使用\",\"uri\":\"/posts/java-arrays/#主要方法\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"14 实例代码 package Arrays; import java.text.Collator; import java.util.Arrays; import java.util.Comparator; public class ArraysDemo { public static void main(String agrs[]) { Integer arr[]=new Integer[9]; for(int i=0;i\\u0026lt;9;i++) arr[i]=(int)(Math.random()*100); //显示，排序数组 System.out.print(\\u0026#34;原内容：\\u0026#34;); display(arr); Arrays.sort(arr); System.out.print(\\u0026#34;排序后：\\u0026#34;); display(arr); //将值 -1 分配给数组 arr 中下标从 0 到 3-1 的位置 Arrays.fill(arr, 0,3,-1); System.out.print(\\u0026#34;fill() 后：\\u0026#34;); display(arr); //搜索 23 System.out.print(\\u0026#34;值 23 的位置：\\u0026#34;); int index =Arrays.binarySearch(arr, 23);//二分查找 System.out.print(index);//如果查找不到，index 为负 System.out.print(\\u0026#34;\\\\n 插入 0 在 3 号位置：\\u0026#34;); Arrays.fill(arr,3,4,0); display(arr); System.out.print(\\u0026#34;值 0 的位置：\\u0026#34;); index =Arrays.binarySearch(arr, 0); System.out.print(index); Integer arr2[]=new Integer[8]; arr2=Arrays.copyOf(arr, arr2.length); //复制 8 个 System.out.print(\\u0026#34;\\\\n 复制后的数组：\\u0026#34;); display(arr2); if(Arrays.equals(arr, arr2)) System.out.println(\\u0026#34;两数组相同！\\u0026#34;); else System.out.println(\\u0026#34;两数组不相同！\\u0026#34;); System.out.println(\\u0026#34;----------------------------------------\\u0026#34;); String[] str = {\\u0026#34;计算机\\u0026#34;,\\u0026#34;黄桑\\u0026#34;,\\u0026#34;通信\\u0026#34;,\\u0026#34;李瑞豪\\u0026#34;}; Arrays.sort(str); for(int i=0;i\\u0026lt;str.length;i++) System.out.print(str[i]+\\u0026#34; \\u0026#34;); System.out.println(\\u0026#34;\\u0026#34;); //Collator 类是用来执行分语言环境的字符串比较，这里用的 CHINA Comparator com=Collator.getInstance(java.util.Locale.CHINA);//获取 Comparator 对象，参数表示按中文排序 //根据指定的 \\u0026#34;比较器\\u0026#34; 产生的顺序对 \\u0026#34;指定对象数组\\u0026#34; 进行排序 Arrays.sort(str,com);//sort(T[] a,Comparator\\u0026lt;?super T\\u0026gt;c) for(int i=0;i\\u0026lt;str.length;i++) System.out.print(str[i]+\\u0026#34; \\u0026#34;); } static void display(Integer arr[]) { for(int i=0;i\\u0026lt;arr.length;i++) System.out.print(arr[i]+\\u0026#34; \\u0026#34;); System.out.println(\\u0026#34;\\u0026#34;); } } \",\"date\":\"2019-01-18\",\"objectID\":\"/posts/java-arrays/:2:0\",\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"title\":\"Arrays 类及基本使用\",\"uri\":\"/posts/java-arrays/#实例代码\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"15 程序运行结果 原内容：41 0 44 96 49 96 30 6 87 排序后：0 6 30 41 44 49 87 96 96 fill() 后：-1 -1 -1 41 44 49 87 96 96 值 23 的位置：-4 插入 0 在 3 号位置：-1 -1 -1 0 44 49 87 96 96 值 0 的位置：3 复制后的数组：-1 -1 -1 0 44 49 87 96 两数组不相同！ ---------------------------------------- 李瑞豪 计算机 通信 黄桑 黄桑 计算机 李瑞豪 通信 \",\"date\":\"2019-01-18\",\"objectID\":\"/posts/java-arrays/:3:0\",\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"title\":\"Arrays 类及基本使用\",\"uri\":\"/posts/java-arrays/#程序运行结果\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 首先在主题配置文件添加以下关键字 recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block \",\"date\":\"2019-01-16\",\"objectID\":\"/posts/recent-posts/:0:0\",\"tags\":[\"Hexo\"],\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"uri\":\"/posts/recent-posts/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。 {% if theme.recent_posts.enable and theme.recent_posts.sidebar %} \\u0026lt;div class=\\u0026#34;links-of-blogroll motion-element {{ \\u0026#34;links-of-blogroll-\\u0026#34; + theme.recent_posts.layout }}\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;links-of-blogroll-title\\u0026#34;\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; {{ theme.recent_posts.title }} \\u0026lt;/div\\u0026gt; \\u0026lt;ul class=\\u0026#34;links-of-blogroll-list\\u0026#34;\\u0026gt; {% set posts = site.posts.sort(\\u0026#39;-date\\u0026#39;) %} {% for post in posts.slice(\\u0026#39;0\\u0026#39;, \\u0026#39;3\\u0026#39;) %} \\u0026lt;li\\u0026gt; \\u0026lt;a href=\\u0026#34;{{ url_for(post.path) }}\\u0026#34; title=\\u0026#34;{{ post.title }}\\u0026#34; target=\\u0026#34;_blank\\u0026#34;\\u0026gt;{{ post.title }}\\u0026lt;/a\\u0026gt; \\u0026lt;/li\\u0026gt; {% endfor %} \\u0026lt;/ul\\u0026gt; \\u0026lt;/div\\u0026gt; {% endif %} \",\"date\":\"2019-01-16\",\"objectID\":\"/posts/recent-posts/:1:0\",\"tags\":[\"Hexo\"],\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"uri\":\"/posts/recent-posts/#侧栏\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"18 搜索结果处添加 找到路径H:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials\\\\search下localsearch.swig文件 把\\u0026lt;div id=\\u0026quot;local-search-result\\u0026quot;\\u0026gt;\\u0026lt;/div\\u0026gt;修改成以下内容（这里显示 15 篇） \\u0026lt;div id=\\u0026#34;local-search-result\\u0026#34;\\u0026gt; {% if theme.recent_posts.enable and theme.recent_posts.search %} \\u0026lt;div style=\\u0026#34;text-align: center;padding: 3px 0 0;\\u0026#34;\\u0026gt; \\u0026lt;div style=\\u0026#34;margin-top: 20px;font-size: 18px;font-weight: 600;border-bottom: 1px solid #ccc;\\u0026#34;\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-{{ theme.recent_posts.icon }}\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; {{ theme.recent_posts.title }} \\u0026lt;/div\\u0026gt; \\u0026lt;ul style=\\u0026#34;margin: 0;padding: 0;list-style: none;\\u0026#34;\\u0026gt; {% set posts = site.posts.sort(\\u0026#39;-date\\u0026#39;) %} {% for post in posts.slice(\\u0026#39;0\\u0026#39;, \\u0026#39;15\\u0026#39;) %} \\u0026lt;li\\u0026gt; \\u0026lt;a href=\\u0026#34;{{ url_for(post.path) }}\\u0026#34; title=\\u0026#34;{{ post.title }}\\u0026#34; target=\\u0026#34;_blank\\u0026#34;\\u0026gt;{{ post.title }}\\u0026lt;/a\\u0026gt; \\u0026lt;/li\\u0026gt; {% endfor %} \\u0026lt;/ul\\u0026gt; \\u0026lt;/div\\u0026gt; {% endif %} \\u0026lt;/div\\u0026gt; \",\"date\":\"2019-01-16\",\"objectID\":\"/posts/recent-posts/:2:0\",\"tags\":[\"Hexo\"],\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"uri\":\"/posts/recent-posts/#搜索结果处添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"19 文章尾部添加 把代码加在H:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_macro\\\\post.swig里的相应位置（我加在 tags 后） {% if not is_index and theme.recent_posts.enable and theme.recent_posts.post %} \\u0026lt;div style=\\u0026#34;text-align: center;padding: 10px 0 0;\\u0026#34;\\u0026gt; \\u0026lt;div style=\\u0026#34;margin: 60px 0px 10px;font-size: 18px;border-bottom: 1px solid #eee;\\u0026#34;\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-{{ theme.recent_posts.icon }}\\u0026#34; aria-hidden=\\u0026#34;true\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; {{ theme.recent_posts.title }} \\u0026lt;/div\\u0026gt; \\u0026lt;ul style=\\u0026#34;margin: 0;padding: 0;list-style: none;font-size: 11px;\\u0026#34;\\u0026gt; {% set posts = site.posts.sort(\\u0026#39;-date\\u0026#39;) %} {% for post in posts.slice(\\u0026#39;0\\u0026#39;, \\u0026#39;5\\u0026#39;) %} \\u0026lt;a href=\\u0026#34;{{ url_for(post.path) }}\\u0026#34; title=\\u0026#34;{{ post.title }}\\u0026#34; target=\\u0026#34;_blank\\u0026#34;\\u0026gt;{{ post.title }}\\u0026lt;/a\\u0026gt;\\u0026amp;emsp; {% endfor %} \\u0026lt;/ul\\u0026gt; \\u0026lt;/div\\u0026gt; {% endif %} \",\"date\":\"2019-01-16\",\"objectID\":\"/posts/recent-posts/:3:0\",\"tags\":[\"Hexo\"],\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"uri\":\"/posts/recent-posts/#文章尾部添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"20 其他 可尝试将-date改为-update \",\"date\":\"2019-01-16\",\"objectID\":\"/posts/recent-posts/:4:0\",\"tags\":[\"Hexo\"],\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"uri\":\"/posts/recent-posts/#其他\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 大一刚学 c 的时候以前写过 c 语言版 的。 Math: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 class MathDemo { public static void main(String[] args) { //获取随机数 //double d = Math.random(); //System.out.println(d); /* for(int x=0; x\\u0026lt;10; x++) { //System.out.println(Math.random()); System.out.println(Math.random()*100); } */ //我们如何获取 1-100 之间的随机数呢？ for(int x=0; x\\u0026lt;100; x++) { int number = (int)(Math.random()*100)+1; System.out.println(number); } } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/mathclass/:0:0\",\"tags\":[\"Java\"],\"title\":\"java 猜数字小游戏（Math 类）\",\"uri\":\"/posts/mathclass/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"0.9 小游戏 该游戏可以由程序随机产生或由用户输入四个 0 到 9 之间的数字，且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A 表示位置正确且数字正确，B 表示数字正确而位置不正确。 算法： 可以直接算出 A 类的数目，但是 B 类的数目直接算出或许会很麻烦，正好我们可以先算出 C 类数目恰好减去 A 类就是 B 类了。 package caishuzi; import java.util.Scanner; class Num { private int[] a= {0,0,0,0}; public Num() {} public void setx() { /*for(int i=0;i\\u0026lt;4;i++) { a[i]=(int)(Math.random()*10); }*/ //为了四个互不相同的随机数 a[0]=(int)Math.random()*10+1; for(int i=1;i\\u0026lt;4;i++) { int t=(int)(Math.random()*10); for(int j=0;j\\u0026lt;i;j++) { if(t==a[j]) { t=(int)(Math.random()*10); j=0; } } a[i]=t; } } public int[] getx() { return a; } public void show() { System.out.println(); for(int i=0;i\\u0026lt;4;i++) System.out.print(a[i]+\\u0026#34; \\u0026#34;); System.out.println(); } } public class caishuzi { public static void main(String agrs[]) { int a[] = {0,0,0,0},b[] = {0,0,0,0}; System.out.println(\\u0026#34;* * * *\\\\n 请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。\\u0026#34;); Scanner sc=new Scanner(System.in); Num n=new Num(); n.setx(); a=n.getx(); /*for(int i=0;i\\u0026lt;4;i++) System.out.print(a[i]+\\u0026#34; \\u0026#34;); n.show();*/ for(int k=0;k\\u0026lt;10;k++) {//猜测次数 int A=0,B=0,C=0; for(int i=0;i\\u0026lt;4;i++) { b[i]=sc.nextInt(); } sc.close(); for(int i=0;i\\u0026lt;4;i++){ if (b[i]==a[i])A++; for(int j=0;j\\u0026lt;4;j++){ C=b[i]==a[j]?++C:C;//C 表示猜测数内和随机数中 A 类和 B 类数的数目 if (b[i]==a[j])break; } } B=C-A;// 关键算法（感叹数学魅力） if(A==4) { System.out.println(\\u0026#34;恭喜猜对啦！\\u0026#34;); }else { System.out.println(A+\\u0026#34;A\\u0026#34;+B+\\u0026#34;B\\u0026#34;); } } } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/mathclass/:0:1\",\"tags\":[\"Java\"],\"title\":\"java 猜数字小游戏（Math 类）\",\"uri\":\"/posts/mathclass/#小游戏\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"0.10 一次游戏过程 * * * * 请输入 4 个数字！A 表示位置数字都正确，B 表示数字正确位置错误。 0 1 2 3 0A1B 0 1 2 4 0A1B 0 1 2 5 1A1B 6 1 2 5 1A2B 1 6 2 5 3A0B 1 6 7 5 恭喜猜对啦！ \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/mathclass/:0:2\",\"tags\":[\"Java\"],\"title\":\"java 猜数字小游戏（Math 类）\",\"uri\":\"/posts/mathclass/#一次游戏过程\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"69 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点： A: 是一种更符合我们思考习惯的思想 B: 把复杂的问题简单化 C: 让我们从执行者变成了指挥者 举例： A: 洗衣服 B: 吃饭 C: 买电脑 举例并代码体现 把大象装进冰箱 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:1:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#面向对象思想理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"70 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征 行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。 所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例： 学生 类 张三 对象 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:2:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#类与对象掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"71 类的组成（掌握） 成员变量 其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法 其实就是方法，只不过不需要 static 了 案例： 学生类 class Student { String name; int age; public void study() {} } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:3:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#类的组成掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"72 类的使用（掌握） 创建对象 格式：类名 对象名 = new 类名 (); 使用成员 成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:4:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#类的使用掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"73 成员变量和局部变量的区别（理解） 在类中的位置不同 A: 成员变量 类中，方法外 B: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同 A: 成员变量 在堆中 B: 局部变量 在栈中 生命周期不同 A: 成员变量 随着对象的存在而存在，随着对象的消失而消失 B: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同 A: 成员变量 有默认初始化值 B: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:5:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#成员变量和局部变量的区别理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"74 形式参数问题（理解） 基本类型 基本类型作为形式参数，需要的是该基本类型的值。 引用类型 引用类型作为形式参数，需要的是该引用类型的地址值。（对象） \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:6:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#形式参数问题理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"75 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景 A: 调用方法，仅仅只调用一次 B: 作为实际参数传递 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:7:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#匿名对象理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"76 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处： A: 隐藏实现细节，提供公共的访问方式 B: 提高了代码的复用性 C: 提高了代码的安全性 使用原则 A: 把成员变量隐藏 B: 给出该成员变量对应的公共访问方式 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:8:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#封装掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"77 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:9:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#private-关键字掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"78 this 关键字（掌握） this：代表本类的对象 应用场景： 解决了局部变量隐藏成员变量的问题。 其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\u0026#34;姓名是：\\u0026#34;+name+\\u0026#34;, 年龄是：\\u0026#34;+age); } public void study() { System.out.println(\\u0026#34;学生爱学习\\u0026#34;); } public void eat() { System.out.println(\\u0026#34;学生要吃饭\\u0026#34;); } public void sleep() { System.out.println(\\u0026#34;学生想睡觉\\u0026#34;); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\u0026#34;林青霞\\u0026#34;); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\u0026#34;姓名是：\\u0026#34;+s.getName()); System.out.println(\\u0026#34;年龄是：\\u0026#34;+s.getAge()); } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:10:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#this-关键字掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"79 构造方法（掌握） 作用：对对象的数据进行初始化。 特点： A: 方法名和类名相同 B: 没有返回值类型 C: 没有返回值 注意事项 A: 如果我们没写构造方法，系统将默认给出无参构造方法 B: 如果我们写了构造方法，系统将不再给出默认无参构造方法 建议：我们自己手动给出无参构造方法 给成员变量赋值： A: 无参+setXxx() B: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\u0026#34;姓名是：\\u0026#34;+name+\\u0026#34;, 年龄是：\\u0026#34;+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\u0026#34;林青霞\\u0026#34;); s.setAge(28); s.show(); //带参 Student ss = new Student(\\u0026#34;张曼玉\\u0026#34;,20); ss.show(); } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:11:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#构造方法掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"80 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情 A: 加载 Student.class 文件进内存 B: 在栈中为 s 开辟空间 C: 在堆中为学生对象开辟空间 D: 为学生对象的成员变量赋默认值 E: 为学生对象的成员变量赋显示值 F: 通过构造方法给成员变量赋值 G: 对象构造完毕，把地址赋值给 s 变量 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:12:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#对象的初始化过程理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"81 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被所有对象共享 这也是判断我们是不是该使用静态的条件 举例：饮水机（可共享 static) 和水杯例子。 D: 可以通过类名调用 静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点 A: 普通成员方法 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 B: 静态成员方法 只能访问静态成员变量，静态成员方法 简记：静态只能访问静态 注意： 静态中是不能有 this 的。 先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\u0026#34;---\\u0026#34;+age+\\u0026#34;---\\u0026#34;+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\u0026#34;林青霞\\u0026#34;,28,\\u0026#34;20150306\\u0026#34;); s1.show(); /* Student s2 = new Student(\\u0026#34;马云\\u0026#34;,35,\\u0026#34;20150306\\u0026#34;); s2.show(); Student s3 = new Student(\\u0026#34;马化腾\\u0026#34;,33,\\u0026#34;20150306\\u0026#34;); s3.show(); */ Student s2 = new Student(\\u0026#34;马云\\u0026#34;,35); s2.show(); Student s3 = new Student(\\u0026#34;马化腾\\u0026#34;,33); s3.show(); } } /* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\u0026#34;show\\u0026#34;); } public static void show2() { System.out.println(\\u0026#34;show2\\u0026#34;); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026amp;ensp; } } /* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\u0026#34;林青霞\\u0026#34;); } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:13:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#static-关键字掌握\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"82 静态成员变量和普通成员变量的区别（理解） 所属不同 静态属于类的，称为类变量 非静态属于对象的，称为对象变量，实例变量 内存空间不同 静态在方法区的静态区 非静态在堆内存 生命周期不同 静态随着类的加载而加载，随着类的消失而消失 非静态随着对象的创建而存在，随着对象的消失而消失 调用不同 静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用 非静态只能通过对象名调用 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:14:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#静态成员变量和普通成员变量的区别理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"83 main 方法是静态的（理解） public static void main(String[] args) public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。 static: 被 jvm 调用，不用创建对象，直接类名访问 void: 被 jvm 调用，不需要给 jvm 返回值 main: 一个通用的名称，虽然不是关键字，但是被 jvm 识别 String[] args: 早期出现是为了接收键盘录入数据的。 \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:15:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#main-方法是静态的理解\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"84 实例 /*求和*/ class Demo { private int x; private int y; public Demo() {} public Demo(int x,int y) { this.x = x; this.y = y; } public void setX(int x) { this.x = x; } public int getX() { return x; } public void setY(int y) { this.y = y; } public int getY() { return y; } //成员变量已经有 x,y 了。这里就没有必要在定义了 /* public int sum(int x,int y) { return x + y; } */ public int sum() { return x + y; } } class Test { public static void main(String[] args) { Demo d = new Demo(); d.setX(10); d.setY(20); int result = d.sum(); System.out.println(result); } } /*求和*/ class Demo { public int sum(int x,int y) { return x + y; } } class Test2 { public static void main(String[] args) { Demo d = new Demo(); int result = d.sum(10,20); System.out.println(result); } } /* 定义一个员工类，自己分析出几个成员， 然后给出成员变量，构造方法，getXxx()/setXxx() 方法， 以及一个显示所有成员信息的方法。并测试。 Employee： 成员变量：员工编号，姓名，职位 构造方法：无参，带参 成员方法：getXxx()/setXxx() 方法，show() */ class Employee { private String eid; private String name; private String job; public Employee() {} public Employee(String eid,String name,String job) { this.eid = eid; this.name = name; this.job = job; } public void setEid(String eid) { this.eid = eid; } public String getEid() { return eid; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setJob(String job) { this.job = job; } public String getJob() { return job; } public void show() { System.out.println(\\u0026#34;员工编号是：\\u0026#34;+eid+\\u0026#34;, 姓名是：\\u0026#34;+name+\\u0026#34;, 职位是：\\u0026#34;+job); } } class EmployeeDemo { public static void main(String[] args) { //无参 Employee e = new Employee(); e.setEid(\\u0026#34;itcast007\\u0026#34;); e.setName(\\u0026#34;周星驰\\u0026#34;); e.setJob(\\u0026#34;高级工程师\\u0026#34;); e.show(); //带参 Employee e2 = new Employee(\\u0026#34;itcast003\\u0026#34;,\\u0026#34;刘德华\\u0026#34;,\\u0026#34;挖掘机工程师\\u0026#34;); e2.show(); } } \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:16:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#实例\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"85 java 类中的成员变量和方法访问权限 关键词 同一个类 同一个包 不同包中的子类 不同包中的非子类 private √ default √ √ protected √ √ √ public √ √ √ √ \",\"date\":\"2019-01-15\",\"objectID\":\"/posts/duixiang/:17:0\",\"tags\":[\"面向对象\",\"Java\"],\"title\":\"面向对象基础知识总结\",\"uri\":\"/posts/duixiang/#java-类中的成员变量和方法访问权限\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/java-range/:0:0\",\"tags\":[\"水仙花数\",\"Java\"],\"title\":\"java 水仙花数（循环）\",\"uri\":\"/posts/java-range/#\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"5 定义 水仙花数只是自幂数的一种，严格来说 3 位数的 3 次幂数才称为水仙花数。 附：其他位数的自幂数名字 一位自幂数：独身数 两位自幂数：没有 三位自幂数：水仙花数 四位自幂数：四叶玫瑰数 五位自幂数：五角星数 六位自幂数：六合数 七位自幂数：北斗七星数 八位自幂数：八仙数 九位自幂数：九九重阳数 十位自幂数：十全十美数 package xunhuan; import java.util.Scanner; public class shuixianhua { public static void main(String[] agrs) { System.out.print(\\u0026#34;指定最大位数 N:\\u0026#34;); Scanner input = new Scanner(System.in); int N = input.nextInt(); input.close(); for (int i = 3; i \\u0026lt;= N; i++) { int a[] = new int[i]; int num = (int) Math.pow(10, i - 1) + 1; System.out.print(i + \\u0026#34;位的水仙花数有：\\\\t\\u0026#34;); while (num \\u0026lt;= Math.pow(10, i)) { int sum = 0; for (int j = 0; j \\u0026lt; i; j++) a[j] = (int) (num / Math.pow(10, j) % 10);//取各个位的数 for (int j = 0; j \\u0026lt; i; j++) sum = sum + (int) Math.pow(a[j], i); if (num == sum) System.out.print(num + \\u0026#34;\\\\t\\u0026#34;); num++; } System.out.print(\\u0026#34;\\\\n\\u0026#34;); } } } 由于 int 精度限制，最多算到 9 位，而且使用常规算法，算到 8，9 位的时候就特别慢了。 指定最大位数 N:10 3 位的水仙花数有：153 370 371 407 4 位的水仙花数有：1634 8208 9474 5 位的水仙花数有：54748 92727 93084 6 位的水仙花数有：548834 7 位的水仙花数有：1741725 4210818 9800817 9926315 8 位的水仙花数有：24678050 24678051 88593477 9 位的水仙花数有：146511208 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/java-range/:1:0\",\"tags\":[\"水仙花数\",\"Java\"],\"title\":\"java 水仙花数（循环）\",\"uri\":\"/posts/java-range/#定义\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"9 记忆格式 (1) 导包： import java.util.Scanner; 注意：位置在 class 的上面。 (2) 创建键盘录入对象： Scanner sc = new Scanner(System.in); (3) 获取数据 int i = sc.nextInt(); (4) 练习： A: 求两个数据的和 B: 获取两个数据中较大的值 C: 获取三个数据中较大的值 D: 比较两个数是否相等 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/java-input/:1:0\",\"tags\":[\"Java\"],\"title\":\"java 录入数据\",\"uri\":\"/posts/java-input/#记忆格式\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"10 实例 package helloworld; import java.util.Scanner; public class helloworld { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i=sc.nextInt(),j=sc.nextInt(),k=sc.nextInt(); sc.close(); System.out.println(i+\\u0026#34;+\\u0026#34;+j+\\u0026#34;=\\u0026#34;+(i+j)); System.out.println(\\u0026#34;MAXij=\\u0026#34;+Max(i,j)); System.out.println(\\u0026#34;MAXijk=\\u0026#34;+Max(i,j,k)); } //Max() 方法重载 static int Max(int i,int j) { return i\\u0026gt;j?i:j; } static int Max(int i,int j,int k) { if(i==j) System.out.println(\\u0026#34;i 和 j 相等\\u0026#34;); else if(i==k) System.out.println(\\u0026#34;i 和 k 相等\\u0026#34;); else if(j==k) System.out.println(\\u0026#34;j 和 k 相等\\u0026#34;); return (i=i\\u0026gt;j?i:j)\\u0026gt;k?i:k; } } 结果 5 5 6 5+5=10 MAXij=5 i 和 j 相等 MAXijk=6 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/java-input/:2:0\",\"tags\":[\"Java\"],\"title\":\"java 录入数据\",\"uri\":\"/posts/java-input/#实例\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"1 标识符 给类，接口，方法或者变量起名字的符号 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/biaoshi/:1:0\",\"tags\":[\"Java\"],\"title\":\"java 标识符\",\"uri\":\"/posts/biaoshi/#标识符\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"2 组成规则 A: 英文字母大小写 B: 数字 C:_和$ \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/biaoshi/:2:0\",\"tags\":[\"Java\"],\"title\":\"java 标识符\",\"uri\":\"/posts/biaoshi/#组成规则\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"3 注意事项 A: 不能以数字开头 B: 不能是 Java 中的关键字 C: 区分大小写 Student,student 这是两个名称 \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/biaoshi/:3:0\",\"tags\":[\"Java\"],\"title\":\"java 标识符\",\"uri\":\"/posts/biaoshi/#注意事项\"},{\"categories\":[\"Java\"],\"collections\":null,\"content\":\"4 常见命名方式 A: 包 其实就是文件夹，用于解决相同类名问题 全部小写 单级：com 多级：cn.itcast B: 类或者接口 一个单词：首字母大写 Student,Person,Teacher 多个单词：每个单词的首字母大写 HelloWorld,MyName,NameDemo C: 方法或者变量 一个单词：全部小写 name,age,show() 多个单词：从第二个单词开始，每个单词首字母大写 myName,showAllStudentNames() D: 常量 一个单词：全部大写 AGE 多个单词：每个单词都大写，用_连接 STUDENT_MAX_AGE \",\"date\":\"2019-01-14\",\"objectID\":\"/posts/biaoshi/:4:0\",\"tags\":[\"Java\"],\"title\":\"java 标识符\",\"uri\":\"/posts/biaoshi/#常见命名方式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1 常见情况 \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:1:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#常见情况\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:1:1\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#由-and-或-both-and-连接的并列主语谓语动词一般用复数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:1:2\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#一但主语前被-noeveryeach-所修饰时谓语动词用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread The horse and cart has fallen down the cliff（悬崖）. Butter and bread is his favourate. The poet（诗人）and writer has been sentenced（判决）to death. The poet and the writer have been sentenced（判决）to death. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:1:3\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"1.4 两数相加或相乘，单复皆可，相减或相除，只能用单数，量词做主语，用单数 等于：be,equal,be equal to,make 相加：and,plus 相减：minus 相乘：multily,time 相除：divided by One and one make(makes) two. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:1:4\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#两数相加或相乘单复皆可相减或相除只能用单数量词做主语用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"2 就近原则 not only\\u0026hellip;but also there/here be or,nor,either\\u0026hellip;or,neither\\u0026hellip;nor,not\\u0026hellip;but There is a desk and two chairs in the room. Are you or your sister fond of classical music? An apple or two lies on the desk.（数量词后用单数） One or two apples lie on the desk. Not he but you have come. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:2:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#就近原则\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"3 就远原则 两单体两结构三 with 四除外 like,including rather than,as well as with,together with,along with except,besides,but,in addition to The couple in addition to their child are mean. Lauren,rather than anyone else was chose his partener. A library together with 3000 books was destroyed in the fire. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:3:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#就远原则\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"4 时间，金钱，距离，温度，天气，重量等不可数名词，to do,doing, 从句做主语时，谓 v 用单数 To go to bed early and rise early is a good habit. What he says and behaives doesn\\u0026rsquo;t concern me. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:4:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#时间金钱距离温度天气重量等不可数名词to-dodoing-从句做主语时谓-v-用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"5 分数，百分数，the rest(+of+n) 做主语，用单数 谓语动词由 of 后面的名词决定，一般用单数。 分数用法：通常分子读基数，分母读序数，分子超过 1 时，分母加 s。即 基 + 序 (s)+of+n+谓 Most students are in favaour of the contract（契约）but the rest disagree. be favaour of: be for,approve of,support,agree with About two thirds of the earth\\u0026rsquo;s surface is covered by water. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:5:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#分数百分数the-restofn-做主语用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"6 一些短语 one of+n 或 the only one of+n, 一般用单数（定从根据中心词在 of 前后） a number of+n（用复数） \\u0026amp; the number of+n（用单数） one in 或 one out of+n（用单数） a large quantity of \\u0026amp; large quantity of + 可、不可数 n a large amount of \\u0026amp; large amounts of + 不可数 n He is one of the students who were awarded the other day. He is the only one of the students who was awarded the other day. One of his family was a traitor（卖国贼，叛徒）during the world war two. A number of teenagers are addicted to the Internet. The number of students who are addicted to the Internet is up to（接近于）15. Large amounts of power are foused on him alone.==a large amount of power is foused on him alone. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:6:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#一些短语\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"7 不定代词做主语，谓语动词用单数 all 修饰人，谓语动词用复数，修饰物，谓语动词用单数 All are present besides the professor. All that glitters（发光体）is not gold. not 与 all/both 等连用表部分否定 \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:7:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#不定代词做主语谓语动词用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"8 the +adj 表一类人做主语时，谓语动词用复数 The injured are taken good care of in hospital. The agreeable is not always the useful.（不表人） \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:8:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#the-adj-表一类人做主语时谓语动词用复数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 成双成对的词做主语，用复数 trousers（裤子）,chopsticks,scissors（剪刀）,glasses Pants are what I want. The pair of glasses seems expensive.（谓语动词与表示计量单位的名词形式一致） Three set of fashionable socks are shown in today\\u0026rsquo;s evening proper（恰当地）. 一系列：a piece/pair/set/suit/series of \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:9:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#成双成对的词做主语用复数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 以 s 结尾特殊专用名词，用单数 表学科，疾病，山脉，河流，书名，歌名，格言等 maths,physicsa（物理）,politics（政治）,classics,economics,Aids,SARs,diabetes（糖尿病）,arthritis（关节炎）,bronchitis（支气管炎）,Himalayas,Arabian Night Arabian Night sounds beautiful. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:10:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#以-s-结尾特殊专用名词用单数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"11 many a +单 n+单谓： “许多”more than one +单 n+单谓： “不止一个” Many a man thinks life is meaningless without a purpose/an aim. More than one student has put forward the suggestion. More students than one are against the proposal. More than 20% students were absent at the meeting yesterday.（不止） \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:11:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#many-a-单-n单谓-许多more-than-one-单-n单谓-不止一个\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"12 police,people,cattle 做主语，用复数 It is reported that police are trying their best to capture the murder. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:12:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#policepeoplecattle-做主语用复数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 the Olympics \\u0026amp; the Olympic games The Olympices is hold every four years. == The Olympic games are hold every four year. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:13:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#the-olympics--the-olympic-games\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 集体名词做主语，表整体用单数，表成员用复数 family,class,group,team,army,public,crew,population The innovation experiment（革新实验）class consists of 24 students and enjoy chinese. Population in China is 1.4 billion or so(about) 20% (Population) have no access to clean water. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:14:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#集体名词做主语表整体用单数表成员用复数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 单复同形，sheep,deer,means,Chinese 等谓语动词依据情况而定 Many deer live on the African grassland. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:15:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#单复同形sheepdeermeanschinese-等谓语动词依据情况而定\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"16 地点状语位于句首 Among the crow stand his parents. On the wall hangs an alarm clock. \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:16:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#地点状语位于句首\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"17 \\u0026ldquo;of\\u0026rdquo;: of 表所属时，中心词在 of 之前，谓语动词由中心词决定，特例除外 \",\"date\":\"2019-01-12\",\"objectID\":\"/posts/subject-verb/:17:0\",\"tags\":[\"English\"],\"title\":\"英语语法--主谓一致\",\"uri\":\"/posts/subject-verb/#of-of-表所属时中心词在-of-之前谓语动词由中心词决定特例除外\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 形式倒装，句子本不是本来的语序。 \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-3/:0:0\",\"tags\":[\"English\"],\"title\":\"英语语法--形式倒装\",\"uri\":\"/posts/inversion-3/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.1 may 位于句首，标祝愿 例句 May you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-3/:0:1\",\"tags\":[\"English\"],\"title\":\"英语语法--形式倒装\",\"uri\":\"/posts/inversion-3/#may-位于句首标祝愿\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句 Whatever the weather is,he sticks out（坚持）walking outside. Go to stamp sales and buy whatever you can offord. Whatever reasons you have,you should carry out your promise. However many difficulties(n.) you meet with,you should try to overcome them. Whatever difficulties(n.) you meet with,you should try to overcome them. However difficult(adj.) the problem is,we must work it out today. \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-3/:0:2\",\"tags\":[\"English\"],\"title\":\"英语语法--形式倒装\",\"uri\":\"/posts/inversion-3/#whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.3 the + 比较级，the + 比较级 --\\u0026gt;“越 \\u0026hellip; 越 \\u0026hellip;” 例句 The hander you study,the greater progress you will make. The more you listen to English,the easier it becomes. The older you grow,the more challenges you will meet. \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-3/:0:3\",\"tags\":[\"English\"],\"title\":\"英语语法--形式倒装\",\"uri\":\"/posts/inversion-3/#the--比较级the--比较级---越--越-\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.4 感叹句 例句 What an interesting talk they had! How interesting the talk was! \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-3/:0:4\",\"tags\":[\"English\"],\"title\":\"英语语法--形式倒装\",\"uri\":\"/posts/inversion-3/#感叹句\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 完全倒装：把整个谓语动词放到主语前。 \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-2/:0:0\",\"tags\":[\"English\"],\"title\":\"英语语法--完全倒装\",\"uri\":\"/posts/inversion-2/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句 Here comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装 Here are you. Away it flew. \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-2/:0:1\",\"tags\":[\"English\"],\"title\":\"英语语法--完全倒装\",\"uri\":\"/posts/inversion-2/#表方位或时间的副词-adv表地点的介词短语位于句首时\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.2 表语（词/短语）位于句首时，adj/doing/done 例句 Written on the blackboard are the name of these who were late. Gone are the days when we worked together. Standing at the tree is a shy girl with two big eges. Present(adj) at the conference were all leaders of this city. Lying on the grassland is the boy who was injured in the fire. \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-2/:0:2\",\"tags\":[\"English\"],\"title\":\"英语语法--完全倒装\",\"uri\":\"/posts/inversion-2/#表语词短语位于句首时adjdoingdone\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.3 存在句 there be 中，其中 be -\\u0026gt;exist/arise/follow/enter/appear/live 等表状态 vi 例句 There come shows for help from the river. There seems something wrong with machine. There remains nothing to be done. There happened an event last week. \",\"date\":\"2018-12-10\",\"objectID\":\"/posts/inversion-2/:0:3\",\"tags\":[\"English\"],\"title\":\"英语语法--完全倒装\",\"uri\":\"/posts/inversion-2/#存在句-there-be-中其中-be--existarisefollowenterappearlive-等表状态-vi\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。 部分倒装：把谓语动词的一部分（助动词，be 动词，情态动词）提到主语前面。 \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:0\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.1 xx 也如此，xx 也一样 表示前面的内容也适用于后者，用\\u0026quot;so/nor/neither + 动词 + 主语\\u0026quot;句型。表“xx 也如此，xx 也一样”。可用,、;、and隔开（注意情形）。 例句 They love having lots of friends, so dothe disabled.（这里the + 形容词表一类人） I have had a new idea; so hasmy friends. Lily can\\u0026rsquo;t ride bicycle, nor/neither canlucy. The injured look disappointed（沮丧的）, so didsenior citizens.（老人） （否定前缀词 ≠ 否定） If you aren\\u0026rsquo;t for the plan; nor/neither willI. , 或 ; 前的句子若为从句，先将主句补充出，其后再根据主句改。 这里主句应为：I will not be for the plan.(be for 同意） It is burning（燃烧）hot today, so it is（那确实） and/; so was (it)yesterday.（这里只用用 and 或；) Everyone is here and looks upset, so it is with Mary = it is the same withMary. 这个句型同样适用于前面的六个例子，但是前面是并列句必须用这个句型。 The truth is that no one is perfect.When all potential（潜在的）for ugliness in removed, so is all of the potential for beauty. \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:1\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#xx-也如此xx-也一样\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.2 否定副词或含有否定的介词短位于句首 例句 Neither does Mr.Green know the matter（事件） nor does he care about it. neither……nor…… 既不也不 either……or……要么要么，不是就是 Not only did we lose our way but also (we) came close to losing our lives.(come close to 接近，差一点就） Not until I began to work hard did I realize how much time I had wasted. 从句不倒装，原句为： I didn\\u0026rsquo;t realize how much time I had wasted until I began to work hard. No sooner had they arrived at the tomb than they fell ill.（一……就……) In no case will we give up half-way. Hardly does Jim think it possible to finish the task before/when dark. hardly\\u0026hellip;before/when 一……就…… 这里取\\u0026quot;几乎不\\u0026quot;释义应该更合适。 Not a (single) mistake has Mary made so far.（玛丽到目前为止一个错误也没犯。) not a (single) + 单数名词 表示“一个也没有”%} In no time（立刻马上） Jone worked out the figure（体积）. （无否定不倒装） \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:2\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#否定副词或含有否定的介词短位于句首\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.3 only + 状语位于句首 例句 Only in this way are you able to do it well. 倒装前： You are able to do it well only in this way. Only when they returned home did they understand what had happened. Only on such a trip will you gain a better appreciation（理解）of Eurepean literature. Only the teacher got the news that our school could have a 4-day holiday.（同位语从句，only+主语所以不倒装） \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:3\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#only--状语位于句首\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.4 So/Such\\u0026hellip;that\\u0026hellip; 句型位于句首 So + adj + a/an + 单数名词 = Such + a/an + adj + 单数名词 如此 ... 以至于 ... so 侧重于 adj/adv such 侧重于 n. 比如，so many/much/few/little 例句 So crowded was the art gallery（展览会） that I couldn\\u0026rsquo;t move about (it). Such good weather was it that we all went out last week. Such a lovely girl is kate that everyone likes her. So loudly did he speak that even people next room could hear him. \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:4\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#sosuchthat-句型位于句首\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.5 as 引导让步狀语从句 as 引导让步状语从句（虽然，即使，尽管，无论），把从句中的表语，动词，副词提至句首 (as 后不用再倒装了），当表语是名词时，提至句首时一律用零冠词（其中 as 可用 though 替代，倒装后省略 but,though,however,even,though,although 等） 例句 Child as he is,he knows a lot. Poor as King was,he tried his best to help others. Try as he may,he has never made his boss satisfied. Search as you would,you could find no body in the room. Much as I want to buy the car,I can\\u0026rsquo;t afford（支付）it. \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:5\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#as-引导让步狀语从句\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.6 把虚拟语气从句中的 were,had,should 提至句首，并省略 if 例句 Had you followwed my advice,you couldn\\u0026rsquo;t have made such a silly mistake. Were you not a boy,you could wear a dress. Should he invite me,I might take part in this party. \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:6\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#把虚拟语气从句中的-werehadshould-提至句首并省略-if\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.7 表肯定含义的时间频率词位于句首 always,often,many a time(many times 多次）,every + 时间，now and then（时不时的） 例句 Many a time has he offered me some good suggestions. Now and then does my class teacher warn us not yo use cellphones in the classroom. \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:7\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#表肯定含义的时间频率词位于句首\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"0.8 疑问句用部分倒装 普通的疑问句： How do you do that? 除了： What is wrong? = What is the matter? \\u0026hellip; \",\"date\":\"2018-12-08\",\"objectID\":\"/posts/inversion-1/:0:8\",\"tags\":[\"English\"],\"title\":\"英语语法--部分倒装\",\"uri\":\"/posts/inversion-1/#疑问句用部分倒装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 2021/10/2 更新 博客已迁移至 Hugo, 插件演示不适用，已删除。 让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:0:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61 hexo 插件 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-插件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.1 hexo-lazyload-image npm install hexo-lazyload-image --save First add configuration in _config.yml from your hexo project. lazyload: enable: true onlypost: false loadingImg: # eg ./images/loading.gif \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-lazyload-image\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.2 hexo-ruby-marks 不支持ruby新标签的浏览器将显示rp中的内容。 \\u0026lt;ruby\\u0026gt;博採眾長\\u0026lt;rp\\u0026gt;（\\u0026lt;/rp\\u0026gt; \\u0026lt;rt\\u0026gt;lruihao.cn\\u0026lt;/rt\\u0026gt;\\u0026lt;rp\\u0026gt;）\\u0026lt;/rp\\u0026gt;\\u0026lt;/ruby\\u0026gt; 博採眾長（ lruihao.cn） 插件使用 npm i hexo-ruby-marks {% ruby _**base**_|_**top text**_ %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-ruby-marks\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.3 hexo-pwa npm install --save hexo-pwa You can configure this plugin in _config.yml.（配置完即可使用不许单独设置manifest.json文件及配置，插件生成） pwa: manifest: path: /manifest.json body: name: hexo short_name: hexo icons: - src: /images/android-chrome-192x192.png sizes: 192x192 type: image/png - src: /images/android-chrome-512x512.png sizes: 512x512 type: image/png start_url: /index.html theme_color: \\u0026#39;#ffffff\\u0026#39; background_color: \\u0026#39;#ffffff\\u0026#39; display: standalone serviceWorker: path: /sw.js preload: urls: - / posts: 5 opts: networkTimeoutSeconds: 5 routes: - pattern: !!js/regexp /hm.baidu.com/ strategy: networkOnly - pattern: !!js/regexp /.*\\\\.(js|css|jpg|jpeg|png|gif)$/ strategy: cacheFirst - pattern: !!js/regexp /\\\\// strategy: networkFirst priority: 5 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:3\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-pwa\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.4 hexo-tag-dplayer hexo-tag-dplayer npm install hexo-tag-dplayer --save {% dplayer key=value ... %} key can be dplayer options: \\u0026#39;autoplay\\u0026#39;, \\u0026#39;loop\\u0026#39;, \\u0026#39;screenshot\\u0026#39;, \\u0026#39;hotkey\\u0026#39;, \\u0026#39;mutex\\u0026#39;, \\u0026#39;dmunlimited\\u0026#39; : bool options, use \\u0026#34;yes\\u0026#34; \\u0026#34;y\\u0026#34; \\u0026#34;true\\u0026#34; \\u0026#34;1\\u0026#34; \\u0026#34;on\\u0026#34; or just without value to enable \\u0026#39;preload\\u0026#39;, \\u0026#39;theme\\u0026#39;, \\u0026#39;lang\\u0026#39;, \\u0026#39;logo\\u0026#39;, \\u0026#39;url\\u0026#39;, \\u0026#39;pic\\u0026#39;, \\u0026#39;thumbnails\\u0026#39;, \\u0026#39;vidtype\\u0026#39;, \\u0026#39;suburl\\u0026#39;, \\u0026#39;subtype\\u0026#39;, \\u0026#39;subbottom\\u0026#39;, \\u0026#39;subcolor\\u0026#39;, \\u0026#39;subcolor\\u0026#39;, \\u0026#39;id\\u0026#39;, \\u0026#39;api\\u0026#39;, \\u0026#39;token\\u0026#39;, \\u0026#39;addition\\u0026#39;, \\u0026#39;dmuser\\u0026#39; : string arguments \\u0026#39;volume\\u0026#39;, \\u0026#39;maximum\\u0026#39; : number arguments container options: \\u0026#39;width\\u0026#39;, \\u0026#39;height\\u0026#39; : string, used in container element style other: \\u0026#39;code\\u0026#39; : value of this key will be append to script tag {% dplayer \\u0026#34;url=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4\\u0026#34; \\u0026#34;addition=https://dplayer.daoapp.io/bilibili?aid=4157142\\u0026#34; \\u0026#34;api=https://api.prprpr.me/dplayer/\\u0026#34; \\u0026#34;pic=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.jpg\\u0026#34; \\u0026#34;id=9E2E3368B56CDBB4\\u0026#34; \\u0026#34;loop=yes\\u0026#34; \\u0026#34;theme=#FADFA3\\u0026#34; \\u0026#34;autoplay=false\\u0026#34; \\u0026#34;token=tokendemo\\u0026#34; %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:4\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-tag-dplayer\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.5 hexo-tag-aplayer more npm install --save hexo-tag-aplayer {% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %} 标签参数 title : 曲目标题 author: 曲目作者 url: 音乐文件 URL 地址 picture_url: （可选）音乐对应的图片地址 narrow: （可选）播放器袖珍风格 autoplay: （可选）自动播放，移动端浏览器暂时不支持此功能 width:xxx: （可选）播放器宽度（默认：100%) lrc:xxx: （可选）歌词文件 URL 地址 当开启 Hexo 的 文章资源文件夹 功能时，可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中，然后直接引用： {% aplayer \\u0026#34;Caffeine\\u0026#34; \\u0026#34;Jeff Williams\\u0026#34; \\u0026#34;caffeine.mp3\\u0026#34; \\u0026#34;picture.jpg\\u0026#34; \\u0026#34;lrc:caffeine.txt\\u0026#34; %} {% aplayer \\u0026#34;你离开了南京，从此没人和我说话\\u0026#34; \\u0026#34;李志\\u0026#34; \\u0026#34;https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3\\u0026#34; \\u0026#34;https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300\\u0026#34; %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:5\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-tag-aplayer\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.6 hexo-pdf pdf 传送门 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:6\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-pdf\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.7 hexo-filter-flowchart（流程图） 语法 npm install --save hexo-filter-flowchart ```%flow #去掉%号 st=\\u0026gt;start: Start|past:\\u0026gt;https://lruihao.cn[blank] e=\\u0026gt;end: End:\\u0026gt;https://www.lruihao.cn[blank] op1=\\u0026gt;operation: My Operation|past op2=\\u0026gt;operation: Stuff|current sub1=\\u0026gt;subroutine: My Subroutine|invalid cond=\\u0026gt;condition: Yes or No?|approved:\\u0026gt;/hexo/nextplugin.html c2=\\u0026gt;condition: Good idea|rejected io=\\u0026gt;inputoutput: catch something...|request st-\\u0026gt;op1(right)-\\u0026gt;cond cond(yes, right)-\\u0026gt;c2 cond(no)-\\u0026gt;sub1(left)-\\u0026gt;op1 c2(yes)-\\u0026gt;io-\\u0026gt;e c2(no)-\\u0026gt;op2-\\u0026gt;e ``` \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:7\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-filter-flowchart流程图\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61.8 hexo-spoiler npm install hexo-spoiler --save If hexo can\\u0026rsquo;t detect this plugin automatically, you need to modify the plugins section of [path_to_your_site]/_config.yml manually, like: plugins: - hexo-spoiler {% spoiler [text] %} It will pixelate your text, and click to reveal. Click again to hide your text again. But you need to add \\u0026lt;br\\u0026gt; manually if you want line breaks after/before it. When you writes: {% spoiler text %} {% spoiler ~~text~~ %} {% spoiler *text* %} {% spoiler **text** %}\\u0026lt;br\\u0026gt; {% spoiler **hello welcome to 博採眾長！** %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:1:8\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#hexo-spoiler\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"62 宅音乐侧栏播放器插件 体验 源码 目前在 next 中可能引起部分 css 冲突，建议在 next 中使用在单个页面中。 依赖于 jQuery，一行 js 可以引入播放器插件。 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:2:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#宅音乐侧栏播放器插件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"63 caniuse \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:3:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#caniuse\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"63.1 使用 {% caniuse feature @ periods %} \\u0026lt;!-- Tag Alias --\\u0026gt; {% can feature @ periods %} feature : Search for the feature you want on https://caniuse.com, then click on the hash sign to the left of the search result heading and you will get the unique name of this feature. periods : Select the browser versions to display. Supported values: past_1, past_2, past_3, past_4, past_5, current, future_3, future_2, future_1. If this value is empty, the default value \\u0026#39;current\\u0026#39; will be used. \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:3:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#使用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"63.2 栗子 Caniuse without periods {% caniuse fetch %} Caniuse with current period {% can sharedarraybuffer @ current %} Caniuse with future periods {% caniuse loading-lazy-attr @ future_3,future_2,future_1 %} Caniuse with past periods {% caniuse link-rel-modulepreload @ past_1,past_2,past_3,past_4,past_5 %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:3:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#栗子\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"64 Include Raw This tag include any raw content into your posts. Path is relative to your site source directory. {% include_raw \\u0026#39;_data/path/to/file.html\\u0026#39; %} Let\\u0026rsquo;s create include-raw.html file in _data directory under site root directory with following content: Any \\u0026lt;strong\\u0026gt;raw content\\u0026lt;/strong\\u0026gt; may be included with this tag. Then in any post we can use this content with include_raw tag: {% include_raw \\u0026#39;_data/path/to/include-raw.html\\u0026#39; %} Any raw content may be included with this tag. \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:4:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#include-raw\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"65 button more info {% button url, text, icon [class], [title] %} \\u0026lt;!-- Tag Alias --\\u0026gt; {% btn url, text, icon [class], [title] %} url : Absolute or relative path to URL. text : Button text. Required if no icon specified. icon : FontAwesome icon name (without \\u0026#39;fa-\\u0026#39; at the begining). Required if no text specified. [class] : FontAwesome class(es): fa-fw | fa-lg | fa-2x | fa-3x | fa-4x | fa-5x Optional parameter. [title] : Tooltip at mouseover. Optional parameter. {% btn #, Text \\u0026amp; Large Icon \\u0026amp; Title, home fa-fw fa-lg, Title %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:5:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#button\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"66 Mermaid more info example {% mermaid gitGraph: %} options { \\u0026#34;nodeSpacing\\u0026#34;: 150, \\u0026#34;nodeRadius\\u0026#34;: 10 } end commit branch newbranch checkout newbranch commit checkout master commit merge newbranch {% endmermaid %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:6:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#mermaid\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"67 video \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:7:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#video\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"67.1 Usage {% video url %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:7:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#usage\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"67.2 Examples {% video https://example.com/sample.mp4 %} {% video /path/to/your/video.mp4 %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:7:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#examples\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"68 tab 选项卡 \\u0026ldquo;tab\\u0026quot;为选项卡的名称，可以自定义，数字是几表示从第几个选项卡开始。非必须，若数值为 -1 则隐藏选项卡内容。 查看更多 {% tabs Unique name, [index] %} \\u0026lt;!-- tab [Tab caption] [@icon] --\\u0026gt; Any content (support inline tags too). \\u0026lt;!-- endtab --\\u0026gt; {% endtabs %} Unique name : Unique name of tabs block tag without comma. Will be used in #id\\u0026#39;s as prefix for each tab with their index numbers. If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes. Only for current url of post/page must be unique! [index] : Index number of active tab. If not specified, first tab (1) will be selected. If index is -1, no tab will be selected. It\\u0026#39;s will be something like spoiler. Optional parameter. [Tab caption] : Caption of current tab. If not caption specified, unique name with tab index suffix will be used as caption of tab. If not caption specified, but specified icon, caption will empty. Optional parameter. [@icon] : FontAwesome icon name (without \\u0026#39;fa-\\u0026#39; at the begining). Can be specified with or without space; e.g. \\u0026#39;Tab caption @icon\\u0026#39; similar to \\u0026#39;Tab caption@icon\\u0026#39;. Optional parameter. {% tabs tab,2 %} \\u0026lt;!-- tab --\\u0026gt; this is tab1 \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab --\\u0026gt; this is tab2 \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab --\\u0026gt; this is tab3 \\u0026lt;!-- endtab --\\u0026gt; {% endtabs %} 数值为 -1 {% tabs 选项，-1 %} \\u0026lt;!-- tab --\\u0026gt; **选项 1** \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab --\\u0026gt; **选项 2** \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab --\\u0026gt; **选项 3** \\u0026lt;!-- endtab --\\u0026gt; {% endtabs %} 名字写在选项里面 {% tabs Fourth unique name %} \\u0026lt;!-- tab Solution 1 --\\u0026gt; **This is Tab 1.** \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab Solution 2 --\\u0026gt; **This is Tab 2.** \\u0026lt;!-- endtab --\\u0026gt; \\u0026lt;!-- tab Solution 3 --\\u0026gt; **This is Tab 3.** \\u0026lt;!-- endtab --\\u0026gt; {% endtabs %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:8:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#tab-选项卡\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69 note 便签 主题配置文件搜索 note, 可设置风格和图标是否显示。 # Note tag (bs-callout). note: # Note tag style values: # - simple bs-callout old alert style. Default. # - modern bs-callout new (v2-v3) alert style. # - flat flat callout style with background, like on Mozilla or StackOverflow. # - disabled disable all CSS styles import of note tag. style: flat icons: true border_radius: 15 # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6). # Offset also applied to label tag variables. This option can work with disabled note tag. light_bg_offset: 0 写法 {% note default %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#note-便签\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.1 default 类型还有以下几种 {% endnote %} {% note primary %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#default\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.2 primary 内容 {% endnote %} {% note success %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#primary\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.3 success 内容 {% endnote %} {% note info %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:3\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#success\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.4 info 内容 {% endnote %} {% note warning %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:4\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#info\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.5 warning 内容 {% endnote %} {% note danger %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:5\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#warning\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.6 danger 内容 {% endnote %} {% note %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:6\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#danger\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.7 不填 内容 {% endnote %} {% note danger no-icon %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:7\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#不填\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69.8 danger no-icon 内容 {% endnote %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:9:8\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#danger-no-icon\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"70 引用（文本居中） {% cq %} **there are test words** {% endcq %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:10:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#引用文本居中\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"71 Font Awesome 图标 Font Awesome 是一套绝佳的图标字体库和 CSS 框架。 Font Awesome 字体为你提供可缩放矢量图标，它可以被定制大小、颜色、阴影以及任何可以用 CSS 的样式。 要使用 Font Awesome 图标，请在 HTML 页面的 部分中添加以下行： \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:11:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#font-awesome-图标\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"71.1 1、国内推荐 CDN \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css\\u0026#34;\\u0026gt; \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:11:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#1国内推荐-cdn\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"71.2 2、海外推荐 CDN \\u0026lt;link rel=\\u0026#34;stylesheet\\u0026#34; href=\\u0026#34;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\\u0026#34;\\u0026gt; next 已经引用了，可以直接用，比如： \\u0026lt;i class=\\u0026#34;fa fa-car\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car\\u0026#34; style=\\u0026#34;font-size:48px;\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car\\u0026#34; style=\\u0026#34;font-size:60px;color:red;\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car fa-lg\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car fa-2x\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car fa-3x\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car fa-4x\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-car fa-5x\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; 动态图标 \\u0026lt;i class=\\u0026#34;fa fa-spinner fa-spin\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-circle-o-notch fa-spin\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-refresh fa-spin\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-cog fa-spin\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-spinner fa-pulse\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:11:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#2海外推荐-cdn\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"72 代码块等 [language] [title] [url] [link text] code snippet - printf(\\u0026#34;Hello World!\\u0026#34;); + printf(\\u0026#34;Hello_World!\\u0026#34;); iframe 在文章中插入 iframe。 {% iframe url [width] [height] %} \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:12:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#代码块等\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"73 Todo list 已完成 未完成 \\u0026lt;ul\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;i class=\\u0026#34;fa fa-check-square\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; 已完成\\u0026lt;/li\\u0026gt; \\u0026lt;li\\u0026gt;\\u0026lt;i class=\\u0026#34;fa fa-square\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; 未完成\\u0026lt;/li\\u0026gt; \\u0026lt;/ul\\u0026gt; \\u0026lt;!--或者--\\u0026gt; - \\u0026lt;i class=\\u0026#34;fa fa-check-square\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; 已完成 - \\u0026lt;i class=\\u0026#34;fa fa-square\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; 未完成 \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:13:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#todo-list\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"74 Label 主题配置文件中打开 # Label tag. label: true @前面的是 label 的名字，后面的是要显示的文字 {% label default@default %} primary success info warning danger \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:14:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#label\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"75 其他 包括小色块、左侧色条、右侧色条、上方色条、数字色块（需要自定义样式） \",\"date\":\"2018-11-24\",\"objectID\":\"/posts/nextplugin/:15:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 插件及 next 内置样式集\",\"uri\":\"/posts/nextplugin/#其他\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤 git add * （添加需要提交的文件，这里全选） git commit -m \\u0026ldquo;提交信息\\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！ \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:0:0\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"17 新建文本文档 @echo off title Commit git add . set /p m=Message: git commit -m \\u0026#34;%m%\\u0026#34; git push 然后另存为commit.bat文件，只要后缀是bat就行了。 \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:1:0\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#新建文本文档\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"18 使用 把文件放到你原本需要提交代码的本地文件夹。双击运行，输入提交信息回车即可。 \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:2:0\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#使用\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"19 hexo 博客新姿势 hexo 提交也很麻烦，当然也要批处理一下呀 hexo clean\\u0026amp;\\u0026amp;hexo g -d \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:3:0\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#hexo-博客新姿势\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"20 其他 \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:4:0\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#其他\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"20.1 死机脚本 (友情提醒千万不要在真机实验，请在虚拟机运行) start cmd ifconfig 另外也说一下 linux 死机命令。fork 炸弹。 死机无非是耗尽系统资源 _(){ _ | _ \\u0026amp; }; _ 这个\\u0026amp;指后台运行的意思。 \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:4:1\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#死机脚本\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"20.2 统计文件名 dir \\\\\\\\?\\\\%1 /a:-d /b /o /p /w \\u0026gt;Filelist.txt 将需要统计的文件夹拖到 bat 文件上。 \",\"date\":\"2018-11-17\",\"objectID\":\"/posts/commit-bat/:4:2\",\"tags\":[\"bat\"],\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"uri\":\"/posts/commit-bat/#统计文件名\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.13 介绍 使用 fusion app 对网页进行的封装。 功能： 浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:1\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#介绍\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.14 下载 app 内也可以更新，不过就我自己用，懒得更新。 百度云，密码：479l github 下载 PWA 应用 地址栏输入：Chrome://flags 搜索并启用以下项目：Desktop PWAs（桌面 PWAs)、App Banners（应用横幅）、Experimental App Banners（实验性应用横幅） 重启浏览器使修改的设置生效 点击地址栏最右边按钮 安装“博採眾長” \",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:2\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#下载\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.15 部分源码 看到这些中文的函数总觉得怪怪的哈哈哈 😂 语言：lua 0.15.1 检测更新 --检查测当前是否最新版本 local dl=ProgressDialog.show(activity,nil,\\u0026#39;更新检测中…\\u0026#39;) dl.show() local tt=Ticker() tt.start() packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9) version=tostring(packinfo.versionName) versioncode=tostring(packinfo.versionCode) url=\\u0026#34;https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2\\u0026#34;; function 过滤 (content) 版本名=content:match(\\u0026#34;【版本名】(.-)【版本名】\\u0026#34;) 版本=content:match(\\u0026#34;【版本】(.-)【版本】\\u0026#34;) 内容=content:match(\\u0026#34;【内容】(.-)【内容】\\u0026#34;) 链接=content:match(\\u0026#34;【链接】(.-)【链接】\\u0026#34;) if（版本名==nil) then 版本名=\\u0026#34;获取失败\\u0026#34; end if（版本==nil) then 版本=\\u0026#34;0\\u0026#34; end if（内容==nil) then 内容=\\u0026#34;获取失败\\u0026#34; end if（链接==nil) then 弹出消息 (\\u0026#34;服务器参数配置错误，请过段时间再次尝试\\u0026#34;) end if（版本 \\u0026gt; versioncode) then dl.dismiss() tt.stop() 对话框 () . 设置标题 (\\u0026#34;检测到更新\\u0026#34;) . 设置消息 (\\u0026#34;版本：\\u0026#34;..version..\\u0026#34;→\\u0026#34;.. 版本名。.\\u0026#34;\\\\n 更新内容：\\u0026#34;.. 内容） . 设置积极按钮 (\\u0026#34;下载更新\\u0026#34;,function() 下载文件（链接） 弹出消息 (\\u0026#34;下载更新中…\\u0026#34;) end) . 设置消极按钮 (\\u0026#34;取消更新\\u0026#34;) . 显示 () else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;当前已是最新版本！\\u0026#34;) end Http.get(url,nil,\\u0026#34;UTF-8\\u0026#34;,nil,function(code,content,cookie,header) if(code==200 and content)then content=content:match(\\u0026#34;\\\\\\u0026#34;html_content\\\\\\u0026#34;:(.-),\\u0026#34;):gsub(\\u0026#34;\\\\\\\\u003C/?.-%\\u0026gt;\\u0026#34;,\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\\\\\\\\\\\u0026#34;,\\u0026#34;\\u0026amp;revs;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\n\\u0026#34;,\\u0026#34;\\\\n\\u0026#34;):gsub(\\u0026#34;\\u0026amp;nbsp;\\u0026#34;,\\u0026#34; \\u0026#34;):gsub(\\u0026#34;\\u0026amp;lt;\\u0026#34;,\\u0026#34;\\u0026lt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;gt;\\u0026#34;,\\u0026#34;\\u0026gt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;quot;\\u0026#34;,\\u0026#34;\\\\\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;apos;\\u0026#34;,\\u0026#34;\\u0026#39;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;revs;\\u0026#34;,\\u0026#34;\\\\\\\\\\u0026#34;):gsub(\\u0026#34;\\u0026amp;amp;\\u0026#34;,\\u0026#34;\\u0026amp;\\u0026#34;); 过滤 (content) else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;本地网络或服务器异常 \\u0026#34;..code) end end) 0.15.2 方向锁定 --flag 在程序启动事件声明的全局变量 if flag==1 then activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); SetHSP=\\u0026#34;H\\u0026#34; else SetHSP=nil end if SetHSP==nil then --竖屏锁定 activity.setRequestedOrientation(1); flag=1 else flag=0 end 0.15.3 程序启动事件 弹出消息 (\\u0026#34;©2018 李瑞豪\\u0026#34;) --自动，由物理感应器决定 import \\u0026#34;android.content.pm.ActivityInfo\\u0026#34; flag=1 --程序退出时执行对话框 function onKeyDown(key,event) if(key==4)then if(webView.canGoBack())then webView.goBack() else appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0) applabel=this.getPackageManager().getApplicationLabel(appinfo) 退出确认=对话框 () . 设置消息 (\\u0026#34;您确定要退出 \\u0026#34;..applabel..\\u0026#34; 吗？\\u0026#34;) 退出按钮={ [1]=function() 退出确认 . 设置积极按钮 (\\u0026#34;确认\\u0026#34;,function() 退出程序 () end ) . 设置中立按钮 (\\u0026#34;清除缓存\\u0026#34;,function() 对话框 () . 设置消息 (\\u0026#34;清除缓存后再次运行程序将变得缓慢、n 您确定要清除 \\u0026#34;..applabel..\\u0026#34; 的缓存吗？\\u0026#34;) . 设置积极按钮 (\\u0026#34;确定\\u0026#34;,function() os.execute(\\u0026#34;pm clear \\u0026#34;..this.packageName) 退出程序 () end) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;,function() end) . 显示 () end ) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;) end } math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 6))) 退出按钮 [math.random(1,1)]() 退出确认。show() end return true end end --历史记录 lstads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lst.lua\\u0026#34; lstwebads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lstweb.lua\\u0026#34; --2. 序列化 function slz(obj) local lua = \\u0026#34;\\u0026#34; local t = type(obj) if t == \\u0026#34;number\\u0026#34; then lua = lua .. obj elseif t == \\u0026#34;boolean\\u0026#34; then lua = lua .. tostring(obj) elseif t == \\u0026#34;string\\u0026#34; then lua = lua .. string.format(\\u0026#34;%q\\u0026#34;, obj) elseif t == \\u0026#34;table\\u0026#34; then lua = lua .. \\u0026#34;{\\\\n\\u0026#34; for k, v in pairs(obj) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end local metatable = getmetatable(obj) if metatable ~= nil and type(metatable.__index) == \\u0026#34;table\\u0026#34; then for k, v in pairs(metatable.__index) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end end lua = lua .. \\u0026#34;}\\u0026#34; elseif t == \\u0026#34;nil\\u0026#34; then return nil else error(\\u0026#34;can not serialize a \\u0026#34; .. t .. \\u0026#34; type.\\u0026#34;) end return lua end function rslz(lua) local t = type(lua) if t == \\u0026#34;nil\\u0026#34; or lua =\",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:3\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#部分源码\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.15 部分源码 看到这些中文的函数总觉得怪怪的哈哈哈 😂 语言：lua 0.15.1 检测更新 --检查测当前是否最新版本 local dl=ProgressDialog.show(activity,nil,\\u0026#39;更新检测中…\\u0026#39;) dl.show() local tt=Ticker() tt.start() packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9) version=tostring(packinfo.versionName) versioncode=tostring(packinfo.versionCode) url=\\u0026#34;https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2\\u0026#34;; function 过滤 (content) 版本名=content:match(\\u0026#34;【版本名】(.-)【版本名】\\u0026#34;) 版本=content:match(\\u0026#34;【版本】(.-)【版本】\\u0026#34;) 内容=content:match(\\u0026#34;【内容】(.-)【内容】\\u0026#34;) 链接=content:match(\\u0026#34;【链接】(.-)【链接】\\u0026#34;) if（版本名==nil) then 版本名=\\u0026#34;获取失败\\u0026#34; end if（版本==nil) then 版本=\\u0026#34;0\\u0026#34; end if（内容==nil) then 内容=\\u0026#34;获取失败\\u0026#34; end if（链接==nil) then 弹出消息 (\\u0026#34;服务器参数配置错误，请过段时间再次尝试\\u0026#34;) end if（版本 \\u0026gt; versioncode) then dl.dismiss() tt.stop() 对话框 () . 设置标题 (\\u0026#34;检测到更新\\u0026#34;) . 设置消息 (\\u0026#34;版本：\\u0026#34;..version..\\u0026#34;→\\u0026#34;.. 版本名。.\\u0026#34;\\\\n 更新内容：\\u0026#34;.. 内容） . 设置积极按钮 (\\u0026#34;下载更新\\u0026#34;,function() 下载文件（链接） 弹出消息 (\\u0026#34;下载更新中…\\u0026#34;) end) . 设置消极按钮 (\\u0026#34;取消更新\\u0026#34;) . 显示 () else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;当前已是最新版本！\\u0026#34;) end Http.get(url,nil,\\u0026#34;UTF-8\\u0026#34;,nil,function(code,content,cookie,header) if(code==200 and content)then content=content:match(\\u0026#34;\\\\\\u0026#34;html_content\\\\\\u0026#34;:(.-),\\u0026#34;):gsub(\\u0026#34;\\\\\\\\u003C/?.-%\\u0026gt;\\u0026#34;,\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\\\\\\\\\\\u0026#34;,\\u0026#34;\\u0026amp;revs;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\n\\u0026#34;,\\u0026#34;\\\\n\\u0026#34;):gsub(\\u0026#34;\\u0026amp;nbsp;\\u0026#34;,\\u0026#34; \\u0026#34;):gsub(\\u0026#34;\\u0026amp;lt;\\u0026#34;,\\u0026#34;\\u0026lt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;gt;\\u0026#34;,\\u0026#34;\\u0026gt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;quot;\\u0026#34;,\\u0026#34;\\\\\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;apos;\\u0026#34;,\\u0026#34;\\u0026#39;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;revs;\\u0026#34;,\\u0026#34;\\\\\\\\\\u0026#34;):gsub(\\u0026#34;\\u0026amp;amp;\\u0026#34;,\\u0026#34;\\u0026amp;\\u0026#34;); 过滤 (content) else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;本地网络或服务器异常 \\u0026#34;..code) end end) 0.15.2 方向锁定 --flag 在程序启动事件声明的全局变量 if flag==1 then activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); SetHSP=\\u0026#34;H\\u0026#34; else SetHSP=nil end if SetHSP==nil then --竖屏锁定 activity.setRequestedOrientation(1); flag=1 else flag=0 end 0.15.3 程序启动事件 弹出消息 (\\u0026#34;©2018 李瑞豪\\u0026#34;) --自动，由物理感应器决定 import \\u0026#34;android.content.pm.ActivityInfo\\u0026#34; flag=1 --程序退出时执行对话框 function onKeyDown(key,event) if(key==4)then if(webView.canGoBack())then webView.goBack() else appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0) applabel=this.getPackageManager().getApplicationLabel(appinfo) 退出确认=对话框 () . 设置消息 (\\u0026#34;您确定要退出 \\u0026#34;..applabel..\\u0026#34; 吗？\\u0026#34;) 退出按钮={ [1]=function() 退出确认 . 设置积极按钮 (\\u0026#34;确认\\u0026#34;,function() 退出程序 () end ) . 设置中立按钮 (\\u0026#34;清除缓存\\u0026#34;,function() 对话框 () . 设置消息 (\\u0026#34;清除缓存后再次运行程序将变得缓慢、n 您确定要清除 \\u0026#34;..applabel..\\u0026#34; 的缓存吗？\\u0026#34;) . 设置积极按钮 (\\u0026#34;确定\\u0026#34;,function() os.execute(\\u0026#34;pm clear \\u0026#34;..this.packageName) 退出程序 () end) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;,function() end) . 显示 () end ) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;) end } math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 6))) 退出按钮 [math.random(1,1)]() 退出确认。show() end return true end end --历史记录 lstads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lst.lua\\u0026#34; lstwebads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lstweb.lua\\u0026#34; --2. 序列化 function slz(obj) local lua = \\u0026#34;\\u0026#34; local t = type(obj) if t == \\u0026#34;number\\u0026#34; then lua = lua .. obj elseif t == \\u0026#34;boolean\\u0026#34; then lua = lua .. tostring(obj) elseif t == \\u0026#34;string\\u0026#34; then lua = lua .. string.format(\\u0026#34;%q\\u0026#34;, obj) elseif t == \\u0026#34;table\\u0026#34; then lua = lua .. \\u0026#34;{\\\\n\\u0026#34; for k, v in pairs(obj) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end local metatable = getmetatable(obj) if metatable ~= nil and type(metatable.__index) == \\u0026#34;table\\u0026#34; then for k, v in pairs(metatable.__index) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end end lua = lua .. \\u0026#34;}\\u0026#34; elseif t == \\u0026#34;nil\\u0026#34; then return nil else error(\\u0026#34;can not serialize a \\u0026#34; .. t .. \\u0026#34; type.\\u0026#34;) end return lua end function rslz(lua) local t = type(lua) if t == \\u0026#34;nil\\u0026#34; or lua =\",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:3\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#检测更新\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.15 部分源码 看到这些中文的函数总觉得怪怪的哈哈哈 😂 语言：lua 0.15.1 检测更新 --检查测当前是否最新版本 local dl=ProgressDialog.show(activity,nil,\\u0026#39;更新检测中…\\u0026#39;) dl.show() local tt=Ticker() tt.start() packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9) version=tostring(packinfo.versionName) versioncode=tostring(packinfo.versionCode) url=\\u0026#34;https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2\\u0026#34;; function 过滤 (content) 版本名=content:match(\\u0026#34;【版本名】(.-)【版本名】\\u0026#34;) 版本=content:match(\\u0026#34;【版本】(.-)【版本】\\u0026#34;) 内容=content:match(\\u0026#34;【内容】(.-)【内容】\\u0026#34;) 链接=content:match(\\u0026#34;【链接】(.-)【链接】\\u0026#34;) if（版本名==nil) then 版本名=\\u0026#34;获取失败\\u0026#34; end if（版本==nil) then 版本=\\u0026#34;0\\u0026#34; end if（内容==nil) then 内容=\\u0026#34;获取失败\\u0026#34; end if（链接==nil) then 弹出消息 (\\u0026#34;服务器参数配置错误，请过段时间再次尝试\\u0026#34;) end if（版本 \\u0026gt; versioncode) then dl.dismiss() tt.stop() 对话框 () . 设置标题 (\\u0026#34;检测到更新\\u0026#34;) . 设置消息 (\\u0026#34;版本：\\u0026#34;..version..\\u0026#34;→\\u0026#34;.. 版本名。.\\u0026#34;\\\\n 更新内容：\\u0026#34;.. 内容） . 设置积极按钮 (\\u0026#34;下载更新\\u0026#34;,function() 下载文件（链接） 弹出消息 (\\u0026#34;下载更新中…\\u0026#34;) end) . 设置消极按钮 (\\u0026#34;取消更新\\u0026#34;) . 显示 () else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;当前已是最新版本！\\u0026#34;) end Http.get(url,nil,\\u0026#34;UTF-8\\u0026#34;,nil,function(code,content,cookie,header) if(code==200 and content)then content=content:match(\\u0026#34;\\\\\\u0026#34;html_content\\\\\\u0026#34;:(.-),\\u0026#34;):gsub(\\u0026#34;\\\\\\\\u003C/?.-%\\u0026gt;\\u0026#34;,\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\\\\\\\\\\\u0026#34;,\\u0026#34;\\u0026amp;revs;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\n\\u0026#34;,\\u0026#34;\\\\n\\u0026#34;):gsub(\\u0026#34;\\u0026amp;nbsp;\\u0026#34;,\\u0026#34; \\u0026#34;):gsub(\\u0026#34;\\u0026amp;lt;\\u0026#34;,\\u0026#34;\\u0026lt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;gt;\\u0026#34;,\\u0026#34;\\u0026gt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;quot;\\u0026#34;,\\u0026#34;\\\\\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;apos;\\u0026#34;,\\u0026#34;\\u0026#39;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;revs;\\u0026#34;,\\u0026#34;\\\\\\\\\\u0026#34;):gsub(\\u0026#34;\\u0026amp;amp;\\u0026#34;,\\u0026#34;\\u0026amp;\\u0026#34;); 过滤 (content) else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;本地网络或服务器异常 \\u0026#34;..code) end end) 0.15.2 方向锁定 --flag 在程序启动事件声明的全局变量 if flag==1 then activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); SetHSP=\\u0026#34;H\\u0026#34; else SetHSP=nil end if SetHSP==nil then --竖屏锁定 activity.setRequestedOrientation(1); flag=1 else flag=0 end 0.15.3 程序启动事件 弹出消息 (\\u0026#34;©2018 李瑞豪\\u0026#34;) --自动，由物理感应器决定 import \\u0026#34;android.content.pm.ActivityInfo\\u0026#34; flag=1 --程序退出时执行对话框 function onKeyDown(key,event) if(key==4)then if(webView.canGoBack())then webView.goBack() else appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0) applabel=this.getPackageManager().getApplicationLabel(appinfo) 退出确认=对话框 () . 设置消息 (\\u0026#34;您确定要退出 \\u0026#34;..applabel..\\u0026#34; 吗？\\u0026#34;) 退出按钮={ [1]=function() 退出确认 . 设置积极按钮 (\\u0026#34;确认\\u0026#34;,function() 退出程序 () end ) . 设置中立按钮 (\\u0026#34;清除缓存\\u0026#34;,function() 对话框 () . 设置消息 (\\u0026#34;清除缓存后再次运行程序将变得缓慢、n 您确定要清除 \\u0026#34;..applabel..\\u0026#34; 的缓存吗？\\u0026#34;) . 设置积极按钮 (\\u0026#34;确定\\u0026#34;,function() os.execute(\\u0026#34;pm clear \\u0026#34;..this.packageName) 退出程序 () end) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;,function() end) . 显示 () end ) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;) end } math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 6))) 退出按钮 [math.random(1,1)]() 退出确认。show() end return true end end --历史记录 lstads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lst.lua\\u0026#34; lstwebads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lstweb.lua\\u0026#34; --2. 序列化 function slz(obj) local lua = \\u0026#34;\\u0026#34; local t = type(obj) if t == \\u0026#34;number\\u0026#34; then lua = lua .. obj elseif t == \\u0026#34;boolean\\u0026#34; then lua = lua .. tostring(obj) elseif t == \\u0026#34;string\\u0026#34; then lua = lua .. string.format(\\u0026#34;%q\\u0026#34;, obj) elseif t == \\u0026#34;table\\u0026#34; then lua = lua .. \\u0026#34;{\\\\n\\u0026#34; for k, v in pairs(obj) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end local metatable = getmetatable(obj) if metatable ~= nil and type(metatable.__index) == \\u0026#34;table\\u0026#34; then for k, v in pairs(metatable.__index) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end end lua = lua .. \\u0026#34;}\\u0026#34; elseif t == \\u0026#34;nil\\u0026#34; then return nil else error(\\u0026#34;can not serialize a \\u0026#34; .. t .. \\u0026#34; type.\\u0026#34;) end return lua end function rslz(lua) local t = type(lua) if t == \\u0026#34;nil\\u0026#34; or lua =\",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:3\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#方向锁定\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.15 部分源码 看到这些中文的函数总觉得怪怪的哈哈哈 😂 语言：lua 0.15.1 检测更新 --检查测当前是否最新版本 local dl=ProgressDialog.show(activity,nil,\\u0026#39;更新检测中…\\u0026#39;) dl.show() local tt=Ticker() tt.start() packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9) version=tostring(packinfo.versionName) versioncode=tostring(packinfo.versionCode) url=\\u0026#34;https://share.weiyun.com/43fa66d8fc95db27141530ed2d006be2\\u0026#34;; function 过滤 (content) 版本名=content:match(\\u0026#34;【版本名】(.-)【版本名】\\u0026#34;) 版本=content:match(\\u0026#34;【版本】(.-)【版本】\\u0026#34;) 内容=content:match(\\u0026#34;【内容】(.-)【内容】\\u0026#34;) 链接=content:match(\\u0026#34;【链接】(.-)【链接】\\u0026#34;) if（版本名==nil) then 版本名=\\u0026#34;获取失败\\u0026#34; end if（版本==nil) then 版本=\\u0026#34;0\\u0026#34; end if（内容==nil) then 内容=\\u0026#34;获取失败\\u0026#34; end if（链接==nil) then 弹出消息 (\\u0026#34;服务器参数配置错误，请过段时间再次尝试\\u0026#34;) end if（版本 \\u0026gt; versioncode) then dl.dismiss() tt.stop() 对话框 () . 设置标题 (\\u0026#34;检测到更新\\u0026#34;) . 设置消息 (\\u0026#34;版本：\\u0026#34;..version..\\u0026#34;→\\u0026#34;.. 版本名。.\\u0026#34;\\\\n 更新内容：\\u0026#34;.. 内容） . 设置积极按钮 (\\u0026#34;下载更新\\u0026#34;,function() 下载文件（链接） 弹出消息 (\\u0026#34;下载更新中…\\u0026#34;) end) . 设置消极按钮 (\\u0026#34;取消更新\\u0026#34;) . 显示 () else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;当前已是最新版本！\\u0026#34;) end Http.get(url,nil,\\u0026#34;UTF-8\\u0026#34;,nil,function(code,content,cookie,header) if(code==200 and content)then content=content:match(\\u0026#34;\\\\\\u0026#34;html_content\\\\\\u0026#34;:(.-),\\u0026#34;):gsub(\\u0026#34;\\\\\\\\u003C/?.-%\\u0026gt;\\u0026#34;,\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\\\\\\\\\\\u0026#34;,\\u0026#34;\\u0026amp;revs;\\u0026#34;):gsub(\\u0026#34;\\\\\\\\n\\u0026#34;,\\u0026#34;\\\\n\\u0026#34;):gsub(\\u0026#34;\\u0026amp;nbsp;\\u0026#34;,\\u0026#34; \\u0026#34;):gsub(\\u0026#34;\\u0026amp;lt;\\u0026#34;,\\u0026#34;\\u0026lt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;gt;\\u0026#34;,\\u0026#34;\\u0026gt;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;quot;\\u0026#34;,\\u0026#34;\\\\\\u0026#34;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;apos;\\u0026#34;,\\u0026#34;\\u0026#39;\\u0026#34;):gsub(\\u0026#34;\\u0026amp;revs;\\u0026#34;,\\u0026#34;\\\\\\\\\\u0026#34;):gsub(\\u0026#34;\\u0026amp;amp;\\u0026#34;,\\u0026#34;\\u0026amp;\\u0026#34;); 过滤 (content) else dl.dismiss() tt.stop() 弹出消息 (\\u0026#34;本地网络或服务器异常 \\u0026#34;..code) end end) 0.15.2 方向锁定 --flag 在程序启动事件声明的全局变量 if flag==1 then activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); SetHSP=\\u0026#34;H\\u0026#34; else SetHSP=nil end if SetHSP==nil then --竖屏锁定 activity.setRequestedOrientation(1); flag=1 else flag=0 end 0.15.3 程序启动事件 弹出消息 (\\u0026#34;©2018 李瑞豪\\u0026#34;) --自动，由物理感应器决定 import \\u0026#34;android.content.pm.ActivityInfo\\u0026#34; flag=1 --程序退出时执行对话框 function onKeyDown(key,event) if(key==4)then if(webView.canGoBack())then webView.goBack() else appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0) applabel=this.getPackageManager().getApplicationLabel(appinfo) 退出确认=对话框 () . 设置消息 (\\u0026#34;您确定要退出 \\u0026#34;..applabel..\\u0026#34; 吗？\\u0026#34;) 退出按钮={ [1]=function() 退出确认 . 设置积极按钮 (\\u0026#34;确认\\u0026#34;,function() 退出程序 () end ) . 设置中立按钮 (\\u0026#34;清除缓存\\u0026#34;,function() 对话框 () . 设置消息 (\\u0026#34;清除缓存后再次运行程序将变得缓慢、n 您确定要清除 \\u0026#34;..applabel..\\u0026#34; 的缓存吗？\\u0026#34;) . 设置积极按钮 (\\u0026#34;确定\\u0026#34;,function() os.execute(\\u0026#34;pm clear \\u0026#34;..this.packageName) 退出程序 () end) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;,function() end) . 显示 () end ) . 设置消极按钮 (\\u0026#34;取消\\u0026#34;) end } math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 6))) 退出按钮 [math.random(1,1)]() 退出确认。show() end return true end end --历史记录 lstads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lst.lua\\u0026#34; lstwebads=\\u0026#34;/data/data/\\u0026#34;..activity.getPackageName()..\\u0026#34;/lstweb.lua\\u0026#34; --2. 序列化 function slz(obj) local lua = \\u0026#34;\\u0026#34; local t = type(obj) if t == \\u0026#34;number\\u0026#34; then lua = lua .. obj elseif t == \\u0026#34;boolean\\u0026#34; then lua = lua .. tostring(obj) elseif t == \\u0026#34;string\\u0026#34; then lua = lua .. string.format(\\u0026#34;%q\\u0026#34;, obj) elseif t == \\u0026#34;table\\u0026#34; then lua = lua .. \\u0026#34;{\\\\n\\u0026#34; for k, v in pairs(obj) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end local metatable = getmetatable(obj) if metatable ~= nil and type(metatable.__index) == \\u0026#34;table\\u0026#34; then for k, v in pairs(metatable.__index) do lua = lua .. \\u0026#34;[\\u0026#34; .. slz(k) .. \\u0026#34;]=\\u0026#34; .. slz(v) .. \\u0026#34;,\\\\n\\u0026#34; end end lua = lua .. \\u0026#34;}\\u0026#34; elseif t == \\u0026#34;nil\\u0026#34; then return nil else error(\\u0026#34;can not serialize a \\u0026#34; .. t .. \\u0026#34; type.\\u0026#34;) end return lua end function rslz(lua) local t = type(lua) if t == \\u0026#34;nil\\u0026#34; or lua =\",\"date\":\"2018-11-12\",\"objectID\":\"/posts/fas-app/:0:3\",\"tags\":[\"lua\",\"fusion\"],\"title\":\"博採眾長 app\",\"uri\":\"/posts/fas-app/#程序启动事件\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"21 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager \",\"date\":\"2018-11-11\",\"objectID\":\"/posts/caddy-file/:1:0\",\"tags\":[\"云盘\",\"caddy\",\"server\"],\"title\":\"caddy-两步搭建超简单云盘\",\"uri\":\"/posts/caddy-file/#安装\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"22 编写配置文件 vim Caddyfile 内容如下： :80 { filemanager / /sdcard timeouts none gzip } 这里的 8080 端口号可以随意指定，如果在手机 termux 等搭建，由于手机权限比较低，所以一般设置 1024 以上的端口。80端口可以直接通过 ip 访问。如118.24.217.167 如果用域名，先在域名服务商解析 ip, 再配置文件如下 https://pan.lruihao.cn { filemanager / /sdcard timeouts none tls admin@lruihao.cn gzip } 指定邮箱是为了申请 ssl, 实现 https. \",\"date\":\"2018-11-11\",\"objectID\":\"/posts/caddy-file/:2:0\",\"tags\":[\"云盘\",\"caddy\",\"server\"],\"title\":\"caddy-两步搭建超简单云盘\",\"uri\":\"/posts/caddy-file/#编写配置文件\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"23 demo 启动 caddy caddy 账号密码默认admin \",\"date\":\"2018-11-11\",\"objectID\":\"/posts/caddy-file/:3:0\",\"tags\":[\"云盘\",\"caddy\",\"server\"],\"title\":\"caddy-两步搭建超简单云盘\",\"uri\":\"/posts/caddy-file/#demo\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"24 设置定时器启动 caddy（好像没用，我不会） 为了断开 xshell 后 caddy 还在运行。 vim run.sh 编辑以下内容 #!/bin/bash caddy 加权 chmod +x run.sh 设置任务 参考 crontab -e 加入 * * * * * /root/run.sh service crond start \",\"date\":\"2018-11-11\",\"objectID\":\"/posts/caddy-file/:4:0\",\"tags\":[\"云盘\",\"caddy\",\"server\"],\"title\":\"caddy-两步搭建超简单云盘\",\"uri\":\"/posts/caddy-file/#设置定时器启动-caddy好像没用我不会\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"25 ？？？ 最后误打误撞开启了 caddy 昨晚双十一要抢裤子，加上湘潭天气太 tm 冷了，就上床了，接着用 termux 远程连接服务器继续搞。结果连接的时候命令输错了-_-! 本来是ssh root@118.24.217.167再输入密码就可以了。这次搞错了多写了个-T, 然后运行caddy,ctrl+c 再断开，意外地发现 filemanager 竟然可以访问了。 ssh -T root@118.24.217.167 caddy Ctrl+c \",\"date\":\"2018-11-11\",\"objectID\":\"/posts/caddy-file/:5:0\",\"tags\":[\"云盘\",\"caddy\",\"server\"],\"title\":\"caddy-两步搭建超简单云盘\",\"uri\":\"/posts/caddy-file/#heading\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。 \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:0:0\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 iframe(推荐) \\u0026lt;iframe src=\\u0026#34;/posts/next-pdf/1.pdf\\u0026#34; style=\\u0026#34;width: 100%;height: 800px;\\u0026#34;\\u0026gt;\\u0026lt;/iframe\\u0026gt; \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:1:0\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#iframe推荐\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。 /* \\u0026#39;use strict\\u0026#39;; function pdf(args) { return `\\u0026lt;div class=\\u0026#34;pdf\\u0026#34; target=\\u0026#34;${args[0]}\\u0026#34; height=\\u0026#34;${args[1] || \\u0026#39;\\u0026#39;}\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt;`; } hexo.extend.tag.register(\\u0026#39;pdf\\u0026#39;, pdf, {ends: false}); */ \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:2:0\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#模板自带\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 pdf 插件 (推荐) \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:3:0\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#pdf-插件-推荐\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.1 安装 npm install --save hexo-pdf \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:3:1\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15.2 使用 {% pdf url %} 比如本文 {% pdf /posts/next-pdf/1.pdf %} \",\"date\":\"2018-11-09\",\"objectID\":\"/posts/next-pdf/:3:2\",\"tags\":[\"Hexo\"],\"title\":\"next 添加支持 pdf\",\"uri\":\"/posts/next-pdf/#使用\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。 \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/js-device/:0:0\",\"tags\":[\"JavaScript\",\"他山之石\"],\"title\":\"js 判断用户设备类型及平台\",\"uri\":\"/posts/js-device/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.17 首先判断 pc 端还是移动端 function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = [\\u0026#34;Android\\u0026#34;, \\u0026#34;iPhone\\u0026#34;, \\u0026#34;SymbianOS\\u0026#34;, \\u0026#34;Windows Phone\\u0026#34;, \\u0026#34;iPad\\u0026#34;, \\u0026#34;iPod\\u0026#34;]; var flag = true; for (var v = 0; v \\u0026lt; Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) \\u0026gt; 0) { flag = false; break; } } return flag; } \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/js-device/:0:1\",\"tags\":[\"JavaScript\",\"他山之石\"],\"title\":\"js 判断用户设备类型及平台\",\"uri\":\"/posts/js-device/#首先判断-pc-端还是移动端\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.18 判断用户移动端使用的系统平台 var u = navigator.userAgent; if (u.indexOf(\\u0026#39;Android\\u0026#39;) \\u0026gt; -1 || u.indexOf(\\u0026#39;Linux\\u0026#39;) \\u0026gt; -1) { //安卓手机 } else if (u.indexOf(\\u0026#39;iPhone\\u0026#39;) \\u0026gt; -1) { //苹果手机 } else if (u.indexOf(\\u0026#39;Windows Phone\\u0026#39;) \\u0026gt; -1) { //winphone 手机 } \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/js-device/:0:2\",\"tags\":[\"JavaScript\",\"他山之石\"],\"title\":\"js 判断用户设备类型及平台\",\"uri\":\"/posts/js-device/#判断用户移动端使用的系统平台\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.19 判断用户是否在微信中打开 function isWeiXin(){ var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf(\\u0026#39;micromessenger\\u0026#39;) != -1) { return true; } else { return false; } } \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/js-device/:0:3\",\"tags\":[\"JavaScript\",\"他山之石\"],\"title\":\"js 判断用户设备类型及平台\",\"uri\":\"/posts/js-device/#判断用户是否在微信中打开\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.20 实际运用 根据 pc 或者移动端控制飘花数目，降低 cpu 消耗，减少卡顿。demo \\u0026lt;script\\u0026gt; function sakuraInit() { $(document).snowfall(\\u0026#39;clear\\u0026#39;); var userAgentInfo = navigator.userAgent; var Agents = [\\u0026#34;Android\\u0026#34;, \\u0026#34;iPhone\\u0026#34;, \\u0026#34;SymbianOS\\u0026#34;, \\u0026#34;Windows Phone\\u0026#34;, \\u0026#34;iPad\\u0026#34;, \\u0026#34;iPod\\u0026#34;]; var flag = true; for (var v = 0; v \\u0026lt; Agents.length; v++) { if (userAgentInfo.indexOf(Agents[v]) \\u0026gt; 0) { flag = false; break; } } if (flag) { $(document).snowfall({image:\\u0026#34;images/1.png\\u0026#34;, flakeCount:5, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/2.png\\u0026#34;, flakeCount:5, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/3.png\\u0026#34;, flakeCount:5, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/4.png\\u0026#34;, flakeCount:5, minSpeed:1, minSize:8, maxSize:15,}); } else { $(document).snowfall({image:\\u0026#34;images/1.png\\u0026#34;, flakeCount:2, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/2.png\\u0026#34;, flakeCount:2, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/3.png\\u0026#34;, flakeCount:2, minSpeed:1, minSize:8, maxSize:15,}); $(document).snowfall({image:\\u0026#34;images/4.png\\u0026#34;, flakeCount:2, minSpeed:1, minSize:8, maxSize:15,}); } } window.onload = sakuraInit(); \\u0026lt;/script\\u0026gt; \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/js-device/:0:4\",\"tags\":[\"JavaScript\",\"他山之石\"],\"title\":\"js 判断用户设备类型及平台\",\"uri\":\"/posts/js-device/#实际运用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"9 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\u0026#34;blog hexo\\u0026#34; git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上 \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/blog-backup/:1:0\",\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"title\":\"hexo 博客源码备份\",\"uri\":\"/posts/blog-backup/#备份-hexo-博客\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成 \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/blog-backup/:2:0\",\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"title\":\"hexo 博客源码备份\",\"uri\":\"/posts/blog-backup/#在其他终端克隆和更新-hexo-博客\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.1 克隆 hexo 博客备份 git clone -b hexo git@github.com:username/username.github.io.git //将 Github 中 hexo 分支 clone 到本地 cd user.github.io npm install //注意，这里一定要切换到刚刚 clone 的文件夹内执行，安装必要的所需组件，不用再 init 这样我们的备份文件就会原封不动的拷贝到本地。 \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/blog-backup/:2:1\",\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"title\":\"hexo 博客源码备份\",\"uri\":\"/posts/blog-backup/#克隆-hexo-博客备份\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"10.2 写新文章并备份和部署（备用操作） 其实源码拷下来了，这步不做我们也知道怎么做了，完全没必要按照教程死搬硬套。灵活一点就行了。 //进入 username.github.io 文件夹，应是 hexo 分支 git pull origin hexo //本地和远端的融合 hexo new post \\u0026#34;new post name\\u0026#34; //写新文章 git add source git commit -m \\u0026#34;xxx\\u0026#34; git push origin hexo //备份 hexo d -g //部署 参考 \",\"date\":\"2018-11-03\",\"objectID\":\"/posts/blog-backup/:2:2\",\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"title\":\"hexo 博客源码备份\",\"uri\":\"/posts/blog-backup/#写新文章并备份和部署备用操作\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:0:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"21 介绍 https://git-scm.com/ 先通过几张图片来大致了解一下 Git 的工作原理吧！ 文章开头的流程图已经简单明了地说明了 Git 常用操作的工作流程，下图换种风格再展示一次： 提到 Git 就会联想到 github, 下图从 Git 的角度简单说明了一些 Github 常用操作的关系： 下面这个图则展示了工作区、版本库中的暂存区和版本库之间的关系： 图中左侧为工作区，右侧为版本库。在版本库中标记为 \\u0026quot;index\\u0026quot; 的区域是暂存区（stage, index），标记为 \\u0026ldquo;master\\u0026rdquo; 的是 master 分支所代表的目录树。 HEAD 指针：每个 git 仓库有且仅有一个 HEAD 指针，它通常指向當前某个活動的本地分支指针（最初本地仓库 master)。也可以是某个提交记录、某个 tag，但这会让其处于 detached HEAD（游离头）状态，此状态下的所有提交都无效。 图中我们可以看出此时 \\u0026quot;HEAD\\u0026quot; 实际是指向 master 分支的一个\\u0026quot;游标\\u0026quot;。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。 图中的objects标识的区域为 Git 的对象库，实际位于 \\u0026quot;.git/objects\\u0026quot; 目录下，里面包含了创建的各种对象及内容。 当对工作区修改（或新增）的文件执行 \\u0026quot;git add\\u0026quot;命令时，暂存区的目录树被更新，同时工作区修改（或新增）的文件内容被写入到对象库中的一个新的对象中，而该对象的 ID 被记录在暂存区的文件索引中。 当执行提交操作（git commit）时，暂存区的目录树写到版本库（对象库）中，master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。 当执行 \\u0026quot;git reset HEAD\\u0026quot; 命令时，暂存区的目录树会被重写，被 master 分支指向的目录树所替换，但是工作区不受影响。 当执行 \\u0026quot;git rm --cached \\u0026lt;file\\u0026gt;\\u0026quot; 命令时，会直接从暂存区删除文件，工作区则不做出改变。 当执行 \\u0026quot;git checkout .\\u0026quot; 或者 \\u0026quot;git checkout -- \\u0026lt;file\\u0026gt;\\u0026quot; 命令时，会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险，会清除工作区中未添加到暂存区的改动。 当执行 \\u0026quot;git checkout HEAD .\\u0026quot; 或者 \\u0026quot;git checkout HEAD \\u0026lt;file\\u0026gt;\\u0026quot; 命令时，会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的，因为不但会清除工作区中未提交的改动，也会清除暂存区中未提交的改动。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:1:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#介绍\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22 Git 配置 git config --global --list #查看全局配置 git config --local --list #查看本项目配置 # 第一次使用 git 的时候，需要设置用户信息和用户邮箱，用于辨识提交者身份 git config --global user.name \\u0026#34;用户名\\u0026#34; git config --global user.email \\u0026#34;邮箱\\u0026#34; git config --global alias.cm commit git config --global alias.br branch # 配置指令别名简写 git config --global credential.helper store # 输入一次账号密码后第二次就会记住账号密码 git config --global core.ignorecase false # 关闭忽略大小写 git config --system core.longpaths true # 配置长路径 git config --global http.sslVerify false # 禁用 SSL 验证 git config --global core.protectNTFS false # 关闭 NTFS 文件保护 git config --global url.\\u0026#34;https://\\u0026#34;.insteadOf git:// # git:// 报错 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#git-配置\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.1 基本操作 git init ## 把当前的目录变成可以用 git 进行版本控制的 git 仓库，生成隐藏。git 文件。 git add XX ## 把 xx 文件添加到暂存区去。 git add –A ## git add --all 的缩写，添加全部到暂存区 git add –u ## 把文件的删除和修改添加到暂存区（不包括新增） git add . ## 监控工作区的状态树，使用它会把工作时的所有变化提交到暂存区 git commit -m \\u0026#34;message\\u0026#34; ## 从暂存区提交到本地仓库 git commit -a -m \\u0026#34;message\\u0026#34; ## 相当于省略 git add，但是无法提交新增的文件 git push origin master ## Git 会把 master 分支推送到远程库对应的远程分支上 Tips Commit Message 内容尽量规范！ 当某一次提交后，突然想起漏提交了文件，或不小心提交了不满意的代码时， 可以使用git commit --amend -m \\u0026quot;message\\u0026quot;指令。它可以在不增加一个新的 commit-id 的情况下将新修改的代码追加到前一次的 commit-id 中。提交之后 message 也将被本次的 message 覆盖，所以还需要再次添加上次的 message。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:1\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#基本操作\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.2 push git push origin branch-name git push –u origin master git push origin --delete branch-name ## 删除远程分支 把当前 master 分支推送到远程库；-u表示记住分支和地址，下次使用git push即可。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:2\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#push\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.3 remote git remote add origin reposityUrl ## 关联一个远程库 git remote ## 查看远程库的信息 git remote –v ## 查看远程库的详细信息 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:3\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#remote\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.4 clone git clone reposityUrl ## 从远程库中克隆 git clone -b branchName reposityUrl ## 克隆指定分支 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:4\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#clone\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.5 pull git pull 从远程仓库拉下来到本地库然后合并相当于git fetch+git merge。 一般 push 前先拉去最新版本，避免代码冲突，如果有冲突需要解决了冲突才能提交。 import repositories 同步更新 git pull 原链接 git push origin master \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:5\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#pull\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.6 fetch git fetch ## 从远程库抓下最新版本，但是不合并 fetch 是从远程库到本地库，但是未在工作区，需要git merge \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:6\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#fetch\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.7 merge git merge dev ## 在当前的分支上合并 dev 分支 分支合并也是在本地完成 (从本地库到工作区)，新的分支只有在合并后才允许被删除。 如果分支合并是出现冲突需要解决了冲突才能合并，使用git status查看冲突文件。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:7\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#merge\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.8 branch,checkout git branch ## 查看当前所有的分支 git branch name ## 创建分支 git branch –r ## 看远程所有分支 git branch –a ## 查看本地远程分支 git branch –d name ## 删除分支 git checkout name ## 切换分支 git checkout –b name ## 创建并切换到 name 分支上 git checkout -- file git checkout -- file相当于取消对文档的修改，将最新的本地版本库的本文件复制覆盖它。（比较危险！） \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:8\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#branchcheckout\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.9 reflog,log git log ## 显示所有提交过的版本信息：commit id，提交者，日期 git reflog ## 查看历史记录的 commit id Tips 想看到自己的操作记录，则可以使用 log 与 reflog，它两个的区别如下： git log命令可以显示所有提交过的版本信息； 如果感觉太繁琐，可以加上参数--pretty=oneline，只会显示版本号和提交时的备注信息。 git reflog可以查看所有分支的所有操作记录。（包括已经被删除的 commit 记录和 reset 的操作） \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:9\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#refloglog\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.10 reset git reset --hard HEAD^ git reset --hard HEAD~ ## 回退到上一个版本 git reset --hard HEAD~100 ## 回退到 100 个版本 git reset head -- file ## 不加 file 则全部退回 git reset file ## 将本地仓库的当前版本退回至暂存区，相当于取消暂存 版本退回是从本地仓库到暂存区，如果已经提交远程库，此时的版本是低于最新的版本的会拒绝提交， 需要用git push -f origin master强制提交。 特别提醒 如果你git reset --hard HEAD^+git push -f origin master执行完，github 中的记录和本地文件都会回到退回的状态。简单来说就是一修改了一天的 bug, 完工后，你这一套操作直接打回原形。别慌（实际内心慌的一麻皮。） 通过git log -g命令来找到需要恢复的信息对应的 commitid，可以通过提交的时间和记录来辨别， 找到执行reset --hard之前的那个 commit 对应的 commit-id 通过git branch recover_branch commit-id来建立一个新的分支 这样，就把到 commitid 为止的代码、各种提交记录等信息都恢复到了 recover_branch 分支上了。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:10\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#reset\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.11 status git status 查看你的文件在暂存区和工作目录的状态，默认是较为详细的显示，并提示你可以用何种命令完成你接下来可能要做的事情。 git status -s 较为简单的输出当前的状态，如： $ git status -s M README.md D hello.rb ?? world.java 你可以看到，在简短输出中，有两栏。第一栏是暂存区的，第二栏则是工作目录的。这里表示： README.md 在暂存区中的状态是 modify hello.rb 在工作目录中的状态是 delete world.java 还未添加到版本控制。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:11\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#status\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.12 diff git diff XX ## 查看 XX 文件修改了哪些内容 git diff ## 工作目录和暂存区 git diff --cached ## 暂存区和本地仓库 git diff HEAD ## 工作目录和本地仓库 git diff --stat ## 显示信息摘要 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:12\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#diff\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.13 rm, mv git rm ## 将文件从暂存区和工作目录删除，-f 为强制删除 git rm filename ## 删除文件 git rm –r dirname ## 删除文件夹 –r 表示递归所有子目录 git rm --cached \\u0026lt;path\\u0026gt; ## 将文件从暂存区中删除 git mv \\u0026lt;old_path\\u0026gt; \\u0026lt;new_path\\u0026gt; git rm用来删除文件、目录。git mv命令用于移动或重命名一个文件、目录。 比如删除 photos 文件，本地删除后，远程仓库还会有，所以 git rm -r photos git commit -m \\u0026#34;删除相册\\u0026#34; git push \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:13\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#rm-mv\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.14 submodule git submodule add ## 添加子模组 git submodule init ## 子模组初始化 git submodule update ## 子模组更新 git submodule -help Note 当一个远程库有子模组时，直接 clone 子模组只是一个空文件夹，需要进入子模组的空文件夹init和update才行。 或者使用递归克隆git clone --recursive 远程库 子模组更新后，父模组必须更新，因为需要更新 commit id。 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:14\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#submodule\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.15 tag git tag v1.0 git tag -a v1.0 ## 给最新一次提交打标签 git tag -a \\u0026lt;tagname\\u0026gt; -m \\u0026#34;标签\\u0026#34; ## 指定标签信息命令 git show \\u0026lt;tagname\\u0026gt; ## 显示标签信息 git tag ## 查看版本打的 Tag git tag -d v1.0 ## 删除本地标签 git push origin :refs/tags/v1.0 ## 删除远程标签 $ git push [remote] [tag] ## 提交指定 tag $ git push [remote] --tags ## 提交所有 tag Note 当你执行git tag -a命令时，Git 会打开你的编辑器，让你写一句标签注解，就像你给提交写注解一样。 如果我们忘了给某个提交打标签，又将它发布了，我们可以给它追加标签。 例如，假设我们发布了提交 85fc7e7（最后一行），但是那时候忘了给它打标签。我们现在也可以： $ git tag -a v0.9 85fc7e7 $ git log --oneline --decorate --graph * d5e9fc2 (HEAD -\\u0026gt; master) Merge branch \\u0026#39;change_site\\u0026#39; |\\\\ | * 7774248 (change_site) changed the runoob.php * | c68142b 修改代码 |/ * c1501a2 removed test.txt、add runoob.php * 3e92c19 add test.txt * 3b58100 (tag: v0.9) 第一次版本提交 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:15\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#tag\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.16 stash git stash ## 把当前的工作隐藏起来，等以后恢复现场后继续工作 git stash list ## 查看所有被隐藏的文件列表 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:16\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#stash\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"22.17 gitk gitk ## git 自带 GUI gitk --all \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:2:17\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#gitk\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"23 github,gitea 等平台 issue 的常用标签 bug 描述的问题是一个 bug enhancement 功能增强，没有 feature 也可以指 New feature or request feature 新功能 duplicate 问题重复 invalid 可用的，不是 bug question 疑问，需要进一步的信息 wontfix 不会修复此问题 help-wanted 需要帮助 good first issue Good for newcomers 更多标签 \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:3:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#githubgitea-等平台-issue-的常用标签\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"24 license \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:4:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#license\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"25 其他 常用 Git 命令清单 github 上 fork 了别人的项目后，再同步更新别人的提交 Gearn Git Branching \",\"date\":\"2018-10-30\",\"objectID\":\"/posts/git/:5:0\",\"tags\":[\"Git\"],\"title\":\"Git 常用指令汇总\",\"uri\":\"/posts/git/#其他\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。 备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/beian/:0:0\",\"tags\":[\"随笔\",\"网站备案\"],\"title\":\"网站备案之旅\",\"uri\":\"/posts/beian/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"今天上机学了几个小命令 read echo if 然后自己写了一个小脚本觉得还挺有趣的 #!/bin/bash #liruihao #menu.sh #sudo apt curl install nyancat sl figlet toilet cowsay echo \\u0026#34;-------------菜-单--------------\\u0026#34; echo \\u0026#34;------------1-打印二维码--------\\u0026#34; echo \\u0026#34;------------2-彩虹猫------------\\u0026#34; echo \\u0026#34;------------3-小火切------------\\u0026#34; echo \\u0026#34;------------4-打字机------------\\u0026#34; echo \\u0026#34;------------5-小许牛------------\\u0026#34; echo \\u0026#34;----------Ctrl+c 暂停程序--------\\u0026#34; echo \\u0026#34;\\u0026#34; echo \\u0026#34;请输入序号！\\u0026#34; read i if test $i -eq 1 then echo \\u0026#34;请输入网址！\\u0026#34; read s1 echo $s1 |curl -F-=\\\\\\u0026lt;- qrenco.de fi if test $i -eq 2 then nyancat fi if test $i -eq 3 then sl fi if test $i -eq 4 then echo \\u0026#34;请输入字符串！\\u0026#34; read s2 echo \\u0026#34;选择样式：\\u0026#34; echo \\u0026#34;------样式 1-----\\u0026#34; echo \\u0026#34;------样式 2-----\\u0026#34; read j if test $j -eq 1 then figlet $s2 else toilet -f mono12 -F gay $s2 fi fi if test $i -eq 5 then echo \\u0026#34;请输入字符串！\\u0026#34; read s3 cowsay $s3 fi echo \\u0026#34;任意建继续！\\u0026#34; read x clear ./menu.sh \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/shell/:0:0\",\"tags\":[\"shell\",\"linux\"],\"title\":\"shell 脚本初体验\",\"uri\":\"/posts/shell/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.13 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd 注意安装目录，可通过 cd 命令切换。 启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service 如果启动失败，可通过 systemctl status httpd.service 查看错误原因。 启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。 默认根目录/var/www/html/ \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/web-server-yun/:0:1\",\"tags\":[\"server\",\"linux\",\"他山之石\"],\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"uri\":\"/posts/web-server-yun/#搭建-apache-web-服务\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.14 使用 SSH 连接服务器 尝试了两种方式：PuTTY 和 Xshell（推荐） 0.14.1 Xshell 方式 官网下载安装 Xshell 打开，输入 ip 账号密码连接主机。 使用 lrzsz 方式上传下载文件 步骤 1：在服务器安装 lrzsz [root@VM_0_6_centos /]# yum -y install lrzsz 步骤 2：输入命令rz打开上传窗口（可以选择多个文件。) 使用sz文件名命令可打开从服务器下载文件的保存窗口。 \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/web-server-yun/:0:2\",\"tags\":[\"server\",\"linux\",\"他山之石\"],\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"uri\":\"/posts/web-server-yun/#使用-ssh-连接服务器\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.14 使用 SSH 连接服务器 尝试了两种方式：PuTTY 和 Xshell（推荐） 0.14.1 Xshell 方式 官网下载安装 Xshell 打开，输入 ip 账号密码连接主机。 使用 lrzsz 方式上传下载文件 步骤 1：在服务器安装 lrzsz [root@VM_0_6_centos /]# yum -y install lrzsz 步骤 2：输入命令rz打开上传窗口（可以选择多个文件。) 使用sz文件名命令可打开从服务器下载文件的保存窗口。 \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/web-server-yun/:0:2\",\"tags\":[\"server\",\"linux\",\"他山之石\"],\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"uri\":\"/posts/web-server-yun/#xshell-方式\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.15 修改 HTTP 配置 1.VIM 编辑器打开配置文件 [root@VM_0_6_centos /]# vim /etc/httpd/conf/httpd.conf 按I键进入编辑模式 找到并修改以下内容 ServerAdmin 管理员邮箱，用于浏览器请求报错时展示 DocumentRoot 访问根目录（默认：/var/www/html），如项目存放在其他地方，可修改为项目存放位置 \\u0026lt;Directory \\u0026#34;/var/www/html\\u0026#34;\\u0026gt; 同 DocumentRoot 配置 ServerName 服务器 IP 或 域名 按下 ESC 键输入:wq保存退出 重启服务service httpd restart 打开浏览器，输入地址访问 如：我的项目索引 html 路径为 love/index.html，输入 http://IP 地址或域名/love/index.html 访问不成功，先检查网络，再查看 http 服务是否开启，最后检查配置； 访问成功，配置完成。 \",\"date\":\"2018-10-29\",\"objectID\":\"/posts/web-server-yun/:0:3\",\"tags\":[\"server\",\"linux\",\"他山之石\"],\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"uri\":\"/posts/web-server-yun/#修改-http-配置\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#获取链接转\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationhref设置或获取整个-url-为字符串\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationprotocol设置或获取-url-的协议部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationhost设置或获取-url-的主机部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationport设置或获取与-url-关联的端口号码\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationpathname设置或获取与-url-的路径部分就是文件地址\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationsearch设置或获取-href-属性中跟在问号后面的部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#windowlocationhash设置或获取-href-属性中在井号后面的分段\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#js-获取-url-中的参数值\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#正则法\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#split-拆分法\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.9 获取链接（转） 传送门 在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。 下面我们举例一个 URL，然后获得它的各个组成部分：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.1 window.location.href（设置或获取整个 URL 为字符串） var test = window.location.href; alert(test); 返回：http://i.cnblogs.com/EditPosts.aspx?opt=1 0.9.2 window.location.protocol（设置或获取 URL 的协议部分） var test = window.location.protocol; alert(test); 返回：http: 0.9.3 window.location.host（设置或获取 URL 的主机部分） var test = window.location.host; alert(test); 返回：i.cnblogs.com 0.9.4 window.location.port（设置或获取与 URL 关联的端口号码） var test = window.location.port; alert(test); 返回：空字符（如果采用默认的 80 端口 (update: 即使添加了：80)，那么返回值并不是默认的 80 而是空字符） 0.9.5 window.location.pathname（设置或获取与 URL 的路径部分（就是文件地址）) var test = window.location.pathname; alert(test); 返回：/EditPosts.aspx 0.9.6 window.location.search（设置或获取 href 属性中跟在问号后面的部分） var test = window.location.search; alert(test); 返回：?opt=1 PS：获得查询（参数）部分，除了给动态语言赋值以外，我们同样可以给静态页面，并使用 javascript 来获得相信应的参数值。 0.9.7 window.location.hash（设置或获取 href 属性中在井号“#”后面的分段） var test = window.location.hash; alert(test); 返回：空字符（因为 url 中没有） 0.9.8 js 获取 url 中的参数值 0.9.8.1 正则法 function getQueryString(name) { var reg = new RegExp(\\u0026#39;(^|\\u0026amp;)\\u0026#39; + name + \\u0026#39;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#39;, \\u0026#39;i\\u0026#39;); var r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; } // 这样调用： alert(GetQueryString(\\u0026#34;参数名 1\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 2\\u0026#34;)); alert(GetQueryString(\\u0026#34;参数名 3\\u0026#34;)); 0.9.8.2 split 拆分法 function GetRequest() { var url = location.search; //获取 url 中\\u0026#34;?\\u0026#34;符后的字串 var theRequest = new Object(); if (url.indexOf(\\u0026#34;?\\u0026#34;) != -1) { var str = url.substr(1); strs = str.split(\\u0026#34;\\u0026amp;\\u0026#34;); for(var i = 0; i \\u0026lt; strs.length; i ++) { theRequest[strs[i].split(\\u0026#34;=\\u0026#34;)[0]] = unescape(strs[i].split(\\u0026#34;=\\u0026#34;)[1]); } } return theRequest; } var Request = new Object(); Request = GetRequest();\\u0026lt;br\\u0026gt;// var id=Request[\\u0026#34;id\\u0026#34;]; // var 参数 1, 参数 2, 参数 3, 参数 N; // 参数 1 = Request[\\u0026#39;参数 1\\u0026#39;]; // 参数 2 = Request[\\u0026#39;参数 2\\u0026#39;]; // 参数 3 = Request[\\u0026#39;参数 3\\u0026#39;]; // 参数 N = Request[\\u0026#39;参数 N\\u0026#39;]; 0.9.8.3 指定取 比如说一个 url：http://i.cnblogs.com/?j=js, 我们想得到参数 j 的值，可以通过以下函数调用。 function GetQueryString(name) { var reg = new RegExp(\\u0026#34;(^|\\u0026amp;)\\u0026#34; + name + \\u0026#34;=([^\\u0026amp;]*)(\\u0026amp;|$)\\u0026#34;, \\u0026#34;i\\u0026#34;); var r = window.location.search.substr(1).match(reg); //获取 url 中\\u0026#34;?\\u0026#34;符后的字符串并正则匹配 var context = \\u0026#34;\\u0026#34;; if (r != null) context = r[2]; reg = null; r = null; return context == null || context == \\u0026#34;\\u0026#34; || context == \\u0026#34;undefined\\u0026#34; ? \\u0026#34;\\u0026#34; : context; } alert(GetQueryString(\\u0026#34;j\\u0026#34;)); \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:1\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#指定取\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.10 301 重定向（实践） 由于之前把 blog 和网站主页分开在两个仓库所以要想在 blog 中 menu 里跳转到站外链接就要做一些处理。以前一直百度不到。 其实想法早就有了，只要在 blog 首页或者网站首页检测到https://lruihao.cn/home这个链接，或者检测到 home 字段就自动跳转。想法很简单。可是对 js 真的一点都不了解，以前百度也找不到实际的效果案例。所以还是自己写吧！附上蹩脚代码。 var path = window.location.href; //alert(path); if (path==\\u0026#39;https://lruihao.cn/home/\\u0026#39;) { window.location.replace(\\u0026#34;https://www.lruihao.cn\\u0026#34;); } 或者 var path = window.location.pathname; //alert(path); if (path==\\u0026#39;/home/\\u0026#39;) { window.location.replace(\\u0026#34;https://www.lruihao.cn\\u0026#34;); } http 强制重定向 https \\u0026lt;script\\u0026gt; var targetProtocol = \\u0026#34;https:\\u0026#34;; var host = \\u0026#34;lruihao.cn\\u0026#34;; //域名判断，因为 localhost 仅支持 http if (window.location.host == host \\u0026amp;\\u0026amp; window.location.protocol != targetProtocol){ window.location.href = targetProtocol + window.location.href.substring(window.location.protocol.length); } \\u0026lt;/script\\u0026gt; \",\"date\":\"2018-10-28\",\"objectID\":\"/posts/href-301/:0:2\",\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"uri\":\"/posts/href-301/#301-重定向实践\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\" 我用的 win10 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/web-server-win/:0:0\",\"tags\":[\"server\",\"windows\"],\"title\":\"windows 上搭建 web 服务器\",\"uri\":\"/posts/web-server-win/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。 打开控制面板 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/web-server-win/:0:1\",\"tags\":[\"server\",\"windows\"],\"title\":\"windows 上搭建 web 服务器\",\"uri\":\"/posts/web-server-win/#打开控制面板\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.2 查看 更新完成后，打开浏览器，输入http://localhost或者127.0.0.1回车，如果此时出现 IIS7 欢迎界面，说明 Web 服务器已经搭建成功。 查看 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/web-server-win/:0:2\",\"tags\":[\"server\",\"windows\"],\"title\":\"windows 上搭建 web 服务器\",\"uri\":\"/posts/web-server-win/#查看\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.3 网站设置 当 web 服务器搭建成功后，我们下一步所要做的就是把我们开发的网站安装到 Web 服务器的目录中。一般情况下，当 Web 服务器安装完成后，会创建路径%系统根目录%inetpub/wwwroot，将我们开发的网站 COPY 到该路径下。即可实现本地访问该网站。 也可以更改根目录，搜索 IIS，点击网站，Default Web Site，基本设置修改物理路径（默认站点名称不要改） 我这里改到了 hexo 的 public 相当于 hexo 部署在本地服务器58.45.227.225 网站设置 1 网站设置 2 网站设置 3 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/web-server-win/:0:3\",\"tags\":[\"server\",\"windows\"],\"title\":\"windows 上搭建 web 服务器\",\"uri\":\"/posts/web-server-win/#网站设置\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.4 设置防火墙 让局域网当其它计算机也能访问本地网站资源。具体方法：打开控制面板，选择“系统和安全”，点击“允许程序通过 Windows 防火墙”，在弹出的对话框中勾选“万维网服务 HTTP”右侧的两个复选框，最后点击确定退出。 设置防火墙 在局域网中其它计算机上，打开浏览器就可以通过你电脑的 ip 地址访问了（手机也可以） 本地 ip 可以通过 cmd 用 ipconfig 查看 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/web-server-win/:0:4\",\"tags\":[\"server\",\"windows\"],\"title\":\"windows 上搭建 web 服务器\",\"uri\":\"/posts/web-server-win/#设置防火墙\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"0.17 config git config --global user.name \\u0026#34;Your Name\\u0026#34; git config --global user.email \\u0026#34;email@example.com\\u0026#34; 第一次使用 git 的时候需要设置提交者信息。 注意： 如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。 如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/gituse/:0:1\",\"tags\":[\"Git\"],\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"uri\":\"/posts/gituse/#config\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"0.18 生成 ssh 由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的，所以我们需要配置验证信息： 使用以下命令生成 SSH Key： ssh-keygen -t rsa -C \\u0026#34;youremail@example.com\\u0026#34; 后面的 your_email@youremail.com 改为你在 Github 上注册的邮箱，之后会要求确认路径和输入密码，我们这使用默认的一路回车就行。成功的话会在 C:\\\\Users\\\\用户名、或者~/ 下生成 .ssh文件夹，进去，打开 id_rsa.pub，复制里面的 key。去 github、coding 等平台配置 SSH 公钥（根据自己情况） \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/gituse/:0:2\",\"tags\":[\"Git\"],\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"uri\":\"/posts/gituse/#生成-ssh\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"0.19 创建本地代码库 在本地创建一个文件夹，作为你上传代码的本地仓库，在这个文件夹内点击右键，选择 Git Bash Here，首先要初始化本地仓库： git init 接下来进行远程代码库克隆（事先在 coding 等中建立一个项目，就是你需要链接的仓库） git clone https://github.com/Lruihao/Lruihao.github.io.git 克隆时会出现输入账号密码的环节正确输入即可。 \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/gituse/:0:3\",\"tags\":[\"Git\"],\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"uri\":\"/posts/gituse/#创建本地代码库\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"0.20 代码推送（重点） git status git add * git commit -m \\u0026#34;代码备注随便写\\u0026#34; git push origin master Gearn Git Branching \",\"date\":\"2018-10-26\",\"objectID\":\"/posts/gituse/:0:4\",\"tags\":[\"Git\"],\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"uri\":\"/posts/gituse/#代码推送重点\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:0:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33 初始化 下载并初始化 termux \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:1:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#初始化\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33.1 安装 vim 安装编辑器 vim pkg install vim \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:1:1\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#安装-vim\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33.2 解决中文乱码问题 在 home 目录下，新建 .vimrc 文件 vim .vimrc 添加内容如下： set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 set enc=utf8 set fencs=utf8,gbk,gb2312,gb18030 然后 source 下变量： source .vimrc \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:1:2\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#解决中文乱码问题\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33.3 修改启动问候语 vim $PREFIX/etc/motd 按 i 然后编辑，比如 www.lruihao.cn 李瑞豪 Esc 然后：wq 退出 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:1:3\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#修改启动问候语\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33.4 管理员权限 手机已经 root, 安装 tsu, 这是一个 su 的 termux 版本，用来在 termux 上替代 su: pkg install tsu 然后终端下面输入： tsu 即可切换 root 用户，这个时候会弹出 root 授权提示。在管理员身份下，输入 exit 可回到普通用户身份。 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:1:4\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#管理员权限\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34 美化 Termux-ohmyzsh 作用：美化之外，主要使用了 zsh 来替代 bash 作为默认 shell。使用一键安装脚本来安装，一步到位，顺便启动了外置存储，可以直接访问 SD 卡下的目录，创建软文件夹。 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:2:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#美化\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34.1 使用 sh -c \\u0026#34;$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)\\u0026#34; \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:2:1\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#使用\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34.2 设置色彩样式 运行 chcolor 更换色彩样式，或者： ~/.termux/colors.sh \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:2:2\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#设置色彩样式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34.3 设置字体 运行 chfont 更换字体，或者： ~/.termux/fonts.sh \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:2:3\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#设置字体\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34.4 需要软件包 curl \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:2:4\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#需要软件包\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35 访问外置存储 执行过上面的 zsh 一键配置脚本后，并且授予文件访问权限的话，会在家目录生成 storage 目录，并且生成若干目录，软连接都指向外置存储卡的相应目录 可以让从外置储存复制文件进 system 分区 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:3:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#访问外置存储\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35.1 创建 QQ 文件夹软连接 ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:3:1\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#创建-qq-文件夹软连接\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35.2 创建 blog2 文件夹软连接备份文件 ln -s /data/data/com.termux/files/home/storage/shared/blog2 blog2 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:3:2\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#创建-blog2-文件夹软连接备份文件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36 安装 hexo \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#安装-hexo\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.1 安装准备 pkg install nodejs pkg install git npm install hexo-cli -g npm install hexo-deployer-git --save pkg install openssh \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:1\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#安装准备\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.2 初始化 hexo hexo init blog cd blog hexo g hexo s 浏览器输入127.0.0.1:4000查看效果 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:2\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#初始化-hexo\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.3 链接 github,coding,gitee 等远程仓库 ssh-keygen -t rsa -C \\u0026#34;your_email@example.com\\u0026#34; #这将按照你提供的邮箱地址，创建一对密钥（个人喜欢一路回车） 找到~/.ssh/id_rsa.pub这个文件复制里面的内容，到对应的平台生成 SSH 公钥 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:3\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#链接-githubcodinggitee-等远程仓库\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.4 设置用户信息 git config --global user.name \\u0026#34;lruihao\\u0026#34; git config --global user.email \\u0026#34;1074627678@qq.com\\u0026#34; \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:4\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#设置用户信息\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.5 测试链接 ssh -T git@github.com #github ssh -T git@coding.net #coding ssh -T git@gitee.com #gitee 注意#注释部分不要的 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:5\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#测试链接\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.6 站点配置文件 打开站点配置文件填写代码库 例如我的 deploy: - type: git repository: github: git@github.com:Lruihao/Lruihao.github.io.git,master coding: git@git.coding.net:liruihao/liruihao.git,master #message: \\u0026#34;日常更新\\u0026#34; \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:6\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#站点配置文件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36.7 部署 hexo clean hexo g -d 没出错就可以正常通过相应域名访问了。 https://lruihao.github.io https://liruihao.coding.me https://lruihao.gitee.io //手机 hexo 效果展示 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:4:7\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#部署\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"37 ssh 连接电脑或者服务器 ssh root@118.24.217.167 会提示输入密码，linux 下输入密码是看不到的，大家都知道，小心点别输入错误。 之后就可以手机操作服务器了。 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:5:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#ssh-连接电脑或者服务器\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"38 解决 npm 安装报错（未验证） vim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js 把里面的 length 改成 4，我默认的是 1。 \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:6:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#解决-npm-安装报错未验证\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39 nyancat 彩虹猫 彩虹貓（英语：Nyan Cat）是在 2011 年 4 月上传在 Youtube 的视频，并且迅速爆红于网络，並在 2011 年 YouTube 浏览量最高的视频中排名第五。 pkg install nyancat nyancat 还有更多姿势这里就不写了，只写一下日常用到的，就这样 OK 睡觉！ \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:7:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#nyancat-彩虹猫\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"40 termux 更多常用有趣命令（适用于 linux） vim $PREFIX/etc/motd chcolor chfont ~/.termux/colors.sh ~/.termux/fonts.sh echo \\u0026#34;https://www.lruihao.cn\\u0026#34; |curl -F-=\\\\\\u0026lt;- qrenco.de pkg install nyancat nyancat pkg install sl sl pkg install figlet figlet hello pkg install toilet toilet hello toilet -f mono12 -F gay \\u0026#34;hello\\u0026#34; pkg cowsay cowsay \\u0026#34;hello\\u0026#34; pkg install cmatrix cmatrix pkg install w3m w3m www.lruihao.cn cmatrix 常用命令如下： cmatrix-a : 异步滚动（默认） cmatrix-b : 随机粗体 cmatrix-B : 全部粗体 cmatrix-o : 使用旧风格滚动 cmatrix-x :X window 模式 cmatrix-V : 显示版本信息 cmatrix-u : 刷新频率，0-9，也就是滚动的快慢 cmatrix-C : 显示的颜色，支持 green（默认）,red,blue,white,yellow,cyan, magenta and black 例如：使用红色 cmatrix -b -C red 使用蓝色 cmatrix -b -C blue 等等 ........ 主义：在运行状态下，使用 0-9 数字，可以改变运行速度快慢。 开启你的装逼之路把，骚年！ \",\"date\":\"2018-10-23\",\"objectID\":\"/posts/termux1/:8:0\",\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"title\":\"termux 基本使用教程\",\"uri\":\"/posts/termux1/#termux-更多常用有趣命令适用于-linux\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。 \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:0:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"21 安装 Node.js font-spider 是 Node.js 的一个模块，所以需要安装 Node.js。 \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:1:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#安装-nodejs\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"22 安装字蛛 输入命令 npm install font-spider -g \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:2:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#安装字蛛\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"23 编写 HTML 新建一个 HTML 文件，引用字体文件，并使用自定义字体。如下： \\u0026lt;!DOCTYPE html\\u0026gt; \\u0026lt;html\\u0026gt; \\u0026lt;head\\u0026gt; \\u0026lt;meta charset=\\u0026#34;utf-8\\u0026#34;\\u0026gt; \\u0026lt;meta name=\\u0026#34;viewport\\u0026#34; content=\\u0026#34;width=device-width, initial-scale=1\\u0026#34;\\u0026gt; \\u0026lt;title\\u0026gt;\\u0026lt;/title\\u0026gt; \\u0026lt;style type=\\u0026#34;text/css\\u0026#34;\\u0026gt; @font-face { font-family: MMT; src: url(\\u0026#39;MMT_579767_SOAJ0.ttf\\u0026#39;); } body { font-family: MMT; } \\u0026lt;/style\\u0026gt; \\u0026lt;/head\\u0026gt; \\u0026lt;body\\u0026gt; 这里写要压缩的文字，吧啦吧啦…… \\u0026lt;/body\\u0026gt; \\u0026lt;/html\\u0026gt; \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:3:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#编写-html\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"24 压缩字体 在当前目录下执行以下命令生成新的字体库： font-spider index.html 更新这篇文章时在 Mac 下执行的结果 写这篇文章时最开始在 Windows 下执行的结果 执行完后，它会把原来的字体文件移动到 .font-spider 文件夹，而 CSS 中引用的字体文件会被替换为新的压缩后的字体文件，这就是我们需要部署的字体文件。 下次执行只需要往 HTML 文件中添加新的文字，然后再执行 font-spider index.html 命令即可。 \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:4:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#压缩字体\"},{\"categories\":[\"Node.js\"],\"collections\":null,\"content\":\"25 参考 font-spider \",\"date\":\"2018-10-17\",\"objectID\":\"/posts/web-font/:5:0\",\"tags\":[\"Node.js\",\"字体压缩\"],\"title\":\"ttf 字体压缩\",\"uri\":\"/posts/web-font/#参考\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\" 在 Linux 上编译 c 语言文件。 \",\"date\":\"2018-10-15\",\"objectID\":\"/posts/linux-hello-c/:0:0\",\"tags\":[\"linux\",\"C\"],\"title\":\"linux 编程初体验\",\"uri\":\"/posts/linux-hello-c/#\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.13 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim) vim \",\"date\":\"2018-10-15\",\"objectID\":\"/posts/linux-hello-c/:0:1\",\"tags\":[\"linux\",\"C\"],\"title\":\"linux 编程初体验\",\"uri\":\"/posts/linux-hello-c/#打开-vim-编辑器\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.14 编辑文件 打开文件编辑器之后编辑文件 首先按Esc再:进入末行命令 再保存为 hello.c 文件后退出 : w hello.c : q 打开目录看看生成的文件 ls \",\"date\":\"2018-10-15\",\"objectID\":\"/posts/linux-hello-c/:0:2\",\"tags\":[\"linux\",\"C\"],\"title\":\"linux 编程初体验\",\"uri\":\"/posts/linux-hello-c/#编辑文件\"},{\"categories\":[\"OS\"],\"collections\":null,\"content\":\"0.15 编译生成可执行文件并执行 gcc hello.c -o hello ./hello 若权限不够则加可执行权限chmod +x hello \",\"date\":\"2018-10-15\",\"objectID\":\"/posts/linux-hello-c/:0:3\",\"tags\":[\"linux\",\"C\"],\"title\":\"linux 编程初体验\",\"uri\":\"/posts/linux-hello-c/#编译生成可执行文件并执行\"},{\"categories\":null,\"collections\":[\"project\"],\"content\":\" 提示 在线预览 \",\"date\":\"2018-10-12\",\"objectID\":\"/projects/font-mmt/:0:0\",\"tags\":[\"沐目体\"],\"title\":\"沐目体\",\"uri\":\"/projects/font-mmt/#\"},{\"categories\":null,\"collections\":[\"project\"],\"content\":\"预览 {{ message || '「沐目之，湘也」\\\\n 从下笔到停笔，从开始到结束，沐目体见证了我们稚嫩到成熟。\\\\n故事的开头往往极具温柔，但结局常常不尽人意。\\\\n那些忘不掉的人和事，岁月都已替我轻描淡写。' }} From playlist, Powered by mmt-netease. 点击展开更多 《富士山下》 《爱情转移》 前尘硬化像石头 阳光在身上流转 随缘地抛下便逃走 等所有业障被原谅 我绝不罕有 爱情不停站 往街里绕过一周 想开往地老天荒 我便化乌有 需要多勇敢 你还嫌不够 你不要失望 我把这陈年风褛 荡气回肠是为了 送赠你解咒 最美的平凡 \",\"date\":\"2018-10-12\",\"objectID\":\"/projects/font-mmt/:1:0\",\"tags\":[\"沐目体\"],\"title\":\"沐目体\",\"uri\":\"/projects/font-mmt/#预览\"},{\"categories\":null,\"collections\":[\"project\"],\"content\":\"下载 警告 沐目体 仅用于个人非商用！ \",\"date\":\"2018-10-12\",\"objectID\":\"/projects/font-mmt/:2:0\",\"tags\":[\"沐目体\"],\"title\":\"沐目体\",\"uri\":\"/projects/font-mmt/#下载\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"29 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。 未使用流水线 使用流水线 流水线周期为执行时间最长的一段。 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:1:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#概念\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"30 流水线计算公式 首先使用理论公式，没有答案用实践公式。 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:2:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#流水线计算公式\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"31 流水线吞吐率计算 流水线吞吐率是指单位时间内处理的任务的数量。 基本公式 最大吞吐率 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:3:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#流水线吞吐率计算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"32 流水线加速比 完成一批任务，不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。 公式：S=不使用流水线执行时间/使用流水线执行时间 流水线加速比越高越好，说明使用流水线的效果。 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:4:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#流水线加速比\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"33 流水线的效率 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:5:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#流水线的效率\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"34 例题 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:6:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#例题\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"35 其他 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:7:0\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#其他\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"35.1 主机 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:7:1\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#主机\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"35.2 CISC 和 RISC 类型 指令 寻址方式 实现方式 其他 CISC（复杂指令集） 数量多，使用频率差别大，可变长格式 支持多种 微程序控制技术（微码） 研制周期长 RISC（精简指令集） 数量少，使用频率接近，定长格式，大部分为单周期指令，操作寄存器，只有 Load/Store 操作内存 支持方式少 增加了通用寄存器；硬布线逻辑控制为主；适合采用流水线 优化编码，有效支持高级语言 \",\"date\":\"2018-10-09\",\"objectID\":\"/posts/liushuixian/:7:2\",\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"title\":\"流水线\",\"uri\":\"/posts/liushuixian/#cisc-和-risc\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制） 原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 \",\"date\":\"2018-10-08\",\"objectID\":\"/posts/data/:0:1\",\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"title\":\"计算机数据\",\"uri\":\"/posts/data/#数据的表示\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。 \",\"date\":\"2018-10-08\",\"objectID\":\"/posts/data/:0:2\",\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"title\":\"计算机数据\",\"uri\":\"/posts/data/#数据表示范围\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.3 浮点数运算 对阶（小阶对大阶）+ 尾数计算（科学计数法）+ 结果规格化（科学技术法） \",\"date\":\"2018-10-08\",\"objectID\":\"/posts/data/:0:3\",\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"title\":\"计算机数据\",\"uri\":\"/posts/data/#浮点数运算\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js 如何给 Web 页面增加夜间模式功能？其实所谓的夜间模式就是在页面上增加一个透明的遮罩层，但是遮罩层会挡住页面元素，解决方法是 添加 DIV，给 DIV 的 outline 属性一个很大的 outline-width 值，用 outline 的边框作为遮罩，这样既能正常点击页面元素，又能达到夜间模式的效果。 \",\"date\":\"2018-09-27\",\"objectID\":\"/posts/night/:0:0\",\"tags\":[\"JavaScript\"],\"title\":\"网页夜间效果\",\"uri\":\"/posts/night/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.17 css 部分 \\u0026lt;style\\u0026gt; .cover{ position:fixed; top: 0px; left: 0px; outline:5000px solid rgba(0, 0, 0, 0);//初始亮度 z-index: 99999; } \\u0026lt;/style\\u0026gt; \",\"date\":\"2018-09-27\",\"objectID\":\"/posts/night/:0:1\",\"tags\":[\"JavaScript\"],\"title\":\"网页夜间效果\",\"uri\":\"/posts/night/#css-部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.18 js 部分 \\u0026lt;script\\u0026gt; var brightness; //显示遮罩 function cover(brightness) { if (typeof(div) == \\u0026#39;undefined\\u0026#39;) { div = document.createElement(\\u0026#39;div\\u0026#39;); div.setAttribute(\\u0026#39;style\\u0026#39;, \\u0026#39;position:fixed;top:0;left:0;outline:5000px solid;z-index:99999;\\u0026#39;); document.body.appendChild(div); } else { div.style.display = \\u0026#39;\\u0026#39;; } div.style.outlineColor = \\u0026#39;rgba(0,0,0,\\u0026#39; + brightness + \\u0026#39;)\\u0026#39;; } //事件监听 window.addEventListener(\\u0026#39;keydown\\u0026#39;, function(e) { if (e.altKey \\u0026amp;\\u0026amp; e.keyCode == 90) { cover(brightness = 0.3); } if (e.altKey \\u0026amp;\\u0026amp; e.keyCode == 88) { cover(brightness = 0); } if (e.altKey \\u0026amp;\\u0026amp; e.keyCode == 38) { if (brightness - 0.05 \\u0026gt; 0.05) cover(brightness -= 0.05); } if (e.altKey \\u0026amp;\\u0026amp; e.keyCode == 40) { if (brightness + 0.05 \\u0026lt; 0.95) cover(brightness += 0.05); } }, false); \\u0026lt;/script\\u0026gt; \",\"date\":\"2018-09-27\",\"objectID\":\"/posts/night/:0:2\",\"tags\":[\"JavaScript\"],\"title\":\"网页夜间效果\",\"uri\":\"/posts/night/#js-部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.19 html 部分 \\u0026lt;div class=\\u0026#34;cover\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt; \",\"date\":\"2018-09-27\",\"objectID\":\"/posts/night/:0:3\",\"tags\":[\"JavaScript\"],\"title\":\"网页夜间效果\",\"uri\":\"/posts/night/#html-部分\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"0.20 使用 Alt+Z: 打开夜间模式 Alt+X: 关闭 Alt+↑: 增加亮度 Alt+↓: 降低亮度 \",\"date\":\"2018-09-27\",\"objectID\":\"/posts/night/:0:4\",\"tags\":[\"JavaScript\"],\"title\":\"网页夜间效果\",\"uri\":\"/posts/night/#使用\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。 \",\"date\":\"2018-09-26\",\"objectID\":\"/posts/crash-cheat/:0:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"uri\":\"/posts/crash-cheat/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"9 创建一个 js 文件 我们先创建一个 js 文件，我们用记事本就好了，然后改个文件名，不妨就叫crash-cheat.js吧，你们可以随意！ 然后把文件放到 source 文件夹的 js 文件夹的 src 里面。（我用的 next 主题，放这里统一存放，其他主题随意） 崩溃欺骗 (Jquery 版） var OriginTitle = document.title; var titleTime; document.addEventListener(\\u0026#39;visibilitychange\\u0026#39;, function () { if (document.hidden) { $(\\u0026#39;[rel=\\u0026#34;icon\\u0026#34;]\\u0026#39;).attr(\\u0026#39;href\\u0026#39;, \\u0026#39;https://i.loli.net/2018/08/24/5b7fcb00ed9bf.png\\u0026#39;); document.title = \\u0026#39;怎么回事╭(°A°`)╮\\u0026#39;; clearTimeout(titleTime); } else { $(\\u0026#34;[rel=\\u0026#39;icon\\u0026#39;]\\u0026#34;).attr(\\u0026#39;href\\u0026#39;, \\u0026#39;https://i.loli.net/2018/09/25/5baa4f21661e7.png\\u0026#39;); document.title = \\u0026#39;小老弟 (ฅ\\u0026gt;ω\\u0026lt;*ฅ)\\u0026#39;; titleTime = setTimeout(function () { document.title = OriginTitle; $(\\u0026#34;[rel=\\u0026#39;icon\\u0026#39;]\\u0026#34;).attr(\\u0026#39;href\\u0026#39;, \\u0026#39;/images/favicon-32x32-next.png\\u0026#39;); }, 2000); } }); 崩溃欺骗 (JS 版） var oldTitle = document.title; var titleTime; //標題恢復計時器 document.addEventListener(\\u0026#39;visibilitychange\\u0026#39;, function () { if (document.hidden) { document.querySelector(\\u0026#34;[rel=\\u0026#39;icon\\u0026#39;]\\u0026#34;).setAttribute(\\u0026#39;href\\u0026#39;, \\u0026#39;/images/icons/favicon-32.png\\u0026#39;); document.title = \\u0026#39;網站崩潰了！\\u0026#39;; clearTimeout(titleTime); } else { document.title = \\u0026#39;其實並沒有！\\u0026#39;; document.querySelector(\\u0026#34;[rel=\\u0026#39;icon\\u0026#39;]\\u0026#34;).setAttribute(\\u0026#39;href\\u0026#39;, \\u0026#39;/images/icons/crash.png\\u0026#39;); titleTime = setTimeout(function () { document.title = oldTitle; }, 1000); } }); \",\"date\":\"2018-09-26\",\"objectID\":\"/posts/crash-cheat/:1:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"uri\":\"/posts/crash-cheat/#创建一个-js-文件\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"10 使用 在hexo\\\\themes\\\\hexo-theme-next\\\\layout文件路径找到layout.swig文件，其他有些主题用的是.ejs后缀，一样的。 然后打开文件，在\\u0026lt;body\\u0026gt;\\u0026lt;/body\\u0026gt;之间加入调用刚刚的 js。 \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;/js/src/crash-cheat.js\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; 重新部署博客就可以了。 \",\"date\":\"2018-09-26\",\"objectID\":\"/posts/crash-cheat/:2:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"uri\":\"/posts/crash-cheat/#使用\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.21 下载 git wget https://github.com/git/git/archive/v2.14.1.zip \",\"date\":\"2018-09-22\",\"objectID\":\"/posts/linux-git/:0:1\",\"tags\":[\"Git\",\"linux\"],\"title\":\"linux/centos 下的安装 git\",\"uri\":\"/posts/linux-git/#下载-git\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.22 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker \",\"date\":\"2018-09-22\",\"objectID\":\"/posts/linux-git/:0:2\",\"tags\":[\"Git\",\"linux\"],\"title\":\"linux/centos 下的安装 git\",\"uri\":\"/posts/linux-git/#安装依赖\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.23 解压 git unzip v2.14.1.zip 注： unzip 命令用不了，具体步骤如下： #yum list | grep zip/unzip #yum install zip #yum install unzip 基本完成，如果在编译的时候出现错误：gcc : error trying to exec 'cc1plus': execvp : No sunch file or directory 可以用gcc -v/g++ -v 来查看 gcc 版本，会发现没有安装。安装如下： #yum list | grep gcc #yum install gcc-c++ #yum install unzip \",\"date\":\"2018-09-22\",\"objectID\":\"/posts/linux-git/:0:3\",\"tags\":[\"Git\",\"linux\"],\"title\":\"linux/centos 下的安装 git\",\"uri\":\"/posts/linux-git/#解压-git\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.24 将 git 安装到/usr/local 上 先进入 git 文件夹 编译 安装 cd git-2.14.1 make prefix=/usr/local all make prefix=/usr/local install \",\"date\":\"2018-09-22\",\"objectID\":\"/posts/linux-git/:0:4\",\"tags\":[\"Git\",\"linux\"],\"title\":\"linux/centos 下的安装 git\",\"uri\":\"/posts/linux-git/#将-git-安装到usrlocal-上\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"0.25 验证是否安装完成 git --version \\u0026hellip; \",\"date\":\"2018-09-22\",\"objectID\":\"/posts/linux-git/:0:5\",\"tags\":[\"Git\",\"linux\"],\"title\":\"linux/centos 下的安装 git\",\"uri\":\"/posts/linux-git/#验证是否安装完成\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" 手机便签里保存的一段话，也记不得在哪看到的了。 每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。 什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。 人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。 自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。 我从不担心我努力了不优秀，只担心优秀的人都比我更努力。 决定你高度的是你对自己的要求。 以前的我，常常担心、常常犹豫，可现在我发现，人生的每一个阶段，都需要我们有一种能力同一时间完成很多重要的事情。 学习的时候，我们要谈谈恋爱。工作的时候，我们要担心家庭。所以，这是一种平衡的能力。 相信我，你做得到。因为，那么那么多学长学姐都走过来了，所以不用怕不用怕，你从来都不是一个人。 不要抱怨，抱怨永远只能显示你没本事。因为如果你有本事，就可以改变现状，而不只是忍受。 既然改变不了，又不够走开，那么就沉默地接受现实。 隐忍，是我们抵抗世界的力量，当你拥有，你才有资格自由。 我们做的每一个决定，都是由自己来买单。 而当你可以把自己不喜欢的东西都做好的时候，相信你一定可以把自己喜欢的东西做的更好！ 努力和效果之间，永远有这样一段距离。成功和失败的唯一区别是，你能不能坚持挺过这段无法估计的距离。 你可以试试？ 坚持做一件事情，坚持下去。不管它是什么。 选择本身，就是放弃另一种跋涉的可能。尝试倾听自己内心的声音，而不是外在的掌声。 尝试选择适合自己的，而不是别人眼里最好的。尝试决定我们的决定，不是因为选项表面的光鲜亮丽。 所以，每当我们每做一个选择的时候，总记得兑现心中的对自己的承诺。 不要想得到一切，对生活对自己都慷慨一些。 \",\"date\":\"2018-09-21\",\"objectID\":\"/posts/mood/:0:0\",\"tags\":[\"随笔\"],\"title\":\"每一个优秀的人，都有一段沉默的时光\",\"uri\":\"/posts/mood/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"Vim 速查表 - 帮你提高 N 倍效率 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:0:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"61 进入 vim 命令 描述 vim filename 打开或新建文件，并将光标置于第一行首 vim +n filename 打开文件，并将光标置于第 n 行首 vim + filename 打开文件，并将光标置于最后一行首 vim +/pattern filename 打开文件，并将光标置于第一个与 pattern 匹配的串处 vim -r filename 在上次正用 vim 编辑时发生系统崩溃，恢复 filename vim filename….filename 打开多个文件，依次编辑 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:1:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#进入-vim\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"62 vim 配置 命令 描述 all 列出所有选项设置情况 term 设置终端类型 ignorance 在搜索中忽略大小写 list 显示制表位 (Ctrl+I) 和行尾标志（$) number 显示行号 report 显示由面向行的命令修改过的数目 terse 显示简短的警告信息 warn 在转到别的文件时若没保存当前文件则显示 NO write 信息 nomagic 允许在搜索模式中，使用前面不带“\\\\”的特殊字符 nowrapscan 禁止 vi 在搜索到达文件两端时，又从另一端开始 mesg 允许 vi 显示其他用户用 write 写到自己终端上的信息 :set number / set nonumber 显示/不显示行号 :set ruler /set noruler 显示/不显示标尺 :set hlsearch 高亮显示查找到的单词 :set nohlsearch 关闭高亮显示 :syntax on 语法高亮 :set nu 显示行号 :set tabstop=8 设置 tab 大小，8 为最常用最普遍的设置 :set softtabstop=8 4:4 个空格，8: 正常的制表符，12: 一个制表符 4 个空格，16: 两个制表符 :set autoindent 自动缩进 :set cindent C 语言格式里面的自动缩进 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:2:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#vim-配置\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"63 移动光标 命令 描述 k nk 上 向上移动 n 行 j nj 下 向下移动 n 行 h nh 左 向左移动 n 行 l nl 右 向右移动 n 行 Space 光标右移一个字符 Backspace 光标左移一个字符 Enter 光标下移一行 w/W 光标右移一个字至字首 b/B 光标左移一个字至字首 e 或 E 光标右移一个字至字尾 ) 光标移至句尾 ( 光标移至句首 } 光标移至段落开头 { 光标移至段落结尾 n$ 光标移至第 n 行尾 H 光标移至屏幕顶行 M 光标移至屏幕中间行 L 光标移至屏幕最后行 0 （注意是数字零）光标移至当前行首 ^ 移动光标到行首第一个非空字符上去 $ 光标移至当前行尾 gg 移到第一行 G 移到最后一行 f 移动光标到当前行的字符 a 上 F 相反 % 移动到与制匹配的括号上去（），{}，[]，\\u0026lt;\\u0026gt;等 nG 移动到第 n 行上 G 到最后一行 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:3:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#移动光标\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"64 屏幕滚动 命令 描述 Ctrl+u 向文件首翻半屏 Ctrl+d 向文件尾翻半屏 Ctrl+f 向文件尾翻一屏 Ctrl ＋ b 向文件首翻一屏 nz 将第 n 行滚至屏幕顶部，不指定 n 时将当前行滚至屏幕顶部 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:4:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#屏幕滚动\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"65 插入文本类 命令 描述 i 在光标前 I 在当前行首 a 光标后 A 在当前行尾 o 在当前行之下新开一行 O 在当前行之上新开一行 r 替换当前字符 R 替换当前字符及其后的字符，直至按 ESC 键 s 从当前光标位置处开始，以输入的文本替代指定数目的字符 S 删除指定数目的行，并以所输入文本代替之 ncw/nCW 修改指定数目的字 nCC 修改指定数目的行 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:5:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#插入文本类\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"66 删除命令 命令 描述 x/X 删除一个字符，x 删除光标后的，而 X 删除光标前的 dw 删除一个单词（删除光标位置到下一个单词开始的位置） dnw 删除 n 个单词 dne 也可，只是删除到单词尾 do 删至行首 d$ 删至行尾 dd 删除一行 ndd 删除当前行及其后 n-1 行 dnl 向右删除 n 个字母 dnh 向左删除 n 个字母 dnj 向下删除 n 行，当前行 + 其上 n 行 dnk 向上删除 n 行，当期行 + 其下 n 行 cnw[word] 将 n 个 word 改变为 word C$ 改变到行尾 cc 改变整行 shift+j 删除行尾的换行符，下一行接上来了 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:6:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#删除命令\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"67 复制粘贴 命令 描述 p 粘贴用 x 或 d 删除的文本 ynw 复制 n 个单词 yy 复制一行 ynl 复制 n 个字符 y$ 复制当前光标至行尾处 nyy 拷贝 n 行 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:7:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#复制粘贴\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"68 撤销 命令 描述 u 撤销前一次的操作 shif+u(U) 撤销对该行的所有操作 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:8:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#撤销\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"69 搜索及替换 命令 描述 /pattern 从光标开始处向文件尾搜索 pattern ?pattern 从光标开始处向文件首搜索 pattern n 在同一方向重复上一次搜索命令 N 在反方向上重复上一次搜索命令 cw newword 替换为 newword n 继续查找 . 执行替换 :s/p1/p2/g 将当前行中所有 p1 均用 p2 替代，g 表示执行 用 c 表示需要确认 :n1,n2 s/p1/p2/g 将第 n1 至 n2 行中所有 p1 均用 p2 替代 :g/p1/s//p2/g 将文件中所有 p1 均用 p2 替换 :1,$ s/string1/string2/g 在全文中将 string1 替换为 string2 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:9:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#搜索及替换\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"70 书签 命令 描述 m[a-z] 在文中做标记，标记号可为 a-z 的 26 个字母 `a 移动到标记 a 处 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:10:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#书签\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"71 visual 模式 命令 描述 v 进入 visual 模式 V 进入行的 visual 模式 ctrl+v 进如块操作模式用 o 和 O 改变选择的边的大小 在所有行插入相同的内容如 include\\u0026lt; 将光标移到开始插入的位置，按 CTRL+V 进入 VISUAL 模式，选择好模块后按 I（shift+i)，后插入要插入的文本，按 [ESC] 完成 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:11:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#visual-模式\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"72 行方式命令 命令 描述 :n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下 :n1,n2 m n3 将 n1 行到 n2 行之间的内容移至到第 n3 行下 :n1,n2 d 将 n1 行到 n2 行之间的内容删除 :n1,n2 w!command 将文件中 n1 行至 n2 行的内容作为 command 的输入并执行之 若不指定 n1，n2，则表示将整个文件内容作为 command 的输入 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:12:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#行方式命令\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"73 宏 命令 描述 q[a-z] 开始记录但前开始的操作为宏，名称可为【a-z】，然后用 q 终止录制宏 reg 显示当前定义的所有的宏，用@[a-z] 来在当前光标处执行宏 [a-z] \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:13:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#宏\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"74 窗口操作 命令 描述 :split 分割一个窗口 :split file.c 为另一个文件 file.c 分隔窗口 :nsplit file.c 为另一个文件 file.c 分隔窗口，并指定其行数 ctrl ＋ w 在窗口中切换 :close 关闭当前窗口 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:14:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#窗口操作\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"75 文件及其他 命令 描述 :q 退出 vi :q! 不保存文件并退出 vi :e filename 打开文件 filename 进行编辑 :e! 放弃修改文件内容，重新载入该文件编辑 :w 保存当前文件 :wq 存盘退出 :ZZ 保存当前文档并退出 VIM :!command 执行 shell 命令 command :r!command 将命令 command 的输出结果放到当前行 :n1,n2 write temp.c :read file.c 将文件 file.c 的内容插入到当前光标所在的下面 \",\"date\":\"2018-08-31\",\"objectID\":\"/posts/vim/:15:0\",\"tags\":[\"vim\",\"他山之石\"],\"title\":\"Vim 速查表\",\"uri\":\"/posts/vim/#文件及其他\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！ 最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code) \",\"date\":\"2018-08-30\",\"objectID\":\"/posts/hexo-wordcount/:0:0\",\"tags\":[\"Hexo\",\"字数统计\"],\"title\":\"hexo next 主题添加字数统计（2018）\",\"uri\":\"/posts/hexo-wordcount/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"13 安装 wordcount github 如果没有安装 hexo-wordcount 插件，先安装该插件： npm i --save hexo-wordcount # Node 版本 7.6.0 之前，请安装 2.x 版本 (Node.js v7.6.0 and previous) npm install hexo-wordcount@2 --save \",\"date\":\"2018-08-30\",\"objectID\":\"/posts/hexo-wordcount/:1:0\",\"tags\":[\"Hexo\",\"字数统计\"],\"title\":\"hexo next 主题添加字数统计（2018）\",\"uri\":\"/posts/hexo-wordcount/#安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"14 post 添加 打开hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_macro路径下的 post.swig 文件，既然没有字数统计那么我们就加一个，简单暴力地直接在阅读数后面加上一条就好了，在文件类搜索关键词busuanzi, 我用的是不蒜子，如果用的了 leancloud 的搜 leancloud 就好了，其他类似。找到这段代码后 {% if not is_index and theme.busuanzi_count.enable and theme.busuanzi_count.post_views %} \\u0026lt;span class=\\u0026#34;post-meta-divider\\u0026#34;\\u0026gt;|\\u0026lt;/span\\u0026gt; \\u0026lt;span class=\\u0026#34;post-meta-item-icon\\u0026#34; {% if not theme.post_meta.item_text %} title=\\u0026#34;{{ __(\\u0026#39;post.views\\u0026#39;) }}\\u0026#34; {% endif %}\\u0026gt; \\u0026lt;i class=\\u0026#34;fa fa-{{ theme.busuanzi_count.post_views_icon }}\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt; {% if theme.post_meta.item_text %} {{__(\\u0026#39;post.views\\u0026#39;) + __(\\u0026#39;symbol.colon\\u0026#39;) }} {% endif %} \\u0026lt;span class=\\u0026#34;busuanzi-value\\u0026#34; id=\\u0026#34;busuanzi_value_page_pv\\u0026#34; \\u0026gt;\\u0026lt;/span\\u0026gt; \\u0026lt;/span\\u0026gt; {% endif %} 在endif上面，即本文代码块那个空行处添加以下代码 \\u0026lt;span class=\\u0026#34;post-meta-divider\\u0026#34;\\u0026gt;|\\u0026lt;/span\\u0026gt; \\u0026lt;span title=\\u0026#34;{{ __(\\u0026#39;post.wordcount\\u0026#39;) }}\\u0026#34;\\u0026gt;\\u0026lt;span class=\\u0026#34;post-meta-item-icon\\u0026#34;\\u0026gt;\\u0026lt;i class=\\u0026#34;fa fa-file-word-o\\u0026#34;\\u0026gt;\\u0026lt;/i\\u0026gt;\\u0026lt;/span\\u0026gt;字数： {{ wordcount(post.content) }}\\u0026lt;/span\\u0026gt; \",\"date\":\"2018-08-30\",\"objectID\":\"/posts/hexo-wordcount/:2:0\",\"tags\":[\"Hexo\",\"字数统计\"],\"title\":\"hexo next 主题添加字数统计（2018）\",\"uri\":\"/posts/hexo-wordcount/#post-添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"15 全站添加 打开hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials路径下 footer.swig 文件，在你喜欢的位置添加以下代码 \\u0026lt;div class=\\u0026#34;theme-info\\u0026#34;\\u0026gt; \\u0026lt;div class=\\u0026#34;powered-by\\u0026#34;\\u0026gt;\\u0026lt;/div\\u0026gt; \\u0026lt;span class=\\u0026#34;post-count\\u0026#34;\\u0026gt;全站共 {{ totalcount(site) }} 字\\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; \",\"date\":\"2018-08-30\",\"objectID\":\"/posts/hexo-wordcount/:3:0\",\"tags\":[\"Hexo\",\"字数统计\"],\"title\":\"hexo next 主题添加字数统计（2018）\",\"uri\":\"/posts/hexo-wordcount/#全站添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。 现在做一下记录，防止以后出错用。 错误如下 Connection reset by 13.229.188.59 port 22 fatal: sha1 file \\u0026#39;\\u0026lt;stdout\\u0026gt;\\u0026#39; write error: Broken pipe fatal: The remote end hung up unexpectedly FATAL Something\\u0026#39;s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html Error: Connection reset by 13.229.188.59 port 22 fatal: sha1 file \\u0026#39;\\u0026lt;stdout\\u0026gt;\\u0026#39; write error: Broken pipe fatal: The remote end hung up unexpectedly at ChildProcess.\\u0026lt;anonymous\\u0026gt; (H:\\\\Hexo\\\\node_modules\\\\hexo-util\\\\lib\\\\spawn.js:37:17) at emitTwo (events.js:106:13) at ChildProcess.emit (events.js:191:7) at ChildProcess.cp.emit (H:\\\\Hexo\\\\node_modules\\\\cross-spawn\\\\lib\\\\enoent.js:40:29) at maybeClose (internal/child_process.js:850:16) at Socket.\\u0026lt;anonymous\\u0026gt; (internal/child_process.js:323:11) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at Pipe._handle.close [as _onclose] (net.js:492:12) ... 确保 ssh 正常，hexo-deploy-git 插件正常的情况下删除。deploy_git 文件夹就好了。 最后吐槽一下，这个鬼错误，搞我一晚上醉了。我又打算重装了的。/吐血 \",\"date\":\"2018-08-21\",\"objectID\":\"/posts/hexo-d-error/:0:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo d 出错\",\"uri\":\"/posts/hexo-d-error/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载） 但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下： \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:0:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"21 修改站点配置文件，主要修改 subtitle subtitle: 不怕万人阻挡，只怕自己投降。W 你如何回忆，决定你是一个怎样的人！W 这是一个句子。W 这是另一个句子。W 这些句子你们不要搞一样的不然怎么叫个性签名-_-！。 句子与句子之间以 W 分割，后续需要根据该标志位去拆分句子组。 小伙伴们博主这里只是提供一个思路，不要和我用一模一样的啊，不然撞了多尴尬呀 \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:1:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#修改站点配置文件主要修改-subtitle\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"22 修改 header\\\\index.swig 修改 themes\\\\next\\\\layout_partials\\\\header 下面的 index.swig 文件 在最开头添加如下代码： （这里用的原博的 js) \\u0026lt;script\\u0026gt; function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } function setSidebarMarginTop (headerOffset) { return $(\\u0026#39;#sidebar\\u0026#39;).css({ \\u0026#39;margin-top\\u0026#39;: headerOffset }); } function getHeaderOffset () { return $(\\u0026#39;.header-inner\\u0026#39;).height() + CONFIG.sidebar.offset; } window.onload=function(){ var subtitle = \\u0026#34;{{config.subtitle}}\\u0026#34;; var mytitle = subtitle.split(\\u0026#34;W\\u0026#34;); var max = mytitle.length-1; var index = GetRandomNum(0,max); var text = mytitle[index]; $(\\u0026#34;#helloTitle\\u0026#34;).html(text); var headOffset = getHeaderOffset(); setSidebarMarginTop(headOffset); //动态 subtitle 设置 } \\u0026lt;/script\\u0026gt; \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:2:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#修改-headerindexswig\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"23 修改 brand.swig 找到 {% if subtitle %} {% if theme.seo %} ... {% else %} ... {% endif %} {% endif %} 把这一段，把原来的修改成以下代码即可 ps: title和subtitle的字体还有颜色也可以在这个文件修改，即使用style标签，按个人爱好修改也可不要。 {% if subtitle %} {% if theme.seo %} \\u0026lt;p class=\\u0026#34;site-subtitle\\u0026#34; id=\\u0026#34;helloTitle\\u0026#34; itemprop=\\u0026#34;description\\u0026#34;\\u0026gt;\\u0026lt;/p\\u0026gt; {% else %} \\u0026lt;p id=\\u0026#34;helloTitle\\u0026#34; class=\\u0026#34;site-subtitle\\u0026#34;\\u0026gt;\\u0026lt;/p\\u0026gt; {% endif %} {% endif %} 之后部署后每次刷新就可以看到不同的 subtitle 了，开心 😀 \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:3:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#修改-brandswig\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"24 今日诗词 今日诗词 \\u0026lt;span id=\\u0026#34;jinrishici-sentence\\u0026#34;\\u0026gt;正在加载今日诗词 ....\\u0026lt;/span\\u0026gt; \\u0026lt;script src=\\u0026#34;https://sdk.jinrishici.com/v2/browser/jinrishici.js\\u0026#34; charset=\\u0026#34;utf-8\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; 正在加载今日诗词 .... \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:4:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#今日诗词\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25 api 调用 直接 js 调用 api 简单快速 2021/9/30 更新 一言 api-参数详见 已经挂了 \\u0026lt;div\\u0026gt; \\u0026lt;script type=\\u0026#34;text/javascript\\u0026#34; src=\\u0026#34;https://api.imjad.cn/hitokoto/?cat=\\u0026amp;charset=utf-8\\u0026amp;length=\\u0026amp;encode=js\\u0026amp;fun=sync\\u0026amp;source=\\u0026#34;\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;div id=\\u0026#34;hitokoto\\u0026#34;\\u0026gt; \\u0026lt;script\\u0026gt; hitokoto(); \\u0026lt;/script\\u0026gt; \\u0026lt;/div\\u0026gt; \\u0026lt;/div\\u0026gt; \",\"date\":\"2018-08-20\",\"objectID\":\"/posts/dongtaisub/:5:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"uri\":\"/posts/dongtaisub/#api-调用\"},{\"categories\":[\"瞎折腾\"],\"collections\":null,\"content\":\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。 大一在机房拍的图 #include \\u0026lt;stdio.h\\u0026gt; #include \\u0026lt;math.h\\u0026gt; #include \\u0026lt;windows.h\\u0026gt; #include \\u0026lt;tchar.h\\u0026gt; float f(float x, float y, float z) { float a = x * x + 9.0f / 4.0f * y * y + z * z - 1; return a * a * a - x * x * z * z * z - 9.0f / 80.0f * y * y * z * z * z; } float h(float x, float z) { for (float y = 1.0f; y \\u0026gt;= 0.0f; y -= 0.001f) if (f(x, y, z) \\u0026lt;= 0.0f) return y; return 0.0f; } int main() { HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE); _TCHAR buffer[25][80] = { _T(\\u0026#39; \\u0026#39;) }; _TCHAR ramp[] = _T(\\u0026#34;.:-=+*#%@\\u0026#34;); for (float t = 0.0f;; t += 0.1f) { int sy = 0; float s = sinf(t); float a = s * s * s * s * 0.2f; for (float z = 1.3f; z \\u0026gt; -1.2f; z -= 0.1f) { _TCHAR* p = \\u0026amp;buffer[sy++][0]; float tz = z * (1.2f - a); for (float x = -1.5f; x \\u0026lt; 1.5f; x += 0.05f) { float tx = x * (1.2f + a); float v = f(tx, 0.0f, tz); if (v \\u0026lt;= 0.0f) { float y0 = h(tx, tz); float ny = 0.01f; float nx = h(tx + ny, tz) - y0; float nz = h(tx, tz + ny) - y0; float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz); float d = (nx + ny - nz) * nd * 0.5f + 0.5f; *p++ = ramp[(int)(d * 5.0f)]; } else *p++ = \\u0026#39; \\u0026#39;; } } for (sy = 0; sy \\u0026lt; 25; sy++) { COORD coord = { 0, sy }; SetConsoleCursorPosition(o, coord); WriteConsole(o, buffer[sy], 79, NULL, 0); } Sleep(33); } } exe 文件下载 \",\"date\":\"2018-08-15\",\"objectID\":\"/posts/heart/:0:0\",\"tags\":[\"C\"],\"title\":\"“高逼格”C 语言画心\",\"uri\":\"/posts/heart/#\"},{\"categories\":[\"Git\"],\"collections\":null,\"content\":\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。 fatal: Unable to create \\u0026#39;/xxx/xx/.git/index.lock\\u0026#39;: File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue. 原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。 有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。 \",\"date\":\"2018-08-14\",\"objectID\":\"/posts/git-index-lock/:0:0\",\"tags\":[\"Git\"],\"title\":\"git index.lock\",\"uri\":\"/posts/git-index-lock/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果** \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:0:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"21 准备 Termux 文件管理器（RE,MT 文件管理器等高级一点的） \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:1:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#准备\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"22 开始 打开 Termux，输入$pkg install nodejs安装 Nodejs，在输入pkg install git安装 Git。 过程会出现一个提示，输入 y 回车确认即可。 按照 Hexo 官网提示安装 Hexo。 npm install hexo-cli -g hexo init blog cd blog 注意 ssh 配置先安装：pkg install openssh 然后按照基本操作配置 Hexo，GitHub 或者 gitee,coding 等连上，部署测试一次。 安装部署插件npm install hexo-deployer-git --save，部署hexo d -g 没有问题的话进行下一步。 \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:2:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#开始\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"23 编辑 写文章的话创建 md 文件命令和电脑上一样，文件管理器打开/data/data/com.termux/files/home/i/source/_posts/ 编辑文章 md 文件。这种方式需要 Root。 没有 Root 的话可以使用 Vim，网上很多教程。但是这种方式相对来说更麻烦。 \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:3:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#编辑\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"24 参考 termux 高级终端安装使用配置教程 使用 Termux 在手机上运行 linux 黑科技 hexo 搭建过程 超详细教程 \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:4:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#参考\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25 效果图（未连接 github，coding 等） 效果图 1 效果图 2 效果图 3 效果图 4 \",\"date\":\"2018-08-11\",\"objectID\":\"/posts/termux/:5:0\",\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"title\":\"在 Android 上搭建 hexo 博客\",\"uri\":\"/posts/termux/#效果图未连接-githubcoding-等\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"链接：https://www.nowcoder.com/acm/contest/157/A 来源：牛客网 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:0:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"29 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:1:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#题目描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"30 输入描述 第一行有两个正整数 n，m。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:2:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#输入描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"31 输出描述 第一行一个整数，表示在 m 种石子中取出 n 个的排列方案数模 1000000007 后的值。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:3:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#输出描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"32 示例 1 输入 1 1 输出 1 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:4:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#示例-1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"33 示例 2 输入 2 3 输出 6 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:5:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#示例-2\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"34 示例 3 输入 3 3 输出 12 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:6:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#示例-3\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"35 备注 对于 100% 的测试数据： 1 ≤ n, m ≤ 1000 数据量较大，注意使用更快的输入输出方式。 水题。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ long long n,m,ans; scanf(\\u0026#34;%lld%lld\\u0026#34;,\\u0026amp;n,\\u0026amp;m); ans=m; for(int i=1;i\\u0026lt;n;i++) ans=(ans*(m-1))%1000000007; printf(\\u0026#34;%lld\\\\n\\u0026#34;,ans); return 0; } \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/nowcoder157a/:7:0\",\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"title\":\"石子阵列（组合数学）\",\"uri\":\"/posts/nowcoder157a/#备注\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m. What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition? \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:0:0\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"13 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10). \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:1:0\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14 Output Print a single integer — the minimal number of moves being a multiple of m. If there is no way he can climb satisfying condition print - 1 instead. \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:2:0\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15 Examples \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:0\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#examples\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.1 input1 10 2 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:1\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#input1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.2 output1 6 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:2\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#output1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.3 input2 3 5 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:3\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#input2\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.4 output2 -1 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:4\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#output2\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.5 Note For the first sample, Dreamoon could climb in 6 moves with following sequence of steps: {2, 2, 2, 2, 1, 1}. For the second sample, there are only three valid sequence of steps {2, 1}, {1, 2}, {1, 1, 1} with 2, 2, and 3 steps respectively. All these numbers are not multiples of 5. 有一个 n 级台阶，每次可以走一级或两级，问最少的步数是多少，且步数必须是 m 的倍数。 找一下数学公式就好了。 具体看代码。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int x,n,m; cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;m; if(n\\u0026lt;m){ cout\\u0026lt;\\u0026lt;-1\\u0026lt;\\u0026lt;endl; return 0; } if(n==m){ cout\\u0026lt;\\u0026lt;n\\u0026lt;\\u0026lt;endl; return 0; } if(n%2==0){ x=n/2%m; if(x==0) cout\\u0026lt;\\u0026lt;n/2\\u0026lt;\\u0026lt;endl; else cout\\u0026lt;\\u0026lt;n/2+m-x\\u0026lt;\\u0026lt;endl; }else if(n%2!=0){ x=(n/2+1)%m; if(x==0) cout\\u0026lt;\\u0026lt;n/2+1\\u0026lt;\\u0026lt;endl; else cout\\u0026lt;\\u0026lt;(n/2+1)+m-x\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476a/:3:5\",\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and Stairs\",\"uri\":\"/posts/codeforces476a/#note\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476b/:0:0\",\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and WiFi（组合数学）\",\"uri\":\"/posts/codeforces476b/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"13 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。 我一开始的想法是把（+1，-1）^n 看成和二项式定理一样的展开始式，只不过把乘法改为加法，然后得到公式 c(n,0)(n+(-1)0)+c(n,1)(n-1+(-1)1)+c(n,i)(n-i+(-1)i)+...+c(n,n)(n-n+(-1)n) 化简一下可知通项为c(n,i)(n-2*i) 然后我对第一个串求出位置 sum, 第二个串先求出已知位置 sum1，然后记录下？的个数，然后遍历找出展开式中某一项 n-2i+sum1==sum，这样 x 的系数就是可能出现位置相等的所有情况，用 (n-2i)/系数和就是概率了啊，可是为什么不对呢，本地调试，数据没问题，可是交到 cf 上第二组都过不了，烦亏我还觉得想到一个独辟的方法呢，过不了。 //cf 错误报告，思前恐后不晓得 why,wtf??? 先码着吧 Test: #2, time: 0 ms., memory: 0 KB, exit code: 0, checker exit code: 1, verdict: WRONG_ANSWER Input +-+- +-?? Output -0.000000000000 Answer 0.500000000000 Checker Log wrong answer 1st numbers differ - expected: \\u0026#39;0.5000000\\u0026#39;, found: \\u0026#39;-0.0000000\\u0026#39;, error = \\u0026#39;0.5000000\\u0026#39; \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476b/:1:0\",\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and WiFi（组合数学）\",\"uri\":\"/posts/codeforces476b/#题目大意\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14 错误代码 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int i,j,cnt=0; long long c[11][11],sum=0,sum1=0; for(i = 0; i \\u0026lt; 11; i++){//杨辉三角 c[i][0] = 1; c[i][i] = 1; for(j = 1; j \\u0026lt; i; j++) c[i][j] = c[i-1][j] + c[i-1][j-1]; } string a,b; cin\\u0026gt;\\u0026gt;a\\u0026gt;\\u0026gt;b; //cout\\u0026lt;\\u0026lt;a\\u0026lt;\\u0026lt;endl\\u0026lt;\\u0026lt;b\\u0026lt;\\u0026lt;endl; int len=a.length(); for(i=0;i\\u0026lt;len;i++) if(a[i]==\\u0026#39;+\\u0026#39;) sum+=1; else sum-=1; for(i=0;i\\u0026lt;b.length();i++){ if(b[i]==\\u0026#39;+\\u0026#39;) sum1+=1; else if(b[i]==\\u0026#39;-\\u0026#39;)sum1-=1; if(b[i]==\\u0026#39;?\\u0026#39;) cnt++; } if(sum==sum1\\u0026amp;\\u0026amp;cnt==0){ printf(\\u0026#34;1.000000000000\\\\n\\u0026#34;); return 0; } int flag=0; int x=0; for(j=0;j\\u0026lt;=cnt;j++) x+=c[cnt][j]; //cout\\u0026lt;\\u0026lt;x\\u0026lt;\\u0026lt;endl; for(i=0;i\\u0026lt;=cnt;i++) if(cnt-2*i+sum1==sum){ flag=1; long double y=c[cnt][i]*1.0/x; printf(\\u0026#34;%.12llf\\\\n\\u0026#34;,y); } if(!flag)printf(\\u0026#34;0.000000000000\\\\n\\u0026#34;); return 0; } 想不通，没办法只好换思路。 我先分别记下 a,b 串的\\u0026rsquo;+\\u0026rsquo;,\\u0026rsquo;-\\u0026rsquo;,\\u0026rsquo;?\\u0026lsquo;个数，然后后我们很容易知道，如要 a,b 位置相等，则加号和减号的数目，两串要相等，且 a 中的加号要比 b 中已知的加号要多，减号也要比 b 中已知的要多，否则打死都不会相等的，仔细比划一下就知道了。然后有 z 个‘?’，相当于有 z 个坑，让我们去填使得 a,b 相等。只能填 + 或-，设加号差等于 x-p, 所以概率就等于 c(z,x-p)/2^z。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476b/:2:0\",\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and WiFi（组合数学）\",\"uri\":\"/posts/codeforces476b/#错误代码\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15 AC 代码 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ string a,b; int x,y,z,p,q,c[11][11],i,j; for(i = 0; i \\u0026lt; 11; i++){ c[i][0] = 1; c[i][i] = 1; for(j = 1; j \\u0026lt; i; j++) c[i][j] = c[i-1][j] + c[i-1][j-1]; } cin\\u0026gt;\\u0026gt;a; cin\\u0026gt;\\u0026gt;b; x=y=z=p=q=0; for(i=0;i\\u0026lt;a.length();i++) if(a[i]==\\u0026#39;+\\u0026#39;) x++; else y++; for(i=0;i\\u0026lt;b.length();i++){ if(b[i]==\\u0026#39;+\\u0026#39;) p++; else if(b[i]==\\u0026#39;-\\u0026#39;) q++; else z++; } if(x==p\\u0026amp;\\u0026amp;z==0){ printf(\\u0026#34;1.000000000000\\\\n\\u0026#34;); return 0; } if(x-p\\u0026lt;0||y-q\\u0026lt;0) { printf(\\u0026#34;0.000000000000\\\\n\\u0026#34;); return 0; } x=x-p; printf(\\u0026#34;%0.12f\\u0026#34;,c[z][x]*1.0/(2\\u0026lt;\\u0026lt;(z-1))); return 0; } 几分钟写完后面的代码，心中一万头草泥马在奔腾。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/codeforces476b/:3:0\",\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"title\":\"Dreamoon and WiFi（组合数学）\",\"uri\":\"/posts/codeforces476b/#ac-代码\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"13 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:1:0\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#题意\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14 分析 对于解二元一次不定方程，容易想到利用扩展欧几里得求出一组可行解后找到通解，下面来介绍一下欧几里得以及扩展欧几里得。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:2:0\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#分析\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14.1 欧几里得 又名辗转相除法，是用来计算两个数的最大公约数，其中就是利用 gcd(a,b)=gcd(b,a mod b) 来求解。下证 gcd(a,b)=gcd(b,a mod b) 的正确性： 设 a,b 的一个公约数为 d 设 a mod b=r，则 a=kb+r(k 为整数），r=a-kb 因为 d|a,d|b 所以 d|a-kb, 即 d|r，而 r=a mod b 所以 d 为 b,a mod b 的公约数 又因为 d 也为 a,b 的公约数，所以（a,b) 和 (b,a mod b) 的公约数一样，所以最大公约数必然一样，得证。 代码描述： int gcd(int a,int b) { if (b==0) return a; return gcd(b,a%b); } \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:2:1\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#欧几里得\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14.2 扩展欧几里得 顾名思义，为上述欧几里得算法的扩展。欧几里得是用来求 a,b 的最大公约数，那么扩展欧几里得不仅能求出 a,b 的最大公约数，还能求出满足 ax+by=gcd(a,b) 的一组可行解。 求解过程中，扩展欧几里得比欧几里得多了一个赋值过程，具体证明如下： 设 ax1+by1=gcd(a,b),bx2+(a mod b)y2=gcd(b,a mod b) 因为由欧几里得算法可知，gcd(a,b)=gcd(b,a mod b) 所以 ax1+by1=bx2+(a mod b)y2 因为a mod b=a-(a div b)*b（div 为整除 所以有ax1+by1=bx2+(a-(a div b)*b)y2 将右边移项，展开得： ax1+by1=ay2+bx2-(a div b)*b*y2 =ay2+b[x2-(a div b)]y2 所以可得： x1=y2 y1=x2-(a div b)*y2 将得到的的 x1,y1 递归操作求解 x2,y2，如此循环往复，将会像欧几里得一样得到 b=0 的情况，此时递归结束，返回 x=1,y=0，回溯得解。 代码描述： 此函数返回的是 a,b 的最大公约数，同时也求解出满足 ax+by=gcd(a,b) 的一组可行的 (x,y) int exgcd(int a,int b,int \\u0026amp;x,int \\u0026amp;y) { if (b==0) {x=1;y=0;return a;} int t=exgcd(b,a%b,x,y); int x0=x,y0=y; x=y0;y=x0-(a/b)*y0; return t; } \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:2:2\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#扩展欧几里得\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14.3 关于求解二元一次不定方程 ax+by=c 首先，如果 c 不是 gcd(a,b) 的倍数，方程显然无解。 扩展欧几里得求解的是 ax+by=gcd(a,b)=1 的可行解，但是题目中并没有说 c 与 a,b 互质之类的条件，所以需要在开始时两边同时除以 gcd(a,b)。 设 d=gcd(a,b) 设 a\\u0026rsquo;=a/d,b\\u0026rsquo;=b/d,c\\u0026rsquo;=c/d, 则下面需要求解 a\\u0026rsquo;x+b\\u0026rsquo;y=c\\u0026rsquo;的整数解，而 gcd(a\\u0026rsquo;,b\\u0026rsquo;)=1， 则我们只需求 a\\u0026rsquo;x+b\\u0026rsquo;y=1 的可行解 直接使用扩展欧几里得，得到 (x\\u0026rsquo;,y\\u0026rsquo;), 则最终解为x'*c',y'*c'设为 (x0,y0)。 现在得到了一组可行解，但是如何得到通解呢？ 将 (x0,y0) 代入 ax+by=c，则有 a*(x0)+b*(y0)=c 通过拆添项，可有： a*(x0+1*b)+b*(y0-1*a)=c a*(x0+2*b)+b*(y0-2*a)=c a*(x0+3*b)+b*(y0-3*a)=c …… a*(x0+k*b)+b*(y0-k*a)=c (k∈Z) 至此，我们得到了通解的方程 x=x0+k*b y=y0-k*a (k∈Z) 这样，所有满足 ax+by=c 的可行解都可求出。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:2:3\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#关于求解二元一次不定方程-axbyc\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15 具体实现 有了主体算法，下面要谈到具体实现了。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:3:0\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#具体实现\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.1 先处理一下无解的情况 当 a=0 并且 b=0，而 c≠0 时，显然无解； 当 a=0,b=0，而 c=0 时，[x1,x2],[y1,y2] 都为可行解，根据乘法原理，可行解的个数为(x2-x1+1)*(y2-y1+1); 当 a=0 b≠0 时： 此时即为求解 by=c，则 y=c/b， 如果 c/b 不是整数或 c/b 不在 [y1,y2] 的范围内，无解 否则 [x1,x2] 内全部整数都为可行解。 当 b=0,a≠0 时，同上。 若 c 不是 gcd(a,b) 的个数，方程显然无解。 \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:3:1\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#先处理一下无解的情况\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15.2 处理完了一些繁琐的细节后，下面是具体的求解过程 扩展欧几里得求解的是 ax+by=c，而本题是 ax+by+c=0，需将 c 移项。 对于本道题，首先要注意的是，对于负数的模运算在此算法中无法得到正确解，所以要处理一下 a,b,c 的正负情况。 如果 a 为负数，只需将 a 取相反数后，再处理一下 x∈[x1,x2] 的范围。当 a 取了相反数，相当于把 x 也取反，则需要把 x 的范围由 [x1,x2] 转变成 [-x2,-x1], 类似于把数轴反了过来。b 同理。 利用扩展欧几里得解二元一次不定方程，得到一组可行解 (x0,y0)。 因为题目中对 x,y 有条件约束，而有 x=x0+kb,y=y0-kb，我们可以求出满足 x∈[x1,x2],y∈[y1,y2] 的 k 的取值范围， 即为求解 x1\\u0026lt;=x0+kb\\u0026lt;=x2,y1\\u0026lt;=y0-kb\\u0026lt;=y2 的整数 k 的个数 但是在求解这两个一次函数的过程中，会有除不尽的现象，该如何取整呢？ 举个例子 当出现 2.5\\u0026lt;=k\\u0026lt;=5.5 时，我们需要的可行的 k 为 3,4,5，所以需要将 2.5 向上取整得到 3，5.5 向下取整得到 5，即为 3\\u0026lt;=k\\u0026lt;=5； 当出现 -5.5\\u0026lt;=\\u0026lt;=-2.5 时，我们需要的可行的 k 为 -5,-4,-3, 所以需要将 -5.5 向上取整得到 -5,-2.5 向下取整得到 -3，即为 -5\\u0026lt;=k\\u0026lt;=-3； 正负数的情况都已经考虑完全了，可以得到取整的结论：上界下取整，下界上取整。 最后，将得到的两个范围取交集，得到 [l,r]，则最终答案为 r-l+1。 这样，本题就可以完美解决了。 // BY Rinyo #include\\u0026lt;cstdio\\u0026gt; #include\\u0026lt;cmath\\u0026gt; long long a,b,c,x1,x2,yy1,y2,x0,yy0; inline long long cmin(const long long \\u0026amp;x,const long long \\u0026amp;y) {return x\\u0026lt;y?x:y;} inline long long cmax(const long long \\u0026amp;x,const long long \\u0026amp;y) {return x\\u0026gt;y?x:y;} long long gcd(long long a,long long b) { if (b==0) return a; return gcd(b,a % b); } void exgcd(long long a,long long b) { if (b==0){x0=1;yy0=0;return;} exgcd(b,a%b); long long t=x0;x0=yy0;yy0=t-a/b*yy0; return; } int main() { scanf(\\u0026#34;%I64d%I64d%I64d%I64d%I64d%I64d%I64d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;c,\\u0026amp;x1,\\u0026amp;x2,\\u0026amp;yy1,\\u0026amp;y2); c=-c; if (c\\u0026lt;0) {a=-a;b=-b;c=-c;} if (a\\u0026lt;0) {a=-a;long long t=x1;x1=-x2;x2=-t;} if (b\\u0026lt;0) {b=-b;long long t=yy1;yy1=-y2;y2=-t;} if (a==0 \\u0026amp;\\u0026amp; b==0) { if (c==0) { printf(\\u0026#34;%I64d\\u0026#34;,(x2-x1+1)*(y2-yy1+1)); return 0; } printf(\\u0026#34;0\\u0026#34;);return 0; } else if (a==0) { if (c %b ==0) if (c/b\\u0026lt;=y2 \\u0026amp;\\u0026amp; c/b\\u0026gt;=yy1) {printf(\\u0026#34;%I64d\\u0026#34;,x2-x1+1);return 0;} printf(\\u0026#34;0\\u0026#34;);return 0; } else if (b==0) { if (c%a==0) if (c/a\\u0026lt;=x2 \\u0026amp;\\u0026amp; c/a\\u0026gt;=x1) {printf(\\u0026#34;%I64d\\u0026#34;,y2-yy1+1);return 0;} printf(\\u0026#34;0\\u0026#34;);return 0; } long long d=gcd(a,b); if (c%d!=0){printf(\\u0026#34;0\\u0026#34;);return 0;} a=a/d;b=b/d;c=c/d; exgcd(a,b); x0=x0*c;yy0=yy0*c; double tx2=x2,tx1=x1,tx0=x0,ta=a,tb=b,tc=c,ty1=yy1,ty2=y2,ty0=yy0; long long down1=floor(((tx2-tx0)/tb)),down2=floor(((ty0-ty1)/ta)); long long r=cmin(down1,down2); long long up1=ceil(((tx1-tx0)/tb)),up2=ceil(((ty0-ty2)/ta)); long long l=cmax(up1,up2); if (r\\u0026lt;l) printf(\\u0026#34;0\\u0026#34;); else printf(\\u0026#34;%I64d\\u0026#34;,r-l+1); return 0; } 扩展欧几里得模板 #include\\u0026lt;iostream\\u0026gt; using namespace std; int exgcd(int a,int b,int \\u0026amp;x,int \\u0026amp;y) { if(b==0) { x=1; y=0; return a; } int gcd=exgcd(b,a%b,x,y); int x2=x,y2=y; x=y2; y=x2-(a/b)*y2; return gcd; } int main() { int x,y,a,b; cout\\u0026lt;\\u0026lt;\\u0026#34;请输入 a 和 b:\\u0026#34;\\u0026lt;\\u0026lt;endl; cin\\u0026gt;\\u0026gt;a\\u0026gt;\\u0026gt;b; cout\\u0026lt;\\u0026lt;\\u0026#34;a 和 b 的最大公约数：\\u0026#34;\\u0026lt;\\u0026lt;endl; cout\\u0026lt;\\u0026lt;exgcd(a,b,x,y)\\u0026lt;\\u0026lt;endl; cout\\u0026lt;\\u0026lt;\\u0026#34;ax+by=gcd(a,b) 的一组解是：\\u0026#34;\\u0026lt;\\u0026lt;endl; cout\\u0026lt;\\u0026lt;x\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;\\u0026lt;\\u0026lt;y\\u0026lt;\\u0026lt;endl; return 0; } \",\"date\":\"2018-08-10\",\"objectID\":\"/posts/euclid/:3:2\",\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"title\":\"The equation-SGU106（扩展欧几里得）\",\"uri\":\"/posts/euclid/#处理完了一些繁琐的细节后下面是具体的求解过程\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 题目链接 \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/lightoj1282/:1:0\",\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"uri\":\"/posts/lightoj1282/#题目链接\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。 \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/lightoj1282/:2:0\",\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"uri\":\"/posts/lightoj1282/#题目大意\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 分析 求后三位的话：直接快速幂，对 1000 取模就好了。 求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。 分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n) fmod(z,1)可以求出 x 的小数部分。 //再一次吐槽 lightoj 的头文件，让我不能用万能头\\u0026lt;bits/stdc++.h\\u0026gt; #include\\u0026lt;stdio.h\\u0026gt; #include\\u0026lt;math.h\\u0026gt; typedef long long LL; int quickpow (int m, int n, int k) { int b = 1; while (n \\u0026gt; 0) { if (n \\u0026amp; 1) b = (b * m) % k; n \\u0026gt;\\u0026gt;= 1; m = (m * m) % k; } return b%k; } int main () { int t, flag = 1; scanf (\\u0026#34;%d\\u0026#34;, \\u0026amp;t); while (t--) { LL n, k; scanf (\\u0026#34;%lld %lld\\u0026#34;, \\u0026amp;n, \\u0026amp;k); int first = pow (10.0, 2.0 + fmod (k*log10(n*1.0), 1)); int last = quickpow (n%1000, k, 1000); printf (\\u0026#34;Case %d: %d %03d\\\\n\\u0026#34;, flag++, first, last); } return 0; } \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/lightoj1282/:3:0\",\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"uri\":\"/posts/lightoj1282/#分析\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 注 C 库函数 - fmod() C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数。 x — 代表分子的浮点值。 y — 代表分母的浮点值。 该函数返回 x/y 的余数。 下面的实例演示了 fmod() 函数的用法。 #include \\u0026lt;stdio.h\\u0026gt; #include \\u0026lt;math.h\\u0026gt; int main () { float a, b; int c; a = 9.2; b = 3.7; c = 2; printf(\\u0026#34;%f / %d 的余数是 %lf\\\\n\\u0026#34;, a, c, fmod(a,c)); printf(\\u0026#34;%f / %f 的余数是 %lf\\\\n\\u0026#34;, a, b, fmod(a,b)); return(0); } 结果： 9.200000 / 2 的余数是 1.200000 9.200000 / 3.700000 的余数是 1.800000 \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/lightoj1282/:4:0\",\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"uri\":\"/posts/lightoj1282/#注\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"0.9 A. The Rank 题目大意： 给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排； 开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int a[4],sum[1005]; int main(){ int n,s,f1; cin\\u0026gt;\\u0026gt;n; for(int j=1;j\\u0026lt;=n;j++){ s=0; for(int i=0;i\\u0026lt;4;i++){ cin\\u0026gt;\\u0026gt;a[i]; s+=a[i]; } sum[j]=s; if(j==1) f1=s; } sort(sum+1,sum+n+1,greater\\u0026lt;int\\u0026gt;()); for(int i=1;i\\u0026lt;=n;i++) if(sum[i]==f1){ cout\\u0026lt;\\u0026lt;i\\u0026lt;\\u0026lt;endl; break; } return 0; } \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/cfcontest1017/:0:1\",\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"uri\":\"/posts/cfcontest1017/#a-the-rank\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"0.10 B. The Bits 题目大意： 先给出二进制数的长度，然后输入两个二进制数 a,b，问交换 a 中的某些位数的数，使得 a|b（按位或）的结果不同，求有多少种不同的或值。 a,b 上下对应的情况：a/b 个数 1/0 m 0/0 n 1/1 x 0/1 y 用组合数学的思想来想： 只要看 b 为 0 的位就行了，如果 0/0,a 只能换 1 的位置，为了避免重复，所以这里总数为n*x, 再考虑 1/0 的情况，只能和 0 的位置换，这是后可以把 0/0 没算的都算上，所以总数m*(n+y) 所以最后总数为sum=n*x+m*(n+y) #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ long long n,m,x,y,t; n=m=x=y=0; char a[100005],b[100005]; cin\\u0026gt;\\u0026gt;t; cin\\u0026gt;\\u0026gt;a\\u0026gt;\\u0026gt;b; for(int i=0;i\\u0026lt;t;i++){ int p=a[i]-\\u0026#39;0\\u0026#39;; int q=b[i]-\\u0026#39;0\\u0026#39;; if(p==0\\u0026amp;\\u0026amp;q==0) n++; if(p==1\\u0026amp;\\u0026amp;q==0) m++; if(p==1\\u0026amp;\\u0026amp;q==1) x++; if(p==0\\u0026amp;\\u0026amp;q==1) y++; } long long sum=n*x+m*(y+n); cout\\u0026lt;\\u0026lt;sum\\u0026lt;\\u0026lt;endl; return 0; } \",\"date\":\"2018-08-09\",\"objectID\":\"/posts/cfcontest1017/:0:2\",\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"uri\":\"/posts/cfcontest1017/#b-the-bits\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"21 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn) 其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数 φ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】 \",\"date\":\"2018-08-08\",\"objectID\":\"/posts/euler/:1:0\",\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"title\":\"欧拉函数\",\"uri\":\"/posts/euler/#欧拉函数是求小于-x-并且和-x\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"22 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) \",\"date\":\"2018-08-08\",\"objectID\":\"/posts/euler/:2:0\",\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"title\":\"欧拉函数\",\"uri\":\"/posts/euler/#定理\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"23 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"date\":\"2018-08-08\",\"objectID\":\"/posts/euler/:3:0\",\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"title\":\"欧拉函数\",\"uri\":\"/posts/euler/#特殊性质\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24 模板 //直接法 int Euler(int n){ int res = n,i; //由于任何一个合数都至少有一个不大于根号 n 的素因子，所以只要遍历到根号 n 即可 for(i=2;i * i \\u0026lt;= n;i++) if(n%i == 0){ //第一次找到的必为素因子 n /=i ; res = res - res/i; //x(1-1/p1) while(n % i ==0) n/=i; //将该素因子的倍数也全部筛掉 } if (n \\u0026gt; 1) res = res - res/n; return res; } 以上转载注明 //素数筛选法，先素数筛选，再求欧拉 /* 特性 : 1. 若 a 为质数，phi[a]=a-1; 2. 若 a 为质数，b mod a=0,phi[a*b]=phi[b]*a 3. 若 a,b 互质，phi[a*b]=phi[a]*phi[b](当 a 为质数时，if b mod a!=0 ,phi[a*b]=phi[a]*phi[b]) */ int m[n],phi[n],p[n],nump; //m[i] 标记 i 是否为素数，0 为素数，1 不为素数；p 是存放素数的数组；nump 是当前素数个数；phi[i] 为欧拉函数 int make() { phi[1]=1; for (int i=2;i\\u0026lt;=n;i++) { if (!m[i])//i 为素数，m[] 初始化为 0 { p[++nump]=i;//将 i 加入素数数组 p 中 phi[i]=i-1;//因为 i 是素数，由特性得知 } for (int j=1;j\\u0026lt;=nump\\u0026amp;\\u0026amp;p[j]*i\\u0026lt;n;j++) //用当前已的到的素数数组 p 筛，筛去 p[j]*i { m[p[j]*i]=1;//可以确定 i*p[j] 不是素数 if (i%p[j]==0) //看 p[j] 是否是 i 的约数，因为素数 p[j], 等于判断 i 和 p[j] 是否互质 { phi[p[j]*i]=phi[i]*p[j]; //特性 2 break; } else phi[p[j]*i]=phi[i]*(p[j]-1); //互质，特性 3,p[j]-1 就是 phi[p[j]] } } } 附素数打表 int p[N]={1,1,0}; void prime(){ for(int i=2;i\\u0026lt;N;i++) if(!p[i]){ for(int j=2*i;j\\u0026lt;=N;j+=i)//筛掉 i 的倍数 p[j]=1; } } \",\"date\":\"2018-08-08\",\"objectID\":\"/posts/euler/:4:0\",\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"title\":\"欧拉函数\",\"uri\":\"/posts/euler/#模板\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 例题 Bi-shoe and Phi-shoe LightOJ - 1370 题意： 给一些数 Ai（第 i 个数），Ai 这些数代表的是某个数欧拉函数的值，我们要求出数 Ni 的欧拉函数值不小于 Ai。而我们要求的就是这些 Ni 这些数字的和 sum，而且我们想要 sum 最小，求出 sum 最小多少。 解题思路： 要求和最小，我们可以让每个数都尽量小，那么我们最后得到的肯定就是一个最小值。 给定一个数的欧拉函数值 ψ(N)，我们怎么样才能求得最小的 N? 我们知道，一个素数 P 的欧拉函数值 ψ(P)=P-1。所以如果我们知道 ψ(N)，那么最小的 N 就是最接近 ψ(N)，并且大于 ψ(N) 的素数。我们把所有素数打表之后再判断就可以了。 这个 lightoj 有毒，什么头文件都不支持，卡了我好久。 #include\\u0026lt;stdio.h\\u0026gt; #define N 1000005 #define ll long long int m[N]={1,1,0}; int p[100000],cnt=0; int max(int x,int y){ return x\\u0026gt;y?x:y; } void prime(){ for(int i=2;i\\u0026lt;N;i++) if(!m[i]){ for(int j=2*i;j\\u0026lt;=N;j+=i) m[j]=1; p[cnt++]=i; } } int binary_search(int x){//二分查找 int l=0,r=cnt; while(l\\u0026lt;=r){ int mid=(l+r)/2; if(p[mid]\\u0026gt;x) r=mid-1; else l=mid+1; } for(int i=max(r,0);;i++) if(p[i]\\u0026gt;x) return p[i]; } int main(){ prime(); int T,n,cas=1,temp; scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;T); while(T--){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n); ll sum=0; for(int i=0;i\\u0026lt;n;i++){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;temp); sum+=binary_search(temp); } printf(\\u0026#34;Case %d: %lld Xukha\\\\n\\u0026#34;,cas++,sum); } return 0; } \",\"date\":\"2018-08-08\",\"objectID\":\"/posts/euler/:5:0\",\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"title\":\"欧拉函数\",\"uri\":\"/posts/euler/#例题\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 大意： 要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。 其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； //dijkstra #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;cstdio\\u0026gt; #define min(a,b) (a\\u0026lt;b?a:b) using namespace std; int n,m,v[1010],maps[1010][1010],d[1010];//此时 d 表示 1 到每一个点的能通过的最大的重量 int dijkstra(){ int i,j,k; for(i=1;i\\u0026lt;=n;i++){ v[i]=0; d[i]=maps[1][i];//这个时候 d 不代表最短路径，而是从 1 到 n 的最大承载量 } for(i=1;i\\u0026lt;=n;i++){//n 个点 int f=-1; for(j=1;j\\u0026lt;=n;j++) if(!v[j]\\u0026amp;\\u0026amp;d[j]\\u0026gt;f){ f=d[j]; k=j; } v[k]=1; for(j=1;j\\u0026lt;=n;j++) if(!v[j]\\u0026amp;\\u0026amp;d[j]\\u0026lt;min(d[k],maps[k][j]))//更新说明见图解 d[j]=min(d[k],maps[k][j]); } return d[n]; } int main(){ int ans=1; int a,b,w; int T; scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;T); while(T--){ for(int i=0;i\\u0026lt;=n;i++) for(int j=0;j\\u0026lt;=n;j++) maps[i][j]=0; scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;n,\\u0026amp;m); for(int i=1;i\\u0026lt;=m;i++) { scanf(\\u0026#34;%d%d%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;w); maps[a][b]=maps[b][a]=w; } printf(\\u0026#34;Scenario #%d:\\\\n%d\\\\n\\\\n\\u0026#34;,ans++,dijkstra()); } return 0; } \",\"date\":\"2018-08-06\",\"objectID\":\"/posts/poj1797/:0:0\",\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"uri\":\"/posts/poj1797/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。 我主要用到的工具： console.log() Notepad++ 在线图片转文字工具 \",\"date\":\"2018-08-04\",\"objectID\":\"/posts/console-log/:0:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 博客自定义 console log\",\"uri\":\"/posts/console-log/#\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"17 用法 用 js 在\\u0026lt;body\\u0026gt;\\u0026lt;/body\\u0026gt;使用 console.log() 就行了，hexo 的主题文件在_layout.swig里，所以我们打开该文件，在该位置，添加 js 就行了； console \",\"date\":\"2018-08-04\",\"objectID\":\"/posts/console-log/:1:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 博客自定义 console log\",\"uri\":\"/posts/console-log/#用法\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"18 图案 我用的我自己的一张照片（电脑上照片就那么几张。)，然后用 在线图片转文字工具 转字符， 选择文件，设置大小，然后生成， 1 2 生成后，复制 TXT 文件（下面那个框，上面的是 HTML 代码） 3 粘贴到 Notepad++ 里面，然后按图操作； 4 Ctrl+H 替换 5 6 最后就变成一个字符串了。 \",\"date\":\"2018-08-04\",\"objectID\":\"/posts/console-log/:2:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 博客自定义 console log\",\"uri\":\"/posts/console-log/#图案\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"19 效果图 7 线上 demo, 按 F12 找到 console \",\"date\":\"2018-08-04\",\"objectID\":\"/posts/console-log/:3:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 博客自定义 console log\",\"uri\":\"/posts/console-log/#效果图\"},{\"categories\":[\"JavaScript\"],\"collections\":null,\"content\":\"20 我的 txt \\\\n` @@#``@@@@@@@@@@@@@@@@@@##,` \\\\n` @@#`;@@@@@@@@@@@@@@@@@@@\\u0026#39;:\\u0026#39; \\\\n` @@#`@@@@@@@@@@@@@@@@@@@#+#;` \\\\n` @@#`@@@@@@@@@@@@@@@@@@###@\\u0026#39;. \\\\n` @@+.@@@@@@@@@@@@@@@@@@@@@##, \\\\n` @@#,@@@@@@@@@@@@@@@@@@@@@@#, \\\\n` #@#:@@@@@@@@@@@@@@@@@@@@@@@, \\\\n` #@#\\u0026#39;@@@@@@@@@@@@@@@@@@@@@@@. \\\\n` +@#;@@@@@@@@@@@@@@@@@@@@@@# \\\\n` `;: ;@#\\u0026#39;@@@@@@@@@@@@@@@@@@+\\u0026#39;+@\\u0026#39; \\\\n` `,,;\\u0026#39;;\\u0026#39;+\\u0026#39;;\\u0026#39;@@+:@@@@@@@@@@@@##@#\\u0026#39;,.:#; \\\\n,, `` ``..,:;@@#\\u0026#39;@@@@@@@@#####@@@@#:`:. \\\\n` `````:++@@@@@@@@@@@@@###@@@@#+,.. \\\\n ``````.#@@@@@@@@@@@@@@#@@@#++#\\u0026#39;`` \\\\n` ```.,,:,.`:@@@@@@@@@@@@@###@@@##\\u0026#39;.` \\\\n``..`````..,::;+@@@@@@@@@@@@#+`::+##\\u0026#39;`. \\\\n` ````.```,@@@@@@@@@@@##;``.,\\u0026#39;;` ` \\\\n``.;@@@@@@@@@@@@@@@@@@@@@@###;``..`````` \\\\n#@@@@@@@@@@@@@@@@@@@@@@@@##@#;``,``,.`` \\\\n@@@@@@@@@@@@@@@@@@@.`````..``.. +` `:` \\\\n@+\\u0026#39;\\u0026#39;++#####@@#`.@@@``````` ` `,``` `` \\\\n\\u0026#39;;;;;\\u0026#39;+##+\\u0026#39;+.`;+@@@,..```` `` :,. \\\\n;::,,:;+#++``,,#@@@\\u0026#39;..``````` ,`.`` \\\\n;,,,,...\\u0026#39;#.,,..#@@@#,,.`````` .```` \\\\n:,,,,....`,::;\\u0026#39;\\u0026#39;+#@#;,..`````````.`` \\\\n:,,,.....\\u0026#39;##++\\u0026#39;\\u0026#39;\\u0026#39;;:+\\u0026#39;:,.`..,,...` \\\\n:,,,...#####+\\u0026#39;+#@@@\\u0026#39;.\\u0026#39;;+:. ` `` \\\\n;,,.`\\u0026#39;####\\u0026#39;#,`.`+@@@+\\u0026#39;``` `.` \\\\n;,.`#@@@#+:\\u0026#39;+++##+@##@,,,,` \\\\n\\u0026#39;,.#@@###\\u0026#39;\\u0026#39;\\u0026#39;\\u0026#39;;:,.```,+#. \\\\n+,#@@@####;,,..``````````````` `.:,::\\\\n+@@@@###+;,,..`````````````````` `.,\\\\n#@@@##+\\u0026#39;,,,........`````````````` \\\\n@@@@#+:,,,,`........`````````` \\\\n@@@#+:,,,,.`````.....`````````` `` \\\\n@@##\\u0026#39;:,......`````....``` ````` ```\\\\n@@@#\\u0026#39;:,....,..``````..```` ``` ```\\\\n@@@#\\u0026#39;,....,,,..``````````` ``` ..\\\\n@@@#,.....,,,,.`` ```````` `````` \\\\n@@@+....,,,,,..````````````` `````````` \\\\n@@@:....,,,,.LiRuihao```````` ```````````` \\\\n#@@,....,,,,.Always Be Yourself !````````````\\\\n,##,,...,::,.````````````..`````` `......``\\\\n,\\u0026#39;#,,..,,:::.`````````........`````` `.,,..\\\\n\\\\n 你好！\\\\n 欢迎进入什么都不会的李瑞豪的个人网站！\\\\nhttps://lruihao.cn\\\\nhttps://www.lruihao.cn\\\\nhttps://lruihao.github.io\\\\nhttps://liruihao.coding.me\\\\n\\\\n\\\\n\\\\n 其他个人网站，个人博客也是可以的。 \",\"date\":\"2018-08-04\",\"objectID\":\"/posts/console-log/:4:0\",\"tags\":[\"Hexo\",\"JavaScript\"],\"title\":\"hexo 博客自定义 console log\",\"uri\":\"/posts/console-log/#我的-txt\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 题目大意： 说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。 两个点可能有多条路，选择最短的。 #include\\u0026lt;stdio.h\\u0026gt; #include\\u0026lt;string.h\\u0026gt; #include\\u0026lt;algorithm\\u0026gt; using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u0026lt;=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u0026lt;=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u0026lt;=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026amp;\\u0026amp; d[j]\\u0026lt;mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(\\u0026#34;%d\\\\n\\u0026#34;,d[t]); return; } for(j=1;j\\u0026lt;=n;j++) if(!v[j] \\u0026amp;\\u0026amp; (d[k]+maps[k][j])\\u0026lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点 d[j]=d[k]+maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(\\u0026#34;%d %d\\u0026#34;,\\u0026amp;T,\\u0026amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i\\u0026lt;=n;i++) for(j=1;j\\u0026lt;=n;j++) maps[i][j]=INF; for(i=1;i\\u0026lt;=T;i++){ scanf(\\u0026#34;%d%d%d\\u0026#34;,\\u0026amp;x,\\u0026amp;y,\\u0026amp;D); if(maps[x][y]\\u0026gt;D) //可能有多条路，只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; } \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/poj2387/:0:0\",\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"uri\":\"/posts/poj2387/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"1 Dijkstra 算法 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:1:0\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#dijkstra-算法\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。 问题描述：在无向图 G=(V,E) 中，假设每条边 E[i] 的长度为 w[i]，找到由顶点 V0 到其余各点的最短路径。（单源最短路径） \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:1:1\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#1-定义概览\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"1.2 2. 算法描述 1.2.1 算法思想 设 G=(V,E) 是一个带权有向图，把图中顶点集合 V 分成两组，第一组为已求出最短路径的顶点集合（用 S 表示，初始时 S 中只有一个源点，以后每求得一条最短路径 , 就将加入到集合 S 中，直到全部顶点都加入到 S 中，算法就结束了），第二组为其余未确定最短路径的顶点集合（用 U 表示），按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中，总保持从源点 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外，每个顶点对应一个距离，S 中的顶点的距离就是从 v 到此顶点的最短路径长度，U 中的顶点的距离，是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。 1.2.2 算法步骤 a. 初始时，S 只包含源点，即 S ＝{v}，v 的距离为 0。U 包含除 v 外的其他顶点，即：U={其余顶点}，若 v 与 U 中顶点 u 有边，则\\u0026lt;u,v\\u0026gt;正常有权值，若 u 不是 v 的出边邻接点，则\\u0026lt;u,v\\u0026gt;权值为 ∞。 b. 从 U 中选取一个距离 v 最小的顶点 k，把 k，加入 S 中（该选定的距离就是 v 到 k 的最短路径长度）。 c. 以 k 为新考虑的中间点，修改 U 中各顶点的距离；若从源点 v 到顶点 u 的距离（经过顶点 k）比原来距离（不经过顶点 k）短，则修改顶点 u 的距离值，修改后的距离值的顶点 k 的距离加上边上的权。 d. 重复步骤 b 和 c 直到所有顶点都包含在 S 中。 执行动画过程如下图 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:1:2\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#2-算法描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"1.2 2. 算法描述 1.2.1 算法思想 设 G=(V,E) 是一个带权有向图，把图中顶点集合 V 分成两组，第一组为已求出最短路径的顶点集合（用 S 表示，初始时 S 中只有一个源点，以后每求得一条最短路径 , 就将加入到集合 S 中，直到全部顶点都加入到 S 中，算法就结束了），第二组为其余未确定最短路径的顶点集合（用 U 表示），按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中，总保持从源点 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外，每个顶点对应一个距离，S 中的顶点的距离就是从 v 到此顶点的最短路径长度，U 中的顶点的距离，是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。 1.2.2 算法步骤 a. 初始时，S 只包含源点，即 S ＝{v}，v 的距离为 0。U 包含除 v 外的其他顶点，即：U={其余顶点}，若 v 与 U 中顶点 u 有边，则\\u0026lt;u,v\\u0026gt;正常有权值，若 u 不是 v 的出边邻接点，则\\u0026lt;u,v\\u0026gt;权值为 ∞。 b. 从 U 中选取一个距离 v 最小的顶点 k，把 k，加入 S 中（该选定的距离就是 v 到 k 的最短路径长度）。 c. 以 k 为新考虑的中间点，修改 U 中各顶点的距离；若从源点 v 到顶点 u 的距离（经过顶点 k）比原来距离（不经过顶点 k）短，则修改顶点 u 的距离值，修改后的距离值的顶点 k 的距离加上边上的权。 d. 重复步骤 b 和 c 直到所有顶点都包含在 S 中。 执行动画过程如下图 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:1:2\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#算法思想\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"1.2 2. 算法描述 1.2.1 算法思想 设 G=(V,E) 是一个带权有向图，把图中顶点集合 V 分成两组，第一组为已求出最短路径的顶点集合（用 S 表示，初始时 S 中只有一个源点，以后每求得一条最短路径 , 就将加入到集合 S 中，直到全部顶点都加入到 S 中，算法就结束了），第二组为其余未确定最短路径的顶点集合（用 U 表示），按最短路径长度的递增次序依次把第二组的顶点加入 S 中。在加入的过程中，总保持从源点 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外，每个顶点对应一个距离，S 中的顶点的距离就是从 v 到此顶点的最短路径长度，U 中的顶点的距离，是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。 1.2.2 算法步骤 a. 初始时，S 只包含源点，即 S ＝{v}，v 的距离为 0。U 包含除 v 外的其他顶点，即：U={其余顶点}，若 v 与 U 中顶点 u 有边，则\\u0026lt;u,v\\u0026gt;正常有权值，若 u 不是 v 的出边邻接点，则\\u0026lt;u,v\\u0026gt;权值为 ∞。 b. 从 U 中选取一个距离 v 最小的顶点 k，把 k，加入 S 中（该选定的距离就是 v 到 k 的最短路径长度）。 c. 以 k 为新考虑的中间点，修改 U 中各顶点的距离；若从源点 v 到顶点 u 的距离（经过顶点 k）比原来距离（不经过顶点 k）短，则修改顶点 u 的距离值，修改后的距离值的顶点 k 的距离加上边上的权。 d. 重复步骤 b 和 c 直到所有顶点都包含在 S 中。 执行动画过程如下图 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:1:2\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#算法步骤\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"2 spfa 算法 spfa 是一种求单源最短路的算法 算法中需要用到的主要变量 int n; //表示 n 个点，从 1 到 n 标号 int s,t; //s 为源点，t 为终点 int d[N]; //d[i] 表示源点 s 到点 i 的最短路 int p[N]; //记录路径（或者说记录前驱） queue q; //一个队列，用 STL 实现，当然可有手打队列，无所谓 bool vis[N]; //vis[i]=1 表示点 i 在队列中 vis[i]=0 表示不在队列中 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:2:0\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#spfa-算法\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"3 几乎所有的最短路算法其步骤都可以分为两步 初始化 松弛操作 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:3:0\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#几乎所有的最短路算法其步骤都可以分为两步\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"3.1 初始化 d 数组全部赋值为 INF（无穷大）；p 数组全部赋值为 s（即源点），或者赋值为 -1，表示还没有知道前驱，然后 d[s]=0; 表示源点不用求最短路径，或者说最短路就是 0。将源点入队； （另外记住在整个算法中有顶点入队了要记得标记 vis 数组，有顶点出队了记得消除那个标记） \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:3:1\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#初始化\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"3.2 队列 + 松弛操作 读取队头顶点 u，并将队头顶点 u 出队（记得消除标记）；将与点 u 相连的所有点 v 进行松弛操作，如果能更新估计值（即令 d[v] 变小），那么就更新，另外，如果点 v 没有在队列中，那么要将点 v 入队（记得标记），如果已经在队列中了，那么就不用入队 以此循环，直到队空为止就完成了单源最短路的求解 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:3:2\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#队列--松弛操作\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"4 SPFA 可以处理负权边 定理：只要最短路径存在，上述 SPFA 算法必定能求出最小值。 证明： 每次将点放入队尾，都是经过松弛操作达到的。换言之，每次的优化将会有某个点 v 的最短路径估计值 d[v] 变小。所以算法的执行会使 d 越来越小。由于我们假定图中不存在负权回路，所以每个结点都有最短路径值。因此，算法不会无限执行下去，随着 d 值的逐渐变小，直到到达最短路径值时，算法结束，这时的最短路径估计值就是对应结点的最短路径值。（证毕） 期望的时间复杂度 O(ke)，其中 k 为所有顶点进队的平均次数，可以证明 k 一般小于等于 2。 判断有无负环： 如果某个点进入队列的次数超过 N 次则存在负环（SPFA 无法处理带负环的图） 代码 \",\"date\":\"2018-08-03\",\"objectID\":\"/posts/zuiduanlu/:4:0\",\"tags\":[\"最短路\",\"ACM\"],\"title\":\"最短路入门\",\"uri\":\"/posts/zuiduanlu/#spfa-可以处理负权边\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 密码：l9sn 终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多 \",\"date\":\"2018-08-02\",\"objectID\":\"/posts/nowcodersummer-5th/:0:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"title\":\"牛客暑假多校第五场\",\"uri\":\"/posts/nowcodersummer-5th/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 G-max /* //wa #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int n,c;//好像不会爆 int 吧，头晕 cin\\u0026gt;\\u0026gt;c\\u0026gt;\\u0026gt;n; int t=n/c; if(t\\u0026lt;1) cout\\u0026lt;\\u0026lt;\\u0026#34;-1\\\\n\\u0026#34;;// else if(t==1) cout\\u0026lt;\\u0026lt;c*c\\u0026lt;\\u0026lt;endl; else cout\\u0026lt;\\u0026lt;(t*c)*((t-1)*c)\\u0026lt;\\u0026lt;endl; return 0; }*/ //AC #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ long long n,c; cin\\u0026gt;\\u0026gt;c\\u0026gt;\\u0026gt;n; long long t=n/c; if(t\\u0026lt;1) cout\\u0026lt;\\u0026lt;-1\\u0026lt;\\u0026lt;endl; else if(t==1) cout\\u0026lt;\\u0026lt;c*c\\u0026lt;\\u0026lt;endl; else cout\\u0026lt;\\u0026lt;(t*c)*((t-1)*c)\\u0026lt;\\u0026lt;endl; return 0; } \",\"date\":\"2018-08-02\",\"objectID\":\"/posts/nowcodersummer-5th/:1:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"title\":\"牛客暑假多校第五场\",\"uri\":\"/posts/nowcodersummer-5th/#g-max\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 J-plan /*枚举所有情况 全买双人 n%2 0 or 1//剩 1 个人的时候，可以多开一间房或者退一间 2 人房开一间 3 人房 全买 3 人 n%3 0 or 1 or 2 再比较大小 */ #include\\u0026lt;bits/stdc++.h\\u0026gt; #define INF 1\\u0026lt;\\u0026lt;20 using namespace std; typedef long long ll; ll min(ll a,ll b){ return a\\u0026lt;b?a:b; } int main(){ ll n,p2,p3,sum,sum1; while(cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;p2\\u0026gt;\\u0026gt;p3){ if(n%2==0) sum=p2*(n/2); else sum=p2*(n/2)+min(min(p2,p3),p3-p2);//退二买三； if(n%3==0) sum1=p3*(n/3); else if(n%3==1) sum1=p3*(n/3)+min(min(p2,p3),2*p2-p3);//退 3 买 2*2 else if(n%3==2) sum1=p3*(n/3)+min(p3,p2);//退 3 买 3*2 cout\\u0026lt;\\u0026lt;min(sum1,sum)\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-08-02\",\"objectID\":\"/posts/nowcodersummer-5th/:2:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"title\":\"牛客暑假多校第五场\",\"uri\":\"/posts/nowcodersummer-5th/#j-plan\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接 思路参考 1,思路参考 2（没看懂） 先占坑，有时间再理理思路。 同一棵树中 d=1, 即 x 和 y 是同类，则需满足 r[x]==r[y] d=2,x 应该吃了 y, 也就是 (r[x]+1)%3 == r[y] 不同树合并且更新关系 (x 树做主根) \\u0026rsquo; 如果 x 和 y 为关系 r1, y 和 z 为关系 r2，那么 x 和 z 的关系就是（r1+r2）%3 如果 d1 则 x 和 y 是同类，那么 y 对 x 的关系是 0, 如果 d2 , 则 x 吃了 y, 那么 y 对 x 的关系是 1, x 对 y 的关系是 2。综上所述 , 无论 d 为 1 或者是为 2, y 对 x 的关系都是 d-1。 fy 对 y 的关系为 3-r[y] （有点互补的感觉，注意这里是不同类喔） y 对 x 的关系为 d-1, x 对 fx 的关系为 r[x] 所以 fy 对 fx 的关系是（3-r[y] + d-1 + r[x]）%3。可以借助向量图理解 fy-\\u0026gt;y-\\u0026gt;x-\\u0026gt;fx #include\\u0026lt;cstdio\\u0026gt; const int maxn = 50000+10; int p[maxn]; //存父节点 int r[maxn];//存与父节点的关系 0 同一类，1 被父节点吃，2 吃父节点 void set(int n) //初始化 { for(int x = 1; x \\u0026lt;= n; x++) { p[x] = x; //开始自己是自己的父亲节点 r[x] = 0;//开始自己就是自己的父亲，每一个点均独立 } } int find(int x) //找父亲节点 { if(x == p[x]) return x; int t = p[x]; p[x] = find(p[x]); r[x] = (r[x]+r[t])%3; //回溯由子节点与父节点的关系和父节点与根节点的关系找子节点与根节点的关系 return p[x]; } void Union(int x, int y, int d) { int fx = find(x); int fy = find(y); p[fy] = fx; //合并树 注意：被 x 吃，所以以 x 的根为父 r[fy] = (r[x]-r[y]+3+(d-1))%3; //对应更新与父节点的关系 } int main() { int n, m; scanf(\\u0026#34;%d%d\\u0026#34;, \\u0026amp;n, \\u0026amp;m); set(n); int ans = 0; int d, x, y; while(m--) { scanf(\\u0026#34;%d%d%d\\u0026#34;, \\u0026amp;d, \\u0026amp;x, \\u0026amp;y); if(x \\u0026gt; n || y \\u0026gt; n || (d == 2 \\u0026amp;\\u0026amp; x == y)) ans++; //如果节点编号大于最大编号，或者自己吃自己，说谎 else if(find(x) == find(y)) //如果原来有关系，也就是在同一棵树中，那么直接判断是否说谎 { if(d == 1 \\u0026amp;\\u0026amp; r[x] != r[y]) ans++; //如果 x 和 y 不属于同一类 if(d == 2 \\u0026amp;\\u0026amp; (r[x]+1)%3 != r[y]) ans++; // 如果 x 没有吃 y（注意要对应 Uinon(x, y) 的情况，否则一路 WA 到死啊！！！) } else Union(x, y, d); //如果开始没有关系，则建立关系 } printf(\\u0026#34;%d\\\\n\\u0026#34;, ans); return 0; } \",\"date\":\"2018-08-02\",\"objectID\":\"/posts/poj1182/:0:0\",\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"uri\":\"/posts/poj1182/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"13 题目链接：小希的迷宫 \",\"date\":\"2018-08-01\",\"objectID\":\"/posts/hdu1272/:1:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"uri\":\"/posts/hdu1272/#题目链接小希的迷宫\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"14 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。 想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域 \",\"date\":\"2018-08-01\",\"objectID\":\"/posts/hdu1272/:2:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"uri\":\"/posts/hdu1272/#并查集\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"15 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1; 最后注意空树的情况，至于自环我这里 No 也过了，没有去验证自环 Yes 的情况了 //并查集 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int pre[100001]; int find(int root){ int son,t; son=root; while(root!=pre[root]) root=pre[root]; while(son!=root){ t=pre[son]; pre[son]=root; son=t; } return root; } void join(int a,int b){ int x=find(a),y=find(b); if(x!=y) pre[y]=x; } int main(){ int a,b,flag,i,sum; while(1) { flag = 0; while(~scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b) \\u0026amp;\\u0026amp; a!=0 \\u0026amp;\\u0026amp; b!=0){ if(a==-1 \\u0026amp;\\u0026amp; b==-1) return 0; if(pre[a]==0)pre[a]=a; if(pre[b]==0)pre[b]=b; if(find(a)==find(b))flag = 1; else if(flag!=1) join(a,b); } for(sum = 0,i=1;i\\u0026lt;100001;i++){ if(pre[i]==i)sum++; pre[i] = 0; } if(sum\\u0026gt;1 || flag == 1) printf(\\u0026#34;No\\\\n\\u0026#34;); else printf(\\u0026#34;Yes\\\\n\\u0026#34;); } } //1 2 3 4 0 0 No 没有连通 //0 0 Yes //1 1 0 0 No（该代码） //树性质 #include \\u0026lt;stdio.h\\u0026gt; bool s[100001]; int main() { int a,b,i,len,num,v; for(i=0;i\\u0026lt;100001;++i) s[i]=false; len=0,num=0,v=0; while(1) { scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b); if(a==-1\\u0026amp;\\u0026amp;b==-1) break; if(a==0\\u0026amp;\\u0026amp;b==0) { if(v==0) { printf(\\u0026#34;Yes\\\\n\\u0026#34;); continue; } if(num==len-1) //划重点！！ printf(\\u0026#34;Yes\\\\n\\u0026#34;); else printf(\\u0026#34;No\\\\n\\u0026#34;); num=len=v=0; for(i=0;i\\u0026lt;100001;++i) s[i]=false; continue; } v=1; if(s[a]==false) len++;//点数 if(s[b]==false) len++; s[a]=s[b]=true; num++;//边数 } return 0; \",\"date\":\"2018-08-01\",\"objectID\":\"/posts/hdu1272/:3:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"uri\":\"/posts/hdu1272/#树的性质\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接：How Many Answers Are Wrong 思路参考：本题直接参考,图文解释 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; typedef long long LL; int pre[200010],ranks[200010]; int find(int root){ if(pre[root] != root) { int f = pre[root]; pre[root] = find(pre[root]);//递归路径压缩 ranks[root] += ranks[f]; /*精髓假如一开始没关系，那么用 rank 数组来表示 a，b 各自到各自祖先的距离。 那么在把 a 的祖先给 b 的祖先当父亲之后，那么 b 到祖先的距离也就是 rank[b] 就要再加上 b 原本的祖先到 a 的祖先的距离，更新一下， 其中 find 函数（找根节点的函数）里 rank[x]+=rank[pre[x]]（这里 pre 数组存的是对应数的父节点）*/ } return pre[root]; } int main(){ int n,m; while(~scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;n,\\u0026amp;m)){ int ans=0; for(int i=1; i\\u0026lt;=n; i++) pre[i]=i; memset(ranks,0,sizeof(ranks)); while(m--){ int a,b,c; scanf(\\u0026#34;%d%d%d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;c); a--;//[a,b]~~(a--,b] int fa=find(a); int fb=find(b); if(fa!=fb){ pre[fb]=fa;//注意合并顺序，反过来下面的也要改 ranks[fb]=ranks[a]-ranks[b]+c;//更新距离 } else { if(ranks[b]-ranks[a]!=c) ans++; } } printf(\\u0026#34;%d\\\\n\\u0026#34;,ans); } return 0; } \",\"date\":\"2018-08-01\",\"objectID\":\"/posts/hdu3038/:0:0\",\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"uri\":\"/posts/hdu3038/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接：Bear and Finding Criminals 大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。 一定能确定该城市有小偷的几种情况： 警察所住城市有罪犯，则一定能检测到 警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的） 警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int t[107]; int main() { int n, a; while(cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;a){ int sum = 0; for(int i =1; i \\u0026lt;= n; i++) cin \\u0026gt;\\u0026gt; t[i]; if(t[a]) sum++;//小熊所在城市有罪犯 for(int i = 1; i \\u0026lt;= n; i++){ if(a-i \\u0026gt; 0\\u0026amp;\\u0026amp;a+i \\u0026lt;= n) { if(t[a-i] == 1\\u0026amp;\\u0026amp;t[a+i] == 1) sum+=2; } else if(a-i \\u0026lt;= 0\\u0026amp;\\u0026amp;a+i \\u0026lt;= n){//警察在第一个点 if(t[a+i]) sum++; } else if(a-i \\u0026gt; 0\\u0026amp;\\u0026amp;a+i \\u0026gt; n){ if(t[a-i]) sum++; } } cout \\u0026lt;\\u0026lt;sum\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/codeforces680b/:0:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"uri\":\"/posts/codeforces680b/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"题目链接：Bear and Five Cards 大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。 没有想得那么复杂，由于分数最大才 100，所以直接暴力就好了。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int a[5],b[107],i,j,sum=0,sum1=0; for(i=0;i\\u0026lt;5;i++){ cin\\u0026gt;\\u0026gt;a[i]; sum+=a[i]; } sort(a,a+5); memset(b,0,sizeof(b)); for(i=0;i\\u0026lt;5;i++) b[a[i]]++; for(i=0;i\\u0026lt;107;i++){ if(b[i]==2) sum1=max(2*i,sum1); if(b[i]\\u0026gt;=3) {sum1=max(3*i,sum1);/*cout\\u0026lt;\\u0026lt;3*i\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;\\u0026lt;\\u0026lt;sum1\\u0026lt;\\u0026lt;endl;*/} } cout\\u0026lt;\\u0026lt;sum-sum1\\u0026lt;\\u0026lt;endl; return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/codeforces680a/:0:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"title\":\"Bear and Five Cards-Codeforces680A\",\"uri\":\"/posts/codeforces680a/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int pre[1005]; int find(int root){ int son,t; son=root; while(root!=pre[root]) root=pre[root]; while(son!=root){ t=pre[son]; pre[son]=root; son=t; } return root; } int main(){ int n,m,t,sum,root1,root2; cin\\u0026gt;\\u0026gt;t; while(t--){ cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;m; sum=n; for(int i=1;i\\u0026lt;=n;i++) pre[i]=i; for(int i=0;i\\u0026lt;m;i++){ cin\\u0026gt;\\u0026gt;root1\\u0026gt;\\u0026gt;root2; int xx=find(root1); int yy=find(root2); if(xx!=yy){ pre[xx]=yy; sum--; } } cout\\u0026lt;\\u0026lt;sum\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/how-tables/:0:0\",\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"uri\":\"/posts/how-tables/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 题目链接：The-suspects \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:1:0\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#题目链接the-suspects\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？ \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:2:0\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#翻译\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.1 Input 多样例输入。 每个测试用例以两个整数 n 和 m 开头，其中 n 为人数，m 为犯罪集团数。你可以假定 0 \\u0026lt; n \\u0026lt;= 30000 和 0 \\u0026lt;= m \\u0026lt;= 500。在所有的情况下，每个人都有自己独特的整数编号 0 到 n−1, 且 0 号是公认的嫌疑犯。 接下来 m 行输入，每个犯罪集团一行。每一行从一个整数 k 开始，它本身表示集团内成员的数量。按照成员的数量，在这个组中有 k 个整数表示人员。一行中的所有整数都被至少一个空格隔开。 n = 0 且 m = 0 时输入结束。 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:2:1\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.2 Output 对于每个样例，输出嫌疑犯人数。 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:2:2\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.3 Sample Input 100 4 2 1 2 5 10 13 11 12 14 2 0 1 2 99 2 200 2 1 5 5 1 2 3 4 5 1 0 0 0 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:2:3\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.4 Sample Output 4 1 这题也很好理解，AC 代码如下： #include\\u0026lt;cstdio\\u0026gt; int pre[30010],x[30010]; int find(int root){ int son,t; son=root; while(root!=pre[root]) root=pre[root]; while(son!=root){ t=pre[son]; pre[son]=root; son=t; } return root; } void join(int x,int y){ int fx=find(x),fy=find(y); if(fx!=fy) pre[fy]=fx; } int main(){ int n,m,i,k,sum; while(scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;n,\\u0026amp;m),n||m){ sum=0; for(i=0;i\\u0026lt;n;i++) pre[i]=i; while(m--){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;k); for(i=0;i\\u0026lt;k;i++) scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;x[i]); for(i=1;i\\u0026lt;k;i++) join(x[i-1],x[i]); } for(i=0;i\\u0026lt;n;i++) if(find(0)==find(i)) sum++;//再次查找并压缩路径，注不用 pre[i] printf(\\u0026#34;%d\\\\n\\u0026#34;,sum); } return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-1611/:2:4\",\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"title\":\"The-suspects-POJ-1611（并查集）\",\"uri\":\"/posts/poj-1611/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 题目链接：wireless network \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:1:0\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#题目链接wireless-network\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 翻译 南亚发生了一次地震。ACM (Asia Cooperated Medical 亚洲联合医疗队）已经为膝上型电脑搭建了一个无线网络，但受到了一次不可预知的余震攻击，因此网络中的所有电脑都被破坏了。电脑被逐台修复，网络逐步恢复了工作。由于受到硬件的约束，每台电脑只能与距离它不超过 d 米的其它电脑直接通信。但每台电脑可被看作其它两台电脑的通信中转点，也就是说，如果电脑 A 和电脑 B 可以直接通信，或存在一台电脑 C 既可与 A 也可与 B 通信，那么电脑 A 和电脑 B 之间就能够通信。 在处理网络修复的过程中，工作人员们在任何一个时刻，可以执行两种操作：维修一台电脑，或测试两台电脑是否能够通信。请您找出全部的测试操作。 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:0\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#翻译\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.1 输入 第一行包含了两个整数 N 和 d (1 \\u0026lt;= N \\u0026lt;= 1001, 0 \\u0026lt;= d \\u0026lt;= 20000)。此处 N 是电脑的数目，编号从 1 到 N；同时，D 是两台电脑之间能够直接通信的最大距离。接下来的 N 行，每行包含两个整数 xi, yi (0 \\u0026lt;= xi, yi \\u0026lt;= 10000)，表示 N 台电脑的坐标。从第 (N+1) 行到输入结束，是逐一执行的操作，每行包含一个操作，格式是以下两者之一： \\u0026ldquo;O p\\u0026rdquo; (1 \\u0026lt;= p \\u0026lt;= N)，表示维护电脑 p。。 \\u0026ldquo;S p q\\u0026rdquo; (1 \\u0026lt;= p, q \\u0026lt;= N)，表示测试电脑 p 和 q 是否能够通信。 输入不超过 300000 行。 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:1\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.2 输出 对于每个测试操作，如果两台电脑能够通信，则打印 \\u0026ldquo;SUCCESS\\u0026rdquo;；否则，打印 \\u0026ldquo;FAIL\\u0026rdquo;。 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:2\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.3 示例输入 4 1 0 1 0 2 0 3 0 4 O 1 O 2 O 4 S 1 4 O 3 S 1 4 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:3\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#示例输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.4 示例输出 FAIL SUCCESS \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:4\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#示例输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10.5 AC 代码 #include \\u0026#34;iostream\\u0026#34; #include \\u0026#34;cstring\\u0026#34; using namespace std; int pre[1005]; int x[1005],y[1005],use[1005]; int findd(int root){ int son,t; son=root; while(root!=pre[root]) root=pre[root]; while(son!=root){ t=pre[son]; pre[son]=root; son=t; } return root; } void join(int x,int y){ int fx=findd(x),fy=findd(y); if(fx!=fy) pre[fx]=fy; } int dis(int i,int num,int d){ d=d*d; int xx=x[i]-x[num]; int yy=y[i]-y[num]; if((xx*xx+yy*yy)\\u0026lt;=d) return 1; return 0; } int main(){ int n,d; char s; memset(use,0,sizeof(use)); cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;d; for(int i=0;i\\u0026lt;=n;i++) pre[i]=i; for(int i=1;i\\u0026lt;=n;i++) cin\\u0026gt;\\u0026gt;x[i]\\u0026gt;\\u0026gt;y[i]; while(cin\\u0026gt;\\u0026gt;s){ if(s==\\u0026#39;O\\u0026#39;){ int num; cin\\u0026gt;\\u0026gt;num; use[num]=1; findd(num);//路径压缩 for(int i=1;i\\u0026lt;=n;i++) if(i!=num\\u0026amp;\\u0026amp;use[i]==1\\u0026amp;\\u0026amp;dis(i,num,d))//修好了，且可以被合并（自己除外） join(i,num); } else if(s==\\u0026#39;S\\u0026#39;){ int q,p; cin\\u0026gt;\\u0026gt;q\\u0026gt;\\u0026gt;p; if(findd(q)==findd(p)) cout\\u0026lt;\\u0026lt;\\u0026#34;SUCCESS\\u0026#34;\\u0026lt;\\u0026lt;endl; else cout\\u0026lt;\\u0026lt;\\u0026#34;FAIL\\u0026#34;\\u0026lt;\\u0026lt;endl; } } return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/poj-2236/:2:5\",\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"wireless network-POJ-2236（并查集）\",\"uri\":\"/posts/poj-2236/#ac-代码\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"Codeforces Round #500 (Div. 2) 题目链接：Piles With Stones 大致题意就是有 n 堆石头，第一天每堆有一定数目的石头，第二天石头可能被小朋友移动或者带走，求满足题意的两天的石碓； 所以第二天的石头总数不会大于第一天的，所以是 sum1-sum2\\u0026gt;=0 即可。 //又只打了一道题，扣了 80 多分。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int x[55],y[55],n,s1=0,s2=0; int main(){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n); for(int i=0;i\\u0026lt;n;i++){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;x[i]); s1+=x[i]; } for(int i=0;i\\u0026lt;n;i++){ scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;y[i]); s2+=y[i]; } if((s1-s2)\\u0026gt;=0) printf(\\u0026#34;Yes\\\\n\\u0026#34;); else printf(\\u0026#34;No\\\\n\\u0026#34;); return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/piles-with-stones/:0:0\",\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"title\":\"Piles-with-stones\",\"uri\":\"/posts/piles-with-stones/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 并查集入门推荐：超有爱的并查集~ \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:1:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#并查集入门推荐超有爱的并查集\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 题目链接：畅通工程 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:2:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#题目链接畅通工程\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。 #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;cstdio\\u0026gt; using namespace std; int pre[1010]; int findd(int root){ int son,t; son=root; while(root!=pre[root]) root=pre[root]; while(son!=root){ t=pre[son]; pre[son]=root; son=t; } return root; } int main(){ int n,m,i,sum,r1,r2,star,end1; while(scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n)\\u0026amp;\\u0026amp;n){ sum=n-1; for(i=1;i\\u0026lt;=n;i++) pre[i]=i; scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;m); while(m--){ scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;star,\\u0026amp;end1); r1=findd(star); r2=findd(end1); if(r1!=r2){ pre[r1]=r2; sum--; } } printf(\\u0026#34;%d\\\\n\\u0026#34;,sum); } return 0; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:3:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#题意分析\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 基础回顾 \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:4:0\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#基础回顾\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20.1 find() 函数找根结点的两种写法如下 第一种递归： int find(int x) { return x == pre[x] ? x : find(pre[x]); } 第二种： int find(int x) { int root, temp; root = x; while(root != pre[root]) root = pre[root]; while(x != root) { temp = pre[x]; pre[temp] = root; x = temp; } return root; } 20.1.1 合并函数 void join(int x,int y){ int fx=find(x); int fy=find(y); if(fx!=fy) pre[fx]=fy; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:4:1\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#find-函数找根结点的两种写法如下\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20.1 find() 函数找根结点的两种写法如下 第一种递归： int find(int x) { return x == pre[x] ? x : find(pre[x]); } 第二种： int find(int x) { int root, temp; root = x; while(root != pre[root]) root = pre[root]; while(x != root) { temp = pre[x]; pre[temp] = root; x = temp; } return root; } 20.1.1 合并函数 void join(int x,int y){ int fx=find(x); int fy=find(y); if(fx!=fy) pre[fx]=fy; } \",\"date\":\"2018-07-31\",\"objectID\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/:4:1\",\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"uri\":\"/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/#合并函数\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"两题水过，暴力，找规律。 \",\"date\":\"2018-07-27\",\"objectID\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/:0:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"title\":\"牛客练习赛 23\",\"uri\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 托米的赌球 \",\"date\":\"2018-07-27\",\"objectID\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/:1:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"title\":\"牛客练习赛 23\",\"uri\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/#托米的赌球\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 托米的划分 \",\"date\":\"2018-07-27\",\"objectID\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/:2:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"title\":\"牛客练习赛 23\",\"uri\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/#托米的划分\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 a #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int c[13],d[13]={100,50,20,10,5,2,1,50,20,10,5,2,1}; int i,t; cin\\u0026gt;\\u0026gt;t; int a,b; while(t--){ memset(c,0,sizeof(c)); cin\\u0026gt;\\u0026gt;a\\u0026gt;\\u0026gt;b; for(i=0;i\\u0026lt;7;i++){ int x=0; if(a\\u0026gt;c[i]){ x=a/d[i]; c[i]+=x; a-=x*d[i]; } for(i=7;i\\u0026lt;13;i++){ int x=0; if(b\\u0026gt;c[i]){ x=b/d[i]; c[i]+=x; b-=x*d[i]; } cout\\u0026lt;\\u0026lt;c[0]; for(i=1;i\\u0026lt;13;i++) cout\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;\\u0026lt;\\u0026lt;c[i]; cout\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-27\",\"objectID\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/:3:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"title\":\"牛客练习赛 23\",\"uri\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/#a\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 b f(n)=f(n-1)+n-1; #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; long long sum; int main(){ int n; int t; cin\\u0026gt;\\u0026gt;t; while(t--){ sum=1; cin\\u0026gt;\\u0026gt;n; if(n==1) sum=0; for(int i=3;i\\u0026lt;=n;i++) sum+=i-1; cout\\u0026lt;\\u0026lt;sum\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-27\",\"objectID\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/:4:0\",\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"title\":\"牛客练习赛 23\",\"uri\":\"/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/#b\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。 在计算机科学中，一个在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。相对的，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。例如，选择排序在排序前就需要知道所有待排序元素，然而插入排序就不必。 因为在线算法并不知道整个的输入，所以它被迫做出的选择最后可能会被证明不是最优的，对在线算法的研究主要集中在当前环境下怎么做出选择。对相同问题的在线算法和离线算法的对比分析形成了以上观点。如果想从其他角度了解在线算法可以看一下流算法（关注精确呈现过去的输入所使用的内存的量），动态算法（关注维护一个在线输入的结果所需要的时间复杂度）和在线机器学习。 一个很好的展示在线算法概念的例子是 加拿大旅行者问题，这个问题的目标是在一个有权图中以最小的代价到达一个目标节点，但这个有权图中有些边是不可靠的可能已经被剔除。然而一个旅行者只有到某个边的一个端点时才能确定该边是否已经被移除了。最坏情况下，该问题会变得简单了，即所有的不确定的边都被移除该问题将会变成通常的最短路径问题。 \",\"date\":\"2018-07-26\",\"objectID\":\"/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/:1:0\",\"tags\":[\"在线离线算法\"],\"title\":\"在线离线算法\",\"uri\":\"/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/#在线算法\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"2 离线算法 离线算法 ( off line algorithms)，是指基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果。 设计策略 在执行算法前输入已知的基本假设 前提 具有问题完全信息 算法设计策略都是基于在执行算法前输入数据已知的基本假设，也就是说，对于一个离线算法，在开始时就需要知道问题的所有输入数据，而且在解决一个问题后就要立即输出结果，通常将这类具有问题完全信息前提下设计出的算法称为离线算法 ( off line algorithms) \",\"date\":\"2018-07-26\",\"objectID\":\"/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/:2:0\",\"tags\":[\"在线离线算法\"],\"title\":\"在线离线算法\",\"uri\":\"/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/#离线算法\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"非常可乐 大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。 \",\"date\":\"2018-07-24\",\"objectID\":\"/posts/hdu-1495/:0:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"uri\":\"/posts/hdu-1495/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 Input 三个整数 : S 可乐的体积 , N 和 M 是两个杯子的容量，以\\u0026quot;0 0 0\\u0026quot;结束。 \",\"date\":\"2018-07-24\",\"objectID\":\"/posts/hdu-1495/:1:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"uri\":\"/posts/hdu-1495/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 Output 如果能平分的话请输出最少要倒的次数，否则输出\\u0026quot;NO\\u0026quot;。 \",\"date\":\"2018-07-24\",\"objectID\":\"/posts/hdu-1495/:2:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"uri\":\"/posts/hdu-1495/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 Sample Input 7 4 3 4 1 3 0 0 0 \",\"date\":\"2018-07-24\",\"objectID\":\"/posts/hdu-1495/:3:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"uri\":\"/posts/hdu-1495/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 Sample Output NO 3 模拟一下倒水的过程，一共有三种倒法，a 向 bc，b 向 ac，c 向 ab。（相当于一共六个方向）搜索并记录搜索过的过程就好了。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int a,b,c; int used[111][111][111]; struct node { int x,y,z; int step; }m,n; int bfs() { queue\\u0026lt;node\\u0026gt;q; m.x = a; m.y = 0; m.z = 0; m.step = 0; used[a][0][0] = 1; q.push(m); while (!q.empty()) { int trans; //倒水量 m = q.front(); q.pop(); //成功分好的三种情况 if ((m.x == 0 \\u0026amp;\\u0026amp; m.y == m.z) || (m.y == 0 \\u0026amp;\\u0026amp; m.x == m.z) || (m.z == 0 \\u0026amp;\\u0026amp; m.x == m.y)) return m.step; //下面开始 6 个搜索（由一个杯子向另外两个倒水） if (m.x) { //第一 trans = min(m.x , b - m.y);//自己模拟一下倒水过程就知道了 n.x = m.x - trans; n.y = m.y + trans; n.z = m.z; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { q.push(n); used[n.x][n.y][n.z] = 1; } //第二 trans = min(m.x , c - m.z); n.x = m.x - trans; n.y = m.y; n.z = m.z + trans; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { q.push(n); used[n.x][n.y][n.z] = 1; } } if (m.y) { //第三 trans = min(m.y , a - m.x); n.x = m.x + trans; n.y = m.y - trans; n.z = m.z; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { used[n.x][n.y][n.z] = 1; q.push(n); } //第四 trans = min(m.y , c - m.z); n.x = m.x; n.y = m.y - trans; n.z = m.z + trans; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { used[n.x][n.y][n.z] = 1; q.push(n); } } if (m.z) { //第五 trans = min(m.z , a - m.x); n.x = m.x + trans; n.y = m.y; n.z = m.z - trans; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { used[n.x][n.y][n.z] = 1; q.push(n); } //第六 trans = min(m.z , b - m.y); n.x = m.x; n.y = m.y + trans; n.z = m.z - trans; n.step = m.step + 1; if (!used[n.x][n.y][n.z]) { q.push(n); used[n.x][n.y][n.z] = 1; } } } return 0; } int main() { while (~scanf (\\u0026#34;%d %d %d\\u0026#34;,\\u0026amp;a,\\u0026amp;b,\\u0026amp;c) \\u0026amp;\\u0026amp; (a || b || c)) { if (a\\u0026amp;1) //先简单的剪枝一下，奇数肯定不能平分 printf (\\u0026#34;NO\\\\n\\u0026#34;); else { memset (used,0,sizeof (used)); int ans = bfs(); if (ans) printf (\\u0026#34;%d\\\\n\\u0026#34;,ans); else printf (\\u0026#34;NO\\\\n\\u0026#34;); } } return 0; } 然后杭电上讨论板子上提供一种数论题解，但是数据存在一点问题，只不过有些数据好像不对；比如：10 6 5 的结果应该是 1 而不是 9，也提示我们多维思考同一个问题！ 数论推导 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int s,n,m; while(cin\\u0026gt;\\u0026gt;s\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;m,s+n+m){ s/=__gcd(n,m); if(s\\u0026amp;1)//奇数 cout\\u0026lt;\\u0026lt;\\u0026#34;NO\\\\n\\u0026#34;; else cout\\u0026lt;\\u0026lt;s-1\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-24\",\"objectID\":\"/posts/hdu-1495/:4:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"uri\":\"/posts/hdu-1495/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"Find a way 圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢） \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:0:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"21 Input 多组测试数据 每组数据，开始一行 n，m (2\\u0026lt;=n,m\\u0026lt;=200) 接下来是个 n x m 的矩阵 \\u0026lsquo;Y\\u0026rsquo; 表示坤神所在的初始位置 \\u0026lsquo;M\\u0026rsquo; 表示瑞瑞所在的初始位置 \\u0026lsquo;#\\u0026rsquo; 该点禁止通行 \\u0026lsquo;.\\u0026rsquo; 该点可通行 \\u0026lsquo;@\\u0026rsquo; 召唤师大峡谷 \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:1:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"22 Output 每组测试数据，输出坤神和瑞瑞到达同一个召唤师大峡谷所花费的最短时间。 \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:2:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"23 Sample Input 4 4 Y.#@ .... .#.. @..M 4 4 Y.#@ .... .#.. @#.M 5 5 Y..@. .#... @..M. `#...#` \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:3:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24 Sample Output 66 88 66 \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:4:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 Hint 对于第一组样例，坤神和瑞瑞去矩阵（4,1）这个召唤师大峡谷，耗费的时间为 3 ✖️ 11 + 3 ✖️ 11 = 66，去矩阵（1,4）这个召唤师大峡谷，耗费的时间为 5 ✖️ 11 + 3 ✖️ 11 = 88。所以，最终答案：66。思路参考 写代码总是好粗心！！ #include \\u0026lt;bits/stdc++.h\\u0026gt; #define inf 0x3f3f3f3f //acm 中“无穷大”的一般定义 using namespace std; const int M=202; char mp[M][M]; //地图 int a[M][M],b[M][M]; bool vis[M][M]; //标记数组 int n,m; int ans; struct node { int x,y,step; }; void init() //初始化函数 { ans=inf; for(int i=0; i\\u0026lt;n; i++) for(int j=0; j\\u0026lt;m; j++) { a[i][j]=inf; b[i][j]=inf; } } void bfs(int x,int y,bool flag){ int dir[4][2]={-1,0,1,0,0,1,0,-1}; node u,v; queue\\u0026lt;node\\u0026gt; q; //初始化队列第一个元素 u.x=x; u.y=y; u.step=0; vis[x][y]=true; q.push(u); while(!q.empty()){ u=q.front(); q.pop(); if(mp[u.x][u.y]==\\u0026#39;@\\u0026#39;){ if(!flag) a[u.x][u.y]=u.step; else b[u.x][u.y]=u.step; } for(int i=0;i\\u0026lt;4;i++){ int tx=u.x+dir[i][0]; int ty=u.y+dir[i][1]; if(tx\\u0026gt;=0\\u0026amp;\\u0026amp;ty\\u0026gt;=0\\u0026amp;\\u0026amp;tx\\u0026lt;n\\u0026amp;\\u0026amp;ty\\u0026lt;m\\u0026amp;\\u0026amp;!vis[tx][ty]\\u0026amp;\\u0026amp;mp[tx][ty]!=\\u0026#39;#\\u0026#39;){//注意@和 M，Y 也是可以走的。 v.x=tx; //每次写搜索都忘记 vis!!!! v.y=ty; vis[tx][ty]=true; //我总是忘记。 v.step=u.step+1; q.push(v); } } } } int main() { while(~scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;n,\\u0026amp;m)) { init(); for(int i=0; i\\u0026lt;n; i++) scanf(\\u0026#34;%s\\u0026#34;,mp[i]); for(int i=0; i\\u0026lt;n; i++) for(int j=0; j\\u0026lt;m; j++) { if(mp[i][j]==\\u0026#39;Y\\u0026#39;) { memset(vis,false,sizeof(vis)); bfs(i,j,false); } if(mp[i][j]==\\u0026#39;M\\u0026#39;) { memset(vis,false,sizeof(vis)); //记得再次初始化标记数组 bfs(i,j,true); } } for(int i=0; i\\u0026lt;n; i++) for(int j=0; j\\u0026lt;m; j++) if(mp[i][j]==\\u0026#39;@\\u0026#39;) ans=min(ans,a[i][j]+b[i][j]); printf(\\u0026#34;%d\\\\n\\u0026#34;,ans*11); } return 0; } \",\"date\":\"2018-07-23\",\"objectID\":\"/posts/hdu-2612/:5:0\",\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"title\":\"hdu-2612-Find a way（双 bfs）\",\"uri\":\"/posts/hdu-2612/#hint\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting. Walking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it? \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:0:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 Input Line 1: Two space-separated integers: N and K \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:1:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"26 Output Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:2:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"27 Sample Input 5 17 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:3:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"28 Sample Output 4 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:4:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"29 Hint The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:5:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#hint\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"30 题意 农场主的牛不见了，主人和牛在一条直线上，且牛没有新的目标，它不会走动，主人的位置是你 n，牛的位置是 k，主人可以有三种走路的方法，右左（距离+-1），闪现（距离+x,x 为当前位置），每走一步，一分钟，问几分钟主人能找到牛。bfs 搜索方向即为三个“方向”。搜索所有走法； #include\\u0026#34;iostream\\u0026#34; #include\\u0026lt;queue\\u0026gt; #include\\u0026#34;string.h\\u0026#34; using namespace std; int n,k; bool sign[200007]; struct node{ int x,step; }; bool check(int a) { if(!sign[a]\\u0026amp;\\u0026amp;a\\u0026gt;=0\\u0026amp;\\u0026amp;a\\u0026lt;110000) return true; return false; } void bfs() { node u,v; queue\\u0026lt;node\\u0026gt; q; v.x=n;//初始化起点 v.step=0; q.push(v); sign[v.x]=true; while(!q.empty()){ u=q.front(); q.pop(); if(u.x==k){ cout\\u0026lt;\\u0026lt;u.step\\u0026lt;\\u0026lt;endl; return ; } //三种前进方向，左右和闪现 v=u; v.x++; v.step++; if(check(v.x)){ sign[v.x]=true; q.push(v); } v=u; v.x--; v.step++; if(check(v.x)){ sign[v.x]=true; q.push(v); } v=u; v.x=2*v.x; v.step++; if(check(v.x)){ sign[v.x]=true; q.push(v); } } } int main() { cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;k; memset(sign,0,sizeof(sign)); bfs(); return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3278/:6:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"uri\":\"/posts/poj-3278/#题意\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"英文原题链接 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:0:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"21 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！ 空间由立方体单位构成 你每次向上下前后左右移动一个单位需要一分钟 你不能对角线移动并且四周封闭 是否存在逃出生天的可能性？如果存在，则需要多少时间？ \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:1:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#description---题目描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"22 Input - 输入 输入第一行是一个数表示空间的数量。 每个空间的描述的第一行为 L，R 和 C（皆不超过 30）。 L 表示空间的高度。R 和 C 分别表示每层空间的行与列的大小。 随后 L 层地牢，每层 R 行，每行 C 个字符。 每个字符表示空间的一个单元。\\u0026rsquo;#\\u0026lsquo;表示不可通过单元，\\u0026rsquo;.\\u0026lsquo;表示空白单元。你的起始位置在\\u0026rsquo;S\\u0026rsquo;，出口为\\u0026rsquo;E\\u0026rsquo;。 每层空间后都有一个空行。L，R 和 C 均为 0 时输入结束。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:2:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#input---输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"23 Output - 输出 每个空间对应一行输出。 如果可以逃生，则输出如下 Escaped in x minute(s). x 为最短脱离时间。 如果无法逃生，则输出如下 Trapped! \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:3:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#output---输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24 Sample Input - 输入样例 3 4 5 S.... .###. .##.. ###.# ##### ##.## ##... ##### #.### ####E 1 3 3 S## #E# ### 0 0 0 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:4:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#sample-input---输入样例\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 Sample Output - 输出样例 Escaped in 11 minute(s). Trapped! 类似二维四个方向的 bfs 最短路，改成上下东西南北就行了，三维 bfs 最短路 #include \\u0026lt;iostream\\u0026gt; #include \\u0026lt;stdio.h\\u0026gt; #include \\u0026lt;string.h\\u0026gt; #include \\u0026lt;queue\\u0026gt; #include \\u0026lt;algorithm\\u0026gt; using namespace std; char map[35][35][35]; int vis[35][35][35]; int k,n,m,sx,sy,sz,ex,ey,ez; int to[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}};//上下东西南北 struct node { int x,y,z,step; }; int check(int x,int y,int z)//检查是否可走 { if(x\\u0026lt;0 || y\\u0026lt;0 || z\\u0026lt;0 || x\\u0026gt;=k || y\\u0026gt;=n || z\\u0026gt;=m)//越界判断 return 1; else if(map[x][y][z] == \\u0026#39;#\\u0026#39;) return 1; else if(vis[x][y][z]) return 1; return 0; } int bfs() { int i; node a,next; queue\\u0026lt;node\\u0026gt; Q; a.x = sx,a.y = sy,a.z = sz; a.step = 0; vis[sx][sy][sz] = 1; Q.push(a); while(!Q.empty()) { a = Q.front(); Q.pop(); if(a.x == ex \\u0026amp;\\u0026amp; a.y == ey \\u0026amp;\\u0026amp; a.z == ez) return a.step; for(i = 0; i\\u0026lt;6; i++) { next = a; next.x = a.x+to[i][0]; next.y = a.y+to[i][1]; next.z = a.z+to[i][2]; if(check(next.x,next.y,next.z)) continue; vis[next.x][next.y][next.z] = 1; next.step = a.step+1; Q.push(next); } } return 0; } int main() { int i,j,r; while(scanf(\\u0026#34;%d%d%d\\u0026#34;,\\u0026amp;k,\\u0026amp;n,\\u0026amp;m),n+m+k) { for(i = 0; i\\u0026lt;k; i++) { for(j = 0; j\\u0026lt;n; j++) { scanf(\\u0026#34;%s\\u0026#34;,map[i][j]); for(r = 0; r\\u0026lt;m; r++) { if(map[i][j][r] == \\u0026#39;S\\u0026#39;) { sx = i,sy = j,sz = r; } else if(map[i][j][r] == \\u0026#39;E\\u0026#39;) { ex = i,ey = j,ez = r; } } } } memset(vis,0,sizeof(vis)); int ans; ans = bfs(); if(ans) printf(\\u0026#34;Escaped in %d minute(s).\\\\n\\u0026#34;,ans); else printf(\\u0026#34;Trapped!\\\\n\\u0026#34;); } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-2251/:5:0\",\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"uri\":\"/posts/poj-2251/#sample-output---输出样例\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63659 Accepted: 30423 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:0:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"33 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:1:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#description\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"34 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数，n k，用一个空格隔开，表示了将在一个 n * n 的矩阵内描述棋盘，以及摆放棋子的数目。n \\u0026lt;= 8 , k \\u0026lt;= n 当为 -1 -1 时表示输入结束。 随后的 n 行描述了棋盘的形状：每行有 n 个字符，其中 # 表示棋盘区域， . 表示空白区域（数据保证不出现多余的空白行或者空白列）。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:2:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"35 Output 对于每一组数据，给出一行输出，输出摆放的方案数目 C（数据保证 C\\u0026lt;2^31）。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:3:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"36 Sample Input 2 1 #. .# 4 4 ...# ..#. .#.. #... -1 -1 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:4:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"37 Sample Output 2 1 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:5:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"38 Source 蔡错@pku \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:6:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#source\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"39 思路 下子方案数就相当于遍历图的不同遍历数，用 dfs 变形。 理解以下数据还有样例应该差不多了 3 2 #.. .#. ..# 3 3 2 #.. .## ..# 4 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:7:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#思路\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"40 AC 代码 #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;cstdio\\u0026gt; #include\\u0026lt;cstring\\u0026gt; #include\\u0026lt;algorithm\\u0026gt; using namespace std; char mp[8][8]; int v[8]; int n,k,w,r;//状态计数器 r void dfs(int x)//逐行深搜，x 为当前搜索行 { if(w==k)//下子数 w { r++;return; } if(x==n)return; for(int i=0;i\\u0026lt;n;i++) { if(v[i]!=1\\u0026amp;\\u0026amp;mp[x][i]==\\u0026#39;#\\u0026#39;) { v[i]=1; w++; dfs(x+1); w--; v[i]=0; } } dfs(x+1);//搜索下一行 } int main() { while(cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;k) { if(n==-1\\u0026amp;\\u0026amp;k==-1) return 0; memset(mp,0,sizeof(mp)); memset(v,0,sizeof(v)); for(int i=0;i\\u0026lt;n;i++) cin\\u0026gt;\\u0026gt;mp[i]; w=0;r=0; dfs(0); cout\\u0026lt;\\u0026lt;r\\u0026lt;\\u0026lt;endl; } } 传送门 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1321/:8:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1321 棋盘问题（dfs）\",\"uri\":\"/posts/poj-1321/#ac-代码\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40713 Accepted: 17088 Special Judge \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:0\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#find-the-multiple\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:1\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#description\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.2 Input The input file may contain multiple test cases. Each line contains a value of n (1 \\u0026lt;= n \\u0026lt;= 200). A line containing a zero terminates the input. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:2\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.3 Output For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:3\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.4 Sample Input 2 6 19 0 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:4\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.5 Sample Output 10 100100100100100100 111111111111111111 给定一个正整数 n，请编写一个程序来寻找 n 的一个非零的倍数 m，这个 m 应当在十进制表示时每一位上只包含 0 或者 1。你可以假定 n 不大于 200 且 m 不多于 100 位。 提示：本题采用 Special Judge，你无需输出所有符合条件的 m，你只需要输出任一符合条件的 m 即可。 #include\\u0026#34;iostream\\u0026#34; using namespace std; typedef unsigned long long ll; int n; bool sign; void dfs(ll x,int count) { if(sign) return ; if(x%n==0){ sign=true; cout\\u0026lt;\\u0026lt;x\\u0026lt;\\u0026lt;endl; return ; } if(count==19)//m 最多 200 位 return ; dfs(x*10,count+1); dfs(x*10+1,count+1); //每两位数后两位有两种情况，10 或 11，深搜所有情况，找到一种就返回，找不到找另外一颗子树 } int main() { while(cin\\u0026gt;\\u0026gt;n\\u0026amp;\\u0026amp;n) { sign=false; dfs(1,0); } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-1426/:1:5\",\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"title\":\"poj-1426-Find The Multiple(dfs)\",\"uri\":\"/posts/poj-1426/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"Codeforces Round 498 (Div. 3) A. Adjacent Replacements（水）\",\"date\":\"2018-07-22\",\"objectID\":\"/posts/adjacent-replacements/\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"title\":\"Adjacent Replacements\",\"uri\":\"/posts/adjacent-replacements/\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"A. Adjacent Replacements 第一次打 cf 就做出一道这样的找规律的题，打到自闭。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int main(){ int n,a[1001]; cin\\u0026gt;\\u0026gt;n; int i; int flag=0; for(i=0;i\\u0026lt;n;i++){ cin\\u0026gt;\\u0026gt;a[i]; if(!(a[i]\\u0026amp;1)) a[i]--; if(!flag) {cout\\u0026lt;\\u0026lt;a[i];flag=1;} else cout\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;\\u0026lt;\\u0026lt;a[i]; } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/adjacent-replacements/:0:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"title\":\"Adjacent Replacements\",\"uri\":\"/posts/adjacent-replacements/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 32323 Accepted: 18471 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:0:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 Description 定义一个二维数组： int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:1:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#description\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"26 Input 一个 5 × 5 的二维数组，表示一个迷宫。数据保证有唯一解。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:2:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"27 Output 左上角到右下角的最短路径，格式如样例所示。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:3:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"28 Sample Input 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:4:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"29 Sample Output (0, 0) (1, 0) (2, 0) (2, 1) (2, 2) (2, 3) (2, 4) (3, 4) (4, 4) 对于新手来说，主要是 bfs 路径的问题有点难度，搞得晕晕的。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:5:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"30 题解 #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;cstring\\u0026gt; using namespace std; int map[5][5]; int visited[5][5]; int dx[4]={0, 1, 0, -1}; int dy[4]={ 1, 0,-1, 0}; int head,tail; struct node{ int xx,yy; int fa;//父节点 }pre[25],way[25]; void BFS(int x,int y) { int x1,y1; visited[x][y]=1; pre[0].xx=x,pre[0].yy=y; while(tail\\u0026gt;head)//栈空 { x=pre[head].xx; y=pre[head].yy; if(x==4\\u0026amp;\\u0026amp;y==4)//结束标志 return ; for(int i=0;i\\u0026lt;4;i++) { x1=x+dx[i];y1=y+dy[i]; if(x1\\u0026gt;=0\\u0026amp;\\u0026amp;x1\\u0026lt;=4\\u0026amp;\\u0026amp;y1\\u0026gt;=0\\u0026amp;\\u0026amp;y1\\u0026lt;=4) if(map[x1][y1]==0\\u0026amp;\\u0026amp;!visited[x1][y1]) { pre[tail].xx=x1; pre[tail].yy=y1; pre[tail].fa=head; visited[x1][y1]=1; tail+=1;//入栈 } } head++;//相当于出栈 } } int main() { int i,j; ios::sync_with_stdio(false); memset(map,0,sizeof(map)); memset(visited,0,sizeof(visited)); for(i=0;i\\u0026lt;5;i++) for(j=0;j\\u0026lt;5;j++) cin\\u0026gt;\\u0026gt;map[i][j]; BFS(0,0); i=0; while(head)//逆序进行赋值输出就是通路 { way[i].xx=pre[head].xx; way[i].yy=pre[head].yy; head=pre[head].fa; i++; } //画一下队列 way[i].xx=0;way[i].yy=0; while(i!=-1) { cout\\u0026lt;\\u0026lt;\\u0026#34;(\\u0026#34;\\u0026lt;\\u0026lt;way[i].xx\\u0026lt;\\u0026lt;\\u0026#34;, \\u0026#34;\\u0026lt;\\u0026lt;way[i].yy\\u0026lt;\\u0026lt;\\u0026#34;)\\u0026#34;\\u0026lt;\\u0026lt;endl; i--; } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/poj-3984/:6:0\",\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"uri\":\"/posts/poj-3984/#题解\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"链接：https://www.nowcoder.com/acm/contest/133/A 来源：牛客网 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:0:0\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价， 现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:1:0\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#题目描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 输入描述 输入包括若干行第一行包括一个数 n，表示这棵树有 n 个节点第二行包括 n 个数，第 i 个数表示第 i 个节点的颜色 coli 注意：一个颜色的标号即价值接下来的 n - 1 行，每行包括两个数 u, v，表示 u 节点与 v 节点之间有一条无向边 n ≤ 100000, 1 ≤ coli ≤ 1e9，数据保证是一棵树 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:2:0\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#输入描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 输出描述 输出包括一行第一行包括一个数，表示最小代价 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:3:0\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#输出描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 示例 1 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:4:0\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#示例-1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20.1 输入 4 2 3 4 3 1 2 2 3 3 4 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:4:1\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20.2 输出 12 蒟蒻暴力枚举-_-! #include \\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; const int MAXN=1e5+10; int a[MAXN]; map\\u0026lt;int, int \\u0026gt;ma; set\\u0026lt;int\\u0026gt;se; int x[MAXN],y[MAXN]; int main() { int n; scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n); for (int i = 1; i \\u0026lt;=n ; ++i) { scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;a[i]); se.insert(a[i]); } for (int i = 1; i \\u0026lt;n ; ++i) { scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;x[i],\\u0026amp;y[i]); } long long ans=1e14,sum=0; set\\u0026lt;int\\u0026gt;::iterator it; for (it=se.begin(); it !=se.end() ; ++it) { sum=0; for (int j = 1; j \\u0026lt;=n ; ++j) { if((*it)!=a[j]) sum+=((*it)+a[j]); } ans=min(sum,ans); } printf(\\u0026#34;%lld\\\\n\\u0026#34;,ans); return 0; } 最后想说这都过了什么鬼，不会数据这么弱吧？？！? 我只枚举了最小的价值颜色的情况，唉，不管了不管了。 #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int a[1000000],n,m,k=1,t,ans=0; int main() { scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n); for(int i=1;i\\u0026lt;=n;++i) scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;a[i]); sort(a+1,a+n+1); for(int i=2;i\\u0026lt;=n;++i) if(a[i]!=a[1]) ans+=a[i]+a[1]; printf(\\u0026#34;%d\\u0026#34;,ans); return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/wannafly-20/:4:2\",\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 20-染色\",\"uri\":\"/posts/wannafly-20/#输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"百度知道 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1、每行数字左右对称，由 1 开始逐渐变大，然后变小，回到 1。 2、第 n 行的数字个数为 n 个。 3、第 n 行数字和为 2^(n－1)。 4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。 5、将第 2n+1 行第 1 个数，跟第 2n+2 行第 3 个数、第 2n+3 行第 5 个数……连成一线，这些数的和是第 2n 个斐波那契数。将第 2n 行第 2 个数，跟第 2n+1 行第 4 个数、第 2n+2 行第 6 个数……这些数之和是第 2n-1 个斐波那契数。 6、第 n 行的第 1 个数为 1，第二个数为 1×(n-1)，第三个数为 1×(n-1)×（n-2）/2，第四个数为 1×(n-1)×（n-2）/2×（n-3）/3…依此类推。 此数列中各行中的数字正好是二项式 a+b 乘方后，展开始终各项的系数。如： (a+b)^1=a^1+b^1 (a+b)^2=a^2+2ab+b^2 (a+b)^3=a^3+3a^2b+3ab^2+b^3 …… (a+b)^6=a^6+6a^5b+15a^4b^2+20a^3b^3+15a^2b^4+6ab^5+b^6（注意发现规律） …… 二项式展开式： \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/:0:0\",\"tags\":[\"数学\",\"杨辉三角\"],\"title\":\"杨辉三角\",\"uri\":\"/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 Oil Deposits 翻译 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 41406 Accepted Submission(s): 23977 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:0\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#oil-deposits\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:1\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#problem-description\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.2 Input The input file contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 \\u0026lt;= m \\u0026lt;= 100 and 1 \\u0026lt;= n \\u0026lt;= 100. Following this are m lines of n characters each (not counting the end-of-line characters). Each character corresponds to one plot, and is either \\u0026rsquo; * \\u0026lsquo;, representing the absence of oil, or \\u0026lsquo;@\\u0026rsquo;, representing an oil pocket. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:2\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.3 Output For each grid, output the number of distinct oil deposits. Two different pockets are part of the same oil deposit if they are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:3\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.4 Sample Input 1 1 * 3 5 *@*@* **@** *@*@* 1 8 @@****@* 5 5 ****@ *@@*@ *@**@ @@@*@ @@**@ 0 0 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:4\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.5 Sample Output 0 1 2 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:5\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.6 Source Mid-Central USA 1997 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:6\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#source\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9.7 Recommend Eddy | We have carefully selected several similar problems for you: 1016 1010 1312 1242 1240 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:1:7\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#recommend\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 思路 dfs 模板题吧，八个方向搜索；（像 i，j 这样的计数器还是写在局部比较好，我尽然被定义域的问题搞了一晚上醉了醉了。） #include\\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int n,m,s; char maze[107][107]; int vx[8]={-1,1,0,0,-1,-1,1,1}; int vy[8]={0,0,-1,1,-1,1,1,-1}; void dfs(int x,int y){ maze[x][y]=\\u0026#39;*\\u0026#39;; for(int i=0;i\\u0026lt;8;i++){ int tx=x+vx[i]; int ty=y+vy[i]; if(tx\\u0026gt;=0\\u0026amp;\\u0026amp;tx\\u0026lt;m\\u0026amp;\\u0026amp;ty\\u0026gt;=0\\u0026amp;\\u0026amp;ty\\u0026lt;n\\u0026amp;\\u0026amp;maze[tx][ty]==\\u0026#39;@\\u0026#39;) dfs(tx,ty); } } int main(){ int i,j; while(cin\\u0026gt;\\u0026gt;m\\u0026gt;\\u0026gt;n\\u0026amp;\\u0026amp;m){ s=0; for(i=0;i\\u0026lt;m;i++) cin\\u0026gt;\\u0026gt;maze[i]; for(i=0;i\\u0026lt;m;i++){//相当于不连通的情况 for(j=0;j\\u0026lt;n;j++){ if(maze[i][j]==\\u0026#39;@\\u0026#39;){ dfs(i,j); s++; } } } cout\\u0026lt;\\u0026lt;s\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/hdu-1241/:2:0\",\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"uri\":\"/posts/hdu-1241/#思路\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）. 如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离， 以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/:0:0\",\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"title\":\"BFS 求最短路\",\"uri\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 图 1 3 0 21 23 2 0 17 20 22 4 0 14 0 0 5 0 12 15 18 6 8 10 0 19 7 9 11 13 16 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/:1:0\",\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"title\":\"BFS 求最短路\",\"uri\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/#图\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 输入 6 5 1 1 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/:2:0\",\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"title\":\"BFS 求最短路\",\"uri\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/#输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 输出 1 2 4 5 6 8 10 12 14 17 20 21 23 12//最短距离 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/:3:0\",\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"title\":\"BFS 求最短路\",\"uri\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/#输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 代码 #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;queue\\u0026gt; #include\\u0026lt;cstdio\\u0026gt; #include\\u0026lt;cstring\\u0026gt; #include\\u0026lt;vector\\u0026gt; using namespace std; const int maxn=100+5; int G[maxn][maxn]; //存图的 d=id int path[maxn]; //存每个节点的父节点，即路径 int n,m; //n 行 m 列 int k=1;//记录编号 int end_num; int vx[5] = {-1,1,0,0}; //vx vy 用来计算一个节点周围上下左右 4 个节点 int vy[5] = {0,0,-1,1}; bool vis[maxn][maxn]; //判断某节点是否已经被访问过 struct node { int x; int y; int id; int parent=0; node(int a,int b,int c) { x=a; y=b; id=c; } }; int main() { //freopen(\\u0026#34;in.txt\\u0026#34;,\\u0026#34;r\\u0026#34;,stdin); memset(G,0,sizeof(G)); memset(vis,0,sizeof(vis)); memset(path,0,sizeof(path)); cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;m; for(int i=1; i\\u0026lt;=n; i++) for(int j=1; j\\u0026lt;=m; j++) { cin\\u0026gt;\\u0026gt;G[i][j]; } queue\\u0026lt;node\\u0026gt; q; node v=node(1,1,1); q.push(v); vis[1][1]=1; while(!q.empty()) { node u=q.front(); q.pop(); path[u.id]=u.parent;//记录每个点的父节点 for(int i=0; i\\u0026lt;4; i++) { int tx=u.x+vx[i]; int ty=u.y+vy[i]; if(G[tx][ty]\\u0026amp;\\u0026amp;!vis[tx][ty])//有路可走且未访问 { vis[tx][ty]=1; //cout\\u0026lt;\\u0026lt;tx\\u0026lt;\\u0026lt;ty\\u0026lt;\\u0026lt;endl; node v=node(tx,ty,++k); end_num=k; v.parent=u.id; q.push(v); } } } vector\\u0026lt;int\\u0026gt; ans; //cout\\u0026lt;\\u0026lt;end_num\\u0026lt;\\u0026lt;endl; while(end_num)//从后面开始找父亲节点 { ans.push_back(end_num); end_num=path[end_num]; } int s=0; while(!ans.empty()) { s++; cout\\u0026lt;\\u0026lt;*(ans.end()-1)\\u0026lt;\\u0026lt;\\u0026#39; \\u0026#39;;//ans 最后一个元素是 0 ans.pop_back(); } cout\\u0026lt;\\u0026lt;endl\\u0026lt;\\u0026lt;s-1; return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/:4:0\",\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"title\":\"BFS 求最短路\",\"uri\":\"/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/#代码\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/cf-1009/:0:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"uri\":\"/posts/cf-1009/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 A. Game Shopping #include\\u0026lt;iostream\\u0026gt; using namespace std; int main(){ int n,m,s=0; cin\\u0026gt;\\u0026gt;n\\u0026gt;\\u0026gt;m; int i,j; int c[1000],a[1000]; for(i=0;i\\u0026lt;n;i++) cin\\u0026gt;\\u0026gt;c[i]; for(i=0;i\\u0026lt;m;i++) cin\\u0026gt;\\u0026gt;a[i]; for(i=0,j=0;i\\u0026lt;n;){ if(j==m) break; if(c[i]\\u0026lt;=a[j]){ s++; j++; i++; } else i++; } if(i==n\\u0026amp;\\u0026amp;s==0) cout\\u0026lt;\\u0026lt;\\u0026#34;0\\\\n\\u0026#34;; else cout\\u0026lt;\\u0026lt;s\\u0026lt;\\u0026lt;endl; return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/cf-1009/:1:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"uri\":\"/posts/cf-1009/#a-game-shopping\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 B. Minimum Ternary String #include \\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; string s, ans; int main(){ cin \\u0026gt;\\u0026gt; s; int one = 0; for (int i = 0; i \\u0026lt; s.size(); i++){ if (s[i] == \\u0026#39;0\\u0026#39;) ans += \\u0026#34;0\\u0026#34;; if (s[i] == \\u0026#39;1\\u0026#39;) one++; if (s[i] == \\u0026#39;2\\u0026#39;) ans += \\u0026#34;2\\u0026#34;; } bool flag = false; for (int i = 0; i \\u0026lt; ans.size(); i++){ if (ans[i] == \\u0026#39;2\\u0026#39; \\u0026amp;\\u0026amp; !flag) flag = true, cout \\u0026lt;\\u0026lt; string(one, \\u0026#39;1\\u0026#39;); cout \\u0026lt;\\u0026lt; ans[i]; } if (!flag) cout \\u0026lt;\\u0026lt; string(one, \\u0026#39;1\\u0026#39;); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */ \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/cf-1009/:2:0\",\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"uri\":\"/posts/cf-1009/#b-minimum-ternary-string\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"0.9 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/dfs_bfs/:0:1\",\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"title\":\"深搜广搜\",\"uri\":\"/posts/dfs_bfs/#广度优先搜索bfs\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"0.10 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。 #include \\u0026lt;bits/stdc++.h\\u0026gt; #define N 5 using namespace std; int maze[N][N] = {//无权有向图邻接矩阵 { 0, 1, 0, 1, 0 }, { 0, 0, 1, 0, 0 }, { 0, 0, 0, 0, 1 }, { 0, 0, 1, 0, 0 }, { 0, 0, 0, 0, 0 } }; int visited[N]; void DFS(int start) { cout \\u0026lt;\\u0026lt; start\\u0026lt;\\u0026lt; \\u0026#34; \\u0026#34;; visited[start] = 1; for (int i = 0; i \\u0026lt; N; i++) { if (!visited[i] \\u0026amp;\\u0026amp; maze[start][i] == 1)//没访问过且为邻居节点 DFS(i); } } void BFS(int start){ queue\\u0026lt;int\\u0026gt; Q;//队列 Q.push(start); visited[start] = 1; while (!Q.empty()) { int front = Q.front();//头 cout \\u0026lt;\\u0026lt; front \\u0026lt;\\u0026lt; \\u0026#34; \\u0026#34;; Q.pop(); for (int i = 0; i \\u0026lt;N; i++) { if (!visited[i] \\u0026amp;\\u0026amp; maze[front][i] == 1) { visited[i] = 1; Q.push(i); } } } } int main() { memset(visited,0,sizeof(visited)); for (int i = 0; i \\u0026lt; N; i++)//不连通的情况 { if (visited[i] == 1)//访问过 continue; DFS(i); } cout\\u0026lt;\\u0026lt;endl; memset(visited,0,sizeof(visited)); for (int i = 0; i \\u0026lt; N; i++)//不连通的情况 { if (visited[i] == 1)//访问过 continue; BFS(i); } return 0; } 传送门 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/dfs_bfs/:0:2\",\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"title\":\"深搜广搜\",\"uri\":\"/posts/dfs_bfs/#深度优先搜索dfs\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品） 链接：https://www.nowcoder.com/acm/contest/74/B 来源：牛客网 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:0:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"21 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:1:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#题目描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"22 输入描述 本题有多组输入（小于 10），当 n=0 时结束输入。第一行输入 n,m,h。n，m，h 为整数，并且 0\\u0026lt;=n,m,h\\u0026lt;=100，接下来 n 行，每行输入第 i 个物品的物品的重量 Wi 和威力值 Vi。0\\u0026lt;=Wi,Vi\\u0026lt;=100. \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:2:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#输入描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"23 输出描述 输出最大威力值，每组输出一行。 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:3:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#输出描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24 示例 1 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:4:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#示例-1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24.1 输入 3 3 3 2 3 3 2 2 3 0 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:4:1\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#输入\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"24.2 输出 8 \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:4:2\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#输出\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"25 说明 可携带的总重量为 6，当拿了前两件装备，此时容量为 5/6，还可以再拿第三件物品。 思路：0-1 背包的变形题目，h=0 的时候为背包的模板，h！=0 的时候枚举每一个需要特殊处理的物品再背包 #include \\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; int v[105]; int w[105]; int n,m,h; int dp[205]; int main() { while(scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;n)==1\\u0026amp;\\u0026amp;n!=0){ int sum=0; scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;m,\\u0026amp;h); for(int i=1;i\\u0026lt;=n;i++) scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;w[i],\\u0026amp;v[i]); if(h==0){ memset(dp,0,sizeof(dp)); for(int i=1;i\\u0026lt;=n;i++) //前 i 个物品 for(int j=m;j\\u0026gt;=w[i];j--) //枚举背包重量 dp[j]=max(dp[j],dp[j-w[i]]+v[i]); // sum=dp[m]; } else{ m+=h for(int k=1;k\\u0026lt;=n;k++) //枚举可以被剩下的物品 { memset(dp,0,sizeof(dp)); for(int i=1;i\\u0026lt;=n;i++){ //前 i 个物品 if(i!=k){ for(int j=m;j\\u0026gt;=w[i];j--) //枚举背包重量 dp[j]=max(dp[j],dp[j-w[i]]+v[i]); } } //留下来一个重量，即初始化威力为那个重量的威力 for(int j=m-1;j\\u0026gt;=m-w[k];j--) //枚举背包重量 + 剩下物品 dp[m]=max(dp[m],dp[j]+v[k]); // printf(\\u0026#34;%d\\\\n\\u0026#34;,dp[m]); sum=max(sum,dp[m]); } } printf(\\u0026#34;%d\\\\n\\u0026#34;,sum); } return 0; } \",\"date\":\"2018-07-22\",\"objectID\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/:5:0\",\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"title\":\"TaoTao 要吃鸡\",\"uri\":\"/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/#说明\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"时间限制：C/C++ 1 秒，其他语言 2 秒 空间限制：C/C++ 262144K，其他语言 524288K 64bit IO Format: %lld \",\"date\":\"2018-07-18\",\"objectID\":\"/posts/wannafly-18/:0:0\",\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 18-序列\",\"uri\":\"/posts/wannafly-18/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"17 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。 两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。 \",\"date\":\"2018-07-18\",\"objectID\":\"/posts/wannafly-18/:1:0\",\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 18-序列\",\"uri\":\"/posts/wannafly-18/#题目描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"18 输入描述 一个整数 表示 n (1\\u0026lt;= n \\u0026lt;= 1e3) \",\"date\":\"2018-07-18\",\"objectID\":\"/posts/wannafly-18/:2:0\",\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 18-序列\",\"uri\":\"/posts/wannafly-18/#输入描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"19 输出描述 一个整数 表示答案模 109+7 \",\"date\":\"2018-07-18\",\"objectID\":\"/posts/wannafly-18/:3:0\",\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 18-序列\",\"uri\":\"/posts/wannafly-18/#输出描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"20 示例 1 输入 5 输出 7 解题思路： 整体来看，a[x] = a[x-1] [1, -2, 0.5]，那么等于从 n-1 个 [1,-2,0.5] 中选出 n-1 个数值相乘（a[x-1]=a[x-2] [1,-2,0.5] 同理化简式子）， 最后答案要是 1，所以 -2 就必须有偶数个，同理 0.5 的个数要等于 -2. 顺序无关。 那所有的转换中，就只要保证有若干组 (-2,-2,0.5,0.5) 存在 表示偶数个 2 的个数与偶数个 0.5 的个数组合；组合数用二项式系数，杨辉三角来求。 #include \\u0026lt;bits/stdc++.h\\u0026gt; using namespace std; const int maxn = 1e3 + 5; const int mod = 1e9 + 7; long long c[maxn][maxn]; int main(){ for(int i = 0; i \\u0026lt; maxn; i++){//杨辉三角 c[i][0] = 1; c[i][i] = 1; for(int j = 1; j \\u0026lt; i; j++) c[i][j] = (c[i-1][j] + c[i-1][j-1]) % mod; } int n; while(~scanf(\\u0026#34;%d\\u0026#34;, \\u0026amp;n)){ n--; long long ans = 0; for(int i = 0; i*2 \\u0026lt;= n; i += 2){ ans = (ans%mod + (c[n][i]*c[n-i][i])%mod)%mod; } printf(\\u0026#34;%lld\\\\n\\u0026#34;, ans); } return 0; } \",\"date\":\"2018-07-18\",\"objectID\":\"/posts/wannafly-18/:4:0\",\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"title\":\"Wannafly 挑战赛 18-序列\",\"uri\":\"/posts/wannafly-18/#示例-1\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！ \",\"date\":\"2018-06-16\",\"objectID\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/:0:0\",\"tags\":[\"背包问题\",\"C\"],\"title\":\"简单背包\",\"uri\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。 \",\"date\":\"2018-06-16\",\"objectID\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/:1:0\",\"tags\":[\"背包问题\",\"C\"],\"title\":\"简单背包\",\"uri\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/#问题描述\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 实现提示 可利用回溯法的设计思想来解决背包问题。首先，将物品排成一列，然后顺序选取物品装入背包，假设已选取了前 i 件物品之后背包还没有装满，则继续选取第 i+1 件物品，若该件物品“太大”不能装入，则丢弃而继续选取下一件，直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包，则说明“刚刚”装入背包的那件物品“不合适”，应将它取出“丢弃一边”，继续再从“它之后”的物品中选取，如此重复，直至求得满足条件的解，或者无解。由于回溯求解的规则是“后进先出”，因此要用到栈。 使用栈作为该程序的数据结构，利用栈进行语法检查，以深度优先的搜索方式解空间，实现递归过程和函数的调用，在设计时还使用 C 语言的数组及其循环语言来实现程序。 运用回溯法解题，在搜索解空间树时，只要其左儿子节点是一个可行结点，搜索就进入左子树，在右子树中有可能包含最优解是才进入右子树搜索。否则将右子树剪去。 #include \\u0026lt;stdio.h\\u0026gt; #include \\u0026lt;windows.h\\u0026gt; #define size 50 struct stacks { int data[size]; int top; } stack; void backpack(int number,int V,int w[]){ int i,j=1,k=0; int flag=0; do { while (V \\u0026gt; 0 \\u0026amp;\\u0026amp; k \\u0026lt;= number) { if (V \\u0026gt;= w[k]) { stack.data[stack.top] = k;//第 k 个物品的体积下标 stack.top++; V -= w[k]; } k++; } if (V == 0) { flag=1; printf(\\u0026#34;第%d 个符合条件的解：\\u0026#34;, j); for (i = 0; i \\u0026lt; stack.top; i++) { printf(\\u0026#34;%d \\u0026#34;, w[stack.data[i]]); } j++; printf(\\u0026#34;\\\\n\\u0026#34;); } //k 满时回溯 k = stack.data[--stack.top]; stack.data[stack.top] = 0; V += w[k]; k++; } while (!(stack.top == 0 \\u0026amp;\\u0026amp; k == number)); if(!flag){ printf(\\u0026#34;背包无解！\\\\n\\u0026#34;); } } void judge(int number,int V,int w[]){ int i,s = 0; for (i = 0; i \\u0026lt; number; i++) s = s + w[i]; if(V \\u0026gt; s){ printf(\\u0026#34;背包无解！\\\\n\\u0026#34;); exit(0); } if(V==s){ printf(\\u0026#34;只有一个符合条件的解：%d\\\\n\\u0026#34;, V); exit(0); } } int main() { int w[size]; int V; int i = 0; int j = 0; int number; printf(\\u0026#34;\\\\t **简单背包问题**\\\\n\\\\n\\u0026#34;); printf(\\u0026#34;\\\\n 请输入可供选择装入物品的个数：\\\\n\\u0026#34;); scanf(\\u0026#34;%d\\u0026#34;, \\u0026amp;number); printf(\\u0026#34;\\\\n 请输入各件物品的体积：\\\\n\\u0026#34;); for (i = 0; i \\u0026lt; number; i++) scanf(\\u0026#34;%d\\u0026#34;, \\u0026amp;w[i]); //排序 for(i=0;i\\u0026lt;number;i++) for(j=i+1;j\\u0026lt;number;j++) if(w[i]\\u0026gt;w[j]){ w[i]=w[i]^w[j]; w[j]=w[i]^w[j]; w[i]=w[i]^w[j]; } printf(\\u0026#34;\\\\n 请输入背包的总体积：\\\\n\\u0026#34;); scanf(\\u0026#34;%d\\u0026#34;, \\u0026amp;V); while(V \\u0026lt; 0){ printf(\\u0026#34;输入背包体积错误！重新输入！\\\\n\\u0026#34;); scanf(\\u0026#34;%d\\u0026#34;,\\u0026amp;V); } judge(number,V,w); //初始化栈 for (i = 0; i \\u0026lt; number; i++) stack.data[i] = 0; stack.top = 0; backpack(number,V,w); return 0; } \\u0026ndash;这么简单的问题我都费力，太辣鸡了，还是要多练习啊！\\u0026ndash; \",\"date\":\"2018-06-16\",\"objectID\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/:2:0\",\"tags\":[\"背包问题\",\"C\"],\"title\":\"简单背包\",\"uri\":\"/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/#实现提示\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\" 来自一位大佬的演讲 尊敬的领导、教练，亲爱的参赛选手们： 大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。 刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。 在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。 为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。 三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。 最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。 \",\"date\":\"2018-06-15\",\"objectID\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/:0:0\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"uri\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/#\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\"题目链接（hdu 复赛） 2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。 比赛开始，这次是三个人没人一份纸质题目，拿到题目，看最后一题，k.2018 发现可以做，（事实证明确实是一道水题），我就在做这题，他们看了 a 题，好像是 k 题一顿操作后提交，错了，一直到比赛结束都没做出来，后来回去看别人的题解，发现自己情况没有分析全面，其实是完全可以解出来的，真的做的太少太少了。a 题最后也是没过，还有一个 f 题，sort，我最初的想法是用 stl 里的那个 sort 排序，只要对 sort 的 compare 函数做处理应该可以完成排序，比赛之前我看过，但是不熟悉，zxm 她也看了我就交给她了，最后好像因为爆 long double 的问题也没做出来。 哎，菜还是菜，很多算法都不懂，数据结构也没学好，很有一段时间我都特别头疼算法，不想学，费劲，觉得自己不适合学计算机，更不适合 ACM。有时候又想，不适合好像总是 loser 的借口！总是在后悔和偷懒的矛盾中！ 最后，放上，\\u0026ldquo;参赛奖\\u0026quot;羞辱自己，也是鞭策！ \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/:0:0\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"title\":\"18 湘潭邀请赛总结\",\"uri\":\"/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/#\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"9 Sample Input 2 1 1 1 1 1 2 2 1 1 2 1 1 1 3 1 3 1 2 2 1 3 1 1 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/f-sorting/:1:0\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"title\":\"F.sorting\",\"uri\":\"/posts/f-sorting/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"10 Sample Output 2 1 1 2 1 2 3 题意：给定 n 个元组 (a1,b1,c1),(a2,b2,c2),\\u0026hellip;,(an,bn,cn)，将其按 (ai+bi)/(ai+bi+ci) 的值从小到大排序，输出排序后的 n 个元组的原序号； 思路：编写 sort 里的 cmp 函数（形参为元组结构体元素，设为 Tuple x,Tuple y)，若直接算出 (x.a+x.b)(y.a+y.b+y.c) 和 (y.a+y.b)(x.a+x.b+x.c) 再比较大小，这两个结果会爆 unsigned long long； 可以把因式乘积展开成多项式的和，约去两式中相同的项，得到 x.ay.c+x.by.c 和 y.ax.c+y.bx.c，因此只需计算它俩再比较即可，结果不会爆 unsigned long long 后 AC 代码 #include \\u0026#34;bits/stdc++.h\\u0026#34; using namespace std; struct node{ long double a,b,c; int numb; }ss[1005]; bool cmp(const node \\u0026amp;a,const node \\u0026amp;b){ long double suma,sumb; //suma=a.a*b.c+a.b*b.c; //sumb=b.a*a.c+b.b*a.c; suma=(a.a+a.b)/(a.a+a.b+a.c); sumb=(b.a+b.b)/(b.a+b.b+b.c); if(suma!=sumb)return suma\\u0026lt;sumb; return a.numb\\u0026lt;b.numb; } int main(){ int n; while(cin\\u0026gt;\\u0026gt;n){ for(int i=0;i\\u0026lt;n;i++){ cin\\u0026gt;\\u0026gt;ss[i].a\\u0026gt;\\u0026gt;ss[i].b\\u0026gt;\\u0026gt;ss[i].c; ss[i].numb=i+1; } stable_sort(ss,ss+n,cmp); int i; for(i=0;i\\u0026lt;n-1;i++) cout\\u0026lt;\\u0026lt;ss[i].numb\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;; cout\\u0026lt;\\u0026lt;ss[i].numb\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/f-sorting/:2:0\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"title\":\"F.sorting\",\"uri\":\"/posts/f-sorting/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:0\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#k-2018\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.1 Input The input consists of several test cases and is terminated by end-of-ﬁle. Each test case contains four integers a,b,c,d. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:1\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.2 Output For each test case, print an integer which denotes the result. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:2\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.3 Constraint • 1≤ a ≤ b ≤109,1≤ c ≤ d ≤109 • The number of tests cases does not exceed 104. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:3\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#constraint\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.4 Sample Input 1 2 1 2018 1 2018 1 2018 1 1000000000 1 1000000000 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:4\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.5 Sample Output 3 6051 1485883320325200 题意：给定区间 [a,b]、[c,d]，问有多少对有序数组 (x,y)(x∈[a,b],y∈[c,d]) 使得 xy 是 2018 的倍数 思路：2018=21009（分解质因数），则对 x 分类讨论：1) 仅为 2 的倍数；2）仅为 1009 的倍数；3）即为 2 又为 1009 的倍数；4）既不为 2 又不为 1009 的倍数 等价于如下分类讨论： 若 x 是偶数：1）若 x 是 1009 的倍数，则 y 可为 [c,d] 中任意数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 1009 的倍数 若 x 是奇数：1）若 x 是 1009 的倍数，则 y 必定为 [c,d] 中 2 的倍数；2）若 x 不是 1009 的倍数，则 y 必定为 [c,d] 中 2018 的倍数 后 AC 代码 #include\\u0026lt;cstdio\\u0026gt; #include\\u0026lt;iostream\\u0026gt; typedef unsigned long long ll; using namespace std; int main(){ ll a,b,c,d; while(cin\\u0026gt;\\u0026gt;a\\u0026gt;\\u0026gt;b\\u0026gt;\\u0026gt;c\\u0026gt;\\u0026gt;d){ ll num1_all_1009=b/1009-(a-1)/1009; ll num1_even=b/2-(a-1)/2; ll num1_1009_in_even=b/2018-(a-1)/2018; ll num1_rest_in_even=num1_even-num1_1009_in_even; ll num1_odd=(b-a+1)-num1_even; ll num1_1009_in_odd=num1_all_1009-num1_1009_in_even; ll num1_rest_in_odd=num1_odd-num1_1009_in_odd; ll ans=0; ans+=num1_1009_in_even*(d-c+1); ll num2_all_1009=d/1009-(c-1)/1009; ans+=num1_rest_in_even*num2_all_1009; ll num2_even=d/2-(c-1)/2; ans+=num1_1009_in_odd*num2_even; ll num2_all_2018=d/2018-(c-1)/2018; ans+=num1_rest_in_odd*num2_all_2018; cout\\u0026lt;\\u0026lt;ans\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/k-2018/:1:5\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"K.2018\",\"uri\":\"/posts/k-2018/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h. Bobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the paper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer. There is also a trick – one can cite his own papers published earlier. Given Bobo has n working hours, ﬁnd the maximum h-index of him. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:0\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#b-higher-h-index\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.1 Input The input consists of several test cases and is terminated by end-of-ﬁle. Each test case contains two integers n and a. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:1\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.2 Output For each test case, print an integer which denotes the maximum h-index. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:2\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.3 Constraint • 1≤ n ≤109 • 0≤ a ≤ n • The number of test cases does not exceed 104. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:3\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#constraint\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.4 Sample Input 3 0 3 1 1000000000 1000000000 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:4\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.5 Sample Output 1 2 1000000000 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:5\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.6 Note For the ﬁrst sample, Bobo can work 3 papers for 1 hour each. With the trick mentioned, he will get papers with citations 2,1,0. Thus, his h-index is 1. For the second sample, Bobo can work 2 papers for 1 and 2 hours respectively. He will get papers with citations 1+1,2+0. Thus, his h-index is 2. 题意：给定 n 个小时，可以用其中 x(1\\u0026lt;=x\\u0026lt;=n) 个小时写一篇论文，那么这篇论文的\\u0026quot;既定\\u0026quot;引用数将会是x*a(a 为给定正整数）；此外，已经写好的论文将会被其后写成的论文所引用，也就是说，这篇论文的总引用数将会是\\u0026quot;既定\\u0026quot;引用数 + 其后论文篇数；问在所有的写论文方案中（例如一种方案就是用 n 个小时写 n 篇论文，每篇论文各花 1 小时（可以得到这 n 篇论文的引用数）)，h 最大为多少 (h 的含义同上题）（每一种方案都对应着一个 h，求这些 h 中的最大者） 思路：最优方案（即对应 h 值最大的方案）是平摊 n 小时写成 n 篇论文（证明未知）；此时 n 篇论文的引用数为 a,a+1,a+2,\\u0026hellip;,a+n-1，引用数为 a+i 时，引用数大于等于它的论文有 n-i 篇，令 a+i=n-i 得 i=(n-a)/2, 所以 h=a+(n-a)/2; 后 AC 代码 #include\\u0026lt;cstdio\\u0026gt; int main(){ int n,a; while(scanf(\\u0026#34;%d%d\\u0026#34;,\\u0026amp;n,\\u0026amp;a)!=EOF){ printf(\\u0026#34;%d\\\\n\\u0026#34;,a+(n-a)/2); } return 0; } \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/b-higher/:1:6\",\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"title\":\"B.Higher h-index\",\"uri\":\"/posts/b-higher/#note\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h. Bobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with itations exactly i, ﬁnd the h-index of Bobo. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:0\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#a-easy-h-index\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.1 Input The input consists of several test cases and is terminated by end-of-ﬁle. The ﬁrst line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,\\u0026hellip;,an. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:1\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.2 Output For each test case, print an integer which denotes the result. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:2\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.3 Constraint • 1≤ n ≤2·105 • 0≤ ai ≤109 • The sum of n does not exceed 250,000. \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:3\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#constraint\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.4 Sample Input 1 1 2 2 1 2 3 3 0 0 0 0 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:4\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#sample-input\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"5.5 Sample Output 1 2 0 题意：给定被引用次数为 0n 的论文分别有几张，找到最大的 h，满足被引用次数大于等于 h 的论文至少有 h 张 思路：在区间 [0,n] 内二分答案；或直接从 n0 遍历找到第一个满足条件的 h 后 AC 代码 #include \\u0026#34;bits/stdc++.h\\u0026#34; using namespace std; int main(){ int a[200005]; int n; int i; while(cin\\u0026gt;\\u0026gt;n){ for(i=0;i\\u0026lt;=n;i++) cin\\u0026gt;\\u0026gt;a[i]; int sum=a[n]; for(i=n;i\\u0026gt;=0;){ if(sum\\u0026gt;=i){ cout\\u0026lt;\\u0026lt;i\\u0026lt;\\u0026lt;endl; break; } else sum+=a[--i]; } if(i\\u0026lt;0) cout\\u0026lt;\\u0026lt;\\u0026#34;0\\u0026#34;\\u0026lt;\\u0026lt;endl; } return 0; } \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/a-easy/:1:5\",\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"title\":\"A.Easy h-index\",\"uri\":\"/posts/a-easy/#sample-output\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件， sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。 或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序 greater\\u0026lt;参数类型\\u0026gt;()表示降序 也可以用一个 bool 型函数，比如： bool cmp(int a,int b){ return a\\u0026gt;b;//表从大到小，即降序 } 假设自己定义了一个结构体 node typedef struct node { int a; int b; double c; }note; 有一个 node 类型的数组 node arr[100]，想对它进行排序：先按 a 值升序排列，如果 a 值相同，再按 b 值降序排列，如果 b 还相同，就按 c 降序排列。就可以写这样一个比较函数： 以下是代码片段： bool cmp(node x,node y) { if(x.a!=y.a) return x.a\\u0026lt;y.a; if(x.b!=y.b) return x.b\\u0026gt;y.b; return x.c\\u0026gt;y.c; } sort() 函数是完全通用的，你可以用它来操作几乎任何数据集合，包括链表，容器和数组，数组类型可以是 int,char 等。 实例：先降序再升序 #include\\u0026lt;iostream\\u0026gt; #include\\u0026lt;algorithm\\u0026gt; using namespace std; typedef struct data{ int a; double b; }date; bool cmp(date a,date b){ if(a.b!=b.b) return a.b\\u0026gt;b.b; return a.a\\u0026lt;b.a; } int main(){ date a[3]={{5,56.5},{4,56.5},{8,85}}; sort(a,a+3,cmp); for(int i=0;i\\u0026lt;3;i++) cout\\u0026lt;\\u0026lt;a[i].a\\u0026lt;\\u0026lt;\\u0026#34;-\\u0026#34;\\u0026lt;\\u0026lt;a[i].b\\u0026lt;\\u0026lt;endl; cout\\u0026lt;\\u0026lt;endl; return 0; } 传送门 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-sort/:0:0\",\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"title\":\"sort 排序\",\"uri\":\"/posts/c-sort/#\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"1 1. \\u0026amp;运算 \\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:1:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#1-运算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"2 2. |运算 |运算通常用于二进制特定位上的无条件赋值，例如一个数 or 1 的结果就是把二进制最末位强行变成 1。如果需要把二进制最末位变成 0，对这个数 | 1 之后再减一就可以了，其实际意义就是把这个数强行变成最接近的偶数。 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:2:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#2-运算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"3 3. ^运算 ^运算通常用于对二进制的特定一位进行取反操作，因为异或可以这样定义：异或 0 都不变，异或 1 则取反。 ^运算的逆运算是它本身，也就是说两次异或同一个数最后结果不变，即 a ^ b ^ b = a。运算可以用于简单的加密，比如你想对你 MM 说 1314520，但怕别人知道，于是双方约定拿你的生日 19880516 作为密钥。131452019880516 = 20665500，你就把 20665500 告诉 MM。MM 再次计算 20665500 ^ 19880516 的值，得到 1314520，于是她就明白了你的企图。 还可以用异或来进行快速地交换数据， a=2;b=3;//先转化成二进制 a=a^b; b=a^b; a=a^b; 操作后 a=3;b=2; \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:3:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#3-运算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"4 4. ~ 运算 运算的定义是把内存中的 0 和 1 全部取反。使用运算时要格外小心，你需要注意整数类型有没有符号。如果~的对象是无符号整数（不能表示负数），那么得到的值就是它与该类型上界的差，因为无符号类型的数是用0000 到FFFF 依次表示的。 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:4:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#4--运算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"5 5. \\u0026laquo;运算 a \\u0026laquo; b 就表示把 a 转为二进制后左移 b 位（在后面添 b 个 0）。例如 100 的二进制为 1100100，而 110010000 转成十进制是 400，那么 100 \\u0026laquo;2 = 400。可以看出，a \\u0026laquo; b 的值实际上就是 a 乘以 2 的 b 次方，因为在二进制数后添一个 0 就相当于该数乘以 2。 通常认为 a \\u0026laquo; 1 比 a * 2 更快，因为前者是更底层一些的操作。因此程序中乘以 2 的操作请尽量用左移一位来代替。 定义一些常量可能会用到\\u0026laquo;运算。你可以方便地用 1 \\u0026laquo;16 – 1 来表示 65535。很多算法和数据结构要求数据规模必须是 2 的幂，此时可以用\\u0026laquo;来定义 Max_N 等常量。 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:5:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#5-运算\"},{\"categories\":[\"Grocery\"],\"collections\":null,\"content\":\"6 6. \\u0026raquo;运算 和\\u0026laquo;相似，a \\u0026raquo; b 表示二进制右移 b 位（去掉末 b 位），相当于 a 除以 2 的 b 次方（取整）。我们也经常用\\u0026raquo; 1 来代替 div 2，比如二分查找、堆的插入操作等等。想办法用\\u0026raquo;代替除法运算可以使程序效率大大提高。最大公约数的二进制算法用除以 2 操作来代替慢得出奇的 mod 运算，效率可以提高 60% 传送门 原文：http://www.matrix67.com/blog/archives/263 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/:6:0\",\"tags\":[\"位运算\"],\"title\":\"位运算\",\"uri\":\"/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/#6-运算\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"33 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。 int a=1,b=2; swap(a,b); //此时 a=2,b=1 （可以是其他类型） \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:1:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#1swap交换两元素值在-algorithm-下用法swapab\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"34 2.sort(,,) sort 排序是不稳定的，stl 中的 stable_sort 才是稳定的 inta[10]={1,6,2,3,5,4,3,8,9,7}; stable_sort(a,a+10,greater\\u0026lt;int\\u0026gt;()); for(int i=0;i\\u0026lt;10;i++) cout\\u0026lt;\\u0026lt;a[i]\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;; \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:2:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#2sort\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"35 3.reverse（翻转序列，在 algorithm 下） //常用在字符串上 int a[5]={1,2,3,4,5}; reverse(a,a+5); //序列现在是 5 4 3 2 1 char s[]=\\u0026ldquo;ericxie\\u0026rdquo;; reverse(s,s+strlen(s)); //序列现在是 \\u0026ldquo;eixcire\\u0026rdquo; //同样适用于 string string s=\\u0026ldquo;qwer\\u0026rdquo;; reverse(s.begin(),s.end()); \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:3:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#3reverse翻转序列在-algorithm-下\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"36 4.min，max（取大，取小） int a=1,b=2,c; c=min(a,b); //此时 c 等于 1 c=max(a,b); //此时 c 等于 2 string s=\\u0026ldquo;qwer\\u0026rdquo;,d=\\u0026ldquo;asjk\\u0026rdquo;,c; c=min(s,d); //c=\\u0026ldquo;asjk\\u0026rdquo; \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:4:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#4minmax取大取小\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"37 5.__gcd（最大公约数） 手写 gcd 函数也行，辗转相除，辗转相减； int gcd(int a,int b){ return a%b ? b : gcd(b,a%b); } //直接用 int a=4,b=6; int c=__gcd(a,b); //注意下划线，此时 c 等于 2 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:5:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#5__gcd最大公约数\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"38 6.lower_bound 和 upper_bound（二分查找） lower_bound 意思就是：找到第一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。 upper_bound 是找到最后一个符合数位置后一个位置，使得：如果在这个位置插入 value 后，原有序序列依旧有序。 //数组 int a[8]={1,2,4,4,9,12,12,15}; int pos1 = lower_bound(a,a+8,4)-a; int pos2 = upper_bound(a,a+8,4)-a-1; //在这个样例下 pos1!=pos2;pos1=2;pos2=3; 根据我的理解 lower_bound(a,a+8,value) 得到的是一个地址，拿这个地址减去数组首地址 a[0]，那么刚好就是 value 应该放入的位置。 //vector vector\\u0026lt;int\\u0026gt; a; 若 a 中目前的元素也是{1,2,4,4,9,12,12,15}; 那么这里用 lower_bound 得到的应该也是一个类似于指针的东西，为什么不叫它指针呢？因为他有了一个名字，叫做迭代器。 vector\\u0026lt;int\\u0026gt;::iterator it; it = lower_bound(a.begin(),a.end(),4); //这里的 it 就是迭代器，那么* it 就是该下标对应的 value 了。 //set 集合 set\\u0026lt;int\\u0026gt; a; set\\u0026lt;int\\u0026gt;::iterator it; it = a.lower_bound(value); \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:6:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#6lower_bound-和-upper_bound二分查找\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"39 7.next_permutation（排列） bool next_permutation( iterator start, iterator end ); 通常用于生成序列的全排列。用之前先保证有序； int a[]={1,2,3}; do{ for(int i=0;i\\u0026lt;3;i++) cout\\u0026lt;\\u0026lt;a[i]\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;; cout\\u0026lt;\\u0026lt;endl; }while(next_permutation(a,a+3)); 结果为： 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 string str=\\u0026#34;STL\\u0026#34;; sort(str.begin(), str.end()); do{ cout \\u0026lt;\\u0026lt; str \\u0026lt;\\u0026lt; endl; }while (next_permutation(str.begin(),str.end()))； 结果： LST LTS SLT STL TLS TSL 大数据 c 比 c++效率高 int length; char str[MAX]; gets(str); length = strlen(str); sort(str, str + length); do{ puts(str); }while(next_permutation(str, str+length))； \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:7:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#7next_permutation排列\"},{\"categories\":[\"ACM\"],\"collections\":null,\"content\":\"40 8.unique（去重） 如何把序列 a 中的重复元素去除呢？首先需要对原序列 a 进行排序，保证有序后，调用 unique(a.head , a.tail ) 就可以了。unique 会返回一个类似指针的东西（和 lower_bound 有点像），-a 后表示去重之后序列的长度。 下面是实例。 int a[]={1,3,5,7,9,2,2,2,1,1,1}; sort(a,a+11); int len = unique(a,a+11)-a; for(int i=0;i\\u0026lt;len;i++) cout\\u0026lt;\\u0026lt;a[i]\\u0026lt;\\u0026lt;\\u0026#34; \\u0026#34;; 输出结果为：1 2 3 5 7 9 传送门 \",\"date\":\"2018-06-14\",\"objectID\":\"/posts/c-with-stl/:8:0\",\"tags\":[\"ACM\",\"STL\",\"C++\"],\"title\":\"C++ with STL\",\"uri\":\"/posts/c-with-stl/#8unique去重\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 2021/10/1 更新 使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。 我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站， \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:0:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"29 ACM 相关 链接 描述 各大 OJ 题目分类 各种算法分类，对应 OJ 题号超链接 ACM 题目分类 codeforces 俄国 CF 在线编程，一般比赛在晚上 9:30 和 11:00 牛客网 国内求职学习网，有很多程序设计比赛 vjudge 这个不用说了吧 hihocoder 打得少，感觉好多数据结构的题 百练 OpenJudge 的一个小组，很多题目来自 POJ；也是我 ACM 启蒙地 HDUOJ 杭州电子科技大学 OJ POJ 北京大学 OJ 洛谷 lintcode 领扣（国外） leedcode 力扣 codewar 国外 更多 OJ，在线刷题网站 \\u0026hellip; \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:1:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#acm-相关\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"30 编程，学习 链接 描述 visualgo 算法学习，数据结构和算法动态可视化 c,c++学习 很详细的知识讲解 Tomcat 下载 Tomcat 各版本下载，Tomcat 解压即安装；\\\\bin下可以启动和关闭服务器；可手动在\\\\webapps里创建 web 应用，也可以配合Eclisp IDE for Java EE Developers等 Java IDE 工具创建 w3school 可在线测试，Web 技术教程，HTML, 浏览器脚本，服务器脚本，xml 教程等 w3cschool 和上面不同哦，是不是和上面的很像哈哈哈！我估计是上一个网站的新版，功能更强大，内容更丰富，还有微信小程序教程等 菜鸟教程 和上面两个差不多，还有一些数据库、安卓的东西，git 学习 python 学习 Python 库安装包下载，python,Django,HTML,ACM 学习 python123 Python123 是专注于为中国高等院校教学 Python 语言的而开发的一款学习工具网站 python 学习 pypi Find, install and publish Python packages with the Python Package Index 优矿 python 在线测试，笔记 阮一峰的网络日志 开发者手册，JavaScript 等等 廖雪峰 git,python,javascript 学习 新晴网 PS 学习，摄影教程等 实验楼 在线做实验，高效学编程 慕课网 在线学习，免费，付费视频 wxpy 一个 python 关于微信的库 So1n python 学习 \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:2:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#编程学习\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"31 云服务及站长工具 链接 描述 腾讯云 dnspod 解析新版入口，腾讯云控制台 dnspod 解析 域名解析，其他：阿里云等 cloudflare 解析 域名解析，https 解析，介绍 cloud studio 这是腾讯云和 coding 合作后的一个东西，简单来说就是云端开发环境。试了一下完全可以把 hexo 博客源码挂上面编辑。这也就不用只局限于一台电脑发布博客了。 腾讯云大学开放实验室 可以在线进行一些云服务应用搭建等的实验。与之对应的还有阿里云开放实验室 宝塔面板 宝塔面板是一款使用方便、功能强大且终身免费的服务器管理软件，支持 Linux 与 Windows 系统。一键配置：LAMP/LNMP、网站、数据库、FTP、SSL，通过 Web 端轻松管理服务器。 leancloud 一站式后端云服务 daovoice 网站在线客服 百度网站收录 网站 seo Bing 站长 Bing 网站管理员工具 站长工具 网站信息查询，权重，seo，网站速度查询，ping 等 站长工具大全 各种 seo 优化，工具等 \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:3:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#云服务及站长工具\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"32 前端工具 链接 描述 全栈开发者 顾名思义，有很多 web 开发的教程，也可以在线执行代码 JSFuck JSFuck 是一种基于 JavaScript 原子部分的深奥教育编程风格。它只使用六个不同的字符来编写和执行代码。（代码极丑化） BootCDN 稳定、快速、免费的前端开源项目 CDN 加速服务，共收录了 3441 个前端开源项目。比如vue,fancybox等 bootstrap 中文网 简洁、直观、强悍的前端开发框架，让 web 开发更迅速、简单。还有一些基于 bootstrap 开发或扩充的项目的 cdn，BootCDN也是在该网站旗下 Font Awesome 图标库 hexo 指定图标库 iconfont 阿里巴巴矢量图标库 easyicon 图标库 图标下载，格式转换，可外链 semantic-ui.com 图标库 semantic-ui.com 还有很多前端样式对应代码 colorhunt 配色方案推荐，调试 grabient 渐变色 渐变色调色 gradient 渐变色调色 渐变色调色，获取代码 encycolorpedia encycolorpedia 取色器 优酷视频上传 获取视频外链，其他：腾讯视频 sm.ms 非常好用的图床 imgURL 一个开源的图床，很不错，有兴趣的可以自己尝试搭建，比如 img.lruihao.cn 现实君外链 支持多种文件外链，唯一不好的是 http PEXELS 美图 文章配图，无版权美图网，避免配图侵权 unsplash 美图 API 还可以获取 随机图 图标工厂 移动应用图标生成工具，一键生成所有尺寸的应用图标 emoji 在线复制 Simple emoji copy and paste HTML 字符实体 网页特殊符号大全 特效字转换工具集 各种特效字转换工具，彩虹字生成器，RGB 转 16 进制颜色等 压缩图 在线 ps，图片去底，证件照换底等操作很方便的 web 图片处理工具 改图宝 在线改图压缩，加水印，生成二维码，印章制作等 GIF 之家 一个压缩效果很好且免费的 gif 压缩工具 二维码解码器 草料二维码 https://cli.im 联图二维码 第九工厂 死磕艺术二维码 模板码 动态二维码等 \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:4:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#前端工具\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33 实用工具 链接 描述 Gearn Git Branching 通过游戏闯关的方式学习 git！ PicGo 一个很好的开源的图床管理桌面程序，图床神器支持微博图床、七牛图床、腾讯云 COS、又拍云、GitHub 图床、阿里云 OSS、Imgur 图床等等 Proxyee Down 百度云下载解决方案，满速下载，但不限于百度云的下载，感觉比迅雷还好用！ PanDownload 这是 pandownload 网页版，把需要下载的百度网盘链接baidu改成baiduwp即可加速，也有桌面版。 ubuntu pastebin 代码展示托管，生成分享网址，防止代码直接分享缩进消失 图片转字符工具 Img\\u0026ndash;\\u0026gt;String everyfont 中文字库在线压缩 字蛛 font-spider 中文字库压缩 mdtr2pdf markdown 转 pdf AD\\u0026rsquo;s API 包括动态签名，网易音乐等 在线工具 w3cschool 的在线工具集合 在线工具 开源中国社区 菜鸟工具 菜鸟教程 在线工具，编译，加密，压缩代码等 msdn windows 系统上 office 等软件下载（备用） 老殁科技 Adobe 等各种绿色破解软件 百度接口 百度搜索关键词接口 在线短信 不想泄露个人的电话号码，注册一些一次性网站可以用到 配音阁 文字转换语音/语音合成广告_叫卖录音_在线配音网络软件_促销宣传片配音 - 配音阁 - 配音阁，国内专业的广告配音平台 hacknical 在线个性简历，个人 Github 总结分析 \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:5:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#实用工具\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34 其他 链接 描述 俄罗斯方块 这是一个开源的游戏，小白的我看来简直牛逼爆了，好逼真，刷新都不会打断游戏进度！！ 网址迷宫 nazo_game 一个程序员的网页游戏，我只玩到 12 关。 无损音乐下载 手写体制作 北京大学计算机科学技术研究所的一个项目59.108.48.27 （我的字体至今还未完成） 大象代理 收费，口碑不错 蒲公英 应用内测发布平台 \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:6:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#其他\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35 博客文章 文章 概括 Web 笔记 记录一下自己 web 相关学习的笔记 Git 常用指令汇总 可能用到按需自查 hexo 插件及 next 内置样式集 让文章写的好看又简洁又好用的插件！hexo 更多请看分类 hexo-theme-next @modified LRH 对 next 主题的 DIY 设计记录日志 一款自己写的字体 - 沐目体 沐目体\\u0026ndash;release \",\"date\":\"2018-06-07\",\"objectID\":\"/posts/links/:7:0\",\"tags\":[\"ACM\"],\"title\":\"各种 Links 汇总与分享\",\"uri\":\"/posts/links/#博客文章\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\"从此故乡只有冬夏，再无春秋。\",\"date\":\"2018-06-03\",\"objectID\":\"/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"tags\":[\"随笔\"],\"title\":\"戏子春秋\",\"uri\":\"/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" 从此故乡只有冬夏，再无春秋。 时间急促得仿佛还在昨天，还没有清楚地认识到这句话的其中含义时，我早已离开它，远去。 自此，一江绿水东去，桃花竞开，春洒满园；瑟瑟秋风里，稻谷黄时，落木萧萧；故乡的春秋成为回忆尘封在我的脑海深处。 三月，这里和故乡一样雨下得缠绵，却尽带着他乡的味道。在不是滋润自己的那方水土上，哪怕是喜雨之人，亦只有料峭的寒意。雨下到这里才懂得，为何古来才子佳人逢阴雨连绵天总是带着一股莫名的惆怅。原是这般由头！我与他们，并无二般，想起故乡来。 故乡的春是在牛耕上的。太爷说，老牛伏在岸边饮水时节就是春耕了。到那时，耕牛头角披红挂彩，鼻挂铜色大铃，以祈愿今年平安，田地丰收；当耕牛喘着鼻息，缓缓地哞哞叫着走下田，是其在田地里大展身手的机会。故而，二月春耕总是会见到红布条装扮的水牛在田间劳作，彩带飘逸，好生招摇，尤其是农夫哼起那极具故乡气息的耕牛民歌，如高山流水般，伴着清脆的铜铃声隐隐飘去……在春末，三月桃花尽开，漫山望去，粉红红一片，甚是好看。小时看到总以为身处仙山，而后来，陶渊明一篇《桃花源记》就以为自己是那秦时避乱而住在桃花源中的后人。每每与外人谈起家乡的桃花山时，必然是一副神气十足的傲气样子。我想，这也是自己不知不觉中受家人影响，又倾心桃花的缘故吧。 印象中，家里人都爱这漫山遍野的桃花。太爷爱赏花，山上桃花开得极好的时候，便移栽了数株桃花留在了院子里，天好天坏，都能观赏上好一会儿。太婆还在的时候，桃花次第开，她就会拾掇许多桃花下来做成桃花糕，那桃花糕香香糯糯的味道飘散四周，总能把我馋来。后来，太婆故去，奶奶学着太婆开始做起了桃花糕，却总是没有太婆做的如意。但奶奶的桃花酒，受到父辈们的一致好评。每当酒坛从土里挖出，揭开红布，酒气便带着桃花的香甜扑鼻而来。父辈们在太爷种的桃花树下把酒话桑麻，颇有一副桃花坞里桃花庵，桃花庵里桃花仙的样子。现如今记忆远去，酒香却长留下来，记起时，那酒酣甜得喜人。 故乡的秋从九月农收渐起，那时候一家老小在浓浓的秋意里忙忙碌碌，直至十月方才得些许闲暇日子。 稻谷黄时，是秋最盛的时候。父辈们清晨便出发去地里收稻谷。晌午，我兴起与祖母前去送饭。正午的太阳烈得很，父辈们大颗大颗的汗直往下掉，稻谷机嘈杂得很。这才想起太爷教我的诗，“妇姑荷箪食，童稚携壶浆”，就是这样的情景无差。那时候不懂得父辈的辛苦，只知奔入山间，捕捉蚱蜢，蛐蛐等趣物。等傍晚将近，坐在板车谷袋上，兴尽而回，一天就算结束。渐渐长大，再也不敢胡闹，不知是童趣少了还是知了人事愈发迷惘了？ 窗外又下起雨，心里竟也惆怅起来。并非是洗过的衣服久晾未干，而是伴着那股湿意而来，藏在雨里的那点点乡愁。这边的桃花也开得好，往窗外，密密一片，不免想起了太爷书房里的书画：花是春时花，却非故乡花。人是故乡人，却是他乡客。所见时，不过是从戏子变成看客了罢。 \",\"date\":\"2018-06-03\",\"objectID\":\"/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/:0:0\",\"tags\":[\"随笔\"],\"title\":\"戏子春秋\",\"uri\":\"/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"更多关于 hexo \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:0:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"33 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序： Node.js Git \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:1:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#首先\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"34 hexo 安装 如果你的电脑中已经安装上述必备程序，那么恭喜你！接下来只需要使用 npm 即可完成 Hexo 的安装。 npm install -g hexo-cli \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:2:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#hexo-安装\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"35 建站 安装 Hexo 完成后，请执行下列命令，Hexo 将会在指定文件夹中新建所需要的文件。 hexo init \\u0026lt;folder\\u0026gt; cd \\u0026lt;folder\\u0026gt; npm install 为一个文件夹的名字 新建完成后，指定文件夹的目录如下： . ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:3:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#建站\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"36 安装 hexo 插件 全装上吧，没事。 npm install hexo-generator-index --save npm install hexo-generator-archive --save npm install hexo-generator-category --save npm install hexo-generator-tag --save npm install hexo-server --save npm install hexo-deployer-git --save npm install hexo-deployer-heroku --save npm install hexo-deployer-rsync --save npm install hexo-deployer-openshift --save npm install hexo-renderer-marked@0.2 --save npm install hexo-renderer-stylus@0.2 --save npm install hexo-generator-feed@1 --save npm install hexo-generator-sitemap@1 --save \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:4:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#安装-hexo-插件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"37 本地查看效果 执行下面语句，执行完再登录 localhost:4000 查看效果（执行完不要按 Ctrl+C，不然就停止了） hexo g hexo s 其他步骤在这里不赘述，参见 超详细教程 安卓上搭建 hexo 博客 \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:5:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#本地查看效果\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"38 部署 hexo g -d 部署后我们可以浏览器搜 username.github.io 查看自己的博客效果，比如我的 lruihao.github.io \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:6:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#部署\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39 美化 这些美化都写的很详细，我建议你们自己好好看看吧，我也是在这里看到的，如果问我和这里说的是一样的。 hexo 个性化教程 valine 特别鸣谢赵俊 👍 asdfv1929 hexo 官方主题集合，我用的是 aloha 主题，该主题 官方文档，后改用 next 主题 next 主题 hexo 官方插件 说说我的主题遇到的一些问题，由于这个主题用的人少，所以作者优化的不是很好（next 使用最多），当然也可以反过来说，所以自己美化了一点 \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#美化\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.1 博文置顶 修改 hero-generator-index 插件，把文件：node_modules/hexo-generator-index/lib/generator.js 内的代码替换为： \\u0026#39;use strict\\u0026#39;; var pagination = require(\\u0026#39;hexo-pagination\\u0026#39;); module.exports = function(locals){ var config = this.config; var posts = locals.posts; posts.data = posts.data.sort(function(a, b) { if(a.top \\u0026amp;\\u0026amp; b.top) { // 两篇文章 top 都有定义 if(a.top == b.top) return b.date - a.date; // 若 top 值一样则按照文章日期降序排 else return b.top - a.top; // 否则按照 top 值降序排 } else if(a.top \\u0026amp;\\u0026amp; !b.top) { // 以下是只有一篇文章 top 有定义，那么将有 top 的排在前面（这里用异或操作居然不行 233） return -1; } else if(!a.top \\u0026amp;\\u0026amp; b.top) { return 1; } else return b.date - a.date; // 都没定义按照文章日期降序排 }); var paginationDir = config.pagination_dir || \\u0026#39;page\\u0026#39;; return pagination(\\u0026#39;\\u0026#39;, posts, { perPage: config.index_generator.per_page, layout: [\\u0026#39;index\\u0026#39;, \\u0026#39;archive\\u0026#39;], format: paginationDir + \\u0026#39;/%d/\\u0026#39;, data: { __index: true } }); }; \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:1\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#博文置顶\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.2 about 页面 about 页面可以用 HTML 写，你想怎么写都行，我用的最简单的方法，直接hexo n page \\u0026quot;about\\u0026quot;后，会生成一个 md 文件，也就是后面说的文章，直接写文章就行了。 \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:2\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#about-页面\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.3 添加搜索，评论，分享 搜索功能真心好用，当文章多起来的时候，标签提供的作用已经很少了，只能简单索引，搜索却能精确查找，这里我用的依旧是最简单的本地站内搜索。 安装hexo-generator-searchdb 在站点的根目录下执行以下命令： npm install hexo-generator-searchdb --save 配置站点配置文件 新增以下内容到任意位置： search: path: search.xml field: post format: html limit: 10000 配置主题配置文件 ## Local search local_search: enable: true algolia 参考文件 让搜索引擎找到你的博客，还是看到邱承佳学长博文有写到 传送门 \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:3\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#添加搜索评论分享\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.4 添加访客数，阅读量等 评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。 39.4.1 文章阅读量 以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 article.ejs文件 \\u0026lt;div align=\\u0026#34;left\\u0026#34;\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本文总阅读量\\u0026lt;span id=\\u0026#34;busuanzi_value_page_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 \\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; 39.4.2 站点访问量，访客数 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 footer.ejs文件 \\u0026lt;script src=\\u0026#34;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js\\u0026#34; async defer\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本站总访问量\\u0026lt;span id=\\u0026#34;busuanzi_value_site_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 | \\u0026lt;/span\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_site_uv\\u0026#34;\\u0026gt; 本站访客数\\u0026lt;span id=\\u0026#34;busuanzi_value_site_uv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;人次 \\u0026lt;/span\\u0026gt; 2018.10.08 更新 不蒜子官网说七牛强制过期域名dn-lbstatics.qbox.me, 所以 js 文件位置发生改变，改为busuanzi.ibruce.info \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:4\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#添加访客数阅读量等\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.4 添加访客数，阅读量等 评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。 39.4.1 文章阅读量 以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 article.ejs文件 \\u0026lt;div align=\\u0026#34;left\\u0026#34;\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本文总阅读量\\u0026lt;span id=\\u0026#34;busuanzi_value_page_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 \\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; 39.4.2 站点访问量，访客数 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 footer.ejs文件 \\u0026lt;script src=\\u0026#34;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js\\u0026#34; async defer\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本站总访问量\\u0026lt;span id=\\u0026#34;busuanzi_value_site_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 | \\u0026lt;/span\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_site_uv\\u0026#34;\\u0026gt; 本站访客数\\u0026lt;span id=\\u0026#34;busuanzi_value_site_uv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;人次 \\u0026lt;/span\\u0026gt; 2018.10.08 更新 不蒜子官网说七牛强制过期域名dn-lbstatics.qbox.me, 所以 js 文件位置发生改变，改为busuanzi.ibruce.info \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:4\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#文章阅读量\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"39.4 添加访客数，阅读量等 评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。 39.4.1 文章阅读量 以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 article.ejs文件 \\u0026lt;div align=\\u0026#34;left\\u0026#34;\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本文总阅读量\\u0026lt;span id=\\u0026#34;busuanzi_value_page_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 \\u0026lt;/span\\u0026gt; \\u0026lt;/div\\u0026gt; 39.4.2 站点访问量，访客数 打开以下路径在你喜欢的地方添加代码，\\\\blog\\\\hexo\\\\themes\\\\主题名字、layout\\\\_partial，找到 footer.ejs文件 \\u0026lt;script src=\\u0026#34;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js\\u0026#34; async defer\\u0026gt;\\u0026lt;/script\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_page_pv\\u0026#34;\\u0026gt; 本站总访问量\\u0026lt;span id=\\u0026#34;busuanzi_value_site_pv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;次 | \\u0026lt;/span\\u0026gt; \\u0026lt;span id=\\u0026#34;busuanzi_container_site_uv\\u0026#34;\\u0026gt; 本站访客数\\u0026lt;span id=\\u0026#34;busuanzi_value_site_uv\\u0026#34;\\u0026gt;\\u0026lt;/span\\u0026gt;人次 \\u0026lt;/span\\u0026gt; 2018.10.08 更新 不蒜子官网说七牛强制过期域名dn-lbstatics.qbox.me, 所以 js 文件位置发生改变，改为busuanzi.ibruce.info \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:7:4\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#站点访问量访客数\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"40 写文章 hexo 文章用轻量型标签语言 Markdown 编写 markdown 入门 繁体原始文件 繁体原始文件 github \",\"date\":\"2018-06-01\",\"objectID\":\"/posts/hexobuild/:8:0\",\"tags\":[\"Hexo\",\"Node.js\"],\"title\":\"hexo+github 搭建个人博客及美化\",\"uri\":\"/posts/hexobuild/#写文章\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了 \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:0:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25 1. 首先 刚刚搭博客，很多都不懂，就连插入图片的路径问题都把我整的要命。（我用的 Sublime Text 3 编译器） 下面讲讲： \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:1:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#1-首先\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25.1 1.1 设置站点配置_config.yml post_asset_folder: true \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:1:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#11-设置站点配置_configyml\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25.2 1.2 安装插件 npm install https://github.com/CodeFalling/hexo-asset-image -- save \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:1:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#12-安装插件\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"25.3 1.3 下次再运行 hexo n \\u0026ldquo;xxxx\\u0026quot;来生成 md 博文时，下路径 /source/_posts 文件夹内除了 xxxx.md 文件还有一个同名的文件夹，在 xxxx.md 中想引入图片时，先把图片复制到 xxxx 这个文件夹中，然后只需要在 xxxx.md 中按照 markdown 的格式引入图片。 \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:1:3\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#13-下次再运行-hexo-n-xxxx来生成-md-博文时下路径\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"26 2. 添加图片 首先大家可以查看 hexo 官方文档 资源文件夹章节 \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:2:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#2-添加图片\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"26.1 2.1 markdown 添加 相对路径添加（我被这个相对路径搞得要死，前面各种出错，大家可以对照我的来插入图片 \\u0026hellip;） #直接写图片名就好了，图片实例见下 ![kyrie irving](294136.jpg) #如果改了 Permalink 就要加上文章名，即同名文件夹名 ![kyrie irving](hexo-添加图片，音乐，链接，视频/294136.jpg) #代码压缩后前面还要加一个/ ![kyrie irving](/hexo-添加图片，音乐，链接，视频/294136.jpg) \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:2:1\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#21-markdown-添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"26.2 2.2 插件添加 传送门 这种方式被很多人诟病，但有时候也不失一种好方式，简单快捷。 还有图片名字显示，不错的。 {% asset_img 297787.jpg kyrie irving %} \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:2:2\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#22-插件添加\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"27 3. 音乐 大家可以看 网易云音乐 的官网，播放音乐可以生成外链，直接拿来用就行了。iframe 插件可以在代码中设置宽高等参数，auto 为自动播放。flash 不可以自己设置参数。看喜好，随便你。 其他音乐，把插件中的链接替换成要播放的链接就可以了 #iframe 插件 \\u0026lt;iframe frameborder=\\u0026#34;no\\u0026#34; border=\\u0026#34;0\\u0026#34; marginwidth=\\u0026#34;0\\u0026#34; marginheight=\\u0026#34;0\\u0026#34; width=330 height=86 src=\\u0026#34;//music.163.com/outchain/player?type=2\\u0026amp;id=66651\\u0026amp;auto=0\\u0026amp;height=66\\u0026#34;\\u0026gt; \\u0026lt;/iframe\\u0026gt; #flash 插件 \\u0026lt;embed src=\\u0026#34;//music.163.com/style/swf/widget.swf?sid=40249713\\u0026amp;type=2\\u0026amp;auto=0\\u0026amp;width=320\\u0026amp;height=66\\u0026#34; width=\\u0026#34;340\\u0026#34; height=\\u0026#34;86\\u0026#34; allowNetworking=\\u0026#34;all\\u0026#34;\\u0026gt; \\u0026lt;/embed\\u0026gt; \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:3:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#3-音乐\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"28 4. 添加链接 [我的微博](https://weibo.com/liahao) {% link text url title %} \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:4:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#4-添加链接\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"29 5. 添加视频 视频链接最好是打开就是视频的链接（youku，YouTube，抖音等） 可以把视频上传到优酷，抖音等生成外链再拿来用。（优酷上传需要注册和实名认证） 插件参考资料 自拍手写视频（优酷） 实验室无聊拍的 \\u0026lt;iframe height=500 width=100% src=\\u0026#34;https://player.youku.com/embed/XMzY0MzgxNDMyOA==\\u0026#34; frameborder=0 allowfullscreen\\u0026gt; \\u0026lt;/iframe\\u0026gt; \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:5:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#5-添加视频\"},{\"categories\":[\"Memo\"],\"collections\":null,\"content\":\"30 工具集合 Picgo 马克飞象、CSDN、简书 SM.MS 图床 \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/hexowrite/:6:0\",\"tags\":[\"Hexo\"],\"title\":\"hexo 添加图片，音乐，链接，视频\",\"uri\":\"/posts/hexowrite/#工具集合\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\"一直觉得中国古代神话 能称得上传奇的只有两个人物： 一是猴子 一是哪吒 百世蕴灵育出只石猴 大闹天宫腾云驾雾 三年怀胎生了个哪吒 东海屠龙翻江倒海 可以说 除了这两人 没人再能当得起离经放纵四个字的 但称得上悲剧的 约摸也只有这两个 一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空 一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子 这尘世最擅长的事 大抵就是抹杀疏狂者的落拓 磨平豪纵者的傲骨 斩灭叛世者的孤妄 \",\"date\":\"2018-05-31\",\"objectID\":\"/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/:0:0\",\"tags\":[\"随笔\"],\"title\":\"猴子与哪吒\",\"uri\":\"/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/#\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"Lruihao/lruihao.github.io: 博客构建档（HTML \\u0026 Markdown）\",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。 共计 297 篇文章 by Lruihao. \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:1:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#菠菜眾長 data-decreased\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:2:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2026\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:3:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2025\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:4:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2024\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:5:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2023\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:6:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2022\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:7:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2021\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:8:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2020\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:9:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2019\"},{\"categories\":[\"GitHub\"],\"collections\":[\"project\"],\"content\":\"2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"date\":\"2018-05-28\",\"objectID\":\"/projects/lruihao/lruihao.github.io/:10:0\",\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"uri\":\"/projects/lruihao/lruihao.github.io/#2018\"},{\"categories\":[\"thoughts\"],\"collections\":null,\"content\":\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。” 我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己， 其實也不重要了，還望披荊斬棘，不改初心。 不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！ 從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。 時間並不會因為你的迷茫和遲疑而停留，就像你在看到這篇博客的時候，不知道有多少人正風雨兼程趕赴夢想。沒有誰生來就是神牛，千裏之行，始於足下！比自己優秀的人有很多，永遠不要感動自己，保持謙遜，沉澱自己，感謝每一個曾經努力的自己。不必執著於過去，也不必過度擔憂未來，望披荊斬棘，不忘初心。 最開始寫博客，是在打 ACM 的時候，深受一個學長的博客影響，他的博客是 hexo 搭建的，ID 是 [戎碼一生]，所以我也照葫蘆畫瓢用 hexo 搭建了一個，一用就是 3 年，博客名字原“博採眾長”改为“菠菜眾長”，因為不能用成語作為網站名字，就這個原因。 直到 21 年下半年，升級 Windows 11, 系統出了 BUG, 整理磁盤不小心把代碼刪掉了，就乾脆換成 hugo 了。 逝者如斯乎，不舍昼夜 \",\"date\":\"2018-05-28\",\"objectID\":\"/posts/hello-world/:0:0\",\"tags\":[\"随笔\"],\"title\":\"Hello World\",\"uri\":\"/posts/hello-world/#\"}]"
  },
  {
    "path": "shortcodes/mmt-netease/css/index.css",
    "content": "@layer mmt-netease {\n  .netease-music:not([data-fixed]) {\n    min-height: 90px;\n  }\n  .netease-music[data-mini] {\n    min-height: 66px;\n  }\n  .netease-music .aplayer-narrow {\n    margin: 0 auto;\n  }\n  .section-comment {\n    margin-top: 1rem;\n    position: relative;\n    min-height: 150px;\n  }\n  .comment-163 {\n    font-family: 'MMT', '沐目体';\n    position: relative;\n    border: 1px solid #f5f5f5;\n    padding: 0.75em;\n    border-radius: 0.75rem;\n    color: var(--color-comment, #272626);\n    cursor: pointer;\n  }\n  [data-theme='dark'] .comment-163 {\n    --color-comment: #f5f5f5;\n  }\n  .pic-backdrop {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background-repeat: no-repeat;\n    filter: blur(10px);\n    background-size: cover;\n    background-position: center;\n    border-radius: 0.75rem;\n    z-index: -1;\n    opacity: 0.75;\n  }\n  .commentator {\n    display: flex;\n    align-items: center;\n  }\n  .comment-avatar {\n    width: 3.125em !important;\n    height: 3.125em !important;\n    border-radius: 50% !important;\n    border: 1px solid #f5f5f5 !important;\n    margin-right: 0.75em;\n    padding: 0.125em;\n  }\n  .comment-user {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    line-height: 1.2;\n  }\n  .comment-user .comment-nickname {\n    position: relative;\n    font-weight: 600;\n    font-size: 1.2rem;\n    text-decoration: none;\n    display: inline-block;\n  }\n  .comment-user .comment-nickname:not(:empty)::after {\n    content: '：';\n    margin-right: 0.25em;\n  }\n  .comment-user .comment-time {\n    font-size: 0.8rem;\n    mix-blend-mode: difference;\n  }\n\n  .comment-liked {\n    font-weight: 600;\n    font-size: 0.8rem;\n    margin-left: auto;\n    mix-blend-mode: difference;\n  }\n  .comment-liked:not(:empty)::after {\n    content: '👍';\n    margin-left: 0.25em;\n  }\n\n  .comment-content {\n    word-wrap: break-word;\n    word-break: break-all;\n    font-size: 1.5rem;\n    line-height: 2rem;\n    position: relative;\n    margin-left: 2.8em;\n  }\n  .music-info {\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    font-size: 1.2rem;\n    margin-top: 0.75em;\n    text-shadow: 0 0 4px var(--color-text-shadow, rgba(0, 0, 0, .4));  \n  }\n  [data-theme='dark'] .music-info {\n    --color-text-shadow: rgba(255, 255, 255, .8);\n  }\n  .music-name:not(:empty)::before {\n    content: '《';\n  }\n  .artists-name:not(:empty)::after {\n    content: '》';\n  }\n  .music-name:not(:empty)::after {\n    content: '·';\n    margin-inline: 0.25rem;\n  }\n  .mmt-netease-powered {\n    display: block;\n    text-align: right;\n    font-family: 'MMT', '沐目体';\n    font-style: italic;\n    font-weight: 600;\n    color: var(--fi-secondary, #919191);\n    margin-block: 0.5rem;\n    text-shadow: var(--color-powered-shadow, #ebb8b8) 1px 2px 2px;\n  }\n  [data-theme='dark'] .mmt-netease-powered {\n    --color-powered-shadow: #000;\n  }\n\n  .d-none {\n    display: none !important;\n  }\n\n  /* Loading Indicator */\n  .loading-indicator-wrapper {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    height: 20px;\n\n    .aether-spinner {\n      display: flex;\n      justify-content: space-between;\n      width: var(--as-size, 16px);\n      height: var(--as-size, 16px);\n      text-align: center;\n      font-size: var(--as-font-size, 10px);\n\n      > div {\n        height: 100%;\n        width: 4px;\n        background-color: var(--as-content-color-tertiary, #a6a6a6);\n        opacity: 0.2;\n        border-radius: var(--as-border-radius-default, 4px);\n        animation: spinner-bounce 0.6s infinite ease-in-out;\n        transform-origin: center;\n      }\n      .rect-two {\n        animation-delay: 0.15s;\n      }\n      .rect-three {\n        animation-delay: 0.3s;\n      }\n    }\n  }\n\n  @keyframes spinner-bounce {\n    0%,\n    100% {\n      transform: scaleY(0.4);\n      opacity: 0.8;\n    }\n    50% {\n      transform: scaleY(1);\n      opacity: 1;\n    }\n  }\n\n  /* 兼容 prefers-color-scheme 切换的主题 */\n  @media (prefers-color-scheme: dark) {\n    :root {\n      --color-comment: #f5f5f5;\n      --color-text-shadow: rgba(255, 255, 255, .8);\n      --color-powered-shadow: #000;\n    }\n    [data-theme='light'] {\n      --color-comment: #272626;\n      --color-text-shadow: rgba(0, 0, 0, .4);\n      --color-powered-shadow: #ebb8b8;\n    }\n  }\n}\n"
  },
  {
    "path": "shortcodes/mmt-netease/js/index.js",
    "content": "/**\n * javascript for shortcode mmt-netease\n * @author @Lruihao (https://lruihao.cn)\n */\nconst RNC = new (function () {\n  const $music = document.querySelector('.netease-music');\n  const $comment = document.querySelector('.comment-163');\n  const $loading = document.querySelector('.loading-indicator-wrapper');\n  let lastMusic = void 0;\n  let timer = void 0;\n  const TIME_OUT = 60;\n\n  /**\n   * 获取随机网易云评论\n   * @param {Boolean} [autoplay=false] 是否自动播放\n   * @param {Boolean} [current=false] 是否播放当前评论的音乐\n   * @name RNC#getRandomComment\n   */\n  this.getRandomComment = (autoplay = false, current = false) => {\n    $comment.classList.toggle('d-none');\n    $loading.classList.toggle('d-none');\n    fetch(`https://api.lruihao.cn/netease/comment?mid=${$music.dataset.mid}`)\n      .then(response => response.json())\n      .then((comment) => {\n        const nickname = comment.data?.nickname || '未知用户';\n        const musicURL = comment.data?.musicUrl;\n        if (comment.data.picUrl) {\n          $comment.querySelector('.pic-backdrop').style.backgroundImage = `url(${comment.data.picUrl.slice(5)})`;\n        }\n        if (comment.data.avatarUrl) {\n          const $avatar = $comment.querySelector('.comment-avatar');\n          $avatar.alt = `${nickname}'s avatar`;\n          $avatar.src = comment.data.avatarUrl.slice(5);\n          $avatar.classList.remove('d-none');\n        }\n        $comment.querySelector('.comment-nickname').innerHTML = nickname;\n        $comment.querySelector('.comment-time').innerHTML = comment.data.timeStr;\n        $comment.querySelector('.comment-liked').innerHTML = comment.data.likedCount;\n        $comment.querySelector('.comment-content').innerHTML = comment.data.content?.replace('\\n', '<br/>');\n        $comment.querySelector('.music-name').innerHTML = comment.data?.musicName;\n        $comment.querySelector('.artists-name').innerHTML = comment.data?.artist;\n        if (!musicURL || !current) { return; }\n        if (!lastMusic || (lastMusic !== musicURL)) {\n          const $player = document.createElement('meting-js');\n          $player.setAttribute('auto', musicURL);\n          $player.setAttribute('autoplay', autoplay);\n          $music.dataset.fixed && $player.setAttribute('fixed', $music.dataset.fixed);\n          $music.dataset.mini && $player.setAttribute('mini', $music.dataset.mini);\n          $music.dataset.volume && $player.setAttribute('volume', $music.dataset.volume);\n          $music.innerHTML = '';\n          $music.appendChild($player);\n          lastMusic = musicURL;\n        }\n      }).catch((error) => {\n        console.error('Error fetching comment:', error);\n        $comment.querySelector('.comment-content').innerHTML = '获取评论失败，请稍后再试...';\n      }).finally(() => {\n        $comment.classList.toggle('d-none');\n        $loading.classList.toggle('d-none');\n      });\n  };\n\n  /**\n   * require APlayer and MetingJS\n   */\n  this.getRequire = () => {\n    if (typeof MetingJSElement === 'undefined') {\n      const APlayer = document.createElement('script');\n      const Meting = document.createElement('script');\n      APlayer.src = 'https://unpkg.com/aplayer/dist/APlayer.min.js';\n      Meting.src = 'https://unpkg.com/meting@2/dist/Meting.min.js';\n      const s = document.getElementsByTagName('script')[0];\n      s.parentNode.insertBefore(APlayer, s);\n      s.parentNode.insertBefore(Meting, s);\n    }\n  };\n\n  this.refresh = (autoplay = false, current = false) => {\n    this.getRandomComment(autoplay, current);\n    if (timer) {\n      clearInterval(timer);\n    }\n    timer = setInterval(() => {\n      this.getRandomComment(autoplay, current);\n    }, TIME_OUT * 1000);\n  };\n\n  /**\n   * 初始化 mmt-netease shortcode\n   * @name RNC#initRandomComment\n   */\n  this.initMMTNetease = () => {\n    if (!$music || !$comment) {\n      return;\n    }\n    this.getRequire();\n    $comment.addEventListener('click', () => {\n      this.refresh($music.dataset.autoplay, $music.dataset.current);\n    });\n    const observer = new IntersectionObserver((entries) => {\n      entries.forEach((entry) => {\n        if (entry.isIntersecting) {\n          // 进入视口时开始获取评论\n          this.refresh();\n          // 取消观察\n          observer.disconnect();\n        }\n      });\n    }, { threshold: 0.1 });\n    const target = document.querySelector('.section-comment');\n    if (target) {\n      observer.observe(target);\n    }\n  };\n})();\n\n(() => {\n  // It will be executed when the DOM tree is built.\n  document.addEventListener('DOMContentLoaded', () => {\n    RNC.initMMTNetease();\n  });\n})();\n"
  },
  {
    "path": "site.webmanifest",
    "content": "{\n    \"name\": \"菠菜眾長\",\n    \"short_name\": \"@Lruihao\",\n    \"description\": \"Lruihao's Note\",\n    \"icons\": [\n      {\n        \"src\": \"/apple-touch-icon.png\",\n        \"sizes\": \"180x180\",\n        \"type\": \"image/png\",\n        \"purpose\": \"any maskable\"\n      },\n      {\n        \"src\": \"/android-chrome-192x192.png\",\n        \"sizes\": \"192x192\",\n        \"type\": \"image/png\"\n      },\n      {\n        \"src\": \"/android-chrome-512x512.png\",\n        \"sizes\": \"512x512\",\n        \"type\": \"image/png\"\n      }\n    ],\n    \"theme_color\": \"#ffffff\",\n    \"background_color\": \"#ffffff\",\n    \"display\": \"standalone\",\n    \"start_url\": \"/\"\n}"
  },
  {
    "path": "sitemap.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"><url><loc>https://lruihao.cn/categories/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/github/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/cell-tooltip/</loc><lastmod>2026-03-30T06:51:12+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/</loc><lastmod>2026-05-08T02:06:09+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-fixit/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</loc><lastmod>2026-05-04T16:54:23+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/</loc><lastmod>2026-05-08T02:06:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/theme-component/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/auto-changelog/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/conventional-changelog/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/conventional-commits/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</loc><lastmod>2025-11-19T04:35:56+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/semver/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/css/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/fixit/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/invert-filter/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/javascript/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/mermaid/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/</loc><lastmod>2025-08-27T12:30:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/prefers-color-scheme/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/mermaid-theming/</loc><lastmod>2025-08-16T14:56:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/custom-element/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/html/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/shadow-dom/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/slot/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/template/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/web-components/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wc-01-prologue/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/code-playground/</loc><lastmod>2025-08-27T12:30:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/grocery/</loc><lastmod>2025-08-27T12:30:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/node.js/</loc><lastmod>2025-08-27T12:30:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/npm/</loc><lastmod>2025-08-27T12:30:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/caniuse/</loc><lastmod>2026-04-08T08:41:40+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/caniuse-embed/</loc><lastmod>2026-05-06T03:02:29+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/custom-elements/</loc><lastmod>2026-04-08T08:41:40+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</loc><lastmod>2026-04-08T08:41:40+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/web-components/</loc><lastmod>2026-04-08T08:41:40+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/json-viewer-element/</loc><lastmod>2026-04-08T08:42:59+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/@layer/</loc><lastmod>2025-06-18T12:41:26+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/css/</loc><lastmod>2025-06-18T12:41:26+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/at-layer/</loc><lastmod>2025-06-18T12:41:26+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/nginx/</loc><lastmod>2025-06-11T10:15:18+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/proxy/</loc><lastmod>2025-06-11T10:15:18+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/vue.js/</loc><lastmod>2025-06-11T10:15:18+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vue-build/</loc><lastmod>2025-06-11T10:15:18+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/vue3/</loc><lastmod>2026-01-05T07:25:04+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cjk/</loc><lastmod>2026-01-05T07:25:04+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/mmt-webfont/</loc><lastmod>2026-01-05T07:25:04+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/mmt/</loc><lastmod>2026-01-05T07:25:04+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/webfont/</loc><lastmod>2026-01-05T07:25:04+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/gravatar/</loc><lastmod>2026-03-10T07:05:02+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/vercel-proxy/</loc><lastmod>2026-03-10T07:05:02+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/vercel/</loc><lastmod>2026-03-10T07:05:02+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/flexbox/</loc><lastmod>2025-01-20T17:49:35+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/flexbox/</loc><lastmod>2025-01-20T17:49:35+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/github-actions/</loc><lastmod>2026-05-06T03:13:04+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/action-component-list/</loc><lastmod>2026-05-06T03:13:04+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/asciinema/</loc><lastmod>2026-04-20T07:20:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</loc><lastmod>2026-04-20T07:20:15+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/shortcodes/</loc><lastmod>2026-05-06T03:02:29+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/css-viewport/</loc><lastmod>2024-12-06T11:51:15+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/i18n/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/translatejs/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/search/</loc><lastmod>2024-11-28T17:31:41+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/aws/</loc><lastmod>2024-12-07T01:20:02+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/aws/</loc><lastmod>2024-12-07T01:20:02+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/canvas/</loc><lastmod>2025-12-27T08:05:18+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</loc><lastmod>2025-12-27T08:05:18+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/github-api/</loc><lastmod>2024-10-06T12:21:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/memo/</loc><lastmod>2025-01-07T10:08:46+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/content-adapters/</loc><lastmod>2024-10-06T12:21:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/html-css-javascript/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/html-demo/</loc><lastmod>2026-05-06T03:02:30+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/changelog/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/continuous-integration/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/nodejs/</loc><lastmod>2026-05-06T03:02:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/rolldown/</loc><lastmod>2025-12-10T03:29:52+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/atom/</loc><lastmod>2025-12-20T06:45:59+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/feed/</loc><lastmod>2025-12-20T06:45:59+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</loc><lastmod>2025-12-20T06:45:59+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</loc><lastmod>2025-12-20T06:44:31+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/json-feed/</loc><lastmod>2025-12-20T06:44:31+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/reward/</loc><lastmod>2024-12-09T01:46:12+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/eruda/</loc><lastmod>2025-07-04T02:38:28+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</loc><lastmod>2025-07-04T02:38:28+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/vconsole/</loc><lastmod>2025-07-04T02:38:28+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/css-round/</loc><lastmod>2024-10-13T12:28:31+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/round/</loc><lastmod>2024-10-13T12:28:31+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</loc><lastmod>2025-11-08T18:49:59+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/reward-log/</loc><lastmod>2025-11-08T18:49:59+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/git/</loc><lastmod>2024-12-17T18:09:03+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/git/</loc><lastmod>2025-01-07T10:08:46+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/git-summary/</loc><lastmod>2024-07-17T18:34:56+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/box-shadow/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/drop-shadow/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/drop-shadow/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/fixit-docs-bookmark/</loc><lastmod>2025-12-27T08:36:41+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</loc><lastmod>2025-12-27T08:36:41+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/fixit-docs-bookmark/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/scss/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/scrollbar-styling/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/scrollbar-styling/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</loc><lastmod>2026-05-06T03:02:29+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/javascript/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/vue2/</loc><lastmod>2026-05-06T03:02:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/aside-toggle-drag/</loc><lastmod>2024-06-17T18:08:34+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/design-patterns/</loc><lastmod>2024-06-09T02:57:55+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/java/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/design-principles/</loc><lastmod>2024-06-09T02:57:55+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/svg/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/svg-dark-light/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/</loc><lastmod>2024-05-20T11:41:03+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/vercel-gravatar/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/vercel-gravatar/</loc><lastmod>2025-08-18T17:42:18+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/component-projects/</loc><lastmod>2026-05-06T03:02:26+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/apple-devices-preview/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/coverview/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/react/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/react/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/coverview/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/coverview/</loc><lastmod>2026-05-06T03:02:25+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/english/</loc><lastmod>2024-04-02T21:13:59+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/c6bc2d5/</loc><lastmod>2024-04-02T21:13:59+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/overflow-tooltip/</loc><lastmod>2024-06-12T18:57:53+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/html/</loc><lastmod>2024-02-21T11:06:12+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/auto-sizes/</loc><lastmod>2024-02-21T11:06:12+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/kityminder-core/</loc><lastmod>2024-07-07T02:44:14+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/debug/</loc><lastmod>2024-01-18T12:59:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/typescript/</loc><lastmod>2024-01-18T12:59:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/900d5e4/</loc><lastmod>2024-01-18T12:59:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/20b75e9/</loc><lastmod>2024-07-17T17:37:00+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/6550187/</loc><lastmod>2024-01-11T10:39:56+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/el-card-collapse/</loc><lastmod>2024-01-10T17:39:54+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/python/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/node.js/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/fixit-cli/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/fixit-cli/</loc><lastmod>2026-05-06T03:02:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</loc><lastmod>2026-05-06T03:02:22+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/scaffolding-tool/</loc><lastmod>2026-05-06T03:02:22+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/ssh/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ssh-sign/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/patch-package/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/dashboard/</loc><lastmod>2024-04-25T13:29:53+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/widget/</loc><lastmod>2024-01-17T16:39:29+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/</loc><lastmod>2024-04-25T13:29:53+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/</loc><lastmod>2024-04-25T13:29:53+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashboard-summary/</loc><lastmod>2024-01-17T16:39:29+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashborad-widget-usage/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashborad-template-usage/</loc><lastmod>2024-04-25T13:29:53+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashborad-widget-docs/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashborad-template-docs/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dashboard-analysis/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/web-components/</loc><lastmod>2025-08-05T15:37:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/draggable-dashboard/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/autocorrect/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/markdown/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/markdownlint/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pangu.js/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/markdownlint/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/</loc><lastmod>2023-11-17T20:45:09+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cognitive-complexity/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/article-structure/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/el-table-sticky/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vue-fullscreen-toggler/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/js-fullscreen/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/translation-guide/</loc><lastmod>2023-11-17T20:45:09+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vue-svg-icon/</loc><lastmod>2024-06-06T23:01:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vscode-snippets/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/grid-bg-image/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/linux/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/element-ui/</loc><lastmod>2026-05-06T03:02:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/vue-el-demo/</loc><lastmod>2026-05-06T03:02:21+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/vue/</loc><lastmod>2026-05-06T03:02:21+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/el-backtop-fix/</loc><lastmod>2024-01-10T17:39:54+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/el-table/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/el-table-sticky/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/el-table-sticky/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/v-height-adaptive/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/v-sticky-footer/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/v-sticky-h-scroll/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/v-sticky-header/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/vue-directive/</loc><lastmod>2026-05-06T03:02:19+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/gen-router/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/husky/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/mac/</loc><lastmod>2025-01-07T10:08:46+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/nvm/</loc><lastmod>2025-01-07T10:08:46+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/sourcetree-husky/</loc><lastmod>2024-08-06T14:11:51+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/eslint/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/tailwindcss/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/v2-tailwind/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vue2-guid/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</loc><lastmod>2025-07-02T07:28:07+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/netease-cloud-music/</loc><lastmod>2025-07-02T07:28:07+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/eager/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/lazy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/loading/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/native-img-loading-lazy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/browser/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/browser/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/browser-rendering/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/document-style-guide/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/event-loop/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/homebrew/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/npx/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/homebrew-npm/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/editor/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/minder/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/blog/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-blog/</loc><lastmod>2026-05-06T14:32:49+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-blog-template/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-fixit-starter/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</loc><lastmod>2026-05-06T03:02:16+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</loc><lastmod>2026-05-06T02:33:31+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</loc><lastmod>2025-09-12T09:38:50+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/beego/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/beego-install/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/go/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/go/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/semver/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/commit-spec/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/electron/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/electron-summary/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/encryption-fe/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cdn/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/qcloudcdn/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/newline/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/os/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/newline/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ohmyzsh-custom/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/linux-permission/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/config4mac/</loc><lastmod>2025-01-07T10:08:46+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/documentation/</loc><lastmod>2026-05-06T14:32:49+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/docs/</loc><lastmod>2026-05-06T14:32:49+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/adb/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/android/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/adb-for-mac/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/es6/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/js-rediscover/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/css-scss-var/</loc><lastmod>2024-07-14T17:09:39+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/gtd/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/gtd/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/algolia/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/giscus/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-blog-theme/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/hugo-fixit/fixit/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/hugo-theme/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pwa/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pwa-app/</loc><lastmod>2026-05-06T03:08:15+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/sublime/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/subl_imgpaste2/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hugo-cardlink/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hugo-i18n-zh-tw/</loc><lastmod>2021-12-19T20:01:45+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hugo-friends/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hugo-admin/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/shell/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/github-actions/</loc><lastmod>2024-12-17T18:09:03+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/</loc><lastmod>2024-12-17T18:09:03+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexo-to-hugo/</loc><lastmod>2024-11-06T19:42:55+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/friends/</loc><lastmod>2024-08-24T17:51:49+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/guestbook/</loc><lastmod>2025-05-07T14:46:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/front-end/</loc><lastmod>2026-05-06T03:02:13+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo-site/</loc><lastmod>2026-05-06T03:02:13+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/hugo-blog/</loc><lastmod>2026-05-06T03:02:13+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/about/</loc><lastmod>2025-09-15T22:12:57+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/less/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/less-sass-scss/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/sass/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/lightbox/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/lightbox/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cell-watermark/</loc><lastmod>2026-05-06T03:02:12+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/watermark/</loc><lastmod>2026-05-06T03:02:12+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/watermark/</loc><lastmod>2026-05-06T03:02:12+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/cell-watermark/</loc><lastmod>2024-12-12T14:56:25+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/codereview/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/codereview/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/leancloud/</loc><lastmod>2021-03-02T21:46:40+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/bill-note/</loc><lastmod>2021-03-02T21:46:40+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/bill-note/</loc><lastmod>2025-01-16T02:53:15+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/projects/cell-blog/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/laravel/</loc><lastmod>2025-04-12T07:30:24+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/php/</loc><lastmod>2024-11-20T12:50:07+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/php/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cell-blog-dev/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/laravel-blog/</loc><lastmod>2025-04-12T07:30:24+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/cell-blog/</loc><lastmod>2025-04-12T07:30:24+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/categories/python/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/csdnvisiter/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cron/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cron/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/http/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/daka/</loc><lastmod>2020-03-25T08:22:42+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/mysql/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/mysql/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/sql/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cosalbum/</loc><lastmod>2019-11-24T10:52:34+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/cos-album/</loc><lastmod>2019-11-24T10:52:34+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cos-album/</loc><lastmod>2023-02-16T04:56:55+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/cos-bucket/</loc><lastmod>2023-02-16T04:56:55+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/cos-album/</loc><lastmod>2023-02-16T04:56:55+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/rest/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/restful/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/phppushurl/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/phpfile/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/font/</loc><lastmod>2025-08-06T09:23:14+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/mmt/</loc><lastmod>2025-08-06T09:23:14+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/posts/site-time/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/async/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/defer/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/async-defer/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/sublime-text3/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/netbeans/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/netbeans/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dev-rules/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/phpform/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/phpfunc/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/server/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/wamp/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wamproot/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/windows/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/pysx2/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/pysx1/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/turtle/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/c/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/judgetriangle/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/acm/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hustoj/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hustoj/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/ubuntu/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/acm/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/gcd-bit/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/imgurl/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/imgurl/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/json/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pyinstaller/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/mx2wx/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/wxpy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ifzhushi/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/pysettime/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/pyinstallererror/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/gui/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/java/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/singlethreaddown/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/urlconnection/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/jsoninfo/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/posttest/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/java-urlreader/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/byteio/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/javaexception/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/imageio/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/numpy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pillow/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/qrcode/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/1thintervivew/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/mmtimgpy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/jieba/</loc><lastmod>2019-04-20T15:44:57+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/pyecharts/</loc><lastmod>2019-04-20T15:44:57+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wxpy1/</loc><lastmod>2019-04-20T15:44:57+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wximgpy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hellojava/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/java-regex/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/regex/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/stringbuffer/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/sort/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/stringbuffer/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hdu/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu1009/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/ngrok/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ngrok/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ms-html-css/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/bqbj/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dacheng/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/redirect/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/ssl/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/http2https/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexo-theme-next/</loc><lastmod>2019-09-13T16:43:19+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/substatus/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/windefault/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/layui/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/thinkphp/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/player/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/bt/</loc><lastmod>2019-03-18T21:31:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/webbiji/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/fanxing/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/eclipse/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/eclipseuse/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/qframe/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/linkcard/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/ubuntutime/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/qqxml/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/os/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cipanadmin/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/js-vcode/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/renative/</loc><lastmod>2019-02-01T20:44:40+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/</loc><lastmod>2024-07-28T22:39:47+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/hexo-theme-next/</loc><lastmod>2023-12-21T02:39:42+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/posts/jicheng/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cos-hexo/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/java-arrays/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/collator/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/comparator/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/recent-posts/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/mathclass/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/duixiang/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/java-range/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/java-input/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/biaoshi/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/subject-verb/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/inversion-3/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/inversion-2/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/inversion-1/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/nextplugin/</loc><lastmod>2021-10-02T15:27:58+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/bat/</loc><lastmod>2018-11-17T14:25:49+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/commit-bat/</loc><lastmod>2018-11-17T14:25:49+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/fusion/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/lua/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/fas-app/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/caddy/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/caddy-file/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/next-pdf/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/js-device/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/blog-backup/</loc><lastmod>2018-11-03T12:49:28+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/git/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/beian/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/shell/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/web-server-yun/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/href-301/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/web-server-win/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/gituse/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/termux/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/termux1/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/web-font/</loc><lastmod>2024-08-16T16:43:36+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/</loc><lastmod>2024-08-16T16:43:36+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/linux-hello-c/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/font-mmt/</loc><lastmod>2018-10-12T19:39:19+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/</loc><lastmod>2018-10-12T19:39:19+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/liushuixian/</loc><lastmod>2018-10-09T16:21:04+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/</loc><lastmod>2018-10-09T16:21:04+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/data/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/night/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/crash-cheat/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/linux-git/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/mood/</loc><lastmod>2018-09-21T21:11:25+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/vim/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/vim/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexo-wordcount/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexo-d-error/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dongtaisub/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/heart/</loc><lastmod>2018-08-15T16:33:12+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/git-index-lock/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/termux/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/c++/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/nowcoder/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/nowcoder157a/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/codeforces/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/codeforces476a/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/codeforces476b/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/euclid/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/lightoj1282/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cfcontest1017/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/euler/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/euler/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj1797/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/poj/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/console-log/</loc><lastmod>2023-12-08T20:26:13+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj2387/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/zuiduanlu/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/nowcodersummer-5th/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj1182/</loc><lastmod>2024-10-02T13:35:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu1272/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu3038/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/codeforces680b/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/codeforces680a/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/how-tables/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-1611/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-2236/</loc><lastmod>2024-07-07T14:04:22+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/piles-with-stones/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</loc><lastmod>2018-07-31T11:08:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</loc><lastmod>2018-07-27T21:56:08+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</loc><lastmod>2018-07-26T09:57:32+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</loc><lastmod>2018-07-26T09:57:32+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu-1495/</loc><lastmod>2018-07-24T15:34:00+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu-2612/</loc><lastmod>2018-07-23T12:34:42+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/bfs/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-3278/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-2251/</loc><lastmod>2018-07-22T12:02:32+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/dfs/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-1321/</loc><lastmod>2018-07-22T11:58:14+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-1426/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/adjacent-replacements/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/poj-3984/</loc><lastmod>2018-07-22T11:50:20+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wannafly-20/</loc><lastmod>2018-07-22T11:46:25+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</loc><lastmod>2021-09-26T12:04:42+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</loc><lastmod>2021-09-26T12:04:42+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hdu-1241/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</loc><lastmod>2018-07-22T11:31:05+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/cf-1009/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/dfs_bfs/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</loc><lastmod>2018-07-22T10:55:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/</loc><lastmod>2018-07-22T10:55:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/wannafly-18/</loc><lastmod>2018-07-18T08:40:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</loc><lastmod>2018-06-16T13:18:43+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</loc><lastmod>2018-06-15T07:51:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</loc><lastmod>2018-06-14T23:32:47+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/f-sorting/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/k-2018/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/b-higher/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/a-easy/</loc><lastmod>2023-11-17T20:39:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/c-sort/</loc><lastmod>2018-06-14T20:23:03+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/stl/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</loc><lastmod>2018-06-14T20:22:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/</loc><lastmod>2018-06-14T20:22:21+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/c-with-stl/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/links/</loc><lastmod>2023-11-30T23:35:38+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</loc><lastmod>2018-06-03T19:41:32+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexobuild/</loc><lastmod>2021-10-03T15:27:58+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hexowrite/</loc><lastmod>2023-11-29T15:20:16+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</loc><lastmod>2018-05-31T10:09:15+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/backend/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/frontend/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hexo-theme-next/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/lruihao/lruihao.github.io/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><priority>0</priority></url><url><loc>https://lruihao.cn/tags/study-notes/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/summary/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/web-development/</loc><lastmod>2026-05-07T02:00:50+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/posts/hello-world/</loc><lastmod>2024-07-28T22:39:47+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hexo/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/hugo/</loc><lastmod>2024-10-06T10:24:30+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/spec/</loc><lastmod>2023-09-25T17:27:05+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/project/</loc><lastmod>2024-09-25T14:36:24+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/projects/</loc><lastmod>2025-08-03T01:54:24+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/collections/modern-css/</loc><lastmod>2024-07-28T17:12:48+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/categories/thoughts/</loc><lastmod>2023-10-12T20:52:29+08:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://lruihao.cn/tags/summary/</loc><lastmod>2026-05-08T02:06:08+00:00</lastmod><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>"
  },
  {
    "path": "tags/2018-湘潭邀请赛/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"2018 湘潭邀请赛 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"date_published\":\"2018-06-15T07:51:21&#43;08:00\",\"date_modified\":\"2018-06-15T07:51:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"summary\":\" 来自一位大佬的演讲\\n尊敬的领导、教练，亲爱的参赛选手们：\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e来自一位大佬的演讲\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e尊敬的领导、教练，亲爱的参赛选手们：\\u003cbr\\u003e\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\u003cbr\\u003e\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\u003cbr\\u003e\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\u003cbr\\u003e\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\u003cbr\\u003e\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\u003cbr\\u003e\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"},{\"title\":\"F.sorting\",\"date_published\":\"2018-06-14T22:49:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/f-sorting/\",\"url\":\"https://lruihao.cn/posts/f-sorting/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"summary\":\"\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" title=\\\"sorting.png\\\" data-thumbnail=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" data-sub-html=\\\"\\u003ch2\\u003esorting.png\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\\\"sorting.png\\\" height=\\\"697\\\" width=\\\"1049\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/2018-湘潭邀请赛/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2018 湘潭邀请赛 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"2018 湘潭邀请赛\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-06-15T07:51:21+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2018 湘潭邀请赛\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2018 湘潭邀请赛\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ title=\"2018 湘潭邀请赛 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/index.xml title=\"2018 湘潭邀请赛 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/feed.json title=\"2018 湘潭邀请赛 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/feed.json title=\"2018 湘潭邀请赛 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2018 湘潭邀请赛</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>2018 湘潭邀请赛 <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=archive-item-link>18 湘潭邀请赛参赛队员代表发言</a>\n<span class=archive-item-date title='2018-06-15 07:51:21'>06-15</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article><article class=archive-item><a href=/posts/f-sorting/ class=archive-item-link>F.sorting</a>\n<span class=archive-item-date title='2018-06-14 22:49:27'>06-14</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/2018-湘潭邀请赛/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>2018 湘潭邀请赛 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>18 湘潭邀请赛参赛队员代表发言</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</link><pubDate>Fri, 15 Jun 2018 07:51:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;来自一位大佬的演讲&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;尊敬的领导、教练，亲爱的参赛选手们：&lt;br&gt;\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。&lt;br&gt;\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。&lt;br&gt;\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。&lt;br&gt;\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。&lt;br&gt;\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。&lt;br&gt;\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛总结</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 14 Jun 2018 23:32:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（hdu 复赛）&lt;/p&gt;\n&lt;p&gt;2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。&lt;/p&gt;</description></item><item><title>F.sorting</title><link>https://lruihao.cn/posts/f-sorting/</link><pubDate>Thu, 14 Jun 2018 22:49:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/f-sorting/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"&lt;h2&gt;sorting.png&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>K.2018</title><link>https://lruihao.cn/posts/k-2018/</link><pubDate>Thu, 14 Jun 2018 22:48:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/k-2018/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"k-2018\"&gt;&lt;span&gt;4 K. 2018&lt;/span&gt;\n &lt;a href=\"#k-2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item><item><title>A.Easy h-index</title><link>https://lruihao.cn/posts/a-easy/</link><pubDate>Thu, 14 Jun 2018 22:36:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/a-easy/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"a-easy-h-index\"&gt;&lt;span&gt;4 A. Easy h-index&lt;/span&gt;\n &lt;a href=\"#a-easy-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has published many papers. Given a0,a1,a2,&amp;hellip;,an which means Bobo has published ai papers with&lt;br&gt;\nitations exactly i, ﬁnd the h-index of Bobo.&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/2018-湘潭邀请赛/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/</title><link rel=canonical href=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/\"></head></html>"
  },
  {
    "path": "tags/@layer/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"@layer - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"date_published\":\"2025-06-18T10:35:47&#43;08:00\",\"date_modified\":\"2025-06-18T12:41:26&#43;08:00\",\"id\":\"https://lruihao.cn/posts/at-layer/\",\"url\":\"https://lruihao.cn/posts/at-layer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"@layer\"],\"summary\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\\n\",\"content_html\":\"\\u003cp\\u003e在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 \\u003ccode\\u003e@layer\\u003c/code\\u003e 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 \\u003ccode\\u003e@layer\\u003c/code\\u003e 的背景、作用以及语法，带你一探究竟。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/@layer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>@layer - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"@layer\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-18T10:35:47+08:00\"><meta itemprop=dateModified content=\"2025-06-18T12:41:26+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/@layer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"@layer\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"@layer\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/@layer/ title=\"@layer | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/@layer/index.xml title=\"@layer | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/@layer/feed.json title=\"@layer | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/@layer/feed.json title=\"@layer | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/@layer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>@Layer</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>@layer <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a>\n<span class=archive-item-date title='2025-06-18 10:35:47'>06-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/@layer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/@layer/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>@layer - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/@layer/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 18 Jun 2025 12:41:26 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/@layer/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>CSS @layer：构建更高效、更可维护的样式层级</title><link>https://lruihao.cn/posts/at-layer/</link><pubDate>Wed, 18 Jun 2025 10:35:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/at-layer/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 &lt;code&gt;@layer&lt;/code&gt; 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 &lt;code&gt;@layer&lt;/code&gt; 的背景、作用以及语法，带你一探究竟。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/@layer/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/@layer/</title><link rel=canonical href=https://lruihao.cn/tags/@layer/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/@layer/\"></head></html>"
  },
  {
    "path": "tags/acm/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"acm - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"},{\"title\":\"百钱百鸡（枚举法）\",\"date_published\":\"2019-03-30T10:13:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bqbj/\",\"url\":\"https://lruihao.cn/posts/bqbj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"最短路入门\",\"date_published\":\"2018-08-03T16:27:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/zuiduanlu/\",\"url\":\"https://lruihao.cn/posts/zuiduanlu/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"最短路\",\"ACM\"],\"summary\":\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"dijkstra-算法\\\"\\u003e\\u003cspan\\u003e1 Dijkstra 算法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#dijkstra-%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"1-定义概览\\\"\\u003e\\u003cspan\\u003e1.1 1. 定义概览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\u003c/p\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛参赛队员代表发言\",\"date_published\":\"2018-06-15T07:51:21&#43;08:00\",\"date_modified\":\"2018-06-15T07:51:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\"],\"summary\":\" 来自一位大佬的演讲\\n尊敬的领导、教练，亲爱的参赛选手们：\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e来自一位大佬的演讲\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e尊敬的领导、教练，亲爱的参赛选手们：\\u003cbr\\u003e\\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。\\u003cbr\\u003e\\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。\\u003cbr\\u003e\\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。\\u003cbr\\u003e\\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\\u003cbr\\u003e\\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。\\u003cbr\\u003e\\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"},{\"title\":\"F.sorting\",\"date_published\":\"2018-06-14T22:49:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/f-sorting/\",\"url\":\"https://lruihao.cn/posts/f-sorting/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\"],\"summary\":\"\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" title=\\\"sorting.png\\\" data-thumbnail=\\\"/images/remote/5b2286fcec6fc_5173814137014719346.png\\\" data-sub-html=\\\"\\u003ch2\\u003esorting.png\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\\\"sorting.png\\\" height=\\\"697\\\" width=\\\"1049\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"},{\"title\":\"各种 Links 汇总与分享\",\"date_published\":\"2018-06-07T00:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/links/\",\"url\":\"https://lruihao.cn/posts/links/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\"],\"summary\":\" 2021/10/1 更新\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\n我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/1 更新\\u003cbr\\u003e\\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。\\u003c/p\\u003e\\n\\u003cp\\u003e我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/acm/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>acm - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"acm\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"acm\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"acm\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/acm/ title=\"acm | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/acm/index.xml title=\"acm | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Acm</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>acm <sup>48</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article><article class=archive-item><a href=/posts/bqbj/ class=archive-item-link>百钱百鸡（枚举法）</a>\n<span class=archive-item-date title='2019-03-30 10:13:33'>03-30</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/zuiduanlu/ class=archive-item-link>最短路入门</a>\n<span class=archive-item-date title='2018-08-03 16:27:16'>08-03</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/acm/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/acm/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/tags/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/acm/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>acm - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/acm/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/acm/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>HDU 1009 FatMouse' Trade（贪心）</title><link>https://lruihao.cn/posts/hdu1009/</link><pubDate>Fri, 12 Apr 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;7 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。&lt;/p&gt;</description></item><item><title>百钱百鸡（枚举法）</title><link>https://lruihao.cn/posts/bqbj/</link><pubDate>Sat, 30 Mar 2019 10:13:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bqbj/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;我国古代数学家张丘建在《算经》一书中提出的数学问题：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>最短路入门</title><link>https://lruihao.cn/posts/zuiduanlu/</link><pubDate>Fri, 03 Aug 2018 16:27:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/zuiduanlu/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"dijkstra-算法\"&gt;&lt;span&gt;1 Dijkstra 算法&lt;/span&gt;\n &lt;a href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"1-定义概览\"&gt;&lt;span&gt;1.1 1. 定义概览&lt;/span&gt;\n &lt;a href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。&lt;/p&gt;</description></item><item><title>牛客暑假多校第五场</title><link>https://lruihao.cn/posts/nowcodersummer-5th/</link><pubDate>Thu, 02 Aug 2018 21:27:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcodersummer-5th/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接 密码：l9sn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多&lt;/p&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bear and Finding Criminals-Codeforces680B</title><link>https://lruihao.cn/posts/codeforces680b/</link><pubDate>Tue, 31 Jul 2018 19:32:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里&lt;strong&gt;一定&lt;/strong&gt;有罪犯。&lt;/p&gt;\n&lt;p&gt;一定能确定该城市有小偷的几种情况：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市有罪犯，则一定能检测到&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市的左边和右边位置若&lt;strong&gt;都&lt;/strong&gt;不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Bear and Five Cards-Codeforces680A</title><link>https://lruihao.cn/posts/codeforces680a/</link><pubDate>Tue, 31 Jul 2018 19:22:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>Piles-with-stones</title><link>https://lruihao.cn/posts/piles-with-stones/</link><pubDate>Tue, 31 Jul 2018 11:09:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/piles-with-stones/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Codeforces Round #500 (Div. 2)&lt;br&gt;\n题目链接：&lt;a href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles With Stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>Adjacent Replacements</title><link>https://lruihao.cn/posts/adjacent-replacements/</link><pubDate>Sun, 22 Jul 2018 11:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adjacent-replacements/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;第一次打 cf 就做出一道这样的找规律的题，打到自闭。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin&amp;gt;&amp;gt;n;\n int i;\n int flag=0;\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;){\n cin&amp;gt;&amp;gt;a[i];\n if(!(a[i]&amp;amp;1)) a[i]--;\n if(!flag) {cout&amp;lt;&amp;lt;a[i];flag=1;}\n else cout&amp;lt;&amp;lt;&amp;#34; &amp;#34;&amp;lt;&amp;lt;a[i];\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛参赛队员代表发言</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</link><pubDate>Fri, 15 Jun 2018 07:51:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;来自一位大佬的演讲&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;尊敬的领导、教练，亲爱的参赛选手们：&lt;br&gt;\n大家好，我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言，与大家分享我的经历和感受。&lt;br&gt;\n刚开始来到大学的时候，我一心向学，本着“好好学习，天天向上，为校争光，不搞对象”的信念，想在大学一展宏图。因为高中 OI 的挫败，我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾，到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦，而如今的我却也尝到了 ACM 带给我的乐。&lt;br&gt;\n在这三年里，有数不清的夜晚，我的舍友们在寝室里开黑，而我和我的队友在机房里开黑；在这三年里，有数不清的周末，我的舍友们在校园里驰骋，而我和我的队友在题库里驰骋；在这三年里，有数不清的假期，我的舍友们在召唤师峡谷里征战，而我和我的队友在中国各省市征战。三年过去了，我的舍友们成为了 offer 收割机，而我和我的队友成为了气球收割机。&lt;br&gt;\n为了变强是一个痛苦且漫长的过程，只有耐得住寂寞，才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发，仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。&lt;br&gt;\n三年的 ACM 让我成长很多，收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的，和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的，看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴，是他们的一路陪伴，让我有勇气一直走下去。我和他们走过的地方，比我和女朋友去过的地方还要多。噢，对了，我好像没有女朋友。总而言之，请珍惜你们的队友，他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样，也爱着 ACM，为自己心爱的努力。&lt;br&gt;\n最后预祝各位参赛选手们取得理想的成绩，也预祝本次大赛圆满成功。谢谢大家。&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛总结</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 14 Jun 2018 23:32:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（hdu 复赛）&lt;/p&gt;\n&lt;p&gt;2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。&lt;/p&gt;</description></item><item><title>F.sorting</title><link>https://lruihao.cn/posts/f-sorting/</link><pubDate>Thu, 14 Jun 2018 22:49:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/f-sorting/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"&lt;h2&gt;sorting.png&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>K.2018</title><link>https://lruihao.cn/posts/k-2018/</link><pubDate>Thu, 14 Jun 2018 22:48:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/k-2018/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"k-2018\"&gt;&lt;span&gt;4 K. 2018&lt;/span&gt;\n &lt;a href=\"#k-2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item><item><title>A.Easy h-index</title><link>https://lruihao.cn/posts/a-easy/</link><pubDate>Thu, 14 Jun 2018 22:36:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/a-easy/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"a-easy-h-index\"&gt;&lt;span&gt;4 A. Easy h-index&lt;/span&gt;\n &lt;a href=\"#a-easy-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has published many papers. Given a0,a1,a2,&amp;hellip;,an which means Bobo has published ai papers with&lt;br&gt;\nitations exactly i, ﬁnd the h-index of Bobo.&lt;/p&gt;</description></item><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item><item><title>C++ with STL</title><link>https://lruihao.cn/posts/c-with-stl/</link><pubDate>Thu, 14 Jun 2018 20:22:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-with-stl/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"&gt;&lt;span&gt;25 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）&lt;/span&gt;\n &lt;a href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;交换两元素的值在 C 语言课上作为指针讲解的典例。&lt;/p&gt;\n&lt;p&gt;int a=1,b=2;&lt;/p&gt;</description></item><item><title>各种 Links 汇总与分享</title><link>https://lruihao.cn/posts/links/</link><pubDate>Thu, 07 Jun 2018 00:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/links/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/1 更新&lt;br&gt;\n使用 Chrome 等浏览器管理书签是更好更方便的方式，登陆 google 账号，或者导出 html 书签文件都挺方便。&lt;/p&gt;\n&lt;p&gt;我们在平时学习生活总会遇到很多很多有用的网站，也许我们收藏在了浏览器书签里，可过久了，不做说明，这些链接的价值就被时间淹没了，我们自己都记不起来了，所以这篇文章因此而生。对自己收藏的链接做些简单的说明（第一次编写用了我一个下午）；也相当于我的链接收藏夹，分享一些有趣的网站，&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/acm/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/acm/</title><link rel=canonical href=https://lruihao.cn/tags/acm/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/acm/\"></head></html>"
  },
  {
    "path": "tags/acm/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>acm - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"acm\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"acm\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"acm\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/acm/ title=\"acm | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/acm/index.xml title=\"acm | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Acm</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>acm <sup>48</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ class=archive-item-link>18 湘潭邀请赛参赛队员代表发言</a>\n<span class=archive-item-date title='2018-06-15 07:51:21'>06-15</span></article><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/acm/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/acm/page/2/>2</a></span></li><li class=page-item><span class=page-link><a href=/tags/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/acm/page/3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>acm - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"acm\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/acm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"acm\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"acm\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/acm/ title=\"acm | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/acm/index.xml title=\"acm | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/acm/feed.json title=\"acm | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/acm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Acm</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>acm <sup>48</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/f-sorting/ class=archive-item-link>F.sorting</a>\n<span class=archive-item-date title='2018-06-14 22:49:27'>06-14</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article><article class=archive-item><a href=/posts/links/ class=archive-item-link>各种 Links 汇总与分享</a>\n<span class=archive-item-date title='2018-06-07 00:06:05'>06-07</span></article><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/acm/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/acm/page/2/>2</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/acm/page/3/>3</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/acm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/adb/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ADB - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Mac 配置 ADB\",\"date_published\":\"2022-07-05T15:39:34&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adb-for-mac/\",\"url\":\"https://lruihao.cn/posts/adb-for-mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Android\",\"ADB\"],\"summary\":\"作为非安卓专业开发，无需下载 Android SDK，\\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\\n\",\"content_html\":\"\\u003cp\\u003e作为非安卓专业开发，无需下载 Android SDK，\\u003cbr\\u003e\\n仅下载 Android SDK 中的 \\u003ca href=\\\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eplatform-tools\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 命令行工具即可，并配置好环境变量。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/adb/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ADB - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ADB\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-07-05T15:39:34+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/adb/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ADB\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ADB\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/adb/ title=\"ADB | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/adb/index.xml title=\"ADB | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/adb/feed.json title=\"ADB | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/adb/feed.json title=\"ADB | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/adb/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ADB</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ADB <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/adb-for-mac/ class=archive-item-link>Mac 配置 ADB</a>\n<span class=archive-item-date title='2022-07-05 15:39:34'>07-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/adb/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/adb/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ADB - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/adb/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/adb/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Mac 配置 ADB</title><link>https://lruihao.cn/posts/adb-for-mac/</link><pubDate>Tue, 05 Jul 2022 15:39:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adb-for-mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;作为非安卓专业开发，无需下载 Android SDK，&lt;br&gt;\n仅下载 Android SDK 中的 &lt;a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;platform-tools&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 命令行工具即可，并配置好环境变量。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/adb/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/adb/</title><link rel=canonical href=https://lruihao.cn/tags/adb/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/adb/\"></head></html>"
  },
  {
    "path": "tags/algolia/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"algolia - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/algolia/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>algolia - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"algolia\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/algolia/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"algolia\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"algolia\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/algolia/ title=\"algolia | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/algolia/index.xml title=\"algolia | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/algolia/feed.json title=\"algolia | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/algolia/feed.json title=\"algolia | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/algolia/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Algolia</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>algolia <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/algolia/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/algolia/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>algolia - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/algolia/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/algolia/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/algolia/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/algolia/</title><link rel=canonical href=https://lruihao.cn/tags/algolia/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/algolia/\"></head></html>"
  },
  {
    "path": "tags/android/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Android - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Mac 配置 ADB\",\"date_published\":\"2022-07-05T15:39:34&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adb-for-mac/\",\"url\":\"https://lruihao.cn/posts/adb-for-mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Android\",\"ADB\"],\"summary\":\"作为非安卓专业开发，无需下载 Android SDK，\\n仅下载 Android SDK 中的 platform-tools 命令行工具即可，并配置好环境变量。\\n\",\"content_html\":\"\\u003cp\\u003e作为非安卓专业开发，无需下载 Android SDK，\\u003cbr\\u003e\\n仅下载 Android SDK 中的 \\u003ca href=\\\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eplatform-tools\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 命令行工具即可，并配置好环境变量。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/android/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Android - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Android\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-07-05T15:39:34+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/android/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Android\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Android\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/android/ title=\"Android | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/android/index.xml title=\"Android | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/android/feed.json title=\"Android | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/android/feed.json title=\"Android | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/android/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Android</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Android <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/adb-for-mac/ class=archive-item-link>Mac 配置 ADB</a>\n<span class=archive-item-date title='2022-07-05 15:39:34'>07-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/android/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/android/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Android - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/android/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/android/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Mac 配置 ADB</title><link>https://lruihao.cn/posts/adb-for-mac/</link><pubDate>Tue, 05 Jul 2022 15:39:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adb-for-mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;作为非安卓专业开发，无需下载 Android SDK，&lt;br&gt;\n仅下载 Android SDK 中的 &lt;a href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;platform-tools&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 命令行工具即可，并配置好环境变量。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/android/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/android/</title><link rel=canonical href=https://lruihao.cn/tags/android/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/android/\"></head></html>"
  },
  {
    "path": "tags/asciinema/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"asciinema - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/asciinema/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>asciinema - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"asciinema\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-01-08T09:20:48+00:00\"><meta itemprop=dateModified content=\"2026-04-20T07:20:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/asciinema/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"asciinema\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"asciinema\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/asciinema/ title=\"asciinema | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/asciinema/index.xml title=\"asciinema | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/asciinema/feed.json title=\"asciinema | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/asciinema/feed.json title=\"asciinema | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/asciinema/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Asciinema</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>asciinema <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2026-04-20 07:20:15'>更新于 04-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/asciinema/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/asciinema/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>asciinema - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/asciinema/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 20 Apr 2026 07:20:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/asciinema/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/asciinema/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/asciinema/</title><link rel=canonical href=https://lruihao.cn/tags/asciinema/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/asciinema/\"></head></html>"
  },
  {
    "path": "tags/async/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"async - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/async/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>async - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"async\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-09-08T11:47:50+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/async/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"async\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"async\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/async/ title=\"async | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/async/index.xml title=\"async | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/async/feed.json title=\"async | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/async/feed.json title=\"async | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/async/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Async</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>async <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/async/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/async/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>async - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/async/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/async/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>script 的三种加载方式 (async, defer)</title><link>https://lruihao.cn/posts/async-defer/</link><pubDate>Sun, 08 Sep 2019 11:47:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/async-defer/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition note open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"&gt;&lt;/i&gt;注意&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;JS 的加载分为两个部分：下载和执行。&lt;br&gt;\n浏览器在执行 HTML 的时候如果遇到&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见&lt;code&gt;&amp;lt;/scirpt&amp;gt;&lt;/code&gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/async/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/async/</title><link rel=canonical href=https://lruihao.cn/tags/async/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/async/\"></head></html>"
  },
  {
    "path": "tags/atom/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"atom - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/atom/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>atom - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"atom\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-08-22T03:29:22+00:00\"><meta itemprop=dateModified content=\"2025-12-20T06:45:59+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/atom/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"atom\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"atom\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/atom/ title=\"atom | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/atom/index.xml title=\"atom | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/atom/feed.json title=\"atom | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/atom/feed.json title=\"atom | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/atom/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Atom</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>atom <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/atom/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/atom/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>atom - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/atom/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 20 Dec 2025 06:45:59 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/atom/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/atom/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/atom/</title><link rel=canonical href=https://lruihao.cn/tags/atom/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/atom/\"></head></html>"
  },
  {
    "path": "tags/auto-changelog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"auto-changelog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/auto-changelog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>auto-changelog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"auto-changelog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-30T15:40:19+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/auto-changelog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"auto-changelog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"auto-changelog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/auto-changelog/ title=\"auto-changelog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/auto-changelog/index.xml title=\"auto-changelog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/auto-changelog/feed.json title=\"auto-changelog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/auto-changelog/feed.json title=\"auto-changelog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/auto-changelog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Auto-Changelog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>auto-changelog <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/auto-changelog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/auto-changelog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>auto-changelog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/auto-changelog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/auto-changelog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/auto-changelog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/auto-changelog/</title><link rel=canonical href=https://lruihao.cn/tags/auto-changelog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/auto-changelog/\"></head></html>"
  },
  {
    "path": "tags/autocorrect/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"AutoCorrect - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/autocorrect/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>AutoCorrect - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"AutoCorrect\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-11T14:26:48+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/autocorrect/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"AutoCorrect\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"AutoCorrect\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/autocorrect/ title=\"AutoCorrect | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/autocorrect/index.xml title=\"AutoCorrect | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/autocorrect/feed.json title=\"AutoCorrect | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/autocorrect/feed.json title=\"AutoCorrect | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/autocorrect/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>AutoCorrect</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>AutoCorrect <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/autocorrect/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/autocorrect/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>AutoCorrect - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/autocorrect/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 06 Aug 2024 14:11:51 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/autocorrect/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/autocorrect/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/autocorrect/</title><link rel=canonical href=https://lruihao.cn/tags/autocorrect/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/autocorrect/\"></head></html>"
  },
  {
    "path": "tags/aws/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"AWS - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[]}"
  },
  {
    "path": "tags/aws/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>AWS - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"AWS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-11-22T14:01:18+08:00\"><meta itemprop=dateModified content=\"2024-12-07T01:20:02+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/aws/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"AWS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"AWS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/aws/ title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/aws/index.xml title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/aws/feed.json title=\"AWS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/aws/feed.json title=\"AWS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/aws/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>AWS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>AWS <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/91db0fa/ class=archive-item-link>Amazon Inspector</a>\n<span class=archive-item-date title='2024-11-22 14:01:18'>11-22</span></article><article class=archive-item><a href=/posts/d1fc0c7/ class=archive-item-link>Amazon S3</a>\n<span class=archive-item-date title='2024-07-07 13:54:14'>07-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/d8ae205/ class=archive-item-link>Amazon Titan 文本模型</a>\n<span class=archive-item-date title='2023-12-22 19:58:47'>12-22</span></article><article class=archive-item><a href=/posts/aws-solution/ class=archive-item-link>AWS 云上一站式解决方案</a>\n<span class=archive-item-date title='2023-11-18 12:52:37'>11-18</span></article><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/aws/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/aws/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>AWS - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/aws/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate/><atom:link href=\"https://lruihao.cn/tags/aws/index.xml\" rel=\"self\" type=\"application/rss+xml\"/></channel></rss>"
  },
  {
    "path": "tags/aws/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/aws/</title><link rel=canonical href=https://lruihao.cn/tags/aws/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/aws/\"></head></html>"
  },
  {
    "path": "tags/backend/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"backend - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/backend/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>backend - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"backend\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/backend/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"backend\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"backend\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/backend/ title=\"backend | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/backend/index.xml title=\"backend | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/backend/feed.json title=\"backend | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/backend/feed.json title=\"backend | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/backend/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Backend</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>backend <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/backend/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/backend/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>backend - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/backend/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/backend/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/backend/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/backend/</title><link rel=canonical href=https://lruihao.cn/tags/backend/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/backend/\"></head></html>"
  },
  {
    "path": "tags/bat/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"bat - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"通过 bat 批处理文件自动提交博客代码\",\"date_published\":\"2018-11-17T14:25:49&#43;08:00\",\"date_modified\":\"2018-11-17T14:25:49&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-bat/\",\"url\":\"https://lruihao.cn/posts/commit-bat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"bat\"],\"summary\":\" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\ngit add * （添加需要提交的文件，这里全选） git commit -m \\u0026ldquo;提交信息\\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003egit add * （添加需要提交的文件，这里全选）\\u003c/li\\u003e\\n\\u003cli\\u003egit commit -m \\u0026ldquo;提交信息\\u0026rdquo;\\u003c/li\\u003e\\n\\u003cli\\u003egit push\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/bat/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>bat - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"bat\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-11-17T14:25:49+08:00\"><meta itemprop=dateModified content=\"2018-11-17T14:25:49+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/bat/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"bat\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"bat\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/bat/ title=\"bat | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/bat/index.xml title=\"bat | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/bat/feed.json title=\"bat | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/bat/feed.json title=\"bat | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/bat/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Bat</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>bat <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/commit-bat/ class=archive-item-link>通过 Bat 批处理文件自动提交博客代码</a>\n<span class=archive-item-date title='2018-11-17 14:25:49'>11-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/bat/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/bat/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>bat - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/bat/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 17 Nov 2018 14:25:49 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/bat/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>通过 bat 批处理文件自动提交博客代码</title><link>https://lruihao.cn/posts/commit-bat/</link><pubDate>Sat, 17 Nov 2018 14:25:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-bat/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;git add * （添加需要提交的文件，这里全选）&lt;/li&gt;\n&lt;li&gt;git commit -m &amp;ldquo;提交信息&amp;rdquo;&lt;/li&gt;\n&lt;li&gt;git push&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本）。用完发现好用到不行！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/bat/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/bat/</title><link rel=canonical href=https://lruihao.cn/tags/bat/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/bat/\"></head></html>"
  },
  {
    "path": "tags/beego/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Beego - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Beego 安装及配置\",\"date_published\":\"2022-08-31T09:32:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beego-install/\",\"url\":\"https://lruihao.cn/posts/beego-install/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Beego\",\"Go\"],\"image\":\"https://lruihao.cn/posts/beego-install/images/featured-image.png\",\"summary\":\"记录 GO 及 Beego 框架安装及基础配置。\\n\",\"content_html\":\"\\u003cp\\u003e记录 GO 及 Beego 框架安装及基础配置。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/beego/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Beego - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Beego\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-31T09:32:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/beego/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Beego\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Beego\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/beego/ title=\"Beego | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/beego/index.xml title=\"Beego | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/beego/feed.json title=\"Beego | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/beego/feed.json title=\"Beego | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/beego/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Beego</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Beego <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a>\n<span class=archive-item-date title='2022-08-31 09:32:44'>08-31</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/beego/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/beego/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Beego - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/beego/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/beego/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Beego 安装及配置</title><link>https://lruihao.cn/posts/beego-install/</link><pubDate>Wed, 31 Aug 2022 09:32:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beego-install/</guid><category domain=\"https://lruihao.cn/categories/go/\">Go</category><description>&lt;p&gt;记录 GO 及 Beego 框架安装及基础配置。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/beego/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/beego/</title><link rel=canonical href=https://lruihao.cn/tags/beego/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/beego/\"></head></html>"
  },
  {
    "path": "tags/bfs/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"BFS - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/bfs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>BFS - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"BFS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-22T12:10:32+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/bfs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"BFS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"BFS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/bfs/ title=\"BFS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/bfs/index.xml title=\"BFS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/bfs/feed.json title=\"BFS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/bfs/feed.json title=\"BFS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/bfs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>BFS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>BFS <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/bfs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/bfs/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>BFS - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/bfs/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/bfs/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>BFS 求最短路</title><link>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><pubDate>Sun, 22 Jul 2018 11:31:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.&lt;br&gt;\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，&lt;br&gt;\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。&lt;/p&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/bfs/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/bfs/</title><link rel=canonical href=https://lruihao.cn/tags/bfs/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/bfs/\"></head></html>"
  },
  {
    "path": "tags/blog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"blog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>blog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"blog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-09-30T09:28:41+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"blog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"blog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/blog/ title=\"blog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/blog/index.xml title=\"blog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/blog/feed.json title=\"blog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/blog/feed.json title=\"blog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Blog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>blog <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2026-05-06 02:33:31'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>Lruihao/cell-blog</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/blog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>blog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/blog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/blog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/blog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/blog/</title><link rel=canonical href=https://lruihao.cn/tags/blog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/blog/\"></head></html>"
  },
  {
    "path": "tags/box-shadow/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"box-shadow - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/box-shadow/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>box-shadow - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"box-shadow\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-15T10:40:12+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/box-shadow/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"box-shadow\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"box-shadow\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/box-shadow/ title=\"box-shadow | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/box-shadow/index.xml title=\"box-shadow | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/box-shadow/feed.json title=\"box-shadow | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/box-shadow/feed.json title=\"box-shadow | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/box-shadow/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Box-Shadow</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>box-shadow <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/box-shadow/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/box-shadow/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>box-shadow - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/box-shadow/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 17:12:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/box-shadow/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/box-shadow/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/box-shadow/</title><link rel=canonical href=https://lruihao.cn/tags/box-shadow/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/box-shadow/\"></head></html>"
  },
  {
    "path": "tags/browser/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Browser - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"浏览器原理 - 事件循环\",\"date_published\":\"2023-01-11T11:16:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/event-loop/\",\"url\":\"https://lruihao.cn/posts/event-loop/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/event-loop/images/202208092131410.png\",\"summary\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\n\",\"content_html\":\"\\u003cp\\u003e最近在抖音上刷到很多次 \\u003ca href=\\\"http://yuanjin.tech/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e袁进老师\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/browser/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Browser - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Browser\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-05T21:02:52+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/browser/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Browser\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Browser\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/browser/ title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/browser/index.xml title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/browser/feed.json title=\"Browser | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/browser/feed.json title=\"Browser | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/browser/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Browser</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Browser <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a>\n<span class=archive-item-date title='2023-01-11 11:16:02'>01-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/browser/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/browser/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Browser - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/browser/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/browser/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>浏览器原理 - 事件循环</title><link>https://lruihao.cn/posts/event-loop/</link><pubDate>Wed, 11 Jan 2023 11:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/event-loop/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;p&gt;最近在抖音上刷到很多次 &lt;a href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;袁进老师&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/browser/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/browser/</title><link rel=canonical href=https://lruihao.cn/tags/browser/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/browser/\"></head></html>"
  },
  {
    "path": "tags/c/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"C - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"判断三角形的黑盒测试\",\"date_published\":\"2019-05-26T18:50:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/judgetriangle/\",\"url\":\"https://lruihao.cn/posts/judgetriangle/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"黑盒测试\",\"C\"],\"summary\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\u003cbr\\u003e\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"linux 编程初体验\",\"date_published\":\"2018-10-15T21:19:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-hello-c/\",\"url\":\"https://lruihao.cn/posts/linux-hello-c/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"C\"],\"summary\":\" 在 Linux 上编译 c 语言文件。\\n0.7 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e在 Linux 上编译 c 语言文件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开-vim-编辑器\\\"\\u003e\\u003cspan\\u003e0.7 打开 vim 编辑器\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e（没有就用 vi, 或者先安装 vim\\u003ccode\\u003esudo apt-get install vim\\u003c/code\\u003e)\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evim\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"编辑文件\\\"\\u003e\\u003cspan\\u003e0.8 编辑文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e打开文件编辑器之后编辑文件\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" title=\\\"edit\\\" data-thumbnail=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" data-sub-html=\\\"\\u003ch2\\u003eedit\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\\\"edit\\\" height=\\\"725\\\" width=\\\"1191\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"“高逼格”C 语言画心\",\"date_published\":\"2018-08-15T16:33:12&#43;08:00\",\"date_modified\":\"2018-08-15T16:33:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/heart/\",\"url\":\"https://lruihao.cn/posts/heart/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C\"],\"summary\":\"七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\n大一在机房拍的图 \",\"content_html\":\"\\u003cp\\u003e七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" title=\\\"大一在机房拍的图\\\" data-thumbnail=\\\"/images/remote/5b8680e407e09_14695341072961183661.gif\\\" data-sub-html=\\\"\\u003ch2\\u003e截图\\u003c/h2\\u003e\\u003cp\\u003e大一在机房拍的图\\u003c/p\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\\\"截图\\\" height=\\\"210\\\" width=\\\"210\\\"\\u003e\\u003c/a\\u003e\\u003cfigcaption class=\\\"image-caption\\\"\\u003e大一在机房拍的图\\u003c/figcaption\\u003e\\n  \\u003c/figure\\u003e\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"简单背包\",\"date_published\":\"2018-06-16T13:18:43&#43;08:00\",\"date_modified\":\"2018-06-16T13:18:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"url\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"C\"],\"summary\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！\\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ccode\\u003e弱鸡还是弱鸡啊最简单的背包问题——。——！\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e5 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/c/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>C - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"C\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-26T18:50:53+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/c/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"C\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"C\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/c/ title=\"C | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/c/index.xml title=\"C | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/c/feed.json title=\"C | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/c/feed.json title=\"C | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/c/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>C</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>C <sup>25</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a>\n<span class=archive-item-date title='2019-05-26 18:50:53'>05-26</span></article><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/linux-hello-c/ class=archive-item-link>Linux 编程初体验</a>\n<span class=archive-item-date title='2018-10-15 21:19:27'>10-15</span></article><article class=archive-item><a href=/posts/heart/ class=archive-item-link>“高逼格”C 语言画心</a>\n<span class=archive-item-date title='2018-08-15 16:33:12'>08-15</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/c/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/c/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/c/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/c/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>C - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/c/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Oct 2024 13:35:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/c/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>判断三角形的黑盒测试</title><link>https://lruihao.cn/posts/judgetriangle/</link><pubDate>Sun, 26 May 2019 18:50:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/judgetriangle/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。&lt;br&gt;\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>linux 编程初体验</title><link>https://lruihao.cn/posts/linux-hello-c/</link><pubDate>Mon, 15 Oct 2018 21:19:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-hello-c/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;在 Linux 上编译 c 语言文件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开-vim-编辑器\"&gt;&lt;span&gt;0.10 打开 vim 编辑器&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;（没有就用 vi, 或者先安装 vim&lt;code&gt;sudo apt-get install vim&lt;/code&gt;)&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vim&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"编辑文件\"&gt;&lt;span&gt;0.11 编辑文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;打开文件编辑器之后编辑文件\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"&lt;h2&gt;edit&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>“高逼格”C 语言画心</title><link>https://lruihao.cn/posts/heart/</link><pubDate>Wed, 15 Aug 2018 16:33:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/heart/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;七夕又快到了，分享一个曾经玩过的代码，用 C 语言画一个跳动的心，很有逼格有木有。&lt;/p&gt;\n&lt;p&gt;&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif\" title=\"大一在机房拍的图\" data-thumbnail=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" data-sub-html=\"&lt;h2&gt;截图&lt;/h2&gt;&lt;p&gt;大一在机房拍的图&lt;/p&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\"截图\" height=\"210\" width=\"210\"&gt;&lt;/a&gt;&lt;figcaption class=\"image-caption\"&gt;大一在机房拍的图&lt;/figcaption&gt;\n &lt;/figure&gt;&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item><item><title>简单背包</title><link>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</link><pubDate>Sat, 16 Jun 2018 13:18:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;code&gt;弱鸡还是弱鸡啊最简单的背包问题——。——！&lt;/code&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;7 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/c/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/c/</title><link rel=canonical href=https://lruihao.cn/tags/c/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/c/\"></head></html>"
  },
  {
    "path": "tags/c/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>C - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"C\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-26T18:50:53+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/c/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"C\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"C\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/c/ title=\"C | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/c/index.xml title=\"C | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/c/feed.json title=\"C | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/c/feed.json title=\"C | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/c/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>C</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>C <sup>25</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><article class=archive-item><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=archive-item-link>简单背包</a>\n<span class=archive-item-date title='2018-06-16 13:18:43'>06-16</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/c/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/c/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/c/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/c++/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"C&#43;&#43; - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"},{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"},{\"title\":\"K.2018\",\"date_published\":\"2018-06-14T22:48:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/k-2018/\",\"url\":\"https://lruihao.cn/posts/k-2018/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 K. 2018 Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"k-2018\\\"\\u003e\\u003cspan\\u003e3 K. 2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#k-2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGiven a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\\u003c/p\\u003e\"},{\"title\":\"B.Higher h-index\",\"date_published\":\"2018-06-14T22:47:28&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/b-higher/\",\"url\":\"https://lruihao.cn/posts/b-higher/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"2018 湘潭邀请赛\",\"C++\",\"C\"],\"summary\":\"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\nThere is also a trick – one can cite his own papers published earlier.\\nGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-higher-h-index\\\"\\u003e\\u003cspan\\u003e3 B. Higher h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-higher-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\\u003cbr\\u003e\\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\\u003cbr\\u003e\\nThere is also a trick – one can cite his own papers published earlier.\\u003c/p\\u003e\\n\\u003cp\\u003eGiven Bobo has n working hours, ﬁnd the maximum h-index of him.\\u003c/p\\u003e\"},{\"title\":\"A.Easy h-index\",\"date_published\":\"2018-06-14T22:36:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/a-easy/\",\"url\":\"https://lruihao.cn/posts/a-easy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"C++\"],\"summary\":\"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\nitations exactly i, ﬁnd the h-index of Bobo.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-easy-h-index\\\"\\u003e\\u003cspan\\u003e3 A. Easy h-index\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-easy-h-index\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\\u003cbr\\u003e\\nBobo has published many papers. Given a0,a1,a2,\\u0026hellip;,an which means Bobo has published ai papers with\\u003cbr\\u003e\\nitations exactly i, ﬁnd the h-index of Bobo.\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/c++/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>C++ - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"C++\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-10T22:11:00+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/c++/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"C++\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"C++\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/c++/ title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/c++/index.xml title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/c++/feed.json title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/c++/feed.json title=\"C++ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/c++/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>C++</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>C++ <sup>39</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/c++/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/c++/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/c++/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/c++/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>C++ - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/c++/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Oct 2024 13:35:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/c++/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>牛客暑假多校第五场</title><link>https://lruihao.cn/posts/nowcodersummer-5th/</link><pubDate>Thu, 02 Aug 2018 21:27:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcodersummer-5th/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接 密码：l9sn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多&lt;/p&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bear and Finding Criminals-Codeforces680B</title><link>https://lruihao.cn/posts/codeforces680b/</link><pubDate>Tue, 31 Jul 2018 19:32:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里&lt;strong&gt;一定&lt;/strong&gt;有罪犯。&lt;/p&gt;\n&lt;p&gt;一定能确定该城市有小偷的几种情况：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市有罪犯，则一定能检测到&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市的左边和右边位置若&lt;strong&gt;都&lt;/strong&gt;不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Bear and Five Cards-Codeforces680A</title><link>https://lruihao.cn/posts/codeforces680a/</link><pubDate>Tue, 31 Jul 2018 19:22:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>Piles-with-stones</title><link>https://lruihao.cn/posts/piles-with-stones/</link><pubDate>Tue, 31 Jul 2018 11:09:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/piles-with-stones/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Codeforces Round #500 (Div. 2)&lt;br&gt;\n题目链接：&lt;a href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles With Stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>Adjacent Replacements</title><link>https://lruihao.cn/posts/adjacent-replacements/</link><pubDate>Sun, 22 Jul 2018 11:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adjacent-replacements/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;第一次打 cf 就做出一道这样的找规律的题，打到自闭。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin&amp;gt;&amp;gt;n;\n int i;\n int flag=0;\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;){\n cin&amp;gt;&amp;gt;a[i];\n if(!(a[i]&amp;amp;1)) a[i]--;\n if(!flag) {cout&amp;lt;&amp;lt;a[i];flag=1;}\n else cout&amp;lt;&amp;lt;&amp;#34; &amp;#34;&amp;lt;&amp;lt;a[i];\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>BFS 求最短路</title><link>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><pubDate>Sun, 22 Jul 2018 11:31:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.&lt;br&gt;\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，&lt;br&gt;\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。&lt;/p&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item><item><title>TaoTao 要吃鸡</title><link>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</link><pubDate>Sun, 22 Jul 2018 10:55:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）&lt;br&gt;\n链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/74/B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;16 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item><item><title>K.2018</title><link>https://lruihao.cn/posts/k-2018/</link><pubDate>Thu, 14 Jun 2018 22:48:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/k-2018/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"k-2018\"&gt;&lt;span&gt;4 K. 2018&lt;/span&gt;\n &lt;a href=\"#k-2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Given a,b,c,d, ﬁnd out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.&lt;/p&gt;</description></item><item><title>B.Higher h-index</title><link>https://lruihao.cn/posts/b-higher/</link><pubDate>Thu, 14 Jun 2018 22:47:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/b-higher/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"b-higher-h-index\"&gt;&lt;span&gt;4 B. Higher h-index&lt;/span&gt;\n &lt;a href=\"#b-higher-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the&lt;br&gt;\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.&lt;br&gt;\nThere is also a trick – one can cite his own papers published earlier.&lt;/p&gt;\n&lt;p&gt;Given Bobo has n working hours, ﬁnd the maximum h-index of him.&lt;/p&gt;</description></item><item><title>A.Easy h-index</title><link>https://lruihao.cn/posts/a-easy/</link><pubDate>Thu, 14 Jun 2018 22:36:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/a-easy/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"a-easy-h-index\"&gt;&lt;span&gt;4 A. Easy h-index&lt;/span&gt;\n &lt;a href=\"#a-easy-h-index\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The h-index of an author is the largest h where he has at least h papers with citations not less than h.&lt;br&gt;\nBobo has published many papers. Given a0,a1,a2,&amp;hellip;,an which means Bobo has published ai papers with&lt;br&gt;\nitations exactly i, ﬁnd the h-index of Bobo.&lt;/p&gt;</description></item><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item><item><title>C++ with STL</title><link>https://lruihao.cn/posts/c-with-stl/</link><pubDate>Thu, 14 Jun 2018 20:22:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-with-stl/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"&gt;&lt;span&gt;25 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）&lt;/span&gt;\n &lt;a href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;交换两元素的值在 C 语言课上作为指针讲解的典例。&lt;/p&gt;\n&lt;p&gt;int a=1,b=2;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/c++/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/c++/</title><link rel=canonical href=https://lruihao.cn/tags/c++/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/c++/\"></head></html>"
  },
  {
    "path": "tags/c++/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>C++ - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"C++\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-10T22:11:00+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/c++/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"C++\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"C++\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/c++/ title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/c++/index.xml title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/c++/feed.json title=\"C++ | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/c++/feed.json title=\"C++ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/c++/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>C++</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>C++ <sup>39</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article><article class=archive-item><a href=/posts/k-2018/ class=archive-item-link>K.2018</a>\n<span class=archive-item-date title='2018-06-14 22:48:16'>06-14</span></article><article class=archive-item><a href=/posts/b-higher/ class=archive-item-link>B.Higher H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:47:28'>06-14</span></article><article class=archive-item><a href=/posts/a-easy/ class=archive-item-link>A.Easy H-Index</a>\n<span class=archive-item-date title='2018-06-14 22:36:58'>06-14</span></article><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/c++/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/c++/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/c++/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/caddy/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"caddy - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/caddy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>caddy - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"caddy\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-11-11T13:59:27+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/caddy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"caddy\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"caddy\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/caddy/ title=\"caddy | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/caddy/index.xml title=\"caddy | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/caddy/feed.json title=\"caddy | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/caddy/feed.json title=\"caddy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/caddy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Caddy</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>caddy <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/caddy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/caddy/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>caddy - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/caddy/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/caddy/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>caddy-两步搭建超简单云盘</title><link>https://lruihao.cn/posts/caddy-file/</link><pubDate>Sun, 11 Nov 2018 13:59:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/caddy-file/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;16 安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"编写配置文件\"&gt;&lt;span&gt;17 编写配置文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vim Caddyfile&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;内容如下：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/caddy/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/caddy/</title><link rel=canonical href=https://lruihao.cn/tags/caddy/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/caddy/\"></head></html>"
  },
  {
    "path": "tags/caniuse/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"caniuse - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/caniuse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>caniuse - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"caniuse\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-07-22T03:40:45+00:00\"><meta itemprop=dateModified content=\"2026-04-08T08:41:40+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/caniuse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"caniuse\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"caniuse\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/caniuse/ title=\"caniuse | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/caniuse/index.xml title=\"caniuse | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/caniuse/feed.json title=\"caniuse | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/caniuse/feed.json title=\"caniuse | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/caniuse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Caniuse</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>caniuse <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2026-04-08 08:41:40'>更新于 04-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/caniuse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/caniuse/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>caniuse - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/caniuse/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 08 Apr 2026 08:41:40 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/caniuse/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/caniuse/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/caniuse/</title><link rel=canonical href=https://lruihao.cn/tags/caniuse/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/caniuse/\"></head></html>"
  },
  {
    "path": "tags/caniuse-embed/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"caniuse-embed - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/caniuse-embed/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>caniuse-embed - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"caniuse-embed\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-07-22T03:40:45+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:29+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/caniuse-embed/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"caniuse-embed\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"caniuse-embed\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/caniuse-embed/ title=\"caniuse-embed | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/caniuse-embed/index.xml title=\"caniuse-embed | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/caniuse-embed/feed.json title=\"caniuse-embed | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/caniuse-embed/feed.json title=\"caniuse-embed | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/caniuse-embed/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Caniuse-Embed</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>caniuse-embed <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2026-04-08 08:41:40'>更新于 04-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/caniuse-embed/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/caniuse-embed/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>caniuse-embed - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/caniuse-embed/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:29 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/caniuse-embed/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/caniuse-embed/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/caniuse-embed/</title><link rel=canonical href=https://lruihao.cn/tags/caniuse-embed/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/caniuse-embed/\"></head></html>"
  },
  {
    "path": "tags/canvas/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"canvas - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/canvas/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>canvas - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"canvas\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-11-05T08:23:29+00:00\"><meta itemprop=dateModified content=\"2025-12-27T08:05:18+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/canvas/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"canvas\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"canvas\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/canvas/ title=\"canvas | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/canvas/index.xml title=\"canvas | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/canvas/feed.json title=\"canvas | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/canvas/feed.json title=\"canvas | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/canvas/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Canvas</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>canvas <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/canvas/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/canvas/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>canvas - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/canvas/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 27 Dec 2025 08:05:18 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/canvas/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/canvas/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/canvas/</title><link rel=canonical href=https://lruihao.cn/tags/canvas/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/canvas/\"></head></html>"
  },
  {
    "path": "tags/cdn/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CDN - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/cdn/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CDN - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CDN\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-07T14:40:33+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cdn/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CDN\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CDN\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cdn/ title=\"CDN | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cdn/index.xml title=\"CDN | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cdn/feed.json title=\"CDN | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cdn/feed.json title=\"CDN | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cdn/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CDN</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>CDN <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cdn/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cdn/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CDN - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cdn/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cdn/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cdn/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cdn/</title><link rel=canonical href=https://lruihao.cn/tags/cdn/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cdn/\"></head></html>"
  },
  {
    "path": "tags/cell-watermark/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"cell-watermark - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/cell-watermark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>cell-watermark - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"cell-watermark\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-05-24T13:05:40+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:12+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cell-watermark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cell-watermark\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cell-watermark\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cell-watermark/ title=\"cell-watermark | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cell-watermark/index.xml title=\"cell-watermark | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cell-watermark/feed.json title=\"cell-watermark | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cell-watermark/feed.json title=\"cell-watermark | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cell-watermark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cell-Watermark</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>cell-watermark <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2026-05-06 03:02:12'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2021-05-24 13:05:40'>05-24</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cell-watermark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cell-watermark/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>cell-watermark - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cell-watermark/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:12 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cell-watermark/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Create watermark for webpage and automatic adjust when window resize.</title><link>https://lruihao.cn/projects/lruihao/watermark/</link><pubDate>Mon, 24 May 2021 13:05:40 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/watermark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"watermark\" data-decreased&gt;&lt;span&gt;Watermark&lt;/span&gt;\n &lt;a href=\"#watermark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Create watermark for webpage and automatic adjust when windows resize.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"documentation\"&gt;&lt;span&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Documentation&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#documentation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"browser\"&gt;&lt;span&gt;Browser&lt;/span&gt;\n &lt;a href=\"#browser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;Clone source&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cell-watermark/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cell-watermark/</title><link rel=canonical href=https://lruihao.cn/tags/cell-watermark/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cell-watermark/\"></head></html>"
  },
  {
    "path": "tags/changelog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"changelog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/changelog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>changelog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"changelog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-09-04T18:10:59+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/changelog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"changelog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"changelog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/changelog/ title=\"changelog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/changelog/index.xml title=\"changelog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/changelog/feed.json title=\"changelog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/changelog/feed.json title=\"changelog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/changelog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Changelog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>changelog <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/changelog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/changelog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>changelog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/changelog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/changelog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/changelog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/changelog/</title><link rel=canonical href=https://lruihao.cn/tags/changelog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/changelog/\"></head></html>"
  },
  {
    "path": "tags/cjk/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"cjk - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/cjk/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>cjk - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"cjk\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-04-10T08:35:34+00:00\"><meta itemprop=dateModified content=\"2026-01-05T07:25:04+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cjk/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cjk\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cjk\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cjk/ title=\"cjk | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cjk/index.xml title=\"cjk | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cjk/feed.json title=\"cjk | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cjk/feed.json title=\"cjk | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cjk/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cjk</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>cjk <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cjk/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cjk/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>cjk - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cjk/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 05 Jan 2026 07:25:04 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cjk/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cjk/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cjk/</title><link rel=canonical href=https://lruihao.cn/tags/cjk/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cjk/\"></head></html>"
  },
  {
    "path": "tags/codeforces/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Codeforces - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"Bear and Finding Criminals-Codeforces680B\",\"date_published\":\"2018-07-31T19:32:21&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680b/\",\"url\":\"https://lruihao.cn/posts/codeforces680b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Finding Criminals\\n大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里一定有罪犯。\\n一定能确定该城市有小偷的几种情况：\\n警察所住城市有罪犯，则一定能检测到\\n警察所住城市的左边和右边位置若都不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\n警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里\\u003cstrong\\u003e一定\\u003c/strong\\u003e有罪犯。\\u003c/p\\u003e\\n\\u003cp\\u003e一定能确定该城市有小偷的几种情况：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市有罪犯，则一定能检测到\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所住城市的左边和右边位置若\\u003cstrong\\u003e都\\u003c/strong\\u003e不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯\\u003c/p\\u003e\\n\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"Bear and Five Cards-Codeforces680A\",\"date_published\":\"2018-07-31T19:22:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces680a/\",\"url\":\"https://lruihao.cn/posts/codeforces680a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"题目链接：Bear and Five Cards\\n大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"https://codeforces.com/problemset/problem/680/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。\\u003c/p\\u003e\"},{\"title\":\"Piles-with-stones\",\"date_published\":\"2018-07-31T11:09:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/piles-with-stones/\",\"url\":\"https://lruihao.cn/posts/piles-with-stones/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"C++\"],\"summary\":\"Codeforces Round #500 (Div. 2)\\n题目链接：Piles With Stones\\n\",\"content_html\":\"\\u003cp\\u003eCodeforces Round #500 (Div. 2)\\u003cbr\\u003e\\n题目链接：\\u003ca href=\\\"https://codeforces.com/contest/1013/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles With Stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Adjacent Replacements\",\"date_published\":\"2018-07-22T11:54:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"url\":\"https://lruihao.cn/posts/adjacent-replacements/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\"],\"summary\":\"A. Adjacent Replacements\\n第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\n#include using namespace std; int main(){ int n,a[1001]; cin\\u003e\\u003en; int i; int flag=0; for(i=0;i\\u003ea[i]; if(!(a[i]\\u00261)) a[i]--; if(!flag) {cout\\u003c\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://codeforces.com/contest/1006/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Adjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e第一次打 cf 就做出一道这样的找规律的题，打到自闭。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,a[1001];\\n    cin\\u003e\\u003en;\\n    int i;\\n    int flag=0;\\n    for(i=0;i\\u003cn;i++){\\n        cin\\u003e\\u003ea[i];\\n        if(!(a[i]\\u00261)) a[i]--;\\n        if(!flag) {cout\\u003c\\u003ca[i];flag=1;}\\n        else cout\\u003c\\u003c\\\" \\\"\\u003c\\u003ca[i];\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"Educational Codeforces Round 47 (Rated for Div. 2)\",\"date_published\":\"2018-07-22T11:25:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cf-1009/\",\"url\":\"https://lruihao.cn/posts/cf-1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"C++\",\"C\"],\"summary\":\"那天晚上报名了没打，第二天早上打的，也只出了两题。\\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\\u003e\\u003en\\u003e\\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\\u003ec[i]; for(i=0;i\\u003ea[i]; for(i=0,j=0;i\",\"content_html\":\"\\u003cp\\u003e那天晚上报名了没打，第二天早上打的，也只出了两题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"a-game-shopping\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. Game Shopping\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-game-shopping\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003ciostream\\u003e\\nusing namespace std;\\n\\nint main(){\\n    int n,m,s=0;\\n    cin\\u003e\\u003en\\u003e\\u003em;\\n    int i,j;\\n    int c[1000],a[1000];\\n    for(i=0;i\\u003cn;i++)\\n        cin\\u003e\\u003ec[i];\\n    for(i=0;i\\u003cm;i++)\\n        cin\\u003e\\u003ea[i];\\n    for(i=0,j=0;i\\u003cn;){\\n        if(j==m)\\n            break;\\n        if(c[i]\\u003c=a[j]){\\n            s++;\\n            j++;\\n            i++;\\n        }\\n        else i++;\\n    }\\n    if(i==n\\u0026\\u0026s==0)\\n        cout\\u003c\\u003c\\\"0\\\\n\\\";\\n    else cout\\u003c\\u003cs\\u003c\\u003cendl;\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"b-minimum-ternary-string\\\"\\u003e\\u003cspan\\u003e6 \\u003ca href=\\\"https://codeforces.com/contest/1009/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB. Minimum Ternary String\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#b-minimum-ternary-string\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e#include \\u003cbits/stdc++.h\\u003e\\nusing namespace std;\\n\\nstring s, ans;\\n\\nint main(){\\n    cin \\u003e\\u003e s;\\n    int one = 0;\\n    for (int i = 0; i \\u003c s.size(); i++){\\n        if (s[i] == '0') ans += \\\"0\\\";\\n        if (s[i] == '1') one++;\\n        if (s[i] == '2') ans += \\\"2\\\";\\n    }\\n    bool flag = false;\\n    for (int i = 0; i \\u003c ans.size(); i++){\\n        if (ans[i] == '2' \\u0026\\u0026 !flag) flag = true, cout \\u003c\\u003c string(one, '1');\\n        cout \\u003c\\u003c ans[i];\\n    }\\n    if (!flag) cout \\u003c\\u003c string(one, '1');\\n    return 0;\\n}\\n\\n/*\\n\\n100210\\n\\n11222121\\n\\n20\\n\\n2001\\n\\n020201\\n\\n2012101\\n\\n111\\n\\n000\\n\\n*/\\u003c/code\\u003e\\u003c/pre\\u003e\"}]}"
  },
  {
    "path": "tags/codeforces/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Codeforces - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Codeforces\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-10T20:13:08+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/codeforces/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Codeforces\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Codeforces\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/codeforces/ title=\"Codeforces | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/codeforces/index.xml title=\"Codeforces | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/codeforces/feed.json title=\"Codeforces | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/codeforces/feed.json title=\"Codeforces | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/codeforces/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Codeforces</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Codeforces <sup>8</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/codeforces680b/ class=archive-item-link>Bear and Finding Criminals-Codeforces680B</a>\n<span class=archive-item-date title='2018-07-31 19:32:21'>07-31</span></article><article class=archive-item><a href=/posts/codeforces680a/ class=archive-item-link>Bear and Five Cards-Codeforces680A</a>\n<span class=archive-item-date title='2018-07-31 19:22:36'>07-31</span></article><article class=archive-item><a href=/posts/piles-with-stones/ class=archive-item-link>Piles-With-Stones</a>\n<span class=archive-item-date title='2018-07-31 11:09:31'>07-31</span></article><article class=archive-item><a href=/posts/adjacent-replacements/ class=archive-item-link>Adjacent Replacements</a>\n<span class=archive-item-date title='2018-07-22 11:54:14'>07-22</span></article><article class=archive-item><a href=/posts/cf-1009/ class=archive-item-link>Educational Codeforces Round 47 (Rated for Div. 2)</a>\n<span class=archive-item-date title='2018-07-22 11:25:56'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/codeforces/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/codeforces/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Codeforces - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/codeforces/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/codeforces/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>Bear and Finding Criminals-Codeforces680B</title><link>https://lruihao.cn/posts/codeforces680b/</link><pubDate>Tue, 31 Jul 2018 19:32:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊警察住在某个城市，他要抓各个城市的罪犯，现在用一个 BCD 可以知道那个城市里&lt;strong&gt;一定&lt;/strong&gt;有罪犯。&lt;/p&gt;\n&lt;p&gt;一定能确定该城市有小偷的几种情况：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市有罪犯，则一定能检测到&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所住城市的左边和右边位置若&lt;strong&gt;都&lt;/strong&gt;不为 0，则说明两座城市都有罪犯（只有一边为 1 是不能确定到底哪个城市有罪犯的）&lt;/p&gt;\n&lt;/li&gt;\n&lt;li&gt;\n&lt;p&gt;警察所在城市的一边检测到有罪犯，但在另一边已经没有城市了，则说明该城市一定有罪犯&lt;/p&gt;\n&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>Bear and Five Cards-Codeforces680A</title><link>https://lruihao.cn/posts/codeforces680a/</link><pubDate>Tue, 31 Jul 2018 19:22:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces680a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大致题意就是小熊有 5 张卡片，每张卡片有对应的分数，他可以选择丢弃 2 张相同的或者 3 张相同的卡片，没有相同的就无法丢弃，问小熊剩下的分数最少是多少。&lt;/p&gt;</description></item><item><title>Piles-with-stones</title><link>https://lruihao.cn/posts/piles-with-stones/</link><pubDate>Tue, 31 Jul 2018 11:09:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/piles-with-stones/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Codeforces Round #500 (Div. 2)&lt;br&gt;\n题目链接：&lt;a href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles With Stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Adjacent Replacements</title><link>https://lruihao.cn/posts/adjacent-replacements/</link><pubDate>Sun, 22 Jul 2018 11:54:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/adjacent-replacements/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;第一次打 cf 就做出一道这样的找规律的题，打到自闭。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin&amp;gt;&amp;gt;n;\n int i;\n int flag=0;\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;){\n cin&amp;gt;&amp;gt;a[i];\n if(!(a[i]&amp;amp;1)) a[i]--;\n if(!flag) {cout&amp;lt;&amp;lt;a[i];flag=1;}\n else cout&amp;lt;&amp;lt;&amp;#34; &amp;#34;&amp;lt;&amp;lt;a[i];\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Educational Codeforces Round 47 (Rated for Div. 2)</title><link>https://lruihao.cn/posts/cf-1009/</link><pubDate>Sun, 22 Jul 2018 11:25:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cf-1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;那天晚上报名了没打，第二天早上打的，也只出了两题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"a-game-shopping\"&gt;&lt;span&gt;7 &lt;a href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. Game Shopping&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-game-shopping\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin&amp;gt;&amp;gt;n&amp;gt;&amp;gt;m;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i&amp;lt;n;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;c[i];\n for(i=0;i&amp;lt;m;i&amp;#43;&amp;#43;)\n cin&amp;gt;&amp;gt;a[i];\n for(i=0,j=0;i&amp;lt;n;){\n if(j==m)\n break;\n if(c[i]&amp;lt;=a[j]){\n s&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n }\n else i&amp;#43;&amp;#43;;\n }\n if(i==n&amp;amp;&amp;amp;s==0)\n cout&amp;lt;&amp;lt;&amp;#34;0\\n&amp;#34;;\n else cout&amp;lt;&amp;lt;s&amp;lt;&amp;lt;endl;\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"b-minimum-ternary-string\"&gt;&lt;span&gt;8 &lt;a href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B. Minimum Ternary String&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#b-minimum-ternary-string\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;#include &amp;lt;bits/stdc&amp;#43;&amp;#43;.h&amp;gt;\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin &amp;gt;&amp;gt; s;\n int one = 0;\n for (int i = 0; i &amp;lt; s.size(); i&amp;#43;&amp;#43;){\n if (s[i] == &amp;#39;0&amp;#39;) ans &amp;#43;= &amp;#34;0&amp;#34;;\n if (s[i] == &amp;#39;1&amp;#39;) one&amp;#43;&amp;#43;;\n if (s[i] == &amp;#39;2&amp;#39;) ans &amp;#43;= &amp;#34;2&amp;#34;;\n }\n bool flag = false;\n for (int i = 0; i &amp;lt; ans.size(); i&amp;#43;&amp;#43;){\n if (ans[i] == &amp;#39;2&amp;#39; &amp;amp;&amp;amp; !flag) flag = true, cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n cout &amp;lt;&amp;lt; ans[i];\n }\n if (!flag) cout &amp;lt;&amp;lt; string(one, &amp;#39;1&amp;#39;);\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/codeforces/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/codeforces/</title><link rel=canonical href=https://lruihao.cn/tags/codeforces/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/codeforces/\"></head></html>"
  },
  {
    "path": "tags/codereview/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"codereview - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Code Review 怎麼做？新手工程師如何提升「程式碼品質」\",\"date_published\":\"2021-03-04T21:04:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codereview/\",\"url\":\"https://lruihao.cn/posts/codereview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"codereview\"],\"summary\":\"1 程式碼的持續優化 對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"程式碼的持續優化\\\"\\u003e\\u003cspan\\u003e1 程式碼的持續優化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/codereview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>codereview - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"codereview\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-03-04T21:04:18+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/codereview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"codereview\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"codereview\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/codereview/ title=\"codereview | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/codereview/index.xml title=\"codereview | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/codereview/feed.json title=\"codereview | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/codereview/feed.json title=\"codereview | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/codereview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Codereview</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>codereview <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/codereview/ class=archive-item-link>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</a>\n<span class=archive-item-date title='2021-03-04 21:04:18'>03-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/codereview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/codereview/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>codereview - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/codereview/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/codereview/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Code Review 怎麼做？新手工程師如何提升「程式碼品質」</title><link>https://lruihao.cn/posts/codereview/</link><pubDate>Thu, 04 Mar 2021 21:04:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codereview/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"程式碼的持續優化\"&gt;&lt;span&gt;1 程式碼的持續優化&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;對一個入門的工程師來說，掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後，要如何寫出更好的程式呢？怎樣才能夠成為一個「優秀」的新手工程師呢？事實上，寫出會動的程式不難，但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」，但我認為在大量練習之外，適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/codereview/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/codereview/</title><link rel=canonical href=https://lruihao.cn/tags/codereview/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/codereview/\"></head></html>"
  },
  {
    "path": "tags/collator/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Collator - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "tags/collator/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Collator - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Collator\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-18T13:13:10+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/collator/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Collator\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Collator\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/collator/ title=\"Collator | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/collator/index.xml title=\"Collator | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/collator/feed.json title=\"Collator | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/collator/feed.json title=\"Collator | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/collator/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Collator</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Collator <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/collator/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/collator/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Collator - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/collator/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/collator/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Arrays 类及基本使用</title><link>https://lruihao.cn/posts/java-arrays/</link><pubDate>Fri, 18 Jan 2019 13:13:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-arrays/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"主要方法\"&gt;&lt;span&gt;10 主要方法&lt;/span&gt;\n &lt;a href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;static type[] copyof(type[] original,int length)&lt;/li&gt;\n&lt;li&gt;static int binarysearch(type[] a,type key)&lt;/li&gt;\n&lt;li&gt;static boolean equals(type[] a,type[] b)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,type val)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,int fromindex,int toindex,type val)&lt;/li&gt;\n&lt;li&gt;static void sort(type[] a)&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/collator/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/collator/</title><link rel=canonical href=https://lruihao.cn/tags/collator/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/collator/\"></head></html>"
  },
  {
    "path": "tags/comparator/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Comparator - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "tags/comparator/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Comparator - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Comparator\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-18T13:13:10+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/comparator/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Comparator\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Comparator\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/comparator/ title=\"Comparator | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/comparator/index.xml title=\"Comparator | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/comparator/feed.json title=\"Comparator | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/comparator/feed.json title=\"Comparator | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/comparator/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Comparator</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Comparator <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/comparator/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/comparator/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Comparator - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/comparator/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/comparator/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Arrays 类及基本使用</title><link>https://lruihao.cn/posts/java-arrays/</link><pubDate>Fri, 18 Jan 2019 13:13:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-arrays/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"主要方法\"&gt;&lt;span&gt;10 主要方法&lt;/span&gt;\n &lt;a href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;static type[] copyof(type[] original,int length)&lt;/li&gt;\n&lt;li&gt;static int binarysearch(type[] a,type key)&lt;/li&gt;\n&lt;li&gt;static boolean equals(type[] a,type[] b)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,type val)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,int fromindex,int toindex,type val)&lt;/li&gt;\n&lt;li&gt;static void sort(type[] a)&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/comparator/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/comparator/</title><link rel=canonical href=https://lruihao.cn/tags/comparator/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/comparator/\"></head></html>"
  },
  {
    "path": "tags/continuous-integration/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"continuous-integration - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/continuous-integration/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>continuous-integration - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"continuous-integration\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-09-04T18:10:59+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/continuous-integration/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"continuous-integration\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"continuous-integration\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/continuous-integration/ title=\"continuous-integration | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/continuous-integration/index.xml title=\"continuous-integration | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/continuous-integration/feed.json title=\"continuous-integration | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/continuous-integration/feed.json title=\"continuous-integration | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/continuous-integration/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Continuous-Integration</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>continuous-integration <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/continuous-integration/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/continuous-integration/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>continuous-integration - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/continuous-integration/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/continuous-integration/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/continuous-integration/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/continuous-integration/</title><link rel=canonical href=https://lruihao.cn/tags/continuous-integration/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/continuous-integration/\"></head></html>"
  },
  {
    "path": "tags/conventional-changelog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"conventional-changelog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/conventional-changelog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>conventional-changelog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"conventional-changelog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-30T15:40:19+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/conventional-changelog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"conventional-changelog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"conventional-changelog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/conventional-changelog/ title=\"conventional-changelog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/conventional-changelog/index.xml title=\"conventional-changelog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/conventional-changelog/feed.json title=\"conventional-changelog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/conventional-changelog/feed.json title=\"conventional-changelog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/conventional-changelog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Conventional-Changelog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>conventional-changelog <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/conventional-changelog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/conventional-changelog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>conventional-changelog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/conventional-changelog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/conventional-changelog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/conventional-changelog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/conventional-changelog/</title><link rel=canonical href=https://lruihao.cn/tags/conventional-changelog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/conventional-changelog/\"></head></html>"
  },
  {
    "path": "tags/conventional-commits/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"conventional-commits - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/conventional-commits/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>conventional-commits - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"conventional-commits\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-30T15:40:19+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/conventional-commits/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"conventional-commits\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"conventional-commits\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/conventional-commits/ title=\"conventional-commits | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/conventional-commits/index.xml title=\"conventional-commits | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/conventional-commits/feed.json title=\"conventional-commits | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/conventional-commits/feed.json title=\"conventional-commits | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/conventional-commits/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Conventional-Commits</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>conventional-commits <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/conventional-commits/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/conventional-commits/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>conventional-commits - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/conventional-commits/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/conventional-commits/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/conventional-commits/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/conventional-commits/</title><link rel=canonical href=https://lruihao.cn/tags/conventional-commits/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/conventional-commits/\"></head></html>"
  },
  {
    "path": "tags/cos-album/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"cos-album - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/cos-album/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>cos-album - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"cos-album\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-11-23T12:59:05+00:00\"><meta itemprop=dateModified content=\"2023-02-16T04:56:55+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cos-album/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cos-album\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cos-album\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cos-album/ title=\"cos-album | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cos-album/index.xml title=\"cos-album | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cos-album/feed.json title=\"cos-album | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cos-album/feed.json title=\"cos-album | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cos-album/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cos-Album</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>cos-album <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/cos-album/ class=archive-item-link>Lruihao/cos-album</a>\n<span class=archive-item-date title='2019-11-23 12:59:05'>11-23</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cos-album/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cos-album/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>cos-album - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cos-album/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 16 Feb 2023 04:56:55 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cos-album/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</title><link>https://lruihao.cn/projects/lruihao/cos-album/</link><pubDate>Sat, 23 Nov 2019 12:59:05 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cos-album/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cos-album\" data-decreased&gt;&lt;span&gt;cos-album&lt;/span&gt;\n &lt;a href=\"#cos-album\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"step1\"&gt;&lt;span&gt;Step1&lt;/span&gt;\n &lt;a href=\"#step1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; type=&amp;#34;text/css&amp;#34; href=&amp;#34;cos-album.min.css?v=1.1.6&amp;#34;&amp;gt;\n&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;cos-album.min.js?v=1.1.6&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"step2\"&gt;&lt;span&gt;Step2&lt;/span&gt;\n &lt;a href=\"#step2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;\n new Cosalbum({\n &amp;#39;xmlLink&amp;#39;: &amp;#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&amp;#39;,\n &amp;#39;prependTo&amp;#39;: &amp;#39;.cos-album&amp;#39;,\n &amp;#39;viewNum&amp;#39;: 8,\n &amp;#39;copyUrl&amp;#39;: &amp;#39;//img.lruihao.cn&amp;#39;\n });\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"params\"&gt;&lt;span&gt;Params&lt;/span&gt;\n &lt;a href=\"#params\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;param&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;type&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;default&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;xmlLink&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;需要解析的騰訊云COS桶XML鏈接&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;prependTo&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;lsquo;body&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;可選解析相冊到某個節點&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;viewNum&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;4&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;每個相冊顯示的照片數目&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyUrl&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;href&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;CDN 链接,雙擊複製 URL Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;imgType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;jpg&amp;rsquo;, &amp;lsquo;jpeg&amp;rsquo;, &amp;lsquo;png&amp;rsquo;, &amp;lsquo;gif&amp;rsquo;, &amp;lsquo;svg&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;图片類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;videoType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;mp4&amp;rsquo;, &amp;lsquo;mp3&amp;rsquo;, &amp;lsquo;avi&amp;rsquo;, &amp;lsquo;mov&amp;rsquo;, &amp;lsquo;qt&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;視頻類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;strong&gt;详细说明&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cos-album/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cos-album/</title><link rel=canonical href=https://lruihao.cn/tags/cos-album/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cos-album/\"></head></html>"
  },
  {
    "path": "tags/cos-bucket/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"cos-bucket - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\",\"date_published\":\"2019-11-23T12:59:05Z\",\"date_modified\":\"2023-02-16T04:56:55Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"url\":\"https://lruihao.cn/projects/lruihao/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cos-album\",\"cos-bucket\"],\"summary\":\"cos-album demo\\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \\u0026lsquo;body\\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cos-album\\\" data-decreased\\u003e\\u003cspan\\u003ecos-album\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cos-album\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album-demo\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"step1\\\"\\u003e\\u003cspan\\u003eStep1\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003clink rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"cos-album.min.css?v=1.1.6\\\"\\u003e\\n\\u003cscript type=\\\"text/javascript\\\" src=\\\"cos-album.min.js?v=1.1.6\\\"\\u003e\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"step2\\\"\\u003e\\u003cspan\\u003eStep2\\u003c/span\\u003e\\n  \\u003ca href=\\\"#step2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n  new Cosalbum({\\n    'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\\n    'prependTo': '.cos-album',\\n    'viewNum': 8,\\n    'copyUrl': '//img.lruihao.cn'\\n  });\\n\\u003c/script\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"params\\\"\\u003e\\u003cspan\\u003eParams\\u003c/span\\u003e\\n  \\u003ca href=\\\"#params\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003eparam\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003etype\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edefault\\u003c/th\\u003e\\n          \\u003cth style=\\\"text-align: left\\\"\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003exmlLink\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e需要解析的騰訊云COS桶XML鏈接\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eprependTo\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e\\u0026lsquo;body\\u0026rsquo;\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e可選解析相冊到某個節點\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eviewNum\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e4\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e每個相冊顯示的照片數目\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ecopyUrl\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003ehref\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eimgType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;jpg\\u0026rsquo;, \\u0026lsquo;jpeg\\u0026rsquo;, \\u0026lsquo;png\\u0026rsquo;, \\u0026lsquo;gif\\u0026rsquo;, \\u0026lsquo;svg\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e图片類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003evideoType\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003eString\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e[\\u0026lsquo;mp4\\u0026rsquo;, \\u0026lsquo;mp3\\u0026rsquo;, \\u0026lsquo;avi\\u0026rsquo;, \\u0026lsquo;mov\\u0026rsquo;, \\u0026lsquo;qt\\u0026rsquo;]\\u003c/td\\u003e\\n          \\u003ctd style=\\\"text-align: left\\\"\\u003e視頻類型 Since: 1.1.6\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/cos-album.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cstrong\\u003e详细说明\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/cos-bucket/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>cos-bucket - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"cos-bucket\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-11-23T12:59:05+00:00\"><meta itemprop=dateModified content=\"2023-02-16T04:56:55+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cos-bucket/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"cos-bucket\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"cos-bucket\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cos-bucket/ title=\"cos-bucket | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cos-bucket/index.xml title=\"cos-bucket | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cos-bucket/feed.json title=\"cos-bucket | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cos-bucket/feed.json title=\"cos-bucket | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cos-bucket/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cos-Bucket</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>cos-bucket <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/cos-album/ class=archive-item-link>Lruihao/cos-album</a>\n<span class=archive-item-date title='2019-11-23 12:59:05'>11-23</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cos-bucket/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cos-bucket/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>cos-bucket - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cos-bucket/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 16 Feb 2023 04:56:55 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cos-bucket/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面</title><link>https://lruihao.cn/projects/lruihao/cos-album/</link><pubDate>Sat, 23 Nov 2019 12:59:05 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cos-album/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cos-album\" data-decreased&gt;&lt;span&gt;cos-album&lt;/span&gt;\n &lt;a href=\"#cos-album\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"step1\"&gt;&lt;span&gt;Step1&lt;/span&gt;\n &lt;a href=\"#step1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; type=&amp;#34;text/css&amp;#34; href=&amp;#34;cos-album.min.css?v=1.1.6&amp;#34;&amp;gt;\n&amp;lt;script type=&amp;#34;text/javascript&amp;#34; src=&amp;#34;cos-album.min.js?v=1.1.6&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"step2\"&gt;&lt;span&gt;Step2&lt;/span&gt;\n &lt;a href=\"#step2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script type=&amp;#34;text/javascript&amp;#34;&amp;gt;\n new Cosalbum({\n &amp;#39;xmlLink&amp;#39;: &amp;#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&amp;#39;,\n &amp;#39;prependTo&amp;#39;: &amp;#39;.cos-album&amp;#39;,\n &amp;#39;viewNum&amp;#39;: 8,\n &amp;#39;copyUrl&amp;#39;: &amp;#39;//img.lruihao.cn&amp;#39;\n });\n&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"params\"&gt;&lt;span&gt;Params&lt;/span&gt;\n &lt;a href=\"#params\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th style=\"text-align: left\"&gt;param&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;type&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;default&lt;/th&gt;\n &lt;th style=\"text-align: left\"&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;xmlLink&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;需要解析的騰訊云COS桶XML鏈接&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;prependTo&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;&amp;lsquo;body&amp;rsquo;&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;可選解析相冊到某個節點&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;viewNum&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;Number&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;4&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;每個相冊顯示的照片數目&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;copyUrl&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;href&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;CDN 链接,雙擊複製 URL Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;imgType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;jpg&amp;rsquo;, &amp;lsquo;jpeg&amp;rsquo;, &amp;lsquo;png&amp;rsquo;, &amp;lsquo;gif&amp;rsquo;, &amp;lsquo;svg&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;图片類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td style=\"text-align: left\"&gt;videoType&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;String&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;[&amp;lsquo;mp4&amp;rsquo;, &amp;lsquo;mp3&amp;rsquo;, &amp;lsquo;avi&amp;rsquo;, &amp;lsquo;mov&amp;rsquo;, &amp;lsquo;qt&amp;rsquo;]&lt;/td&gt;\n &lt;td style=\"text-align: left\"&gt;視頻類型 Since: 1.1.6&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;strong&gt;详细说明&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cos-bucket/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cos-bucket/</title><link rel=canonical href=https://lruihao.cn/tags/cos-bucket/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cos-bucket/\"></head></html>"
  },
  {
    "path": "tags/cosalbum/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CosAlbum - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/cosalbum/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CosAlbum - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CosAlbum\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-11-24T10:52:34+08:00\"><meta itemprop=dateModified content=\"2019-11-24T10:52:34+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cosalbum/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CosAlbum\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CosAlbum\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cosalbum/ title=\"CosAlbum | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cosalbum/index.xml title=\"CosAlbum | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cosalbum/feed.json title=\"CosAlbum | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cosalbum/feed.json title=\"CosAlbum | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cosalbum/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CosAlbum</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>CosAlbum <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cosalbum/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cosalbum/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CosAlbum - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cosalbum/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 24 Nov 2019 10:52:34 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cosalbum/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cosalbum/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cosalbum/</title><link rel=canonical href=https://lruihao.cn/tags/cosalbum/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cosalbum/\"></head></html>"
  },
  {
    "path": "tags/coverview/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CoverView - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/coverview/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CoverView - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CoverView\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-04-02T18:05:34+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/coverview/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CoverView\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CoverView\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/coverview/ title=\"CoverView | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/coverview/index.xml title=\"CoverView | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/coverview/feed.json title=\"CoverView | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/coverview/feed.json title=\"CoverView | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/coverview/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CoverView</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>CoverView <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title='2024-04-02 18:05:34'>04-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/coverview/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/coverview/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CoverView - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/coverview/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/coverview/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用五天时间给自己制作一个封面图生成工具</title><link>https://lruihao.cn/projects/coverview/</link><pubDate>Tue, 02 Apr 2024 18:05:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/coverview/</guid><category domain=\"https://lruihao.cn/categories/react/\">React</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;Cool!&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;苦封面图久矣，今日终有所成。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/coverview/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/coverview/</title><link rel=canonical href=https://lruihao.cn/tags/coverview/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/coverview/\"></head></html>"
  },
  {
    "path": "tags/cron/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Cron - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 设置程序每天 8 点定时执行任务\",\"date_published\":\"2019-05-09T23:26:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysettime/\",\"url\":\"https://lruihao.cn/posts/pysettime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"Cron\"],\"summary\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\n（该程序需要一直挂着，保持网络不断）\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\u003cbr\\u003e\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\u003cbr\\u003e\\n（该程序需要一直挂着，保持网络不断）\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/cron/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Cron - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Cron\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-03-25T09:19:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/cron/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Cron\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Cron\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/cron/ title=\"Cron | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/cron/index.xml title=\"Cron | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/cron/feed.json title=\"Cron | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/cron/feed.json title=\"Cron | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/cron/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Cron</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Cron <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/pysettime/ class=archive-item-link>Python 设置程序每天 8 点定时执行任务</a>\n<span class=archive-item-date title='2019-05-09 23:26:54'>05-09</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/cron/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/cron/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Cron - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/cron/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/cron/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Cron 表达式的基本语法</title><link>https://lruihao.cn/posts/cron/</link><pubDate>Wed, 25 Mar 2020 09:19:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cron/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;13 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;&lt;code&gt;&amp;lt;秒&amp;gt; &amp;lt;分钟&amp;gt; &amp;lt;小时&amp;gt; &amp;lt;日期 day-of-month&amp;gt; &amp;lt;月份&amp;gt; &amp;lt;星期 day-of-week&amp;gt;&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 &lt;code&gt;X X X X X X&lt;/code&gt;。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。&lt;/p&gt;</description></item><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 设置程序每天 8 点定时执行任务</title><link>https://lruihao.cn/posts/pysettime/</link><pubDate>Thu, 09 May 2019 23:26:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysettime/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。&lt;br&gt;\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。&lt;br&gt;\n（该程序需要一直挂着，保持网络不断）&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/cron/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/cron/</title><link rel=canonical href=https://lruihao.cn/tags/cron/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/cron/\"></head></html>"
  },
  {
    "path": "tags/css/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"CSS - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"CSS @layer：构建更高效、更可维护的样式层级\",\"date_published\":\"2025-06-18T10:35:47&#43;08:00\",\"date_modified\":\"2025-06-18T12:41:26&#43;08:00\",\"id\":\"https://lruihao.cn/posts/at-layer/\",\"url\":\"https://lruihao.cn/posts/at-layer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"@layer\"],\"summary\":\"在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 @layer 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法，带你一探究竟。\\n\",\"content_html\":\"\\u003cp\\u003e在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 \\u003ccode\\u003e@layer\\u003c/code\\u003e 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 \\u003ccode\\u003e@layer\\u003c/code\\u003e 的背景、作用以及语法，带你一探究竟。\\u003c/p\\u003e\"},{\"title\":\"CSS Flexbox 布局指南\",\"date_published\":\"2025-01-20T15:56:38&#43;08:00\",\"date_modified\":\"2025-01-20T17:49:35&#43;08:00\",\"id\":\"https://lruihao.cn/posts/flexbox/\",\"url\":\"https://lruihao.cn/posts/flexbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Flexbox\"],\"image\":\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\",\"summary\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\n\",\"content_html\":\"\\u003cp\\u003e本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\u003c/p\\u003e\"},{\"title\":\"震惊！CSS 竟然能获取视口尺寸？\",\"date_published\":\"2024-12-06T10:32:22&#43;08:00\",\"date_modified\":\"2024-12-06T11:51:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-viewport/\",\"url\":\"https://lruihao.cn/posts/css-viewport/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\n\",\"content_html\":\"\\u003cp\\u003e在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"},{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"},{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"},{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"CSS 如何实现网格背景效果？\",\"date_published\":\"2023-09-02T10:05:44&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/grid-bg-image/\",\"url\":\"https://lruihao.cn/posts/grid-bg-image/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\"],\"summary\":\"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\\n15 前言 最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何使用 \\u003ccode\\u003elinear-gradient\\u003c/code\\u003e 、\\u003ccode\\u003ebackground-size\\u003c/code\\u003e 等属性来实现网格背景效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e15 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\\u003c/p\\u003e\"},{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"date_published\":\"2022-04-30T22:04:29&#43;08:00\",\"date_modified\":\"2024-07-14T17:09:39&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-scss-var/\",\"url\":\"https://lruihao.cn/posts/css-scss-var/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"summary\":\"7 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\\n造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题分析\\\"\\u003e\\u003cspan\\u003e7 问题分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e昨天在开发 FixIt 的时候，在 Scss 中写 \\u003ccode\\u003emax(foo, bar)\\u003c/code\\u003e 函数比较不同的单位变量时报错了，但是在 CSS 中使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数函数比较不同的单位变量是没有问题的。\\u003c/p\\u003e\\n\\u003cp\\u003e造成这一问题的原因是，在 Scss 中，也实现了 \\u003ccode\\u003emax\\u003c/code\\u003e 和 \\u003ccode\\u003emin\\u003c/code\\u003e 函数，但是在 Scss 中，\\u003cstrong\\u003e不同单位的变量是不能进行运算的\\u003c/strong\\u003e，所以使得在 Scss 中直接使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\u003c/p\\u003e\\n\\u003cp\\u003e知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\u003c/p\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"前端面试题 - HTML+CSS\",\"date_published\":\"2019-03-30T22:58:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ms-html-css/\",\"url\":\"https://lruihao.cn/posts/ms-html-css/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"CSS\"],\"summary\":\" 原文链接\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/ltadpoles/web-document/tree/master/Other\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原文链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/css/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>CSS - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"CSS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-18T10:35:47+08:00\"><meta itemprop=dateModified content=\"2025-06-18T12:41:26+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/css/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"CSS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"CSS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/css/ title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/css/index.xml title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/css/feed.json title=\"CSS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/css/feed.json title=\"CSS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/css/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>CSS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>CSS <sup>15</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/at-layer/ class=archive-item-link>CSS @Layer：构建更高效、更可维护的样式层级</a>\n<span class=archive-item-date title='2025-06-18 10:35:47'>06-18</span></article><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a>\n<span class=archive-item-date title='2025-01-20 15:56:38'>01-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-viewport/ class=archive-item-link>震惊！CSS 竟然能获取视口尺寸？</a>\n<span class=archive-item-date title='2024-12-06 10:32:22'>12-06</span></article><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/grid-bg-image/ class=archive-item-link>CSS 如何实现网格背景效果？</a>\n<span class=archive-item-date title='2023-09-02 10:05:44'>09-02</span></article><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/css-scss-var/ class=archive-item-link>关于 CSS 和 Scss 变量运算那些事</a>\n<span class=archive-item-date title='2022-04-30 22:04:29'>04-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/ms-html-css/ class=archive-item-link>前端面试题 - HTML+CSS</a>\n<span class=archive-item-date title='2019-03-30 22:58:39'>03-30</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/css/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/css/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>CSS - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/css/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 18 Jun 2025 12:41:26 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/css/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>CSS @layer：构建更高效、更可维护的样式层级</title><link>https://lruihao.cn/posts/at-layer/</link><pubDate>Wed, 18 Jun 2025 10:35:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/at-layer/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在现代前端开发中，CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展，样式规则的冲突、覆盖以及维护成本的增加，都给开发者带来了巨大的挑战。幸运的是，CSS 的 &lt;code&gt;@layer&lt;/code&gt; 规则为我们提供了一种全新的解决方案，帮助我们更好地管理样式层级，提升代码的可维护性和可读性。本文将深入探讨 &lt;code&gt;@layer&lt;/code&gt; 的背景、作用以及语法，带你一探究竟。&lt;/p&gt;</description></item><item><title>CSS Flexbox 布局指南</title><link>https://lruihao.cn/posts/flexbox/</link><pubDate>Mon, 20 Jan 2025 15:56:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/flexbox/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。&lt;/p&gt;</description></item><item><title>震惊！CSS 竟然能获取视口尺寸？</title><link>https://lruihao.cn/posts/css-viewport/</link><pubDate>Fri, 06 Dec 2024 10:32:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-viewport/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在这篇文章中，我们将探讨如何使用 CSS 获取视口尺寸，并展示一个简单的实现示例。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案：CSS 四舍五入数值单位</title><link>https://lruihao.cn/posts/css-round/</link><pubDate>Mon, 29 Jul 2024 20:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-round/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍另外一个非常实用的 CSS 数学函数 - &lt;code&gt;round()&lt;/code&gt; 及其实际应用场景。&lt;/p&gt;</description></item><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item><item><title>标准滚动条控制规范</title><link>https://lruihao.cn/posts/scrollbar-styling/</link><pubDate>Fri, 28 Jun 2024 22:29:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/scrollbar-styling/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;使用 &lt;code&gt;scrollbar-width&lt;/code&gt; 和 &lt;code&gt;scrollbar-color&lt;/code&gt; 属性设置滚动条的样式。&lt;/p&gt;</description></item><item><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能</title><link>https://lruihao.cn/posts/aside-toggle-drag/</link><pubDate>Thu, 13 Jun 2024 21:03:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/aside-toggle-drag/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。&lt;/p&gt;</description></item><item><title>怎么生成暗黑模式和明亮模式的 SVG 图片？</title><link>https://lruihao.cn/posts/svg-dark-light/</link><pubDate>Thu, 06 Jun 2024 22:13:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/svg-dark-light/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。&lt;/p&gt;</description></item><item><title>CSS 如何实现网格背景效果？</title><link>https://lruihao.cn/posts/grid-bg-image/</link><pubDate>Sat, 02 Sep 2023 10:05:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/grid-bg-image/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍如何使用 &lt;code&gt;linear-gradient&lt;/code&gt; 、&lt;code&gt;background-size&lt;/code&gt; 等属性来实现网格背景效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;22 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;最近在开发一个拖拽式仪表盘时，需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。&lt;/p&gt;</description></item><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>关于 CSS 和 Scss 变量运算那些事</title><link>https://lruihao.cn/posts/css-scss-var/</link><pubDate>Sat, 30 Apr 2022 22:04:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-scss-var/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;h2 class=\"heading-element\" id=\"问题分析\"&gt;&lt;span&gt;10 问题分析&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;昨天在开发 FixIt 的时候，在 Scss 中写 &lt;code&gt;max(foo, bar)&lt;/code&gt; 函数比较不同的单位变量时报错了，但是在 CSS 中使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数函数比较不同的单位变量是没有问题的。&lt;/p&gt;\n&lt;p&gt;造成这一问题的原因是，在 Scss 中，也实现了 &lt;code&gt;max&lt;/code&gt; 和 &lt;code&gt;min&lt;/code&gt; 函数，但是在 Scss 中，&lt;strong&gt;不同单位的变量是不能进行运算的&lt;/strong&gt;，所以使得在 Scss 中直接使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）&lt;/p&gt;\n&lt;p&gt;知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。&lt;/p&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>前端面试题 - HTML+CSS</title><link>https://lruihao.cn/posts/ms-html-css/</link><pubDate>Sat, 30 Mar 2019 22:58:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ms-html-css/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原文链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/css/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/css/</title><link rel=canonical href=https://lruihao.cn/tags/css/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/css/\"></head></html>"
  },
  {
    "path": "tags/custom-element/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Custom element - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"}]}"
  },
  {
    "path": "tags/custom-element/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Custom element - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Custom element\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/custom-element/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Custom element\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Custom element\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/custom-element/ title=\"Custom element | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/custom-element/index.xml title=\"Custom element | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/custom-element/feed.json title=\"Custom element | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/custom-element/feed.json title=\"Custom element | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/custom-element/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Custom Element</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Custom element <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/custom-element/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/custom-element/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Custom element - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/custom-element/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/custom-element/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item></channel></rss>"
  },
  {
    "path": "tags/custom-element/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/custom-element/</title><link rel=canonical href=https://lruihao.cn/tags/custom-element/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/custom-element/\"></head></html>"
  },
  {
    "path": "tags/custom-elements/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"custom-elements - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/custom-elements/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>custom-elements - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"custom-elements\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-07-22T03:40:45+00:00\"><meta itemprop=dateModified content=\"2026-04-08T08:41:40+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/custom-elements/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"custom-elements\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"custom-elements\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/custom-elements/ title=\"custom-elements | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/custom-elements/index.xml title=\"custom-elements | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/custom-elements/feed.json title=\"custom-elements | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/custom-elements/feed.json title=\"custom-elements | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/custom-elements/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Custom-Elements</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>custom-elements <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2026-04-08 08:41:40'>更新于 04-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/custom-elements/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/custom-elements/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>custom-elements - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/custom-elements/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 08 Apr 2026 08:41:40 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/custom-elements/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/custom-elements/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/custom-elements/</title><link rel=canonical href=https://lruihao.cn/tags/custom-elements/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/custom-elements/\"></head></html>"
  },
  {
    "path": "tags/dashboard/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"dashboard - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"},{\"title\":\"拖拽式仪表盘的设计与开发\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"url\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"content_html\":\"关于拖拽式仪表盘的设计与开发系列文章。\"}]}"
  },
  {
    "path": "tags/dashboard/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>dashboard - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"dashboard\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-12T21:25:18+08:00\"><meta itemprop=dateModified content=\"2024-04-25T13:29:53+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/dashboard/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"dashboard\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"dashboard\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/dashboard/ title=\"dashboard | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/dashboard/index.xml title=\"dashboard | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/dashboard/feed.json title=\"dashboard | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/dashboard/feed.json title=\"dashboard | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/dashboard/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Dashboard</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>dashboard <sup>7</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article><article class=archive-item><a href=/posts/draggable-dashboard/ class=archive-item-link>拖拽式仪表盘的设计与开发</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/dashboard/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/dashboard/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>dashboard - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/dashboard/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 25 Apr 2024 13:29:53 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/dashboard/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item><item><title>拖拽式仪表盘的设计与开发</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/draggable-dashboard/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>关于拖拽式仪表盘的设计与开发系列文章。</description></item></channel></rss>"
  },
  {
    "path": "tags/dashboard/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/dashboard/</title><link rel=canonical href=https://lruihao.cn/tags/dashboard/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/dashboard/\"></head></html>"
  },
  {
    "path": "tags/debug/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"debug - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/debug/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>debug - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"debug\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-01-17T14:57:48+08:00\"><meta itemprop=dateModified content=\"2024-01-18T12:59:43+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/debug/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"debug\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"debug\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/debug/ title=\"debug | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/debug/index.xml title=\"debug | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/debug/feed.json title=\"debug | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/debug/feed.json title=\"debug | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/debug/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Debug</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>debug <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/debug/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/debug/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>debug - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/debug/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 18 Jan 2024 12:59:43 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/debug/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>如何给 npm 包打补丁？</title><link>https://lruihao.cn/posts/patch-package/</link><pubDate>Thu, 12 Oct 2023 22:37:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/patch-package/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>本文将介绍如何给 npm 包打补丁。</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/debug/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/debug/</title><link rel=canonical href=https://lruihao.cn/tags/debug/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/debug/\"></head></html>"
  },
  {
    "path": "tags/defer/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"defer - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/defer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>defer - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"defer\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-09-08T11:47:50+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/defer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"defer\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"defer\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/defer/ title=\"defer | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/defer/index.xml title=\"defer | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/defer/feed.json title=\"defer | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/defer/feed.json title=\"defer | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/defer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Defer</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>defer <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/defer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/defer/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>defer - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/defer/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/defer/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>script 的三种加载方式 (async, defer)</title><link>https://lruihao.cn/posts/async-defer/</link><pubDate>Sun, 08 Sep 2019 11:47:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/async-defer/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition note open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"&gt;&lt;/i&gt;注意&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;JS 的加载分为两个部分：下载和执行。&lt;br&gt;\n浏览器在执行 HTML 的时候如果遇到&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见&lt;code&gt;&amp;lt;/scirpt&amp;gt;&lt;/code&gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/defer/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/defer/</title><link rel=canonical href=https://lruihao.cn/tags/defer/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/defer/\"></head></html>"
  },
  {
    "path": "tags/design-patterns/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Design Patterns - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"架构之基：从根儿上了解设计原则\",\"date_published\":\"2024-06-09T02:24:31&#43;08:00\",\"date_modified\":\"2024-06-09T02:57:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/design-principles/\",\"url\":\"https://lruihao.cn/posts/design-principles/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Design Patterns\",\"Java\"],\"summary\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\",\"content_html\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"}]}"
  },
  {
    "path": "tags/design-patterns/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Design Patterns - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Design Patterns\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-09T02:24:31+08:00\"><meta itemprop=dateModified content=\"2024-06-09T02:57:55+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/design-patterns/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Design Patterns\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Design Patterns\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/design-patterns/ title=\"Design Patterns | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/design-patterns/index.xml title=\"Design Patterns | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/design-patterns/feed.json title=\"Design Patterns | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/design-patterns/feed.json title=\"Design Patterns | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/design-patterns/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Design Patterns</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Design Patterns <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a>\n<span class=archive-item-date title='2024-06-09 02:24:31'>06-09</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/design-patterns/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/design-patterns/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Design Patterns - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/design-patterns/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 09 Jun 2024 02:57:55 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/design-patterns/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>架构之基：从根儿上了解设计原则</title><link>https://lruihao.cn/posts/design-principles/</link><pubDate>Sun, 09 Jun 2024 02:24:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/design-principles/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</description></item></channel></rss>"
  },
  {
    "path": "tags/design-patterns/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/design-patterns/</title><link rel=canonical href=https://lruihao.cn/tags/design-patterns/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/design-patterns/\"></head></html>"
  },
  {
    "path": "tags/dfs/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"DFS - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/dfs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>DFS - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"DFS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-22T11:58:14+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/dfs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"DFS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"DFS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/dfs/ title=\"DFS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/dfs/index.xml title=\"DFS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/dfs/feed.json title=\"DFS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/dfs/feed.json title=\"DFS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/dfs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>DFS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>DFS <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/dfs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/dfs/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>DFS - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/dfs/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/dfs/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/dfs/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/dfs/</title><link rel=canonical href=https://lruihao.cn/tags/dfs/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/dfs/\"></head></html>"
  },
  {
    "path": "tags/documentation/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"documentation - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/documentation/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>documentation - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"documentation\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-07-23T12:17:06+00:00\"><meta itemprop=dateModified content=\"2026-05-06T14:32:49+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/documentation/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"documentation\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"documentation\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/documentation/ title=\"documentation | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/documentation/index.xml title=\"documentation | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/documentation/feed.json title=\"documentation | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/documentation/feed.json title=\"documentation | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/documentation/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Documentation</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>documentation <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/documentation/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/documentation/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>documentation - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/documentation/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 14:32:49 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/documentation/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/documentation/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/documentation/</title><link rel=canonical href=https://lruihao.cn/tags/documentation/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/documentation/\"></head></html>"
  },
  {
    "path": "tags/drop-shadow/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"drop-shadow - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"现代 CSS 解决方案之异形元素怎么设置阴影？\",\"date_published\":\"2024-07-15T10:40:12&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/drop-shadow/\",\"url\":\"https://lruihao.cn/posts/drop-shadow/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"drop-shadow\",\"box-shadow\"],\"summary\":\"今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\n\",\"content_html\":\"\\u003cp\\u003e今天记录一个 CSS 小知识点，如何给异形元素设置阴影。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/drop-shadow/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>drop-shadow - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"drop-shadow\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-15T10:40:12+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/drop-shadow/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"drop-shadow\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"drop-shadow\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/drop-shadow/ title=\"drop-shadow | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/drop-shadow/index.xml title=\"drop-shadow | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/drop-shadow/feed.json title=\"drop-shadow | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/drop-shadow/feed.json title=\"drop-shadow | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/drop-shadow/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Drop-Shadow</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>drop-shadow <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/drop-shadow/ class=archive-item-link>异形元素怎么设置阴影？</a>\n<span class=archive-item-date title='2024-07-15 10:40:12'>07-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/drop-shadow/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/drop-shadow/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>drop-shadow - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/drop-shadow/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 17:12:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/drop-shadow/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>现代 CSS 解决方案之异形元素怎么设置阴影？</title><link>https://lruihao.cn/posts/drop-shadow/</link><pubDate>Mon, 15 Jul 2024 10:40:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/drop-shadow/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;今天记录一个 CSS 小知识点，如何给异形元素设置阴影。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/drop-shadow/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/drop-shadow/</title><link rel=canonical href=https://lruihao.cn/tags/drop-shadow/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/drop-shadow/\"></head></html>"
  },
  {
    "path": "tags/eager/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"eager - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/eager/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>eager - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"eager\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-12T19:40:43+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/eager/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"eager\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"eager\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/eager/ title=\"eager | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/eager/index.xml title=\"eager | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/eager/feed.json title=\"eager | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/eager/feed.json title=\"eager | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/eager/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Eager</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>eager <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/eager/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/eager/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>eager - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/eager/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/eager/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/eager/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/eager/</title><link rel=canonical href=https://lruihao.cn/tags/eager/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/eager/\"></head></html>"
  },
  {
    "path": "tags/eclipse/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"eclipse - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"eclipse 的基本使用\",\"date_published\":\"2019-03-15T23:47:24&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/eclipseuse/\",\"url\":\"https://lruihao.cn/posts/eclipseuse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"eclipse\",\"Java\"],\"summary\":\"9 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击）12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本使用\\\"\\u003e\\u003cspan\\u003e9 基本使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 选择一个工作空间\\n  D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\\n  a: 创建项目（工程）\\n    *File -- New -- Java Project\\n    *在左边空白处，直接右键 -- New -- Java Project\\n\\n    键入项目名称后直接 Finish。\\n  b: 所有的 java 文件必须写到 src 下面才有效\\n  c: 创建一个包\\n    cn.lruihao\\n  d: 在包下创建一个类\\n    HelloWorld\\n\\n    同时让它帮我们写好了 main 方法。\\n  e: 在 main 方法中写内容即可\\n  f: 编译程序\\n    自动编译，在保存的那一刻帮你做好了\\n  g: 运行程序\\n    选择要运行的文件或者在要运行的文件内容中\\n    右键 -- Run as - Java Application 即可\\n  h: 内容显示\\n    在 Console 控制台显示内容\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-的基本设置\\\"\\u003e\\u003cspan\\u003e10 Eclipse 的基本设置\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\\nB: 去掉默认注释（可以不用改）\\nC: 行号的显示和隐藏\\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\\n  隐藏：把上面的动作再做一次。\\nD: 字体大小及颜色\\n  a:Java 代码区域的字体大小和颜色：\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\\n  b: 控制台\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\\n  c: 其他文件\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\\nE: 窗体给弄乱了，怎么办\\n  window -- Reset Perspective\\nF: 控制台找不到了\\n  Window--Show View—Console\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快捷键的使用\\\"\\u003e\\u003cspan\\u003e11 快捷键的使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 内容辅助键\\n  Alt+/ 起提示作用\\n  main+alt+/,syso+alt+/, 给出其他提示\\nB: 快捷键\\n  格式化  ctrl+shift+f\\n  导入包  ctrl+shift+o\\n  注释  ctrl+/\\n    ctrl+shift+/,ctrl+shift+\\\\\\n  代码上下移动 选中代码 alt+上/下箭头\\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-中如何提高开发效率\\\"\\u003e\\u003cspan\\u003e12 Eclipse 中如何提高开发效率\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 自动生成构造方法\\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\\nB: 自动生成 get/set 方法\\n  在代码区域右键--source--Generate Getters and Setters...\\u003c/code\\u003e\\u003c/pre\\u003e\"}]}"
  },
  {
    "path": "tags/eclipse/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>eclipse - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"eclipse\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-15T23:47:24+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/eclipse/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"eclipse\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"eclipse\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/eclipse/ title=\"eclipse | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/eclipse/index.xml title=\"eclipse | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/eclipse/feed.json title=\"eclipse | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/eclipse/feed.json title=\"eclipse | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/eclipse/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Eclipse</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>eclipse <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/eclipseuse/ class=archive-item-link>Eclipse 的基本使用</a>\n<span class=archive-item-date title='2019-03-15 23:47:24'>03-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/eclipse/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/eclipse/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>eclipse - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/eclipse/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/eclipse/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>eclipse 的基本使用</title><link>https://lruihao.cn/posts/eclipseuse/</link><pubDate>Fri, 15 Mar 2019 23:47:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/eclipseuse/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"基本使用\"&gt;&lt;span&gt;13 基本使用&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n a: 创建项目（工程）\n *File -- New -- Java Project\n *在左边空白处，直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译，在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-的基本设置\"&gt;&lt;span&gt;14 Eclipse 的基本设置&lt;/span&gt;\n &lt;a href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\nB: 去掉默认注释（可以不用改）\nC: 行号的显示和隐藏\n 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\n 隐藏：把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色：\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了，怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快捷键的使用\"&gt;&lt;span&gt;15 快捷键的使用&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 内容辅助键\n Alt&amp;#43;/ 起提示作用\n main&amp;#43;alt&amp;#43;/,syso&amp;#43;alt&amp;#43;/, 给出其他提示\nB: 快捷键\n 格式化 ctrl&amp;#43;shift&amp;#43;f\n 导入包 ctrl&amp;#43;shift&amp;#43;o\n 注释 ctrl&amp;#43;/\n ctrl&amp;#43;shift&amp;#43;/,ctrl&amp;#43;shift&amp;#43;\\\n 代码上下移动 选中代码 alt&amp;#43;上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl&amp;#43;鼠标点击）&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"&gt;&lt;span&gt;16 Eclipse 中如何提高开发效率&lt;/span&gt;\n &lt;a href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/eclipse/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/eclipse/</title><link rel=canonical href=https://lruihao.cn/tags/eclipse/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/eclipse/\"></head></html>"
  },
  {
    "path": "tags/editor/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"editor - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/editor/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>editor - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"editor\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-10-10T02:50:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/editor/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"editor\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"editor\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/editor/ title=\"editor | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/editor/index.xml title=\"editor | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/editor/feed.json title=\"editor | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/editor/feed.json title=\"editor | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/editor/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Editor</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>editor <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/editor/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/editor/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>editor - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/editor/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:16 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/editor/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/editor/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/editor/</title><link rel=canonical href=https://lruihao.cn/tags/editor/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/editor/\"></head></html>"
  },
  {
    "path": "tags/el-table/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"el-table - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/el-table/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>el-table - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"el-table\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/el-table/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"el-table\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"el-table\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/el-table/ title=\"el-table | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/el-table/index.xml title=\"el-table | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/el-table/feed.json title=\"el-table | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/el-table/feed.json title=\"el-table | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/el-table/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>El-Table</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>el-table <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/el-table/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/el-table/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>el-table - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/el-table/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/el-table/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/el-table/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/el-table/</title><link rel=canonical href=https://lruihao.cn/tags/el-table/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/el-table/\"></head></html>"
  },
  {
    "path": "tags/el-table-sticky/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"el-table-sticky - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/el-table-sticky/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>el-table-sticky - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"el-table-sticky\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/el-table-sticky/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"el-table-sticky\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"el-table-sticky\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/el-table-sticky/ title=\"el-table-sticky | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/el-table-sticky/index.xml title=\"el-table-sticky | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/el-table-sticky/feed.json title=\"el-table-sticky | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/el-table-sticky/feed.json title=\"el-table-sticky | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/el-table-sticky/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>El-Table-Sticky</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>el-table-sticky <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/el-table-sticky/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/el-table-sticky/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>el-table-sticky - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/el-table-sticky/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/el-table-sticky/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/el-table-sticky/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/el-table-sticky/</title><link rel=canonical href=https://lruihao.cn/tags/el-table-sticky/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/el-table-sticky/\"></head></html>"
  },
  {
    "path": "tags/electron/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"electron - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"electron 踩坑总结\",\"date_published\":\"2022-08-12T11:22:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/electron-summary/\",\"url\":\"https://lruihao.cn/posts/electron-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"electron\"],\"image\":\"https://lruihao.cn/posts/electron-summary/images/featured-image.png\",\"summary\":\"总结一下最近 electron 开发遇到的问题和一些重要知识点。\\n\",\"content_html\":\"\\u003cp\\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/electron/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>electron - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"electron\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-12T11:22:01+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/electron/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"electron\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"electron\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/electron/ title=\"electron | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/electron/index.xml title=\"electron | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/electron/feed.json title=\"electron | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/electron/feed.json title=\"electron | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/electron/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Electron</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>electron <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/electron-summary/ class=archive-item-link>Electron 踩坑总结</a>\n<span class=archive-item-date title='2022-08-12 11:22:01'>08-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/electron/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/electron/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>electron - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/electron/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/electron/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>electron 踩坑总结</title><link>https://lruihao.cn/posts/electron-summary/</link><pubDate>Fri, 12 Aug 2022 11:22:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/electron-summary/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;总结一下最近 electron 开发遇到的问题和一些重要知识点。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/electron/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/electron/</title><link rel=canonical href=https://lruihao.cn/tags/electron/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/electron/\"></head></html>"
  },
  {
    "path": "tags/element-ui/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"element-ui - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/element-ui/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>element-ui - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"element-ui\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-08-08T01:41:08+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:21+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/element-ui/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"element-ui\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"element-ui\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/element-ui/ title=\"element-ui | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/element-ui/index.xml title=\"element-ui | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/element-ui/feed.json title=\"element-ui | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/element-ui/feed.json title=\"element-ui | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/element-ui/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Element-Ui</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>element-ui <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:21'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/element-ui/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/element-ui/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>element-ui - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/element-ui/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:21 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/element-ui/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/element-ui/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/element-ui/</title><link rel=canonical href=https://lruihao.cn/tags/element-ui/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/element-ui/\"></head></html>"
  },
  {
    "path": "tags/english/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"English - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"写文档时英文标题什么时候要大写？\",\"date_published\":\"2024-03-26T12:23:44&#43;08:00\",\"date_modified\":\"2024-04-02T21:13:59&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c6bc2d5/\",\"url\":\"https://lruihao.cn/posts/c6bc2d5/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle，默认情况下，Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\\n但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\n经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，“出版物中，英文什么时候要大写？ ”。\\n\",\"content_html\":\"\\u003cp\\u003e对于本文的标题的思考来自于 \\u003ca href=\\\"https://gohugo.io/getting-started/configuration/#titlecasestyle\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e中的一个配置 \\u003ccode\\u003etitleCaseStyle\\u003c/code\\u003e，默认情况下，Hugo 在创建自动章节标题以及使用 \\u003ccode\\u003estrings.Title\\u003c/code\\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\\u003c/p\\u003e\\n\\u003cp\\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。\\u003c/p\\u003e\\n\\u003cp\\u003e经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，\\u003ca href=\\\"https://pub.bnu.edu.cn/jzyg1/72203.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“出版物中，英文什么时候要大写？ ”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"英语语法--主谓一致\",\"date_published\":\"2019-01-12T13:02:49&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subject-verb/\",\"url\":\"https://lruihao.cn/posts/subject-verb/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 1 常见情况 1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后，所以谓语动词用复数 1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数 比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常见情况\\\"\\u003e\\u003cspan\\u003e1 常见情况\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\\\"\\u003e\\u003cspan\\u003e1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003eEnglish \\u003cu\\u003eand\\u003c/u\\u003e chinese are two quite different languages.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eBoth\\u003c/u\\u003e brother \\u003cu\\u003eand\\u003c/u\\u003e sister tire of city life.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eNo\\u003c/u\\u003e desk \\u003cu\\u003eand\\u003c/u\\u003e (no) chair is seen in the hall.\\u003c/li\\u003e\\n\\u003cli\\u003eAll work \\u003cu\\u003eand\\u003c/u\\u003e \\u003cu\\u003eno\\u003c/u\\u003e play makes Jack a dull boy.\\u003c/li\\u003e\\n\\u003cli\\u003eThey each have been to the Forbidden city.\\neach 位于主语后，所以谓语动词用复数\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\\\"\\u003e\\u003cspan\\u003e1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\\u003c/p\\u003e\"},{\"title\":\"英语语法--形式倒装\",\"date_published\":\"2018-12-10T21:52:30&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-3/\",\"url\":\"https://lruihao.cn/posts/inversion-3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 形式倒装，句子本不是本来的语序。\\n0.1 may 位于句首，标祝愿 例句\\nMay you succeed. May you have a happy holiday. Long live chairman Mao.（毛主席万古长青） 0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前 例句\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e形式倒装，句子本不是本来的语序。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"may-位于句首标祝愿\\\"\\u003e\\u003cspan\\u003e0.1 may 位于句首，标祝愿\\u003c/span\\u003e\\n  \\u003ca href=\\\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMay you succeed.\\u003c/li\\u003e\\n\\u003cli\\u003eMay you have a happy holiday.\\u003c/li\\u003e\\n\\u003cli\\u003eLong live chairman Mao.（毛主席万古长青）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\\\"\\u003e\\u003cspan\\u003e0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前\\u003c/span\\u003e\\n  \\u003ca href=\\\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\"},{\"title\":\"英语语法--完全倒装\",\"date_published\":\"2018-12-10T21:14:51&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-2/\",\"url\":\"https://lruihao.cn/posts/inversion-2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 完全倒装：把整个谓语动词放到主语前。\\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e完全倒装：把整个谓语动词放到主语前。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"表方位或时间的副词-adv表地点的介词短语位于句首时\\\"\\u003e\\u003cspan\\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e例句\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eHere comes the bus.\\u003c/li\\u003e\\n\\u003cli\\u003eIn the lecture hall of a university sits a professor.\\u003c/li\\u003e\\n\\u003cli\\u003eOut rushed the children.\\u003c/li\\u003e\\n\\u003cli\\u003eNow comes your turn.\\u003c/li\\u003e\\n\\u003cli\\u003eUp jumped the cat and caught the mouse.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cu\\u003eDown\\u003c/u\\u003e came the rain and \\u003cu\\u003eup\\u003c/u\\u003e went the umbrellas.\\u003c/li\\u003e\\n\\u003cli\\u003eAmong the people stood his friend,Jim.\\u003c/li\\u003e\\n\\u003cli\\u003e(To be) South of the river lies a small factory.\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e但主语为表示人称的代词时无需倒装\\u003c/p\\u003e\"},{\"title\":\"英语语法--部分倒装\",\"date_published\":\"2018-12-08T17:52:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/inversion-1/\",\"url\":\"https://lruihao.cn/posts/inversion-1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"English\"],\"summary\":\" 虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。以下内容纯手打！！ 先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。\\u003cstrong\\u003e以下内容纯手打！！\\u003c/strong\\u003e\\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/english/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>English - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"English\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-03-26T12:23:44+08:00\"><meta itemprop=dateModified content=\"2024-04-02T21:13:59+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/english/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"English\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"English\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/english/ title=\"English | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/english/index.xml title=\"English | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/english/feed.json title=\"English | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/english/feed.json title=\"English | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/english/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>English</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>English <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/c6bc2d5/ class=archive-item-link>写文档时英文标题什么时候要大写？</a>\n<span class=archive-item-date title='2024-03-26 12:23:44'>03-26</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/subject-verb/ class=archive-item-link>英语语法--主谓一致</a>\n<span class=archive-item-date title='2019-01-12 13:02:49'>01-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/inversion-3/ class=archive-item-link>英语语法--形式倒装</a>\n<span class=archive-item-date title='2018-12-10 21:52:30'>12-10</span></article><article class=archive-item><a href=/posts/inversion-2/ class=archive-item-link>英语语法--完全倒装</a>\n<span class=archive-item-date title='2018-12-10 21:14:51'>12-10</span></article><article class=archive-item><a href=/posts/inversion-1/ class=archive-item-link>英语语法--部分倒装</a>\n<span class=archive-item-date title='2018-12-08 17:52:39'>12-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/english/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/english/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>English - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/english/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 02 Apr 2024 21:13:59 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/english/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>写文档时英文标题什么时候要大写？</title><link>https://lruihao.cn/posts/c6bc2d5/</link><pubDate>Tue, 26 Mar 2024 12:23:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c6bc2d5/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;对于本文的标题的思考来自于 &lt;a href=\"https://gohugo.io/getting-started/configuration/#titlecasestyle\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;中的一个配置 &lt;code&gt;titleCaseStyle&lt;/code&gt;，默认情况下，Hugo 在创建自动章节标题以及使用 &lt;code&gt;strings.Title&lt;/code&gt; 函数转换字符串时遵循美联社样本中发布的大小写规则。&lt;/p&gt;\n&lt;p&gt;但是这似乎和我高中所学的英文标题大小写规则有所出入，我记得我的高中英语老师教的是虚词不需要大写的，而不是美联社风格的每个单词都首字母大写。&lt;/p&gt;\n&lt;p&gt;经过一番查阅，以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章，&lt;a href=\"https://pub.bnu.edu.cn/jzyg1/72203.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“出版物中，英文什么时候要大写？ ”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>英语语法--主谓一致</title><link>https://lruihao.cn/posts/subject-verb/</link><pubDate>Sat, 12 Jan 2019 13:02:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subject-verb/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"常见情况\"&gt;&lt;span&gt;1 常见情况&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\"&gt;&lt;span&gt;1.1 由 and 或 both and 连接的并列主语，谓语动词一般用复数&lt;/span&gt;\n &lt;a href=\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;English &lt;u&gt;and&lt;/u&gt; chinese are two quite different languages.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Both&lt;/u&gt; brother &lt;u&gt;and&lt;/u&gt; sister tire of city life.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\"&gt;&lt;span&gt;1.2 一但主语前被 no,every,each 所修饰时，谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;&lt;u&gt;No&lt;/u&gt; desk &lt;u&gt;and&lt;/u&gt; (no) chair is seen in the hall.&lt;/li&gt;\n&lt;li&gt;All work &lt;u&gt;and&lt;/u&gt; &lt;u&gt;no&lt;/u&gt; play makes Jack a dull boy.&lt;/li&gt;\n&lt;li&gt;They each have been to the Forbidden city.\neach 位于主语后，所以谓语动词用复数&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"&gt;&lt;span&gt;1.3 当主语表示同一事物的两个部分，同一个人的两个身份（第二个名词前无冠词），谓语动词用单数&lt;/span&gt;\n &lt;a href=\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;比如 the（a）horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread&lt;/p&gt;</description></item><item><title>英语语法--形式倒装</title><link>https://lruihao.cn/posts/inversion-3/</link><pubDate>Mon, 10 Dec 2018 21:52:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;形式倒装，句子本不是本来的语序。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"may-位于句首标祝愿\"&gt;&lt;span&gt;0.1 may 位于句首，标祝愿&lt;/span&gt;\n &lt;a href=\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;May you succeed.&lt;/li&gt;\n&lt;li&gt;May you have a happy holiday.&lt;/li&gt;\n&lt;li&gt;Long live chairman Mao.（毛主席万古长青）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"&gt;&lt;span&gt;0.2 whatever 直接做成分或放在名词之前，however 放在 adv,adj 之前或 many,much 等词之前&lt;/span&gt;\n &lt;a href=\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>英语语法--完全倒装</title><link>https://lruihao.cn/posts/inversion-2/</link><pubDate>Mon, 10 Dec 2018 21:14:51 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;完全倒装：把整个谓语动词放到主语前。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"表方位或时间的副词-adv表地点的介词短语位于句首时\"&gt;&lt;span&gt;0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时&lt;/span&gt;\n &lt;a href=\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;例句&lt;/strong&gt;&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;Here comes the bus.&lt;/li&gt;\n&lt;li&gt;In the lecture hall of a university sits a professor.&lt;/li&gt;\n&lt;li&gt;Out rushed the children.&lt;/li&gt;\n&lt;li&gt;Now comes your turn.&lt;/li&gt;\n&lt;li&gt;Up jumped the cat and caught the mouse.&lt;/li&gt;\n&lt;li&gt;&lt;u&gt;Down&lt;/u&gt; came the rain and &lt;u&gt;up&lt;/u&gt; went the umbrellas.&lt;/li&gt;\n&lt;li&gt;Among the people stood his friend,Jim.&lt;/li&gt;\n&lt;li&gt;(To be) South of the river lies a small factory.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;但主语为表示人称的代词时无需倒装&lt;/p&gt;</description></item><item><title>英语语法--部分倒装</title><link>https://lruihao.cn/posts/inversion-1/</link><pubDate>Sat, 08 Dec 2018 17:52:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/inversion-1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;虽然我英语四级没过，词汇量也不很多，甚至下降了很多，但是对于英语的语法我还是很喜欢的，马上快四级了又，复习整理一下以前的语法笔记。&lt;strong&gt;以下内容纯手打！！&lt;/strong&gt;\n先从倒装句开始吧！分为三大类，部分倒装，完全倒装和形式倒装。先复习第一种。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/english/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/english/</title><link rel=canonical href=https://lruihao.cn/tags/english/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/english/\"></head></html>"
  },
  {
    "path": "tags/eruda/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"eruda - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/eruda/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>eruda - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"eruda\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-08-07T05:49:13+00:00\"><meta itemprop=dateModified content=\"2025-07-04T02:38:28+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/eruda/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"eruda\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"eruda\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/eruda/ title=\"eruda | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/eruda/index.xml title=\"eruda | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/eruda/feed.json title=\"eruda | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/eruda/feed.json title=\"eruda | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/eruda/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Eruda</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>eruda <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/eruda/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/eruda/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>eruda - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/eruda/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 04 Jul 2025 02:38:28 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/eruda/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/eruda/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/eruda/</title><link rel=canonical href=https://lruihao.cn/tags/eruda/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/eruda/\"></head></html>"
  },
  {
    "path": "tags/es6/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ES6 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"重新认识 JavaScript\",\"date_published\":\"2022-05-01T10:59:36&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-rediscover/\",\"url\":\"https://lruihao.cn/posts/js-rediscover/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"ES6\"],\"summary\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e前言\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\u003c/p\\u003e\\n\\u003cp\\u003e每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/es6/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ES6 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ES6\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-05-01T10:59:36+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/es6/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ES6\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ES6\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/es6/ title=\"ES6 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/es6/index.xml title=\"ES6 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/es6/feed.json title=\"ES6 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/es6/feed.json title=\"ES6 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/es6/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ES6</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ES6 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/js-rediscover/ class=archive-item-link>重新认识 JavaScript</a>\n<span class=archive-item-date title='2022-05-01 10:59:36'>05-01</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/es6/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/es6/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ES6 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/es6/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/es6/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>重新认识 JavaScript</title><link>https://lruihao.cn/posts/js-rediscover/</link><pubDate>Sun, 01 May 2022 10:59:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-rediscover/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;前言&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。&lt;/p&gt;\n&lt;p&gt;每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/es6/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/es6/</title><link rel=canonical href=https://lruihao.cn/tags/es6/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/es6/\"></head></html>"
  },
  {
    "path": "tags/eslint/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"eslint - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/eslint/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>eslint - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"eslint\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-03T17:38:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/eslint/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"eslint\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"eslint\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/eslint/ title=\"eslint | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/eslint/index.xml title=\"eslint | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/eslint/feed.json title=\"eslint | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/eslint/feed.json title=\"eslint | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/eslint/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Eslint</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>eslint <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/eslint/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/eslint/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>eslint - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/eslint/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/eslint/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/eslint/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/eslint/</title><link rel=canonical href=https://lruihao.cn/tags/eslint/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/eslint/\"></head></html>"
  },
  {
    "path": "tags/euler/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"euler - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"}]}"
  },
  {
    "path": "tags/euler/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>euler - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"euler\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-08T17:10:07+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/euler/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"euler\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"euler\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/euler/ title=\"euler | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/euler/index.xml title=\"euler | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/euler/feed.json title=\"euler | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/euler/feed.json title=\"euler | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/euler/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Euler</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>euler <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/euler/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/euler/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>euler - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/euler/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/euler/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/euler/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/euler/</title><link rel=canonical href=https://lruihao.cn/tags/euler/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/euler/\"></head></html>"
  },
  {
    "path": "tags/feed/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"feed - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/feed/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>feed - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"feed\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-08-22T03:29:22+00:00\"><meta itemprop=dateModified content=\"2025-12-20T06:45:59+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/feed/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"feed\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"feed\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/feed/ title=\"feed | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/feed/index.xml title=\"feed | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/feed/feed.json title=\"feed | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/feed/feed.json title=\"feed | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/feed/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Feed</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>feed <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/feed/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/feed/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>feed - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/feed/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 20 Dec 2025 06:45:59 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/feed/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/feed/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/feed/</title><link rel=canonical href=https://lruihao.cn/tags/feed/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/feed/\"></head></html>"
  },
  {
    "path": "tags/fixit/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"FixIt - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"},{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/fixit/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>FixIt - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"FixIt\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/fixit/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"FixIt\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"FixIt\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/fixit/ title=\"FixIt | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/fixit/index.xml title=\"FixIt | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/fixit/feed.json title=\"FixIt | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/fixit/feed.json title=\"FixIt | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/fixit/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>FixIt</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>FixIt <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title='2023-11-28 10:48:07'>11-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/fixit/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/fixit/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>FixIt - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/fixit/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/fixit/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item><item><title>用 Node.js 开发一个轻量脚手架</title><link>https://lruihao.cn/projects/fixit-cli/</link><pubDate>Tue, 28 Nov 2023 10:48:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;本文将介绍如何用 Node.js 开发一个轻量脚手架，以 &lt;a href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit-cli&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 为例。&lt;/p&gt;</description></item><item><title>Hugo I18n 添加中文繁體翻譯</title><link>https://lruihao.cn/posts/hugo-i18n-zh-tw/</link><pubDate>Tue, 05 Oct 2021 19:14:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-i18n-zh-tw/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/fixit/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/fixit/</title><link rel=canonical href=https://lruihao.cn/tags/fixit/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/fixit/\"></head></html>"
  },
  {
    "path": "tags/fixit-cli/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"fixit-cli - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/fixit-cli/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>fixit-cli - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"fixit-cli\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-11-20T06:40:09+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:22+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/fixit-cli/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"fixit-cli\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"fixit-cli\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/fixit-cli/ title=\"fixit-cli | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/fixit-cli/index.xml title=\"fixit-cli | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/fixit-cli/feed.json title=\"fixit-cli | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/fixit-cli/feed.json title=\"fixit-cli | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/fixit-cli/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Fixit-Cli</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>fixit-cli <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/fixit-cli/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/fixit-cli/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>fixit-cli - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/fixit-cli/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:22 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/fixit-cli/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/fixit-cli/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/fixit-cli/</title><link rel=canonical href=https://lruihao.cn/tags/fixit-cli/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/fixit-cli/\"></head></html>"
  },
  {
    "path": "tags/fixit-docs-bookmark/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"fixit-docs-bookmark - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/fixit-docs-bookmark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>fixit-docs-bookmark - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"fixit-docs-bookmark\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-14T07:39:56+00:00\"><meta itemprop=dateModified content=\"2025-12-27T08:36:41+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/fixit-docs-bookmark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"fixit-docs-bookmark\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"fixit-docs-bookmark\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/fixit-docs-bookmark/ title=\"fixit-docs-bookmark | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/fixit-docs-bookmark/index.xml title=\"fixit-docs-bookmark | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/fixit-docs-bookmark/feed.json title=\"fixit-docs-bookmark | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/fixit-docs-bookmark/feed.json title=\"fixit-docs-bookmark | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/fixit-docs-bookmark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Fixit-Docs-Bookmark</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>fixit-docs-bookmark <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/fixit-docs-bookmark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/fixit-docs-bookmark/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>fixit-docs-bookmark - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/fixit-docs-bookmark/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 27 Dec 2025 08:36:41 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/fixit-docs-bookmark/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/fixit-docs-bookmark/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/fixit-docs-bookmark/</title><link rel=canonical href=https://lruihao.cn/tags/fixit-docs-bookmark/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/fixit-docs-bookmark/\"></head></html>"
  },
  {
    "path": "tags/flexbox/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Flexbox - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"CSS Flexbox 布局指南\",\"date_published\":\"2025-01-20T15:56:38&#43;08:00\",\"date_modified\":\"2025-01-20T17:49:35&#43;08:00\",\"id\":\"https://lruihao.cn/posts/flexbox/\",\"url\":\"https://lruihao.cn/posts/flexbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Flexbox\"],\"image\":\"https://lruihao.cn/posts/flexbox/images/featured-image.webp\",\"summary\":\"本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\n\",\"content_html\":\"\\u003cp\\u003e本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/flexbox/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Flexbox - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Flexbox\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-01-20T15:56:38+08:00\"><meta itemprop=dateModified content=\"2025-01-20T17:49:35+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/flexbox/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Flexbox\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Flexbox\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/flexbox/ title=\"Flexbox | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/flexbox/index.xml title=\"Flexbox | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/flexbox/feed.json title=\"Flexbox | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/flexbox/feed.json title=\"Flexbox | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/flexbox/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Flexbox</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Flexbox <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/flexbox/ class=archive-item-link>CSS Flexbox 布局指南</a>\n<span class=archive-item-date title='2025-01-20 15:56:38'>01-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/flexbox/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/flexbox/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Flexbox - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/flexbox/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 20 Jan 2025 17:49:35 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/flexbox/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>CSS Flexbox 布局指南</title><link>https://lruihao.cn/posts/flexbox/</link><pubDate>Mon, 20 Jan 2025 15:56:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/flexbox/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本指南完整解释了弹性盒子（Flexible Box）的所有内容，重点介绍了父元素（弹性容器）和子元素（弹性项目）的所有不同可能属性。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/flexbox/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/flexbox/</title><link rel=canonical href=https://lruihao.cn/tags/flexbox/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/flexbox/\"></head></html>"
  },
  {
    "path": "tags/font/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"font - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/font/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>font - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"font\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-09-26T12:44:17+00:00\"><meta itemprop=dateModified content=\"2025-08-06T09:23:14+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/font/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"font\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"font\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/font/ title=\"font | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/font/index.xml title=\"font | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/font/feed.json title=\"font | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/font/feed.json title=\"font | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/font/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Font</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>font <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/mmt/ class=archive-item-link>Lruihao/MMT</a>\n<span class=archive-item-date title='2019-09-26 12:44:17'>09-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/font/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/font/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>font - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/font/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 Aug 2025 09:23:14 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/font/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>沐目之，湘也。— 沐目体</title><link>https://lruihao.cn/projects/lruihao/mmt/</link><pubDate>Thu, 26 Sep 2019 12:44:17 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/font/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/font/</title><link rel=canonical href=https://lruihao.cn/tags/font/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/font/\"></head></html>"
  },
  {
    "path": "tags/front-end/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"front-end - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/front-end/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>front-end - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"front-end\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-09-08T12:52:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:13+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/front-end/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"front-end\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"front-end\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/front-end/ title=\"front-end | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/front-end/index.xml title=\"front-end | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/front-end/feed.json title=\"front-end | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/front-end/feed.json title=\"front-end | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/front-end/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Front-End</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>front-end <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/front-end/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/front-end/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>front-end - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/front-end/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:13 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/front-end/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/front-end/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/front-end/</title><link rel=canonical href=https://lruihao.cn/tags/front-end/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/front-end/\"></head></html>"
  },
  {
    "path": "tags/frontend/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"frontend - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/frontend/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>frontend - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"frontend\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/frontend/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"frontend\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"frontend\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/frontend/ title=\"frontend | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/frontend/index.xml title=\"frontend | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/frontend/feed.json title=\"frontend | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/frontend/feed.json title=\"frontend | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/frontend/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Frontend</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>frontend <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/frontend/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/frontend/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>frontend - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/frontend/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/frontend/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/frontend/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/frontend/</title><link rel=canonical href=https://lruihao.cn/tags/frontend/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/frontend/\"></head></html>"
  },
  {
    "path": "tags/fusion/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"fusion - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博採眾長 app\",\"date_published\":\"2018-11-12T16:04:04&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fas-app/\",\"url\":\"https://lruihao.cn/posts/fas-app/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"lua\",\"fusion\"],\"summary\":\"0.7 介绍 使用 fusion app 对网页进行的封装。\\n功能：\\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"介绍\\\"\\u003e\\u003cspan\\u003e0.7 介绍\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bb%8b%e7%bb%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e使用 fusion app 对网页进行的封装。\\u003cbr\\u003e\\n功能：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e浏览本博客，主页\\u003c/li\\u003e\\n\\u003cli\\u003e私人网盘\\u003c/li\\u003e\\n\\u003cli\\u003e2048 等小游戏\\u003c/li\\u003e\\n\\u003cli\\u003e在线客服，QQ 等\\u003c/li\\u003e\\n\\u003cli\\u003epc 与移动浏览器标识切换\\u003c/li\\u003e\\n\\u003cli\\u003e留言，打赏，博主日志等\\u003c/li\\u003e\\n\\u003cli\\u003e分享功能，分享到 QQ，微信，浏览器打开等\\u003c/li\\u003e\\n\\u003cli\\u003eapp 内添加书签，自动记录历史记录，刷新等\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e配合博客的\\u003ccode\\u003ePWA + quicklink\\u003c/code\\u003e功能可实现离线浏览\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "tags/fusion/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>fusion - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"fusion\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-11-12T16:04:04+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/fusion/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"fusion\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"fusion\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/fusion/ title=\"fusion | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/fusion/index.xml title=\"fusion | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/fusion/feed.json title=\"fusion | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/fusion/feed.json title=\"fusion | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/fusion/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Fusion</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>fusion <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/fas-app/ class=archive-item-link>博採眾長 App</a>\n<span class=archive-item-date title='2018-11-12 16:04:04'>11-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/fusion/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/fusion/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>fusion - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/fusion/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/fusion/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博採眾長 app</title><link>https://lruihao.cn/posts/fas-app/</link><pubDate>Mon, 12 Nov 2018 16:04:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fas-app/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"介绍\"&gt;&lt;span&gt;0.10 介绍&lt;/span&gt;\n &lt;a href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;使用 fusion app 对网页进行的封装。&lt;br&gt;\n功能：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;浏览本博客，主页&lt;/li&gt;\n&lt;li&gt;私人网盘&lt;/li&gt;\n&lt;li&gt;2048 等小游戏&lt;/li&gt;\n&lt;li&gt;在线客服，QQ 等&lt;/li&gt;\n&lt;li&gt;pc 与移动浏览器标识切换&lt;/li&gt;\n&lt;li&gt;留言，打赏，博主日志等&lt;/li&gt;\n&lt;li&gt;分享功能，分享到 QQ，微信，浏览器打开等&lt;/li&gt;\n&lt;li&gt;app 内添加书签，自动记录历史记录，刷新等&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;配合博客的&lt;code&gt;PWA + quicklink&lt;/code&gt;功能可实现离线浏览&lt;/strong&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/fusion/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/fusion/</title><link rel=canonical href=https://lruihao.cn/tags/fusion/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/fusion/\"></head></html>"
  },
  {
    "path": "tags/giscus/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"giscus - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/giscus/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>giscus - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"giscus\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/giscus/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"giscus\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"giscus\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/giscus/ title=\"giscus | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/giscus/index.xml title=\"giscus | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/giscus/feed.json title=\"giscus | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/giscus/feed.json title=\"giscus | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/giscus/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Giscus</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>giscus <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/giscus/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/giscus/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>giscus - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/giscus/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/giscus/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/giscus/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/giscus/</title><link rel=canonical href=https://lruihao.cn/tags/giscus/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/giscus/\"></head></html>"
  },
  {
    "path": "tags/git/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Git - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Git 统计代码量\",\"date_published\":\"2024-07-17T16:06:08&#43;08:00\",\"date_modified\":\"2024-07-17T18:34:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-summary/\",\"url\":\"https://lruihao.cn/posts/git-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"使用 Git 命令统计在某段时间内项目中的代码量。\\n\",\"content_html\":\"\\u003cp\\u003e使用 Git 命令统计在某段时间内项目中的代码量。\\u003c/p\\u003e\"},{\"title\":\"git submodule: already exists in the index\",\"date_published\":\"2024-01-11T10:30:04&#43;08:00\",\"date_modified\":\"2024-01-11T10:39:56&#43;08:00\",\"id\":\"https://lruihao.cn/posts/6550187/\",\"url\":\"https://lruihao.cn/posts/6550187/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"Git 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\n\",\"content_html\":\"\\u003cp\\u003eGit 报错 \\u0026ldquo;git submodule: already exists in the index\\u0026rdquo; 的解决方法。\\u003c/p\\u003e\"},{\"title\":\"SSH 提交签名验证\",\"date_published\":\"2023-10-22T18:59:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ssh-sign/\",\"url\":\"https://lruihao.cn/posts/ssh-sign/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"SSH\"],\"summary\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\n\",\"content_html\":\"\\u003cp\\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\u003c/p\\u003e\"},{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Commit Message Spec\",\"date_published\":\"2022-08-12T15:37:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/commit-spec/\",\"url\":\"https://lruihao.cn/posts/commit-spec/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cp\\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \\u003ca href=\\\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eConventional Commits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e specification based on the \\u003ca href=\\\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAngular convention\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\\u003c/p\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"Git 常用指令汇总\",\"date_published\":\"2018-10-30T08:59:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git/\",\"url\":\"https://lruihao.cn/posts/git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"image\":\"/posts/git/images/relation-1.png\",\"summary\":\" 工作区：就是你在电脑里能看到的目录。 暂存区：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。 版本库：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。 \",\"content_html\":\"\\u003cul\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e工作区\\u003c/strong\\u003e：就是你在电脑里能看到的目录。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e暂存区\\u003c/strong\\u003e：英文叫 stage, 或 index。一般存放在 \\u0026ldquo;.git 目录下\\u0026rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e版本库\\u003c/strong\\u003e：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"使用 Git 上传代码到 github, coding 等仓库\",\"date_published\":\"2018-10-26T21:11:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gituse/\",\"url\":\"https://lruihao.cn/posts/gituse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"0.9 config git config --global user.name \\\"Your Name\\\" git config --global user.email \\\"email@example.com\\\" 第一次使用 git 的时候需要设置提交者信息。\\n注意：\\n如果用了 --global 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 --global 选项重新配置即可，新的设定保存在当前项目的 .git/config 文件里。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"config\\\"\\u003e\\u003cspan\\u003e0.9 config\\u003c/span\\u003e\\n  \\u003ca href=\\\"#config\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003egit config --global user.name \\\"Your Name\\\"\\ngit config --global user.email \\\"email@example.com\\\"\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次使用 git 的时候需要设置提交者信息。\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n如果用了 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。\\u003cbr\\u003e\\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 \\u003ccode\\u003e--global\\u003c/code\\u003e 选项重新配置即可，新的设定保存在当前项目的 \\u003ccode\\u003e.git/config\\u003c/code\\u003e 文件里。\\u003c/p\\u003e\"},{\"title\":\"linux/centos 下的安装 git\",\"date_published\":\"2018-09-22T22:28:45&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-git/\",\"url\":\"https://lruihao.cn/posts/linux-git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"linux\"],\"summary\":\"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注： unzip 命令用不了，具体步骤如下：\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"下载-git\\\"\\u003e\\u003cspan\\u003e0.11 下载 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%8b%e8%bd%bd-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003ewget https://github.com/git/git/archive/v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装依赖\\\"\\u003e\\u003cspan\\u003e0.12 安装依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"解压-git\\\"\\u003e\\u003cspan\\u003e0.13 解压 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a7%a3%e5%8e%8b-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003eunzip v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注：\\nunzip 命令用不了，具体步骤如下：\\u003c/p\\u003e\"},{\"title\":\"git index.lock\",\"date_published\":\"2018-08-14T19:21:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/git-index-lock/\",\"url\":\"https://lruihao.cn/posts/git-index-lock/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\"],\"summary\":\"在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\n有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\\n\",\"content_html\":\"\\u003cp\\u003e在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\\n\\nIf no other git process is currently running, this probably means a\\ngit process crashed in this repository earlier. Make sure no other git\\nprocess is running and remove the file manually to continue.\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。\\u003c/p\\u003e\\n\\u003cp\\u003e有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 \\u003ccode\\u003erm -f ./.git/index.lock\\u003c/code\\u003e 。之后就可以正常使用。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/git/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Git - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Git\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-17T16:06:08+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/git/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Git\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Git\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/git/ title=\"Git | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/git/index.xml title=\"Git | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/git/feed.json title=\"Git | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/git/feed.json title=\"Git | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/git/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Git</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Git <sup>13</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/git-summary/ class=archive-item-link>Git 统计代码量</a>\n<span class=archive-item-date title='2024-07-17 16:06:08'>07-17</span></article><article class=archive-item><a href=/posts/6550187/ class=archive-item-link>Git Submodule: Already Exists in the Index</a>\n<span class=archive-item-date title='2024-01-11 10:30:04'>01-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a>\n<span class=archive-item-date title='2023-10-22 18:59:31'>10-22</span></article><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/commit-spec/ class=archive-item-link>Commit Message Spec</a>\n<span class=archive-item-date title='2022-08-12 15:37:44'>08-12</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/git/ class=archive-item-link>Git 常用指令汇总</a>\n<span class=archive-item-date title='2018-10-30 08:59:56'>10-30</span></article><article class=archive-item><a href=/posts/gituse/ class=archive-item-link>使用 Git 上传代码到 Github, Coding 等仓库</a>\n<span class=archive-item-date title='2018-10-26 21:11:02'>10-26</span></article><article class=archive-item><a href=/posts/linux-git/ class=archive-item-link>Linux/Centos 下的安装 Git</a>\n<span class=archive-item-date title='2018-09-22 22:28:45'>09-22</span></article><article class=archive-item><a href=/posts/git-index-lock/ class=archive-item-link>Git Index.lock</a>\n<span class=archive-item-date title='2018-08-14 19:21:23'>08-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/git/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/git/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Git - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/git/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 07 Jan 2025 10:08:46 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/git/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Git 统计代码量</title><link>https://lruihao.cn/posts/git-summary/</link><pubDate>Wed, 17 Jul 2024 16:06:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-summary/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;使用 Git 命令统计在某段时间内项目中的代码量。&lt;/p&gt;</description></item><item><title>git submodule: already exists in the index</title><link>https://lruihao.cn/posts/6550187/</link><pubDate>Thu, 11 Jan 2024 10:30:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/6550187/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 报错 &amp;ldquo;git submodule: already exists in the index&amp;rdquo; 的解决方法。&lt;/p&gt;</description></item><item><title>SSH 提交签名验证</title><link>https://lruihao.cn/posts/ssh-sign/</link><pubDate>Sun, 22 Oct 2023 18:59:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ssh-sign/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。&lt;/p&gt;</description></item><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Commit Message Spec</title><link>https://lruihao.cn/posts/commit-spec/</link><pubDate>Fri, 12 Aug 2022 15:37:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/commit-spec/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;p&gt;Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the &lt;a href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Conventional Commits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; specification based on the &lt;a href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Angular convention&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.&lt;/p&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/blog-backup/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"备份-hexo-博客\"&gt;&lt;span&gt;7 备份 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m &amp;#34;blog hexo&amp;#34;\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"&gt;&lt;span&gt;8 在其他终端克隆和更新 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;nodejs,git,hexo 已经安装好，即搭建完成&lt;/p&gt;</description></item><item><title>Git 常用指令汇总</title><link>https://lruihao.cn/posts/git/</link><pubDate>Tue, 30 Oct 2018 08:59:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;工作区&lt;/strong&gt;：就是你在电脑里能看到的目录。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;暂存区&lt;/strong&gt;：英文叫 stage, 或 index。一般存放在 &amp;ldquo;.git 目录下&amp;rdquo; 下的 index 文件（.git/index）中，所以我们把暂存区有时也叫作索引（index）。&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;版本库&lt;/strong&gt;：工作区有一个隐藏目录。git，这个不算工作区，而是 Git 的版本库。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>使用 Git 上传代码到 github, coding 等仓库</title><link>https://lruihao.cn/posts/gituse/</link><pubDate>Fri, 26 Oct 2018 21:11:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gituse/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;h3 class=\"heading-element\" id=\"config\"&gt;&lt;span&gt;0.13 config&lt;/span&gt;\n &lt;a href=\"#config\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;git config --global user.name &amp;#34;Your Name&amp;#34;\ngit config --global user.email &amp;#34;email@example.com&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;\n&lt;p&gt;第一次使用 git 的时候需要设置提交者信息。&lt;br&gt;\n注意：&lt;br&gt;\n如果用了 &lt;code&gt;--global&lt;/code&gt; 选项，那么更改的配置文件就是位于你用户主目录下的那个，以后你所有的项目都会默认使用这里配置的用户信息。&lt;br&gt;\n如果要在某个特定的项目中使用其他名字或者电邮，只要去掉 &lt;code&gt;--global&lt;/code&gt; 选项重新配置即可，新的设定保存在当前项目的 &lt;code&gt;.git/config&lt;/code&gt; 文件里。&lt;/p&gt;</description></item><item><title>linux/centos 下的安装 git</title><link>https://lruihao.cn/posts/linux-git/</link><pubDate>Sat, 22 Sep 2018 22:28:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-git/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"下载-git\"&gt;&lt;span&gt;0.16 下载 git&lt;/span&gt;\n &lt;a href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;wget https://github.com/git/git/archive/v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"安装依赖\"&gt;&lt;span&gt;0.17 安装依赖&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"解压-git\"&gt;&lt;span&gt;0.18 解压 git&lt;/span&gt;\n &lt;a href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;unzip v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注：\nunzip 命令用不了，具体步骤如下：&lt;/p&gt;</description></item><item><title>git index.lock</title><link>https://lruihao.cn/posts/git-index-lock/</link><pubDate>Tue, 14 Aug 2018 19:21:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/git-index-lock/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;在 git 没有运行完成之前强制关闭，下次提交的时候会产以下生错误，或者类似的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;fatal: Unable to create &amp;#39;/xxx/xx/.git/index.lock&amp;#39;: File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;原因是在你进行某些比较费时的 git 操作时自动生成，操作结束后自动删除，相当于一个锁定文件，目的在于防止对一个目录同时进行多个操作。&lt;/p&gt;\n&lt;p&gt;有时强制关闭进行中的 git 操作，这个文件没有被自动删除，之后你就无法进行其他操作，必须手动删除，进入。git 文件中删除，打开显示隐藏文件。如果没有看见。git 文件夹，可以直接用命令 &lt;code&gt;rm -f ./.git/index.lock&lt;/code&gt; 。之后就可以正常使用。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/git/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/git/</title><link rel=canonical href=https://lruihao.cn/tags/git/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/git/\"></head></html>"
  },
  {
    "path": "tags/github-actions/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"GitHub Actions - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Generate a list of all hugo-fixit theme components.\",\"date_published\":\"2025-01-14T09:10:09Z\",\"date_modified\":\"2026-05-06T03:13:04Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"github-actions\"],\"summary\":\"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"action-component-list--fixit\\\" data-decreased\\u003e\\u003cspan\\u003eaction-component-list | FixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#action-component-list--fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://github.com/super-linter/super-linter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_14033786788092036044.svg' alt=\\\"GitHub Super-Linter\\\"\\u003e\\u003c/a\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_12862037500024650352.svg' alt=\\\"CI\\\"\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_17453161718063467893.svg' alt=\\\"Check dist/\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_9366593515159455299.svg' alt=\\\"CodeQL\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"how-to-use\\\"\\u003e\\u003cspan\\u003eHow to use\\u003c/span\\u003e\\n  \\u003ca href=\\\"#how-to-use\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eYou can reference different stable versions of this action. For more\\ninformation, see\\n\\u003ca href=\\\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVersioning\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\nin the GitHub Actions toolkit.\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/github-actions/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GitHub Actions - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GitHub Actions\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-01-14T09:10:09+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:13:04+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/github-actions/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GitHub Actions\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GitHub Actions\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/github-actions/ title=\"GitHub Actions | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/github-actions/index.xml title=\"GitHub Actions | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/github-actions/feed.json title=\"GitHub Actions | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/github-actions/feed.json title=\"GitHub Actions | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/github-actions/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GitHub Actions</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>GitHub Actions <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2026-05-06 03:13:04'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/action-component-list/ class=archive-item-link>hugo-fixit/action-component-list</a>\n<span class=archive-item-date title='2025-01-14 09:10:09'>01-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/github-actions/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/github-actions/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>GitHub Actions - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/github-actions/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:13:04 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/github-actions/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Generate a list of all hugo-fixit theme components.</title><link>https://lruihao.cn/projects/hugo-fixit/action-component-list/</link><pubDate>Tue, 14 Jan 2025 09:10:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/action-component-list/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased&gt;&lt;span&gt;action-component-list | FixIt&lt;/span&gt;\n &lt;a href=\"#action-component-list--fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"&gt;&lt;/a&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt=\"CI\"&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;This is a GitHub Action to generate a list of all hugo-fixit theme components.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"how-to-use\"&gt;&lt;span&gt;How to use&lt;/span&gt;\n &lt;a href=\"#how-to-use\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;You can reference different stable versions of this action. For more\ninformation, see\n&lt;a href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Versioning&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\nin the GitHub Actions toolkit.&lt;/p&gt;</description></item><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/github-actions/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/github-actions/</title><link rel=canonical href=https://lruihao.cn/tags/github-actions/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/github-actions/\"></head></html>"
  },
  {
    "path": "tags/github-api/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"GitHub API - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"date_published\":\"2024-10-06T11:10:22&#43;08:00\",\"date_modified\":\"2024-10-06T12:21:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/content-adapters/\",\"url\":\"https://lruihao.cn/posts/content-adapters/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"GitHub API\"],\"image\":\"https://lruihao.cn/posts/content-adapters/featured-image.webp\",\"summary\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\n\",\"content_html\":\"\\u003cp\\u003e在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/github-api/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GitHub API - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GitHub API\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-10-06T11:10:22+08:00\"><meta itemprop=dateModified content=\"2024-10-06T12:21:43+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/github-api/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GitHub API\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GitHub API\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/github-api/ title=\"GitHub API | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/github-api/index.xml title=\"GitHub API | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/github-api/feed.json title=\"GitHub API | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/github-api/feed.json title=\"GitHub API | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/github-api/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GitHub API</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>GitHub API <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a>\n<span class=archive-item-date title='2024-10-06 11:10:22'>10-06</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/github-api/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/github-api/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>GitHub API - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/github-api/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 06 Oct 2024 12:21:43 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/github-api/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>自动获取 GitHub README 内容添加到 Hugo 文章</title><link>https://lruihao.cn/posts/content-adapters/</link><pubDate>Sun, 06 Oct 2024 11:10:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/content-adapters/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/github-api/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/github-api/</title><link rel=canonical href=https://lruihao.cn/tags/github-api/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/github-api/\"></head></html>"
  },
  {
    "path": "tags/go/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Go - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Beego 安装及配置\",\"date_published\":\"2022-08-31T09:32:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beego-install/\",\"url\":\"https://lruihao.cn/posts/beego-install/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Beego\",\"Go\"],\"image\":\"https://lruihao.cn/posts/beego-install/images/featured-image.png\",\"summary\":\"记录 GO 及 Beego 框架安装及基础配置。\\n\",\"content_html\":\"\\u003cp\\u003e记录 GO 及 Beego 框架安装及基础配置。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/go/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Go - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Go\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-31T09:32:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/go/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Go\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Go\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/go/ title=\"Go | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/go/index.xml title=\"Go | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/go/feed.json title=\"Go | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/go/feed.json title=\"Go | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/go/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Go</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Go <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/beego-install/ class=archive-item-link>Beego 安装及配置</a>\n<span class=archive-item-date title='2022-08-31 09:32:44'>08-31</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/go/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/go/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Go - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/go/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/go/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Beego 安装及配置</title><link>https://lruihao.cn/posts/beego-install/</link><pubDate>Wed, 31 Aug 2022 09:32:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beego-install/</guid><category domain=\"https://lruihao.cn/categories/go/\">Go</category><description>&lt;p&gt;记录 GO 及 Beego 框架安装及基础配置。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/go/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/go/</title><link rel=canonical href=https://lruihao.cn/tags/go/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/go/\"></head></html>"
  },
  {
    "path": "tags/gravatar/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Gravatar - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/gravatar/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Gravatar - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Gravatar\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-04-09T02:13:22+00:00\"><meta itemprop=dateModified content=\"2026-03-10T07:05:02+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/gravatar/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Gravatar\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Gravatar\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/gravatar/ title=\"Gravatar | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/gravatar/index.xml title=\"Gravatar | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/gravatar/feed.json title=\"Gravatar | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/gravatar/feed.json title=\"Gravatar | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/gravatar/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Gravatar</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Gravatar <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/vercel-proxy/ class=archive-item-link>Lruihao/vercel-proxy</a>\n<span class=archive-item-date title='2025-04-09 02:13:22'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title='2024-04-17 12:51:35'>04-17</span></article><article class=archive-item><a href=/projects/lruihao/vercel-gravatar/ class=archive-item-link>Lruihao/vercel-gravatar</a>\n<span class=archive-item-date title='2024-04-17 01:37:06'>04-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/gravatar/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/gravatar/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Gravatar - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/gravatar/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 10 Mar 2026 07:05:02 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/gravatar/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>API proxies powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-proxy/</link><pubDate>Wed, 09 Apr 2025 02:13:22 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-proxy/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#vercel-api-proxy\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;API proxies powered by Vercel.&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;[toc]&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"hosts\"&gt;&lt;span&gt;Hosts&lt;/span&gt;\n &lt;a href=\"#hosts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://api.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://cell-api.vercel.app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"api-list\"&gt;&lt;span&gt;API List&lt;/span&gt;\n &lt;a href=\"#api-list\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Go to the &lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; and select the API you want to use.&lt;/p&gt;</description></item><item><title>利用 Vercel 反代 Gravatar 实现镜像加速</title><link>https://lruihao.cn/projects/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 12:51:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。&lt;/p&gt;</description></item><item><title>Gravatar Proxy powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 01:37:06 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased&gt;&lt;span&gt;Vercel Gravatar&lt;/span&gt;\n &lt;a href=\"#vercel-gravatar\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;Superseded by &lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao/vercel-proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Gravatar Proxy powered by Vercel.&lt;/p&gt;\n&lt;p&gt;Go to test Gravatar:&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/gravatar/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/gravatar/</title><link rel=canonical href=https://lruihao.cn/tags/gravatar/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/gravatar/\"></head></html>"
  },
  {
    "path": "tags/gtd/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"GTD - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Getting Things Done for ios App Reminders and Github issues\",\"date_published\":\"2021-12-22T20:17:42&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gtd/\",\"url\":\"https://lruihao.cn/posts/gtd/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GTD\"],\"image\":\"/posts/gtd/images/reminders_min.png\",\"summary\":\" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\nReference #20 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003equote\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003eGetting Things Done (GTD)\\u003c/strong\\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \\u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\\u0026rdquo;.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://en.wikipedia.org/wiki/Getting_Things_Done\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eReference\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/issues/20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e#20\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/gtd/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GTD - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GTD\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-22T20:17:42+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/gtd/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GTD\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GTD\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/gtd/ title=\"GTD | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/gtd/index.xml title=\"GTD | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/gtd/feed.json title=\"GTD | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/gtd/feed.json title=\"GTD | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/gtd/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GTD</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>GTD <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/gtd/ class=archive-item-link>Getting Things Done for Ios App Reminders and Github Issues</a>\n<span class=archive-item-date title='2021-12-22 20:17:42'>12-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/gtd/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/gtd/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>GTD - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/gtd/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/gtd/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Getting Things Done for ios App Reminders and Github issues</title><link>https://lruihao.cn/posts/gtd/</link><pubDate>Wed, 22 Dec 2021 20:17:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gtd/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;quote&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;Getting Things Done (GTD)&lt;/strong&gt; is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &amp;ldquo;there is an inverse relationship between things on your mind and those things getting done&amp;rdquo;.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://en.wikipedia.org/wiki/Getting_Things_Done\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Reference&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/hugo-blog/issues/20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;#20&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/gtd/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/gtd/</title><link rel=canonical href=https://lruihao.cn/tags/gtd/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/gtd/\"></head></html>"
  },
  {
    "path": "tags/gui/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"GUI - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"匿名类在可视化界面中的应用\",\"date_published\":\"2019-03-15T22:31:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qframe/\",\"url\":\"https://lruihao.cn/posts/qframe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"Java\"],\"summary\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ejava 中匿名类用的最多的地方就是可视化界面设计中，特别是将\\u003ccode\\u003e事件监听器\\u003c/code\\u003e注册到某个组件上的时候。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/gui/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>GUI - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"GUI\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-08T20:55:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/gui/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"GUI\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"GUI\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/gui/ title=\"GUI | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/gui/index.xml title=\"GUI | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/gui/feed.json title=\"GUI | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/gui/feed.json title=\"GUI | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/gui/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>GUI</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>GUI <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/qframe/ class=archive-item-link>匿名类在可视化界面中的应用</a>\n<span class=archive-item-date title='2019-03-15 22:31:28'>03-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/gui/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/gui/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>GUI - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/gui/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/gui/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>匿名类在可视化界面中的应用</title><link>https://lruihao.cn/posts/qframe/</link><pubDate>Fri, 15 Mar 2019 22:31:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qframe/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;java 中匿名类用的最多的地方就是可视化界面设计中，特别是将&lt;code&gt;事件监听器&lt;/code&gt;注册到某个组件上的时候。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/gui/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/gui/</title><link rel=canonical href=https://lruihao.cn/tags/gui/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/gui/\"></head></html>"
  },
  {
    "path": "tags/hdu/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"HDU - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"},{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hdu/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HDU - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"HDU\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-12T16:43:19+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hdu/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HDU\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HDU\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hdu/ title=\"HDU | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hdu/index.xml title=\"HDU | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hdu/feed.json title=\"HDU | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hdu/feed.json title=\"HDU | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hdu/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HDU</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>HDU <sup>8</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hdu/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hdu/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>HDU - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hdu/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hdu/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HDU 1009 FatMouse' Trade（贪心）</title><link>https://lruihao.cn/posts/hdu1009/</link><pubDate>Fri, 12 Apr 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;7 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hdu/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hdu/</title><link rel=canonical href=https://lruihao.cn/tags/hdu/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hdu/\"></head></html>"
  },
  {
    "path": "tags/hexo/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Hexo - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"模仿知乎卡片式链接\",\"date_published\":\"2019-03-15T15:21:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linkcard/\",\"url\":\"https://lruihao.cn/posts/linkcard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"在搜索、文章底部、侧栏添加最近文章模块\",\"date_published\":\"2019-01-16T17:50:52&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/recent-posts/\",\"url\":\"https://lruihao.cn/posts/recent-posts/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 首先在主题配置文件添加以下关键字\\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e首先在主题配置文件添加以下关键字\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003erecent_posts:\\n  enable: true\\n  search: true\\n  post: false\\n  sidebar: false\\n  icon: history\\n  title: 近期文章\\n  layout: block\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"侧栏\\\"\\u003e\\u003cspan\\u003e9 侧栏\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%a7%e6%a0%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 \\u003ccode\\u003enext/layout/_macro/sidebar.swig\\u003c/code\\u003e 中的 \\u003ccode\\u003eif theme.links\\u003c/code\\u003e 对应的 \\u003ccode\\u003eendif\\u003c/code\\u003e 后面。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\\n  \\u003cdiv class=\\\"links-of-blogroll motion-element {{ \\\"links-of-blogroll-\\\" + theme.recent_posts.layout  }}\\\"\\u003e\\n   \\u003cdiv class=\\\"links-of-blogroll-title\\\"\\u003e\\n     \\u003ci class=\\\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\n     {{ theme.recent_posts.title }}\\n   \\u003c/div\\u003e\\n   \\u003cul class=\\\"links-of-blogroll-list\\\"\\u003e\\n     {% set posts = site.posts.sort('-date') %}\\n     {% for post in posts.slice('0', '3') %}\\n       \\u003cli\\u003e\\n         \\u003ca href=\\\"{{ url_for(post.path) }}\\\" title=\\\"{{ post.title }}\\\" target=\\\"_blank\\\"\\u003e{{ post.title }}\\u003c/a\\u003e\\n       \\u003c/li\\u003e\\n     {% endfor %}\\n   \\u003c/ul\\u003e\\n \\u003c/div\\u003e\\n{% endif %}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"搜索结果处添加\\\"\\u003e\\u003cspan\\u003e10 搜索结果处添加\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e找到路径\\u003ccode\\u003eH:\\\\hexo\\\\themes\\\\hexo-theme-next\\\\layout\\\\_partials\\\\search\\u003c/code\\u003e下\\u003ccode\\u003elocalsearch.swig\\u003c/code\\u003e文件\\u003cbr\\u003e\\n把\\u003ccode\\u003e\\u0026lt;div id=\\u0026quot;local-search-result\\u0026quot;\\u0026gt;\\u0026lt;/div\\u0026gt;\\u003c/code\\u003e修改成以下内容（这里显示 15 篇）\\u003c/p\\u003e\"},{\"title\":\"hexo 插件及 next 内置样式集\",\"date_published\":\"2018-11-24T16:54:09&#43;08:00\",\"date_modified\":\"2021-10-02T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nextplugin/\",\"url\":\"https://lruihao.cn/posts/nextplugin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 2021/10/2 更新\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\n让文章写的好看又简洁又好用的插件！hexo 完整的标签列表，next 插件列表\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2021/10/2 更新\\u003cbr\\u003e\\n博客已迁移至 Hugo, 插件演示不适用，已删除。\\u003cbr\\u003e\\n让文章写的好看又简洁又好用的插件！\\u003ca href=\\\"https://hexo.io/zh-cn/docs/tag-plugins.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 完整的标签列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://theme-next.org/docs/tag-plugins/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 插件列表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"next 添加支持 pdf\",\"date_published\":\"2018-11-09T12:51:48&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/next-pdf/\",\"url\":\"https://lruihao.cn/posts/next-pdf/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 最新的 next 主题已经更新了支持 PDF 功能，写法也和链接写法一样，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\n7 iframe(推荐) 8 模板自带 今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件） 但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e最新的 next 主题已经更新了支持 PDF 功能，\\u003cdel\\u003e写法也和链接写法一样\\u003c/del\\u003e，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"iframe推荐\\\"\\u003e\\u003cspan\\u003e7 iframe(推荐)\\u003c/span\\u003e\\n  \\u003ca href=\\\"#iframe%e6%8e%a8%e8%8d%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e\\u003ciframe src=\\\"/posts/next-pdf/1.pdf\\\" style=\\\"width: 100%;height: 800px;\\\"\\u003e\\u003c/iframe\\u003e\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"模板自带\\\"\\u003e\\u003cspan\\u003e8 模板自带\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\\u003c/p\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"date_published\":\"2018-09-26T16:36:08&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/crash-cheat/\",\"url\":\"https://lruihao.cn/posts/crash-cheat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo next 主题添加字数统计（2018）\",\"date_published\":\"2018-08-30T13:15:50&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"url\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"字数统计\"],\"summary\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition warning open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-exclamation-triangle\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e警告\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003e2018/11/1 说明\\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"hexo d 出错\",\"date_published\":\"2018-08-21T22:15:01&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-d-error/\",\"url\":\"https://lruihao.cn/posts/hexo-d-error/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\"搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\n现在做一下记录，防止以后出错用。\\n错误如下\\n\",\"content_html\":\"\\u003cp\\u003e搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\\u003cbr\\u003e\\n现在做一下记录，防止以后出错用。\\u003cbr\\u003e\\n错误如下\\u003c/p\\u003e\"},{\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"date_published\":\"2018-08-20T16:16:40&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dongtaisub/\",\"url\":\"https://lruihao.cn/posts/dongtaisub/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本文适合我这种纯小白。\\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\\u003ca href=\\\"https://www.jianshu.com/p/df2c844eeabf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（关键词：js, 后加载）\\u003cbr\\u003e\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 博客自定义 console log\",\"date_published\":\"2018-08-04T16:19:06&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/console-log/\",\"url\":\"https://lruihao.cn/posts/console-log/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\n我主要用到的工具：\\nconsole.log() Notepad++ 在线图片转文字工具 \",\"content_html\":\"\\u003cp\\u003e看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\u003cbr\\u003e\\n我主要用到的工具：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003econsole.log()\\u003c/li\\u003e\\n\\u003cli\\u003eNotepad++\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://picascii.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线图片转文字工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"hexo+github 搭建个人博客及美化\",\"date_published\":\"2018-06-01T14:34:23&#43;08:00\",\"date_modified\":\"2021-10-03T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexobuild/\",\"url\":\"https://lruihao.cn/posts/hexobuild/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\"],\"summary\":\"更多关于 hexo\\n17 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"/categories/hexo/\\\"\\u003e更多关于 hexo\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"首先\\\"\\u003e\\u003cspan\\u003e17 首先\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a6%96%e5%85%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://hexo.io/zh-cn/docs/index.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我们的第一手资料，也是最好的。\\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\u003c/p\\u003e\"},{\"title\":\"hexo 添加图片，音乐，链接，视频\",\"date_published\":\"2018-05-31T23:19:22&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexowrite/\",\"url\":\"https://lruihao.cn/posts/hexowrite/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\"],\"summary\":\" 如果实在搞得头晕直接去 简书 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 马克飞象，专为印象笔记打造的 Markdown 编辑器，typora 也是不错的，突然发现 csdn 也支持 Markdown 编译器了\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e如果实在搞得头晕直接去 \\u003ca href=\\\"https://www.jianshu.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简书\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 \\u003ca href=\\\"https://maxiang.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e马克飞象，专为印象笔记打造的 Markdown 编辑器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://www.typora.io/#\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etypora 也是不错的\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，突然发现 \\u003ca href=\\\"https://www.csdn.net/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecsdn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 也支持 Markdown 编译器了\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/hexo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hexo - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Hexo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hexo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hexo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hexo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hexo/ title=\"Hexo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hexo/index.xml title=\"Hexo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hexo/feed.json title=\"Hexo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hexo/feed.json title=\"Hexo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hexo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Hexo <sup>17</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><article class=archive-item><a href=/posts/linkcard/ class=archive-item-link>模仿知乎卡片式链接</a>\n<span class=archive-item-date title='2019-03-15 15:21:39'>03-15</span></article><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article><article class=archive-item><a href=/posts/recent-posts/ class=archive-item-link>在搜索、文章底部、侧栏添加最近文章模块</a>\n<span class=archive-item-date title='2019-01-16 17:50:52'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nextplugin/ class=archive-item-link>Hexo 插件及 Next 内置样式集</a>\n<span class=archive-item-date title='2018-11-24 16:54:09'>11-24</span></article><article class=archive-item><a href=/posts/next-pdf/ class=archive-item-link>Next 添加支持 Pdf</a>\n<span class=archive-item-date title='2018-11-09 12:51:48'>11-09</span></article><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/crash-cheat/ class=archive-item-link>网页离开时改变标题“崩溃欺骗”</a>\n<span class=archive-item-date title='2018-09-26 16:36:08'>09-26</span></article><article class=archive-item><a href=/posts/hexo-wordcount/ class=archive-item-link>Hexo Next 主题添加字数统计（2018）</a>\n<span class=archive-item-date title='2018-08-30 13:15:50'>08-30</span></article><article class=archive-item><a href=/posts/hexo-d-error/ class=archive-item-link>Hexo D 出错</a>\n<span class=archive-item-date title='2018-08-21 22:15:01'>08-21</span></article><article class=archive-item><a href=/posts/dongtaisub/ class=archive-item-link>Hexo 个性化 - Next 主题动态显示 Subtitle</a>\n<span class=archive-item-date title='2018-08-20 16:16:40'>08-20</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article><article class=archive-item><a href=/posts/console-log/ class=archive-item-link>Hexo 博客自定义 Console Log</a>\n<span class=archive-item-date title='2018-08-04 16:19:06'>08-04</span></article><article class=archive-item><a href=/posts/hexobuild/ class=archive-item-link>Hexo+github 搭建个人博客及美化</a>\n<span class=archive-item-date title='2018-06-01 14:34:23'>06-01</span></article><article class=archive-item><a href=/posts/hexowrite/ class=archive-item-link>Hexo 添加图片，音乐，链接，视频</a>\n<span class=archive-item-date title='2018-05-31 23:19:22'>05-31</span></article><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/257907c0ccec1406a7e51c9c17d6584a.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/257907c0ccec1406a7e51c9c17d6584a.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hexo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hexo/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Hexo - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hexo/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hexo/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable-file --&gt;\n&lt;div class=\"details admonition danger open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"&gt;&lt;/i&gt;危险&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;span style=\"color: #d9534f;font-size: 1.2em;\"&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对 next 的主题的自定义修改&lt;/strong&gt;，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib 资源已打包 github。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>模仿知乎卡片式链接</title><link>https://lruihao.cn/posts/linkcard/</link><pubDate>Fri, 15 Mar 2019 15:21:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linkcard/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>在搜索、文章底部、侧栏添加最近文章模块</title><link>https://lruihao.cn/posts/recent-posts/</link><pubDate>Wed, 16 Jan 2019 17:50:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/recent-posts/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;首先在主题配置文件添加以下关键字&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;pre&gt;&lt;code&gt;recent_posts:\n enable: true\n search: true\n post: false\n sidebar: false\n icon: history\n title: 近期文章\n layout: block&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"侧栏\"&gt;&lt;span&gt;13 侧栏&lt;/span&gt;\n &lt;a href=\"#%e4%be%a7%e6%a0%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 &lt;code&gt;next/layout/_macro/sidebar.swig&lt;/code&gt; 中的 &lt;code&gt;if theme.links&lt;/code&gt; 对应的 &lt;code&gt;endif&lt;/code&gt; 后面。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n &amp;lt;div class=&amp;#34;links-of-blogroll motion-element {{ &amp;#34;links-of-blogroll-&amp;#34; &amp;#43; theme.recent_posts.layout }}&amp;#34;&amp;gt;\n &amp;lt;div class=&amp;#34;links-of-blogroll-title&amp;#34;&amp;gt;\n &amp;lt;i class=&amp;#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&amp;#34; aria-hidden=&amp;#34;true&amp;#34;&amp;gt;&amp;lt;/i&amp;gt;\n {{ theme.recent_posts.title }}\n &amp;lt;/div&amp;gt;\n &amp;lt;ul class=&amp;#34;links-of-blogroll-list&amp;#34;&amp;gt;\n {% set posts = site.posts.sort(&amp;#39;-date&amp;#39;) %}\n {% for post in posts.slice(&amp;#39;0&amp;#39;, &amp;#39;3&amp;#39;) %}\n &amp;lt;li&amp;gt;\n &amp;lt;a href=&amp;#34;{{ url_for(post.path) }}&amp;#34; title=&amp;#34;{{ post.title }}&amp;#34; target=&amp;#34;_blank&amp;#34;&amp;gt;{{ post.title }}&amp;lt;/a&amp;gt;\n &amp;lt;/li&amp;gt;\n {% endfor %}\n &amp;lt;/ul&amp;gt;\n &amp;lt;/div&amp;gt;\n{% endif %}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"搜索结果处添加\"&gt;&lt;span&gt;14 搜索结果处添加&lt;/span&gt;\n &lt;a href=\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;找到路径&lt;code&gt;H:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search&lt;/code&gt;下&lt;code&gt;localsearch.swig&lt;/code&gt;文件&lt;br&gt;\n把&lt;code&gt;&amp;lt;div id=&amp;quot;local-search-result&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;修改成以下内容（这里显示 15 篇）&lt;/p&gt;</description></item><item><title>hexo 插件及 next 内置样式集</title><link>https://lruihao.cn/posts/nextplugin/</link><pubDate>Sat, 24 Nov 2018 16:54:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nextplugin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;2021/10/2 更新&lt;br&gt;\n博客已迁移至 Hugo, 插件演示不适用，已删除。&lt;br&gt;\n让文章写的好看又简洁又好用的插件！&lt;a href=\"https://hexo.io/zh-cn/docs/tag-plugins.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 完整的标签列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://theme-next.org/docs/tag-plugins/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 插件列表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>next 添加支持 pdf</title><link>https://lruihao.cn/posts/next-pdf/</link><pubDate>Fri, 09 Nov 2018 12:51:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/next-pdf/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;最新的 next 主题已经更新了支持 PDF 功能，&lt;del&gt;写法也和链接写法一样&lt;/del&gt;，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"iframe推荐\"&gt;&lt;span&gt;10 iframe(推荐)&lt;/span&gt;\n &lt;a href=\"#iframe%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;iframe src=&amp;#34;/posts/next-pdf/1.pdf&amp;#34; style=&amp;#34;width: 100%;height: 800px;&amp;#34;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"模板自带\"&gt;&lt;span&gt;11 模板自带&lt;/span&gt;\n &lt;a href=\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可，个人更喜欢插件）\n但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf，所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。&lt;/p&gt;</description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/blog-backup/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"备份-hexo-博客\"&gt;&lt;span&gt;7 备份 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m &amp;#34;blog hexo&amp;#34;\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"&gt;&lt;span&gt;8 在其他终端克隆和更新 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;nodejs,git,hexo 已经安装好，即搭建完成&lt;/p&gt;</description></item><item><title>网页离开时改变标题“崩溃欺骗”</title><link>https://lruihao.cn/posts/crash-cheat/</link><pubDate>Wed, 26 Sep 2018 16:36:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/crash-cheat/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo next 主题添加字数统计（2018）</title><link>https://lruihao.cn/posts/hexo-wordcount/</link><pubDate>Thu, 30 Aug 2018 13:15:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-wordcount/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition warning open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"&gt;&lt;/i&gt;警告&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>hexo d 出错</title><link>https://lruihao.cn/posts/hexo-d-error/</link><pubDate>Tue, 21 Aug 2018 22:15:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-d-error/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。&lt;br&gt;\n现在做一下记录，防止以后出错用。&lt;br&gt;\n错误如下&lt;/p&gt;</description></item><item><title>hexo 个性化 - next 主题动态显示 subtitle</title><link>https://lruihao.cn/posts/dongtaisub/</link><pubDate>Mon, 20 Aug 2018 16:16:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dongtaisub/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。&lt;a href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（关键词：js, 后加载）&lt;br&gt;\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**&lt;a href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;部署后的效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;**&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 博客自定义 console log</title><link>https://lruihao.cn/posts/console-log/</link><pubDate>Sat, 04 Aug 2018 16:19:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/console-log/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。&lt;br&gt;\n我主要用到的工具：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;console.log()&lt;/li&gt;\n&lt;li&gt;Notepad++&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线图片转文字工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>hexo+github 搭建个人博客及美化</title><link>https://lruihao.cn/posts/hexobuild/</link><pubDate>Fri, 01 Jun 2018 14:34:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexobuild/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://lruihao.cn/categories/hexo/\"&gt;更多关于 hexo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"首先\"&gt;&lt;span&gt;25 首先&lt;/span&gt;\n &lt;a href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：&lt;/p&gt;</description></item><item><title>hexo 添加图片，音乐，链接，视频</title><link>https://lruihao.cn/posts/hexowrite/</link><pubDate>Thu, 31 May 2018 23:19:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexowrite/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;如果实在搞得头晕直接去 &lt;a href=\"https://www.jianshu.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简书&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 &lt;a href=\"https://maxiang.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;马克飞象，专为印象笔记打造的 Markdown 编辑器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://www.typora.io/#\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;typora 也是不错的&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，突然发现 &lt;a href=\"https://www.csdn.net/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;csdn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 也支持 Markdown 编译器了&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hexo/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hexo/</title><link rel=canonical href=https://lruihao.cn/tags/hexo/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hexo/\"></head></html>"
  },
  {
    "path": "tags/hexo-theme-next/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hexo-theme-next - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/hexo-theme-next/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hexo-theme-next - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hexo-theme-next\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hexo-theme-next/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hexo-theme-next\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hexo-theme-next\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hexo-theme-next/ title=\"hexo-theme-next | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hexo-theme-next/index.xml title=\"hexo-theme-next | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hexo-theme-next/feed.json title=\"hexo-theme-next | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hexo-theme-next/feed.json title=\"hexo-theme-next | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hexo-theme-next/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hexo-Theme-Next</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hexo-theme-next <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hexo-theme-next/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hexo-theme-next/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hexo-theme-next - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hexo-theme-next/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hexo-theme-next/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hexo-theme-next/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hexo-theme-next/</title><link rel=canonical href=https://lruihao.cn/tags/hexo-theme-next/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hexo-theme-next/\"></head></html>"
  },
  {
    "path": "tags/homebrew/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Homebrew - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/homebrew/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Homebrew - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Homebrew\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-12-15T15:33:30+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/homebrew/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Homebrew\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Homebrew\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/homebrew/ title=\"Homebrew | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/homebrew/index.xml title=\"Homebrew | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/homebrew/feed.json title=\"Homebrew | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/homebrew/feed.json title=\"Homebrew | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/homebrew/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Homebrew</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Homebrew <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/homebrew/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/homebrew/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Homebrew - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/homebrew/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/homebrew/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/homebrew/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/homebrew/</title><link rel=canonical href=https://lruihao.cn/tags/homebrew/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/homebrew/\"></head></html>"
  },
  {
    "path": "tags/html/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"HTML - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"聊聊 Chrome 新增的 sizes=\\\"auto\\\" 属性\",\"date_published\":\"2024-02-21T10:00:13&#43;08:00\",\"date_modified\":\"2024-02-21T11:06:12&#43;08:00\",\"id\":\"https://lruihao.cn/posts/auto-sizes/\",\"url\":\"https://lruihao.cn/posts/auto-sizes/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\"],\"summary\":\"聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\n\",\"content_html\":\"\\u003cp\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性。\\u003c/p\\u003e\"},{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"},{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"date_published\":\"2019-05-10T13:08:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ifzhushi/\",\"url\":\"https://lruihao.cn/posts/ifzhushi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"他山之石\"],\"summary\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cspan\\u003e\\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"前端面试题 - HTML+CSS\",\"date_published\":\"2019-03-30T22:58:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ms-html-css/\",\"url\":\"https://lruihao.cn/posts/ms-html-css/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"CSS\"],\"summary\":\" 原文链接\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\n如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/ltadpoles/web-document/tree/master/Other\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原文链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/html/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HTML - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"HTML\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-02-21T10:00:13+08:00\"><meta itemprop=dateModified content=\"2024-02-21T11:06:12+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/html/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HTML\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HTML\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/html/ title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/html/index.xml title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/html/feed.json title=\"HTML | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/html/feed.json title=\"HTML | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/html/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HTML</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>HTML <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/auto-sizes/ class=archive-item-link>聊聊 Chrome 新增的 Sizes=\"auto\" 属性</a>\n<span class=archive-item-date title='2024-02-21 10:00:13'>02-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/ifzhushi/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a>\n<span class=archive-item-date title='2019-05-10 13:08:27'>05-10</span></article><article class=archive-item><a href=/posts/ms-html-css/ class=archive-item-link>前端面试题 - HTML+CSS</a>\n<span class=archive-item-date title='2019-03-30 22:58:39'>03-30</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/html/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/html/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>HTML - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/html/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 21 Feb 2024 11:06:12 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/html/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>聊聊 Chrome 新增的 sizes=\"auto\" 属性</title><link>https://lruihao.cn/posts/auto-sizes/</link><pubDate>Wed, 21 Feb 2024 10:00:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/auto-sizes/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性。&lt;/p&gt;</description></item><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>条件注释判断浏览器版本&lt;!--[if lt IE 9]&gt;;</title><link>https://lruihao.cn/posts/ifzhushi/</link><pubDate>Fri, 10 May 2019 13:08:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ifzhushi/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;span&gt;&amp;lt;!--[if !IE]&amp;gt;&amp;lt;!--&amp;gt; 除 IE 外都可识别 &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE]&amp;gt; 所有的 IE 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 6]&amp;gt; 仅 IE6 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 6]&amp;gt; IE6 以及 IE6 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 6]&amp;gt; IE6 以及 IE6 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 7]&amp;gt; 仅 IE7 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 7]&amp;gt; IE7 以及 IE7 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 7]&amp;gt; IE7 以及 IE7 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 8]&amp;gt; 仅 IE8 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 9]&amp;gt; 仅 IE9 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>前端面试题 - HTML+CSS</title><link>https://lruihao.cn/posts/ms-html-css/</link><pubDate>Sat, 30 Mar 2019 22:58:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ms-html-css/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原文链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n“卓越班”到了大三突然掀起一股毕业慌，一部分人投身于考研的热潮中，一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训，选择自学 java 和 web 相关的知识，也希望因此能在以后谋得一份心仪的工作。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;如果文章中有出现纰漏、错误之处，还请看到的小伙伴多多指教，先行谢过&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/html/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/html/</title><link rel=canonical href=https://lruihao.cn/tags/html/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/html/\"></head></html>"
  },
  {
    "path": "tags/html-css-javascript/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"html-css-javascript - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\",\"date_published\":\"2024-09-13T02:36:29Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/html-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"html-css-javascript\"],\"summary\":\"HTML demos 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"html-demos\\\" data-decreased\\u003e\\u003cspan\\u003eHTML demos\\u003c/span\\u003e\\n  \\u003ca href=\\\"#html-demos\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"文件预览\\\"\\u003e\\u003cspan\\u003e文件预览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e直接浏览器打开 \\u003ccode\\u003esrc\\u003c/code\\u003e 目录下的 HTML 文件。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/html-css-javascript/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>html-css-javascript - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"html-css-javascript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-09-13T02:36:29+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/html-css-javascript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"html-css-javascript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"html-css-javascript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/html-css-javascript/ title=\"html-css-javascript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/html-css-javascript/index.xml title=\"html-css-javascript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/html-css-javascript/feed.json title=\"html-css-javascript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/html-css-javascript/feed.json title=\"html-css-javascript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/html-css-javascript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Html-Css-Javascript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>html-css-javascript <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/lruihao/html-demo/ class=archive-item-link>Lruihao/html-demo</a>\n<span class=archive-item-date title='2024-09-13 02:36:29'>09-13</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/html-css-javascript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/html-css-javascript/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>html-css-javascript - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/html-css-javascript/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:30 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/html-css-javascript/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</title><link>https://lruihao.cn/projects/lruihao/html-demo/</link><pubDate>Fri, 13 Sep 2024 02:36:29 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/html-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"html-demos\" data-decreased&gt;&lt;span&gt;HTML demos&lt;/span&gt;\n &lt;a href=\"#html-demos\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"文件预览\"&gt;&lt;span&gt;文件预览&lt;/span&gt;\n &lt;a href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;直接浏览器打开 &lt;code&gt;src&lt;/code&gt; 目录下的 HTML 文件。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/html-css-javascript/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/html-css-javascript/</title><link rel=canonical href=https://lruihao.cn/tags/html-css-javascript/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/html-css-javascript/\"></head></html>"
  },
  {
    "path": "tags/http/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"HTTP - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 发送 post 请求进行简单的接口测试\",\"date_published\":\"2019-05-07T18:17:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/posttest/\",\"url\":\"https://lruihao.cn/posts/posttest/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"summary\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\nrequests.get() requests.post()\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003erequests.get()\\u003c/li\\u003e\\n\\u003cli\\u003erequests.post()\\u003cbr\\u003e\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "tags/http/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>HTTP - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"HTTP\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-03-25T08:22:42+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/http/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"HTTP\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"HTTP\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/http/ title=\"HTTP | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/http/index.xml title=\"HTTP | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/http/feed.json title=\"HTTP | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/http/feed.json title=\"HTTP | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/http/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>HTTP</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>HTTP <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/posttest/ class=archive-item-link>Python 发送 Post 请求进行简单的接口测试</a>\n<span class=archive-item-date title='2019-05-07 18:17:05'>05-07</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/http/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/http/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>HTTP - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/http/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/http/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>新冠疫情未返校未返工第 N 天之“自动打卡”</title><link>https://lruihao.cn/posts/daka/</link><pubDate>Wed, 25 Mar 2020 08:22:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/daka/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;这件事还得从一只蝙蝠说起 &amp;hellip;&lt;br&gt;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &amp;hellip;&lt;br&gt;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &amp;hellip;&lt;br&gt;\n我和潇 X 巴哥确定思路后兵分两路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；&lt;/li&gt;\n&lt;li&gt;我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；&lt;/li&gt;\n&lt;/ol&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>RESTful</title><link>https://lruihao.cn/posts/restful/</link><pubDate>Thu, 14 Nov 2019 19:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/restful/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\">计算机网络</category><description>&lt;blockquote&gt;\n&lt;p&gt;RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 &lt;a href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RFC5789&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 发送 post 请求进行简单的接口测试</title><link>https://lruihao.cn/posts/posttest/</link><pubDate>Tue, 07 May 2019 18:17:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/posttest/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;requests.get()&lt;/li&gt;\n&lt;li&gt;requests.post()&lt;br&gt;\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/http/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/http/</title><link rel=canonical href=https://lruihao.cn/tags/http/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/http/\"></head></html>"
  },
  {
    "path": "tags/hugo/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Hugo - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"自动获取 GitHub README 内容添加到 Hugo 文章\",\"date_published\":\"2024-10-06T11:10:22&#43;08:00\",\"date_modified\":\"2024-10-06T12:21:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/content-adapters/\",\"url\":\"https://lruihao.cn/posts/content-adapters/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"GitHub API\"],\"image\":\"https://lruihao.cn/posts/content-adapters/featured-image.webp\",\"summary\":\"在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\n\",\"content_html\":\"\\u003cp\\u003e在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Using frequently-used Hugo commands by shell.\",\"date_published\":\"2022-09-04T04:18:42Z\",\"date_modified\":\"2025-09-12T09:38:50Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\"],\"summary\":\"Hugo Shell Using frequently-used Hugo commands by shell.\\nDownload Add a submodule for your Hugo blog project.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shell\\\" data-decreased\\u003e\\u003cspan\\u003eHugo Shell\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shell\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eUsing frequently-used Hugo commands by shell.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"download\\\"\\u003e\\u003cspan\\u003eDownload\\u003c/span\\u003e\\n  \\u003ca href=\\\"#download\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eAdd a submodule for your Hugo blog project.\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"date_published\":\"2021-10-05T19:33:13&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"url\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"Shortcodes\"],\"summary\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e卡片式链接已整合到 FixIt 主题\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\\n\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e回顧\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e之前在使用 hexo 的時候也有用到，\\u003ca href=\\\"/posts/linkcard/\\\"\\u003e模仿知乎卡片式链接\\u003c/a\\u003e\\u003cbr\\u003e\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\u003cbr\\u003e\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Hugo 友情連結模板\",\"date_published\":\"2021-10-05T14:14:10&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-friends/\",\"url\":\"https://lruihao.cn/posts/hugo-friends/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\"],\"summary\":\" 過程 以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e過程\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e友情鏈接模板已整合到 FixIt 主題\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Hugo 本地管理 Shell 腳本\",\"date_published\":\"2021-10-04T23:49:00&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-admin/\",\"url\":\"https://lruihao.cn/posts/hugo-admin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"shell\"],\"image\":\"/posts/hugo-admin/images/hugo-admin1.png\",\"summary\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition abstract open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-clipboard-list\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\u003cbr\\u003e\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"个人博客从 Hexo 迁移至 Hugo\",\"date_published\":\"2021-10-03T15:27:58&#43;08:00\",\"date_modified\":\"2024-11-06T19:42:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"url\":\"https://lruihao.cn/posts/hexo-to-hugo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"Hexo\",\"hugo\"],\"summary\":\" 电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/hugo/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Hugo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo/ title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo/index.xml title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo/feed.json title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo/feed.json title=\"Hugo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Hugo <sup>28</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2026-05-04 16:54:23'>更新于 05-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2026-04-20 07:20:15'>更新于 04-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/posts/content-adapters/ class=archive-item-link>自动获取 GitHub README 内容添加到 Hugo 文章</a>\n<span class=archive-item-date title='2024-10-06 11:10:22'>10-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>hugo-fixit/hugo-json-feed</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-shell/ class=archive-item-link>hugo-fixit/hugo-shell</a>\n<span class=archive-item-date title='2022-09-04 04:18:42'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/posts/hugo-cardlink/ class=archive-item-link>Hugo 添加知乎卡片式链接 Shortcodes</a>\n<span class=archive-item-date title='2021-10-05 19:33:13'>10-05</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/hugo/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/hugo/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/666ed43a5283cf26881a402d93328d8c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/666ed43a5283cf26881a402d93328d8c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Hugo - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>自动获取 GitHub README 内容添加到 Hugo 文章</title><link>https://lruihao.cn/posts/content-adapters/</link><pubDate>Sun, 06 Oct 2024 11:10:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/content-adapters/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在这个博客中，我经常会写一些关于开源项目的文章，而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步，我希望能够自动获取 GitHub 仓库的 README 内容，然后添加到 Hugo 文章中。这样，我就不用再手动复制粘贴 README 内容了。&lt;/p&gt;</description></item><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>怎么生成暗黑模式和明亮模式的 SVG 图片？</title><link>https://lruihao.cn/posts/svg-dark-light/</link><pubDate>Thu, 06 Jun 2024 22:13:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/svg-dark-light/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Using frequently-used Hugo commands by shell.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</link><pubDate>Sun, 04 Sep 2022 04:18:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-shell/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shell\" data-decreased&gt;&lt;span&gt;Hugo Shell&lt;/span&gt;\n &lt;a href=\"#hugo-shell\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Using frequently-used Hugo commands by shell.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"download\"&gt;&lt;span&gt;Download&lt;/span&gt;\n &lt;a href=\"#download\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Add a submodule for your Hugo blog project.&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Hugo 添加知乎卡片式链接 Shortcodes</title><link>https://lruihao.cn/posts/hugo-cardlink/</link><pubDate>Tue, 05 Oct 2021 19:33:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-cardlink/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;卡片式链接已整合到 FixIt 主题&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;\n&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;回顧&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;之前在使用 hexo 的時候也有用到，&lt;a href=\"https://lruihao.cn/posts/linkcard/\"&gt;模仿知乎卡片式链接&lt;/a&gt;&lt;br&gt;\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，&lt;br&gt;\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo I18n 添加中文繁體翻譯</title><link>https://lruihao.cn/posts/hugo-i18n-zh-tw/</link><pubDate>Tue, 05 Oct 2021 19:14:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-i18n-zh-tw/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Hugo 友情連結模板</title><link>https://lruihao.cn/posts/hugo-friends/</link><pubDate>Tue, 05 Oct 2021 14:14:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-friends/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;過程&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;以前的 hexo 博客是自己寫的友鏈模板，換到 hugo 後想著在網上隨便找一個範本用著就好，然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的，代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;友情鏈接模板已整合到 FixIt 主題&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Hugo 本地管理 Shell 腳本</title><link>https://lruihao.cn/posts/hugo-admin/</link><pubDate>Mon, 04 Oct 2021 23:49:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-admin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition abstract open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。&lt;br&gt;\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo/</title><link rel=canonical href=https://lruihao.cn/tags/hugo/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo/\"></head></html>"
  },
  {
    "path": "tags/hugo/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Hugo - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Hugo\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Hugo\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Hugo\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo/ title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo/index.xml title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo/feed.json title=\"Hugo | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo/feed.json title=\"Hugo | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Hugo <sup>28</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article><article class=archive-item><a href=/posts/hugo-friends/ class=archive-item-link>Hugo 友情連結模板</a>\n<span class=archive-item-date title='2021-10-05 14:14:10'>10-05</span></article><article class=archive-item><a href=/posts/hugo-admin/ class=archive-item-link>Hugo 本地管理 Shell 腳本</a>\n<span class=archive-item-date title='2021-10-04 23:49:00'>10-04</span></article><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><article class=archive-item><a href=/posts/hexo-to-hugo/ class=archive-item-link>个人博客从 Hexo 迁移至 Hugo</a>\n<span class=archive-item-date title='2021-10-03 15:27:58'>10-03</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/hugo/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/hugo/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/666ed43a5283cf26881a402d93328d8c.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/666ed43a5283cf26881a402d93328d8c.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-blog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-blog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-blog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-blog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-09-30T09:28:41+00:00\"><meta itemprop=dateModified content=\"2026-05-06T14:32:49+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-blog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-blog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-blog/ title=\"hugo-blog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-blog/index.xml title=\"hugo-blog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-blog/feed.json title=\"hugo-blog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-blog/feed.json title=\"hugo-blog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Blog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-blog <sup>5</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2026-05-06 02:33:31'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-blog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-blog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-blog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 14:32:49 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-blog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-blog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-blog/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-blog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-blog/\"></head></html>"
  },
  {
    "path": "tags/hugo-blog-template/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-blog-template - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-blog-template/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-blog-template - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-blog-template\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-09-30T09:28:41+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-blog-template/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-blog-template\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-blog-template\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-blog-template/ title=\"hugo-blog-template | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-blog-template/index.xml title=\"hugo-blog-template | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-blog-template/feed.json title=\"hugo-blog-template | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-blog-template/feed.json title=\"hugo-blog-template | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-blog-template/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Blog-Template</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-blog-template <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2026-05-06 02:33:31'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-blog-template/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-blog-template/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-blog-template - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-blog-template/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:16 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-blog-template/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-blog-template/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-blog-template/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-blog-template/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-blog-template/\"></head></html>"
  },
  {
    "path": "tags/hugo-blog-theme/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-blog-theme - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-blog-theme/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-blog-theme - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-blog-theme\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-blog-theme/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-blog-theme\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-blog-theme\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-blog-theme/ title=\"hugo-blog-theme | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-blog-theme/index.xml title=\"hugo-blog-theme | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-blog-theme/feed.json title=\"hugo-blog-theme | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-blog-theme/feed.json title=\"hugo-blog-theme | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-blog-theme/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Blog-Theme</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-blog-theme <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-blog-theme/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-blog-theme/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-blog-theme - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-blog-theme/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-blog-theme/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-blog-theme/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-blog-theme/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-blog-theme/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-blog-theme/\"></head></html>"
  },
  {
    "path": "tags/hugo-fixit/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-fixit - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"📄 The open-source repo for fixit.lruihao.cn\",\"date_published\":\"2022-07-23T12:17:06Z\",\"date_modified\":\"2026-05-06T14:32:49Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/docs/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"documentation\",\"hugo\",\"hugo-blog\",\"hugo-fixit\"],\"summary\":\"FixIt 主题文档 👉 中文 | English\\nFixIt 主题文档主要分为：文档、教程 两大板块，欢迎大家发起 PR 完善主题文档。\\n系统依赖 Node.js: \\u0026gt;= 20.0.0 Go Hugo: \\u0026gt;= 0.156.0 (extended version) 贡献文档 首先，点击 fork 按钮 fork 本仓库。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-主题文档\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt 主题文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Production_8233419177081912330.svg' alt=\\\"Production environment\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题文档主要分为：\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/guides/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 两大板块，欢迎大家发起 PR 完善主题文档。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 20.0.0\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e: \\u0026gt;= 0.156.0 (extended version)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"贡献文档\\\"\\u003e\\u003cspan\\u003e贡献文档\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先，点击 fork 按钮 fork 本仓库。\\u003c/p\\u003e\"},{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"},{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-fixit/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-fixit - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-fixit\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-12-24T03:31:47+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-fixit/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-fixit\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-fixit\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-fixit/ title=\"hugo-fixit | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-fixit/index.xml title=\"hugo-fixit | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-fixit/feed.json title=\"hugo-fixit | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-fixit/feed.json title=\"hugo-fixit | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-fixit/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Fixit</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-fixit <sup>15</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2026-05-06 14:32:49'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2026-05-06 02:33:31'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article><article class=archive-item><a href=/projects/hugo-fixit/docs/ class=archive-item-link>hugo-fixit/docs</a>\n<span class=archive-item-date title='2022-07-23 12:17:06'>07-23</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-fixit/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-fixit/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-fixit - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-fixit/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-fixit/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>📄 The open-source repo for fixit.lruihao.cn</title><link>https://lruihao.cn/projects/hugo-fixit/docs/</link><pubDate>Sat, 23 Jul 2022 12:17:06 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/docs/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased&gt;&lt;span&gt;FixIt 主题文档&lt;/span&gt;\n &lt;a href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"&gt;&lt;/a&gt;\n&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题文档主要分为：&lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 两大板块，欢迎大家发起 PR 完善主题文档。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 20.0.0&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;: &amp;gt;= 0.156.0 (extended version)&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"贡献文档\"&gt;&lt;span&gt;贡献文档&lt;/span&gt;\n &lt;a href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先，点击 fork 按钮 fork 本仓库。&lt;/p&gt;</description></item><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-fixit/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-fixit/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-fixit/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-fixit/\"></head></html>"
  },
  {
    "path": "tags/hugo-fixit-starter/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-fixit-starter - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\",\"date_published\":\"2022-09-30T09:28:41Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Go） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门，请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板go\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Go）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题。如果你更熟悉 Git，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter1\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\n▸ go.mod\\n▸ go.sum\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门，请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\",\"date_published\":\"2022-09-27T15:23:38Z\",\"date_modified\":\"2026-05-06T02:33:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"blog\",\"hugo-blog\",\"hugo-blog-template\",\"hugo-fixit\",\"hugo-fixit-starter\"],\"summary\":\"Hugo FixIt 博客模板（Git） 👉 中文 | English\\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go，可以 查看这个模板。\\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-fixit-博客模板git\\\" data-decreased\\u003e\\u003cspan\\u003eHugo FixIt 博客模板（Git）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e这是 Hugo 主题 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的快速启动模板。它使用 \\u003ca href=\\\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 子模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能来加载主题。如果你更熟悉 Go，可以 \\u003ca href=\\\"https://github.com/hugo-fixit/hugo-fixit-starter\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e查看这个模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003cp\\u003e它提供了基本的主题结构和 \\u003ca href=\\\"https://gohugo.io/configuration/introduction/#configuration-directory\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e配置目录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003csup id=\\\"fnref:1\\\"\\u003e\\u003ca href=\\\"#fn:1\\\" class=\\\"footnote-ref\\\" role=\\\"doc-noteref\\\"\\u003e1\\u003c/a\\u003e\\u003c/sup\\u003e。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"目录结构\\\"\\u003e\\u003cspan\\u003e目录结构\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e▸ .github/       # GitHub configuration\\n▸ archetypes/    # page archetypes (like scaffolds of archetypes)\\n▸ assets/        # css, js, third-party libraries etc.\\n▸ config/        # configuration files\\n▸ content/       # markdown files for hugo project\\n▸ data/          # blog data (allow: yaml, json, toml), e.g. friends.yml\\n▸ public/        # build directory\\n▸ static/        # static files, e.g. favicon.ico\\n▸ themes/        # theme submodules\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快速入门\\\"\\u003e\\u003cspan\\u003e快速入门\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e完整的快速入门请参阅此 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/getting-started/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-fixit-starter/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-fixit-starter - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-fixit-starter\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-09-30T09:28:41+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-fixit-starter/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-fixit-starter\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-fixit-starter\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-fixit-starter/ title=\"hugo-fixit-starter | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-fixit-starter/index.xml title=\"hugo-fixit-starter | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-fixit-starter/feed.json title=\"hugo-fixit-starter | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-fixit-starter/feed.json title=\"hugo-fixit-starter | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-fixit-starter/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Fixit-Starter</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-fixit-starter <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2026-05-06 02:33:31'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter/ class=archive-item-link>hugo-fixit/hugo-fixit-starter</a>\n<span class=archive-item-date title='2022-09-30 09:28:41'>09-30</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-fixit-starter1/ class=archive-item-link>hugo-fixit/hugo-fixit-starter1</a>\n<span class=archive-item-date title='2022-09-27 15:23:38'>09-27</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-fixit-starter/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-fixit-starter/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-fixit-starter - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-fixit-starter/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:16 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-fixit-starter/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</link><pubDate>Fri, 30 Sep 2022 09:28:41 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Go）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题。如果你更熟悉 Git，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每天自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门，请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</link><pubDate>Tue, 27 Sep 2022 15:23:38 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased&gt;&lt;span&gt;Hugo FixIt 博客模板（Git）&lt;/span&gt;\n &lt;a href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 中文 | &lt;a href=\"README.en.md\"&gt;English&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;这是 Hugo 主题 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的快速启动模板。它使用 &lt;a href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 子模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能来加载主题。如果你更熟悉 Go，可以 &lt;a href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;查看这个模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;\n&lt;p&gt;它提供了基本的主题结构和 &lt;a href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;配置目录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;sup id=\"fnref:1\"&gt;&lt;a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"&gt;1&lt;/a&gt;&lt;/sup&gt;。已经设置了 GitHub Actions，可以自动部署博客到 GitHub Pages。此外，还有一个定时任务，每周周日 00:00 自动更新主题。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"目录结构\"&gt;&lt;span&gt;目录结构&lt;/span&gt;\n &lt;a href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快速入门\"&gt;&lt;span&gt;快速入门&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;完整的快速入门请参阅此 &lt;a href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-fixit-starter/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-fixit-starter/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-fixit-starter/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-fixit-starter/\"></head></html>"
  },
  {
    "path": "tags/hugo-site/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-site - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Lruihao's Note\",\"date_published\":\"2021-09-08T12:52:53Z\",\"date_modified\":\"2026-05-06T03:02:13Z\",\"id\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/hugo-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"front-end\",\"hugo\",\"hugo-blog\",\"hugo-fixit\",\"hugo-site\"],\"summary\":\"菠菜眾長 站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\nContent 博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e菠菜眾長\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\\\"Hugo\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/badge_1895496655215000366.svg' alt=\\\"Hugo build and deploy\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/hugo-blog/commits/main\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/main_9310684978766761497.svg' alt=\\\"GitHub commit activity (main)\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\\\"blog-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"content\\\"\\u003e\\u003cspan\\u003eContent\\u003c/span\\u003e\\n  \\u003ca href=\\\"#content\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-site/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-site - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-site\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-09-08T12:52:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:13+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-site/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-site\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-site\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-site/ title=\"hugo-site | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-site/index.xml title=\"hugo-site | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-site/feed.json title=\"hugo-site | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-site/feed.json title=\"hugo-site | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-site/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Site</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-site <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2026-05-06 03:02:13'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/lruihao/hugo-blog/ class=archive-item-link>Lruihao/hugo-blog</a>\n<span class=archive-item-date title='2021-09-08 12:52:53'>09-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-site/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-site/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-site - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-site/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:13 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-site/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Lruihao's Note</title><link>https://lruihao.cn/projects/lruihao/hugo-blog/</link><pubDate>Wed, 08 Sep 2021 12:52:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/hugo-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;菠菜眾長&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;站名“菠菜眾長”，取“兼收並蓄，博採眾長”之意。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"content\"&gt;&lt;span&gt;Content&lt;/span&gt;\n &lt;a href=\"#content\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;博客内容主要以 Web 前端开发方向为主，分享一些有趣程序、技巧、开发教程、心情和学习记录等。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-site/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-site/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-site/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-site/\"></head></html>"
  },
  {
    "path": "tags/hugo-theme/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hugo-theme - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/hugo-theme/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hugo-theme - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hugo-theme\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hugo-theme/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hugo-theme\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hugo-theme\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hugo-theme/ title=\"hugo-theme | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hugo-theme/index.xml title=\"hugo-theme | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hugo-theme/feed.json title=\"hugo-theme | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hugo-theme/feed.json title=\"hugo-theme | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hugo-theme/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hugo-Theme</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hugo-theme <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hugo-theme/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hugo-theme/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hugo-theme - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hugo-theme/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hugo-theme/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hugo-theme/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hugo-theme/</title><link rel=canonical href=https://lruihao.cn/tags/hugo-theme/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hugo-theme/\"></head></html>"
  },
  {
    "path": "tags/husky/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"husky - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/husky/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>husky - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"husky\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-12T10:58:44+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/husky/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"husky\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"husky\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/husky/ title=\"husky | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/husky/index.xml title=\"husky | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/husky/feed.json title=\"husky | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/husky/feed.json title=\"husky | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/husky/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Husky</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>husky <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/husky/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/husky/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>husky - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/husky/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 06 Aug 2024 14:11:51 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/husky/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/husky/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/husky/</title><link rel=canonical href=https://lruihao.cn/tags/husky/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/husky/\"></head></html>"
  },
  {
    "path": "tags/hustoj/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"hustoj - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/hustoj/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>hustoj - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"hustoj\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/hustoj/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"hustoj\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"hustoj\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/hustoj/ title=\"hustoj | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/hustoj/index.xml title=\"hustoj | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/hustoj/feed.json title=\"hustoj | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/hustoj/feed.json title=\"hustoj | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/hustoj/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Hustoj</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>hustoj <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/hustoj/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/hustoj/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>hustoj - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/hustoj/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/hustoj/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/hustoj/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/hustoj/</title><link rel=canonical href=https://lruihao.cn/tags/hustoj/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/hustoj/\"></head></html>"
  },
  {
    "path": "tags/i18n/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"I18n - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"Hugo I18n 添加中文繁體翻譯\",\"date_published\":\"2021-10-05T19:14:45&#43;08:00\",\"date_modified\":\"2021-12-19T20:01:45&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"url\":\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"FixIt\",\"hugo\",\"I18n\"],\"summary\":\" 工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/i18n/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>I18n - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"I18n\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-12-02T07:29:57+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/i18n/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"I18n\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"I18n\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/i18n/ title=\"I18n | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/i18n/index.xml title=\"I18n | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/i18n/feed.json title=\"I18n | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/i18n/feed.json title=\"I18n | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/i18n/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>I18n</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>I18n <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-i18n-zh-tw/ class=archive-item-link>Hugo I18n 添加中文繁體翻譯</a>\n<span class=archive-item-date title='2021-10-05 19:14:45'>10-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/i18n/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/i18n/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>I18n - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/i18n/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:30 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/i18n/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Hugo I18n 添加中文繁體翻譯</title><link>https://lruihao.cn/posts/hugo-i18n-zh-tw/</link><pubDate>Tue, 05 Oct 2021 19:14:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-i18n-zh-tw/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;工作上一直常用繁體，最近臨帖也都寫的繁體，所以博客的語言也想換成繁體，但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/i18n/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/i18n/</title><link rel=canonical href=https://lruihao.cn/tags/i18n/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/i18n/\"></head></html>"
  },
  {
    "path": "tags/imageio/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"imageio - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/imageio/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>imageio - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"imageio\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-27T14:16:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/imageio/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"imageio\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"imageio\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/imageio/ title=\"imageio | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/imageio/index.xml title=\"imageio | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/imageio/feed.json title=\"imageio | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/imageio/feed.json title=\"imageio | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/imageio/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Imageio</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>imageio <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/imageio/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/imageio/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>imageio - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/imageio/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/imageio/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/imageio/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/imageio/</title><link rel=canonical href=https://lruihao.cn/tags/imageio/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/imageio/\"></head></html>"
  },
  {
    "path": "tags/imgurl/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ImgURL - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"宝塔面板安装 ImgURL 图床\",\"date_published\":\"2019-05-16T20:31:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/imgurl/\",\"url\":\"https://lruihao.cn/posts/imgurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ImgURL\",\"宝塔面板\"],\"image\":\"/posts/imgurl/images/1.png\",\"summary\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\\n\\u003ca href=\\\"https://www.xiaoz.me/archives/12081\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e阅读原文\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/imgurl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ImgURL - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ImgURL\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-16T20:31:33+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/imgurl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ImgURL\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ImgURL\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/imgurl/ title=\"ImgURL | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/imgurl/index.xml title=\"ImgURL | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/imgurl/feed.json title=\"ImgURL | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/imgurl/feed.json title=\"ImgURL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/imgurl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ImgURL</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ImgURL <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/imgurl/ class=archive-item-link>宝塔面板安装 ImgURL 图床</a>\n<span class=archive-item-date title='2019-05-16 20:31:33'>05-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/imgurl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/imgurl/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ImgURL - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/imgurl/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/imgurl/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>宝塔面板安装 ImgURL 图床</title><link>https://lruihao.cn/posts/imgurl/</link><pubDate>Thu, 16 May 2019 20:31:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/imgurl/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n&lt;a href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;阅读原文&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/imgurl/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/imgurl/</title><link rel=canonical href=https://lruihao.cn/tags/imgurl/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/imgurl/\"></head></html>"
  },
  {
    "path": "tags/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>所有标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"tags\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-12-24T03:31:47+00:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:08+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"tags\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"tags\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/ title=\"tags | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=\"menu-item active\"><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=\"menu-item active\"><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i>所有标签 <sup>241</sup></h1><div class=\"tags tag-cloud-tags\"><a href=/tags/@layer/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>@layer <sup>1</sup></a><a href=/tags/2018-%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B/ class=tag-item data-grade=5 style=--fi-tag-cloud-font:23px>2018 湘潭邀请赛 <sup>6</sup></a><a href=/tags/acm/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>acm <sup>48</sup></a><a href=/tags/adb/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>ADB <sup>1</sup></a><a href=/tags/algolia/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>algolia <sup>1</sup></a><a href=/tags/android/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Android <sup>1</sup></a><a href=/tags/asciinema/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>asciinema <sup>1</sup></a><a href=/tags/async/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>async <sup>1</sup></a><a href=/tags/atom/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>atom <sup>1</sup></a><a href=/tags/auto-changelog/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>auto-changelog <sup>2</sup></a><a href=/tags/autocorrect/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>AutoCorrect <sup>1</sup></a><a href=/tags/aws/ class=tag-item data-grade=4 style=--fi-tag-cloud-font:21.2px>AWS <sup>5</sup></a><a href=/tags/backend/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>backend <sup>1</sup></a><a href=/tags/bat/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>bat <sup>1</sup></a><a href=/tags/beego/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Beego <sup>1</sup></a><a href=/tags/bfs/ class=tag-item data-grade=4 style=--fi-tag-cloud-font:21.2px>BFS <sup>5</sup></a><a href=/tags/blog/ class=tag-item data-grade=5 style=--fi-tag-cloud-font:23px>blog <sup>6</sup></a><a href=/tags/box-shadow/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>box-shadow <sup>1</sup></a><a href=/tags/browser/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>Browser <sup>2</sup></a><a href=/tags/c/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>C <sup>25</sup></a><a href=/tags/c++/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>C++ <sup>39</sup></a><a href=/tags/caddy/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>caddy <sup>1</sup></a><a href=/tags/caniuse/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>caniuse <sup>1</sup></a><a href=/tags/caniuse-embed/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>caniuse-embed <sup>2</sup></a><a href=/tags/canvas/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>canvas <sup>1</sup></a><a href=/tags/cdn/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>CDN <sup>2</sup></a><a href=/tags/cell-watermark/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>cell-watermark <sup>1</sup></a><a href=/tags/changelog/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>changelog <sup>1</sup></a><a href=/tags/cjk/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>cjk <sup>1</sup></a><a href=/tags/codeforces/ class=tag-item data-grade=7 style=--fi-tag-cloud-font:26.6px>Codeforces <sup>8</sup></a><a href=/tags/codereview/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>codereview <sup>1</sup></a><a href=/tags/collator/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Collator <sup>1</sup></a><a href=/tags/comparator/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Comparator <sup>1</sup></a><a href=/tags/continuous-integration/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>continuous-integration <sup>1</sup></a><a href=/tags/conventional-changelog/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>conventional-changelog <sup>2</sup></a><a href=/tags/conventional-commits/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>conventional-commits <sup>2</sup></a><a href=/tags/cos-album/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>cos-album <sup>1</sup></a><a href=/tags/cos-bucket/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>cos-bucket <sup>1</sup></a><a href=/tags/cosalbum/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>CosAlbum <sup>1</sup></a><a href=/tags/coverview/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>CoverView <sup>1</sup></a><a href=/tags/cron/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>Cron <sup>3</sup></a><a href=/tags/css/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>CSS <sup>15</sup></a><a href=/tags/custom-element/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>Custom element <sup>2</sup></a><a href=/tags/custom-elements/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>custom-elements <sup>1</sup></a><a href=/tags/dashboard/ class=tag-item data-grade=6 style=--fi-tag-cloud-font:24.8px>dashboard <sup>7</sup></a><a href=/tags/debug/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>debug <sup>3</sup></a><a href=/tags/defer/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>defer <sup>1</sup></a><a href=/tags/design-patterns/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Design Patterns <sup>1</sup></a><a href=/tags/dfs/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>DFS <sup>4</sup></a><a href=/tags/documentation/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>documentation <sup>1</sup></a><a href=/tags/drop-shadow/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>drop-shadow <sup>1</sup></a><a href=/tags/eager/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>eager <sup>1</sup></a><a href=/tags/eclipse/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>eclipse <sup>1</sup></a><a href=/tags/editor/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>editor <sup>1</sup></a><a href=/tags/el-table/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>el-table <sup>1</sup></a><a href=/tags/el-table-sticky/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>el-table-sticky <sup>1</sup></a><a href=/tags/electron/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>electron <sup>1</sup></a><a href=/tags/element-ui/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>element-ui <sup>2</sup></a><a href=/tags/english/ class=tag-item data-grade=4 style=--fi-tag-cloud-font:21.2px>English <sup>5</sup></a><a href=/tags/eruda/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>eruda <sup>1</sup></a><a href=/tags/es6/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>ES6 <sup>1</sup></a><a href=/tags/eslint/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>eslint <sup>1</sup></a><a href=/tags/euler/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>euler <sup>1</sup></a><a href=/tags/feed/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>feed <sup>1</sup></a><a href=/tags/fixit/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>FixIt <sup>4</sup></a><a href=/tags/fixit-cli/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>fixit-cli <sup>1</sup></a><a href=/tags/fixit-docs-bookmark/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>fixit-docs-bookmark <sup>1</sup></a><a href=/tags/flexbox/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Flexbox <sup>1</sup></a><a href=/tags/font/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>font <sup>1</sup></a><a href=/tags/front-end/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>front-end <sup>1</sup></a><a href=/tags/frontend/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>frontend <sup>1</sup></a><a href=/tags/fusion/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>fusion <sup>1</sup></a><a href=/tags/giscus/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>giscus <sup>1</sup></a><a href=/tags/git/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>Git <sup>13</sup></a><a href=/tags/github-api/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>GitHub API <sup>1</sup></a><a href=/tags/github-actions/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>GitHub Actions <sup>3</sup></a><a href=/tags/go/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Go <sup>1</sup></a><a href=/tags/gravatar/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>Gravatar <sup>3</sup></a><a href=/tags/gtd/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>GTD <sup>1</sup></a><a href=/tags/gui/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>GUI <sup>2</sup></a><a href=/tags/hdu/ class=tag-item data-grade=7 style=--fi-tag-cloud-font:26.6px>HDU <sup>8</sup></a><a href=/tags/hexo/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>Hexo <sup>17</sup></a><a href=/tags/hexo-theme-next/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>hexo-theme-next <sup>1</sup></a><a href=/tags/homebrew/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Homebrew <sup>1</sup></a><a href=/tags/html/ class=tag-item data-grade=5 style=--fi-tag-cloud-font:23px>HTML <sup>6</sup></a><a href=/tags/html-css-javascript/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>html-css-javascript <sup>1</sup></a><a href=/tags/http/ class=tag-item data-grade=4 style=--fi-tag-cloud-font:21.2px>HTTP <sup>5</sup></a><a href=/tags/hugo/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>Hugo <sup>28</sup></a><a href=/tags/hugo-blog/ class=tag-item data-grade=4 style=--fi-tag-cloud-font:21.2px>hugo-blog <sup>5</sup></a><a href=/tags/hugo-blog-template/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>hugo-blog-template <sup>2</sup></a><a href=/tags/hugo-blog-theme/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>hugo-blog-theme <sup>1</sup></a><a href=/tags/hugo-fixit/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>hugo-fixit <sup>15</sup></a><a href=/tags/hugo-fixit-starter/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>hugo-fixit-starter <sup>2</sup></a><a href=/tags/hugo-site/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>hugo-site <sup>1</sup></a><a href=/tags/hugo-theme/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>hugo-theme <sup>1</sup></a><a href=/tags/husky/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>husky <sup>1</sup></a><a href=/tags/hustoj/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>hustoj <sup>1</sup></a><a href=/tags/i18n/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>I18n <sup>2</sup></a><a href=/tags/imageio/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>imageio <sup>1</sup></a><a href=/tags/imgurl/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>ImgURL <sup>1</sup></a><a href=/tags/invert-filter/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>invert filter <sup>1</sup></a><a href=/tags/java/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>java <sup>21</sup></a><a href=/tags/javascript/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>javascript <sup>28</sup></a><a href=/tags/jieba/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>jieba <sup>1</sup></a><a href=/tags/json/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>JSON <sup>2</sup></a><a href=/tags/json-feed/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>json-feed <sup>1</sup></a><a href=/tags/laravel/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>Laravel <sup>3</sup></a><a href=/tags/laravel-blog/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>laravel-blog <sup>1</sup></a><a href=/tags/layui/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Layui <sup>1</sup></a><a href=/tags/lazy/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>lazy <sup>1</sup></a><a href=/tags/leancloud/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>leancloud <sup>1</sup></a><a href=/tags/less/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Less <sup>1</sup></a><a href=/tags/lightbox/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Lightbox <sup>1</sup></a><a href=/tags/linux/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>linux <sup>13</sup></a><a href=/tags/loading/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>loading <sup>1</sup></a><a href=/tags/lua/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>lua <sup>1</sup></a><a href=/tags/mac/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>Mac <sup>4</sup></a><a href=/tags/markdown/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>Markdown <sup>4</sup></a><a href=/tags/markdownlint/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>markdownlint <sup>1</sup></a><a href=/tags/mermaid/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Mermaid <sup>1</sup></a><a href=/tags/minder/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>minder <sup>1</sup></a><a href=/tags/mmt/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>mmt <sup>2</sup></a><a href=/tags/mysql/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>MySQL <sup>2</sup></a><a href=/tags/netbeans/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>NetBeans <sup>1</sup></a><a href=/tags/netease-cloud-music/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>netease-cloud-music <sup>1</sup></a><a href=/tags/newline/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>newline <sup>1</sup></a><a href=/tags/nginx/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>nginx <sup>2</sup></a><a href=/tags/ngrok/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>ngrok <sup>1</sup></a><a href=/tags/node.js/ class=tag-item data-grade=9 style=--fi-tag-cloud-font:30.2px>Node.js <sup>10</sup></a><a href=/tags/nodejs/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>nodejs <sup>2</sup></a><a href=/tags/nowcoder/ class=tag-item data-grade=5 style=--fi-tag-cloud-font:23px>Nowcoder <sup>6</sup></a><a href=/tags/npm/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>npm <sup>3</sup></a><a href=/tags/npx/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>npx <sup>1</sup></a><a href=/tags/numpy/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>numpy <sup>1</sup></a><a href=/tags/nvm/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>nvm <sup>3</sup></a><a href=/tags/os/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>OS <sup>1</sup></a><a href=/tags/pangu.js/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>pangu.js <sup>1</sup></a><a href=/tags/php/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>PHP <sup>11</sup></a><a href=/tags/pillow/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>pillow <sup>2</sup></a><a href=/tags/poj/ class=tag-item data-grade=8 style=--fi-tag-cloud-font:28.4px>POJ <sup>9</sup></a><a href=/tags/prefers-color-scheme/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>prefers-color-scheme <sup>1</sup></a><a href=/tags/proxy/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>proxy <sup>1</sup></a><a href=/tags/pwa/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>pwa <sup>1</sup></a><a href=/tags/pwa-app/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>pwa-app <sup>1</sup></a><a href=/tags/pyecharts/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>pyecharts <sup>1</sup></a><a href=/tags/pyinstaller/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>pyinstaller <sup>2</sup></a><a href=/tags/python/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>Python <sup>16</sup></a><a href=/tags/react/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>React <sup>1</sup></a><a href=/tags/redirect/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>redirect <sup>2</sup></a><a href=/tags/regex/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>regex <sup>1</sup></a><a href=/tags/rest/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>REST <sup>2</sup></a><a href=/tags/reward-log/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>reward-log <sup>1</sup></a><a href=/tags/rolldown/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>rolldown <sup>1</sup></a><a href=/tags/round/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>round <sup>1</sup></a><a href=/tags/sass/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>Sass <sup>1</sup></a><a href=/tags/scaffolding-tool/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>scaffolding-tool <sup>1</sup></a><a href=/tags/scrollbar-styling/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>scrollbar-styling <sup>1</sup></a><a href=/tags/scss/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>Scss <sup>4</sup></a><a href=/tags/semver/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>SemVer <sup>3</sup></a><a href=/tags/server/ class=tag-item data-grade=6 style=--fi-tag-cloud-font:24.8px>server <sup>7</sup></a><a href=/tags/shadow-dom/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>Shadow DOM <sup>2</sup></a><a href=/tags/shell/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>shell <sup>3</sup></a><a href=/tags/shortcodes/ class=tag-item data-grade=7 style=--fi-tag-cloud-font:26.6px>Shortcodes <sup>8</sup></a><a href=/tags/slot/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>slot <sup>2</sup></a><a href=/tags/sort/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>sort <sup>2</sup></a><a href=/tags/ssh/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>SSH <sup>1</sup></a><a href=/tags/ssl/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>SSL <sup>1</sup></a><a href=/tags/stl/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>STL <sup>2</sup></a><a href=/tags/stringbuffer/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>StringBuffer <sup>1</sup></a><a href=/tags/study-notes/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>study-notes <sup>1</sup></a><a href=/tags/sublime/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>Sublime <sup>2</sup></a><a href=/tags/summary/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>summary <sup>1</sup></a><a href=/tags/svg/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>SVG <sup>2</sup></a><a href=/tags/tailwindcss/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>tailwindcss <sup>1</sup></a><a href=/tags/template/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>template <sup>2</sup></a><a href=/tags/termux/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>termux <sup>2</sup></a><a href=/tags/theme-component/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>theme-component <sup>12</sup></a><a href=/tags/thinkphp/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>ThinkPHP <sup>1</sup></a><a href=/tags/translatejs/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>translatejs <sup>1</sup></a><a href=/tags/turtle/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>turtle <sup>1</sup></a><a href=/tags/typescript/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>TypeScript <sup>1</sup></a><a href=/tags/ubuntu/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>ubuntu <sup>4</sup></a><a href=/tags/urlconnection/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>URLConnection <sup>2</sup></a><a href=/tags/v-height-adaptive/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>v-height-adaptive <sup>1</sup></a><a href=/tags/v-sticky-footer/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>v-sticky-footer <sup>1</sup></a><a href=/tags/v-sticky-h-scroll/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>v-sticky-h-scroll <sup>1</sup></a><a href=/tags/v-sticky-header/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>v-sticky-header <sup>1</sup></a><a href=/tags/vconsole/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>vconsole <sup>1</sup></a><a href=/tags/vercel/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>vercel <sup>3</sup></a><a href=/tags/vim/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>vim <sup>1</sup></a><a href=/tags/vue/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>vue <sup>4</sup></a><a href=/tags/vue-directive/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>vue-directive <sup>1</sup></a><a href=/tags/vue2/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>Vue2 <sup>22</sup></a><a href=/tags/vue3/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>vue3 <sup>3</sup></a><a href=/tags/wamp/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>WAMP <sup>1</sup></a><a href=/tags/watermark/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>watermark <sup>2</sup></a><a href=/tags/web-components/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>web-components <sup>1</sup></a><a href=/tags/web-development/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>web-development <sup>1</sup></a><a href=/tags/webfont/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>webfont <sup>1</sup></a><a href=/tags/widget/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>widget <sup>3</sup></a><a href=/tags/windows/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>windows <sup>4</sup></a><a href=/tags/wxpy/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>wxpy <sup>3</sup></a><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>宝塔面板 <sup>3</sup></a><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>背包问题 <sup>2</sup></a><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ class=tag-item data-grade=6 style=--fi-tag-cloud-font:24.8px>并查集 <sup>7</sup></a><a href=/tags/%E7%A3%81%E7%9B%98/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>磁盘 <sup>1</sup></a><a href=/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>大数运算 <sup>1</sup></a><a href=/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>对象存储 <sup>1</sup></a><a href=/tags/%E6%B3%9B%E5%9E%8B/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>泛型 <sup>1</sup></a><a href=/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>黑盒测试 <sup>1</sup></a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>计算机数据 <sup>1</sup></a><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>计算机组成与体系结构 <sup>2</sup></a><a href=/tags/%E5%8A%A0%E5%AF%86/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>加密 <sup>1</sup></a><a href=/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>脚手架 <sup>1</sup></a><a href=/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>快速幂 <sup>1</sup></a><a href=/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>流水线 <sup>1</sup></a><a href=/tags/%E9%9D%A2%E8%AF%95/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>面试 <sup>1</sup></a><a href=/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>面向对象 <sup>1</sup></a><a href=/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>沐目体 <sup>1</sup></a><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>欧几里得 <sup>2</sup></a><a href=/tags/%E6%95%B0%E8%AE%BA/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>数论 <sup>4</sup></a><a href=/tags/%E6%95%B0%E5%AD%A6/ class=tag-item data-grade=8 style=--fi-tag-cloud-font:28.4px>数学 <sup>9</sup></a><a href=/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>水仙花数 <sup>1</sup></a><a href=/tags/%E6%90%9C%E7%B4%A2/ class=tag-item data-grade=8 style=--fi-tag-cloud-font:28.4px>搜索 <sup>9</sup></a><a href=/tags/%E9%9A%8F%E7%AC%94/ class=tag-item data-grade=5 style=--fi-tag-cloud-font:23px>随笔 <sup>6</sup></a><a href=/tags/%E9%9A%8F%E6%83%B3/ class=tag-item data-grade=1 style=--fi-tag-cloud-font:15.8px>随想 <sup>2</sup></a><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ class=tag-item data-grade=10 style=--fi-tag-cloud-font:32px>他山之石 <sup>14</sup></a><a href=/tags/%E8%B4%AA%E5%BF%83/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>贪心 <sup>1</sup></a><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>腾讯云 cos 桶 <sup>3</sup></a><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ class=tag-item data-grade=6 style=--fi-tag-cloud-font:24.8px>拖拽式仪表盘 <sup>7</sup></a><a href=/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>网站备案 <sup>1</sup></a><a href=/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>位运算 <sup>1</sup></a><a href=/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>需求分析 <sup>1</sup></a><a href=/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>杨辉三角 <sup>1</sup></a><a href=/tags/%E4%BA%91%E7%9B%98/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>云盘 <sup>1</sup></a><a href=/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>在线离线算法 <sup>1</sup></a><a href=/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>字数统计 <sup>1</sup></a><a href=/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/ class=tag-item data-grade=0 style=--fi-tag-cloud-font:14px>字体压缩 <sup>1</sup></a><a href=/tags/summary/ class=tag-item data-grade=6 style=--fi-tag-cloud-font:24.8px>总结 <sup>7</sup></a><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ class=tag-item data-grade=3 style=--fi-tag-cloud-font:19.4px>组合数学 <sup>4</sup></a><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=tag-item data-grade=2 style=--fi-tag-cloud-font:17.6px>最短路 <sup>3</sup></a></div></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/invert-filter/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"invert filter - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/invert-filter/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>invert filter - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"invert filter\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/invert-filter/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"invert filter\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"invert filter\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/invert-filter/ title=\"invert filter | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/invert-filter/index.xml title=\"invert filter | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/invert-filter/feed.json title=\"invert filter | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/invert-filter/feed.json title=\"invert filter | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/invert-filter/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Invert Filter</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>invert filter <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/invert-filter/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/invert-filter/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>invert filter - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/invert-filter/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/invert-filter/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/invert-filter/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/invert-filter/</title><link rel=canonical href=https://lruihao.cn/tags/invert-filter/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/invert-filter/\"></head></html>"
  },
  {
    "path": "tags/java/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"java - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"架构之基：从根儿上了解设计原则\",\"date_published\":\"2024-06-09T02:24:31&#43;08:00\",\"date_modified\":\"2024-06-09T02:57:55&#43;08:00\",\"id\":\"https://lruihao.cn/posts/design-principles/\",\"url\":\"https://lruihao.cn/posts/design-principles/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Design Patterns\",\"Java\"],\"summary\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\",\"content_html\":\"设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"date_published\":\"2019-05-06T17:41:35&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-urlreader/\",\"url\":\"https://lruihao.cn/posts/java-urlreader/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"URLConnection\",\"Java\"],\"summary\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"文件加密解密（字节流）\",\"date_published\":\"2019-05-02T23:04:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/byteio/\",\"url\":\"https://lruihao.cn/posts/byteio/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\n这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。\\u003c/p\\u003e\\n\\u003cp\\u003e这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模拟借书系统（java 异常练习）\",\"date_published\":\"2019-05-01T16:52:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/javaexception/\",\"url\":\"https://lruihao.cn/posts/javaexception/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"image\":\"/posts/javaexception/images/1.png\",\"content_html\":\"模拟借书系统（java 异常练习）\"},{\"title\":\"用记事本编写第一个 java 程序\",\"date_published\":\"2019-04-19T19:49:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hellojava/\",\"url\":\"https://lruihao.cn/posts/hellojava/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以.java为后缀的文件；然后将这些源程序用javac编译成.class后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\njavac java \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以\\u003ccode\\u003e.java\\u003c/code\\u003e为后缀的文件；然后将这些源程序用\\u003ccode\\u003ejavac\\u003c/code\\u003e编译成\\u003ccode\\u003e.class\\u003c/code\\u003e后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\\u003cbr\\u003e\\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003ejavac\\u003c/li\\u003e\\n\\u003cli\\u003ejava\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 正则表达式练习\",\"date_published\":\"2019-04-18T22:04:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-regex/\",\"url\":\"https://lruihao.cn/posts/java-regex/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"regex\",\"Java\"],\"summary\":\"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\"); String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\\"匹配结果：\\\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的 p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\"); // 验证没有区号的 if (str.length() \\u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" + \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" + \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"邮箱\\\"\\u003e\\u003cspan\\u003e7 邮箱\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%82%ae%e7%ae%b1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexDemo {\\n    public static void main(String[] args) {\\n//       Pattern 类 正则表达式的编译表示。\\n        Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\");\\n        String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"};\\n        for (String email :\\n                emails) {\\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\\n            Matcher matcher = pattern.matcher(email);\\n            System.out.println(email + \\\"匹配结果：\\\" + matcher.matches());\\n        }\\n    }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003eadmin@lruihao.cn 匹配结果：true\\nlruihao.cn 匹配结果：false\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"电话\\\"\\u003e\\u003cspan\\u003e8 电话\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b5%e8%af%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epackage base;\\n\\nimport java.util.Scanner;\\nimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexTest {\\n  public static void main(String[] args) {\\n    Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\");\\n    Scanner sc=new Scanner(System.in);\\n    String telnum=sc.nextLine();\\n    sc.close();\\n    Matcher matcher=patter.matcher(telnum);\\n    System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches());\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 获取当前的 httpSession\\n * @return\\n */\\npublic static HttpSession getSession() {\\n return getRequest().getSession();\\n}\\n/**\\n * 手机号验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isMobile(final String str) {\\n  Pattern p = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号\\n  m = p.matcher(str);\\n  b = m.matches();\\n  return b;\\n}\\n/**\\n * 电话号码验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isPhone(final String str) {\\n  Pattern p1 = null, p2 = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的\\n  p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\");     // 验证没有区号的\\n  if (str.length() \\u003e 9) {\\n    m = p1.matcher(str);\\n    b = m.matches();\\n  } else {\\n    m = p2.matcher(str);\\n    b = m.matches();\\n  }\\n  return b;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"身份证\\\"\\u003e\\u003cspan\\u003e9 身份证\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ba%ab%e4%bb%bd%e8%af%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/* 身份证正则表达式 16 或 18 */\\n   public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" +\\n           \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" +\\n           \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"},{\"title\":\"Java 父类子类的对象初始化过程\",\"date_published\":\"2019-03-21T13:36:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/substatus/\",\"url\":\"https://lruihao.cn/posts/substatus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 泛型 test\",\"date_published\":\"2019-03-16T13:56:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fanxing/\",\"url\":\"https://lruihao.cn/posts/fanxing/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"泛型\",\"Java\"],\"summary\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;)\\u003c/li\\u003e\\n\\u003cli\\u003e类型通配符一般使用问号\\u003ccode\\u003e?\\u003c/code\\u003e代替具体的类型\\u003ccode\\u003e实\\u003c/code\\u003e参，注意不是类型形参。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"eclipse 的基本使用\",\"date_published\":\"2019-03-15T23:47:24&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/eclipseuse/\",\"url\":\"https://lruihao.cn/posts/eclipseuse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"eclipse\",\"Java\"],\"summary\":\"9 基本使用 A: 选择一个工作空间 D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace B: 如何写一个 HelloWorld 案例（代码以项目为基本单位） a: 创建项目（工程） *File -- New -- Java Project *在左边空白处，直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译，在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了） B: 去掉默认注释（可以不用改） C: 行号的显示和隐藏 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。 隐藏：把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色： window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了，怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击）12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本使用\\\"\\u003e\\u003cspan\\u003e9 基本使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 选择一个工作空间\\n  D:\\\\develop\\\\eclipse-SDK-3.7.2-win64\\\\workspace\\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\\n  a: 创建项目（工程）\\n    *File -- New -- Java Project\\n    *在左边空白处，直接右键 -- New -- Java Project\\n\\n    键入项目名称后直接 Finish。\\n  b: 所有的 java 文件必须写到 src 下面才有效\\n  c: 创建一个包\\n    cn.lruihao\\n  d: 在包下创建一个类\\n    HelloWorld\\n\\n    同时让它帮我们写好了 main 方法。\\n  e: 在 main 方法中写内容即可\\n  f: 编译程序\\n    自动编译，在保存的那一刻帮你做好了\\n  g: 运行程序\\n    选择要运行的文件或者在要运行的文件内容中\\n    右键 -- Run as - Java Application 即可\\n  h: 内容显示\\n    在 Console 控制台显示内容\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-的基本设置\\\"\\u003e\\u003cspan\\u003e10 Eclipse 的基本设置\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\\nB: 去掉默认注释（可以不用改）\\nC: 行号的显示和隐藏\\n  显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\\n  隐藏：把上面的动作再做一次。\\nD: 字体大小及颜色\\n  a:Java 代码区域的字体大小和颜色：\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\\n  b: 控制台\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\\n  c: 其他文件\\n    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\\nE: 窗体给弄乱了，怎么办\\n  window -- Reset Perspective\\nF: 控制台找不到了\\n  Window--Show View—Console\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"快捷键的使用\\\"\\u003e\\u003cspan\\u003e11 快捷键的使用\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 内容辅助键\\n  Alt+/ 起提示作用\\n  main+alt+/,syso+alt+/, 给出其他提示\\nB: 快捷键\\n  格式化  ctrl+shift+f\\n  导入包  ctrl+shift+o\\n  注释  ctrl+/\\n    ctrl+shift+/,ctrl+shift+\\\\\\n  代码上下移动 选中代码 alt+上/下箭头\\n  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击）\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"eclipse-中如何提高开发效率\\\"\\u003e\\u003cspan\\u003e12 Eclipse 中如何提高开发效率\\u003c/span\\u003e\\n  \\u003ca href=\\\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eA: 自动生成构造方法\\n  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\\n  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\\nB: 自动生成 get/set 方法\\n  在代码区域右键--source--Generate Getters and Setters...\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"匿名类在可视化界面中的应用\",\"date_published\":\"2019-03-15T22:31:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qframe/\",\"url\":\"https://lruihao.cn/posts/qframe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"Java\"],\"summary\":\" java 中匿名类用的最多的地方就是可视化界面设计中，特别是将事件监听器注册到某个组件上的时候。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ejava 中匿名类用的最多的地方就是可视化界面设计中，特别是将\\u003ccode\\u003e事件监听器\\u003c/code\\u003e注册到某个组件上的时候。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 继承 test\",\"date_published\":\"2019-01-24T15:07:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jicheng/\",\"url\":\"https://lruihao.cn/posts/jicheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 引用 继承的好处：\\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系，是多态的前提 继承的弊端：类的耦合性很强\\n设计原则：低耦合，高内聚。\\n耦合：类与类的关系。 内聚：自己完成事情的能力。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e引用\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e继承的好处：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e提高了代码的复用性\\u003c/li\\u003e\\n\\u003cli\\u003e提高了代码的维护性\\u003c/li\\u003e\\n\\u003cli\\u003e让类与类之间产生了关系，是多态的前提\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e继承的弊端：类的耦合性很强\\u003c/p\\u003e\\n\\u003cp\\u003e设计原则：低耦合，高内聚。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e耦合：类与类的关系。\\u003c/li\\u003e\\n\\u003cli\\u003e内聚：自己完成事情的能力。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Arrays 类及基本使用\",\"date_published\":\"2019-01-18T13:13:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-arrays/\",\"url\":\"https://lruihao.cn/posts/java-arrays/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\",\"Collator\",\"Comparator\"],\"summary\":\"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"主要方法\\\"\\u003e\\u003cspan\\u003e7 主要方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003estatic type[] copyof(type[] original,int length)\\u003c/li\\u003e\\n\\u003cli\\u003estatic int binarysearch(type[] a,type key)\\u003c/li\\u003e\\n\\u003cli\\u003estatic boolean equals(type[] a,type[] b)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\\u003c/li\\u003e\\n\\u003cli\\u003estatic void sort(type[] a)\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"java 猜数字小游戏（Math 类）\",\"date_published\":\"2019-01-15T17:33:28&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mathclass/\",\"url\":\"https://lruihao.cn/posts/mathclass/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\" 大一刚学 c 的时候以前写过 c 语言版 的。\\nMath: 针对数学进行运算的类 特点：没有构造方法，因为它的成员都是静态的 产生随机数： public static double random(): 产生随机数，范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大一刚学 c 的时候以前写过 \\u003ca href=\\\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ec 语言版\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003eMath: 针对数学进行运算的类\\u003c/li\\u003e\\n\\u003cli\\u003e特点：没有构造方法，因为它的成员都是静态的\\u003c/li\\u003e\\n\\u003cli\\u003e产生随机数：\\npublic static double random(): 产生随机数，范围 [0.0,1.0)\\u003c/li\\u003e\\n\\u003cli\\u003e产生 1-100 之间的随机数\\nint number = (int)(Math.random()*100)+1;\\u003c/li\\u003e\\n\\u003cli\\u003e猜数字小游戏案例\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"面向对象基础知识总结\",\"date_published\":\"2019-01-15T16:07:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/duixiang/\",\"url\":\"https://lruihao.cn/posts/duixiang/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面向对象\",\"Java\"],\"summary\":\"35 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\\nA: 是一种更符合我们思考习惯的思想\\nB: 把复杂的问题简单化\\nC: 让我们从执行者变成了指挥者 举例：\\nA: 洗衣服\\nB: 吃饭\\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\\n学生 类\\n张三 对象 37 类的组成（掌握） 成员变量\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\\n其实就是方法，只不过不需要 static 了 案例：\\n学生类 class Student { String name; int age; public void study() {} }38 类的使用（掌握） 创建对象\\n格式：类名 对象名 = new 类名 (); 使用成员\\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); 39 成员变量和局部变量的区别（理解） 在类中的位置不同\\nA: 成员变量 类中，方法外\\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\\nA: 成员变量 在堆中\\nB: 局部变量 在栈中 生命周期不同\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\\nA: 成员变量 有默认初始化值\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 40 形式参数问题（理解） 基本类型\\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 41 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\\nA: 调用方法，仅仅只调用一次\\nB: 作为实际参数传递 42 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\\nA: 隐藏实现细节，提供公共的访问方式\\nB: 提高了代码的复用性\\nC: 提高了代码的安全性 使用原则\\nA: 把成员变量隐藏\\nB: 给出该成员变量对应的公共访问方式 43 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字（掌握） this：代表本类的对象 应用场景：\\n解决了局部变量隐藏成员变量的问题。\\n其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } public void study() { System.out.println(\\\"学生爱学习\\\"); } public void eat() { System.out.println(\\\"学生要吃饭\\\"); } public void sleep() { System.out.println(\\\"学生想睡觉\\\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\\"姓名是：\\\"+s.getName()); System.out.println(\\\"年龄是：\\\"+s.getAge()); } }45 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\\nA: 方法名和类名相同\\nB: 没有返回值类型\\nC: 没有返回值 注意事项\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\\nA: 无参+setXxx()\\nB: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\\\"张曼玉\\\",20); ss.show(); } }46 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\\nA: 加载 Student.class 文件进内存\\nB: 在栈中为 s 开辟空间\\nC: 在堆中为学生对象开辟空间\\nD: 为学生对象的成员变量赋默认值\\nE: 为学生对象的成员变量赋显示值\\nF: 通过构造方法给成员变量赋值\\nG: 对象构造完毕，把地址赋值给 s 变量 47 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\\nA: 随着类的加载而加载\\nB: 优先于对象存在\\nC: 被所有对象共享\\n这也是判断我们是不是该使用静态的条件\\n举例：饮水机（可共享 static) 和水杯例子。\\nD: 可以通过类名调用\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\\nA: 普通成员方法\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\nB: 静态成员方法\\n只能访问静态成员变量，静态成员方法\\n简记：静态只能访问静态\\n注意：\\n静态中是不能有 this 的。\\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\"); s1.show(); /* Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\"); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\"); s3.show(); */ Student s2 = new Student(\\\"马云\\\",35); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33); s3.show(); } }/* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\\"show\\\"); } public static void show2() { System.out.println(\\\"show2\\\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026ensp; } }/* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\\"林青霞\\\"); } }48 静态成员变量和普通成员变量的区别（理解） 所属不同\\n静态属于类的，称为类变量\\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\\n静态在方法区的静态区\\n非静态在堆内存 生命周期不同\\n静态随着类的加载而加载，随着类的消失而消失\\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\n非静态只能通过对象名调用 49 main 方法是静态的（理解） public static void main(String[] args)public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\nString[] args:\\n早期出现是为了接收键盘录入数据的。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"面向对象思想理解\\\"\\u003e\\u003cspan\\u003e35 面向对象思想（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e面向对象是基于面向过程的一种编程思想\\u003c/li\\u003e\\n\\u003cli\\u003e思想特点：\\u003cbr\\u003e\\nA: 是一种更符合我们思考习惯的思想\\u003cbr\\u003e\\nB: 把复杂的问题简单化\\u003cbr\\u003e\\nC: 让我们从执行者变成了指挥者\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\nA: 洗衣服\\u003cbr\\u003e\\nB: 吃饭\\u003cbr\\u003e\\nC: 买电脑\\u003c/li\\u003e\\n\\u003cli\\u003e举例并代码体现\\n把大象装进冰箱\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类与对象掌握\\\"\\u003e\\u003cspan\\u003e36 类与对象（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\\u003c/li\\u003e\\n\\u003cli\\u003e现实世界事物是如何表达的呢？\\n属性：外在特征\\u003cbr\\u003e\\n行为：内在行为\\u003c/li\\u003e\\n\\u003cli\\u003e我们学习的是 java 语言，它最基本的单位是类。\\u003cbr\\u003e\\n所以我们要学会用类来体现一个事物。\\u003c/li\\u003e\\n\\u003cli\\u003e类：是一组相关的属性和行为的集合\\u003c/li\\u003e\\n\\u003cli\\u003e对象：是该类事物的具体个体。\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\n学生 类\\u003cbr\\u003e\\n张三 对象\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的组成掌握\\\"\\u003e\\u003cspan\\u003e37 类的组成（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e成员变量\\u003cbr\\u003e\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e成员方法\\u003cbr\\u003e\\n其实就是方法，只不过不需要 static 了\\u003c/li\\u003e\\n\\u003cli\\u003e案例：\\u003cbr\\u003e\\n学生类\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  String name;\\n  int age;\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的使用掌握\\\"\\u003e\\u003cspan\\u003e38 类的使用（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e创建对象\\u003cbr\\u003e\\n格式：类名 对象名 = new 类名 ();\\u003c/li\\u003e\\n\\u003cli\\u003e使用成员\\u003cbr\\u003e\\n成员变量：对象名。变量名；\\n成员方法：对象名。方法名 (\\u0026hellip;);\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"成员变量和局部变量的区别理解\\\"\\u003e\\u003cspan\\u003e39 成员变量和局部变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e在类中的位置不同\\u003cbr\\u003e\\nA: 成员变量 类中，方法外\\u003cbr\\u003e\\nB: 局部变量 方法的形式参数，或者方法体中\\u003c/li\\u003e\\n\\u003cli\\u003e在内存中的位置不同\\u003cbr\\u003e\\nA: 成员变量 在堆中\\u003cbr\\u003e\\nB: 局部变量 在栈中\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\u003cbr\\u003e\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\\u003c/li\\u003e\\n\\u003cli\\u003e初始化值不同\\u003cbr\\u003e\\nA: 成员变量 有默认初始化值\\u003cbr\\u003e\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"形式参数问题理解\\\"\\u003e\\u003cspan\\u003e40 形式参数问题（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e基本类型\\u003cbr\\u003e\\n基本类型作为形式参数，需要的是该基本类型的值。\\u003c/li\\u003e\\n\\u003cli\\u003e引用类型\\u003cbr\\u003e\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"匿名对象理解\\\"\\u003e\\u003cspan\\u003e41 匿名对象（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e匿名对象：没有名字的对象。是对象的简化书写方式。\\u003c/li\\u003e\\n\\u003cli\\u003e使用场景\\u003cbr\\u003e\\nA: 调用方法，仅仅只调用一次\\u003cbr\\u003e\\nB: 作为实际参数传递\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"封装掌握\\\"\\u003e\\u003cspan\\u003e42 封装（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e隐藏实现细节，提供公共的访问方式\\u003c/li\\u003e\\n\\u003cli\\u003e好处：\\u003cbr\\u003e\\nA: 隐藏实现细节，提供公共的访问方式\\u003cbr\\u003e\\nB: 提高了代码的复用性\\u003cbr\\u003e\\nC: 提高了代码的安全性\\u003c/li\\u003e\\n\\u003cli\\u003e使用原则\\u003cbr\\u003e\\nA: 把成员变量隐藏\\u003cbr\\u003e\\nB: 给出该成员变量对应的公共访问方式\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"private-关键字掌握\\\"\\u003e\\u003cspan\\u003e43 private 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个权限修饰符\\u003c/li\\u003e\\n\\u003cli\\u003e可以修饰类的成员（成员变量和成员方法）\\u003c/li\\u003e\\n\\u003cli\\u003e仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  private String name;\\n  private int age;\\n\\n  public void setName(String n) {\\n   name = n;\\n  }\\n\\n  public String getName() {\\n   return name;\\n  }\\n\\n  public void setAge(int a) {\\n   age = a;\\n  }\\n\\n  public int getAge() {\\n   return age;\\n  }\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"this-关键字掌握\\\"\\u003e\\u003cspan\\u003e44 this 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003ethis：代表本类的对象\\u003c/li\\u003e\\n\\u003cli\\u003e应用场景：\\u003cbr\\u003e\\n解决了局部变量隐藏成员变量的问题。\\u003cbr\\u003e\\n其他用法和 super 一起讲。\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public void setName(String name) {//局部变量\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n\\n    public void study() {\\n      System.out.println(\\\"学生爱学习\\\");\\n    }\\n\\n    public void eat() {\\n      System.out.println(\\\"学生要吃饭\\\");\\n    }\\n\\n    public void sleep() {\\n      System.out.println(\\\"学生想睡觉\\\");\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      Student s = new Student();\\n\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n\\n      s.show();\\n      s.study();\\n      s.eat();\\n      s.sleep();\\n\\n      System.out.println(\\\"姓名是：\\\"+s.getName());\\n      System.out.println(\\\"年龄是：\\\"+s.getAge());\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"构造方法掌握\\\"\\u003e\\u003cspan\\u003e45 构造方法（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e作用：对对象的数据进行初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\nA: 方法名和类名相同\\u003cbr\\u003e\\nB: 没有返回值类型\\u003cbr\\u003e\\nC: 没有返回值\\u003c/li\\u003e\\n\\u003cli\\u003e注意事项\\u003cbr\\u003e\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\u003cbr\\u003e\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\u003cbr\\u003e\\n建议：我们自己手动给出无参构造方法\\u003c/li\\u003e\\n\\u003cli\\u003e给成员变量赋值：\\u003cbr\\u003e\\nA: 无参+setXxx()\\u003cbr\\u003e\\nB: 带参\\u003c/li\\u003e\\n\\u003cli\\u003e一个标准的代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public Student() {}\\n\\n    public Student(String name,int age) {//构造方法\\n      this.name = name;\\n      this.age = age;\\n    }\\n\\n    public void setName(String name) {\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      //无参+setXxx()\\n      Student s = new Student();\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n      s.show();\\n\\n      //带参\\n      Student ss = new Student(\\\"张曼玉\\\",20);\\n      ss.show();\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"对象的初始化过程理解\\\"\\u003e\\u003cspan\\u003e46 对象的初始化过程（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eStudent s = new Student(); 做了哪些事情\\u003cbr\\u003e\\nA: 加载 Student.class 文件进内存\\u003cbr\\u003e\\nB: 在栈中为 s 开辟空间\\u003cbr\\u003e\\nC: 在堆中为学生对象开辟空间\\u003cbr\\u003e\\nD: 为学生对象的成员变量赋默认值\\u003cbr\\u003e\\nE: 为学生对象的成员变量赋显示值\\u003cbr\\u003e\\nF: 通过构造方法给成员变量赋值\\u003cbr\\u003e\\nG: 对象构造完毕，把地址赋值给 s 变量\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"static-关键字掌握\\\"\\u003e\\u003cspan\\u003e47 static 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个状态修饰符。静态的意思\\u003c/li\\u003e\\n\\u003cli\\u003e它可以修饰成员变量和成员方法\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\n\\u003cstrong\\u003eA: 随着类的加载而加载\\u003cbr\\u003e\\nB: 优先于对象存在\\u003cbr\\u003e\\nC: 被所有对象共享\\u003c/strong\\u003e\\u003cbr\\u003e\\n这也是判断我们是不是该使用静态的条件\\u003cbr\\u003e\\n举例：饮水机（可共享 static) 和水杯例子。\\u003cbr\\u003e\\nD: 可以通过类名调用\\u003cbr\\u003e\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用\\u003c/li\\u003e\\n\\u003cli\\u003e方法访问特点\\u003cbr\\u003e\\nA: 普通成员方法\\u003cbr\\u003e\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\u003cbr\\u003e\\nB: 静态成员方法\\u003cbr\\u003e\\n\\u003cstrong\\u003e只能访问静态成员变量，静态成员方法\\u003cbr\\u003e\\n简记：静态只能访问静态\\u003c/strong\\u003e\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n\\u003cstrong\\u003e静态中是不能有 this 的。\\u003cbr\\u003e\\n先进内存的不能访问后进内存的。反之可以。\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\\n *\\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\\n */\\nclass Student {\\n  //姓名\\n  String name;\\n  //年龄\\n  int age;\\n  //班级编号\\n  //String classNumber;\\n  static String classNumber;\\n\\n  public Student(String name,int age) {\\n    this.name = name;\\n    this.age = age;\\n  }\\n\\n  public Student(String name,int age,String classNumber) {\\n    this.name = name;\\n    this.age = age;\\n    this.classNumber = classNumber;\\n  }\\n\\n  public void show() {\\n    System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber);\\n  }\\n}\\n\\nclass StudentDemo {\\n  public static void main(String[] args) {\\n    //创建学生对象\\n    Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\");\\n    s1.show();\\n\\n    /*\\n    Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\");\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\");\\n    s3.show();\\n    */\\n    Student s2 = new Student(\\\"马云\\\",35);\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33);\\n    s3.show();\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static: 静态关键字。\\n\\n  作用：\\n    可以修饰成员变量和成员方法\\n\\n  特点：\\n    A: 随着类的加载而加载\\n    B: 优先于对象存在\\n    C: 被类的所有对象共享\\n      这也是我们判断是否使用静态关键字的条件\\n\\n      饮水机：可以被静态修饰\\n      水杯：不可以被静态修饰\\n    D: 可以通过类名调用\\n      我们的调用既可以是对象，还可以是类名\\n*/\\nclass Student {\\n  public void show() {\\n    System.out.println(\\\"show\\\");\\n  }\\n\\n  public static void show2() {\\n    System.out.println(\\\"show2\\\");\\n  }\\n}\\n\\nclass StudentDemo2 {\\n  public static void main(String[] args) {\\n    Student s = new Student();\\n    s.show();\\n    s.show2();\\n\\n    Student.show2();\\n    //Student.show();\\u0026ensp;\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static 的注意事项：\\n    A: 在静态方法中是没有 this 关键字的\\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\\n    B: 静态只能访问静态。\\n      非静态的成员方法：\\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\n      静态的成员方法：\\n        只能访问静态的成员变量，静态的成员方法\\n*/\\n/*\\nclass Student {\\n  private String name;\\n\\n  public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this\\n    this.name = name;\\n  }\\n\\n  public void show() {\\n    System.out.println(name);\\n  }\\n}*/\\n\\nclass Demo {\\n  int x = 10;\\n  static int y = 20;\\n\\n  public void show() {\\n    System.out.println(x);\\n    System.out.println(y);\\n  }\\n\\n  public static void show2() {\\n    //System.out.println(x);\\u0026ensp;\\n    System.out.println(y);//√\\n  }\\n\\n  public void show3() {\\n    show();\\n    show2();\\n  }\\n\\n  public static void show4() {\\n    //show(); 只能访问静态的成员方法\\n    show2();\\n  }\\n}\\n\\nclass StudentDemo3 {\\n  public static void main(String[] args) {\\n    //Student.setName(\\\"林青霞\\\");\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"静态成员变量和普通成员变量的区别理解\\\"\\u003e\\u003cspan\\u003e48 静态成员变量和普通成员变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e所属不同\\u003cbr\\u003e\\n静态属于类的，称为类变量\\u003cbr\\u003e\\n非静态属于对象的，称为对象变量，实例变量\\u003c/li\\u003e\\n\\u003cli\\u003e内存空间不同\\u003cbr\\u003e\\n静态在方法区的静态区\\u003cbr\\u003e\\n非静态在堆内存\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\n静态随着类的加载而加载，随着类的消失而消失\\u003cbr\\u003e\\n非静态随着对象的创建而存在，随着对象的消失而消失\\u003c/li\\u003e\\n\\u003cli\\u003e调用不同\\u003cbr\\u003e\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\u003cbr\\u003e\\n非静态只能通过对象名调用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"main-方法是静态的理解\\\"\\u003e\\u003cspan\\u003e49 main 方法是静态的（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epublic static void main(String[] args)\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003epublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\u003cbr\\u003e\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\u003cbr\\u003e\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\u003cbr\\u003e\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\u003cbr\\u003e\\nString[] args:\\u003cbr\\u003e\\n早期出现是为了接收键盘录入数据的。\\u003c/p\\u003e\"},{\"title\":\"java 水仙花数（循环）\",\"date_published\":\"2019-01-14T17:30:24&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-range/\",\"url\":\"https://lruihao.cn/posts/java-range/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"水仙花数\",\"Java\"],\"summary\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1\\u003csup\\u003e3 + 5\\u003c/sup\\u003e3+ 3^3 = 153）。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 录入数据\",\"date_published\":\"2019-01-14T15:33:46&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-input/\",\"url\":\"https://lruihao.cn/posts/java-input/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"5 记忆格式 (1) 导包：\\nimport java.util.Scanner;\\n注意：位置在 class 的上面。\\n(2) 创建键盘录入对象：\\nScanner sc = new Scanner(System.in);\\n(3) 获取数据\\nint i = sc.nextInt();\\n(4) 练习：\\nA: 求两个数据的和\\nB: 获取两个数据中较大的值\\nC: 获取三个数据中较大的值\\nD: 比较两个数是否相等\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"记忆格式\\\"\\u003e\\u003cspan\\u003e5 记忆格式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e(1) 导包：\\u003cbr\\u003e\\nimport java.util.Scanner;\\u003cbr\\u003e\\n注意：位置在 class 的上面。\\u003cbr\\u003e\\n(2) 创建键盘录入对象：\\u003cbr\\u003e\\nScanner sc = new Scanner(System.in);\\u003cbr\\u003e\\n(3) 获取数据\\u003cbr\\u003e\\nint i = sc.nextInt();\\u003cbr\\u003e\\n(4) 练习：\\u003cbr\\u003e\\nA: 求两个数据的和\\u003cbr\\u003e\\nB: 获取两个数据中较大的值\\u003cbr\\u003e\\nC: 获取三个数据中较大的值\\u003cbr\\u003e\\nD: 比较两个数是否相等\\u003c/p\\u003e\"},{\"title\":\"java 标识符\",\"date_published\":\"2019-01-14T15:07:57&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/biaoshi/\",\"url\":\"https://lruihao.cn/posts/biaoshi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Java\"],\"summary\":\"1 标识符 给类，接口，方法或者变量起名字的符号\\n2 组成规则 A: 英文字母大小写\\nB: 数字\\nC:_和$\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"标识符\\\"\\u003e\\u003cspan\\u003e1 标识符\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%87%e8%af%86%e7%ac%a6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给类，接口，方法或者变量起名字的符号\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"组成规则\\\"\\u003e\\u003cspan\\u003e2 组成规则\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA: 英文字母大小写\\u003cbr\\u003e\\nB: 数字\\u003cbr\\u003e\\nC:_和$\\u003c/p\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/java/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>java - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"java\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-09T02:24:31+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/java/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/java/ title=\"java | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/java/index.xml title=\"java | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/java/feed.json title=\"java | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/java/feed.json title=\"java | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/java/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>java <sup>21</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/design-principles/ class=archive-item-link>架构之基：从根儿上了解设计原则</a>\n<span class=archive-item-date title='2024-06-09 02:24:31'>06-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a>\n<span class=archive-item-date title='2019-05-06 17:41:35'>05-06</span></article><article class=archive-item><a href=/posts/byteio/ class=archive-item-link>文件加密解密（字节流）</a>\n<span class=archive-item-date title='2019-05-02 23:04:32'>05-02</span></article><article class=archive-item><a href=/posts/javaexception/ class=archive-item-link>模拟借书系统（java 异常练习）</a>\n<span class=archive-item-date title='2019-05-01 16:52:21'>05-01</span></article><article class=archive-item><a href=/posts/hellojava/ class=archive-item-link>用记事本编写第一个 Java 程序</a>\n<span class=archive-item-date title='2019-04-19 19:49:54'>04-19</span></article><article class=archive-item><a href=/posts/java-regex/ class=archive-item-link>Java 正则表达式练习</a>\n<span class=archive-item-date title='2019-04-18 22:04:21'>04-18</span></article><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article><article class=archive-item><a href=/posts/substatus/ class=archive-item-link>Java 父类子类的对象初始化过程</a>\n<span class=archive-item-date title='2019-03-21 13:36:25'>03-21</span></article><article class=archive-item><a href=/posts/fanxing/ class=archive-item-link>Java 泛型 Test</a>\n<span class=archive-item-date title='2019-03-16 13:56:01'>03-16</span></article><article class=archive-item><a href=/posts/eclipseuse/ class=archive-item-link>Eclipse 的基本使用</a>\n<span class=archive-item-date title='2019-03-15 23:47:24'>03-15</span></article><article class=archive-item><a href=/posts/qframe/ class=archive-item-link>匿名类在可视化界面中的应用</a>\n<span class=archive-item-date title='2019-03-15 22:31:28'>03-15</span></article><article class=archive-item><a href=/posts/jicheng/ class=archive-item-link>Java 继承 Test</a>\n<span class=archive-item-date title='2019-01-24 15:07:50'>01-24</span></article><article class=archive-item><a href=/posts/java-arrays/ class=archive-item-link>Arrays 类及基本使用</a>\n<span class=archive-item-date title='2019-01-18 13:13:10'>01-18</span></article><article class=archive-item><a href=/posts/mathclass/ class=archive-item-link>Java 猜数字小游戏（Math 类）</a>\n<span class=archive-item-date title='2019-01-15 17:33:28'>01-15</span></article><article class=archive-item><a href=/posts/duixiang/ class=archive-item-link>面向对象基础知识总结</a>\n<span class=archive-item-date title='2019-01-15 16:07:31'>01-15</span></article><article class=archive-item><a href=/posts/java-range/ class=archive-item-link>Java 水仙花数（循环）</a>\n<span class=archive-item-date title='2019-01-14 17:30:24'>01-14</span></article><article class=archive-item><a href=/posts/java-input/ class=archive-item-link>Java 录入数据</a>\n<span class=archive-item-date title='2019-01-14 15:33:46'>01-14</span></article><article class=archive-item><a href=/posts/biaoshi/ class=archive-item-link>Java 标识符</a>\n<span class=archive-item-date title='2019-01-14 15:07:57'>01-14</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/java/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/java/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/java/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/java/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>java - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/java/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/java/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>架构之基：从根儿上了解设计原则</title><link>https://lruihao.cn/posts/design-principles/</link><pubDate>Sun, 09 Jun 2024 02:24:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/design-principles/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>设计模式不是必须的，但是如果你的代码是“非一次性的”，那么它就是必须的。</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 通过 URL 和 URLConnection 访问网页资源</title><link>https://lruihao.cn/posts/java-urlreader/</link><pubDate>Mon, 06 May 2019 17:41:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-urlreader/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>文件加密解密（字节流）</title><link>https://lruihao.cn/posts/byteio/</link><pubDate>Thu, 02 May 2019 23:04:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/byteio/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;基本功能：给定一个密钥，读取文件内容，加密后，输出到另外一个文件。&lt;/p&gt;\n&lt;p&gt;这里使用文件输入流读取文件内容，然后每个字节和密码进行异或简单加密。加密完成，使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>模拟借书系统（java 异常练习）</title><link>https://lruihao.cn/posts/javaexception/</link><pubDate>Wed, 01 May 2019 16:52:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/javaexception/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>模拟借书系统（java 异常练习）</description></item><item><title>用记事本编写第一个 java 程序</title><link>https://lruihao.cn/posts/hellojava/</link><pubDate>Fri, 19 Apr 2019 19:49:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hellojava/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真，因为在用 java 语言进行程序开发时，首先是以纯文本的方式编写所有的 java 源程序，并保存成以&lt;code&gt;.java&lt;/code&gt;为后缀的文件；然后将这些源程序用&lt;code&gt;javac&lt;/code&gt;编译成&lt;code&gt;.class&lt;/code&gt;后缀名的字节代码文件；字节代码不是被本地处理器执行的代码，而是能够被 java 虚拟机（JVM）执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。&lt;br&gt;\n由于 JVM 可以运行在不同的操作系统上，因此同一个字节代码文件可以跨平台运行。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;javac&lt;/li&gt;\n&lt;li&gt;java&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 正则表达式练习</title><link>https://lruihao.cn/posts/java-regex/</link><pubDate>Thu, 18 Apr 2019 22:04:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-regex/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"邮箱\"&gt;&lt;span&gt;10 邮箱&lt;/span&gt;\n &lt;a href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;import java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(&amp;#34;^[a-zA-Z0-9_!#$%&amp;amp;&amp;#39;*&amp;#43;/=?`{|}~^.-]&amp;#43;@[a-zA-Z0-9.-]&amp;#43;$&amp;#34;);\n String[] emails = {&amp;#34;admin@lruihao.cn&amp;#34;, &amp;#34;lruihao.cn&amp;#34;};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email &amp;#43; &amp;#34;匹配结果：&amp;#34; &amp;#43; matcher.matches());\n }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;admin@lruihao.cn 匹配结果：true\nlruihao.cn 匹配结果：false&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"电话\"&gt;&lt;span&gt;11 电话&lt;/span&gt;\n &lt;a href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;package base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;);\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum&amp;#43;&amp;#34;匹配结果： &amp;#34;&amp;#43;matcher.matches());\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(&amp;#34;^[0][1-9]{2,3}-[0-9]{5,10}$&amp;#34;); // 验证带区号的\n p2 = Pattern.compile(&amp;#34;^[1-9]{1}[0-9]{5,8}$&amp;#34;); // 验证没有区号的\n if (str.length() &amp;gt; 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"身份证\"&gt;&lt;span&gt;12 身份证&lt;/span&gt;\n &lt;a href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=&amp;#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&amp;#34; &amp;#43;\n &amp;#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&amp;#34; &amp;#43;\n &amp;#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&amp;#34;;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>java 常用类</title><link>https://lruihao.cn/posts/stringbuffer/</link><pubDate>Sun, 14 Apr 2019 10:12:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/stringbuffer/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"&gt;&lt;span&gt;13 StringBuffer/StringBuilder（掌握）&lt;/span&gt;\n &lt;a href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"&gt;&lt;span&gt;13.1 StringBuffer 是线程安全的可变字符串&lt;/span&gt;\n &lt;a href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;StringBuilder 是线程不安全的可变字符串。&lt;br&gt;\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。&lt;/p&gt;</description></item><item><title>Java 父类子类的对象初始化过程</title><link>https://lruihao.cn/posts/substatus/</link><pubDate>Thu, 21 Mar 2019 13:36:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/substatus/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;摘要：Java 基本的对象初始化过程，子类的初始化，以及涉及到父类和子类的转化时可能引起混乱的情况。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 泛型 test</title><link>https://lruihao.cn/posts/fanxing/</link><pubDate>Sat, 16 Mar 2019 13:56:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fanxing/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&amp;lt;&amp;gt;)&lt;/li&gt;\n&lt;li&gt;类型通配符一般使用问号&lt;code&gt;?&lt;/code&gt;代替具体的类型&lt;code&gt;实&lt;/code&gt;参，注意不是类型形参。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>eclipse 的基本使用</title><link>https://lruihao.cn/posts/eclipseuse/</link><pubDate>Fri, 15 Mar 2019 23:47:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/eclipseuse/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"基本使用\"&gt;&lt;span&gt;13 基本使用&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例（代码以项目为基本单位）\n a: 创建项目（工程）\n *File -- New -- Java Project\n *在左边空白处，直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译，在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-的基本设置\"&gt;&lt;span&gt;14 Eclipse 的基本设置&lt;/span&gt;\n &lt;a href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 程序的编译和运行的环境配置（如果你的 Eclipse 启动没有问题，就不要配置了）\nB: 去掉默认注释（可以不用改）\nC: 行号的显示和隐藏\n 显示：在代码区域的最左边的空白区域，右键 -- Show Line Numbers 即可。\n 隐藏：把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色：\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了，怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"快捷键的使用\"&gt;&lt;span&gt;15 快捷键的使用&lt;/span&gt;\n &lt;a href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 内容辅助键\n Alt&amp;#43;/ 起提示作用\n main&amp;#43;alt&amp;#43;/,syso&amp;#43;alt&amp;#43;/, 给出其他提示\nB: 快捷键\n 格式化 ctrl&amp;#43;shift&amp;#43;f\n 导入包 ctrl&amp;#43;shift&amp;#43;o\n 注释 ctrl&amp;#43;/\n ctrl&amp;#43;shift&amp;#43;/,ctrl&amp;#43;shift&amp;#43;\\\n 代码上下移动 选中代码 alt&amp;#43;上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl&amp;#43;鼠标点击）&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"&gt;&lt;span&gt;16 Eclipse 中如何提高开发效率&lt;/span&gt;\n &lt;a href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;A: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>匿名类在可视化界面中的应用</title><link>https://lruihao.cn/posts/qframe/</link><pubDate>Fri, 15 Mar 2019 22:31:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qframe/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;java 中匿名类用的最多的地方就是可视化界面设计中，特别是将&lt;code&gt;事件监听器&lt;/code&gt;注册到某个组件上的时候。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 继承 test</title><link>https://lruihao.cn/posts/jicheng/</link><pubDate>Thu, 24 Jan 2019 15:07:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jicheng/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;引用&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;继承的好处：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;提高了代码的复用性&lt;/li&gt;\n&lt;li&gt;提高了代码的维护性&lt;/li&gt;\n&lt;li&gt;让类与类之间产生了关系，是多态的前提&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;继承的弊端：类的耦合性很强&lt;/p&gt;\n&lt;p&gt;设计原则：低耦合，高内聚。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;耦合：类与类的关系。&lt;/li&gt;\n&lt;li&gt;内聚：自己完成事情的能力。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Arrays 类及基本使用</title><link>https://lruihao.cn/posts/java-arrays/</link><pubDate>Fri, 18 Jan 2019 13:13:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-arrays/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"主要方法\"&gt;&lt;span&gt;10 主要方法&lt;/span&gt;\n &lt;a href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;static type[] copyof(type[] original,int length)&lt;/li&gt;\n&lt;li&gt;static int binarysearch(type[] a,type key)&lt;/li&gt;\n&lt;li&gt;static boolean equals(type[] a,type[] b)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,type val)&lt;/li&gt;\n&lt;li&gt;static void fill(type[] a,int fromindex,int toindex,type val)&lt;/li&gt;\n&lt;li&gt;static void sort(type[] a)&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>java 猜数字小游戏（Math 类）</title><link>https://lruihao.cn/posts/mathclass/</link><pubDate>Tue, 15 Jan 2019 17:33:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mathclass/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;大一刚学 c 的时候以前写过 &lt;a href=\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;c 语言版&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ol&gt;\n&lt;li&gt;Math: 针对数学进行运算的类&lt;/li&gt;\n&lt;li&gt;特点：没有构造方法，因为它的成员都是静态的&lt;/li&gt;\n&lt;li&gt;产生随机数：\npublic static double random(): 产生随机数，范围 [0.0,1.0)&lt;/li&gt;\n&lt;li&gt;产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;&lt;/li&gt;\n&lt;li&gt;猜数字小游戏案例&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>面向对象基础知识总结</title><link>https://lruihao.cn/posts/duixiang/</link><pubDate>Tue, 15 Jan 2019 16:07:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/duixiang/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"面向对象思想理解\"&gt;&lt;span&gt;52 面向对象思想（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;面向对象是基于面向过程的一种编程思想&lt;/li&gt;\n&lt;li&gt;思想特点：&lt;br&gt;\nA: 是一种更符合我们思考习惯的思想&lt;br&gt;\nB: 把复杂的问题简单化&lt;br&gt;\nC: 让我们从执行者变成了指挥者&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\nA: 洗衣服&lt;br&gt;\nB: 吃饭&lt;br&gt;\nC: 买电脑&lt;/li&gt;\n&lt;li&gt;举例并代码体现\n把大象装进冰箱&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类与对象掌握\"&gt;&lt;span&gt;53 类与对象（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。&lt;/li&gt;\n&lt;li&gt;现实世界事物是如何表达的呢？\n属性：外在特征&lt;br&gt;\n行为：内在行为&lt;/li&gt;\n&lt;li&gt;我们学习的是 java 语言，它最基本的单位是类。&lt;br&gt;\n所以我们要学会用类来体现一个事物。&lt;/li&gt;\n&lt;li&gt;类：是一组相关的属性和行为的集合&lt;/li&gt;\n&lt;li&gt;对象：是该类事物的具体个体。&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\n学生 类&lt;br&gt;\n张三 对象&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类的组成掌握\"&gt;&lt;span&gt;54 类的组成（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;成员变量&lt;br&gt;\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。&lt;/li&gt;\n&lt;li&gt;成员方法&lt;br&gt;\n其实就是方法，只不过不需要 static 了&lt;/li&gt;\n&lt;li&gt;案例：&lt;br&gt;\n学生类&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n String name;\n int age;\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"类的使用掌握\"&gt;&lt;span&gt;55 类的使用（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;创建对象&lt;br&gt;\n格式：类名 对象名 = new 类名 ();&lt;/li&gt;\n&lt;li&gt;使用成员&lt;br&gt;\n成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&amp;hellip;);&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"&gt;&lt;span&gt;56 成员变量和局部变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;在类中的位置不同&lt;br&gt;\nA: 成员变量 类中，方法外&lt;br&gt;\nB: 局部变量 方法的形式参数，或者方法体中&lt;/li&gt;\n&lt;li&gt;在内存中的位置不同&lt;br&gt;\nA: 成员变量 在堆中&lt;br&gt;\nB: 局部变量 在栈中&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失&lt;br&gt;\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失&lt;/li&gt;\n&lt;li&gt;初始化值不同&lt;br&gt;\nA: 成员变量 有默认初始化值&lt;br&gt;\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"形式参数问题理解\"&gt;&lt;span&gt;57 形式参数问题（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;基本类型&lt;br&gt;\n基本类型作为形式参数，需要的是该基本类型的值。&lt;/li&gt;\n&lt;li&gt;引用类型&lt;br&gt;\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"匿名对象理解\"&gt;&lt;span&gt;58 匿名对象（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;匿名对象：没有名字的对象。是对象的简化书写方式。&lt;/li&gt;\n&lt;li&gt;使用场景&lt;br&gt;\nA: 调用方法，仅仅只调用一次&lt;br&gt;\nB: 作为实际参数传递&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"封装掌握\"&gt;&lt;span&gt;59 封装（掌握）&lt;/span&gt;\n &lt;a href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;隐藏实现细节，提供公共的访问方式&lt;/li&gt;\n&lt;li&gt;好处：&lt;br&gt;\nA: 隐藏实现细节，提供公共的访问方式&lt;br&gt;\nB: 提高了代码的复用性&lt;br&gt;\nC: 提高了代码的安全性&lt;/li&gt;\n&lt;li&gt;使用原则&lt;br&gt;\nA: 把成员变量隐藏&lt;br&gt;\nB: 给出该成员变量对应的公共访问方式&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"private-关键字掌握\"&gt;&lt;span&gt;60 private 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个权限修饰符&lt;/li&gt;\n&lt;li&gt;可以修饰类的成员（成员变量和成员方法）&lt;/li&gt;\n&lt;li&gt;仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"this-关键字掌握\"&gt;&lt;span&gt;61 this 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;this：代表本类的对象&lt;/li&gt;\n&lt;li&gt;应用场景：&lt;br&gt;\n解决了局部变量隐藏成员变量的问题。&lt;br&gt;\n其他用法和 super 一起讲。&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n\n public void study() {\n System.out.println(&amp;#34;学生爱学习&amp;#34;);\n }\n\n public void eat() {\n System.out.println(&amp;#34;学生要吃饭&amp;#34;);\n }\n\n public void sleep() {\n System.out.println(&amp;#34;学生想睡觉&amp;#34;);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;s.getName());\n System.out.println(&amp;#34;年龄是：&amp;#34;&amp;#43;s.getAge());\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"构造方法掌握\"&gt;&lt;span&gt;62 构造方法（掌握）&lt;/span&gt;\n &lt;a href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;作用：对对象的数据进行初始化。&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\nA: 方法名和类名相同&lt;br&gt;\nB: 没有返回值类型&lt;br&gt;\nC: 没有返回值&lt;/li&gt;\n&lt;li&gt;注意事项&lt;br&gt;\nA: 如果我们没写构造方法，系统将默认给出无参构造方法&lt;br&gt;\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法&lt;br&gt;\n建议：我们自己手动给出无参构造方法&lt;/li&gt;\n&lt;li&gt;给成员变量赋值：&lt;br&gt;\nA: 无参+setXxx()&lt;br&gt;\nB: 带参&lt;/li&gt;\n&lt;li&gt;一个标准的代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参&amp;#43;setXxx()\n Student s = new Student();\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(&amp;#34;张曼玉&amp;#34;,20);\n ss.show();\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"对象的初始化过程理解\"&gt;&lt;span&gt;63 对象的初始化过程（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Student s = new Student(); 做了哪些事情&lt;br&gt;\nA: 加载 Student.class 文件进内存&lt;br&gt;\nB: 在栈中为 s 开辟空间&lt;br&gt;\nC: 在堆中为学生对象开辟空间&lt;br&gt;\nD: 为学生对象的成员变量赋默认值&lt;br&gt;\nE: 为学生对象的成员变量赋显示值&lt;br&gt;\nF: 通过构造方法给成员变量赋值&lt;br&gt;\nG: 对象构造完毕，把地址赋值给 s 变量&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"static-关键字掌握\"&gt;&lt;span&gt;64 static 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个状态修饰符。静态的意思&lt;/li&gt;\n&lt;li&gt;它可以修饰成员变量和成员方法&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\n&lt;strong&gt;A: 随着类的加载而加载&lt;br&gt;\nB: 优先于对象存在&lt;br&gt;\nC: 被所有对象共享&lt;/strong&gt;&lt;br&gt;\n这也是判断我们是不是该使用静态的条件&lt;br&gt;\n举例：饮水机（可共享 static) 和水杯例子。&lt;br&gt;\nD: 可以通过类名调用&lt;br&gt;\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用&lt;/li&gt;\n&lt;li&gt;方法访问特点&lt;br&gt;\nA: 普通成员方法&lt;br&gt;\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法&lt;br&gt;\nB: 静态成员方法&lt;br&gt;\n&lt;strong&gt;只能访问静态成员变量，静态成员方法&lt;br&gt;\n简记：静态只能访问静态&lt;/strong&gt;&lt;br&gt;\n注意：&lt;br&gt;\n&lt;strong&gt;静态中是不能有 this 的。&lt;br&gt;\n先进内存的不能访问后进内存的。反之可以。&lt;/strong&gt;&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;/**\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n *\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name&amp;#43;&amp;#34;---&amp;#34;&amp;#43;age&amp;#43;&amp;#34;---&amp;#34;&amp;#43;classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(&amp;#34;林青霞&amp;#34;,28,&amp;#34;20150306&amp;#34;);\n s1.show();\n\n /*\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35,&amp;#34;20150306&amp;#34;);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33,&amp;#34;20150306&amp;#34;);\n s3.show();\n */\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33);\n s3.show();\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static: 静态关键字。\n\n 作用：\n 可以修饰成员变量和成员方法\n\n 特点：\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机：可以被静态修饰\n 水杯：不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象，还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(&amp;#34;show&amp;#34;);\n }\n\n public static void show2() {\n System.out.println(&amp;#34;show2&amp;#34;);\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();&amp;amp;ensp;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static 的注意事项：\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法：\n 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n 静态的成员方法：\n 只能访问静态的成员变量，静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//&amp;amp;ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);&amp;amp;ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(&amp;#34;林青霞&amp;#34;);\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"&gt;&lt;span&gt;65 静态成员变量和普通成员变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;所属不同&lt;br&gt;\n静态属于类的，称为类变量&lt;br&gt;\n非静态属于对象的，称为对象变量，实例变量&lt;/li&gt;\n&lt;li&gt;内存空间不同&lt;br&gt;\n静态在方法区的静态区&lt;br&gt;\n非静态在堆内存&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\n静态随着类的加载而加载，随着类的消失而消失&lt;br&gt;\n非静态随着对象的创建而存在，随着对象的消失而消失&lt;/li&gt;\n&lt;li&gt;调用不同&lt;br&gt;\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用&lt;br&gt;\n非静态只能通过对象名调用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"main-方法是静态的理解\"&gt;&lt;span&gt;66 main 方法是静态的（理解）&lt;/span&gt;\n &lt;a href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;public static void main(String[] args)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。&lt;br&gt;\nstatic: 被 jvm 调用，不用创建对象，直接类名访问&lt;br&gt;\nvoid: 被 jvm 调用，不需要给 jvm 返回值&lt;br&gt;\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别&lt;br&gt;\nString[] args:&lt;br&gt;\n早期出现是为了接收键盘录入数据的。&lt;/p&gt;</description></item><item><title>java 水仙花数（循环）</title><link>https://lruihao.cn/posts/java-range/</link><pubDate>Mon, 14 Jan 2019 17:30:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-range/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1&lt;sup&gt;3 + 5&lt;/sup&gt;3+ 3^3 = 153）。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 录入数据</title><link>https://lruihao.cn/posts/java-input/</link><pubDate>Mon, 14 Jan 2019 15:33:46 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-input/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"记忆格式\"&gt;&lt;span&gt;7 记忆格式&lt;/span&gt;\n &lt;a href=\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;(1) 导包：&lt;br&gt;\nimport java.util.Scanner;&lt;br&gt;\n注意：位置在 class 的上面。&lt;br&gt;\n(2) 创建键盘录入对象：&lt;br&gt;\nScanner sc = new Scanner(System.in);&lt;br&gt;\n(3) 获取数据&lt;br&gt;\nint i = sc.nextInt();&lt;br&gt;\n(4) 练习：&lt;br&gt;\nA: 求两个数据的和&lt;br&gt;\nB: 获取两个数据中较大的值&lt;br&gt;\nC: 获取三个数据中较大的值&lt;br&gt;\nD: 比较两个数是否相等&lt;/p&gt;</description></item><item><title>java 标识符</title><link>https://lruihao.cn/posts/biaoshi/</link><pubDate>Mon, 14 Jan 2019 15:07:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/biaoshi/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"标识符\"&gt;&lt;span&gt;1 标识符&lt;/span&gt;\n &lt;a href=\"#%e6%a0%87%e8%af%86%e7%ac%a6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给类，接口，方法或者变量起名字的符号&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"组成规则\"&gt;&lt;span&gt;2 组成规则&lt;/span&gt;\n &lt;a href=\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A: 英文字母大小写&lt;br&gt;\nB: 数字&lt;br&gt;\nC:_和$&lt;/p&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/java/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/java/</title><link rel=canonical href=https://lruihao.cn/tags/java/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/java/\"></head></html>"
  },
  {
    "path": "tags/java/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>java - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"java\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-09T02:24:31+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/java/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"java\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"java\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/java/ title=\"java | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/java/index.xml title=\"java | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/java/feed.json title=\"java | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/java/feed.json title=\"java | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/java/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Java</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>java <sup>21</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/java/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/java/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/java/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/javascript/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"javascript - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"封装 Vue FullScreenToggler 组件\",\"date_published\":\"2023-09-17T19:44:07&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"url\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"JavaScript\"],\"summary\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\\n\",\"content_html\":\"\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/mirari/vue-fullscreen\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evue-fullscreen\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\\u003c/p\\u003e\"},{\"title\":\"JS 实现全屏和退出全屏\",\"date_published\":\"2023-09-15T17:29:25&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-fullscreen/\",\"url\":\"https://lruihao.cn/posts/js-fullscreen/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\"19 背景 在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e19 背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。\\u003c/p\\u003e\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"浏览器渲染原理\",\"date_published\":\"2023-02-05T21:02:52&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/browser-rendering/\",\"url\":\"https://lruihao.cn/posts/browser-rendering/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\",\"HTML\",\"CSS\"],\"summary\":\" 1 浏览器是如何渲染页面的？ 当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\n在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\n\",\"content_html\":\"\\u003ciframe src=\\\"files/browser-rendering.pdf\\\" width=\\\"100%\\\" height=\\\"550\\\"\\u003e\\u003c/iframe\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"浏览器是如何渲染页面的\\\"\\u003e\\u003cspan\\u003e1 浏览器是如何渲染页面的？\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。\\u003c/p\\u003e\\n\\u003cp\\u003e在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。\\u003c/p\\u003e\"},{\"title\":\"浏览器原理 - 事件循环\",\"date_published\":\"2023-01-11T11:16:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/event-loop/\",\"url\":\"https://lruihao.cn/posts/event-loop/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Browser\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/event-loop/images/202208092131410.png\",\"summary\":\"最近在抖音上刷到很多次 袁进老师 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\n\",\"content_html\":\"\\u003cp\\u003e最近在抖音上刷到很多次 \\u003ca href=\\\"http://yuanjin.tech/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e袁进老师\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。\\u003c/p\\u003e\"},{\"title\":\"前端页面内容加密总结\",\"date_published\":\"2022-08-08T13:49:22&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/encryption-fe/\",\"url\":\"https://lruihao.cn/posts/encryption-fe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"加密\"],\"image\":\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\",\"summary\":\"记录一下前端实现页面加密的思路。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下前端实现页面加密的思路。\\u003c/p\\u003e\"},{\"title\":\"重新认识 JavaScript\",\"date_published\":\"2022-05-01T10:59:36&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-rediscover/\",\"url\":\"https://lruihao.cn/posts/js-rediscover/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"ES6\"],\"summary\":\" 前言 前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\n每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e前言\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。\\u003c/p\\u003e\\n\\u003cp\\u003e每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Lightbox\",\"date_published\":\"2021-06-21T16:18:04&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightbox/\",\"url\":\"https://lruihao.cn/posts/lightbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Lightbox\",\"JavaScript\"],\"summary\":\"7 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"簡介\\\"\\u003e\\u003cspan\\u003e7 簡介\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b0%a1%e4%bb%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"设置网站运行时间\",\"date_published\":\"2019-09-19T22:03:29&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/site-time/\",\"url\":\"https://lruihao.cn/posts/site-time/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 使用javascript计算博客等网站的运行时间。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用\\u003ccode\\u003ejavascript\\u003c/code\\u003e计算博客等网站的运行时间。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"script 的三种加载方式 (async, defer)\",\"date_published\":\"2019-09-08T11:47:50&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/async-defer/\",\"url\":\"https://lruihao.cn/posts/async-defer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"defer\",\"async\"],\"image\":\"/posts/async-defer/images/async_vs_defer.svg\",\"summary\":\" 注意 JS 的加载分为两个部分：下载和执行。\\n浏览器在执行 HTML 的时候如果遇到\\u0026lt;script\\u0026gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u0026lt;/scirpt\\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition note open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-pencil-alt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e注意\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eJS 的加载分为两个部分：下载和执行。\\u003cbr\\u003e\\n浏览器在执行 HTML 的时候如果遇到\\u003ccode\\u003e\\u0026lt;script\\u0026gt;\\u003c/code\\u003e时会停止页面的渲染，去下载和执行 js 的文件直接遇见\\u003ccode\\u003e\\u0026lt;/scirpt\\u0026gt;\\u003c/code\\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"web 汇总\",\"date_published\":\"2019-03-18T20:40:55&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/webbiji/\",\"url\":\"https://lruihao.cn/posts/webbiji/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"模仿知乎卡片式链接\",\"date_published\":\"2019-03-15T15:21:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linkcard/\",\"url\":\"https://lruihao.cn/posts/linkcard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"QQ 强制生成卡片式链接\",\"date_published\":\"2019-03-08T16:52:13&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qqxml/\",\"url\":\"https://lruihao.cn/posts/qqxml/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。\\u003cbr\\u003e\\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \\u003ccode\\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\\u003c/code\\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"JS 验证码\",\"date_published\":\"2019-03-04T20:53:09&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-vcode/\",\"url\":\"https://lruihao.cn/posts/js-vcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 请点击验证码处：↑ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cstyle type=\\\"text/css\\\"\\u003e\\n\\n# code{  \\n\\n  font-family:Arial;  \\n  font-style:italic;  \\n  font-weight:bold;  \\n  border:2px solid #ddd;\\n  letter-spacing:9px;  \\n  color:blue;\\n  font-size: 15px;\\n}\\n\\u003c/style\\u003e\\n\\u003cscript type=\\\"text/javascript\\\"\\u003e\\n    //设置一个全局的变量，便于保存验证码\\n    var code;\\n    function createCode(){\\n        //首先默认 code 为空字符串\\n        code = '';\\n        //设置长度，这里看需求，我这里设置了 4\\n        var codeLength = 4;\\n        var codeV = document.getElementById('code');\\n        //设置随机字符\\n        var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\\n        //循环 codeLength 我设置的 4 就是循环 4 次\\n        for(var i = 0; i \\u003c codeLength; i++){\\n            //设置随机数范围，这设置为 0 ~ 36\\n             var index = Math.floor(Math.random()*35);\\n             //字符串拼接 将每次随机的字符 进行拼接\\n             code += random[index];\\n        }\\n        //将拼接好的字符串赋值给展示的 Value\\n        codeV.value = code;\\n    }\\n\\n    //下面就是判断是否== 的代码，无需解释\\n    function validate(){\\n        var Input = document.getElementById('input');\\n        var oValue = Input.value.toUpperCase();\\n        if(oValue ==0){\\n            alert('请输入验证码');\\n        }else if(oValue != code){\\n            Input.value = '';\\n            alert('验证码不正确，请重新输入');\\n            createCode();\\n        }else{\\n            Input.value = '';\\n            alert('验证码正确！');//window.open('http://lruihao.cn','_self');\\n        }\\n    }\\n\\n    //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\\n    window.onload = function (){\\n\\n        createCode();\\n    }\\n\\u003c/script\\u003e\\n\\u003cdiv align=\\\"center\\\"\\u003e  \\n    \\u003cinput type = \\\"text\\\" id = \\\"input\\\" value=\\\"\\\" /\\u003e \\u003cinput type = \\\"button\\\" id=\\\"code\\\" onclick=\\\"createCode()\\\"/\\u003e \\u003cinput class=\\\"btn\\\" type = \\\"button\\\" value = \\\"验证\\\" onclick = \\\"validate()\\\"/\\u003e\\n    \\u003cbr/\\u003e请点击验证码处：↑\\n\\u003c/div\\u003e\"},{\"title\":\"js 判断用户设备类型及平台\",\"date_published\":\"2018-11-03T23:35:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-device/\",\"url\":\"https://lruihao.cn/posts/js-device/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"他山之石\"],\"summary\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\n\",\"content_html\":\"\\u003cp\\u003e前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\u003c/p\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"},{\"title\":\"网页夜间效果\",\"date_published\":\"2018-09-27T13:13:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/night/\",\"url\":\"https://lruihao.cn/posts/night/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\"],\"summary\":\" 这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。css+js\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。\\u003ccode\\u003ecss+js\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网页离开时改变标题“崩溃欺骗”\",\"date_published\":\"2018-09-26T16:36:08&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/crash-cheat/\",\"url\":\"https://lruihao.cn/posts/crash-cheat/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 个性化 - next 主题动态显示 subtitle\",\"date_published\":\"2018-08-20T16:16:40&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dongtaisub/\",\"url\":\"https://lruihao.cn/posts/dongtaisub/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\" 本文适合我这种纯小白。 目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门（关键词：js, 后加载）\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本文适合我这种纯小白。\\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\\u003ca href=\\\"https://www.jianshu.com/p/df2c844eeabf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（关键词：js, 后加载）\\u003cbr\\u003e\\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo 博客自定义 console log\",\"date_published\":\"2018-08-04T16:19:06&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/console-log/\",\"url\":\"https://lruihao.cn/posts/console-log/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"JavaScript\"],\"summary\":\"看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\n我主要用到的工具：\\nconsole.log() Notepad++ 在线图片转文字工具 \",\"content_html\":\"\\u003cp\\u003e看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\\u003cbr\\u003e\\n我主要用到的工具：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003econsole.log()\\u003c/li\\u003e\\n\\u003cli\\u003eNotepad++\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://picascii.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线图片转文字工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/javascript/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>javascript - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"javascript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-13T21:03:12+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/javascript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"javascript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"javascript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/javascript/ title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/javascript/index.xml title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/javascript/feed.json title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/javascript/feed.json title=\"javascript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/javascript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Javascript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>javascript <sup>28</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><article class=archive-item><a href=/posts/vue-fullscreen-toggler/ class=archive-item-link>封装 Vue FullScreenToggler 组件</a>\n<span class=archive-item-date title='2023-09-17 19:44:07'>09-17</span></article><article class=archive-item><a href=/posts/js-fullscreen/ class=archive-item-link>JS 实现全屏和退出全屏</a>\n<span class=archive-item-date title='2023-09-15 17:29:25'>09-15</span></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><article class=archive-item><a href=/posts/browser-rendering/ class=archive-item-link>浏览器渲染原理</a>\n<span class=archive-item-date title='2023-02-05 21:02:52'>02-05</span></article><article class=archive-item><a href=/posts/event-loop/ class=archive-item-link>浏览器原理 - 事件循环</a>\n<span class=archive-item-date title='2023-01-11 11:16:02'>01-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/encryption-fe/ class=archive-item-link>前端页面内容加密总结</a>\n<span class=archive-item-date title='2022-08-08 13:49:22'>08-08</span></article><article class=archive-item><a href=/posts/js-rediscover/ class=archive-item-link>重新认识 JavaScript</a>\n<span class=archive-item-date title='2022-05-01 10:59:36'>05-01</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/lightbox/ class=archive-item-link>Lightbox</a>\n<span class=archive-item-date title='2021-06-21 16:18:04'>06-21</span></article><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title='2021-05-23 17:15:41'>05-23</span></article><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article><article class=archive-item><a href=/posts/site-time/ class=archive-item-link>设置网站运行时间</a>\n<span class=archive-item-date title='2019-09-19 22:03:29'>09-19</span></article><article class=archive-item><a href=/posts/async-defer/ class=archive-item-link>Script 的三种加载方式 (Async, Defer)</a>\n<span class=archive-item-date title='2019-09-08 11:47:50'>09-08</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><article class=archive-item><a href=/posts/webbiji/ class=archive-item-link>Web 汇总</a>\n<span class=archive-item-date title='2019-03-18 20:40:55'>03-18</span></article><article class=archive-item><a href=/posts/linkcard/ class=archive-item-link>模仿知乎卡片式链接</a>\n<span class=archive-item-date title='2019-03-15 15:21:39'>03-15</span></article><article class=archive-item><a href=/posts/qqxml/ class=archive-item-link>QQ 强制生成卡片式链接</a>\n<span class=archive-item-date title='2019-03-08 16:52:13'>03-08</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/javascript/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/javascript/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/javascript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/javascript/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>javascript - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/javascript/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/javascript/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能</title><link>https://lruihao.cn/posts/aside-toggle-drag/</link><pubDate>Thu, 13 Jun 2024 21:03:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/aside-toggle-drag/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。&lt;/p&gt;</description></item><item><title>如何给 npm 包打补丁？</title><link>https://lruihao.cn/posts/patch-package/</link><pubDate>Thu, 12 Oct 2023 22:37:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/patch-package/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>本文将介绍如何给 npm 包打补丁。</description></item><item><title>封装 Vue FullScreenToggler 组件</title><link>https://lruihao.cn/posts/vue-fullscreen-toggler/</link><pubDate>Sun, 17 Sep 2023 19:44:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-fullscreen-toggler/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;基于 &lt;a href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vue-fullscreen&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 封装一个的 Vue 全屏/退出全屏切换组件。&lt;/p&gt;</description></item><item><title>JS 实现全屏和退出全屏</title><link>https://lruihao.cn/posts/js-fullscreen/</link><pubDate>Fri, 15 Sep 2023 17:29:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-fullscreen/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;28 背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，全屏模式可以提供更沉浸式的体验，特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API，我们可以以编程方式控制元素的全屏状态。&lt;/p&gt;</description></item><item><title>使用 Node.js 自动创建 Vue 的路由</title><link>https://lruihao.cn/posts/gen-router/</link><pubDate>Wed, 14 Jun 2023 00:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gen-router/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。&lt;/p&gt;</description></item><item><title>浏览器渲染原理</title><link>https://lruihao.cn/posts/browser-rendering/</link><pubDate>Sun, 05 Feb 2023 21:02:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/browser-rendering/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;iframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"&gt;&lt;/iframe&gt;\n&lt;h2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"&gt;&lt;span&gt;1 浏览器是如何渲染页面的？&lt;/span&gt;\n &lt;a href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;当浏览器的网络线程收到 HTML 文档后，会产生一个渲染任务，并将其传递给渲染主线程的消息队列。&lt;/p&gt;\n&lt;p&gt;在事件循环机制的作用下，渲染主线程取出消息队列中的渲染任务，开启渲染流程。&lt;/p&gt;</description></item><item><title>浏览器原理 - 事件循环</title><link>https://lruihao.cn/posts/event-loop/</link><pubDate>Wed, 11 Jan 2023 11:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/event-loop/</guid><category domain=\"https://lruihao.cn/categories/browser/\">Browser</category><description>&lt;p&gt;最近在抖音上刷到很多次 &lt;a href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;袁进老师&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的前端视频，然后就听了一下他的前端大师课，感觉了解一些浏览器原理后，原来工作中的一些疑问也自然解开了。&lt;/p&gt;</description></item><item><title>前端页面内容加密总结</title><link>https://lruihao.cn/posts/encryption-fe/</link><pubDate>Mon, 08 Aug 2022 13:49:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/encryption-fe/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;记录一下前端实现页面加密的思路。&lt;/p&gt;</description></item><item><title>重新认识 JavaScript</title><link>https://lruihao.cn/posts/js-rediscover/</link><pubDate>Sun, 01 May 2022 10:59:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-rediscover/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;前言&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;前端框架轮替变化越来越快，JavaScript 也在不断地升级迭代，越来越多的新特性让我们的代码写起来变得简洁有趣。&lt;/p&gt;\n&lt;p&gt;每隔一段时间就该重新认识一下 JS，这篇文章会介绍 6 种新特性，一起研究一下吧。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Lightbox</title><link>https://lruihao.cn/posts/lightbox/</link><pubDate>Mon, 21 Jun 2021 16:18:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightbox/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"簡介\"&gt;&lt;span&gt;10 簡介&lt;/span&gt;\n &lt;a href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。&lt;/p&gt;</description></item><item><title>Cell Watermark</title><link>https://lruihao.cn/projects/cell-watermark/</link><pubDate>Sun, 23 May 2021 17:15:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-watermark/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>Create watermark for webpage and automatic adjust when window resize.</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>设置网站运行时间</title><link>https://lruihao.cn/posts/site-time/</link><pubDate>Thu, 19 Sep 2019 22:03:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/site-time/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用&lt;code&gt;javascript&lt;/code&gt;计算博客等网站的运行时间。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>script 的三种加载方式 (async, defer)</title><link>https://lruihao.cn/posts/async-defer/</link><pubDate>Sun, 08 Sep 2019 11:47:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/async-defer/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition note open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"&gt;&lt;/i&gt;注意&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;JS 的加载分为两个部分：下载和执行。&lt;br&gt;\n浏览器在执行 HTML 的时候如果遇到&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;时会停止页面的渲染，去下载和执行 js 的文件直接遇见&lt;code&gt;&amp;lt;/scirpt&amp;gt;&lt;/code&gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白，为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>web 汇总</title><link>https://lruihao.cn/posts/webbiji/</link><pubDate>Mon, 18 Mar 2019 20:40:55 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/webbiji/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;下面一些 web 开发的一些总结，还有一些常用到的代码，脚本等！&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>模仿知乎卡片式链接</title><link>https://lruihao.cn/posts/linkcard/</link><pubDate>Fri, 15 Mar 2019 15:21:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linkcard/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>QQ 强制生成卡片式链接</title><link>https://lruihao.cn/posts/qqxml/</link><pubDate>Fri, 08 Mar 2019 16:52:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qqxml/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前在 QQ 里面聊天的时候发现，有些链接是卡片式的链接，像知乎里那些一样，就好奇为啥我的域名没有生成卡片。&lt;br&gt;\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url &lt;code&gt;https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=&lt;/code&gt; 于是就有了脚本刷新的想法。简陋的写了一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>JS 验证码</title><link>https://lruihao.cn/posts/js-vcode/</link><pubDate>Mon, 04 Mar 2019 20:53:09 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-vcode/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;style type=\"text/css\"&gt;\n\n# code{ \n\n font-family:Arial; \n font-style:italic; \n font-weight:bold; \n border:2px solid #ddd;\n letter-spacing:9px; \n color:blue;\n font-size: 15px;\n}\n&lt;/style&gt;\n&lt;script type=\"text/javascript\"&gt;\n //设置一个全局的变量，便于保存验证码\n var code;\n function createCode(){\n //首先默认 code 为空字符串\n code = '';\n //设置长度，这里看需求，我这里设置了 4\n var codeLength = 4;\n var codeV = document.getElementById('code');\n //设置随机字符\n var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n //循环 codeLength 我设置的 4 就是循环 4 次\n for(var i = 0; i &lt; codeLength; i++){\n //设置随机数范围，这设置为 0 ~ 36\n var index = Math.floor(Math.random()*35);\n //字符串拼接 将每次随机的字符 进行拼接\n code += random[index];\n }\n //将拼接好的字符串赋值给展示的 Value\n codeV.value = code;\n }\n\n //下面就是判断是否== 的代码，无需解释\n function validate(){\n var Input = document.getElementById('input');\n var oValue = Input.value.toUpperCase();\n if(oValue ==0){\n alert('请输入验证码');\n }else if(oValue != code){\n Input.value = '';\n alert('验证码不正确，请重新输入');\n createCode();\n }else{\n Input.value = '';\n alert('验证码正确！');//window.open('http://lruihao.cn','_self');\n }\n }\n\n //设置此处的原因是每次进入界面展示一个随机的验证码，不设置则为空\n window.onload = function (){\n\n createCode();\n }\n&lt;/script&gt;\n&lt;div align=\"center\"&gt; \n &lt;input type = \"text\" id = \"input\" value=\"\" /&gt; &lt;input type = \"button\" id=\"code\" onclick=\"createCode()\"/&gt; &lt;input class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/&gt;\n &lt;br/&gt;请点击验证码处：↑\n&lt;/div&gt;</description></item><item><title>js 判断用户设备类型及平台</title><link>https://lruihao.cn/posts/js-device/</link><pubDate>Sat, 03 Nov 2018 23:35:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-device/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。&lt;/p&gt;</description></item><item><title>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战</title><link>https://lruihao.cn/posts/href-301/</link><pubDate>Sun, 28 Oct 2018 14:22:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/href-301/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h3 class=\"heading-element\" id=\"获取链接转\"&gt;&lt;span&gt;0.7 获取链接（转）&lt;/span&gt;\n &lt;a href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;a href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。&lt;/p&gt;</description></item><item><title>网页夜间效果</title><link>https://lruihao.cn/posts/night/</link><pubDate>Thu, 27 Sep 2018 13:13:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/night/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;这几天看到别人的博客有开关灯效果，就想给自己的博客也加一个，其实以前就在想了。经过谷歌百度后这样实现了。&lt;code&gt;css+js&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>网页离开时改变标题“崩溃欺骗”</title><link>https://lruihao.cn/posts/crash-cheat/</link><pubDate>Wed, 26 Sep 2018 16:36:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/crash-cheat/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;blockquote&gt;\n&lt;p&gt;从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 个性化 - next 主题动态显示 subtitle</title><link>https://lruihao.cn/posts/dongtaisub/</link><pubDate>Mon, 20 Aug 2018 16:16:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dongtaisub/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本文适合我这种纯小白。\n目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。&lt;a href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（关键词：js, 后加载）&lt;br&gt;\n但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo 博客自定义 console log</title><link>https://lruihao.cn/posts/console-log/</link><pubDate>Sat, 04 Aug 2018 16:19:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/console-log/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。&lt;br&gt;\n我主要用到的工具：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;console.log()&lt;/li&gt;\n&lt;li&gt;Notepad++&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线图片转文字工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/javascript/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/javascript/</title><link rel=canonical href=https://lruihao.cn/tags/javascript/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/javascript/\"></head></html>"
  },
  {
    "path": "tags/javascript/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>javascript - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"javascript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-13T21:03:12+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/javascript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"javascript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"javascript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/javascript/ title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/javascript/index.xml title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/javascript/feed.json title=\"javascript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/javascript/feed.json title=\"javascript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/javascript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Javascript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>javascript <sup>28</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/js-vcode/ class=archive-item-link>JS 验证码</a>\n<span class=archive-item-date title='2019-03-04 20:53:09'>03-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/js-device/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Js 判断用户设备类型及平台</a>\n<span class=archive-item-date title='2018-11-03 23:35:44'>11-03</span></article><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article><article class=archive-item><a href=/posts/night/ class=archive-item-link>网页夜间效果</a>\n<span class=archive-item-date title='2018-09-27 13:13:31'>09-27</span></article><article class=archive-item><a href=/posts/crash-cheat/ class=archive-item-link>网页离开时改变标题“崩溃欺骗”</a>\n<span class=archive-item-date title='2018-09-26 16:36:08'>09-26</span></article><article class=archive-item><a href=/posts/dongtaisub/ class=archive-item-link>Hexo 个性化 - Next 主题动态显示 Subtitle</a>\n<span class=archive-item-date title='2018-08-20 16:16:40'>08-20</span></article><article class=archive-item><a href=/posts/console-log/ class=archive-item-link>Hexo 博客自定义 Console Log</a>\n<span class=archive-item-date title='2018-08-04 16:19:06'>08-04</span></article><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/javascript/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/javascript/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/javascript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/jieba/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"jieba - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/jieba/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>jieba - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"jieba\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=dateModified content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/jieba/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"jieba\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"jieba\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/jieba/ title=\"jieba | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/jieba/index.xml title=\"jieba | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/jieba/feed.json title=\"jieba | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/jieba/feed.json title=\"jieba | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/jieba/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Jieba</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>jieba <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/jieba/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/jieba/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>jieba - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/jieba/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 20 Apr 2019 15:44:57 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/jieba/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/jieba/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/jieba/</title><link rel=canonical href=https://lruihao.cn/tags/jieba/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/jieba/\"></head></html>"
  },
  {
    "path": "tags/json/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"JSON - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/json/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>JSON - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"JSON\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-11T17:02:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/json/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"JSON\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"JSON\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/json/ title=\"JSON | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/json/index.xml title=\"JSON | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/json/feed.json title=\"JSON | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/json/feed.json title=\"JSON | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/json/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>JSON</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>JSON <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/json/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/json/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>JSON - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/json/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/json/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Python 如何操作 Json？</title><link>https://lruihao.cn/posts/jsoninfo/</link><pubDate>Tue, 07 May 2019 18:42:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jsoninfo/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/json/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/json/</title><link rel=canonical href=https://lruihao.cn/tags/json/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/json/\"></head></html>"
  },
  {
    "path": "tags/json-feed/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"json-feed - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/json-feed/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>json-feed - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"json-feed\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-08-22T03:28:23+00:00\"><meta itemprop=dateModified content=\"2025-12-20T06:44:31+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/json-feed/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"json-feed\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"json-feed\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/json-feed/ title=\"json-feed | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/json-feed/index.xml title=\"json-feed | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/json-feed/feed.json title=\"json-feed | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/json-feed/feed.json title=\"json-feed | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/json-feed/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Json-Feed</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>json-feed <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>hugo-fixit/hugo-json-feed</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/json-feed/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/json-feed/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>json-feed - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/json-feed/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 20 Dec 2025 06:44:31 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/json-feed/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/json-feed/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/json-feed/</title><link rel=canonical href=https://lruihao.cn/tags/json-feed/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/json-feed/\"></head></html>"
  },
  {
    "path": "tags/laravel/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Laravel - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/laravel/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Laravel - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Laravel\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-07-25T20:51:11+08:00\"><meta itemprop=dateModified content=\"2025-04-12T07:30:24+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/laravel/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Laravel\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Laravel\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/laravel/ title=\"Laravel | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/laravel/index.xml title=\"Laravel | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/laravel/feed.json title=\"Laravel | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/laravel/feed.json title=\"Laravel | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/laravel/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Laravel</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Laravel <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>Lruihao/cell-blog</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/laravel/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/laravel/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Laravel - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/laravel/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 12 Apr 2025 07:30:24 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/laravel/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;Cell Blog 开发记录，&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/laravel/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/laravel/</title><link rel=canonical href=https://lruihao.cn/tags/laravel/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/laravel/\"></head></html>"
  },
  {
    "path": "tags/laravel-blog/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"laravel-blog - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"基于 Laravel 7 开发，支持 Markdown 语法的博客\",\"date_published\":\"2020-04-17T08:33:39Z\",\"date_modified\":\"2025-04-12T07:30:24Z\",\"id\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"url\":\"https://lruihao.cn/projects/lruihao/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"blog\",\"laravel\",\"laravel-blog\"],\"summary\":\"Cell Blog 基于Laravel7开发，Markdown语法的个人独立博客。\\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布，评论开关，排序) 自定义导航(显示开关，排序) 自定义页面(发布开关) 友情链接(显示开关，排序) COS桶相册 丰富的博客配置(方便扩展，支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 \",\"content_html\":\"\\u003ch1 align=\\\"center\\\" \\u003eCell Blog\\u003c/h1\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于Laravel7开发，Markdown语法的个人独立博客。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"功能\\\"\\u003e\\u003cspan\\u003e功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持Markdown,文章实时预览效果\\u003c/li\\u003e\\n\\u003cli\\u003e支持多种编程语言代码高亮\\u003c/li\\u003e\\n\\u003cli\\u003e编辑器图片上传\\u003c/li\\u003e\\n\\u003cli\\u003e后台上传文件管理\\u003c/li\\u003e\\n\\u003cli\\u003e文章搜索\\u003c/li\\u003e\\n\\u003cli\\u003e文章分类\\u003c/li\\u003e\\n\\u003cli\\u003e文章标签\\u003c/li\\u003e\\n\\u003cli\\u003e热门文章\\u003c/li\\u003e\\n\\u003cli\\u003e随机格言\\u003c/li\\u003e\\n\\u003cli\\u003e文章管理(发布，评论开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义导航(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e自定义页面(发布开关)\\u003c/li\\u003e\\n\\u003cli\\u003e友情链接(显示开关，排序)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Lruihao/cos-album\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCOS桶相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e丰富的博客配置(方便扩展，支持自定义JS脚本)\\u003c/li\\u003e\\n\\u003cli\\u003e不蒜子计数\\u003c/li\\u003e\\n\\u003cli\\u003eLeancloud计数\\u003c/li\\u003e\\n\\u003cli\\u003eValine评论插件\\u003c/li\\u003e\\n\\u003cli\\u003e文章分享插件\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"截图\\\"\\u003e\\u003cspan\\u003e截图\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%aa%e5%9b%be\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\\\"前台首页.png\\\" height=\\\"837\\\" width=\\\"1383\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\\\"管理文章.png\\\" height=\\\"649\\\" width=\\\"1385\\\"\\u003e\\u003cbr\\u003e\\n\\u003cimg loading=\\\"lazy\\\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\\\"编辑文章.png\\\" height=\\\"629\\\" width=\\\"1385\\\"\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/laravel-blog/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>laravel-blog - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"laravel-blog\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-04-17T08:33:39+00:00\"><meta itemprop=dateModified content=\"2025-04-12T07:30:24+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/laravel-blog/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"laravel-blog\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"laravel-blog\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/laravel-blog/ title=\"laravel-blog | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/laravel-blog/index.xml title=\"laravel-blog | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/laravel-blog/feed.json title=\"laravel-blog | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/laravel-blog/feed.json title=\"laravel-blog | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/laravel-blog/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Laravel-Blog</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>laravel-blog <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/lruihao/cell-blog/ class=archive-item-link>Lruihao/cell-blog</a>\n<span class=archive-item-date title='2020-04-17 08:33:39'>04-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/laravel-blog/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/laravel-blog/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>laravel-blog - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/laravel-blog/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 12 Apr 2025 07:30:24 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/laravel-blog/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>基于 Laravel 7 开发，支持 Markdown 语法的博客</title><link>https://lruihao.cn/projects/lruihao/cell-blog/</link><pubDate>Fri, 17 Apr 2020 08:33:39 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h1 align=\"center\" &gt;Cell Blog&lt;/h1&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于Laravel7开发，Markdown语法的个人独立博客。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"功能\"&gt;&lt;span&gt;功能&lt;/span&gt;\n &lt;a href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持Markdown,文章实时预览效果&lt;/li&gt;\n&lt;li&gt;支持多种编程语言代码高亮&lt;/li&gt;\n&lt;li&gt;编辑器图片上传&lt;/li&gt;\n&lt;li&gt;后台上传文件管理&lt;/li&gt;\n&lt;li&gt;文章搜索&lt;/li&gt;\n&lt;li&gt;文章分类&lt;/li&gt;\n&lt;li&gt;文章标签&lt;/li&gt;\n&lt;li&gt;热门文章&lt;/li&gt;\n&lt;li&gt;随机格言&lt;/li&gt;\n&lt;li&gt;文章管理(发布，评论开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义导航(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;自定义页面(发布开关)&lt;/li&gt;\n&lt;li&gt;友情链接(显示开关，排序)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;COS桶相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;丰富的博客配置(方便扩展，支持自定义JS脚本)&lt;/li&gt;\n&lt;li&gt;不蒜子计数&lt;/li&gt;\n&lt;li&gt;Leancloud计数&lt;/li&gt;\n&lt;li&gt;Valine评论插件&lt;/li&gt;\n&lt;li&gt;文章分享插件&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"截图\"&gt;&lt;span&gt;截图&lt;/span&gt;\n &lt;a href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"&gt;&lt;br&gt;\n&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/laravel-blog/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/laravel-blog/</title><link rel=canonical href=https://lruihao.cn/tags/laravel-blog/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/laravel-blog/\"></head></html>"
  },
  {
    "path": "tags/layui/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Layui - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/layui/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Layui - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Layui\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-19T23:32:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/layui/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Layui\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Layui\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/layui/ title=\"Layui | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/layui/index.xml title=\"Layui | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/layui/feed.json title=\"Layui | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/layui/feed.json title=\"Layui | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/layui/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Layui</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Layui <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/layui/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/layui/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Layui - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/layui/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/layui/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/layui/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/layui/</title><link rel=canonical href=https://lruihao.cn/tags/layui/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/layui/\"></head></html>"
  },
  {
    "path": "tags/lazy/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"lazy - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/lazy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>lazy - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"lazy\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-12T19:40:43+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/lazy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"lazy\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"lazy\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/lazy/ title=\"lazy | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/lazy/index.xml title=\"lazy | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/lazy/feed.json title=\"lazy | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/lazy/feed.json title=\"lazy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/lazy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lazy</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>lazy <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/lazy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/lazy/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>lazy - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/lazy/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/lazy/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/lazy/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/lazy/</title><link rel=canonical href=https://lruihao.cn/tags/lazy/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/lazy/\"></head></html>"
  },
  {
    "path": "tags/leancloud/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"leancloud - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/leancloud/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>leancloud - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"leancloud\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-03-02T21:46:40+08:00\"><meta itemprop=dateModified content=\"2021-03-02T21:46:40+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/leancloud/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"leancloud\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"leancloud\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/leancloud/ title=\"leancloud | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/leancloud/index.xml title=\"leancloud | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/leancloud/feed.json title=\"leancloud | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/leancloud/feed.json title=\"leancloud | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/leancloud/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Leancloud</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>leancloud <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/leancloud/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/leancloud/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>leancloud - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/leancloud/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 02 Mar 2021 21:46:40 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/leancloud/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/leancloud/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/leancloud/</title><link rel=canonical href=https://lruihao.cn/tags/leancloud/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/leancloud/\"></head></html>"
  },
  {
    "path": "tags/less/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Less - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/less/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Less - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Less\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-06-22T16:39:47+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/less/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Less\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Less\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/less/ title=\"Less | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/less/index.xml title=\"Less | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/less/feed.json title=\"Less | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/less/feed.json title=\"Less | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/less/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Less</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Less <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/less/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/less/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Less - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/less/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/less/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>less&amp;sass&amp;scss</title><link>https://lruihao.cn/posts/less-sass-scss/</link><pubDate>Tue, 22 Jun 2021 16:39:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/less-sass-scss/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;blockquote&gt;\n&lt;p&gt;Sass 和 Less 都屬於 &lt;strong&gt;CSS 前置處理器&lt;/strong&gt;，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。&lt;br&gt;\n轉化成通俗易懂的話來說就是 &lt;strong&gt;“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/less/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/less/</title><link rel=canonical href=https://lruihao.cn/tags/less/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/less/\"></head></html>"
  },
  {
    "path": "tags/lightbox/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Lightbox - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Lightbox\",\"date_published\":\"2021-06-21T16:18:04&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightbox/\",\"url\":\"https://lruihao.cn/posts/lightbox/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Lightbox\",\"JavaScript\"],\"summary\":\"7 簡介 Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"簡介\\\"\\u003e\\u003cspan\\u003e7 簡介\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b0%a1%e4%bb%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/lightbox/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Lightbox - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Lightbox\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-06-21T16:18:04+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/lightbox/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Lightbox\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Lightbox\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/lightbox/ title=\"Lightbox | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/lightbox/index.xml title=\"Lightbox | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/lightbox/feed.json title=\"Lightbox | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/lightbox/feed.json title=\"Lightbox | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/lightbox/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lightbox</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Lightbox <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/lightbox/ class=archive-item-link>Lightbox</a>\n<span class=archive-item-date title='2021-06-21 16:18:04'>06-21</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/lightbox/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/lightbox/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Lightbox - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/lightbox/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/lightbox/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Lightbox</title><link>https://lruihao.cn/posts/lightbox/</link><pubDate>Mon, 21 Jun 2021 16:18:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightbox/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h2 class=\"heading-element\" id=\"簡介\"&gt;&lt;span&gt;10 簡介&lt;/span&gt;\n &lt;a href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Lightbox（燈箱），用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器，用一幅半透明的 png 图片实现渐变阴暗的效果。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/lightbox/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/lightbox/</title><link rel=canonical href=https://lruihao.cn/tags/lightbox/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/lightbox/\"></head></html>"
  },
  {
    "path": "tags/linux/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"linux - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"shell 脚本初体验\",\"date_published\":\"2018-10-29T11:57:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/shell/\",\"url\":\"https://lruihao.cn/posts/shell/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"shell\",\"linux\"],\"summary\":\"今天上机学了几个小命令\\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\\n\",\"content_html\":\"\\u003cp\\u003e今天上机学了几个小命令\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eread\\u003c/li\\u003e\\n\\u003cli\\u003eecho\\u003c/li\\u003e\\n\\u003cli\\u003eif\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e然后自己写了一个小脚本觉得还挺有趣的\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"linux 编程初体验\",\"date_published\":\"2018-10-15T21:19:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-hello-c/\",\"url\":\"https://lruihao.cn/posts/linux-hello-c/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"C\"],\"summary\":\" 在 Linux 上编译 c 语言文件。\\n0.7 打开 vim 编辑器 （没有就用 vi, 或者先安装 vimsudo apt-get install vim)\\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e在 Linux 上编译 c 语言文件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开-vim-编辑器\\\"\\u003e\\u003cspan\\u003e0.7 打开 vim 编辑器\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e（没有就用 vi, 或者先安装 vim\\u003ccode\\u003esudo apt-get install vim\\u003c/code\\u003e)\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evim\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"编辑文件\\\"\\u003e\\u003cspan\\u003e0.8 编辑文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e打开文件编辑器之后编辑文件\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" title=\\\"edit\\\" data-thumbnail=\\\"/posts/linux-hello-c/images/ubuntu.png\\\" data-sub-html=\\\"\\u003ch2\\u003eedit\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\\\"edit\\\" height=\\\"725\\\" width=\\\"1191\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"linux/centos 下的安装 git\",\"date_published\":\"2018-09-22T22:28:45&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-git/\",\"url\":\"https://lruihao.cn/posts/linux-git/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"linux\"],\"summary\":\"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注： unzip 命令用不了，具体步骤如下：\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"下载-git\\\"\\u003e\\u003cspan\\u003e0.11 下载 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%b8%8b%e8%bd%bd-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003ewget https://github.com/git/git/archive/v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安装依赖\\\"\\u003e\\u003cspan\\u003e0.12 安装依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"解压-git\\\"\\u003e\\u003cspan\\u003e0.13 解压 git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a7%a3%e5%8e%8b-git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cpre\\u003e\\u003ccode\\u003eunzip v2.14.1.zip\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注：\\nunzip 命令用不了，具体步骤如下：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/linux/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>linux - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"linux\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-08-26T17:22:57+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/linux/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"linux\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"linux\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/linux/ title=\"linux | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/linux/index.xml title=\"linux | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/linux/feed.json title=\"linux | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/linux/feed.json title=\"linux | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/linux/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Linux</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>linux <sup>13</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/shell/ class=archive-item-link>Shell 脚本初体验</a>\n<span class=archive-item-date title='2018-10-29 11:57:39'>10-29</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/linux-hello-c/ class=archive-item-link>Linux 编程初体验</a>\n<span class=archive-item-date title='2018-10-15 21:19:27'>10-15</span></article><article class=archive-item><a href=/posts/linux-git/ class=archive-item-link>Linux/Centos 下的安装 Git</a>\n<span class=archive-item-date title='2018-09-22 22:28:45'>09-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/linux/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/linux/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>linux - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/linux/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/linux/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>linux 文件权限</title><link>https://lruihao.cn/posts/linux-permission/</link><pubDate>Sat, 30 Jul 2022 17:15:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-permission/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;记录 linux 系统下文件权限相关的内容，Mac OS 下类似。&lt;/p&gt;</description></item><item><title>Cron 表达式的基本语法</title><link>https://lruihao.cn/posts/cron/</link><pubDate>Wed, 25 Mar 2020 09:19:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cron/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;13 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;&lt;code&gt;&amp;lt;秒&amp;gt; &amp;lt;分钟&amp;gt; &amp;lt;小时&amp;gt; &amp;lt;日期 day-of-month&amp;gt; &amp;lt;月份&amp;gt; &amp;lt;星期 day-of-week&amp;gt;&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 &lt;code&gt;X X X X X X&lt;/code&gt;。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。&lt;/p&gt;</description></item><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>ubuntu + windows 双系统默认启动项设置</title><link>https://lruihao.cn/posts/windefault/</link><pubDate>Thu, 21 Mar 2019 12:48:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/windefault/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装</title><link>https://lruihao.cn/posts/bt/</link><pubDate>Mon, 18 Mar 2019 21:31:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bt/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。&lt;a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔官网介绍&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>win10,ubuntu 双系统时间不一致</title><link>https://lruihao.cn/posts/ubuntutime/</link><pubDate>Fri, 15 Mar 2019 14:28:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ubuntutime/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>shell 脚本初体验</title><link>https://lruihao.cn/posts/shell/</link><pubDate>Mon, 29 Oct 2018 11:57:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/shell/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;今天上机学了几个小命令&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;read&lt;/li&gt;\n&lt;li&gt;echo&lt;/li&gt;\n&lt;li&gt;if&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;然后自己写了一个小脚本觉得还挺有趣的&lt;/p&gt;</description></item><item><title>云服务器 CentOS 系统搭建 web 服务</title><link>https://lruihao.cn/posts/web-server-yun/</link><pubDate>Mon, 29 Oct 2018 09:15:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-yun/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h3 class=\"heading-element\" id=\"搭建-apache-web-服务\"&gt;&lt;span&gt;0.10 搭建 Apache web 服务&lt;/span&gt;\n &lt;a href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;安装 Apache 超文本传输协议 (HTTP) 服务器的主程序&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# yum install -y httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意安装目录，可通过 cd 命令切换。&lt;/p&gt;\n&lt;ol start=\"2\"&gt;\n&lt;li&gt;启动 HTTP 服务&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果启动失败，可通过 systemctl status httpd.service 查看错误原因。&lt;br&gt;\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。&lt;br&gt;\n默认根目录&lt;code&gt;/var/www/html/&lt;/code&gt;&lt;/p&gt;</description></item><item><title>termux 基本使用教程</title><link>https://lruihao.cn/posts/termux1/</link><pubDate>Tue, 23 Oct 2018 22:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面有一篇文章写到一些，&lt;a href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n&lt;strong&gt;本文当初摘要自 &lt;a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;国光个人博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。&lt;a href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;备用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"初始化\"&gt;&lt;span&gt;25 初始化&lt;/span&gt;\n &lt;a href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;下载并初始化 termux&lt;/p&gt;</description></item><item><title>linux 编程初体验</title><link>https://lruihao.cn/posts/linux-hello-c/</link><pubDate>Mon, 15 Oct 2018 21:19:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-hello-c/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;在 Linux 上编译 c 语言文件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开-vim-编辑器\"&gt;&lt;span&gt;0.10 打开 vim 编辑器&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;（没有就用 vi, 或者先安装 vim&lt;code&gt;sudo apt-get install vim&lt;/code&gt;)&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vim&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"编辑文件\"&gt;&lt;span&gt;0.11 编辑文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;打开文件编辑器之后编辑文件\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"&lt;h2&gt;edit&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>linux/centos 下的安装 git</title><link>https://lruihao.cn/posts/linux-git/</link><pubDate>Sat, 22 Sep 2018 22:28:45 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-git/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"下载-git\"&gt;&lt;span&gt;0.16 下载 git&lt;/span&gt;\n &lt;a href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;wget https://github.com/git/git/archive/v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"安装依赖\"&gt;&lt;span&gt;0.17 安装依赖&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker&lt;/code&gt;&lt;/pre&gt;&lt;h3 class=\"heading-element\" id=\"解压-git\"&gt;&lt;span&gt;0.18 解压 git&lt;/span&gt;\n &lt;a href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;unzip v2.14.1.zip&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注：\nunzip 命令用不了，具体步骤如下：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/linux/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/linux/</title><link rel=canonical href=https://lruihao.cn/tags/linux/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/linux/\"></head></html>"
  },
  {
    "path": "tags/loading/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"loading - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"浏览器 IMG 图片原生懒加载 loading=\\\"lazy\\\"\",\"date_published\":\"2023-02-12T19:40:43&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"url\":\"https://lruihao.cn/posts/native-img-loading-lazy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"eager\",\"lazy\",\"loading\"],\"summary\":\"记录使用 HTML 原生方案实现图片的懒加载。\\n\",\"content_html\":\"\\u003cp\\u003e记录使用 HTML 原生方案实现图片的懒加载。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/loading/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>loading - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"loading\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-12T19:40:43+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/loading/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"loading\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"loading\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/loading/ title=\"loading | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/loading/index.xml title=\"loading | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/loading/feed.json title=\"loading | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/loading/feed.json title=\"loading | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/loading/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Loading</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>loading <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/native-img-loading-lazy/ class=archive-item-link>浏览器 IMG 图片原生懒加载 Loading=\"lazy\"</a>\n<span class=archive-item-date title='2023-02-12 19:40:43'>02-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/loading/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/loading/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>loading - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/loading/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/loading/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>浏览器 IMG 图片原生懒加载 loading=\"lazy\"</title><link>https://lruihao.cn/posts/native-img-loading-lazy/</link><pubDate>Sun, 12 Feb 2023 19:40:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/native-img-loading-lazy/</guid><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;记录使用 HTML 原生方案实现图片的懒加载。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/loading/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/loading/</title><link rel=canonical href=https://lruihao.cn/tags/loading/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/loading/\"></head></html>"
  },
  {
    "path": "tags/lua/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"lua - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博採眾長 app\",\"date_published\":\"2018-11-12T16:04:04&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fas-app/\",\"url\":\"https://lruihao.cn/posts/fas-app/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"lua\",\"fusion\"],\"summary\":\"0.7 介绍 使用 fusion app 对网页进行的封装。\\n功能：\\n浏览本博客，主页 私人网盘 2048 等小游戏 在线客服，QQ 等 pc 与移动浏览器标识切换 留言，打赏，博主日志等 分享功能，分享到 QQ，微信，浏览器打开等 app 内添加书签，自动记录历史记录，刷新等 配合博客的PWA + quicklink功能可实现离线浏览 \",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"介绍\\\"\\u003e\\u003cspan\\u003e0.7 介绍\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%bb%8b%e7%bb%8d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e使用 fusion app 对网页进行的封装。\\u003cbr\\u003e\\n功能：\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e浏览本博客，主页\\u003c/li\\u003e\\n\\u003cli\\u003e私人网盘\\u003c/li\\u003e\\n\\u003cli\\u003e2048 等小游戏\\u003c/li\\u003e\\n\\u003cli\\u003e在线客服，QQ 等\\u003c/li\\u003e\\n\\u003cli\\u003epc 与移动浏览器标识切换\\u003c/li\\u003e\\n\\u003cli\\u003e留言，打赏，博主日志等\\u003c/li\\u003e\\n\\u003cli\\u003e分享功能，分享到 QQ，微信，浏览器打开等\\u003c/li\\u003e\\n\\u003cli\\u003eapp 内添加书签，自动记录历史记录，刷新等\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003cstrong\\u003e配合博客的\\u003ccode\\u003ePWA + quicklink\\u003c/code\\u003e功能可实现离线浏览\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"}]}"
  },
  {
    "path": "tags/lua/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>lua - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"lua\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-11-12T16:04:04+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/lua/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"lua\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"lua\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/lua/ title=\"lua | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/lua/index.xml title=\"lua | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/lua/feed.json title=\"lua | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/lua/feed.json title=\"lua | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/lua/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Lua</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>lua <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/fas-app/ class=archive-item-link>博採眾長 App</a>\n<span class=archive-item-date title='2018-11-12 16:04:04'>11-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/lua/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/lua/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>lua - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/lua/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/lua/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博採眾長 app</title><link>https://lruihao.cn/posts/fas-app/</link><pubDate>Mon, 12 Nov 2018 16:04:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fas-app/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"介绍\"&gt;&lt;span&gt;0.10 介绍&lt;/span&gt;\n &lt;a href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;使用 fusion app 对网页进行的封装。&lt;br&gt;\n功能：&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;浏览本博客，主页&lt;/li&gt;\n&lt;li&gt;私人网盘&lt;/li&gt;\n&lt;li&gt;2048 等小游戏&lt;/li&gt;\n&lt;li&gt;在线客服，QQ 等&lt;/li&gt;\n&lt;li&gt;pc 与移动浏览器标识切换&lt;/li&gt;\n&lt;li&gt;留言，打赏，博主日志等&lt;/li&gt;\n&lt;li&gt;分享功能，分享到 QQ，微信，浏览器打开等&lt;/li&gt;\n&lt;li&gt;app 内添加书签，自动记录历史记录，刷新等&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;配合博客的&lt;code&gt;PWA + quicklink&lt;/code&gt;功能可实现离线浏览&lt;/strong&gt;&lt;/li&gt;\n&lt;/ul&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/lua/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/lua/</title><link rel=canonical href=https://lruihao.cn/tags/lua/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/lua/\"></head></html>"
  },
  {
    "path": "tags/mac/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Mac - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/mac/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Mac - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Mac\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-12T10:58:44+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/mac/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Mac\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Mac\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/mac/ title=\"Mac | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/mac/index.xml title=\"Mac | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/mac/feed.json title=\"Mac | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/mac/feed.json title=\"Mac | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/mac/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Mac</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Mac <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/mac/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/mac/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Mac - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/mac/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 07 Jan 2025 10:08:46 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/mac/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>linux 文件权限</title><link>https://lruihao.cn/posts/linux-permission/</link><pubDate>Sat, 30 Jul 2022 17:15:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-permission/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;记录 linux 系统下文件权限相关的内容，Mac OS 下类似。&lt;/p&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/mac/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/mac/</title><link rel=canonical href=https://lruihao.cn/tags/mac/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/mac/\"></head></html>"
  },
  {
    "path": "tags/markdown/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Markdown - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"},{\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"date_published\":\"2021-10-05T21:54:06&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"url\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"Sublime\"],\"summary\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/robinchenyu/imagepaste\\\" title=\\\"插件地址\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e插件地址\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/robinchenyu/imagepaste\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/markdown/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Markdown - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Markdown\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-11T14:26:48+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/markdown/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Markdown\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Markdown\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/markdown/ title=\"Markdown | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/markdown/index.xml title=\"Markdown | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/markdown/feed.json title=\"Markdown | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/markdown/feed.json title=\"Markdown | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/markdown/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Markdown</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Markdown <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/subl_imgpaste2/ class=archive-item-link>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a>\n<span class=archive-item-date title='2021-10-05 21:54:06'>10-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/markdown/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/markdown/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Markdown - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/markdown/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/markdown/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item><item><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</title><link>https://lruihao.cn/posts/subl_imgpaste2/</link><pubDate>Tue, 05 Oct 2021 21:54:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subl_imgpaste2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;插件地址&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/robinchenyu/imagepaste&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;Cell Blog 开发记录，&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/markdown/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/markdown/</title><link rel=canonical href=https://lruihao.cn/tags/markdown/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/markdown/\"></head></html>"
  },
  {
    "path": "tags/markdownlint/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"markdownlint - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/markdownlint/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>markdownlint - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"markdownlint\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-11T14:26:48+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/markdownlint/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"markdownlint\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"markdownlint\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/markdownlint/ title=\"markdownlint | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/markdownlint/index.xml title=\"markdownlint | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/markdownlint/feed.json title=\"markdownlint | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/markdownlint/feed.json title=\"markdownlint | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/markdownlint/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Markdownlint</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>markdownlint <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/markdownlint/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/markdownlint/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>markdownlint - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/markdownlint/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 06 Aug 2024 14:11:51 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/markdownlint/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/markdownlint/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/markdownlint/</title><link rel=canonical href=https://lruihao.cn/tags/markdownlint/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/markdownlint/\"></head></html>"
  },
  {
    "path": "tags/mermaid/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Mermaid - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/mermaid/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Mermaid - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Mermaid\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/mermaid/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Mermaid\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Mermaid\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/mermaid/ title=\"Mermaid | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/mermaid/index.xml title=\"Mermaid | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/mermaid/feed.json title=\"Mermaid | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/mermaid/feed.json title=\"Mermaid | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/mermaid/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Mermaid</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Mermaid <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/mermaid/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/mermaid/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Mermaid - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/mermaid/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/mermaid/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/mermaid/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/mermaid/</title><link rel=canonical href=https://lruihao.cn/tags/mermaid/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/mermaid/\"></head></html>"
  },
  {
    "path": "tags/minder/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"minder - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/minder/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>minder - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"minder\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-10-10T02:50:53+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:16+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/minder/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"minder\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"minder\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/minder/ title=\"minder | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/minder/index.xml title=\"minder | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/minder/feed.json title=\"minder | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/minder/feed.json title=\"minder | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/minder/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Minder</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>minder <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/minder/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/minder/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>minder - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/minder/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:16 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/minder/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/minder/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/minder/</title><link rel=canonical href=https://lruihao.cn/tags/minder/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/minder/\"></head></html>"
  },
  {
    "path": "tags/mmt/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"mmt - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"沐目之，湘也。— 沐目体\",\"date_published\":\"2019-09-26T12:44:17Z\",\"date_modified\":\"2025-08-06T09:23:14Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"font\",\"mmt\"],\"summary\":\" 关于沐目体\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/mmt/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>mmt - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"mmt\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-04-10T08:35:34+00:00\"><meta itemprop=dateModified content=\"2026-01-05T07:25:04+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/mmt/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"mmt\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"mmt\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/mmt/ title=\"mmt | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/mmt/index.xml title=\"mmt | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/mmt/feed.json title=\"mmt | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/mmt/feed.json title=\"mmt | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/mmt/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Mmt</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>mmt <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/lruihao/mmt/ class=archive-item-link>Lruihao/MMT</a>\n<span class=archive-item-date title='2019-09-26 12:44:17'>09-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/mmt/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/mmt/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>mmt - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/mmt/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 05 Jan 2026 07:25:04 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/mmt/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>沐目之，湘也。— 沐目体</title><link>https://lruihao.cn/projects/lruihao/mmt/</link><pubDate>Thu, 26 Sep 2019 12:44:17 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/mmt/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/mmt/</title><link rel=canonical href=https://lruihao.cn/tags/mmt/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/mmt/\"></head></html>"
  },
  {
    "path": "tags/mysql/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"MySQL - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"SQL 总结\",\"date_published\":\"2020-01-16T19:28:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sql/\",\"url\":\"https://lruihao.cn/posts/sql/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"MySQL\"],\"summary\":\" SQL 增删改查 (CRUD) 语句与常用函数总结。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/mysql/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>MySQL - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"MySQL\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-01-16T19:28:05+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/mysql/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"MySQL\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"MySQL\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/mysql/ title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/mysql/index.xml title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/mysql/feed.json title=\"MySQL | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/mysql/feed.json title=\"MySQL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/mysql/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>MySQL</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>MySQL <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/sql/ class=archive-item-link>SQL 总结</a>\n<span class=archive-item-date title='2020-01-16 19:28:05'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/mysql/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/mysql/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>MySQL - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/mysql/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/mysql/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>SQL 总结</title><link>https://lruihao.cn/posts/sql/</link><pubDate>Thu, 16 Jan 2020 19:28:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sql/</guid><category domain=\"https://lruihao.cn/categories/mysql/\">MySQL</category><description>&lt;blockquote&gt;\n&lt;p&gt;SQL 增删改查 (CRUD) 语句与常用函数总结。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/mysql/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/mysql/</title><link rel=canonical href=https://lruihao.cn/tags/mysql/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/mysql/\"></head></html>"
  },
  {
    "path": "tags/netbeans/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"NetBeans - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"NetBeans IDE 开发设置\",\"date_published\":\"2019-08-15T18:36:15&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/netbeans/\",\"url\":\"https://lruihao.cn/posts/netbeans/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"NetBeans\",\"PHP\"],\"summary\":\"7 安裝 官方下載點\\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安裝\\\"\\u003e\\u003cspan\\u003e7 安裝\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://netbeans.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方下載點\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"擴充功能\\\"\\u003e\\u003cspan\\u003e8 擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安裝擴充功能\\\"\\u003e\\u003cspan\\u003e8.1 安裝擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e下載擴充套件包\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://plugins.netbeans.org/PluginPortal/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方套件庫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e或者在 NetBeans IDE 裏面下載插件（方便）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要安裝的擴充套件包\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"啟用已安裝的擴充功能\\\"\\u003e\\u003cspan\\u003e8.2 啟用已安裝的擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Installed\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要啟用的套件 (*.npm)\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Activate\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"匯入設定\\\"\\u003e\\u003cspan\\u003e8.3 匯入設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Options\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Import 匯入設定\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要匯入的套件包 (*.zip)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常用設定\\\"\\u003e\\u003cspan\\u003e9 常用設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"程式碼排版\\\"\\u003e\\u003cspan\\u003e9.1 程式碼排版\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/netbeans/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>NetBeans - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"NetBeans\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-08-15T18:36:15+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/netbeans/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"NetBeans\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"NetBeans\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/netbeans/ title=\"NetBeans | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/netbeans/index.xml title=\"NetBeans | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/netbeans/feed.json title=\"NetBeans | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/netbeans/feed.json title=\"NetBeans | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/netbeans/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>NetBeans</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>NetBeans <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/netbeans/ class=archive-item-link>NetBeans IDE 开发设置</a>\n<span class=archive-item-date title='2019-08-15 18:36:15'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/netbeans/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/netbeans/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>NetBeans - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/netbeans/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/netbeans/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>NetBeans IDE 开发设置</title><link>https://lruihao.cn/posts/netbeans/</link><pubDate>Thu, 15 Aug 2019 18:36:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/netbeans/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"安裝\"&gt;&lt;span&gt;10 安裝&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方下載點&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"擴充功能\"&gt;&lt;span&gt;11 擴充功能&lt;/span&gt;\n &lt;a href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安裝擴充功能\"&gt;&lt;span&gt;11.1 安裝擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;下載擴充套件包\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方套件庫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;或者在 NetBeans IDE 裏面下載插件（方便）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins&lt;/li&gt;\n&lt;li&gt;選擇要安裝的擴充套件包&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"&gt;&lt;span&gt;11.2 啟用已安裝的擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Installed&lt;/li&gt;\n&lt;li&gt;選擇要啟用的套件 (*.npm)&lt;/li&gt;\n&lt;li&gt;點擊 Activate&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"匯入設定\"&gt;&lt;span&gt;11.3 匯入設定&lt;/span&gt;\n &lt;a href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Options&lt;/li&gt;\n&lt;li&gt;點擊 Import 匯入設定&lt;/li&gt;\n&lt;li&gt;選擇要匯入的套件包 (*.zip)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"常用設定\"&gt;&lt;span&gt;12 常用設定&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"程式碼排版\"&gt;&lt;span&gt;12.1 程式碼排版&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;blockquote&gt;\n&lt;p&gt;在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/netbeans/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/netbeans/</title><link rel=canonical href=https://lruihao.cn/tags/netbeans/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/netbeans/\"></head></html>"
  },
  {
    "path": "tags/netease-cloud-music/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"netease-cloud-music - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/netease-cloud-music/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>netease-cloud-music - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"netease-cloud-music\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-02-28T09:12:29+00:00\"><meta itemprop=dateModified content=\"2025-07-02T07:28:07+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/netease-cloud-music/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"netease-cloud-music\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"netease-cloud-music\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/netease-cloud-music/ title=\"netease-cloud-music | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/netease-cloud-music/index.xml title=\"netease-cloud-music | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/netease-cloud-music/feed.json title=\"netease-cloud-music | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/netease-cloud-music/feed.json title=\"netease-cloud-music | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/netease-cloud-music/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Netease-Cloud-Music</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>netease-cloud-music <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/netease-cloud-music/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/netease-cloud-music/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>netease-cloud-music - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/netease-cloud-music/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Jul 2025 07:28:07 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/netease-cloud-music/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/netease-cloud-music/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/netease-cloud-music/</title><link rel=canonical href=https://lruihao.cn/tags/netease-cloud-music/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/netease-cloud-music/\"></head></html>"
  },
  {
    "path": "tags/newline/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"newline - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"不同系统的换行符的差异\",\"date_published\":\"2022-08-07T00:10:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/newline/\",\"url\":\"https://lruihao.cn/posts/newline/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"newline\"],\"summary\":\"换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\n\",\"content_html\":\"\\u003cp\\u003e换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/newline/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>newline - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"newline\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-07T00:10:30+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/newline/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"newline\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"newline\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/newline/ title=\"newline | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/newline/index.xml title=\"newline | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/newline/feed.json title=\"newline | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/newline/feed.json title=\"newline | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/newline/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Newline</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>newline <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/newline/ class=archive-item-link>不同系统的换行符的差异</a>\n<span class=archive-item-date title='2022-08-07 00:10:30'>08-07</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/newline/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/newline/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>newline - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/newline/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/newline/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>不同系统的换行符的差异</title><link>https://lruihao.cn/posts/newline/</link><pubDate>Sun, 07 Aug 2022 00:10:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/newline/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;换行符（通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符）是字符编码规范（例如，ASCII、EBCDIC）中的控制字符或控制字符序列，用于表示一行文本的结尾和新文本的开头。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/newline/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/newline/</title><link rel=canonical href=https://lruihao.cn/tags/newline/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/newline/\"></head></html>"
  },
  {
    "path": "tags/nginx/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"nginx - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/nginx/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>nginx - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"nginx\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-11T10:05:36+08:00\"><meta itemprop=dateModified content=\"2025-06-11T10:15:18+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/nginx/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"nginx\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"nginx\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/nginx/ title=\"nginx | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/nginx/index.xml title=\"nginx | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/nginx/feed.json title=\"nginx | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/nginx/feed.json title=\"nginx | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/nginx/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Nginx</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>nginx <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/aws-ec2/ class=archive-item-link>将 Hugo 博客部署到 AWS 服务器</a>\n<span class=archive-item-date title='2023-08-26 17:22:57'>08-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/nginx/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/nginx/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>nginx - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/nginx/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 11 Jun 2025 10:15:18 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/nginx/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/nginx/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/nginx/</title><link rel=canonical href=https://lruihao.cn/tags/nginx/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/nginx/\"></head></html>"
  },
  {
    "path": "tags/ngrok/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ngrok - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/ngrok/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ngrok - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ngrok\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-03T19:29:43+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/ngrok/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ngrok\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ngrok\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/ngrok/ title=\"ngrok | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/ngrok/index.xml title=\"ngrok | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/ngrok/feed.json title=\"ngrok | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/ngrok/feed.json title=\"ngrok | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/ngrok/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Ngrok</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ngrok <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/ngrok/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/ngrok/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ngrok - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/ngrok/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/ngrok/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/ngrok/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/ngrok/</title><link rel=canonical href=https://lruihao.cn/tags/ngrok/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/ngrok/\"></head></html>"
  },
  {
    "path": "tags/node.js/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Node.js - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Code Playground\",\"date_published\":\"2025-08-04T11:37:24&#43;08:00\",\"date_modified\":\"2025-08-27T12:30:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/code-playground/\",\"url\":\"https://lruihao.cn/posts/code-playground/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"npm\"],\"summary\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\n\",\"content_html\":\"\\u003cp\\u003e以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\u003c/p\\u003e\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"Node.js + GitHub Actions 自动刷新 CDN\",\"date_published\":\"2022-08-07T14:40:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qcloudcdn/\",\"url\":\"https://lruihao.cn/posts/qcloudcdn/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CDN\",\"GitHub Actions\",\"Node.js\"],\"summary\":\" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"hexo 博客源码备份\",\"date_published\":\"2018-11-03T12:49:28&#43;08:00\",\"date_modified\":\"2018-11-03T12:49:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/blog-backup/\",\"url\":\"https://lruihao.cn/posts/blog-backup/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Hexo\",\"Node.js\"],\"image\":\"/posts/blog-backup/images/1.png\",\"summary\":\"5 备份 hexo 博客 //如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \\\"blog hexo\\\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好，即搭建完成\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"备份-hexo-博客\\\"\\u003e\\u003cspan\\u003e5 备份 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\\ncd hexo\\ngit init  //初始化本地仓库\\ngit add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加\\ngit commit -m \\\"blog hexo\\\"\\ngit branch hexo  //新建 hexo 分支\\ngit checkout hexo  //切换到 hexo 分支上\\ngit remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接\\ngit push origin hexo  //push 到 Github 项目的 hexo 分支上\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"在其他终端克隆和更新-hexo-博客\\\"\\u003e\\u003cspan\\u003e6 在其他终端克隆和更新 hexo 博客\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003enodejs,git,hexo 已经安装好，即搭建完成\\u003c/p\\u003e\"},{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"ttf 字体压缩\",\"date_published\":\"2018-10-17T21:38:06&#43;08:00\",\"date_modified\":\"2024-08-16T16:43:36&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-font/\",\"url\":\"https://lruihao.cn/posts/web-font/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"字体压缩\"],\"summary\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\n\",\"content_html\":\"\\u003cp\\u003eHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\u003c/p\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo+github 搭建个人博客及美化\",\"date_published\":\"2018-06-01T14:34:23&#43;08:00\",\"date_modified\":\"2021-10-03T15:27:58&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexobuild/\",\"url\":\"https://lruihao.cn/posts/hexobuild/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\"],\"summary\":\"更多关于 hexo\\n17 首先 官方文档 是我们的第一手资料，也是最好的。 安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"/categories/hexo/\\\"\\u003e更多关于 hexo\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"首先\\\"\\u003e\\u003cspan\\u003e17 首先\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a6%96%e5%85%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://hexo.io/zh-cn/docs/index.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我们的第一手资料，也是最好的。\\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/node.js/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Node.js - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Node.js\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-04T11:37:24+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/node.js/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Node.js\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Node.js\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/node.js/ title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/node.js/index.xml title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/node.js/feed.json title=\"Node.js | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/node.js/feed.json title=\"Node.js | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/node.js/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Node.js</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Node.js <sup>10</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a>\n<span class=archive-item-date title='2025-08-04 11:37:24'>08-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/qcloudcdn/ class=archive-item-link>Node.js + GitHub Actions 自动刷新 CDN</a>\n<span class=archive-item-date title='2022-08-07 14:40:33'>08-07</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/blog-backup/ class=archive-item-link>Hexo 博客源码备份</a>\n<span class=archive-item-date title='2018-11-03 12:49:28'>11-03</span></article><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/web-font/ class=archive-item-link>Ttf 字体压缩</a>\n<span class=archive-item-date title='2018-10-17 21:38:06'>10-17</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article><article class=archive-item><a href=/posts/hexobuild/ class=archive-item-link>Hexo+github 搭建个人博客及美化</a>\n<span class=archive-item-date title='2018-06-01 14:34:23'>06-01</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/node.js/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/node.js/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Node.js - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/node.js/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 27 Aug 2025 12:30:22 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/node.js/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Code Playground</title><link>https://lruihao.cn/posts/code-playground/</link><pubDate>Mon, 04 Aug 2025 11:37:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/code-playground/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;以下是常见的在线代码演示和开发环境服务，适合不同场景使用：&lt;/p&gt;</description></item><item><title>使用 Node.js 自动创建 Vue 的路由</title><link>https://lruihao.cn/posts/gen-router/</link><pubDate>Wed, 14 Jun 2023 00:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gen-router/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。&lt;/p&gt;</description></item><item><title>Node.js + GitHub Actions 自动刷新 CDN</title><link>https://lruihao.cn/posts/qcloudcdn/</link><pubDate>Sun, 07 Aug 2022 14:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qcloudcdn/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;腾讯云云函数从 2022 年 6 月 1 日开始收费了，差不多每个月 12 块，对于可能几个月都用不上一次云函数刷新缓存的人来说，有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式，可以节省不少钱。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable-file --&gt;\n&lt;div class=\"details admonition danger open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"&gt;&lt;/i&gt;危险&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;span style=\"color: #d9534f;font-size: 1.2em;\"&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对 next 的主题的自定义修改&lt;/strong&gt;，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib 资源已打包 github。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/blog-backup/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"备份-hexo-博客\"&gt;&lt;span&gt;7 备份 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m &amp;#34;blog hexo&amp;#34;\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"&gt;&lt;span&gt;8 在其他终端克隆和更新 hexo 博客&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;nodejs,git,hexo 已经安装好，即搭建完成&lt;/p&gt;</description></item><item><title>termux 基本使用教程</title><link>https://lruihao.cn/posts/termux1/</link><pubDate>Tue, 23 Oct 2018 22:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面有一篇文章写到一些，&lt;a href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n&lt;strong&gt;本文当初摘要自 &lt;a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;国光个人博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。&lt;a href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;备用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"初始化\"&gt;&lt;span&gt;25 初始化&lt;/span&gt;\n &lt;a href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;下载并初始化 termux&lt;/p&gt;</description></item><item><title>ttf 字体压缩</title><link>https://lruihao.cn/posts/web-font/</link><pubDate>Wed, 17 Oct 2018 21:38:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-font/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。&lt;/p&gt;</description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**&lt;a href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;部署后的效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;**&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo+github 搭建个人博客及美化</title><link>https://lruihao.cn/posts/hexobuild/</link><pubDate>Fri, 01 Jun 2018 14:34:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexobuild/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://lruihao.cn/categories/hexo/\"&gt;更多关于 hexo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"首先\"&gt;&lt;span&gt;25 首先&lt;/span&gt;\n &lt;a href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我们的第一手资料，也是最好的。\n安装 Hexo 相当简单。然而在安装前，你必须检查电脑中是否已安装下列应用程序：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/node.js/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/node.js/</title><link rel=canonical href=https://lruihao.cn/tags/node.js/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/node.js/\"></head></html>"
  },
  {
    "path": "tags/nodejs/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"nodejs - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/nodejs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>nodejs - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"nodejs\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-09-04T18:10:59+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:22+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/nodejs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"nodejs\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"nodejs\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/nodejs/ title=\"nodejs | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/nodejs/index.xml title=\"nodejs | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/nodejs/feed.json title=\"nodejs | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/nodejs/feed.json title=\"nodejs | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/nodejs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Nodejs</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>nodejs <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/nodejs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/nodejs/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>nodejs - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/nodejs/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:22 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/nodejs/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/nodejs/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/nodejs/</title><link rel=canonical href=https://lruihao.cn/tags/nodejs/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/nodejs/\"></head></html>"
  },
  {
    "path": "tags/nowcoder/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Nowcoder - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"牛客暑假多校第五场\",\"date_published\":\"2018-08-02T21:27:02&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"url\":\"https://lruihao.cn/posts/nowcodersummer-5th/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\"],\"summary\":\"题目链接 密码：l9sn\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接 密码：l9sn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多\\u003c/p\\u003e\"},{\"title\":\"牛客练习赛 23\",\"date_published\":\"2018-07-27T21:56:08&#43;08:00\",\"date_modified\":\"2018-07-27T21:56:08&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"url\":\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Nowcoder\",\"ACM\",\"C++\",\"C\"],\"summary\":\"两题水过，暴力，找规律。\\n9 托米的赌球 10 托米的划分 \",\"content_html\":\"\\u003cp\\u003e两题水过，暴力，找规律。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的赌球\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的赌球\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"托米的划分\\\"\\u003e\\u003cspan\\u003e10 \\u003ca href=\\\"https://www.nowcoder.com/acm/contest/156/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e托米的划分\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"Wannafly 挑战赛 20-染色\",\"date_published\":\"2018-07-22T11:46:25&#43;08:00\",\"date_modified\":\"2018-07-22T11:46:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-20/\",\"url\":\"https://lruihao.cn/posts/wannafly-20/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/133/A\\n来源：牛客网\\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/133/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/133/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，\\u003cbr\\u003e\\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价\\u003c/p\\u003e\"},{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/nowcoder/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Nowcoder - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Nowcoder\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-10T22:11:00+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/nowcoder/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Nowcoder\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Nowcoder\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/nowcoder/ title=\"Nowcoder | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/nowcoder/index.xml title=\"Nowcoder | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/nowcoder/feed.json title=\"Nowcoder | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/nowcoder/feed.json title=\"Nowcoder | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/nowcoder/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Nowcoder</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Nowcoder <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/nowcodersummer-5th/ class=archive-item-link>牛客暑假多校第五场</a>\n<span class=archive-item-date title='2018-08-02 21:27:02'>08-02</span></article><article class=archive-item><a href=/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ class=archive-item-link>牛客练习赛 23</a>\n<span class=archive-item-date title='2018-07-27 21:56:08'>07-27</span></article><article class=archive-item><a href=/posts/wannafly-20/ class=archive-item-link>Wannafly 挑战赛 20-染色</a>\n<span class=archive-item-date title='2018-07-22 11:46:25'>07-22</span></article><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/nowcoder/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/nowcoder/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Nowcoder - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/nowcoder/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/nowcoder/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>牛客暑假多校第五场</title><link>https://lruihao.cn/posts/nowcodersummer-5th/</link><pubDate>Thu, 02 Aug 2018 21:27:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcodersummer-5th/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接 密码：l9sn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n终于不爆零了，但是还是 wa 了无数次，有时候代码感觉都差不多&lt;/p&gt;</description></item><item><title>牛客练习赛 23</title><link>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</link><pubDate>Fri, 27 Jul 2018 21:56:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;两题水过，暴力，找规律。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"托米的赌球\"&gt;&lt;span&gt;13 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的赌球&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"托米的划分\"&gt;&lt;span&gt;14 &lt;a href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;托米的划分&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>Wannafly 挑战赛 20-染色</title><link>https://lruihao.cn/posts/wannafly-20/</link><pubDate>Sun, 22 Jul 2018 11:46:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-20/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/133/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;现在有一棵被 Samsara-Karma 染了 k 种颜色的树，每种颜色有着不同的价值，Applese 觉得 Samsara-Karma 染的太难看了，于是打算把整棵树重新染成同一种颜色，但是，由于一些奥妙重重的原因，每一次染色 Applese 可以选择两个有边相连的点，将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价，&lt;br&gt;\n现在，Applese 的钱要用来买书 (game)，所以他想要最小化代价&lt;/p&gt;</description></item><item><title>TaoTao 要吃鸡</title><link>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</link><pubDate>Sun, 22 Jul 2018 10:55:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）&lt;br&gt;\n链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/74/B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;16 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/nowcoder/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/nowcoder/</title><link rel=canonical href=https://lruihao.cn/tags/nowcoder/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/nowcoder/\"></head></html>"
  },
  {
    "path": "tags/npm/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"npm - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Code Playground\",\"date_published\":\"2025-08-04T11:37:24&#43;08:00\",\"date_modified\":\"2025-08-27T12:30:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/code-playground/\",\"url\":\"https://lruihao.cn/posts/code-playground/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"npm\"],\"summary\":\"以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\n\",\"content_html\":\"\\u003cp\\u003e以下是常见的在线代码演示和开发环境服务，适合不同场景使用：\\u003c/p\\u003e\"},{\"title\":\"如何给 npm 包打补丁？\",\"date_published\":\"2023-10-12T22:37:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/patch-package/\",\"url\":\"https://lruihao.cn/posts/patch-package/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"npm\",\"JavaScript\"],\"image\":\"https://lruihao.cn/posts/patch-package/images/featured-image.png\",\"summary\":\"本文将介绍如何给 npm 包打补丁。\",\"content_html\":\"本文将介绍如何给 npm 包打补丁。\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/npm/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>npm - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"npm\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-04T11:37:24+08:00\"><meta itemprop=dateModified content=\"2025-08-27T12:30:22+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/npm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"npm\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"npm\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/npm/ title=\"npm | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/npm/index.xml title=\"npm | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/npm/feed.json title=\"npm | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/npm/feed.json title=\"npm | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/npm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Npm</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>npm <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/code-playground/ class=archive-item-link>Code Playground</a>\n<span class=archive-item-date title='2025-08-04 11:37:24'>08-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/patch-package/ class=archive-item-link>如何给 Npm 包打补丁？</a>\n<span class=archive-item-date title='2023-10-12 22:37:56'>10-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/npm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/npm/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>npm - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/npm/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 27 Aug 2025 12:30:22 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/npm/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Code Playground</title><link>https://lruihao.cn/posts/code-playground/</link><pubDate>Mon, 04 Aug 2025 11:37:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/code-playground/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;p&gt;以下是常见的在线代码演示和开发环境服务，适合不同场景使用：&lt;/p&gt;</description></item><item><title>如何给 npm 包打补丁？</title><link>https://lruihao.cn/posts/patch-package/</link><pubDate>Thu, 12 Oct 2023 22:37:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/patch-package/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>本文将介绍如何给 npm 包打补丁。</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/npm/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/npm/</title><link rel=canonical href=https://lruihao.cn/tags/npm/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/npm/\"></head></html>"
  },
  {
    "path": "tags/npx/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"npx - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/npx/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>npx - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"npx\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-12-15T15:33:30+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/npx/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"npx\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"npx\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/npx/ title=\"npx | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/npx/index.xml title=\"npx | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/npx/feed.json title=\"npx | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/npx/feed.json title=\"npx | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/npx/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Npx</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>npx <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/npx/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/npx/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>npx - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/npx/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/npx/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/npx/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/npx/</title><link rel=canonical href=https://lruihao.cn/tags/npx/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/npx/\"></head></html>"
  },
  {
    "path": "tags/numpy/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"numpy - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/numpy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>numpy - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"numpy\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-27T14:16:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/numpy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"numpy\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"numpy\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/numpy/ title=\"numpy | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/numpy/index.xml title=\"numpy | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/numpy/feed.json title=\"numpy | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/numpy/feed.json title=\"numpy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/numpy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Numpy</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>numpy <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/numpy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/numpy/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>numpy - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/numpy/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/numpy/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/numpy/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/numpy/</title><link rel=canonical href=https://lruihao.cn/tags/numpy/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/numpy/\"></head></html>"
  },
  {
    "path": "tags/nvm/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"nvm - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"解决 SourceTree 提交时候 husky 命令失败问题\",\"date_published\":\"2023-06-12T10:58:44&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"url\":\"https://lruihao.cn/posts/sourcetree-husky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"husky\",\"Mac\",\"nvm\"],\"summary\":\"7 问题描述 在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e7 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" title=\\\"问题截图\\\" data-thumbnail=\\\"/posts/sourcetree-husky/images/23_1686538807.png\\\" data-sub-html=\\\"\\u003ch2\\u003e问题截图\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\\\"问题截图\\\" height=\\\"856\\\" width=\\\"1252\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\",\"date_published\":\"2022-12-15T15:33:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/homebrew-npm/\",\"url\":\"https://lruihao.cn/posts/homebrew-npm/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Homebrew\",\"npm\",\"npx\",\"Mac\",\"nvm\",\"debug\"],\"summary\":\" 问题 前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e问题\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Mac 上的开发配置总结\",\"date_published\":\"2022-07-29T20:22:44&#43;08:00\",\"date_modified\":\"2025-01-07T10:08:46&#43;08:00\",\"id\":\"https://lruihao.cn/posts/config4mac/\",\"url\":\"https://lruihao.cn/posts/config4mac/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"Mac\",\"Node.js\",\"nvm\"],\"summary\":\"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/nvm/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>nvm - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"nvm\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-12T10:58:44+08:00\"><meta itemprop=dateModified content=\"2025-01-07T10:08:46+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/nvm/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"nvm\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"nvm\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/nvm/ title=\"nvm | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/nvm/index.xml title=\"nvm | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/nvm/feed.json title=\"nvm | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/nvm/feed.json title=\"nvm | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/nvm/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Nvm</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>nvm <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/sourcetree-husky/ class=archive-item-link>解决 SourceTree 提交时候 Husky 命令失败问题</a>\n<span class=archive-item-date title='2023-06-12 10:58:44'>06-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/homebrew-npm/ class=archive-item-link>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a>\n<span class=archive-item-date title='2022-12-15 15:33:30'>12-15</span></article><article class=archive-item><a href=/posts/config4mac/ class=archive-item-link>Mac 上的开发配置总结</a>\n<span class=archive-item-date title='2022-07-29 20:22:44'>07-29</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/nvm/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/nvm/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>nvm - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/nvm/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 07 Jan 2025 10:08:46 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/nvm/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>解决 SourceTree 提交时候 husky 命令失败问题</title><link>https://lruihao.cn/posts/sourcetree-husky/</link><pubDate>Mon, 12 Jun 2023 10:58:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sourcetree-husky/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;10 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在使用 SourceTree 提交代码的时候，会出现 husky 命令失败的问题（通过命令行提交代码没有问题），如下图所示：&lt;/p&gt;\n&lt;p&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"&lt;h2&gt;问题截图&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效</title><link>https://lruihao.cn/posts/homebrew-npm/</link><pubDate>Thu, 15 Dec 2022 15:33:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/homebrew-npm/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;问题&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;前面一段时间，安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后，发现虽然 node 版本切换成功，但是 node 版本对应的 npm 和 npx 版本不相符，下面记录一下问题排查过程。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Mac 上的开发配置总结</title><link>https://lruihao.cn/posts/config4mac/</link><pubDate>Fri, 29 Jul 2022 20:22:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/config4mac/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/nvm/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/nvm/</title><link rel=canonical href=https://lruihao.cn/tags/nvm/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/nvm/\"></head></html>"
  },
  {
    "path": "tags/os/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"OS - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"磁盘存储器的管理\",\"date_published\":\"2019-03-04T23:08:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cipanadmin/\",\"url\":\"https://lruihao.cn/posts/cipanadmin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"OS\",\"磁盘\"],\"summary\":\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"外存的组织方式\\\"\\u003e\\u003cspan\\u003e1 外存的组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"连续组织方式\\\"\\u003e\\u003cspan\\u003e1.1 连续组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e连续组织方式的优点\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/os/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>OS - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"OS\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-04T23:08:32+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/os/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"OS\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"OS\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/os/ title=\"OS | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/os/index.xml title=\"OS | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/os/feed.json title=\"OS | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/os/feed.json title=\"OS | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/os/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>OS</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>OS <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/cipanadmin/ class=archive-item-link>磁盘存储器的管理</a>\n<span class=archive-item-date title='2019-03-04 23:08:32'>03-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/os/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/os/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>OS - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/os/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/os/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>磁盘存储器的管理</title><link>https://lruihao.cn/posts/cipanadmin/</link><pubDate>Mon, 04 Mar 2019 23:08:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cipanadmin/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"外存的组织方式\"&gt;&lt;span&gt;1 外存的组织方式&lt;/span&gt;\n &lt;a href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"连续组织方式\"&gt;&lt;span&gt;1.1 连续组织方式&lt;/span&gt;\n &lt;a href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;\n&lt;p&gt;连续组织方式的优点&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/os/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/os/</title><link rel=canonical href=https://lruihao.cn/tags/os/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/os/\"></head></html>"
  },
  {
    "path": "tags/pangu.js/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pangu.js - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"给你的 Markdown 挑挑刺\",\"date_published\":\"2023-10-11T14:26:48&#43;08:00\",\"date_modified\":\"2024-08-06T14:11:51&#43;08:00\",\"id\":\"https://lruihao.cn/posts/markdownlint/\",\"url\":\"https://lruihao.cn/posts/markdownlint/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"markdownlint\",\"pangu.js\",\"AutoCorrect\"],\"summary\":\"会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\n\",\"content_html\":\"\\u003cp\\u003e会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/pangu.js/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pangu.js - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pangu.js\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-11T14:26:48+08:00\"><meta itemprop=dateModified content=\"2024-08-06T14:11:51+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pangu.js/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pangu.js\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pangu.js\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pangu.js/ title=\"pangu.js | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pangu.js/index.xml title=\"pangu.js | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pangu.js/feed.json title=\"pangu.js | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pangu.js/feed.json title=\"pangu.js | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pangu.js/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pangu.js</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pangu.js <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/markdownlint/ class=archive-item-link>给你的 Markdown 挑挑刺</a>\n<span class=archive-item-date title='2023-10-11 14:26:48'>10-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pangu.js/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pangu.js/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pangu.js - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pangu.js/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 06 Aug 2024 14:11:51 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pangu.js/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>给你的 Markdown 挑挑刺</title><link>https://lruihao.cn/posts/markdownlint/</link><pubDate>Wed, 11 Oct 2023 14:26:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/markdownlint/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;p&gt;会写 Markdown 的人很多，但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」，检查文件中的 Markdown 语法和风格，并且提出解决方案、自动修复问题，甚至自动补齐中英文之间的「盘古之白」呢？本文介绍的 Markdown 语法检查器就能做到。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pangu.js/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pangu.js/</title><link rel=canonical href=https://lruihao.cn/tags/pangu.js/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pangu.js/\"></head></html>"
  },
  {
    "path": "tags/php/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"PHP - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"cell-blog 功能介绍与安装\",\"date_published\":\"2020-07-25T20:51:11&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-blog/\",\"url\":\"https://lruihao.cn/projects/cell-blog/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"image\":\"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png\",\"summary\":\" 基于 Laravel7 开发，Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品，目前已開源。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 Laravel7 开发，Markdown 语法的个人独立博客。\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, 也是我的毕业设计作品，目前已開源。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"cell-blog 开发记录\",\"date_published\":\"2020-07-25T20:42:42&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"url\":\"https://lruihao.cn/posts/cell-blog-dev/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"Laravel\",\"Markdown\"],\"summary\":\" Cell Blog 开发记录，项目地址\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eCell Blog 开发记录，\\u003ca href=\\\"https://github.com/Lruihao/cell-blog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 同时主动推送链接到百度，神马等站长平台\",\"date_published\":\"2019-09-28T18:32:42&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phppushurl/\",\"url\":\"https://lruihao.cn/posts/phppushurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" php 主动推送站点链接到百度站长，神马站长进行 SEO。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ephp 主动推送站点链接到百度站长，神马站长进行 SEO。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 按行读取文件信息\",\"date_published\":\"2019-09-28T17:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfile/\",\"url\":\"https://lruihao.cn/posts/phpfile/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\"7 普通方法 首先采用fopen()函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。feof()判断是否到最后一行，fgets()读取一行文本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"普通方法\\\"\\u003e\\u003cspan\\u003e7 普通方法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先采用\\u003ccode\\u003efopen()\\u003c/code\\u003e函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。\\u003ccode\\u003efeof()\\u003c/code\\u003e判断是否到最后一行，\\u003ccode\\u003efgets()\\u003c/code\\u003e读取一行文本。\\u003c/p\\u003e\"},{\"title\":\"NetBeans IDE 开发设置\",\"date_published\":\"2019-08-15T18:36:15&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/netbeans/\",\"url\":\"https://lruihao.cn/posts/netbeans/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"NetBeans\",\"PHP\"],\"summary\":\"7 安裝 官方下載點\\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件（方便） 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安裝\\\"\\u003e\\u003cspan\\u003e7 安裝\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://netbeans.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方下載點\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"擴充功能\\\"\\u003e\\u003cspan\\u003e8 擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"安裝擴充功能\\\"\\u003e\\u003cspan\\u003e8.1 安裝擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e下載擴充套件包\\n\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"http://plugins.netbeans.org/PluginPortal/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e官方套件庫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e或者在 NetBeans IDE 裏面下載插件（方便）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要安裝的擴充套件包\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"啟用已安裝的擴充功能\\\"\\u003e\\u003cspan\\u003e8.2 啟用已安裝的擴充功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Plugins→Installed\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要啟用的套件 (*.npm)\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Activate\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"匯入設定\\\"\\u003e\\u003cspan\\u003e8.3 匯入設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e開啟 NetBeans→Tools→Options\\u003c/li\\u003e\\n\\u003cli\\u003e點擊 Import 匯入設定\\u003c/li\\u003e\\n\\u003cli\\u003e選擇要匯入的套件包 (*.zip)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"常用設定\\\"\\u003e\\u003cspan\\u003e9 常用設定\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"程式碼排版\\\"\\u003e\\u003cspan\\u003e9.1 程式碼排版\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。\\u003c/p\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"简单评论模块--php 表单练习\",\"date_published\":\"2019-07-19T11:38:59&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpform/\",\"url\":\"https://lruihao.cn/posts/phpform/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\nPHP 表单安全性的重要提示\\n$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]变量能够被黑客利用！\\n如果页面中使用了PHP_SELF，用户能够输入下划线然后执行跨站点脚本（XSS）。\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\n跨站点脚本（Cross-site scripting，XSS）是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，\\u003cbr\\u003e\\n\\u003cstrong\\u003ePHP 表单安全性的重要提示\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003e$_SERVER[\\u0026quot;PHP_SELF\\u0026quot;]\\u003c/code\\u003e变量能够被黑客利用！\\u003cbr\\u003e\\n如果页面中使用了\\u003ccode\\u003ePHP_SELF\\u003c/code\\u003e，用户能够输入下划线然后执行跨站点脚本（XSS）。\\u003cbr\\u003e\\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e跨站点脚本（Cross-site scripting，XSS）\\u003c/code\\u003e是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"php 函数学习\",\"date_published\":\"2019-07-15T11:37:33&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/phpfunc/\",\"url\":\"https://lruihao.cn/posts/phpfunc/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\"],\"summary\":\" 练习 php 函数的基本使用。\\n注：\\n必选参数在可选参数的前面。\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e练习 php 函数的基本使用。\\u003cbr\\u003e\\n注：\\u003cbr\\u003e\\n必选参数在可选参数的前面。\\u003cbr\\u003e\\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/php/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>PHP - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"PHP\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2020-07-25T20:51:11+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/php/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"PHP\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"PHP\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/php/ title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/php/index.xml title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/php/feed.json title=\"PHP | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/php/feed.json title=\"PHP | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/php/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>PHP</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>PHP <sup>11</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/projects/cell-blog/ class=archive-item-link>Cell-Blog 功能介绍与安装</a>\n<span class=archive-item-date title='2020-07-25 20:51:11'>07-25</span></article><article class=archive-item><a href=/posts/cell-blog-dev/ class=archive-item-link>Cell-Blog 开发记录</a>\n<span class=archive-item-date title='2020-07-25 20:42:42'>07-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/phppushurl/ class=archive-item-link>Php 同时主动推送链接到百度，神马等站长平台</a>\n<span class=archive-item-date title='2019-09-28 18:32:42'>09-28</span></article><article class=archive-item><a href=/posts/phpfile/ class=archive-item-link>Php 按行读取文件信息</a>\n<span class=archive-item-date title='2019-09-28 17:11:17'>09-28</span></article><article class=archive-item><a href=/posts/netbeans/ class=archive-item-link>NetBeans IDE 开发设置</a>\n<span class=archive-item-date title='2019-08-15 18:36:15'>08-15</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/phpform/ class=archive-item-link>简单评论模块--Php 表单练习</a>\n<span class=archive-item-date title='2019-07-19 11:38:59'>07-19</span></article><article class=archive-item><a href=/posts/phpfunc/ class=archive-item-link>Php 函数学习</a>\n<span class=archive-item-date title='2019-07-15 11:37:33'>07-15</span></article><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/php/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/php/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>PHP - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/php/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/php/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>cell-blog 功能介绍与安装</title><link>https://lruihao.cn/projects/cell-blog/</link><pubDate>Sat, 25 Jul 2020 20:51:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-blog/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;基于 Laravel7 开发，Markdown 语法的个人独立博客。&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, 也是我的毕业设计作品，目前已開源。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>cell-blog 开发记录</title><link>https://lruihao.cn/posts/cell-blog-dev/</link><pubDate>Sat, 25 Jul 2020 20:42:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cell-blog-dev/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;Cell Blog 开发记录，&lt;a href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 同时主动推送链接到百度，神马等站长平台</title><link>https://lruihao.cn/posts/phppushurl/</link><pubDate>Sat, 28 Sep 2019 18:32:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phppushurl/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;php 主动推送站点链接到百度站长，神马站长进行 SEO。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 按行读取文件信息</title><link>https://lruihao.cn/posts/phpfile/</link><pubDate>Sat, 28 Sep 2019 17:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfile/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;h2 class=\"heading-element\" id=\"普通方法\"&gt;&lt;span&gt;10 普通方法&lt;/span&gt;\n &lt;a href=\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先采用&lt;code&gt;fopen()&lt;/code&gt;函数打开文件，得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件，然后输出每行的文字。&lt;code&gt;feof()&lt;/code&gt;判断是否到最后一行，&lt;code&gt;fgets()&lt;/code&gt;读取一行文本。&lt;/p&gt;</description></item><item><title>NetBeans IDE 开发设置</title><link>https://lruihao.cn/posts/netbeans/</link><pubDate>Thu, 15 Aug 2019 18:36:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/netbeans/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;h2 class=\"heading-element\" id=\"安裝\"&gt;&lt;span&gt;10 安裝&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方下載點&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"擴充功能\"&gt;&lt;span&gt;11 擴充功能&lt;/span&gt;\n &lt;a href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"安裝擴充功能\"&gt;&lt;span&gt;11.1 安裝擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;下載擴充套件包\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;官方套件庫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;或者在 NetBeans IDE 裏面下載插件（方便）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins&lt;/li&gt;\n&lt;li&gt;選擇要安裝的擴充套件包&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"&gt;&lt;span&gt;11.2 啟用已安裝的擴充功能&lt;/span&gt;\n &lt;a href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Plugins→Installed&lt;/li&gt;\n&lt;li&gt;選擇要啟用的套件 (*.npm)&lt;/li&gt;\n&lt;li&gt;點擊 Activate&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h3 class=\"heading-element\" id=\"匯入設定\"&gt;&lt;span&gt;11.3 匯入設定&lt;/span&gt;\n &lt;a href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;開啟 NetBeans→Tools→Options&lt;/li&gt;\n&lt;li&gt;點擊 Import 匯入設定&lt;/li&gt;\n&lt;li&gt;選擇要匯入的套件包 (*.zip)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"常用設定\"&gt;&lt;span&gt;12 常用設定&lt;/span&gt;\n &lt;a href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"程式碼排版\"&gt;&lt;span&gt;12.1 程式碼排版&lt;/span&gt;\n &lt;a href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;blockquote&gt;\n&lt;p&gt;在程式開發中，程式碼排版很重要。一個好的排版利於開發人員程式閱讀，也便於後期維護人員閱讀。&lt;/p&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>简单评论模块--php 表单练习</title><link>https://lruihao.cn/posts/phpform/</link><pubDate>Fri, 19 Jul 2019 11:38:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpform/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;简单模仿了一个评论模板，当然肯定是没有博客的 valine 这么强大的 hhhh，&lt;br&gt;\n&lt;strong&gt;PHP 表单安全性的重要提示&lt;/strong&gt;&lt;br&gt;\n&lt;code&gt;$_SERVER[&amp;quot;PHP_SELF&amp;quot;]&lt;/code&gt;变量能够被黑客利用！&lt;br&gt;\n如果页面中使用了&lt;code&gt;PHP_SELF&lt;/code&gt;，用户能够输入下划线然后执行跨站点脚本（XSS）。&lt;br&gt;\n比如说注入 js 脚本等，valine 以前的版本也有过这样的漏洞。&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;跨站点脚本（Cross-site scripting，XSS）&lt;/code&gt;是一种计算机安全漏洞类型，常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>php 函数学习</title><link>https://lruihao.cn/posts/phpfunc/</link><pubDate>Mon, 15 Jul 2019 11:37:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/phpfunc/</guid><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;练习 php 函数的基本使用。&lt;br&gt;\n注：&lt;br&gt;\n必选参数在可选参数的前面。&lt;br&gt;\n可在函数中定义函数，需要先调用外层函数才能调用内层函数。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/php/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/php/</title><link rel=canonical href=https://lruihao.cn/tags/php/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/php/\"></head></html>"
  },
  {
    "path": "tags/pillow/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pillow - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/pillow/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pillow - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pillow\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-27T14:16:54+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pillow/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pillow\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pillow\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pillow/ title=\"pillow | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pillow/index.xml title=\"pillow | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pillow/feed.json title=\"pillow | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pillow/feed.json title=\"pillow | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pillow/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pillow</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pillow <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pillow/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pillow/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pillow - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pillow/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pillow/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pillow/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pillow/</title><link rel=canonical href=https://lruihao.cn/tags/pillow/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pillow/\"></head></html>"
  },
  {
    "path": "tags/poj/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"POJ - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"poj-3984-迷宫问题 (bfs 路径）\",\"date_published\":\"2018-07-22T11:50:20&#43;08:00\",\"date_modified\":\"2018-07-22T11:50:20&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3984/\",\"url\":\"https://lruihao.cn/posts/poj-3984/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"迷宫问题\\nTime Limit: 1000MS Memory Limit: 65536K\\nTotal Submissions: 32323 Accepted: 18471\\n13 Description 定义一个二维数组：\\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=3984\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e迷宫问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 65536K\\u003cbr\\u003e\\nTotal Submissions: 32323 Accepted: 18471\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e13 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e定义一个二维数组：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eint maze[5][5] = {\\n  0, 1, 0, 0, 0,\\n  0, 1, 0, 1, 0,\\n  0, 0, 0, 0, 0,\\n  0, 1, 1, 1, 0,\\n  0, 0, 0, 1, 0,\\n};\\n\\u003c/code\\u003e\\u003c/pre\\u003e\\n\\u003cp\\u003e它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/poj/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>POJ - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"POJ\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-06T09:42:11+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/poj/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"POJ\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"POJ\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/poj/ title=\"POJ | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/poj/index.xml title=\"POJ | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/poj/feed.json title=\"POJ | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/poj/feed.json title=\"POJ | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/poj/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>POJ</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>POJ <sup>9</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/poj-3984/ class=archive-item-link>Poj-3984-迷宫问题 (Bfs 路径）</a>\n<span class=archive-item-date title='2018-07-22 11:50:20'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/poj/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/poj/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>POJ - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/poj/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Oct 2024 13:35:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/poj/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>poj-3984-迷宫问题 (bfs 路径）</title><link>https://lruihao.cn/posts/poj-3984/</link><pubDate>Sun, 22 Jul 2018 11:50:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3984/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;迷宫问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;Time Limit: 1000MS Memory Limit: 65536K&lt;br&gt;\nTotal Submissions: 32323 Accepted: 18471&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;19 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;定义一个二维数组：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;int maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n&lt;/code&gt;&lt;/pre&gt;\n&lt;p&gt;它表示一个迷宫，其中的 1 表示墙壁，0 表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短路线。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/poj/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/poj/</title><link rel=canonical href=https://lruihao.cn/tags/poj/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/poj/\"></head></html>"
  },
  {
    "path": "tags/prefers-color-scheme/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"prefers-color-scheme - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"让 Mermaid 图表自动跟随系统深浅色\",\"date_published\":\"2025-08-16T12:37:49&#43;08:00\",\"date_modified\":\"2025-08-16T14:56:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mermaid-theming/\",\"url\":\"https://lruihao.cn/posts/mermaid-theming/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"invert filter\",\"Mermaid\",\"prefers-color-scheme\",\"FixIt\"],\"image\":\"https://lruihao.cn/posts/mermaid-theming/featured-image.webp\",\"summary\":\"Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\n\",\"content_html\":\"\\u003cp\\u003eMermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。\\u003cbr\\u003e\\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/prefers-color-scheme/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>prefers-color-scheme - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"prefers-color-scheme\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-16T12:37:49+08:00\"><meta itemprop=dateModified content=\"2025-08-16T14:56:28+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/prefers-color-scheme/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"prefers-color-scheme\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"prefers-color-scheme\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/prefers-color-scheme/ title=\"prefers-color-scheme | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/prefers-color-scheme/index.xml title=\"prefers-color-scheme | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/prefers-color-scheme/feed.json title=\"prefers-color-scheme | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/prefers-color-scheme/feed.json title=\"prefers-color-scheme | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/prefers-color-scheme/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Prefers-Color-Scheme</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>prefers-color-scheme <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/mermaid-theming/ class=archive-item-link>让 Mermaid 图表自动跟随系统深浅色</a>\n<span class=archive-item-date title='2025-08-16 12:37:49'>08-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/prefers-color-scheme/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/prefers-color-scheme/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>prefers-color-scheme - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/prefers-color-scheme/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 16 Aug 2025 14:56:28 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/prefers-color-scheme/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>让 Mermaid 图表自动跟随系统深浅色</title><link>https://lruihao.cn/posts/mermaid-theming/</link><pubDate>Sat, 16 Aug 2025 12:37:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mermaid-theming/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;Mermaid 是目前最流行的「文本即图表」渲染库，但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及，却始终没有一个简单、稳定、文档化的 API。&lt;br&gt;\n不过社区里已有大量站点（mermaid.live、Obsidian、Notion-like 产品等）实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来，并给出最小可运行示例，方便你按需取用。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/prefers-color-scheme/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/prefers-color-scheme/</title><link rel=canonical href=https://lruihao.cn/tags/prefers-color-scheme/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/prefers-color-scheme/\"></head></html>"
  },
  {
    "path": "tags/proxy/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"proxy - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/proxy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>proxy - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"proxy\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-11T10:05:36+08:00\"><meta itemprop=dateModified content=\"2025-06-11T10:15:18+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/proxy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"proxy\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"proxy\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/proxy/ title=\"proxy | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/proxy/index.xml title=\"proxy | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/proxy/feed.json title=\"proxy | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/proxy/feed.json title=\"proxy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/proxy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Proxy</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>proxy <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/proxy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/proxy/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>proxy - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/proxy/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 11 Jun 2025 10:15:18 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/proxy/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/proxy/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/proxy/</title><link rel=canonical href=https://lruihao.cn/tags/proxy/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/proxy/\"></head></html>"
  },
  {
    "path": "tags/pwa/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pwa - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/pwa/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pwa - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pwa\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pwa/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pwa\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pwa\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pwa/ title=\"pwa | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pwa/index.xml title=\"pwa | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pwa/feed.json title=\"pwa | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pwa/feed.json title=\"pwa | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pwa/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pwa</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pwa <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pwa/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pwa/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pwa - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pwa/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pwa/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pwa/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pwa/</title><link rel=canonical href=https://lruihao.cn/tags/pwa/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pwa/\"></head></html>"
  },
  {
    "path": "tags/pwa-app/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pwa-app - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\",\"date_published\":\"2021-12-16T03:35:27Z\",\"date_modified\":\"2026-05-06T03:08:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"algolia\",\"blog\",\"giscus\",\"hugo\",\"hugo-blog\",\"hugo-blog-theme\",\"hugo-fixit\",\"hugo-theme\",\"pwa\",\"pwa-app\"],\"summary\":\" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\\n如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！ English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题，KeepIt 主题和 LeaveIt 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\\\"Hugo Theme FixIt\\\" height=\\\"1158\\\" width=\\\"2007\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e\\n    FixIt 是一个简洁、优雅且高效的 \\u003ca href=\\\"https://gohugo.io/\\\"\\u003eHugo\\u003c/a\\u003e 博客主题。\\u003cbr\\u003e\\n    \\u003cem\\u003e\\u003csub\\u003e如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！\\u003c/sub\\u003e\\u003c/em\\u003e\\n  \\u003c/p\\u003e\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003cp\\u003e\\u003ca title=\\\"FixIt 官网\\\" href=\\\"https://fixit.lruihao.cn/zh-cn/\\\"\\u003e\\u003cimg align=\\\"right\\\" alt=\\\"FixIt logo\\\" width=\\\"70\\\" height=\\\"70\\\" src=\\\"https://avatars.githubusercontent.com/u/110414864?s=200\\u0026v=4\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e它的原型基于 \\u003ca href=\\\"https://github.com/dillonzq/LoveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLoveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题，\\u003ca href=\\\"https://github.com/Fastbyte01/KeepIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eKeepIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题和 \\u003ca href=\\\"https://github.com/liuzc/LeaveIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeaveIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 主题。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/pwa-app/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pwa-app - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pwa-app\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-12-16T03:35:27+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:08:15+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pwa-app/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pwa-app\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pwa-app\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pwa-app/ title=\"pwa-app | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pwa-app/index.xml title=\"pwa-app | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pwa-app/feed.json title=\"pwa-app | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pwa-app/feed.json title=\"pwa-app | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pwa-app/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pwa-App</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pwa-app <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2026-05-06 03:08:15'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit/ class=archive-item-link>hugo-fixit/FixIt</a>\n<span class=archive-item-date title='2021-12-16 03:35:27'>12-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pwa-app/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pwa-app/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pwa-app - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pwa-app/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:08:15 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pwa-app/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题</title><link>https://lruihao.cn/projects/hugo-fixit/fixit/</link><pubDate>Thu, 16 Dec 2021 03:35:27 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;\n FixIt 是一个简洁、优雅且高效的 &lt;a href=\"https://gohugo.io/\"&gt;Hugo&lt;/a&gt; 博客主题。&lt;br&gt;\n &lt;em&gt;&lt;sub&gt;如果你喜欢这个主题，别忘了留下一颗 ⭐️ 哦，谢谢！&lt;/sub&gt;&lt;/em&gt;\n &lt;/p&gt;\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"&gt;English&lt;/a&gt; |\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;p&gt;&lt;a title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"&gt;&lt;img align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200&amp;v=4\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"fixit\" data-decreased&gt;&lt;span&gt;FixIt&lt;/span&gt;\n &lt;a href=\"#fixit\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;它的原型基于 &lt;a href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LoveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题，&lt;a href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;KeepIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题和 &lt;a href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;LeaveIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 主题。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pwa-app/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pwa-app/</title><link rel=canonical href=https://lruihao.cn/tags/pwa-app/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pwa-app/\"></head></html>"
  },
  {
    "path": "tags/pyecharts/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pyecharts - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/pyecharts/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pyecharts - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pyecharts\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=dateModified content=\"2019-04-20T15:44:57+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pyecharts/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pyecharts\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pyecharts\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pyecharts/ title=\"pyecharts | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pyecharts/index.xml title=\"pyecharts | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pyecharts/feed.json title=\"pyecharts | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pyecharts/feed.json title=\"pyecharts | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pyecharts/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pyecharts</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pyecharts <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pyecharts/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pyecharts/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pyecharts - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pyecharts/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 20 Apr 2019 15:44:57 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pyecharts/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pyecharts/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pyecharts/</title><link rel=canonical href=https://lruihao.cn/tags/pyecharts/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pyecharts/\"></head></html>"
  },
  {
    "path": "tags/pyinstaller/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"pyinstaller - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"date_published\":\"2019-05-09T19:05:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pyinstallererror/\",\"url\":\"https://lruihao.cn/posts/pyinstallererror/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"pyinstaller\"],\"image\":\"/posts/pyinstallererror/images/1.png\",\"summary\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用过命令\\u003ccode\\u003epip install pyinstaller\\u003c/code\\u003e安装失败，此包依赖于 pywin32，安装前需要先\\u003ccode\\u003epip install pywin32\\u003c/code\\u003e, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\\n这里通过手动下载安装解决的，记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/pyinstaller/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>pyinstaller - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"pyinstaller\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-11T17:02:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/pyinstaller/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"pyinstaller\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"pyinstaller\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/pyinstaller/ title=\"pyinstaller | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/pyinstaller/index.xml title=\"pyinstaller | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/pyinstaller/feed.json title=\"pyinstaller | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/pyinstaller/feed.json title=\"pyinstaller | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/pyinstaller/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Pyinstaller</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>pyinstaller <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/pyinstallererror/ class=archive-item-link>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a>\n<span class=archive-item-date title='2019-05-09 19:05:01'>05-09</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/pyinstaller/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/pyinstaller/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>pyinstaller - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/pyinstaller/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/pyinstaller/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>安装 pyinstaller 出错的解决办法及 csdn 工具实例打包</title><link>https://lruihao.cn/posts/pyinstallererror/</link><pubDate>Thu, 09 May 2019 19:05:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pyinstallererror/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用过命令&lt;code&gt;pip install pyinstaller&lt;/code&gt;安装失败，此包依赖于 pywin32，安装前需要先&lt;code&gt;pip install pywin32&lt;/code&gt;, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/pyinstaller/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/pyinstaller/</title><link rel=canonical href=https://lruihao.cn/tags/pyinstaller/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/pyinstaller/\"></head></html>"
  },
  {
    "path": "tags/python/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Python - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"使用 Python 刷 csdn 访问量\",\"date_published\":\"2020-03-26T11:08:38&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/csdnvisiter/\",\"url\":\"https://lruihao.cn/posts/csdnvisiter/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"新冠疫情未返校未返工第 N 天之“自动打卡”\",\"date_published\":\"2020-03-25T08:22:42&#43;08:00\",\"date_modified\":\"2020-03-25T08:22:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/daka/\",\"url\":\"https://lruihao.cn/posts/daka/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"image\":\"https://lruihao.cn/posts/daka/images/result.png\",\"summary\":\" 信息 这件事还得从一只蝙蝠说起 \\u0026hellip;\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\n我和潇 X 巴哥确定思路后兵分两路：\\n他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库； 我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）； \",\"content_html\":\"\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e这件事还得从一只蝙蝠说起 \\u0026hellip;\\u003cbr\\u003e\\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \\u0026hellip;\\u003cbr\\u003e\\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 \\u0026hellip;\\u003cbr\\u003e\\n我和潇 X 巴哥确定思路后兵分两路：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；\\u003c/li\\u003e\\n\\u003cli\\u003e我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"python 实训总结Ⅱ\",\"date_published\":\"2019-06-21T18:46:41&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx2/\",\"url\":\"https://lruihao.cn/posts/pysx2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 后面几天讲的有点杂，简单记录一下知识点。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e后面几天讲的有点杂，简单记录一下知识点。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实训总结Ⅰ\",\"date_published\":\"2019-06-18T18:41:00&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx1/\",\"url\":\"https://lruihao.cn/posts/pysx1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"turtle\"],\"summary\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\\n这次正好又课程安排了为期两周的综合实训，主要是“\\u003cstrong\\u003e用 python 做量化交易\\u003c/strong\\u003e”\\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 设置程序每天 8 点定时执行任务\",\"date_published\":\"2019-05-09T23:26:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysettime/\",\"url\":\"https://lruihao.cn/posts/pysettime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"Cron\"],\"summary\":\" 第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\n（该程序需要一直挂着，保持网络不断）\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。\\u003cbr\\u003e\\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。\\u003cbr\\u003e\\n（该程序需要一直挂着，保持网络不断）\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\",\"date_published\":\"2019-05-09T19:05:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pyinstallererror/\",\"url\":\"https://lruihao.cn/posts/pyinstallererror/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"pyinstaller\"],\"image\":\"/posts/pyinstallererror/images/1.png\",\"summary\":\" 用过命令pip install pyinstaller安装失败，此包依赖于 pywin32，安装前需要先pip install pywin32, 我安装了还是出错，稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的，记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用过命令\\u003ccode\\u003epip install pyinstaller\\u003c/code\\u003e安装失败，此包依赖于 pywin32，安装前需要先\\u003ccode\\u003epip install pywin32\\u003c/code\\u003e, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\\n这里通过手动下载安装解决的，记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 发送 post 请求进行简单的接口测试\",\"date_published\":\"2019-05-07T18:17:05&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/posttest/\",\"url\":\"https://lruihao.cn/posts/posttest/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"HTTP\"],\"summary\":\" 通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\nrequests.get() requests.post()\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003erequests.get()\\u003c/li\\u003e\\n\\u003cli\\u003erequests.post()\\u003cbr\\u003e\\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\"},{\"title\":\"用 MyQR 制作专属动态二维码 (py 和 exe 版本）\",\"date_published\":\"2019-04-27T14:16:54&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/qrcode/\",\"url\":\"https://lruihao.cn/posts/qrcode/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"pillow\",\"numpy\",\"imageio\",\"Python\"],\"summary\":\" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 sylnsfar/qrcode，本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载，公众号文章后台回复关键词“qrcode”获取链接。\\n可生成_普通二维码_、带图片的艺术二维码（黑白与彩色）、动态二维码（黑白与彩色）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003ePython 二维码生成器\\u003c/strong\\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esylnsfar/qrcode\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，本文主要介绍记录一下 python 版本使用。exe 可以去 \\u003ca href=\\\"https://github.com/sylnsfar/qrcode_win\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e项目开源地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 下载，公众号文章后台回复关键词“qrcode”获取链接。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e可生成_普通二维码_、\\u003cem\\u003e带图片的艺术二维码（黑白与彩色）\\u003c/em\\u003e、\\u003cem\\u003e动态二维码（黑白与彩色）\\u003c/em\\u003e。\\u003c/p\\u003e\"},{\"title\":\"python 爬取网站图片（图片链接相似）\",\"date_published\":\"2019-04-22T12:46:34&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mmtimgpy/\",\"url\":\"https://lruihao.cn/posts/mmtimgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\"],\"summary\":\" 以下程序对 该网址 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。字体效果查看\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下程序对 \\u003ca href=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026amp;a=fontshowPics\\u0026amp;u=qbfRl8gPF2s-\\u0026amp;z=Kqz%2FRroVGYc-\\u0026amp;share=1\\u0026amp;from=singlemessage\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e该网址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。\\u003ca href=\\\"/projects/font-mmt/\\\"\\u003e字体效果查看\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/python/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Python - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Python\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-12-22T19:58:47+08:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/python/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Python\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Python\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/python/ title=\"Python | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/python/index.xml title=\"Python | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/python/feed.json title=\"Python | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/python/feed.json title=\"Python | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/python/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Python</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Python <sup>16</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/d8ae205/ class=archive-item-link>Amazon Titan 文本模型</a>\n<span class=archive-item-date title='2023-12-22 19:58:47'>12-22</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/csdnvisiter/ class=archive-item-link>使用 Python 刷 Csdn 访问量</a>\n<span class=archive-item-date title='2020-03-26 11:08:38'>03-26</span></article><article class=archive-item><a href=/posts/daka/ class=archive-item-link>新冠疫情未返校未返工第 N 天之“自动打卡”</a>\n<span class=archive-item-date title='2020-03-25 08:22:42'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article><article class=archive-item><a href=/posts/pysx2/ class=archive-item-link>Python 实训总结Ⅱ</a>\n<span class=archive-item-date title='2019-06-21 18:46:41'>06-21</span></article><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a>\n<span class=archive-item-date title='2019-06-18 18:41:00'>06-18</span></article><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/pysettime/ class=archive-item-link>Python 设置程序每天 8 点定时执行任务</a>\n<span class=archive-item-date title='2019-05-09 23:26:54'>05-09</span></article><article class=archive-item><a href=/posts/pyinstallererror/ class=archive-item-link>安装 Pyinstaller 出错的解决办法及 Csdn 工具实例打包</a>\n<span class=archive-item-date title='2019-05-09 19:05:01'>05-09</span></article><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article><article class=archive-item><a href=/posts/posttest/ class=archive-item-link>Python 发送 Post 请求进行简单的接口测试</a>\n<span class=archive-item-date title='2019-05-07 18:17:05'>05-07</span></article><article class=archive-item><a href=/posts/qrcode/ class=archive-item-link>用 MyQR 制作专属动态二维码 (Py 和 Exe 版本）</a>\n<span class=archive-item-date title='2019-04-27 14:16:54'>04-27</span></article><article class=archive-item><a href=/posts/mmtimgpy/ class=archive-item-link>Python 爬取网站图片（图片链接相似）</a>\n<span class=archive-item-date title='2019-04-22 12:46:34'>04-22</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/python/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/python/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Python - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/python/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/python/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>使用 Python 刷 csdn 访问量</title><link>https://lruihao.cn/posts/csdnvisiter/</link><pubDate>Thu, 26 Mar 2020 11:08:38 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/csdnvisiter/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 python 模拟浏览器行为刷 csdn 访问量，脚本仅做学习，请勿滥用~&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>新冠疫情未返校未返工第 N 天之“自动打卡”</title><link>https://lruihao.cn/posts/daka/</link><pubDate>Wed, 25 Mar 2020 08:22:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/daka/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;这件事还得从一只蝙蝠说起 &amp;hellip;&lt;br&gt;\n算了，昨天下午 3 点半，我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &amp;hellip;&lt;br&gt;\n哎，反正就是由于疫情需要每天健康打卡汇报给学校，然后每天提交一样的太麻烦了，就想写个程序自动打卡 &amp;hellip;&lt;br&gt;\n我和潇 X 巴哥确定思路后兵分两路：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;他用 java 写个后台自动刷多人的，再弄个网页给用户填写账号密码保存在数据库；&lt;/li&gt;\n&lt;li&gt;我想的就很直接，只刷一个人的，python 模拟浏览器登录后打卡，再设置定时任务（多人则设定多个）；&lt;/li&gt;\n&lt;/ol&gt;&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item><item><title>python 实训总结Ⅱ</title><link>https://lruihao.cn/posts/pysx2/</link><pubDate>Fri, 21 Jun 2019 18:46:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx2/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;后面几天讲的有点杂，简单记录一下知识点。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实训总结Ⅰ</title><link>https://lruihao.cn/posts/pysx1/</link><pubDate>Tue, 18 Jun 2019 18:41:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx1/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“&lt;strong&gt;用 python 做量化交易&lt;/strong&gt;”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 设置程序每天 8 点定时执行任务</title><link>https://lruihao.cn/posts/pysettime/</link><pubDate>Thu, 09 May 2019 23:26:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysettime/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;第一次运行根据程序执行时间，判断程序休眠的时间，尽最大可能休眠，节省系统资源。&lt;br&gt;\n第二次运行后直接休眠一天，到每天早上 8 点执行任务。&lt;br&gt;\n（该程序需要一直挂着，保持网络不断）&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>安装 pyinstaller 出错的解决办法及 csdn 工具实例打包</title><link>https://lruihao.cn/posts/pyinstallererror/</link><pubDate>Thu, 09 May 2019 19:05:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pyinstallererror/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用过命令&lt;code&gt;pip install pyinstaller&lt;/code&gt;安装失败，此包依赖于 pywin32，安装前需要先&lt;code&gt;pip install pywin32&lt;/code&gt;, 我安装了还是出错，稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的，记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Python 如何操作 Json？</title><link>https://lruihao.cn/posts/jsoninfo/</link><pubDate>Tue, 07 May 2019 18:42:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jsoninfo/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 发送 post 请求进行简单的接口测试</title><link>https://lruihao.cn/posts/posttest/</link><pubDate>Tue, 07 May 2019 18:17:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/posttest/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;通过 requests 可以向某个地址发送请求，可以用来做一些接口的测试；主要有两个方法：&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;requests.get()&lt;/li&gt;\n&lt;li&gt;requests.post()&lt;br&gt;\n最近帮朋友的项目做一个小需求，需要把后台数据定期打包发送到微信群，麻小科技涛哥给了我一个接口，post 访问。&lt;/li&gt;\n&lt;/ul&gt;</description></item><item><title>用 MyQR 制作专属动态二维码 (py 和 exe 版本）</title><link>https://lruihao.cn/posts/qrcode/</link><pubDate>Sat, 27 Apr 2019 14:16:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/qrcode/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;Python 二维码生成器&lt;/strong&gt;是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本，详见 &lt;a href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sylnsfar/qrcode&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，本文主要介绍记录一下 python 版本使用。exe 可以去 &lt;a href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;项目开源地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 下载，公众号文章后台回复关键词“qrcode”获取链接。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;可生成_普通二维码_、&lt;em&gt;带图片的艺术二维码（黑白与彩色）&lt;/em&gt;、&lt;em&gt;动态二维码（黑白与彩色）&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>python 爬取网站图片（图片链接相似）</title><link>https://lruihao.cn/posts/mmtimgpy/</link><pubDate>Mon, 22 Apr 2019 12:46:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mmtimgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下程序对 &lt;a href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;amp;a=fontshowPics&amp;amp;u=qbfRl8gPF2s-&amp;amp;z=Kqz%2FRroVGYc-&amp;amp;share=1&amp;amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;该网址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 内的手写体图片进行爬取！这个手写体是我在手机上通过《手迹造字》app 书写的，大概 6886 个字符，历时两年多，目前仍在修改中。&lt;a href=\"https://lruihao.cn/projects/font-mmt/\"&gt;字体效果查看&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/python/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/python/</title><link rel=canonical href=https://lruihao.cn/tags/python/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/python/\"></head></html>"
  },
  {
    "path": "tags/react/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"React - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用五天时间给自己制作一个封面图生成工具\",\"date_published\":\"2024-04-02T18:05:34&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/coverview/\",\"url\":\"https://lruihao.cn/projects/coverview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CoverView\",\"React\"],\"image\":\"https://lruihao.cn/projects/coverview/images/cover.webp\",\"summary\":\" Cool! 苦封面图久矣，今日终有所成。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003eCool!\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e苦封面图久矣，今日终有所成。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/react/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>React - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"React\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-04-02T18:05:34+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/react/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"React\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"React\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/react/ title=\"React | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/react/index.xml title=\"React | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/react/feed.json title=\"React | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/react/feed.json title=\"React | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/react/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>React</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>React <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/coverview/ class=archive-item-link>用五天时间给自己制作一个封面图生成工具</a>\n<span class=archive-item-date title='2024-04-02 18:05:34'>04-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/react/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/react/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>React - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/react/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/react/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用五天时间给自己制作一个封面图生成工具</title><link>https://lruihao.cn/projects/coverview/</link><pubDate>Tue, 02 Apr 2024 18:05:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/coverview/</guid><category domain=\"https://lruihao.cn/categories/react/\">React</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;Cool!&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;苦封面图久矣，今日终有所成。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/react/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/react/</title><link rel=canonical href=https://lruihao.cn/tags/react/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/react/\"></head></html>"
  },
  {
    "path": "tags/redirect/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"redirect - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/redirect/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>redirect - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"redirect\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-28T19:40:54+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/redirect/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"redirect\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"redirect\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/redirect/ title=\"redirect | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/redirect/index.xml title=\"redirect | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/redirect/feed.json title=\"redirect | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/redirect/feed.json title=\"redirect | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/redirect/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Redirect</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>redirect <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/redirect/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/redirect/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>redirect - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/redirect/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/redirect/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战</title><link>https://lruihao.cn/posts/href-301/</link><pubDate>Sun, 28 Oct 2018 14:22:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/href-301/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h3 class=\"heading-element\" id=\"获取链接转\"&gt;&lt;span&gt;0.7 获取链接（转）&lt;/span&gt;\n &lt;a href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;a href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/redirect/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/redirect/</title><link rel=canonical href=https://lruihao.cn/tags/redirect/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/redirect/\"></head></html>"
  },
  {
    "path": "tags/regex/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"regex - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 正则表达式练习\",\"date_published\":\"2019-04-18T22:04:21&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-regex/\",\"url\":\"https://lruihao.cn/posts/java-regex/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"regex\",\"Java\"],\"summary\":\"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\"); String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \\\"匹配结果：\\\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果：true lruihao.cn 匹配结果：false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的 p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\"); // 验证没有区号的 if (str.length() \\u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" + \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" + \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"邮箱\\\"\\u003e\\u003cspan\\u003e7 邮箱\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%82%ae%e7%ae%b1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexDemo {\\n    public static void main(String[] args) {\\n//       Pattern 类 正则表达式的编译表示。\\n        Pattern pattern = Pattern.compile(\\\"^[a-zA-Z0-9_!#$%\\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\\\");\\n        String[] emails = {\\\"admin@lruihao.cn\\\", \\\"lruihao.cn\\\"};\\n        for (String email :\\n                emails) {\\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\\n            Matcher matcher = pattern.matcher(email);\\n            System.out.println(email + \\\"匹配结果：\\\" + matcher.matches());\\n        }\\n    }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003eadmin@lruihao.cn 匹配结果：true\\nlruihao.cn 匹配结果：false\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"电话\\\"\\u003e\\u003cspan\\u003e8 电话\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%94%b5%e8%af%9d\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epackage base;\\n\\nimport java.util.Scanner;\\nimport java.util.regex.Matcher;\\nimport java.util.regex.Pattern;\\n\\npublic class RegexTest {\\n  public static void main(String[] args) {\\n    Pattern patter=Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\");\\n    Scanner sc=new Scanner(System.in);\\n    String telnum=sc.nextLine();\\n    sc.close();\\n    Matcher matcher=patter.matcher(telnum);\\n    System.out.println(telnum+\\\"匹配结果： \\\"+matcher.matches());\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 获取当前的 httpSession\\n * @return\\n */\\npublic static HttpSession getSession() {\\n return getRequest().getSession();\\n}\\n/**\\n * 手机号验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isMobile(final String str) {\\n  Pattern p = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p = Pattern.compile(\\\"^[1][3,4,5,7,8][0-9]{9}$\\\"); // 验证手机号\\n  m = p.matcher(str);\\n  b = m.matches();\\n  return b;\\n}\\n/**\\n * 电话号码验证\\n * @param str\\n * @return 验证通过返回 true\\n */\\npublic static boolean isPhone(final String str) {\\n  Pattern p1 = null, p2 = null;\\n  Matcher m = null;\\n  boolean b = false;\\n  p1 = Pattern.compile(\\\"^[0][1-9]{2,3}-[0-9]{5,10}$\\\"); // 验证带区号的\\n  p2 = Pattern.compile(\\\"^[1-9]{1}[0-9]{5,8}$\\\");     // 验证没有区号的\\n  if (str.length() \\u003e 9) {\\n    m = p1.matcher(str);\\n    b = m.matches();\\n  } else {\\n    m = p2.matcher(str);\\n    b = m.matches();\\n  }\\n  return b;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"身份证\\\"\\u003e\\u003cspan\\u003e9 身份证\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%ba%ab%e4%bb%bd%e8%af%81\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/* 身份证正则表达式 16 或 18 */\\n   public static final String IDCARD=\\\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\\\" +\\n           \\\"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\\\" +\\n           \\\"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\\\";\\u003c/code\\u003e\\u003c/pre\\u003e\"}]}"
  },
  {
    "path": "tags/regex/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>regex - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"regex\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-18T22:04:21+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/regex/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"regex\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"regex\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/regex/ title=\"regex | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/regex/index.xml title=\"regex | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/regex/feed.json title=\"regex | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/regex/feed.json title=\"regex | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/regex/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Regex</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>regex <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/java-regex/ class=archive-item-link>Java 正则表达式练习</a>\n<span class=archive-item-date title='2019-04-18 22:04:21'>04-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/regex/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/regex/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>regex - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/regex/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/regex/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 正则表达式练习</title><link>https://lruihao.cn/posts/java-regex/</link><pubDate>Thu, 18 Apr 2019 22:04:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-regex/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"邮箱\"&gt;&lt;span&gt;10 邮箱&lt;/span&gt;\n &lt;a href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;import java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(&amp;#34;^[a-zA-Z0-9_!#$%&amp;amp;&amp;#39;*&amp;#43;/=?`{|}~^.-]&amp;#43;@[a-zA-Z0-9.-]&amp;#43;$&amp;#34;);\n String[] emails = {&amp;#34;admin@lruihao.cn&amp;#34;, &amp;#34;lruihao.cn&amp;#34;};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email &amp;#43; &amp;#34;匹配结果：&amp;#34; &amp;#43; matcher.matches());\n }\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;admin@lruihao.cn 匹配结果：true\nlruihao.cn 匹配结果：false&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"电话\"&gt;&lt;span&gt;11 电话&lt;/span&gt;\n &lt;a href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;package base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;);\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum&amp;#43;&amp;#34;匹配结果： &amp;#34;&amp;#43;matcher.matches());\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(&amp;#34;^[1][3,4,5,7,8][0-9]{9}$&amp;#34;); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(&amp;#34;^[0][1-9]{2,3}-[0-9]{5,10}$&amp;#34;); // 验证带区号的\n p2 = Pattern.compile(&amp;#34;^[1-9]{1}[0-9]{5,8}$&amp;#34;); // 验证没有区号的\n if (str.length() &amp;gt; 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"身份证\"&gt;&lt;span&gt;12 身份证&lt;/span&gt;\n &lt;a href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=&amp;#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&amp;#34; &amp;#43;\n &amp;#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&amp;#34; &amp;#43;\n &amp;#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&amp;#34;;&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/regex/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/regex/</title><link rel=canonical href=https://lruihao.cn/tags/regex/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/regex/\"></head></html>"
  },
  {
    "path": "tags/rest/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"REST - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"RESTful\",\"date_published\":\"2019-11-14T19:06:05&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/restful/\",\"url\":\"https://lruihao.cn/posts/restful/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"REST\",\"HTTP\"],\"summary\":\" RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 RFC5789\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 \\u003ca href=\\\"https://www.rfc-editor.org/rfc/rfc5789\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRFC5789\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/rest/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>REST - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"REST\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-11-14T19:06:05+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/rest/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"REST\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"REST\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/rest/ title=\"REST | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/rest/index.xml title=\"REST | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/rest/feed.json title=\"REST | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/rest/feed.json title=\"REST | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/rest/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>REST</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>REST <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/restful/ class=archive-item-link>RESTful</a>\n<span class=archive-item-date title='2019-11-14 19:06:05'>11-14</span></article><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/rest/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/rest/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>REST - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/rest/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/rest/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>RESTful</title><link>https://lruihao.cn/posts/restful/</link><pubDate>Thu, 14 Nov 2019 19:06:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/restful/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/\">计算机网络</category><description>&lt;blockquote&gt;\n&lt;p&gt;RESTful 是一种系统开发设计风格、原则。可视情况调整，以下参考来源 &lt;a href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RFC5789&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/rest/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/rest/</title><link rel=canonical href=https://lruihao.cn/tags/rest/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/rest/\"></head></html>"
  },
  {
    "path": "tags/reward-log/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"reward-log - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/reward-log/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>reward-log - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"reward-log\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-21T14:02:29+00:00\"><meta itemprop=dateModified content=\"2025-11-08T18:49:59+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/reward-log/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"reward-log\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"reward-log\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/reward-log/ title=\"reward-log | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/reward-log/index.xml title=\"reward-log | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/reward-log/feed.json title=\"reward-log | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/reward-log/feed.json title=\"reward-log | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/reward-log/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Reward-Log</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>reward-log <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/reward-log/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/reward-log/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>reward-log - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/reward-log/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sat, 08 Nov 2025 18:49:59 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/reward-log/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/reward-log/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/reward-log/</title><link rel=canonical href=https://lruihao.cn/tags/reward-log/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/reward-log/\"></head></html>"
  },
  {
    "path": "tags/rolldown/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"rolldown - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/rolldown/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>rolldown - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"rolldown\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-09-04T18:10:59+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/rolldown/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"rolldown\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"rolldown\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/rolldown/ title=\"rolldown | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/rolldown/index.xml title=\"rolldown | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/rolldown/feed.json title=\"rolldown | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/rolldown/feed.json title=\"rolldown | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/rolldown/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Rolldown</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>rolldown <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/rolldown/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/rolldown/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>rolldown - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/rolldown/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/rolldown/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/rolldown/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/rolldown/</title><link rel=canonical href=https://lruihao.cn/tags/rolldown/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/rolldown/\"></head></html>"
  },
  {
    "path": "tags/round/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"round - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"现代 CSS 解决方案：CSS 四舍五入数值单位\",\"date_published\":\"2024-07-29T20:32:39&#43;08:00\",\"date_modified\":\"2024-10-13T12:28:31&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-round/\",\"url\":\"https://lruihao.cn/posts/css-round/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"round\"],\"summary\":\"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \\u003ccode\\u003eround()\\u003c/code\\u003e 及其实际应用场景。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/round/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>round - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"round\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-29T20:32:39+08:00\"><meta itemprop=dateModified content=\"2024-10-13T12:28:31+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/round/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"round\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"round\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/round/ title=\"round | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/round/index.xml title=\"round | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/round/feed.json title=\"round | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/round/feed.json title=\"round | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/round/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Round</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>round <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/css-round/ class=archive-item-link>CSS 四舍五入数值单位</a>\n<span class=archive-item-date title='2024-07-29 20:32:39'>07-29</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/round/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/round/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>round - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/round/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 13 Oct 2024 12:28:31 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/round/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>现代 CSS 解决方案：CSS 四舍五入数值单位</title><link>https://lruihao.cn/posts/css-round/</link><pubDate>Mon, 29 Jul 2024 20:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-round/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将介绍另外一个非常实用的 CSS 数学函数 - &lt;code&gt;round()&lt;/code&gt; 及其实际应用场景。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/round/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/round/</title><link rel=canonical href=https://lruihao.cn/tags/round/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/round/\"></head></html>"
  },
  {
    "path": "tags/sass/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Sass - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/sass/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Sass - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Sass\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-06-22T16:39:47+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/sass/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Sass\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Sass\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/sass/ title=\"Sass | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/sass/index.xml title=\"Sass | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/sass/feed.json title=\"Sass | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/sass/feed.json title=\"Sass | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/sass/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sass</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Sass <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/sass/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/sass/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Sass - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/sass/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/sass/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>less&amp;sass&amp;scss</title><link>https://lruihao.cn/posts/less-sass-scss/</link><pubDate>Tue, 22 Jun 2021 16:39:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/less-sass-scss/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;blockquote&gt;\n&lt;p&gt;Sass 和 Less 都屬於 &lt;strong&gt;CSS 前置處理器&lt;/strong&gt;，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。&lt;br&gt;\n轉化成通俗易懂的話來說就是 &lt;strong&gt;“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/sass/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/sass/</title><link rel=canonical href=https://lruihao.cn/tags/sass/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/sass/\"></head></html>"
  },
  {
    "path": "tags/scaffolding-tool/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"scaffolding-tool - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🛠️ A node-based tooling for FixIt site initialization.\",\"date_published\":\"2023-11-20T06:40:09Z\",\"date_modified\":\"2026-05-06T03:02:22Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-cli\",\"hugo\",\"hugo-fixit\",\"nodejs\",\"scaffolding-tool\"],\"summary\":\"FixIt CLI 👉 中文 | English\\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\\n系统依赖 Node.js (\\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题，你还需要安装 Go。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-cli\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt CLI\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-cli\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e👉 中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e🛠️ 一个基于 Node.js 开发的用于 \\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 站点初始化的脚手架工具。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://asciinema.org/a/697494\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\\\"asciicast\\\" height=\\\"646\\\" width=\\\"940\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"系统依赖\\\"\\u003e\\u003cspan\\u003e系统依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://nodejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e (\\u0026gt;= 18)\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://git-scm.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://gohugo.io/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 扩展版\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e如果你使用 \\u003ca href=\\\"https://gohugo.io/hugo-modules/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 功能加载主题，你还需要安装 \\u003ca href=\\\"https://go.dev/dl/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/scaffolding-tool/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>scaffolding-tool - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"scaffolding-tool\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-11-20T06:40:09+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:22+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/scaffolding-tool/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"scaffolding-tool\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"scaffolding-tool\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/scaffolding-tool/ title=\"scaffolding-tool | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/scaffolding-tool/index.xml title=\"scaffolding-tool | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/scaffolding-tool/feed.json title=\"scaffolding-tool | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/scaffolding-tool/feed.json title=\"scaffolding-tool | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/scaffolding-tool/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Scaffolding-Tool</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>scaffolding-tool <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2026-05-06 03:02:22'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-cli/ class=archive-item-link>hugo-fixit/fixit-cli</a>\n<span class=archive-item-date title='2023-11-20 06:40:09'>11-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/scaffolding-tool/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/scaffolding-tool/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>scaffolding-tool - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/scaffolding-tool/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:22 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/scaffolding-tool/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🛠️ A node-based tooling for FixIt site initialization.</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</link><pubDate>Mon, 20 Nov 2023 06:40:09 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-cli\" data-decreased&gt;&lt;span&gt;FixIt CLI&lt;/span&gt;\n &lt;a href=\"#fixit-cli\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;👉 中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;🛠️ 一个基于 Node.js 开发的用于 &lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 站点初始化的脚手架工具。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"系统依赖\"&gt;&lt;span&gt;系统依赖&lt;/span&gt;\n &lt;a href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; (&amp;gt;= 18)&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 扩展版&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;如果你使用 &lt;a href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 功能加载主题，你还需要安装 &lt;a href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Go&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/scaffolding-tool/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/scaffolding-tool/</title><link rel=canonical href=https://lruihao.cn/tags/scaffolding-tool/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/scaffolding-tool/\"></head></html>"
  },
  {
    "path": "tags/scrollbar-styling/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"scrollbar-styling - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"标准滚动条控制规范\",\"date_published\":\"2024-06-28T22:29:03&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"url\":\"https://lruihao.cn/posts/scrollbar-styling/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"scrollbar-styling\"],\"summary\":\"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\\n\",\"content_html\":\"\\u003cp\\u003e使用 \\u003ccode\\u003escrollbar-width\\u003c/code\\u003e 和 \\u003ccode\\u003escrollbar-color\\u003c/code\\u003e 属性设置滚动条的样式。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/scrollbar-styling/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>scrollbar-styling - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"scrollbar-styling\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-28T22:29:03+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/scrollbar-styling/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"scrollbar-styling\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"scrollbar-styling\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/scrollbar-styling/ title=\"scrollbar-styling | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/scrollbar-styling/index.xml title=\"scrollbar-styling | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/scrollbar-styling/feed.json title=\"scrollbar-styling | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/scrollbar-styling/feed.json title=\"scrollbar-styling | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/scrollbar-styling/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Scrollbar-Styling</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>scrollbar-styling <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/scrollbar-styling/ class=archive-item-link>标准滚动条控制规范</a>\n<span class=archive-item-date title='2024-06-28 22:29:03'>06-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/scrollbar-styling/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/scrollbar-styling/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>scrollbar-styling - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/scrollbar-styling/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 17:12:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/scrollbar-styling/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>标准滚动条控制规范</title><link>https://lruihao.cn/posts/scrollbar-styling/</link><pubDate>Fri, 28 Jun 2024 22:29:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/scrollbar-styling/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;使用 &lt;code&gt;scrollbar-width&lt;/code&gt; 和 &lt;code&gt;scrollbar-color&lt;/code&gt; 属性设置滚动条的样式。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/scrollbar-styling/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/scrollbar-styling/</title><link rel=canonical href=https://lruihao.cn/tags/scrollbar-styling/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/scrollbar-styling/\"></head></html>"
  },
  {
    "path": "tags/scss/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Scss - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"CSS 实现时间轴、背景图 loading 和渐变边框\",\"date_published\":\"2024-07-14T13:03:31&#43;08:00\",\"date_modified\":\"2024-07-28T17:12:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"url\":\"https://lruihao.cn/posts/fixit-docs-bookmark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"image\":\"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp\",\"summary\":\"本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\\u003c/p\\u003e\"},{\"title\":\"关于 CSS 和 Scss 变量运算那些事\",\"date_published\":\"2022-04-30T22:04:29&#43;08:00\",\"date_modified\":\"2024-07-14T17:09:39&#43;08:00\",\"id\":\"https://lruihao.cn/posts/css-scss-var/\",\"url\":\"https://lruihao.cn/posts/css-scss-var/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Scss\"],\"summary\":\"7 问题分析 昨天在开发 FixIt 的时候，在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了，但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\\n造成这一问题的原因是，在 Scss 中，也实现了 max 和 min 函数，但是在 Scss 中，不同单位的变量是不能进行运算的，所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\n知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题分析\\\"\\u003e\\u003cspan\\u003e7 问题分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e昨天在开发 FixIt 的时候，在 Scss 中写 \\u003ccode\\u003emax(foo, bar)\\u003c/code\\u003e 函数比较不同的单位变量时报错了，但是在 CSS 中使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数函数比较不同的单位变量是没有问题的。\\u003c/p\\u003e\\n\\u003cp\\u003e造成这一问题的原因是，在 Scss 中，也实现了 \\u003ccode\\u003emax\\u003c/code\\u003e 和 \\u003ccode\\u003emin\\u003c/code\\u003e 函数，但是在 Scss 中，\\u003cstrong\\u003e不同单位的变量是不能进行运算的\\u003c/strong\\u003e，所以使得在 Scss 中直接使用 \\u003ccode\\u003emax\\u003c/code\\u003e 或者 \\u003ccode\\u003emin\\u003c/code\\u003e 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）\\u003c/p\\u003e\\n\\u003cp\\u003e知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。\\u003c/p\\u003e\"},{\"title\":\"less\\u0026sass\\u0026scss\",\"date_published\":\"2021-06-22T16:39:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/less-sass-scss/\",\"url\":\"https://lruihao.cn/posts/less-sass-scss/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Less\",\"Sass\",\"Scss\"],\"summary\":\" Sass 和 Less 都屬於 CSS 前置處理器，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eSass 和 Less 都屬於 \\u003cstrong\\u003eCSS 前置處理器\\u003c/strong\\u003e，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。\\u003cbr\\u003e\\n轉化成通俗易懂的話來說就是 \\u003cstrong\\u003e“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Web 开发规则，代码规范\",\"date_published\":\"2019-08-15T18:30:31&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dev-rules/\",\"url\":\"https://lruihao.cn/posts/dev-rules/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"Git\",\"HTML\",\"Java\",\"JavaScript\",\"PHP\",\"Python\",\"REST\",\"Scss\"],\"summary\":\"31 精神 绝不写死代码，硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零，为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data，e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"精神\\\"\\u003e\\u003cspan\\u003e31 精神\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b2%be%e7%a5%9e\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e绝不写死代码，硬编码\\u003c/li\\u003e\\n\\u003cli\\u003e不留不要用的、垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"git\\\"\\u003e\\u003cspan\\u003e32 Git\\u003c/span\\u003e\\n  \\u003ca href=\\\"#git\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eMaster 的 BUG 必须最少且趋近于零，为最稳定的版本\\u003c/li\\u003e\\n\\u003cli\\u003e每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能\\u003c/li\\u003e\\n\\u003cli\\u003e禁止 Commit IDE 的 project data，e.g: .vscode\\u003c/li\\u003e\\n\\u003cli\\u003e禁止上传垃圾代码\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e更多规则详见文档 \\u003ca href=\\\"/posts/commit-spec/\\\"\\u003eCommit 规范\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/scss/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Scss - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Scss\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-07-14T13:03:31+08:00\"><meta itemprop=dateModified content=\"2024-07-28T17:12:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/scss/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Scss\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Scss\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/scss/ title=\"Scss | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/scss/index.xml title=\"Scss | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/scss/feed.json title=\"Scss | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/scss/feed.json title=\"Scss | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/scss/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Scss</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Scss <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/fixit-docs-bookmark/ class=archive-item-link>CSS 实现时间轴、背景图 Loading 和渐变边框</a>\n<span class=archive-item-date title='2024-07-14 13:03:31'>07-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/css-scss-var/ class=archive-item-link>关于 CSS 和 Scss 变量运算那些事</a>\n<span class=archive-item-date title='2022-04-30 22:04:29'>04-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/less-sass-scss/ class=archive-item-link>Less&amp;sass&amp;scss</a>\n<span class=archive-item-date title='2021-06-22 16:39:47'>06-22</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dev-rules/ class=archive-item-link>Web 开发规则，代码规范</a>\n<span class=archive-item-date title='2019-08-15 18:30:31'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/scss/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/scss/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Scss - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/scss/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 17:12:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/scss/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>CSS 实现时间轴、背景图 loading 和渐变边框</title><link>https://lruihao.cn/posts/fixit-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 13:03:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fixit-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;本文将通过一个实际应用场景，展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。&lt;/p&gt;</description></item><item><title>关于 CSS 和 Scss 变量运算那些事</title><link>https://lruihao.cn/posts/css-scss-var/</link><pubDate>Sat, 30 Apr 2022 22:04:29 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/css-scss-var/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;h2 class=\"heading-element\" id=\"问题分析\"&gt;&lt;span&gt;10 问题分析&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;昨天在开发 FixIt 的时候，在 Scss 中写 &lt;code&gt;max(foo, bar)&lt;/code&gt; 函数比较不同的单位变量时报错了，但是在 CSS 中使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数函数比较不同的单位变量是没有问题的。&lt;/p&gt;\n&lt;p&gt;造成这一问题的原因是，在 Scss 中，也实现了 &lt;code&gt;max&lt;/code&gt; 和 &lt;code&gt;min&lt;/code&gt; 函数，但是在 Scss 中，&lt;strong&gt;不同单位的变量是不能进行运算的&lt;/strong&gt;，所以使得在 Scss 中直接使用 &lt;code&gt;max&lt;/code&gt; 或者 &lt;code&gt;min&lt;/code&gt; 函数会提示单位不同的报错。（同类 Less 中的变量运算是支持不同单位的）&lt;/p&gt;\n&lt;p&gt;知道造成问题的原因后，解决这个问题就很简单了，有很多种方法，有些方法感觉像在卡 BUG，有点意思，记录一下。&lt;/p&gt;</description></item><item><title>less&amp;sass&amp;scss</title><link>https://lruihao.cn/posts/less-sass-scss/</link><pubDate>Tue, 22 Jun 2021 16:39:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/less-sass-scss/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;blockquote&gt;\n&lt;p&gt;Sass 和 Less 都屬於 &lt;strong&gt;CSS 前置處理器&lt;/strong&gt;，CSS 前置處理器定義了一種新的語言，其基本思想是，用一種專門的程式設計語言，為 CSS 增加了一些程式設計的特性，將 CSS 作為目標生成檔，然後開發者就只要使用這種語言進行 CSS 的編碼工作。&lt;br&gt;\n轉化成通俗易懂的話來說就是 &lt;strong&gt;“用一種專門的程式設計語言，進行 Web 頁面樣式設計，再通過編譯器轉化為正常的 CSS 檔，以供專案使用”。&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Web 开发规则，代码规范</title><link>https://lruihao.cn/posts/dev-rules/</link><pubDate>Thu, 15 Aug 2019 18:30:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dev-rules/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;h2 class=\"heading-element\" id=\"精神\"&gt;&lt;span&gt;46 精神&lt;/span&gt;\n &lt;a href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;绝不写死代码，硬编码&lt;/li&gt;\n&lt;li&gt;不留不要用的、垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"git\"&gt;&lt;span&gt;47 Git&lt;/span&gt;\n &lt;a href=\"#git\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Master 的 BUG 必须最少且趋近于零，为最稳定的版本&lt;/li&gt;\n&lt;li&gt;每次 Commit 信息应该准确填写。不可模棱两可，eg: 修复 BUG、增加功能&lt;/li&gt;\n&lt;li&gt;禁止 Commit IDE 的 project data，e.g: .vscode&lt;/li&gt;\n&lt;li&gt;禁止上传垃圾代码&lt;/li&gt;\n&lt;/ul&gt;\n&lt;blockquote&gt;\n&lt;p&gt;更多规则详见文档 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\"&gt;Commit 规范&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/scss/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/scss/</title><link rel=canonical href=https://lruihao.cn/tags/scss/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/scss/\"></head></html>"
  },
  {
    "path": "tags/semver/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"SemVer - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Command line tool for generating a changelog from git tags and commit history\",\"date_published\":\"2025-08-30T15:40:19Z\",\"date_modified\":\"2025-11-19T04:35:56Z\",\"id\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"url\":\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"auto-changelog\",\"conventional-changelog\",\"conventional-commits\",\"semver\"],\"summary\":\"auto-changelog-plus 中文 | English\\n从 git 提交历史自动生成 changelog 的命令行工具。\\n基于 auto-changelog 和 约定式提交 规范。\\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"auto-changelog-plus\\\" data-decreased\\u003e\\u003cspan\\u003eauto-changelog-plus\\u003c/span\\u003e\\n  \\u003ca href=\\\"#auto-changelog-plus\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e从 git 提交历史自动生成 changelog 的命令行工具。\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/CookPete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto-changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 和 \\u003ca href=\\\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e约定式提交\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 规范。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"-安装\\\"\\u003e\\u003cspan\\u003e📦 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install -g auto-changelog-plus\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"-用法\\\"\\u003e\\u003cspan\\u003e🚀 用法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#-%e7%94%a8%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 git 仓库根目录运行 \\u003ccode\\u003eauto-changelog-plus\\u003c/code\\u003e 或者 \\u003ccode\\u003eacp\\u003c/code\\u003e。工具会在后台运行 \\u003ccode\\u003egit log\\u003c/code\\u003e 来解析提交历史。\\u003c/p\\u003e\"},{\"title\":\"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\",\"date_published\":\"2024-09-04T18:10:59Z\",\"date_modified\":\"2025-12-10T03:29:52Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"auto-changelog\",\"changelog\",\"continuous-integration\",\"conventional-changelog\",\"conventional-commits\",\"hugo-fixit\",\"nodejs\",\"rolldown\",\"semver\"],\"summary\":\"FixIt Releaser 中文 | English\\n版本控制、变更日志和发布工具。\\n小心\\n该工具已停止维护！建议使用 auto changelog plus 或者 auto changelog 生成日志。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-releaser\\\" data-decreased\\u003e\\u003cspan\\u003eFixIt Releaser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-releaser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\\\"NPM version\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e版本控制、变更日志和发布工具。\\u003c/p\\u003e\\n\\u003cdiv class=\\\"alert alert-caution\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e小心\\u003c/p\\u003e\\u003cp\\u003e该工具已停止维护！建议使用 \\u003ca href=\\\"https://github.com/Lruihao/auto-changelog-plus\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog plus\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 或者 \\u003ca href=\\\"https://github.com/cookpete/auto-changelog\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eauto changelog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 生成日志。\\u003c/p\\u003e\"},{\"title\":\"语义版本控制（SemVer）\",\"date_published\":\"2022-08-13T13:32:03&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/semver/\",\"url\":\"https://lruihao.cn/posts/semver/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SemVer\"],\"image\":\"https://lruihao.cn/posts/semver/images/featured-image.png\",\"summary\":\" 摘要 版本格式：MAJOR.MINOR.PATCH，版本号递增规则如下：\\nMAJOR: 主版本号，当你做了不兼容的 API 修改 MINOR: 次版本号，当你做了向下兼容的功能性新增 PATCH: 修订号，当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面，作为延伸。\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition tip open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-lightbulb\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e版本格式：\\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e，版本号递增规则如下：\\u003c/p\\u003e\\n\\u003col\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMAJOR\\u003c/code\\u003e: \\u003cstrong\\u003e主版本号\\u003c/strong\\u003e，当你做了不兼容的 API 修改\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003eMINOR\\u003c/code\\u003e: \\u003cstrong\\u003e次版本号\\u003c/strong\\u003e，当你做了向下兼容的功能性新增\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ccode\\u003ePATCH\\u003c/code\\u003e: \\u003cstrong\\u003e修订号\\u003c/strong\\u003e，当你做了向下兼容的问题修正\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cp\\u003e先行版本号及版本编译信息可以加到 \\u003ccode\\u003eMAJOR.MINOR.PATCH\\u003c/code\\u003e 的后面，作为延伸。\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/semver/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SemVer - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"SemVer\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-30T15:40:19+00:00\"><meta itemprop=dateModified content=\"2025-12-10T03:29:52+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/semver/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SemVer\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SemVer\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/semver/ title=\"SemVer | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/semver/index.xml title=\"SemVer | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/semver/feed.json title=\"SemVer | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/semver/feed.json title=\"SemVer | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/semver/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SemVer</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>SemVer <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/auto-changelog-plus/ class=archive-item-link>Lruihao/auto-changelog-plus</a>\n<span class=archive-item-date title='2025-08-30 15:40:19'>08-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/fixit-releaser/ class=archive-item-link>hugo-fixit/fixit-releaser</a>\n<span class=archive-item-date title='2024-09-04 18:10:59'>09-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/semver/ class=archive-item-link>语义版本控制（SemVer）</a>\n<span class=archive-item-date title='2022-08-13 13:32:03'>08-13</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/semver/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/semver/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>SemVer - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/semver/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 10 Dec 2025 03:29:52 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/semver/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Command line tool for generating a changelog from git tags and commit history</title><link>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</link><pubDate>Sat, 30 Aug 2025 15:40:19 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/auto-changelog-plus/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased&gt;&lt;span&gt;auto-changelog-plus&lt;/span&gt;\n &lt;a href=\"#auto-changelog-plus\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;从 git 提交历史自动生成 changelog 的命令行工具。&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;基于 &lt;a href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto-changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 和 &lt;a href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;约定式提交&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 规范。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"-安装\"&gt;&lt;span&gt;📦 安装&lt;/span&gt;\n &lt;a href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install -g auto-changelog-plus&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"-用法\"&gt;&lt;span&gt;🚀 用法&lt;/span&gt;\n &lt;a href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 git 仓库根目录运行 &lt;code&gt;auto-changelog-plus&lt;/code&gt; 或者 &lt;code&gt;acp&lt;/code&gt;。工具会在后台运行 &lt;code&gt;git log&lt;/code&gt; 来解析提交历史。&lt;/p&gt;</description></item><item><title>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)</title><link>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</link><pubDate>Wed, 04 Sep 2024 18:10:59 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/fixit-releaser/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased&gt;&lt;span&gt;FixIt Releaser&lt;/span&gt;\n &lt;a href=\"#fixit-releaser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;版本控制、变更日志和发布工具。&lt;/p&gt;\n&lt;div class=\"alert alert-caution\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;小心&lt;/p&gt;&lt;p&gt;该工具已停止维护！建议使用 &lt;a href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog plus&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 或者 &lt;a href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;auto changelog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 生成日志。&lt;/p&gt;</description></item><item><title>语义版本控制（SemVer）</title><link>https://lruihao.cn/posts/semver/</link><pubDate>Sat, 13 Aug 2022 13:32:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/semver/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><description>&lt;div class=\"details admonition tip open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;版本格式：&lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt;，版本号递增规则如下：&lt;/p&gt;\n&lt;ol&gt;\n&lt;li&gt;&lt;code&gt;MAJOR&lt;/code&gt;: &lt;strong&gt;主版本号&lt;/strong&gt;，当你做了不兼容的 API 修改&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;MINOR&lt;/code&gt;: &lt;strong&gt;次版本号&lt;/strong&gt;，当你做了向下兼容的功能性新增&lt;/li&gt;\n&lt;li&gt;&lt;code&gt;PATCH&lt;/code&gt;: &lt;strong&gt;修订号&lt;/strong&gt;，当你做了向下兼容的问题修正&lt;/li&gt;\n&lt;/ol&gt;\n&lt;p&gt;先行版本号及版本编译信息可以加到 &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; 的后面，作为延伸。&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/semver/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/semver/</title><link rel=canonical href=https://lruihao.cn/tags/semver/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/semver/\"></head></html>"
  },
  {
    "path": "tags/server/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"server - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"windows 上搭建 web 服务器\",\"date_published\":\"2018-10-26T21:56:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-win/\",\"url\":\"https://lruihao.cn/posts/web-server-win/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"windows\"],\"summary\":\" 我用的 win10\\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我用的 win10\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开控制面板\\\"\\u003e\\u003cspan\\u003e0.1 打开控制面板\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\u003cbr\\u003e\\n\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/web-server-win/images/1.png\\\" title=\\\"打开控制面板\\\" data-thumbnail=\\\"/posts/web-server-win/images/1.png\\\" data-sub-html=\\\"\\u003ch2\\u003e打开控制面板\\u003c/h2\\u003e\\u003cp\\u003e打开控制面板\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/server/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>server - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"server\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-07-12T18:44:36+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/server/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"server\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"server\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/server/ title=\"server | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/server/index.xml title=\"server | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/server/feed.json title=\"server | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/server/feed.json title=\"server | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/server/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Server</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>server <sup>7</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><article class=archive-item><a href=/posts/web-server-win/ class=archive-item-link>Windows 上搭建 Web 服务器</a>\n<span class=archive-item-date title='2018-10-26 21:56:18'>10-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/server/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/server/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>server - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/server/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/server/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装</title><link>https://lruihao.cn/posts/bt/</link><pubDate>Mon, 18 Mar 2019 21:31:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bt/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。&lt;a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔官网介绍&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>caddy-两步搭建超简单云盘</title><link>https://lruihao.cn/posts/caddy-file/</link><pubDate>Sun, 11 Nov 2018 13:59:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/caddy-file/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;16 安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"编写配置文件\"&gt;&lt;span&gt;17 编写配置文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vim Caddyfile&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;内容如下：&lt;/p&gt;</description></item><item><title>云服务器 CentOS 系统搭建 web 服务</title><link>https://lruihao.cn/posts/web-server-yun/</link><pubDate>Mon, 29 Oct 2018 09:15:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-yun/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h3 class=\"heading-element\" id=\"搭建-apache-web-服务\"&gt;&lt;span&gt;0.10 搭建 Apache web 服务&lt;/span&gt;\n &lt;a href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;安装 Apache 超文本传输协议 (HTTP) 服务器的主程序&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# yum install -y httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意安装目录，可通过 cd 命令切换。&lt;/p&gt;\n&lt;ol start=\"2\"&gt;\n&lt;li&gt;启动 HTTP 服务&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果启动失败，可通过 systemctl status httpd.service 查看错误原因。&lt;br&gt;\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。&lt;br&gt;\n默认根目录&lt;code&gt;/var/www/html/&lt;/code&gt;&lt;/p&gt;</description></item><item><title>windows 上搭建 web 服务器</title><link>https://lruihao.cn/posts/web-server-win/</link><pubDate>Fri, 26 Oct 2018 21:56:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-win/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;我用的 win10&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开控制面板\"&gt;&lt;span&gt;0.1 打开控制面板&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。&lt;br&gt;\n&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"&lt;h2&gt;打开控制面板&lt;/h2&gt;&lt;p&gt;打开控制面板&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/server/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/server/</title><link rel=canonical href=https://lruihao.cn/tags/server/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/server/\"></head></html>"
  },
  {
    "path": "tags/shadow-dom/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Shadow DOM - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"}]}"
  },
  {
    "path": "tags/shadow-dom/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Shadow DOM - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Shadow DOM\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/shadow-dom/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Shadow DOM\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Shadow DOM\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/shadow-dom/ title=\"Shadow DOM | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/shadow-dom/index.xml title=\"Shadow DOM | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/shadow-dom/feed.json title=\"Shadow DOM | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/shadow-dom/feed.json title=\"Shadow DOM | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/shadow-dom/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Shadow DOM</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Shadow DOM <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/shadow-dom/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/shadow-dom/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Shadow DOM - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/shadow-dom/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/shadow-dom/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item></channel></rss>"
  },
  {
    "path": "tags/shadow-dom/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/shadow-dom/</title><link rel=canonical href=https://lruihao.cn/tags/shadow-dom/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/shadow-dom/\"></head></html>"
  },
  {
    "path": "tags/shell/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"shell - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Hugo 本地管理 Shell 腳本\",\"date_published\":\"2021-10-04T23:49:00&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-admin/\",\"url\":\"https://lruihao.cn/posts/hugo-admin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"shell\"],\"image\":\"/posts/hugo-admin/images/hugo-admin1.png\",\"summary\":\" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition abstract open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-clipboard-list\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e摘要\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。\\u003cbr\\u003e\\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"Cron 表达式的基本语法\",\"date_published\":\"2020-03-25T09:19:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cron/\",\"url\":\"https://lruihao.cn/posts/cron/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"shell\",\"Cron\"],\"summary\":\"9 基本语法 \\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\nCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"基本语法\\\"\\u003e\\u003cspan\\u003e9 基本语法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003e\\u0026lt;秒\\u0026gt; \\u0026lt;分钟\\u0026gt; \\u0026lt;小时\\u0026gt; \\u0026lt;日期 day-of-month\\u0026gt; \\u0026lt;月份\\u0026gt; \\u0026lt;星期 day-of-week\\u0026gt;\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003eCron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 \\u003ccode\\u003eX X X X X X\\u003c/code\\u003e。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。\\u003c/p\\u003e\"},{\"title\":\"shell 脚本初体验\",\"date_published\":\"2018-10-29T11:57:39&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/shell/\",\"url\":\"https://lruihao.cn/posts/shell/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"shell\",\"linux\"],\"summary\":\"今天上机学了几个小命令\\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\\n\",\"content_html\":\"\\u003cp\\u003e今天上机学了几个小命令\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eread\\u003c/li\\u003e\\n\\u003cli\\u003eecho\\u003c/li\\u003e\\n\\u003cli\\u003eif\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e然后自己写了一个小脚本觉得还挺有趣的\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/shell/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>shell - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"shell\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-10-04T23:49:00+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/shell/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"shell\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"shell\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/shell/ title=\"shell | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/shell/index.xml title=\"shell | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/shell/feed.json title=\"shell | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/shell/feed.json title=\"shell | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/shell/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Shell</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>shell <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-admin/ class=archive-item-link>Hugo 本地管理 Shell 腳本</a>\n<span class=archive-item-date title='2021-10-04 23:49:00'>10-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/posts/cron/ class=archive-item-link>Cron 表达式的基本语法</a>\n<span class=archive-item-date title='2020-03-25 09:19:44'>03-25</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/shell/ class=archive-item-link>Shell 脚本初体验</a>\n<span class=archive-item-date title='2018-10-29 11:57:39'>10-29</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/shell/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/shell/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>shell - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/shell/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 06 Oct 2024 10:24:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/shell/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Hugo 本地管理 Shell 腳本</title><link>https://lruihao.cn/posts/hugo-admin/</link><pubDate>Mon, 04 Oct 2021 23:49:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-admin/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition abstract open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"&gt;&lt;/i&gt;摘要&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;在使用 hugo 寫博客的過程中會使用到一些命令，包括 Git 的使用也會用到 Git 命令，但是這些命令我感覺知道就好，沒必要因輸入命令而增加寫博客和部署博客的額外工作。&lt;br&gt;\n自然要想辦法簡化這些過程，Git 還好有 SourceTree 等工具，Hugo 卻沒有，也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客，因為我覺得這和靜態博客初衷背道而馳，於是我就折中方案，寫了一個滿足日常需求的 Shell 腳本，生成管理本地博客。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>Cron 表达式的基本语法</title><link>https://lruihao.cn/posts/cron/</link><pubDate>Wed, 25 Mar 2020 09:19:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cron/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"基本语法\"&gt;&lt;span&gt;13 基本语法&lt;/span&gt;\n &lt;a href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;&lt;code&gt;&amp;lt;秒&amp;gt; &amp;lt;分钟&amp;gt; &amp;lt;小时&amp;gt; &amp;lt;日期 day-of-month&amp;gt; &amp;lt;月份&amp;gt; &amp;lt;星期 day-of-week&amp;gt;&lt;/code&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;Cron 表达式是一个具有时间含义的字符串，字符串以 5 个空格隔开，分为 6 个域，格式为 &lt;code&gt;X X X X X X&lt;/code&gt;。其中 X 是一个域的占位符。单个域有多个取值时，使用半角逗号，隔开取值。每个域可以是确定的取值，也可以是具有逻辑意义的特殊字符。&lt;/p&gt;</description></item><item><title>shell 脚本初体验</title><link>https://lruihao.cn/posts/shell/</link><pubDate>Mon, 29 Oct 2018 11:57:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/shell/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;今天上机学了几个小命令&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;read&lt;/li&gt;\n&lt;li&gt;echo&lt;/li&gt;\n&lt;li&gt;if&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;然后自己写了一个小脚本觉得还挺有趣的&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/shell/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/shell/</title><link rel=canonical href=https://lruihao.cn/tags/shell/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/shell/\"></head></html>"
  },
  {
    "path": "tags/shortcodes/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Shortcodes - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"VSCode 添加用户代码片段，自定义用户代码片段\",\"date_published\":\"2023-09-14T11:21:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vscode-snippets/\",\"url\":\"https://lruihao.cn/posts/vscode-snippets/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Shortcodes\"],\"summary\":\"在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\n\",\"content_html\":\"\\u003cp\\u003e在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Hugo 添加知乎卡片式链接 Shortcodes\",\"date_published\":\"2021-10-05T19:33:13&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"url\":\"https://lruihao.cn/posts/hugo-cardlink/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hugo\",\"Shortcodes\"],\"summary\":\" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到，模仿知乎卡片式链接\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。 \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e卡片式链接已整合到 FixIt 主题\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/Lruihao/FixIt\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\\n\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e回顧\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e之前在使用 hexo 的時候也有用到，\\u003ca href=\\\"/posts/linkcard/\\\"\\u003e模仿知乎卡片式链接\\u003c/a\\u003e\\u003cbr\\u003e\\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，\\u003cbr\\u003e\\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/shortcodes/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Shortcodes - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Shortcodes\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-01-08T09:20:48+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:29+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/shortcodes/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Shortcodes\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Shortcodes\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/shortcodes/ title=\"Shortcodes | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/shortcodes/index.xml title=\"Shortcodes | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/shortcodes/feed.json title=\"Shortcodes | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/shortcodes/feed.json title=\"Shortcodes | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/shortcodes/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Shortcodes</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Shortcodes <sup>8</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2026-04-20 07:20:15'>更新于 04-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/vscode-snippets/ class=archive-item-link>VSCode 添加用户代码片段，自定义用户代码片段</a>\n<span class=archive-item-date title='2023-09-14 11:21:56'>09-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/hugo-cardlink/ class=archive-item-link>Hugo 添加知乎卡片式链接 Shortcodes</a>\n<span class=archive-item-date title='2021-10-05 19:33:13'>10-05</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/shortcodes/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/shortcodes/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Shortcodes - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/shortcodes/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:29 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/shortcodes/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>VSCode 添加用户代码片段，自定义用户代码片段</title><link>https://lruihao.cn/posts/vscode-snippets/</link><pubDate>Thu, 14 Sep 2023 11:21:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vscode-snippets/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;在使用 VScode 开发中经常会有一些重复使用的代码块，复制粘贴也很麻烦，这时可以在 VScode 中添加用户代码片段，输入简写即可快捷输入。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hugo 添加知乎卡片式链接 Shortcodes</title><link>https://lruihao.cn/posts/hugo-cardlink/</link><pubDate>Tue, 05 Oct 2021 19:33:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hugo-cardlink/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;卡片式链接已整合到 FixIt 主题&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/Lruihao/FixIt&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;\n&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;回顧&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;之前在使用 hexo 的時候也有用到，&lt;a href=\"https://lruihao.cn/posts/linkcard/\"&gt;模仿知乎卡片式链接&lt;/a&gt;&lt;br&gt;\n和之前的相比，優化之前是后加載，由 JS 在 瀏覽器處理，&lt;br&gt;\n使用 shortcodes 方式后，則是在 GO 構建頁面的時候處理，效能上會好很多。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/shortcodes/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/shortcodes/</title><link rel=canonical href=https://lruihao.cn/tags/shortcodes/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/shortcodes/\"></head></html>"
  },
  {
    "path": "tags/slot/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"slot - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"}]}"
  },
  {
    "path": "tags/slot/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>slot - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"slot\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/slot/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"slot\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"slot\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/slot/ title=\"slot | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/slot/index.xml title=\"slot | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/slot/feed.json title=\"slot | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/slot/feed.json title=\"slot | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/slot/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Slot</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>slot <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/slot/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/slot/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>slot - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/slot/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/slot/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item></channel></rss>"
  },
  {
    "path": "tags/slot/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/slot/</title><link rel=canonical href=https://lruihao.cn/tags/slot/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/slot/\"></head></html>"
  },
  {
    "path": "tags/sort/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"sort - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"},{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/sort/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>sort - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"sort\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-14T10:12:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/sort/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"sort\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"sort\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/sort/ title=\"sort | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/sort/index.xml title=\"sort | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/sort/feed.json title=\"sort | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/sort/feed.json title=\"sort | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/sort/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sort</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>sort <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/sort/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/sort/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>sort - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/sort/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/sort/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 常用类</title><link>https://lruihao.cn/posts/stringbuffer/</link><pubDate>Sun, 14 Apr 2019 10:12:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/stringbuffer/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"&gt;&lt;span&gt;13 StringBuffer/StringBuilder（掌握）&lt;/span&gt;\n &lt;a href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"&gt;&lt;span&gt;13.1 StringBuffer 是线程安全的可变字符串&lt;/span&gt;\n &lt;a href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;StringBuilder 是线程不安全的可变字符串。&lt;br&gt;\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。&lt;/p&gt;</description></item><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/sort/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/sort/</title><link rel=canonical href=https://lruihao.cn/tags/sort/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/sort/\"></head></html>"
  },
  {
    "path": "tags/ssh/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"SSH - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"SSH 提交签名验证\",\"date_published\":\"2023-10-22T18:59:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ssh-sign/\",\"url\":\"https://lruihao.cn/posts/ssh-sign/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"SSH\"],\"summary\":\"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\n\",\"content_html\":\"\\u003cp\\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/ssh/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SSH - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"SSH\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-22T18:59:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/ssh/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SSH\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SSH\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/ssh/ title=\"SSH | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/ssh/index.xml title=\"SSH | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/ssh/feed.json title=\"SSH | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/ssh/feed.json title=\"SSH | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/ssh/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SSH</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>SSH <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/ssh-sign/ class=archive-item-link>SSH 提交签名验证</a>\n<span class=archive-item-date title='2023-10-22 18:59:31'>10-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/ssh/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/ssh/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>SSH - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/ssh/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/ssh/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>SSH 提交签名验证</title><link>https://lruihao.cn/posts/ssh-sign/</link><pubDate>Sun, 22 Oct 2023 18:59:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ssh-sign/</guid><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;p&gt;Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂，一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名，所以本文将介绍如何使用 SSH 对提交进行签名。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/ssh/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/ssh/</title><link rel=canonical href=https://lruihao.cn/tags/ssh/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/ssh/\"></head></html>"
  },
  {
    "path": "tags/ssl/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"SSL - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"vps 配置 ssl 及 https 重定向\",\"date_published\":\"2019-03-28T19:40:54&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/http2https/\",\"url\":\"https://lruihao.cn/posts/http2https/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SSL\",\"redirect\",\"CDN\",\"JavaScript\",\"server\"],\"summary\":\" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/ssl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SSL - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"SSL\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-28T19:40:54+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/ssl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SSL\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SSL\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/ssl/ title=\"SSL | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/ssl/index.xml title=\"SSL | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/ssl/feed.json title=\"SSL | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/ssl/feed.json title=\"SSL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/ssl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SSL</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>SSL <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/http2https/ class=archive-item-link>Vps 配置 Ssl 及 Https 重定向</a>\n<span class=archive-item-date title='2019-03-28 19:40:54'>03-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/ssl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/ssl/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>SSL - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/ssl/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/ssl/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>vps 配置 ssl 及 https 重定向</title><link>https://lruihao.cn/posts/http2https/</link><pubDate>Thu, 28 Mar 2019 19:40:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/http2https/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;记录自己在配置 vps 及博客 SSL 证书时遇到的问题。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/ssl/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/ssl/</title><link rel=canonical href=https://lruihao.cn/tags/ssl/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/ssl/\"></head></html>"
  },
  {
    "path": "tags/stl/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"STL - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"sort 排序\",\"date_published\":\"2018-06-14T20:23:03&#43;08:00\",\"date_modified\":\"2018-06-14T20:23:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-sort/\",\"url\":\"https://lruihao.cn/posts/c-sort/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"C++\",\"sort\",\"STL\",\"ACM\"],\"summary\":\"sort 使用#include\\u0026lt;algorithm\\u0026gt;头文件，\\nsort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\n或者简单的用 less\\u0026lt;参数类型\\u0026gt;()表示升序\\ngreater\\u0026lt;参数类型\\u0026gt;()表示降序\\n也可以用一个 bool 型函数，比如：\\nbool cmp(int a,int b){ return a\\u003eb;//表从大到小，即降序 }假设自己定义了一个结构体 node\\n\",\"content_html\":\"\\u003cp\\u003esort 使用\\u003ccode\\u003e#include\\u0026lt;algorithm\\u0026gt;\\u003c/code\\u003e头文件，\\u003c/p\\u003e\\n\\u003cp\\u003esort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。\\u003c/p\\u003e\\n\\u003cp\\u003e或者简单的用\\n\\u003ccode\\u003eless\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示升序\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ccode\\u003egreater\\u0026lt;参数类型\\u0026gt;()\\u003c/code\\u003e表示降序\\u003c/p\\u003e\\n\\u003cp\\u003e也可以用一个 bool 型函数，比如：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003ebool cmp(int a,int b){\\n\\n       return a\\u003eb;//表从大到小，即降序\\n\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e假设自己定义了一个结构体 node\\u003c/p\\u003e\"},{\"title\":\"C++ with STL\",\"date_published\":\"2018-06-14T20:22:06&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/c-with-stl/\",\"url\":\"https://lruihao.cn/posts/c-with-stl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"STL\",\"C++\"],\"summary\":\"17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);） 交换两元素的值在 C 语言课上作为指针讲解的典例。\\nint a=1,b=2;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1swap交换两元素值在-algorithm-下用法swapab\\\"\\u003e\\u003cspan\\u003e17 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\\u003c/p\\u003e\\n\\u003cp\\u003eint a=1,b=2;\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/stl/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>STL - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"STL\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-06-14T20:23:03+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/stl/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"STL\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"STL\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/stl/ title=\"STL | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/stl/index.xml title=\"STL | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/stl/feed.json title=\"STL | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/stl/feed.json title=\"STL | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/stl/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>STL</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>STL <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/c-sort/ class=archive-item-link>Sort 排序</a>\n<span class=archive-item-date title='2018-06-14 20:23:03'>06-14</span></article><article class=archive-item><a href=/posts/c-with-stl/ class=archive-item-link>C++ With STL</a>\n<span class=archive-item-date title='2018-06-14 20:22:06'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/stl/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/stl/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>STL - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/stl/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/stl/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>sort 排序</title><link>https://lruihao.cn/posts/c-sort/</link><pubDate>Thu, 14 Jun 2018 20:23:03 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-sort/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;sort 使用&lt;code&gt;#include&amp;lt;algorithm&amp;gt;&lt;/code&gt;头文件，&lt;/p&gt;\n&lt;p&gt;sort（开始地址，结束地址，排序方式），其中第三参数可以没有，则默认为升序排序。&lt;/p&gt;\n&lt;p&gt;或者简单的用\n&lt;code&gt;less&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示升序&lt;/p&gt;\n&lt;p&gt;&lt;code&gt;greater&amp;lt;参数类型&amp;gt;()&lt;/code&gt;表示降序&lt;/p&gt;\n&lt;p&gt;也可以用一个 bool 型函数，比如：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;bool cmp(int a,int b){\n\n return a&amp;gt;b;//表从大到小，即降序\n\n}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假设自己定义了一个结构体 node&lt;/p&gt;</description></item><item><title>C++ with STL</title><link>https://lruihao.cn/posts/c-with-stl/</link><pubDate>Thu, 14 Jun 2018 20:22:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/c-with-stl/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"&gt;&lt;span&gt;25 1.swap（交换两元素值，在 algorithm 下，用法：swap(a,b);）&lt;/span&gt;\n &lt;a href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;交换两元素的值在 C 语言课上作为指针讲解的典例。&lt;/p&gt;\n&lt;p&gt;int a=1,b=2;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/stl/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/stl/</title><link rel=canonical href=https://lruihao.cn/tags/stl/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/stl/\"></head></html>"
  },
  {
    "path": "tags/stringbuffer/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"StringBuffer - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 常用类\",\"date_published\":\"2019-04-14T10:12:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/stringbuffer/\",\"url\":\"https://lruihao.cn/posts/stringbuffer/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"StringBuffer\",\"sort\",\"Java\"],\"summary\":\"9 StringBuffer/StringBuilder（掌握） 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"stringbufferstringbuilder掌握\\\"\\u003e\\u003cspan\\u003e9 StringBuffer/StringBuilder（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"stringbuffer-是线程安全的可变字符串\\\"\\u003e\\u003cspan\\u003e9.1 StringBuffer 是线程安全的可变字符串\\u003c/span\\u003e\\n  \\u003ca href=\\\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eStringBuilder 是线程不安全的可变字符串。\\u003cbr\\u003e\\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/stringbuffer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>StringBuffer - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"StringBuffer\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-14T10:12:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/stringbuffer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"StringBuffer\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"StringBuffer\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/stringbuffer/ title=\"StringBuffer | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/stringbuffer/index.xml title=\"StringBuffer | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/stringbuffer/feed.json title=\"StringBuffer | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/stringbuffer/feed.json title=\"StringBuffer | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/stringbuffer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>StringBuffer</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>StringBuffer <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/stringbuffer/ class=archive-item-link>Java 常用类</a>\n<span class=archive-item-date title='2019-04-14 10:12:44'>04-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/stringbuffer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/stringbuffer/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>StringBuffer - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/stringbuffer/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/stringbuffer/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 常用类</title><link>https://lruihao.cn/posts/stringbuffer/</link><pubDate>Sun, 14 Apr 2019 10:12:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/stringbuffer/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"&gt;&lt;span&gt;13 StringBuffer/StringBuilder（掌握）&lt;/span&gt;\n &lt;a href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"&gt;&lt;span&gt;13.1 StringBuffer 是线程安全的可变字符串&lt;/span&gt;\n &lt;a href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;StringBuilder 是线程不安全的可变字符串。&lt;br&gt;\n和 StringBuffer 的功能一样。就是效率高一些，但是不安全。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/stringbuffer/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/stringbuffer/</title><link rel=canonical href=https://lruihao.cn/tags/stringbuffer/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/stringbuffer/\"></head></html>"
  },
  {
    "path": "tags/study-notes/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"study-notes - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/study-notes/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>study-notes - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"study-notes\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/study-notes/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"study-notes\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"study-notes\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/study-notes/ title=\"study-notes | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/study-notes/index.xml title=\"study-notes | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/study-notes/feed.json title=\"study-notes | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/study-notes/feed.json title=\"study-notes | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/study-notes/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Study-Notes</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>study-notes <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/study-notes/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/study-notes/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>study-notes - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/study-notes/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/study-notes/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/study-notes/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/study-notes/</title><link rel=canonical href=https://lruihao.cn/tags/study-notes/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/study-notes/\"></head></html>"
  },
  {
    "path": "tags/sublime/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Sublime - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Sublime 剪贴板图片粘贴插件 —— Markdown 必备\",\"date_published\":\"2021-10-05T21:54:06&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"url\":\"https://lruihao.cn/posts/subl_imgpaste2/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Markdown\",\"Sublime\"],\"summary\":\" 插件地址 github.com/robinchenyu/imagepaste \",\"content_html\":\"\\u003c!-- markdownlint-disable MD034 --\\u003e\\n\\u003ca href=\\\"https://github.com/robinchenyu/imagepaste\\\" title=\\\"插件地址\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\" class=\\\"card-link\\\"\\u003e\\u003cspan class=\\\"cl-backdrop\\\"\\u003e\\u003c/span\\u003e\\n    \\u003cspan class=\\\"cl-content\\\"\\u003e\\n      \\u003cspan class=\\\"cl-text\\\"\\u003e\\n        \\u003cspan class=\\\"cl-title\\\"\\u003e插件地址\\u003c/span\\u003e\\n        \\u003cspan class=\\\"cl-meta\\\"\\u003e\\n          \\u003csvg class=\\\"cl-icon-link\\\" viewBox=\\\"0 0 1024 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003cpath d=\\\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\\\" fill=\\\"#a9a9b3\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n          \\u003cspan class=\\\"cl-url\\\"\\u003egithub.com/robinchenyu/imagepaste\\u003c/span\\u003e\\n        \\u003c/span\\u003e\\n      \\u003c/span\\u003e\\u003cimg src=\\\"/images/remote/github_14075797050460861398.png\\\" alt=\\\"card image\\\" class=\\\"cl-shortcut-image\\\"\\u003e\\u003c/span\\u003e\\u003c/a\\u003e\"},{\"title\":\"Sublime Text3 快捷键大全\",\"date_published\":\"2019-08-15T20:59:10&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sublime-text3/\",\"url\":\"https://lruihao.cn/posts/sublime-text3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Sublime\",\"他山之石\"],\"summary\":\"Sublime Text3 快捷键一览表\\n\",\"content_html\":\"\\u003cp\\u003eSublime Text3 快捷键一览表\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/sublime/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Sublime - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Sublime\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-10-05T21:54:06+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/sublime/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Sublime\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Sublime\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/sublime/ title=\"Sublime | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/sublime/index.xml title=\"Sublime | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/sublime/feed.json title=\"Sublime | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/sublime/feed.json title=\"Sublime | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/sublime/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Sublime</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Sublime <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/subl_imgpaste2/ class=archive-item-link>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</a>\n<span class=archive-item-date title='2021-10-05 21:54:06'>10-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/sublime-text3/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Sublime Text3 快捷键大全</a>\n<span class=archive-item-date title='2019-08-15 20:59:10'>08-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/sublime/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/sublime/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Sublime - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/sublime/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/sublime/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Sublime 剪贴板图片粘贴插件 —— Markdown 必备</title><link>https://lruihao.cn/posts/subl_imgpaste2/</link><pubDate>Tue, 05 Oct 2021 21:54:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/subl_imgpaste2/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable MD034 --&gt;\n&lt;a href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"&gt;&lt;span class=\"cl-backdrop\"&gt;&lt;/span&gt;\n &lt;span class=\"cl-content\"&gt;\n &lt;span class=\"cl-text\"&gt;\n &lt;span class=\"cl-title\"&gt;插件地址&lt;/span&gt;\n &lt;span class=\"cl-meta\"&gt;\n &lt;svg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;path d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;span class=\"cl-url\"&gt;github.com/robinchenyu/imagepaste&lt;/span&gt;\n &lt;/span&gt;\n &lt;/span&gt;&lt;img src=\"https://lruihao.cn/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"&gt;&lt;/span&gt;&lt;/a&gt;</description></item><item><title>Sublime Text3 快捷键大全</title><link>https://lruihao.cn/posts/sublime-text3/</link><pubDate>Thu, 15 Aug 2019 20:59:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sublime-text3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Sublime Text3 快捷键一览表&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/sublime/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/sublime/</title><link rel=canonical href=https://lruihao.cn/tags/sublime/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/sublime/\"></head></html>"
  },
  {
    "path": "tags/summary/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"总结 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"2023 年度总结\",\"date_published\":\"2024-02-09T14:07:24&#43;08:00\",\"date_modified\":\"2024-02-09T14:07:24&#43;08:00\",\"id\":\"https://lruihao.cn/years/2023/\",\"url\":\"https://lruihao.cn/years/2023/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"总结\"],\"summary\":\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\n\",\"content_html\":\"\\u003cp\\u003e与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"18 湘潭邀请赛总结\",\"date_published\":\"2018-06-14T23:32:47&#43;08:00\",\"date_modified\":\"2018-06-14T23:32:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"url\":\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"2018 湘潭邀请赛\",\"ACM\",\"总结\"],\"summary\":\"题目链接（hdu 复赛）\\n2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（hdu 复赛）\\u003c/p\\u003e\\n\\u003cp\\u003e2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/summary/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>总结 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"总结\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=dateModified content=\"2026-05-08T02:06:08+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/summary/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"总结\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"总结\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/summary/ title=\"总结 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/summary/index.xml title=\"总结 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/summary/feed.json title=\"总结 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/summary/feed.json title=\"总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/summary/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>总结</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>总结 <sup>7</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/years/2023/ class=archive-item-link>2023 年度总结</a>\n<span class=archive-item-date title='2024-02-09 14:07:24'>02-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/years/2022/ class=archive-item-link>2022 年度总结</a>\n<span class=archive-item-date title='2022-12-17 01:01:30'>12-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/years/2020-2021/ class=archive-item-link>2020&amp;2021 總結</a>\n<span class=archive-item-date title='2021-06-21 10:17:38'>06-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/years/2019/ class=archive-item-link>2019 年度总结</a>\n<span class=archive-item-date title='2020-01-16 20:01:22'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/years/2018/ class=archive-item-link>2018 年度总结</a>\n<span class=archive-item-date title='2019-01-12 11:09:52'>01-12</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ class=archive-item-link>18 湘潭邀请赛总结</a>\n<span class=archive-item-date title='2018-06-14 23:32:47'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/edb5a958b8f7500ddc4825759a251692.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/edb5a958b8f7500ddc4825759a251692.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/summary/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/summary/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>总结 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/summary/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 09 Feb 2024 14:07:24 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/summary/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>2023 年度总结</title><link>https://lruihao.cn/years/2023/</link><pubDate>Fri, 09 Feb 2024 14:07:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/years/2023/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>18 湘潭邀请赛总结</title><link>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</link><pubDate>Thu, 14 Jun 2018 23:32:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（hdu 复赛）&lt;/p&gt;\n&lt;p&gt;2018 年湘潭邀请赛，在湘大举行，当时一起打的过去的，因为没出市就方便点。第一次参加现场赛，首先反省一下自己，比赛前算法先不说（没有好好搞过），就连普通的题，数学性质的题都很少刷，什么都不会，然后英语不说四六级的东西，很多专业英语词汇都没有好好了解过，主要的原因还是刷题刷少了，英文题刷少了。理所当然，成功拿下一铁，湘潭赛打铁告终。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/summary/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/summary/</title><link rel=canonical href=https://lruihao.cn/tags/summary/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/summary/\"></head></html>"
  },
  {
    "path": "tags/svg/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"SVG - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"怎么生成暗黑模式和明亮模式的 SVG 图片？\",\"date_published\":\"2024-06-06T22:13:26&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/svg-dark-light/\",\"url\":\"https://lruihao.cn/posts/svg-dark-light/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CSS\",\"SVG\",\"hugo\"],\"summary\":\"在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\n\",\"content_html\":\"\\u003cp\\u003e在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。\\u003c/p\\u003e\"},{\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"date_published\":\"2023-09-14T11:24:48&#43;08:00\",\"date_modified\":\"2024-06-06T23:01:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"url\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SVG\",\"Vue2\"],\"summary\":\"19 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e19 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、\\u003ca href=\\\"https://fontawesome.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFont Awesome\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.iconfont.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIconfont\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等。\\u003c/p\\u003e\\n\\u003cp\\u003e随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/svg/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>SVG - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"SVG\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-06T22:13:26+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/svg/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"SVG\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"SVG\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/svg/ title=\"SVG | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/svg/index.xml title=\"SVG | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/svg/feed.json title=\"SVG | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/svg/feed.json title=\"SVG | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/svg/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>SVG</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>SVG <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/svg-dark-light/ class=archive-item-link>怎么生成暗黑模式和明亮模式的 SVG 图片？</a>\n<span class=archive-item-date title='2024-06-06 22:13:26'>06-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/vue-svg-icon/ class=archive-item-link>在 Vue 项目中更优雅地使用 Icon</a>\n<span class=archive-item-date title='2023-09-14 11:24:48'>09-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/svg/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/svg/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>SVG - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/svg/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 06 Oct 2024 10:24:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/svg/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>怎么生成暗黑模式和明亮模式的 SVG 图片？</title><link>https://lruihao.cn/posts/svg-dark-light/</link><pubDate>Thu, 06 Jun 2024 22:13:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/svg-dark-light/</guid><category domain=\"https://lruihao.cn/categories/css/\">CSS</category><description>&lt;p&gt;在做博客顶部栏下落奶油图的时候，就在想怎么适配暗黑模式和明亮模式呢？本文将记录两个思路。&lt;/p&gt;</description></item><item><title>在 Vue 项目中更优雅地使用 icon</title><link>https://lruihao.cn/posts/vue-svg-icon/</link><pubDate>Thu, 14 Sep 2023 11:24:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-svg-icon/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;28 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、&lt;a href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Font Awesome&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Iconfont&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等。&lt;/p&gt;\n&lt;p&gt;随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/svg/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/svg/</title><link rel=canonical href=https://lruihao.cn/tags/svg/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/svg/\"></head></html>"
  },
  {
    "path": "tags/tailwindcss/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"tailwindcss - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/tailwindcss/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>tailwindcss - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"tailwindcss\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-03T17:38:44+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/tailwindcss/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"tailwindcss\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"tailwindcss\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/tailwindcss/ title=\"tailwindcss | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/tailwindcss/index.xml title=\"tailwindcss | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/tailwindcss/feed.json title=\"tailwindcss | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/tailwindcss/feed.json title=\"tailwindcss | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/tailwindcss/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Tailwindcss</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>tailwindcss <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/tailwindcss/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/tailwindcss/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>tailwindcss - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/tailwindcss/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/tailwindcss/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/tailwindcss/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/tailwindcss/</title><link rel=canonical href=https://lruihao.cn/tags/tailwindcss/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/tailwindcss/\"></head></html>"
  },
  {
    "path": "tags/template/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"template - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"黑盒出关・三把钥匙定江湖\",\"date_published\":\"2025-08-05T11:31:52&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"url\":\"https://lruihao.cn/posts/wc-01-prologue/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"image\":\"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp\",\"summary\":\"江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\n\",\"content_html\":\"\\u003cp\\u003e江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！\\u003c/p\\u003e\"},{\"title\":\"Web Components\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2025-08-05T15:37:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-components/\",\"url\":\"https://lruihao.cn/posts/web-components/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Custom element\",\"Shadow DOM\",\"template\",\"slot\"],\"content_html\":\"Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。\"}]}"
  },
  {
    "path": "tags/template/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>template - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"template\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-08-05T11:31:52+08:00\"><meta itemprop=dateModified content=\"2025-08-05T15:37:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/template/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"template\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"template\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/template/ title=\"template | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/template/index.xml title=\"template | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/template/feed.json title=\"template | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/template/feed.json title=\"template | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/template/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Template</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>template <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/wc-01-prologue/ class=archive-item-link>黑盒出关・三把钥匙定江湖</a>\n<span class=archive-item-date title='2025-08-05 11:31:52'>08-05</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/web-components/ class=archive-item-link>Web Components</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/template/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/template/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>template - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/template/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 05 Aug 2025 15:37:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/template/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>黑盒出关・三把钥匙定江湖</title><link>https://lruihao.cn/posts/wc-01-prologue/</link><pubDate>Tue, 05 Aug 2025 11:31:52 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wc-01-prologue/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>&lt;p&gt;江湖传言，西土浏览器界有隐世高人，名曰“原生老祖”。老祖膝下三徒，各执一柄钥匙，开得了黑盒，锁得住乾坤。今日大话，诸位英雄且把耳洞放大，听我一一道来！&lt;/p&gt;</description></item><item><title>Web Components</title><link>https://lruihao.cn/posts/web-components/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-components/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><category domain=\"https://lruihao.cn/categories/html/\">HTML</category><description>Web Component 是一组 Web 平台的标准，允许开发者创建可重用的自定义元素和组件。</description></item></channel></rss>"
  },
  {
    "path": "tags/template/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/template/</title><link rel=canonical href=https://lruihao.cn/tags/template/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/template/\"></head></html>"
  },
  {
    "path": "tags/termux/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"termux - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"termux 基本使用教程\",\"date_published\":\"2018-10-23T22:16:02&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux1/\",\"url\":\"https://lruihao.cn/posts/termux1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"linux\",\"termux\"],\"summary\":\" 前面有一篇文章写到一些，在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。备用\\n17 初始化 下载并初始化 termux\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e前面有一篇文章写到一些，\\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n\\u003cstrong\\u003e本文当初摘要自 \\u003ca href=\\\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e国光个人博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。\\u003ca href=\\\"https://www.freebuf.com/geek/170510.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e备用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"初始化\\\"\\u003e\\u003cspan\\u003e17 初始化\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%9d%e5%a7%8b%e5%8c%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e下载并初始化 termux\\u003c/p\\u003e\"},{\"title\":\"在 Android 上搭建 hexo 博客\",\"date_published\":\"2018-08-11T16:59:05&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/termux/\",\"url\":\"https://lruihao.cn/posts/termux/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"termux\"],\"summary\":\" 暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**部署后的效果**\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**\\u003ca href=\\\"https://lruihao.gitee.io\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e部署后的效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e**\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/termux/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>termux - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"termux\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-23T22:16:02+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/termux/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"termux\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"termux\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/termux/ title=\"termux | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/termux/index.xml title=\"termux | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/termux/feed.json title=\"termux | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/termux/feed.json title=\"termux | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/termux/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Termux</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>termux <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/termux1/ class=archive-item-link>Termux 基本使用教程</a>\n<span class=archive-item-date title='2018-10-23 22:16:02'>10-23</span></article><article class=archive-item><a href=/posts/termux/ class=archive-item-link>在 Android 上搭建 Hexo 博客</a>\n<span class=archive-item-date title='2018-08-11 16:59:05'>08-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/termux/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/termux/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>termux - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/termux/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/termux/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>termux 基本使用教程</title><link>https://lruihao.cn/posts/termux1/</link><pubDate>Tue, 23 Oct 2018 22:16:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux1/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;前面有一篇文章写到一些，&lt;a href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n&lt;strong&gt;本文当初摘要自 &lt;a href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;国光个人博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;\n如若作者博客 IP 被墙，可前往国光第三方博客诸如 csdn 等。&lt;a href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;备用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"初始化\"&gt;&lt;span&gt;25 初始化&lt;/span&gt;\n &lt;a href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;下载并初始化 termux&lt;/p&gt;</description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/termux/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**&lt;a href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;部署后的效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;**&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/termux/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/termux/</title><link rel=canonical href=https://lruihao.cn/tags/termux/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/termux/\"></head></html>"
  },
  {
    "path": "tags/theme-component/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"theme-component - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A Christmas Easter Egg by JavaScript.\",\"date_published\":\"2025-12-24T03:31:47Z\",\"date_modified\":\"2026-05-04T16:54:23Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期，无需手动开关 💫 轻量级实现，不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003e🎄 Santa Hat | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个 JavaScript 实现的圣诞节小彩蛋。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\\\"santa-hat\\\"\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰\\u003c/li\\u003e\\n\\u003cli\\u003e🎯 自动检测当前日期，无需手动开关\\u003c/li\\u003e\\n\\u003cli\\u003e💫 轻量级实现，不影响网站性能\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 或更高版本。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方式与 \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with asciinema-embed shortcode.\",\"date_published\":\"2025-01-08T09:20:48Z\",\"date_modified\":\"2026-04-20T07:20:15Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"asciinema\",\"hugo\",\"shortcodes\",\"theme-component\"],\"summary\":\" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\\n要求 适用于所有 Hugo 主题。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eshortcode-asciinema | FixIt\\u003c/h1\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个带有 \\u003ccode\\u003easciinema-embed\\u003c/code\\u003e shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/#cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题#CLI | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e适用于所有 Hugo 主题。\\u003c/p\\u003e\"},{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"🐟 A canvas implemented animation effect of small fish swimming.\",\"date_published\":\"2024-11-05T08:23:29Z\",\"date_modified\":\"2025-12-27T08:05:18Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"canvas\",\"hugo\",\"hugo-fixit\",\"theme-component\"],\"summary\":\"Fly Fish 👉 简体中文说明 | English README\\n一个 canvas 实现的小鱼游动动画效果。\\nDemo https://lruihao.cn\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fly-fish\\\" data-decreased\\u003e\\u003cspan\\u003eFly Fish\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fly-fish\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e👉 简体中文说明 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish README\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个 canvas 实现的小鱼游动动画效果。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for ATOM feed custom Output Format.\",\"date_published\":\"2024-08-22T03:29:22Z\",\"date_modified\":\"2025-12-20T06:45:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"atom\",\"feed\",\"hugo\",\"theme-component\"],\"summary\":\"Hugo ATOM Feed 中文 | English\\nHugo 主题组件，用于自定义 ATOM feed 输出格式。\\n该组件为您的站点启用 ATOM feeds。\\n安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-atom-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo ATOM Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-atom-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 ATOM feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 ATOM feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Hugo theme component for JSON feed custom Output Format.\",\"date_published\":\"2024-08-22T03:28:23Z\",\"date_modified\":\"2025-12-20T06:44:31Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"json-feed\",\"theme-component\"],\"summary\":\"Hugo JSON Feed 中文 | English\\nHugo 主题组件，用于自定义 JSON feed 输出格式。\\n该组件为您的站点启用 JSON feeds。\\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-json-feed\\\" data-decreased\\u003e\\u003cspan\\u003eHugo JSON Feed\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-json-feed\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e中文 | \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo 主题组件，用于自定义 JSON feed 输出格式。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e该组件为您的站点启用 JSON feeds。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"演示\\\"\\u003e\\u003cspan\\u003e演示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%bc%94%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e主页 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/posts/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文章 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/collections/project/feed.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e列表 Feed\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装组件\\\"\\u003e\\u003cspan\\u003e安装组件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与\\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：\\u003c/p\\u003e\"},{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with reward-log or sponsor-log shortcode.\",\"date_published\":\"2024-07-21T14:02:29Z\",\"date_modified\":\"2025-11-08T18:49:59Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"reward-log\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\\nDemo FixIt Docs Lruihao\\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-rewards\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-rewards\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-rewards\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eA Hugo theme component with \\u003ccode\\u003ereward-log\\u003c/code\\u003e or \\u003ccode\\u003esponsor-log\\u003c/code\\u003e shortcode.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/contributing/overview/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt Docs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/about/#sponsor\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Blog\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eDeveloped based on the FixIt Timeline plugin.\\u003c/p\\u003e\"},{\"title\":\"🔖 Embed bookmark of FixIt Docs.\",\"date_published\":\"2024-07-14T07:39:56Z\",\"date_modified\":\"2025-12-27T08:36:41Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"fixit-docs-bookmark\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"fixit-docs-bookmark\\\" data-decreased\\u003e\\u003cspan\\u003efixit-docs-bookmark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#fixit-docs-bookmark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e🔖 Embed bookmark of FixIt Docs.\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\\\"preview\\\" height=\\\"668\\\" width=\\\"1600\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eFixIt v0.4.0 or later.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"},{\"title\":\"A Hugo theme component with caniuse shortcode.\",\"date_published\":\"2024-06-28T06:56:32Z\",\"date_modified\":\"2026-05-06T03:02:29Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"caniuse-embed\",\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\\n依赖 FixIt 主题 v0.4.0 及以上版本。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"hugo-shortcode-for-caniuse\\\" data-decreased\\u003e\\u003cspan\\u003eHugo shortcode for CanIUse\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hugo-shortcode-for-caniuse\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Hugo 中使用 \\u003ccode\\u003eshortcode\\u003c/code\\u003e 方式内嵌 \\u003ca href=\\\"https://caniuse.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCanIUse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 到你的文章中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\\\"caniuse example\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\\\"baseline example\\\"\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"依赖\\\"\\u003e\\u003cspan\\u003e依赖\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e4%be%9d%e8%b5%96\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eFixIt 主题 \\u003ccode\\u003ev0.4.0\\u003c/code\\u003e 及以上版本。\\u003c/p\\u003e\"},{\"title\":\"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\",\"date_published\":\"2024-04-09T21:38:42Z\",\"date_modified\":\"2026-05-06T03:02:26Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/component-projects/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"shortcodes\",\"theme-component\"],\"summary\":\" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示（layout 或者 shortcodes） 支持根据 README 自动生成博客文章（content adapter） 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法，请选择一种。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eGitHub Projects Embed | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\\\"apple-devices-preview\\\" height=\\\"1508\\\" width=\\\"2880\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\\\"\\u003edeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\\\"\\u003eしろうと\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e生态系统 | FixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://lruihao.cn/projects/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao 的开源项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特性\\\"\\u003e\\u003cspan\\u003e特性\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%80%a7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e支持 GitHub 项目卡片展示（\\u003ccode\\u003elayout\\u003c/code\\u003e 或者 \\u003ccode\\u003eshortcodes\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003cli\\u003e支持根据 README 自动生成博客文章（\\u003ccode\\u003econtent adapter\\u003c/code\\u003e）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"要求\\\"\\u003e\\u003cspan\\u003e要求\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%a6%81%e6%b1%82\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 或更高版本\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e安装方法与 \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 相同。有几种安装方法，请选择一种。\\u003c/p\\u003e\"},{\"title\":\"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\",\"date_published\":\"2023-02-28T09:12:29Z\",\"date_modified\":\"2025-07-02T07:28:07Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"netease-cloud-music\",\"shortcodes\",\"theme-component\"],\"summary\":\"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\nDemo https://lruihao.cn/guestbook/\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"shortcode-mmt-netease\\\" data-decreased\\u003e\\u003cspan\\u003eshortcode-mmt-netease\\u003c/span\\u003e\\n  \\u003ca href=\\\"#shortcode-mmt-netease\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\\\"preview\\\" height=\\\"934\\\" width=\\\"1754\\\"\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.cn/guestbook/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://lruihao.cn/guestbook/\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/theme-component/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>theme-component - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"theme-component\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-12-24T03:31:47+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/theme-component/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"theme-component\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"theme-component\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/theme-component/ title=\"theme-component | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/theme-component/index.xml title=\"theme-component | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/theme-component/feed.json title=\"theme-component | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/theme-component/feed.json title=\"theme-component | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/theme-component/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Theme-Component</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>theme-component <sup>12</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2026-05-06 03:02:29'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2026-05-06 03:02:26'>更新于 05-06</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2026-05-04 16:54:23'>更新于 05-04</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2026-04-20 07:20:15'>更新于 04-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-santa-hat/ class=archive-item-link>hugo-fixit/cmpt-santa-hat</a>\n<span class=archive-item-date title='2025-12-24 03:31:47'>12-24</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-asciinema/ class=archive-item-link>hugo-fixit/shortcode-asciinema</a>\n<span class=archive-item-date title='2025-01-08 09:20:48'>01-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-flyfish/ class=archive-item-link>hugo-fixit/cmpt-flyfish</a>\n<span class=archive-item-date title='2024-11-05 08:23:29'>11-05</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-atom-feed/ class=archive-item-link>hugo-fixit/hugo-atom-feed</a>\n<span class=archive-item-date title='2024-08-22 03:29:22'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/hugo-json-feed/ class=archive-item-link>hugo-fixit/hugo-json-feed</a>\n<span class=archive-item-date title='2024-08-22 03:28:23'>08-22</span></article><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-rewards/ class=archive-item-link>hugo-fixit/shortcode-rewards</a>\n<span class=archive-item-date title='2024-07-21 14:02:29'>07-21</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-docs-bookmark/ class=archive-item-link>hugo-fixit/shortcode-docs-bookmark</a>\n<span class=archive-item-date title='2024-07-14 07:39:56'>07-14</span></article><article class=archive-item><a href=/projects/hugo-fixit/shortcode-caniuse/ class=archive-item-link>hugo-fixit/shortcode-caniuse</a>\n<span class=archive-item-date title='2024-06-28 06:56:32'>06-28</span></article><article class=archive-item><a href=/projects/hugo-fixit/component-projects/ class=archive-item-link>hugo-fixit/component-projects</a>\n<span class=archive-item-date title='2024-04-09 21:38:42'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/hugo-fixit/shortcode-mmt-netease/ class=archive-item-link>hugo-fixit/shortcode-mmt-netease</a>\n<span class=archive-item-date title='2023-02-28 09:12:29'>02-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/theme-component/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/theme-component/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>theme-component - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/theme-component/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:30 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/theme-component/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A Christmas Easter Egg by JavaScript.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</link><pubDate>Wed, 24 Dec 2025 03:31:47 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;🎄 Santa Hat | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个 JavaScript 实现的圣诞节小彩蛋。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;🎅 自动在圣诞节期间（12 月 20 日至 26 日）为网站 Logo 添加圣诞帽装饰&lt;/li&gt;\n&lt;li&gt;🎯 自动检测当前日期，无需手动开关&lt;/li&gt;\n&lt;li&gt;💫 轻量级实现，不影响网站性能&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 或更高版本。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方式与 &lt;a href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同，有多种安装方式，任选一种即可，这里介绍两种主流方式。&lt;/p&gt;</description></item><item><title>A Hugo theme component with asciinema-embed shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</link><pubDate>Wed, 08 Jan 2025 09:20:48 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;shortcode-asciinema | FixIt&lt;/h1&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个带有 &lt;code&gt;asciinema-embed&lt;/code&gt; shortcode 的 Hugo 主题组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题#CLI | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;适用于所有 Hugo 主题。&lt;/p&gt;</description></item><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>🐟 A canvas implemented animation effect of small fish swimming.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</link><pubDate>Tue, 05 Nov 2024 08:23:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fly-fish\" data-decreased&gt;&lt;span&gt;Fly Fish&lt;/span&gt;\n &lt;a href=\"#fly-fish\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;👉 简体中文说明 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English README&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;一个 canvas 实现的小鱼游动动画效果。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Hugo theme component for ATOM feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</link><pubDate>Thu, 22 Aug 2024 03:29:22 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased&gt;&lt;span&gt;Hugo ATOM Feed&lt;/span&gt;\n &lt;a href=\"#hugo-atom-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 ATOM feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 ATOM feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Hugo theme component for JSON feed custom Output Format.</title><link>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</link><pubDate>Thu, 22 Aug 2024 03:28:23 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased&gt;&lt;span&gt;Hugo JSON Feed&lt;/span&gt;\n &lt;a href=\"#hugo-json-feed\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;中文 | &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;Hugo 主题组件，用于自定义 JSON feed 输出格式。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;该组件为您的站点启用 JSON feeds。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"演示\"&gt;&lt;span&gt;演示&lt;/span&gt;\n &lt;a href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;主页 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文章 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;列表 Feed&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装组件\"&gt;&lt;span&gt;安装组件&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与&lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;相同。有几种安装方式，选择一种，例如通过 Hugo Modules 安装：&lt;/p&gt;</description></item><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with reward-log or sponsor-log shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</link><pubDate>Sun, 21 Jul 2024 14:02:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased&gt;&lt;span&gt;shortcode-rewards&lt;/span&gt;\n &lt;a href=\"#shortcode-rewards\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;A Hugo theme component with &lt;code&gt;reward-log&lt;/code&gt; or &lt;code&gt;sponsor-log&lt;/code&gt; shortcode.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt Docs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Blog&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Developed based on the FixIt Timeline plugin.&lt;/p&gt;</description></item><item><title>🔖 Embed bookmark of FixIt Docs.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</link><pubDate>Sun, 14 Jul 2024 07:39:56 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased&gt;&lt;span&gt;fixit-docs-bookmark&lt;/span&gt;\n &lt;a href=\"#fixit-docs-bookmark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;🔖 Embed bookmark of FixIt Docs.&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;FixIt v0.4.0 or later.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item><item><title>A Hugo theme component with caniuse shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</link><pubDate>Fri, 28 Jun 2024 06:56:32 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased&gt;&lt;span&gt;Hugo shortcode for CanIUse&lt;/span&gt;\n &lt;a href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Hugo 中使用 &lt;code&gt;shortcode&lt;/code&gt; 方式内嵌 &lt;a href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CanIUse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 到你的文章中。&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"&gt;&lt;/p&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"依赖\"&gt;&lt;span&gt;依赖&lt;/span&gt;\n &lt;a href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;FixIt 主题 &lt;code&gt;v0.4.0&lt;/code&gt; 及以上版本。&lt;/p&gt;</description></item><item><title>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.</title><link>https://lruihao.cn/projects/hugo-fixit/component-projects/</link><pubDate>Tue, 09 Apr 2024 21:38:42 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/component-projects/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;GitHub Projects Embed | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"&gt;deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"&gt;しろうと&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;生态系统 | FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao 的开源项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"特性\"&gt;&lt;span&gt;特性&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;支持 GitHub 项目卡片展示（&lt;code&gt;layout&lt;/code&gt; 或者 &lt;code&gt;shortcodes&lt;/code&gt;）&lt;/li&gt;\n&lt;li&gt;支持根据 README 自动生成博客文章（&lt;code&gt;content adapter&lt;/code&gt;）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"要求\"&gt;&lt;span&gt;要求&lt;/span&gt;\n &lt;a href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 或更高版本&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;安装方法与 &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 相同。有几种安装方法，请选择一种。&lt;/p&gt;</description></item><item><title>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.</title><link>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</link><pubDate>Tue, 28 Feb 2023 09:12:29 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased&gt;&lt;span&gt;shortcode-mmt-netease&lt;/span&gt;\n &lt;a href=\"#shortcode-mmt-netease\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"&gt;&lt;/p&gt;\n&lt;p&gt;一个含有网易云随机评论 shortcode 的 Hugo 主题组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://lruihao.cn/guestbook/&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/theme-component/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/theme-component/</title><link rel=canonical href=https://lruihao.cn/tags/theme-component/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/theme-component/\"></head></html>"
  },
  {
    "path": "tags/thinkphp/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ThinkPHP - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"宅音乐播放器\",\"date_published\":\"2019-03-19T23:32:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/player/\",\"url\":\"https://lruihao.cn/posts/player/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"PHP\",\"ThinkPHP\",\"Layui\",\"MySQL\"],\"image\":\"/posts/player/images/index.png\",\"summary\":\" 宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\n原项目 由 IT 技术宅 开源，使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库，也是相当于备份源码。\\n注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~\\u003cbr\\u003e\\n\\u003ca href=\\\"https://github.com/lzx8589561/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e原项目\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 由 \\u003ca href=\\\"https://www.ilt.me\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIT 技术宅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 开源，使用 thinkPHP 开发后台。 \\u003ca href=\\\"https://github.com/Lruihao/zhai-music\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efork 地址\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 是我个人学习模仿的库，也是相当于备份源码。\\u003cbr\\u003e\\n\\u003cem\\u003e注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。\\u003c/em\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/thinkphp/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ThinkPHP - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ThinkPHP\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-19T23:32:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/thinkphp/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ThinkPHP\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ThinkPHP\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/thinkphp/ title=\"ThinkPHP | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/thinkphp/index.xml title=\"ThinkPHP | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/thinkphp/feed.json title=\"ThinkPHP | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/thinkphp/feed.json title=\"ThinkPHP | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/thinkphp/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>ThinkPHP</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ThinkPHP <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/player/ class=archive-item-link>宅音乐播放器</a>\n<span class=archive-item-date title='2019-03-19 23:32:56'>03-19</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/thinkphp/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/thinkphp/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ThinkPHP - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/thinkphp/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/thinkphp/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>宅音乐播放器</title><link>https://lruihao.cn/posts/player/</link><pubDate>Tue, 19 Mar 2019 23:32:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/player/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/php/\">PHP</category><description>&lt;blockquote&gt;\n&lt;p&gt;宅音乐播放器，HTML5 网页播放器，集成后台管理及 API 调用，目前正在开发中，敬请关注~&lt;br&gt;\n&lt;a href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;原项目&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 由 &lt;a href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;IT 技术宅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 开源，使用 thinkPHP 开发后台。 &lt;a href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fork 地址&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 是我个人学习模仿的库，也是相当于备份源码。&lt;br&gt;\n&lt;em&gt;注：插件修改于明月浩空免费版，仅用于学习交流，无商业价值，如发现商业传播，将禁止软件的免费使用。&lt;/em&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/thinkphp/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/thinkphp/</title><link rel=canonical href=https://lruihao.cn/tags/thinkphp/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/thinkphp/\"></head></html>"
  },
  {
    "path": "tags/translatejs/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"translatejs - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"🌐 A component for site automatic translation.\",\"date_published\":\"2024-12-02T07:29:57Z\",\"date_modified\":\"2026-05-06T03:02:30Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"hugo\",\"hugo-fixit\",\"i18n\",\"theme-component\",\"translatejs\"],\"summary\":\" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\n多语言 Hugo 站点：fixit.lruihao.cn 单语言 Hugo 站点：lruihao.cn 在网站右上角切换配置的翻译语言，或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如：?lang=korean。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable-file MD033 MD041 --\\u003e\\n\\u003ch1 align=\\\"center\\\"\\u003eAuto Translate | FixIt\\u003c/h1\\u003e\\n\\u003cp\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\\\"auto-translate\\\" height=\\\"293\\\" width=\\\"797\\\"\\u003e\\u003c/p\\u003e\\n\\u003cdiv align=\\\"center\\\" class=\\\"ignore\\\"\\u003e\\n  \\u003cp\\u003e一个基于 \\u003ca href=\\\"https://github.com/xnx3/translate\\\"\\u003etranslate.js\\u003c/a\\u003e 实现网站自动翻译的组件。\\u003c/p\\u003e\\n  简体中文 |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\\\"\\u003e繁體中文\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\\\"\\u003eEnglish\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\\\"\\u003eFrançais\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\\\"\\u003eРусский язык\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\\\"\\u003eEspañol\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\\\"\\u003eहिन्दी\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\\\"\\u003eDeutsch\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\\\"\\u003e한국어\\u003c/a\\u003e |\\n  \\u003ca href=\\\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\\\"\\u003e日本語\\u003c/a\\u003e\\n\\u003c/div\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e多语言 Hugo 站点：\\u003ca href=\\\"https://fixit.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e单语言 Hugo 站点：\\u003ca href=\\\"https://lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e在网站右上角切换配置的翻译语言，或者在 URL 中添加 \\u003ccode\\u003e?lang=\\u003c/code\\u003e 参数指定任意\\u003ca href=\\\"https://api.translate.zvo.cn/language.json\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e支持的翻译语言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。例如：\\u003ccode\\u003e?lang=korean\\u003c/code\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/translatejs/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>translatejs - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"translatejs\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-12-02T07:29:57+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:30+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/translatejs/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"translatejs\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"translatejs\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/translatejs/ title=\"translatejs | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/translatejs/index.xml title=\"translatejs | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/translatejs/feed.json title=\"translatejs | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/translatejs/feed.json title=\"translatejs | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/translatejs/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Translatejs</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>translatejs <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2026-05-06 03:02:30'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-translate/ class=archive-item-link>hugo-fixit/cmpt-translate</a>\n<span class=archive-item-date title='2024-12-02 07:29:57'>12-02</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/translatejs/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/translatejs/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>translatejs - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/translatejs/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:30 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/translatejs/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>🌐 A component for site automatic translation.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</link><pubDate>Mon, 02 Dec 2024 07:29:57 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-translate/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;!-- markdownlint-disable-file MD033 MD041 --&gt;\n&lt;h1 align=\"center\"&gt;Auto Translate | FixIt&lt;/h1&gt;\n&lt;p&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"&gt;&lt;/p&gt;\n&lt;div align=\"center\" class=\"ignore\"&gt;\n &lt;p&gt;一个基于 &lt;a href=\"https://github.com/xnx3/translate\"&gt;translate.js&lt;/a&gt; 实现网站自动翻译的组件。&lt;/p&gt;\n 简体中文 |\n &lt;a href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"&gt;繁體中文&lt;/a&gt; |\n &lt;a href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"&gt;English&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"&gt;Français&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"&gt;Русский язык&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"&gt;Español&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"&gt;हिन्दी&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"&gt;Deutsch&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"&gt;한국어&lt;/a&gt; |\n &lt;a href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"&gt;日本語&lt;/a&gt;\n&lt;/div&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;无论原站点是多语言还是单语言，都可以通过此组件额外增加自动翻译功能。&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;多语言 Hugo 站点：&lt;a href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;单语言 Hugo 站点：&lt;a href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;在网站右上角切换配置的翻译语言，或者在 URL 中添加 &lt;code&gt;?lang=&lt;/code&gt; 参数指定任意&lt;a href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;支持的翻译语言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。例如：&lt;code&gt;?lang=korean&lt;/code&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/translatejs/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/translatejs/</title><link rel=canonical href=https://lruihao.cn/tags/translatejs/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/translatejs/\"></head></html>"
  },
  {
    "path": "tags/turtle/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"turtle - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 实训总结Ⅰ\",\"date_published\":\"2019-06-18T18:41:00&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/pysx1/\",\"url\":\"https://lruihao.cn/posts/pysx1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"turtle\"],\"summary\":\" 以前和前一段时间自己也学习了一下 python，也写了几个小爬虫； 这次正好又课程安排了为期两周的综合实训，主要是“用 python 做量化交易” 进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\\n这次正好又课程安排了为期两周的综合实训，主要是“\\u003cstrong\\u003e用 python 做量化交易\\u003c/strong\\u003e”\\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/turtle/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>turtle - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"turtle\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-06-18T18:41:00+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/turtle/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"turtle\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"turtle\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/turtle/ title=\"turtle | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/turtle/index.xml title=\"turtle | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/turtle/feed.json title=\"turtle | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/turtle/feed.json title=\"turtle | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/turtle/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Turtle</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>turtle <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/pysx1/ class=archive-item-link>Python 实训总结Ⅰ</a>\n<span class=archive-item-date title='2019-06-18 18:41:00'>06-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/turtle/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/turtle/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>turtle - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/turtle/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/turtle/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 实训总结Ⅰ</title><link>https://lruihao.cn/posts/pysx1/</link><pubDate>Tue, 18 Jun 2019 18:41:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/pysx1/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;以前和前一段时间自己也学习了一下 python，也写了几个小爬虫；\n这次正好又课程安排了为期两周的综合实训，主要是“&lt;strong&gt;用 python 做量化交易&lt;/strong&gt;”\n进行了两天，讲的都是一些基本的东西，以前也接触过，所以很容易理解。还讲了一些软件，pycharm，anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/turtle/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/turtle/</title><link rel=canonical href=https://lruihao.cn/tags/turtle/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/turtle/\"></head></html>"
  },
  {
    "path": "tags/typescript/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"TypeScript - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/typescript/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>TypeScript - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"TypeScript\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-01-17T14:57:48+08:00\"><meta itemprop=dateModified content=\"2024-01-18T12:59:43+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/typescript/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"TypeScript\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"TypeScript\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/typescript/ title=\"TypeScript | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/typescript/index.xml title=\"TypeScript | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/typescript/feed.json title=\"TypeScript | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/typescript/feed.json title=\"TypeScript | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/typescript/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>TypeScript</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>TypeScript <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/typescript/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/typescript/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>TypeScript - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/typescript/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 18 Jan 2024 12:59:43 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/typescript/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/typescript/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/typescript/</title><link rel=canonical href=https://lruihao.cn/tags/typescript/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/typescript/\"></head></html>"
  },
  {
    "path": "tags/ubuntu/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"ubuntu - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HustOJ 基础搭建教程\",\"date_published\":\"2019-05-17T23:08:04&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hustoj/\",\"url\":\"https://lruihao.cn/posts/hustoj/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"hustoj\",\"ACM\",\"ubuntu\",\"linux\"],\"summary\":\" 目前 HustOj 在 GitHUb 地址是：https://github.com/zhblue/hustoj\\n安装时注意 ubuntu 版本，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复ubuntu16.04获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e目前 HustOj 在 GitHUb 地址是：\\u003ca href=\\\"https://github.com/zhblue/hustoj\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://github.com/zhblue/hustoj\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e安装时注意 ubuntu 版本\\u003c/strong\\u003e，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复\\u003ccode\\u003eubuntu16.04\\u003c/code\\u003e获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。\\u003cbr\\u003e\\n更多说明及 ACM/NOIP 题库下载见官网博客 \\u003ca href=\\\"http://www.hustoj.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e代码的那些事 | 程序员回忆录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/ubuntu/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>ubuntu - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"ubuntu\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T23:08:04+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/ubuntu/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"ubuntu\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"ubuntu\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/ubuntu/ title=\"ubuntu | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/ubuntu/index.xml title=\"ubuntu | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/ubuntu/feed.json title=\"ubuntu | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/ubuntu/feed.json title=\"ubuntu | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/ubuntu/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Ubuntu</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>ubuntu <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hustoj/ class=archive-item-link>HustOJ 基础搭建教程</a>\n<span class=archive-item-date title='2019-05-17 23:08:04'>05-17</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/ubuntu/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/ubuntu/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>ubuntu - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/ubuntu/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/ubuntu/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HustOJ 基础搭建教程</title><link>https://lruihao.cn/posts/hustoj/</link><pubDate>Fri, 17 May 2019 23:08:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hustoj/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;目前 HustOj 在 GitHUb 地址是：&lt;a href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://github.com/zhblue/hustoj&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;strong&gt;安装时注意 ubuntu 版本&lt;/strong&gt;，没条件的可以在自己 ubuntu 上尝试，或者虚拟机上（关注公众号回复&lt;code&gt;ubuntu16.04&lt;/code&gt;获取 iso 镜像文件），也可以在云实验室的云服务器上做做实验。&lt;br&gt;\n更多说明及 ACM/NOIP 题库下载见官网博客 &lt;a href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;代码的那些事 | 程序员回忆录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>ubuntu + windows 双系统默认启动项设置</title><link>https://lruihao.cn/posts/windefault/</link><pubDate>Thu, 21 Mar 2019 12:48:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/windefault/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>win10,ubuntu 双系统时间不一致</title><link>https://lruihao.cn/posts/ubuntutime/</link><pubDate>Fri, 15 Mar 2019 14:28:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ubuntutime/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/ubuntu/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/ubuntu/</title><link rel=canonical href=https://lruihao.cn/tags/ubuntu/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/ubuntu/\"></head></html>"
  },
  {
    "path": "tags/urlconnection/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"URLConnection - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 实现一个单线程的资源下载器\",\"date_published\":\"2019-05-08T20:55:02&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/singlethreaddown/\",\"url\":\"https://lruihao.cn/posts/singlethreaddown/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"GUI\",\"URLConnection\",\"HTTP\",\"Java\"],\"image\":\"https://lruihao.cn/posts/singlethreaddown/images/1.png\",\"summary\":\" 实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"java 通过 URL 和 URLConnection 访问网页资源\",\"date_published\":\"2019-05-06T17:41:35&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-urlreader/\",\"url\":\"https://lruihao.cn/posts/java-urlreader/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"URLConnection\",\"Java\"],\"summary\":\" 该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/urlconnection/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>URLConnection - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"URLConnection\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-08T20:55:02+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/urlconnection/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"URLConnection\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"URLConnection\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/urlconnection/ title=\"URLConnection | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/urlconnection/index.xml title=\"URLConnection | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/urlconnection/feed.json title=\"URLConnection | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/urlconnection/feed.json title=\"URLConnection | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/urlconnection/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>URLConnection</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>URLConnection <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/singlethreaddown/ class=archive-item-link>Java 实现一个单线程的资源下载器</a>\n<span class=archive-item-date title='2019-05-08 20:55:02'>05-08</span></article><article class=archive-item><a href=/posts/java-urlreader/ class=archive-item-link>Java 通过 URL 和 URLConnection 访问网页资源</a>\n<span class=archive-item-date title='2019-05-06 17:41:35'>05-06</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/urlconnection/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/urlconnection/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>URLConnection - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/urlconnection/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/urlconnection/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 实现一个单线程的资源下载器</title><link>https://lruihao.cn/posts/singlethreaddown/</link><pubDate>Wed, 08 May 2019 20:55:02 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/singlethreaddown/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;实现一个简单的基于单线程的资源下载器，如图所示，用户可以任意指定下载资源的链接地址，系统根据该地址判断资源是否存在，如果存在，则将该资源下载到本地。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>java 通过 URL 和 URLConnection 访问网页资源</title><link>https://lruihao.cn/posts/java-urlreader/</link><pubDate>Mon, 06 May 2019 17:41:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-urlreader/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;该例中首先生成一个 URL 对象 lrh，指向 RUI 豪小栈，然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流，这是一个字节流，在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流，并通过这个字符流对象读取该 URL 的 html 内容，进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作，前提是先通过 connect() 方法建立连接，然后再去获取响应头信息或响应内容。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/urlconnection/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/urlconnection/</title><link rel=canonical href=https://lruihao.cn/tags/urlconnection/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/urlconnection/\"></head></html>"
  },
  {
    "path": "tags/v-height-adaptive/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"v-height-adaptive - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/v-height-adaptive/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>v-height-adaptive - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"v-height-adaptive\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/v-height-adaptive/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"v-height-adaptive\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"v-height-adaptive\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/v-height-adaptive/ title=\"v-height-adaptive | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/v-height-adaptive/index.xml title=\"v-height-adaptive | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/v-height-adaptive/feed.json title=\"v-height-adaptive | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/v-height-adaptive/feed.json title=\"v-height-adaptive | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/v-height-adaptive/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>V-Height-Adaptive</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>v-height-adaptive <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/v-height-adaptive/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/v-height-adaptive/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>v-height-adaptive - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/v-height-adaptive/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/v-height-adaptive/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/v-height-adaptive/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/v-height-adaptive/</title><link rel=canonical href=https://lruihao.cn/tags/v-height-adaptive/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/v-height-adaptive/\"></head></html>"
  },
  {
    "path": "tags/v-sticky-footer/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"v-sticky-footer - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/v-sticky-footer/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>v-sticky-footer - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"v-sticky-footer\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/v-sticky-footer/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"v-sticky-footer\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"v-sticky-footer\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/v-sticky-footer/ title=\"v-sticky-footer | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/v-sticky-footer/index.xml title=\"v-sticky-footer | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/v-sticky-footer/feed.json title=\"v-sticky-footer | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/v-sticky-footer/feed.json title=\"v-sticky-footer | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/v-sticky-footer/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>V-Sticky-Footer</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>v-sticky-footer <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/v-sticky-footer/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/v-sticky-footer/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>v-sticky-footer - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/v-sticky-footer/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/v-sticky-footer/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/v-sticky-footer/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/v-sticky-footer/</title><link rel=canonical href=https://lruihao.cn/tags/v-sticky-footer/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/v-sticky-footer/\"></head></html>"
  },
  {
    "path": "tags/v-sticky-h-scroll/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"v-sticky-h-scroll - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/v-sticky-h-scroll/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>v-sticky-h-scroll - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"v-sticky-h-scroll\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/v-sticky-h-scroll/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"v-sticky-h-scroll\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"v-sticky-h-scroll\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/v-sticky-h-scroll/ title=\"v-sticky-h-scroll | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/v-sticky-h-scroll/index.xml title=\"v-sticky-h-scroll | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/v-sticky-h-scroll/feed.json title=\"v-sticky-h-scroll | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/v-sticky-h-scroll/feed.json title=\"v-sticky-h-scroll | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/v-sticky-h-scroll/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>V-Sticky-H-Scroll</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>v-sticky-h-scroll <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/v-sticky-h-scroll/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/v-sticky-h-scroll/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>v-sticky-h-scroll - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/v-sticky-h-scroll/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/v-sticky-h-scroll/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/v-sticky-h-scroll/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/v-sticky-h-scroll/</title><link rel=canonical href=https://lruihao.cn/tags/v-sticky-h-scroll/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/v-sticky-h-scroll/\"></head></html>"
  },
  {
    "path": "tags/v-sticky-header/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"v-sticky-header - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/v-sticky-header/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>v-sticky-header - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"v-sticky-header\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/v-sticky-header/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"v-sticky-header\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"v-sticky-header\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/v-sticky-header/ title=\"v-sticky-header | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/v-sticky-header/index.xml title=\"v-sticky-header | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/v-sticky-header/feed.json title=\"v-sticky-header | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/v-sticky-header/feed.json title=\"v-sticky-header | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/v-sticky-header/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>V-Sticky-Header</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>v-sticky-header <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/v-sticky-header/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/v-sticky-header/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>v-sticky-header - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/v-sticky-header/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/v-sticky-header/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/v-sticky-header/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/v-sticky-header/</title><link rel=canonical href=https://lruihao.cn/tags/v-sticky-header/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/v-sticky-header/\"></head></html>"
  },
  {
    "path": "tags/vconsole/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vconsole - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Mobile devtools component powered by vConsole and eruda.\",\"date_published\":\"2024-08-07T05:49:13Z\",\"date_modified\":\"2025-07-04T02:38:28Z\",\"id\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"url\":\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\",\"authors\":[{\"name\":\"hugo-fixit\",\"url\":\"https://github.com/hugo-fixit\",\"avatar\":\"https://avatars.githubusercontent.com/u/110414864?v=4\"}],\"tags\":[\"eruda\",\"hugo\",\"theme-component\",\"vconsole\"],\"summary\":\"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"cmpt-mdevtools\\\" data-decreased\\u003e\\u003cspan\\u003ecmpt-mdevtools\\u003c/span\\u003e\\n  \\u003ca href=\\\"#cmpt-mdevtools\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eMobile devtools component powered by vConsole and eruda.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"requirements\\\"\\u003e\\u003cspan\\u003eRequirements\\u003c/span\\u003e\\n  \\u003ca href=\\\"#requirements\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/hugo-fixit/FixIt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFixIt\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e v0.4.0 or later.\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/liriliri/eruda\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeruda\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://github.com/Tencent/vConsole\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evConsole\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install-component\\\"\\u003e\\u003cspan\\u003eInstall Component\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install-component\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe installation method is the same as \\u003ca href=\\\"https://fixit.lruihao.cn/documentation/installation/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003einstalling a theme\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vconsole/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vconsole - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vconsole\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-08-07T05:49:13+00:00\"><meta itemprop=dateModified content=\"2025-07-04T02:38:28+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vconsole/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vconsole\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vconsole\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vconsole/ title=\"vconsole | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vconsole/index.xml title=\"vconsole | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vconsole/feed.json title=\"vconsole | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vconsole/feed.json title=\"vconsole | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vconsole/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vconsole</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vconsole <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/hugo-fixit/cmpt-mdevtools/ class=archive-item-link>hugo-fixit/cmpt-mdevtools</a>\n<span class=archive-item-date title='2024-08-07 05:49:13'>08-07</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vconsole/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vconsole/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vconsole - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vconsole/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 04 Jul 2025 02:38:28 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vconsole/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Mobile devtools component powered by vConsole and eruda.</title><link>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</link><pubDate>Wed, 07 Aug 2024 05:49:13 +0000</pubDate><guid>https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased&gt;&lt;span&gt;cmpt-mdevtools&lt;/span&gt;\n &lt;a href=\"#cmpt-mdevtools\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Mobile devtools component powered by vConsole and eruda.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"requirements\"&gt;&lt;span&gt;Requirements&lt;/span&gt;\n &lt;a href=\"#requirements\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;FixIt&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; v0.4.0 or later.&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eruda&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vConsole&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"install-component\"&gt;&lt;span&gt;Install Component&lt;/span&gt;\n &lt;a href=\"#install-component\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The installation method is the same as &lt;a href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;installing a theme&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;. There are several ways to install, choose one, for example, install through Hugo Modules:&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vconsole/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vconsole/</title><link rel=canonical href=https://lruihao.cn/tags/vconsole/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vconsole/\"></head></html>"
  },
  {
    "path": "tags/vercel/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vercel - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"API proxies powered by Vercel.\",\"date_published\":\"2025-04-09T02:13:22Z\",\"date_modified\":\"2026-03-10T07:05:02Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-proxy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel API Proxy API proxies powered by Vercel.\\n[toc]\\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-api-proxy\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-api-proxy\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eAPI proxies powered by Vercel.\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e[toc]\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"hosts\\\"\\u003e\\u003cspan\\u003eHosts\\u003c/span\\u003e\\n  \\u003ca href=\\\"#hosts\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://api.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://api.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e\\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://cell-api.vercel.app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"api-list\\\"\\u003e\\u003cspan\\u003eAPI List\\u003c/span\\u003e\\n  \\u003ca href=\\\"#api-list\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eGo to the \\u003ca href=\\\"https://cell-api.vercel.app\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVercel API Proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e and select the API you want to use.\\u003c/p\\u003e\"},{\"title\":\"利用 Vercel 反代 Gravatar 实现镜像加速\",\"date_published\":\"2024-04-17T12:51:35&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vercel\",\"Gravatar\"],\"summary\":\"在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\n\",\"content_html\":\"\\u003cp\\u003e在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\\u003c/p\\u003e\"},{\"title\":\"Gravatar Proxy powered by Vercel.\",\"date_published\":\"2024-04-17T01:37:06Z\",\"date_modified\":\"2025-08-18T17:42:18Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"url\":\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"gravatar\",\"vercel\"],\"summary\":\"Vercel Gravatar 注意\\nSuperseded by Lruihao/vercel-proxy.\\nGravatar Proxy powered by Vercel.\\nGo to test Gravatar:\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vercel-gravatar\\\" data-decreased\\u003e\\u003cspan\\u003eVercel Gravatar\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vercel-gravatar\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"alert alert-note\\\"\\u003e\\u003cp class=\\\"alert-title\\\"\\u003e\\u003csvg class=\\\"icon\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\" width=\\\"16\\\" height=\\\"16\\\"\\u003e\\u003cpath d=\\\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\\\"/\\u003e\\u003c/svg\\u003e注意\\u003c/p\\u003e\\u003cp\\u003eSuperseded by \\u003ca href=\\\"https://github.com/Lruihao/vercel-proxy\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao/vercel-proxy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\u003c/div\\u003e\\u003cp\\u003eGravatar Proxy powered by Vercel.\\u003c/p\\u003e\\n\\u003cp\\u003eGo to test Gravatar:\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vercel/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vercel - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vercel\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-04-09T02:13:22+00:00\"><meta itemprop=dateModified content=\"2026-03-10T07:05:02+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vercel/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vercel\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vercel\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vercel/ title=\"vercel | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vercel/index.xml title=\"vercel | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vercel/feed.json title=\"vercel | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vercel/feed.json title=\"vercel | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vercel/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vercel</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vercel <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/vercel-proxy/ class=archive-item-link>Lruihao/vercel-proxy</a>\n<span class=archive-item-date title='2025-04-09 02:13:22'>04-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/projects/vercel-gravatar/ class=archive-item-link>利用 Vercel 反代 Gravatar 实现镜像加速</a>\n<span class=archive-item-date title='2024-04-17 12:51:35'>04-17</span></article><article class=archive-item><a href=/projects/lruihao/vercel-gravatar/ class=archive-item-link>Lruihao/vercel-gravatar</a>\n<span class=archive-item-date title='2024-04-17 01:37:06'>04-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vercel/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vercel/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vercel - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vercel/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 10 Mar 2026 07:05:02 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vercel/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>API proxies powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-proxy/</link><pubDate>Wed, 09 Apr 2025 02:13:22 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-proxy/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#vercel-api-proxy\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;API proxies powered by Vercel.&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;[toc]&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"hosts\"&gt;&lt;span&gt;Hosts&lt;/span&gt;\n &lt;a href=\"#hosts\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;&lt;a href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://api.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;&lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://cell-api.vercel.app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"api-list\"&gt;&lt;span&gt;API List&lt;/span&gt;\n &lt;a href=\"#api-list\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Go to the &lt;a href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vercel API Proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; and select the API you want to use.&lt;/p&gt;</description></item><item><title>利用 Vercel 反代 Gravatar 实现镜像加速</title><link>https://lruihao.cn/projects/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 12:51:35 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;p&gt;在开发和部署网站时，经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题，我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。&lt;/p&gt;</description></item><item><title>Gravatar Proxy powered by Vercel.</title><link>https://lruihao.cn/projects/lruihao/vercel-gravatar/</link><pubDate>Wed, 17 Apr 2024 01:37:06 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vercel-gravatar/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased&gt;&lt;span&gt;Vercel Gravatar&lt;/span&gt;\n &lt;a href=\"#vercel-gravatar\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"alert alert-note\"&gt;&lt;p class=\"alert-title\"&gt;&lt;svg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"&gt;&lt;path d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/&gt;&lt;/svg&gt;注意&lt;/p&gt;&lt;p&gt;Superseded by &lt;a href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao/vercel-proxy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Gravatar Proxy powered by Vercel.&lt;/p&gt;\n&lt;p&gt;Go to test Gravatar:&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vercel/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vercel/</title><link rel=canonical href=https://lruihao.cn/tags/vercel/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vercel/\"></head></html>"
  },
  {
    "path": "tags/vim/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vim - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vim 速查表\",\"date_published\":\"2018-08-31T11:46:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vim/\",\"url\":\"https://lruihao.cn/posts/vim/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vim\",\"他山之石\"],\"summary\":\"Vim 速查表 - 帮你提高 N 倍效率\\n\",\"content_html\":\"\\u003cp\\u003eVim 速查表 - 帮你提高 N 倍效率\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vim/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vim - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vim\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-31T11:46:39+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vim/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vim\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vim\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vim/ title=\"vim | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vim/index.xml title=\"vim | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vim/feed.json title=\"vim | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vim/feed.json title=\"vim | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vim/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vim</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vim <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/vim/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Vim 速查表</a>\n<span class=archive-item-date title='2018-08-31 11:46:39'>08-31</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vim/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vim/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vim - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vim/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vim/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vim 速查表</title><link>https://lruihao.cn/posts/vim/</link><pubDate>Fri, 31 Aug 2018 11:46:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vim/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Vim 速查表 - 帮你提高 N 倍效率&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vim/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vim/</title><link rel=canonical href=https://lruihao.cn/tags/vim/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vim/\"></head></html>"
  },
  {
    "path": "tags/vue/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vue - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\",\"date_published\":\"2022-10-10T02:50:53Z\",\"date_modified\":\"2026-05-06T03:02:16Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"editor\",\"minder\",\"vue\"],\"summary\":\"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-minder-editor\\\" data-decreased\\u003e\\u003cspan\\u003eVue Minder Editor\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-minder-editor\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/fex-team/kityminder-core\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ekityminder-core\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 实现的 Vue2 脑图编辑器组件。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"install\\\"\\u003e\\u003cspan\\u003eInstall\\u003c/span\\u003e\\n  \\u003ca href=\\\"#install\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003enpm install vue-minder-editor-extended --save\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e注册组件：\\u003c/p\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-02-28T03:44:09Z\",\"date_modified\":\"2025-01-16T02:53:15Z\",\"id\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"url\":\"https://lruihao.cn/projects/lruihao/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vue\"],\"summary\":\"Preparation 去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"preparation\\\" data-decreased\\u003e\\u003cspan\\u003ePreparation\\u003c/span\\u003e\\n  \\u003ca href=\\\"#preparation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：\\u003c/p\\u003e\\n\\u003ctable\\u003e\\n  \\u003cthead\\u003e\\n      \\u003ctr\\u003e\\n          \\u003cth\\u003ename\\u003c/th\\u003e\\n          \\u003cth\\u003etype\\u003c/th\\u003e\\n          \\u003cth\\u003edescription\\u003c/th\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/thead\\u003e\\n  \\u003ctbody\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay\\u003c/td\\u003e\\n          \\u003ctd\\u003eNumber\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费金额\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_description\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费描述\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_type\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e消费类型\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n      \\u003ctr\\u003e\\n          \\u003ctd\\u003epay_user\\u003c/td\\u003e\\n          \\u003ctd\\u003eString\\u003c/td\\u003e\\n          \\u003ctd\\u003e付款人\\u003c/td\\u003e\\n      \\u003c/tr\\u003e\\n  \\u003c/tbody\\u003e\\n\\u003c/table\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"init\\\" data-decreased\\u003e\\u003cspan\\u003eInit\\u003c/span\\u003e\\n  \\u003ca href=\\\"#init\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eset for yourself.\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vue/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vue - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vue\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-08-08T01:41:08+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:21+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vue/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vue\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vue\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vue/ title=\"vue | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vue/index.xml title=\"vue | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vue/feed.json title=\"vue | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vue/feed.json title=\"vue | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vue/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vue <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:21'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2026-05-06 03:02:16'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/projects/lruihao/vue-minder-editor-extended/ class=archive-item-link>Lruihao/vue-minder-editor-extended</a>\n<span class=archive-item-date title='2022-10-10 02:50:53'>10-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/lruihao/bill-note/ class=archive-item-link>Lruihao/bill-note</a>\n<span class=archive-item-date title='2021-02-28 03:44:09'>02-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vue/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vue/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vue - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vue/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:21 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vue/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item><item><title>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件</title><link>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</link><pubDate>Mon, 10 Oct 2022 02:50:53 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased&gt;&lt;span&gt;Vue Minder Editor&lt;/span&gt;\n &lt;a href=\"#vue-minder-editor\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;基于 &lt;a href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;kityminder-core&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 实现的 Vue2 脑图编辑器组件。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"install\"&gt;&lt;span&gt;Install&lt;/span&gt;\n &lt;a href=\"#install\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;npm install vue-minder-editor-extended --save&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;注册组件：&lt;/p&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/lruihao/bill-note/</link><pubDate>Sun, 28 Feb 2021 03:44:09 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/bill-note/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"preparation\" data-decreased&gt;&lt;span&gt;Preparation&lt;/span&gt;\n &lt;a href=\"#preparation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;去 leancloud 创建一个应用，再新增一个 Bill Class, 补充一下字段：&lt;/p&gt;\n&lt;table&gt;\n &lt;thead&gt;\n &lt;tr&gt;\n &lt;th&gt;name&lt;/th&gt;\n &lt;th&gt;type&lt;/th&gt;\n &lt;th&gt;description&lt;/th&gt;\n &lt;/tr&gt;\n &lt;/thead&gt;\n &lt;tbody&gt;\n &lt;tr&gt;\n &lt;td&gt;pay&lt;/td&gt;\n &lt;td&gt;Number&lt;/td&gt;\n &lt;td&gt;消费金额&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_description&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费描述&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_type&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;消费类型&lt;/td&gt;\n &lt;/tr&gt;\n &lt;tr&gt;\n &lt;td&gt;pay_user&lt;/td&gt;\n &lt;td&gt;String&lt;/td&gt;\n &lt;td&gt;付款人&lt;/td&gt;\n &lt;/tr&gt;\n &lt;/tbody&gt;\n&lt;/table&gt;\n&lt;h2 class=\"heading-element\" id=\"init\" data-decreased&gt;&lt;span&gt;Init&lt;/span&gt;\n &lt;a href=\"#init\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;set for yourself.&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vue/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vue/</title><link rel=canonical href=https://lruihao.cn/tags/vue/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vue/\"></head></html>"
  },
  {
    "path": "tags/vue-directive/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vue-directive - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vue-directive/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vue-directive - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vue-directive\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-06-14T14:03:49+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:19+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vue-directive/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vue-directive\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vue-directive\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vue-directive/ title=\"vue-directive | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vue-directive/index.xml title=\"vue-directive | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vue-directive/feed.json title=\"vue-directive | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vue-directive/feed.json title=\"vue-directive | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vue-directive/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue-Directive</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vue-directive <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vue-directive/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vue-directive/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vue-directive - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vue-directive/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:19 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vue-directive/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vue-directive/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vue-directive/</title><link rel=canonical href=https://lruihao.cn/tags/vue-directive/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vue-directive/\"></head></html>"
  },
  {
    "path": "tags/vue2/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"Vue2 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"如何实现 VSCode 编辑器窗口边界拖拽类似功能\",\"date_published\":\"2024-06-13T21:03:12&#43;08:00\",\"date_modified\":\"2024-06-17T18:08:34&#43;08:00\",\"id\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"url\":\"https://lruihao.cn/posts/aside-toggle-drag/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"CSS\",\"JavaScript\"],\"summary\":\"边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\n\",\"content_html\":\"\\u003cp\\u003e边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。\\u003c/p\\u003e\"},{\"title\":\"临时决定再写一个小工具 - 网站预览图生成器\",\"date_published\":\"2024-04-04T13:23:37&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"url\":\"https://lruihao.cn/projects/apple-devices-preview/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"image\":\"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp\",\"summary\":\"开发完 CoverView之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\n\",\"content_html\":\"\\u003cp\\u003e开发完 \\u003ca href=\\\"https://github.com/Lruihao/CoverView\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCoverView\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。\\u003c/p\\u003e\"},{\"title\":\"实现类似于 Element UI 表格的溢出文本提示功能\",\"date_published\":\"2024-02-29T16:46:00&#43;08:00\",\"date_modified\":\"2024-06-12T18:57:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"url\":\"https://lruihao.cn/posts/overflow-tooltip/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"在 Element UI 的表格组件中，当表格列的内容过长时，设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\n\",\"content_html\":\"\\u003cp\\u003e在 Element UI 的表格组件中，当表格列的内容过长时，设置 \\u003ccode\\u003eshow-overflow-tooltip\\u003c/code\\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？\\u003c/p\\u003e\"},{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"},{\"title\":\"给 el-card 添加折叠功能\",\"date_published\":\"2024-01-10T17:06:54&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-card-collapse/\",\"url\":\"https://lruihao.cn/posts/el-card-collapse/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\" 出发点 虽然 Element 也有 el-collapse 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，el-card 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition question open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-regular fa-circle-question\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e出发点\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e虽然 Element 也有 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/collapse\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-collapse\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，\\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/card\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eel-card\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"},{\"title\":\"拖拽式仪表盘的设计与开发\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"url\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"content_html\":\"关于拖拽式仪表盘的设计与开发系列文章。\"},{\"title\":\"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\",\"date_published\":\"2023-09-25T17:49:58&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\\u003c/p\\u003e\"},{\"title\":\"封装 Vue FullScreenToggler 组件\",\"date_published\":\"2023-09-17T19:44:07&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"url\":\"https://lruihao.cn/posts/vue-fullscreen-toggler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"JavaScript\"],\"summary\":\"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\\n\",\"content_html\":\"\\u003cp\\u003e基于 \\u003ca href=\\\"https://github.com/mirari/vue-fullscreen\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evue-fullscreen\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\\u003c/p\\u003e\"},{\"title\":\"在 Vue 项目中更优雅地使用 icon\",\"date_published\":\"2023-09-14T11:24:48&#43;08:00\",\"date_modified\":\"2024-06-06T23:01:28&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"url\":\"https://lruihao.cn/posts/vue-svg-icon/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"SVG\",\"Vue2\"],\"summary\":\"19 前言 在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、Font Awesome、Iconfont 等等。\\n随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"前言\\\"\\u003e\\u003cspan\\u003e19 前言\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%89%8d%e8%a8%80\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、\\u003ca href=\\\"https://fontawesome.com/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFont Awesome\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e、\\u003ca href=\\\"https://www.iconfont.cn/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eIconfont\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 等等。\\u003c/p\\u003e\\n\\u003cp\\u003e随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\\u003c/p\\u003e\"},{\"title\":\"Vue2 and element-ui related demos\",\"date_published\":\"2023-08-08T01:41:08Z\",\"date_modified\":\"2026-05-06T03:02:21Z\",\"id\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"url\":\"https://lruihao.cn/projects/lruihao/vue-el-demo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"element-ui\",\"vue\",\"vue2\"],\"summary\":\"vue-el-demo Vue and element-ui related demos.\\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"vue-el-demo\\\" data-decreased\\u003e\\u003cspan\\u003evue-el-demo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#vue-el-demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eVue and element-ui related \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003edemos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"project-setup\\\"\\u003e\\u003cspan\\u003eProject setup\\u003c/span\\u003e\\n  \\u003ca href=\\\"#project-setup\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003eyarn install\\n# Compiles and hot-reloads for development\\nyarn dev\\n# Compiles and minifies for production\\nyarn build\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003eThis project is built with \\u003ca href=\\\"https://rsbuild.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRsbuild\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e, a fast build tool powered by Rspack.\\u003c/p\\u003e\"},{\"title\":\"用魔法打败魔法 - ElBacktop Fix\",\"date_published\":\"2023-07-20T11:08:18&#43;08:00\",\"date_modified\":\"2024-01-10T17:39:54&#43;08:00\",\"id\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"url\":\"https://lruihao.cn/posts/el-backtop-fix/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\"],\"summary\":\"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\\n\",\"content_html\":\"\\u003cp\\u003e这篇文章主要是记录一下继承 \\u003ca href=\\\"https://element.eleme.cn/#/zh-CN/component/backtop\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElBacktop\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 组件并修复了一些 bug 的过程。\\u003c/p\\u003e\"},{\"title\":\"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\",\"date_published\":\"2023-06-14T14:03:49Z\",\"date_modified\":\"2026-05-06T03:02:19Z\",\"id\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"url\":\"https://lruihao.cn/projects/lruihao/el-table-sticky/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"el-table\",\"el-table-sticky\",\"element-ui\",\"v-height-adaptive\",\"v-sticky-footer\",\"v-sticky-h-scroll\",\"v-sticky-header\",\"vue\",\"vue-directive\",\"vue2\"],\"summary\":\"el-table-sticky 在线示例\\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\n背景 Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"el-table-sticky\\\" data-decreased\\u003e\\u003cspan\\u003eel-table-sticky\\u003c/span\\u003e\\n  \\u003ca href=\\\"#el-table-sticky\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/el-table-sticky/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线示例\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cblockquote\\u003e\\n\\u003cp\\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"背景\\\"\\u003e\\u003cspan\\u003e背景\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%83%8c%e6%99%af\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eElement UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。\\u003c/p\\u003e\"},{\"title\":\"使用 Node.js 自动创建 Vue 的路由\",\"date_published\":\"2023-06-14T00:11:17&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gen-router/\",\"url\":\"https://lruihao.cn/posts/gen-router/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Node.js\",\"Vue2\"],\"summary\":\"最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\n\",\"content_html\":\"\\u003cp\\u003e最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。\\u003c/p\\u003e\"},{\"title\":\"Vue2 + tailwindcss 初始化\",\"date_published\":\"2023-06-03T17:38:44&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/v2-tailwind/\",\"url\":\"https://lruihao.cn/posts/v2-tailwind/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"tailwindcss\",\"Vue2\",\"CSS\",\"eslint\"],\"summary\":\"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目：\\nvue create vue2-tailwind根据需要选择其他的功能插件，例如：Babel, Router, Vuex, CSS Pre-processors, Linter。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"新建-vue2-项目\\\"\\u003e\\u003cspan\\u003e7 新建 Vue2 项目\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通过 \\u003ccode\\u003evue-cli\\u003c/code\\u003e 创建一个叫 \\u003ccode\\u003ev2-tailwind\\u003c/code\\u003e 的项目：\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003evue create vue2-tailwind\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e根据需要选择其他的功能插件，例如：\\u003ccode\\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\\u003c/code\\u003e。\\u003c/p\\u003e\"},{\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"date_published\":\"2023-03-14T08:37:59&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue2-guid/\",\"url\":\"https://lruihao.cn/posts/vue2-guid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"他山之石\"],\"summary\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\\n此指南仅供参考，请根据自身实际情况灵活调整。\\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e注：2.0 已经有\\u003ca href=\\\"https://v2.cn.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 。如果对自己英文有信心，也可以直接阅读\\u003ca href=\\\"https://v2.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003cbr\\u003e\\n此指南仅供参考，请根据自身实际情况灵活调整。\\u003cbr\\u003e\\n转载自： \\u003ca href=\\\"https://www.zhihu.com/people/evanyou\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尤雨溪\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://zhuanlan.zhihu.com/p/23134551\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，2017-08-04 14:51\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基于 leancloud-storage 实现的无后端记账本\",\"date_published\":\"2021-03-02T21:46:40&#43;08:00\",\"date_modified\":\"2021-03-02T21:46:40&#43;08:00\",\"id\":\"https://lruihao.cn/projects/bill-note/\",\"url\":\"https://lruihao.cn/projects/bill-note/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"Vue2\",\"leancloud\"],\"summary\":\"9 起因 起因 事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\n自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (AB, AC, BC, ABC)。好麻煩啊！！！\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"起因\\\"\\u003e\\u003cspan\\u003e9 起因\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%b5%b7%e5%9b%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e起因\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！\\u003c/p\\u003e\\n\\u003cp\\u003e自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；\\u003cbr\\u003e\\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (\\u003ccode\\u003eAB, AC, BC, ABC\\u003c/code\\u003e)。好麻煩啊！！！\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/vue2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue2 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Vue2\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-13T21:03:12+08:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:21+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vue2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue2\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue2\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vue2/ title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vue2/index.xml title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vue2/feed.json title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vue2/feed.json title=\"Vue2 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vue2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue2</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Vue2 <sup>22</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2026-05-06 03:02:21'>更新于 05-06</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2026-05-06 03:02:19'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/aside-toggle-drag/ class=archive-item-link>如何实现 VSCode 编辑器窗口边界拖拽类似功能</a>\n<span class=archive-item-date title='2024-06-13 21:03:12'>06-13</span></article><article class=archive-item><a href=/projects/apple-devices-preview/ class=archive-item-link>临时决定再写一个小工具 - 网站预览图生成器</a>\n<span class=archive-item-date title='2024-04-04 13:23:37'>04-04</span></article><article class=archive-item><a href=/posts/overflow-tooltip/ class=archive-item-link>实现类似于 Element UI 表格的溢出文本提示功能</a>\n<span class=archive-item-date title='2024-02-29 16:46:00'>02-29</span></article><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article><article class=archive-item><a href=/posts/el-card-collapse/ class=archive-item-link>给 El-Card 添加折叠功能</a>\n<span class=archive-item-date title='2024-01-10 17:06:54'>01-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article><article class=archive-item><a href=/posts/draggable-dashboard/ class=archive-item-link>拖拽式仪表盘的设计与开发</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article><article class=archive-item><a href=/projects/el-table-sticky/ class=archive-item-link>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</a>\n<span class=archive-item-date title='2023-09-25 17:49:58'>09-25</span></article><article class=archive-item><a href=/posts/vue-fullscreen-toggler/ class=archive-item-link>封装 Vue FullScreenToggler 组件</a>\n<span class=archive-item-date title='2023-09-17 19:44:07'>09-17</span></article><article class=archive-item><a href=/posts/vue-svg-icon/ class=archive-item-link>在 Vue 项目中更优雅地使用 Icon</a>\n<span class=archive-item-date title='2023-09-14 11:24:48'>09-14</span></article><article class=archive-item><a href=/projects/lruihao/vue-el-demo/ class=archive-item-link>Lruihao/vue-el-demo</a>\n<span class=archive-item-date title='2023-08-08 01:41:08'>08-08</span></article><article class=archive-item><a href=/posts/el-backtop-fix/ class=archive-item-link>用魔法打败魔法 - ElBacktop Fix</a>\n<span class=archive-item-date title='2023-07-20 11:08:18'>07-20</span></article><article class=archive-item><a href=/projects/lruihao/el-table-sticky/ class=archive-item-link>Lruihao/el-table-sticky</a>\n<span class=archive-item-date title='2023-06-14 14:03:49'>06-14</span></article><article class=archive-item><a href=/posts/gen-router/ class=archive-item-link>使用 Node.js 自动创建 Vue 的路由</a>\n<span class=archive-item-date title='2023-06-14 00:11:17'>06-14</span></article><article class=archive-item><a href=/posts/v2-tailwind/ class=archive-item-link>Vue2 + Tailwindcss 初始化</a>\n<span class=archive-item-date title='2023-06-03 17:38:44'>06-03</span></article><ul class=pagination><li class=\"page-item active\"><span class=page-link><a href=/tags/vue2/>1</a></span></li><li class=page-item><span class=page-link><a href=/tags/vue2/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vue2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vue2/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>Vue2 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vue2/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:21 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vue2/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>如何实现 VSCode 编辑器窗口边界拖拽类似功能</title><link>https://lruihao.cn/posts/aside-toggle-drag/</link><pubDate>Thu, 13 Jun 2024 21:03:12 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/aside-toggle-drag/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;边界拖拽调整窗口大小功能是一个很常见的功能，比如浏览器、编辑器等很多场景都有应用，这种功能不仅提高了用户体验，也增强了应用的灵活性。&lt;/p&gt;</description></item><item><title>临时决定再写一个小工具 - 网站预览图生成器</title><link>https://lruihao.cn/projects/apple-devices-preview/</link><pubDate>Thu, 04 Apr 2024 13:23:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/apple-devices-preview/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;开发完 &lt;a href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CoverView&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;之后，在调整博客文章封面图的时候，我发现首页的多端缩略图还是只能自己 P 图诶，于是我又决定再写一个小工具，用来生成网站预览图。。&lt;/p&gt;</description></item><item><title>实现类似于 Element UI 表格的溢出文本提示功能</title><link>https://lruihao.cn/posts/overflow-tooltip/</link><pubDate>Thu, 29 Feb 2024 16:46:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/overflow-tooltip/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;在 Element UI 的表格组件中，当表格列的内容过长时，设置 &lt;code&gt;show-overflow-tooltip&lt;/code&gt; 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的，那么我们该如何实现这个功能呢？&lt;/p&gt;</description></item><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>给 el-card 添加折叠功能</title><link>https://lruihao.cn/posts/el-card-collapse/</link><pubDate>Wed, 10 Jan 2024 17:06:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-card-collapse/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;div class=\"details admonition question open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"&gt;&lt;/i&gt;出发点&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;虽然 Element 也有 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-collapse&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件，但是当我只想写一个折叠面板时，它的写法就略显繁琐了，&lt;a href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;el-card&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件的样式也更符合我的需求，所以我就想着给 el-card 添加折叠功能。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item><item><title>拖拽式仪表盘的设计与开发</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/draggable-dashboard/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>关于拖拽式仪表盘的设计与开发系列文章。</description></item><item><title>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？</title><link>https://lruihao.cn/projects/el-table-sticky/</link><pubDate>Mon, 25 Sep 2023 17:49:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。&lt;/p&gt;</description></item><item><title>封装 Vue FullScreenToggler 组件</title><link>https://lruihao.cn/posts/vue-fullscreen-toggler/</link><pubDate>Sun, 17 Sep 2023 19:44:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-fullscreen-toggler/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;基于 &lt;a href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vue-fullscreen&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 封装一个的 Vue 全屏/退出全屏切换组件。&lt;/p&gt;</description></item><item><title>在 Vue 项目中更优雅地使用 icon</title><link>https://lruihao.cn/posts/vue-svg-icon/</link><pubDate>Thu, 14 Sep 2023 11:24:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-svg-icon/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"前言\"&gt;&lt;span&gt;28 前言&lt;/span&gt;\n &lt;a href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在 Web 开发中，我们经常会用到 icon，icon 的使用经历了从图片到字体，再到 svg 的演变过程，也产生出相应的 icon 库，如雪碧图、&lt;a href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Font Awesome&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;、&lt;a href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Iconfont&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 等等。&lt;/p&gt;\n&lt;p&gt;随着前端的发展，icon 使用方案落在了 svg 上，svg 有着矢量图的优势，可以无限放大而不失真，而且 svg 本身就是一种 XML 文件，可以直接在 HTML 中使用，也可以通过 CSS 进行样式控制，但是在 Vue 项目中使用 svg 时，我们会遇到一些问题，本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。&lt;/p&gt;</description></item><item><title>Vue2 and element-ui related demos</title><link>https://lruihao.cn/projects/lruihao/vue-el-demo/</link><pubDate>Tue, 08 Aug 2023 01:41:08 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/vue-el-demo/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased&gt;&lt;span&gt;vue-el-demo&lt;/span&gt;\n &lt;a href=\"#vue-el-demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Vue and element-ui related &lt;a href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"project-setup\"&gt;&lt;span&gt;Project setup&lt;/span&gt;\n &lt;a href=\"#project-setup\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;yarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This project is built with &lt;a href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Rsbuild&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;, a fast build tool powered by Rspack.&lt;/p&gt;</description></item><item><title>用魔法打败魔法 - ElBacktop Fix</title><link>https://lruihao.cn/posts/el-backtop-fix/</link><pubDate>Thu, 20 Jul 2023 11:08:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/el-backtop-fix/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;这篇文章主要是记录一下继承 &lt;a href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ElBacktop&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 组件并修复了一些 bug 的过程。&lt;/p&gt;</description></item><item><title>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.</title><link>https://lruihao.cn/projects/lruihao/el-table-sticky/</link><pubDate>Wed, 14 Jun 2023 14:03:49 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/el-table-sticky/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased&gt;&lt;span&gt;el-table-sticky&lt;/span&gt;\n &lt;a href=\"#el-table-sticky\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线示例&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;blockquote&gt;\n&lt;p&gt;一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"背景\"&gt;&lt;span&gt;背景&lt;/span&gt;\n &lt;a href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Element UI 的表格组件在使用时，如果表格内容过多，表格会出现滚动条，但是表头不会吸顶，表尾合计行也不会吸底，这样在表格内容过多时，表头和表尾合计行就会被遮挡，如果有横向滚动条，每次想滚动必须滑动到最底下，这一系列痛点，非常影响用户体验。&lt;/p&gt;</description></item><item><title>使用 Node.js 自动创建 Vue 的路由</title><link>https://lruihao.cn/posts/gen-router/</link><pubDate>Wed, 14 Jun 2023 00:11:17 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gen-router/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;最近在写一个 Vue 插件，需要在项目中创建一些测试页面，由于都是些静态路由，就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的，于是就借鉴过来改了一下。&lt;/p&gt;</description></item><item><title>Vue2 + tailwindcss 初始化</title><link>https://lruihao.cn/posts/v2-tailwind/</link><pubDate>Sat, 03 Jun 2023 17:38:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/v2-tailwind/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;h2 class=\"heading-element\" id=\"新建-vue2-项目\"&gt;&lt;span&gt;10 新建 Vue2 项目&lt;/span&gt;\n &lt;a href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通过 &lt;code&gt;vue-cli&lt;/code&gt; 创建一个叫 &lt;code&gt;v2-tailwind&lt;/code&gt; 的项目：&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;vue create vue2-tailwind&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;根据需要选择其他的功能插件，例如：&lt;code&gt;Babel, Router, Vuex, CSS Pre-processors, Linter&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>新手向：Vue 2.0 的建议学习顺序</title><link>https://lruihao.cn/posts/vue2-guid/</link><pubDate>Tue, 14 Mar 2023 08:37:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue2-guid/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;blockquote&gt;\n&lt;p&gt;注：2.0 已经有&lt;a href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 。如果对自己英文有信心，也可以直接阅读&lt;a href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;br&gt;\n此指南仅供参考，请根据自身实际情况灵活调整。&lt;br&gt;\n转载自： &lt;a href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尤雨溪&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，2017-08-04 14:51&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>基于 leancloud-storage 实现的无后端记账本</title><link>https://lruihao.cn/projects/bill-note/</link><pubDate>Tue, 02 Mar 2021 21:46:40 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/bill-note/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><description>&lt;h2 class=\"heading-element\" id=\"起因\"&gt;&lt;span&gt;13 起因&lt;/span&gt;\n &lt;a href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;起因&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;事情是這樣，年前和朋友一起合租了一個房子，然後捏，生活嘛，除了開心，當然是乾飯最大啦！&lt;/p&gt;\n&lt;p&gt;自然就會有購物，買菜等日常消費，那就要記賬，一開始是各自記在手機的便簽上，最後再算一下；&lt;br&gt;\n三個人，一共七种組合消費，排除各自消費的三種情況，也有四種 (&lt;code&gt;AB, AC, BC, ABC&lt;/code&gt;)。好麻煩啊！！！&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vue2/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vue2/</title><link rel=canonical href=https://lruihao.cn/tags/vue2/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vue2/\"></head></html>"
  },
  {
    "path": "tags/vue2/page/2/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>Vue2 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"Vue2\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-06-13T21:03:12+08:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:21+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vue2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"Vue2\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"Vue2\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vue2/ title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vue2/index.xml title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vue2/feed.json title=\"Vue2 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vue2/feed.json title=\"Vue2 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vue2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue2</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>Vue2 <sup>22</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/vue2-guid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a>\n<span class=archive-item-date title='2023-03-14 08:37:59'>03-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/bill-note/ class=archive-item-link>基于 Leancloud-Storage 实现的无后端记账本</a>\n<span class=archive-item-date title='2021-03-02 21:46:40'>03-02</span></article><ul class=pagination><li class=page-item><span class=page-link><a href=/tags/vue2/>1</a></span></li><li class=\"page-item active\"><span class=page-link><a href=/tags/vue2/page/2/>2</a></span></li></ul></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vue2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vue3/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"vue3 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Vue.js History 模式下的 NGINX 配置与 API 代理\",\"date_published\":\"2025-06-11T10:05:36&#43;08:00\",\"date_modified\":\"2025-06-11T10:15:18&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue-build/\",\"url\":\"https://lruihao.cn/posts/vue-build/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"nginx\",\"Vue3\",\"proxy\"],\"summary\":\" 在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\n\",\"content_html\":\"\\u003c!-- 本文由 Poe AI 提供 --\\u003e\\n\\u003cp\\u003e在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。\\u003c/p\\u003e\"},{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"记一次 Debug 第三方包的过程\",\"date_published\":\"2024-01-17T14:57:48&#43;08:00\",\"date_modified\":\"2024-01-18T12:59:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/900d5e4/\",\"url\":\"https://lruihao.cn/posts/900d5e4/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"debug\",\"Vue2\",\"Vue3\",\"TypeScript\"],\"image\":\"https://lruihao.cn/posts/900d5e4/images/featured-image.png\",\"summary\":\"在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 code diff demo。\\n\",\"content_html\":\"\\u003cp\\u003e在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 \\u003ca href=\\\"https://lruihao.github.io/vue-el-demo/#/code-diff\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecode diff demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/vue3/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>vue3 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"vue3\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-06-11T10:05:36+08:00\"><meta itemprop=dateModified content=\"2026-01-05T07:25:04+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/vue3/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"vue3\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"vue3\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/vue3/ title=\"vue3 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/vue3/index.xml title=\"vue3 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/vue3/feed.json title=\"vue3 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/vue3/feed.json title=\"vue3 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/vue3/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Vue3</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>vue3 <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/posts/vue-build/ class=archive-item-link>Vue.js History 模式下的 NGINX 配置与 API 代理</a>\n<span class=archive-item-date title='2025-06-11 10:05:36'>06-11</span></article><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/900d5e4/ class=archive-item-link>记一次 Debug 第三方包的过程</a>\n<span class=archive-item-date title='2024-01-17 14:57:48'>01-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/vue3/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/vue3/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>vue3 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/vue3/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 05 Jan 2026 07:25:04 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/vue3/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Vue.js History 模式下的 NGINX 配置与 API 代理</title><link>https://lruihao.cn/posts/vue-build/</link><pubDate>Wed, 11 Jun 2025 10:05:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue-build/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;!-- 本文由 Poe AI 提供 --&gt;\n&lt;p&gt;在使用 Vue.js 开发前端应用时，开启 history 模式可以让你的路由更加友好。然而，在部署应用时，需要正确配置 NGINX，以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX，使其能够处理 Vue 应用的 history 模式，并设置 API 代理。&lt;/p&gt;</description></item><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>记一次 Debug 第三方包的过程</title><link>https://lruihao.cn/posts/900d5e4/</link><pubDate>Wed, 17 Jan 2024 14:57:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/900d5e4/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;在完成一个 code diff 需求时，发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了，详见 &lt;a href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;code diff demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/vue3/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/vue3/</title><link rel=canonical href=https://lruihao.cn/tags/vue3/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/vue3/\"></head></html>"
  },
  {
    "path": "tags/wamp/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"WAMP - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/wamp/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>WAMP - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"WAMP\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-07-12T18:44:36+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/wamp/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"WAMP\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"WAMP\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/wamp/ title=\"WAMP | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/wamp/index.xml title=\"WAMP | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/wamp/feed.json title=\"WAMP | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/wamp/feed.json title=\"WAMP | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/wamp/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>WAMP</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>WAMP <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/wamp/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/wamp/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>WAMP - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/wamp/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/wamp/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/wamp/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/wamp/</title><link rel=canonical href=https://lruihao.cn/tags/wamp/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/wamp/\"></head></html>"
  },
  {
    "path": "tags/watermark/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"watermark - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Create watermark for webpage and automatic adjust when window resize.\",\"date_published\":\"2021-05-24T13:05:40Z\",\"date_modified\":\"2026-05-06T03:02:12Z\",\"id\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"url\":\"https://lruihao.cn/projects/lruihao/watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cell-watermark\",\"watermark\"],\"summary\":\"Watermark Create watermark for webpage and automatic adjust when windows resize.\\nDocumentation Usage Browser Clone source\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"watermark\\\" data-decreased\\u003e\\u003cspan\\u003eWatermark\\u003c/span\\u003e\\n  \\u003ca href=\\\"#watermark\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eCreate watermark for webpage and automatic adjust when windows resize.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"documentation\\\"\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDocumentation\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#documentation\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"usage\\\"\\u003e\\u003cspan\\u003eUsage\\u003c/span\\u003e\\n  \\u003ca href=\\\"#usage\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"browser\\\"\\u003e\\u003cspan\\u003eBrowser\\u003c/span\\u003e\\n  \\u003ca href=\\\"#browser\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003eClone source\\u003c/p\\u003e\"},{\"title\":\"Cell Watermark\",\"date_published\":\"2021-05-23T17:15:41&#43;08:00\",\"date_modified\":\"2024-12-12T14:56:25&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cell-watermark/\",\"url\":\"https://lruihao.cn/projects/cell-watermark/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"watermark\",\"JavaScript\"],\"summary\":\"Create watermark for webpage and automatic adjust when window resize.\",\"content_html\":\"Create watermark for webpage and automatic adjust when window resize.\"}]}"
  },
  {
    "path": "tags/watermark/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>watermark - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"watermark\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-05-24T13:05:40+00:00\"><meta itemprop=dateModified content=\"2026-05-06T03:02:12+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/watermark/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"watermark\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"watermark\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/watermark/ title=\"watermark | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/watermark/index.xml title=\"watermark | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/watermark/feed.json title=\"watermark | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/watermark/feed.json title=\"watermark | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/watermark/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Watermark</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>watermark <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2026-05-06 03:02:12'>更新于 05-06</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/projects/lruihao/watermark/ class=archive-item-link>Lruihao/watermark</a>\n<span class=archive-item-date title='2021-05-24 13:05:40'>05-24</span></article><article class=archive-item><a href=/projects/cell-watermark/ class=archive-item-link>Cell Watermark</a>\n<span class=archive-item-date title='2021-05-23 17:15:41'>05-23</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/watermark/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/watermark/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>watermark - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/watermark/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 06 May 2026 03:02:12 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/watermark/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Create watermark for webpage and automatic adjust when window resize.</title><link>https://lruihao.cn/projects/lruihao/watermark/</link><pubDate>Mon, 24 May 2021 13:05:40 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/watermark/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"watermark\" data-decreased&gt;&lt;span&gt;Watermark&lt;/span&gt;\n &lt;a href=\"#watermark\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Create watermark for webpage and automatic adjust when windows resize.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"documentation\"&gt;&lt;span&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Documentation&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#documentation\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"usage\"&gt;&lt;span&gt;Usage&lt;/span&gt;\n &lt;a href=\"#usage\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"browser\"&gt;&lt;span&gt;Browser&lt;/span&gt;\n &lt;a href=\"#browser\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;\n&lt;p&gt;Clone source&lt;/p&gt;</description></item><item><title>Cell Watermark</title><link>https://lruihao.cn/projects/cell-watermark/</link><pubDate>Sun, 23 May 2021 17:15:41 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cell-watermark/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>Create watermark for webpage and automatic adjust when window resize.</description></item></channel></rss>"
  },
  {
    "path": "tags/watermark/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/watermark/</title><link rel=canonical href=https://lruihao.cn/tags/watermark/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/watermark/\"></head></html>"
  },
  {
    "path": "tags/web-components/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"web-components - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.\",\"date_published\":\"2025-07-22T03:40:45Z\",\"date_modified\":\"2026-04-08T08:41:40Z\",\"id\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"url\":\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"caniuse\",\"caniuse-embed\",\"custom-elements\",\"web-components\"],\"summary\":\"\\u0026lt;caniuse-embed\\u0026gt; 元素 English | 简体中文\\n一个轻量级、可定制的 Web 组件，用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建，设计为可无缝集成到任何 Web 项目中。\\n🌟 在线演示\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"caniuse-embed-元素\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ccode\\u003e\\u0026lt;caniuse-embed\\u0026gt;\\u003c/code\\u003e 元素\\u003c/span\\u003e\\n  \\u003ca href=\\\"#caniuse-embed-%e5%85%83%e7%b4%a0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\\\"npm version\\\"\\u003e\\u003c/a\\u003e\\n\\u003ca href=\\\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\\\"License\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEnglish\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e | 简体中文\\u003c/p\\u003e\\n\\u003cp\\u003e一个轻量级、可定制的 Web 组件，用于嵌入 \\u003ca href=\\\"https://caniuse.com\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaniuse.com\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \\u003ca href=\\\"https://lit.dev/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLit\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 构建，设计为可无缝集成到任何 Web 项目中。\\u003c/p\\u003e\\n\\u003cp\\u003e\\u003ca href=\\\"https://caniuse-el.lruihao.cn\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌟 \\u003cstrong\\u003e在线演示\\u003c/strong\\u003e\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/web-components/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>web-components - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"web-components\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-07-22T03:40:45+00:00\"><meta itemprop=dateModified content=\"2026-04-08T08:41:40+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/web-components/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"web-components\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"web-components\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/web-components/ title=\"web-components | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/web-components/index.xml title=\"web-components | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/web-components/feed.json title=\"web-components | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/web-components/feed.json title=\"web-components | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/web-components/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web-Components</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>web-components <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2026-04-08 08:41:40'>更新于 04-08</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/caniuse-embed-element/ class=archive-item-link>Lruihao/caniuse-embed-element</a>\n<span class=archive-item-date title='2025-07-22 03:40:45'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/web-components/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/web-components/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>web-components - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/web-components/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 08 Apr 2026 08:41:40 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/web-components/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.</title><link>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</link><pubDate>Tue, 22 Jul 2025 03:40:45 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/caniuse-embed-element/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased&gt;&lt;span&gt;&lt;code&gt;&amp;lt;caniuse-embed&amp;gt;&lt;/code&gt; 元素&lt;/span&gt;\n &lt;a href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"&gt;&lt;/a&gt;\n&lt;a href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;English&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; | 简体中文&lt;/p&gt;\n&lt;p&gt;一个轻量级、可定制的 Web 组件，用于嵌入 &lt;a href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caniuse.com&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的特定 Web 功能的浏览器兼容性数据。使用 &lt;a href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lit&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 构建，设计为可无缝集成到任何 Web 项目中。&lt;/p&gt;\n&lt;p&gt;&lt;a href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌟 &lt;strong&gt;在线演示&lt;/strong&gt;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/web-components/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/web-components/</title><link rel=canonical href=https://lruihao.cn/tags/web-components/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/web-components/\"></head></html>"
  },
  {
    "path": "tags/web-development/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"web-development - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"博客构建档（HTML \\u0026 Markdown）\",\"date_published\":\"2018-05-28T12:24:11Z\",\"date_modified\":\"2026-05-07T02:00:50Z\",\"id\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"url\":\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"acm\",\"backend\",\"blog\",\"frontend\",\"hexo\",\"hexo-theme-next\",\"hugo\",\"hugo-fixit\",\"java\",\"javascript\",\"php\",\"python\",\"study-notes\",\"summary\",\"web-development\"],\"summary\":\"菠菜眾長 Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\n共计 297 篇文章 by Lruihao.\\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer：构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊！CSS 竟然能获取视口尺寸？ 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全？ 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案：CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影？ 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基：从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片？ 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写？ 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar？ 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁？ 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度（Cognitive Complexity） 09-26 写作技巧：如何搭建文章的框架结构？ 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？ 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段，自定义用户代码片段 09-02 CSS 如何实现网格背景效果？ 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向：Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制（SemVer） 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\\u0026rsquo;s Note 06-22 less\\u0026amp;sass\\u0026amp;scss 06-21 Lightbox 06-21 2020\\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做？新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟？ 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发，支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度，神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之，湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则，代码规范 07-19 简单评论模块\\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数（二进制算法） 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战：模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json？ 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密（字节流） 05-01 模拟借书系统（java 异常练习） 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本） 04-24 第一次面试经历 04-22 python 爬取网站图片（图片链接相似） 04-20 python 玩微信：初探 wxpy 04-20 基本 python 实现的爬取微信好友头像，并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\\u0026rsquo; Trade（贪心） 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡（枚举法） 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏（Math 类） 01-15 面向对象基础知识总结 01-14 java 水仙花数（循环） 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\\u0026ndash;形式倒装 12-10 英语语法\\u0026ndash;完全倒装 12-08 英语语法\\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人，都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计（2018） 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列（组合数学） 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi（组合数学） 08-10 The equation-SGU106（扩展欧几里得） 08-09 Leading and Trailing-lightoj1282（快速幂 + 对数运算） 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树） 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边） 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182（带权并查集经典模板） 08-01 小希的迷宫-HDU-1272（并查集 or 树性质） 08-01 How Many Answers Are Wrong-hdu3038（带权并查集） 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213（并查集求连通域数目） 07-31 The-suspects-POJ-1611（并查集） 07-31 wireless network-POJ-2236（并查集） 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232（并查集经典模板） 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐（bfs 模拟倒水 or 数论） 07-23 hdu-2612-Find a way（双 bfs） 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master（三维 bfs 最短路） 07-22 poj-1321 棋盘问题（dfs） 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径） 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片，音乐，链接，视频 05-31 猴子与哪吒 05-28 博客构建档（HTML \\u0026amp; Markdown） 05-28 Hello World \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"菠菜眾長\\\" data-decreased\\u003e\\u003cspan\\u003e\\u003ca href=\\\"https://lruihao.cn/\\\" title=\\\"主页\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e菠菜眾長\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cblockquote\\u003e\\n\\u003cp\\u003eHugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e共计 297 篇文章 by \\u003ca href=\\\"https://github.com/Lruihao\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2026\\\"\\u003e\\u003cspan\\u003e2026\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2026\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails open\\u003e\\n\\u003csummary\\u003e共计 1 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e03-06 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-tooltip/\\\" title=\\\"2026-03-06 06:58:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e一个轻量化 Tooltip 组件。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2025\\\"\\u003e\\u003cspan\\u003e2025\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2025\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 14 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-24 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\\\" title=\\\"2025-12-24 03:31:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Christmas Easter Egg by JavaScript.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\\\" title=\\\"2025-08-30 15:40:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommand line tool for generating a changelog from git tags and commit history\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-16 \\u003ca href=\\\"https://lruihao.cn/posts/mermaid-theming/\\\" title=\\\"2025-08-16 12:37:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e让 Mermaid 图表自动跟随系统深浅色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-05 \\u003ca href=\\\"https://lruihao.cn/posts/wc-01-prologue/\\\" title=\\\"2025-08-05 11:31:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e黑盒出关・三把钥匙定江湖\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/code-playground/\\\" title=\\\"2025-08-04 11:37:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Playground\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\\\" title=\\\"2025-07-22 03:40:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/json-viewer-element/\\\" title=\\\"2025-07-19 07:05:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA custom element for viewing and interacting with JSON data.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/at-layer/\\\" title=\\\"2025-06-18 10:35:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS @layer：构建更高效、更可维护的样式层级\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-11 \\u003ca href=\\\"https://lruihao.cn/posts/vue-build/\\\" title=\\\"2025-06-11 10:05:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue.js History 模式下的 NGINX 配置与 API 代理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt-webfont/\\\" title=\\\"2025-04-10 08:35:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe webfont package for the MMT typeface.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-proxy/\\\" title=\\\"2025-04-09 02:13:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAPI proxies powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-20 \\u003ca href=\\\"https://lruihao.cn/posts/flexbox/\\\" title=\\\"2025-01-20 15:56:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS Flexbox 布局指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\\\" title=\\\"2025-01-14 09:10:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGenerate a list of all hugo-fixit theme components.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-08 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\\\" title=\\\"2025-01-08 09:20:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with asciinema-embed shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2024\\\"\\u003e\\u003cspan\\u003e2024\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2024\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 38 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-06 \\u003ca href=\\\"https://lruihao.cn/posts/css-viewport/\\\" title=\\\"2024-12-06 10:32:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e震惊！CSS 竟然能获取视口尺寸？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-02 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\\\" title=\\\"2024-12-02 07:29:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🌐 A component for site automatic translation.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-22 \\u003ca href=\\\"https://lruihao.cn/posts/91db0fa/\\\" title=\\\"2024-11-22 14:01:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAmazon 如何让服务器享受着持续集群安全？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-05 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\\\" title=\\\"2024-11-05 08:23:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐟 A canvas implemented animation effect of small fish swimming.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-06 \\u003ca href=\\\"https://lruihao.cn/posts/content-adapters/\\\" title=\\\"2024-10-06 11:10:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自动获取 GitHub README 内容添加到 Hugo 文章\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-13 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/html-demo/\\\" title=\\\"2024-09-13 02:36:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\\\" title=\\\"2024-09-04 18:10:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\\\" title=\\\"2024-08-22 03:29:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for ATOM feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-22 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\\\" title=\\\"2024-08-22 03:28:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo theme component for JSON feed custom Output Format.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\\\" title=\\\"2024-08-07 05:49:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMobile devtools component powered by vConsole and eruda.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/css-round/\\\" title=\\\"2024-07-29 20:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案：CSS 四舍五入数值单位\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-21 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\\\" title=\\\"2024-07-21 14:02:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-17 \\u003ca href=\\\"https://lruihao.cn/posts/git-summary/\\\" title=\\\"2024-07-17 16:06:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 统计代码量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/drop-shadow/\\\" title=\\\"2024-07-15 10:40:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e现代 CSS 解决方案之异形元素怎么设置阴影？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\\\" title=\\\"2024-07-14 07:39:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔖 Embed bookmark of FixIt Docs.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-14 \\u003ca href=\\\"https://lruihao.cn/posts/fixit-docs-bookmark/\\\" title=\\\"2024-07-14 13:03:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 实现时间轴、背景图 loading 和渐变边框\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-07 \\u003ca href=\\\"https://lruihao.cn/posts/d1fc0c7/\\\" title=\\\"2024-07-07 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 Amazon S3 的无限存储潜力\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/posts/scrollbar-styling/\\\" title=\\\"2024-06-28 22:29:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e标准滚动条控制规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\\\" title=\\\"2024-06-28 06:56:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA Hugo theme component with caniuse shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-13 \\u003ca href=\\\"https://lruihao.cn/posts/aside-toggle-drag/\\\" title=\\\"2024-06-13 21:03:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-09 \\u003ca href=\\\"https://lruihao.cn/posts/design-principles/\\\" title=\\\"2024-06-09 02:24:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e架构之基：从根儿上了解设计原则\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-06 \\u003ca href=\\\"https://lruihao.cn/posts/svg-dark-light/\\\" title=\\\"2024-06-06 22:13:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e怎么生成暗黑模式和明亮模式的 SVG 图片？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-20 \\u003ca href=\\\"https://lruihao.cn/posts/404d6a2/\\\" title=\\\"2024-05-20 11:41:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e坐高铁去柳州吃螺狮粉\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/vercel-gravatar/\\\" title=\\\"2024-04-17 12:51:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用 Vercel 反代 Gravatar 实现镜像加速\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\\\" title=\\\"2024-04-17 01:37:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGravatar Proxy powered by Vercel.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-09 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/component-projects/\\\" title=\\\"2024-04-09 21:38:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-04 \\u003ca href=\\\"https://lruihao.cn/projects/apple-devices-preview/\\\" title=\\\"2024-04-04 13:23:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e临时决定再写一个小工具 - 网站预览图生成器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-02 \\u003ca href=\\\"https://lruihao.cn/projects/coverview/\\\" title=\\\"2024-04-02 18:05:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用五天时间给自己制作一个封面图生成工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/coverview/\\\" title=\\\"2024-03-28 06:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠 Create awesome cover images for your blog posts quickly.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/c6bc2d5/\\\" title=\\\"2024-03-26 12:23:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写文档时英文标题什么时候要大写？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-29 \\u003ca href=\\\"https://lruihao.cn/posts/overflow-tooltip/\\\" title=\\\"2024-02-29 16:46:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e实现类似于 Element UI 表格的溢出文本提示功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-21 \\u003ca href=\\\"https://lruihao.cn/posts/auto-sizes/\\\" title=\\\"2024-02-21 10:00:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e聊聊 Chrome 新增的 sizes=\\u0026ldquo;auto\\u0026rdquo; 属性\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-09 \\u003ca href=\\\"https://lruihao.cn/years/2023/\\\" title=\\\"2024-02-09 14:07:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2023 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-21 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/kityminder-core/\\\" title=\\\"2024-01-21 06:24:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e强大的脑图可视化工具\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/900d5e4/\\\" title=\\\"2024-01-17 14:57:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e记一次 Debug 第三方包的过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-17 \\u003ca href=\\\"https://lruihao.cn/posts/20b75e9/\\\" title=\\\"2024-01-17 09:58:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e为什么很多教程中都有 foo bar？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/6550187/\\\" title=\\\"2024-01-11 10:30:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit submodule: already exists in the index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-10 \\u003ca href=\\\"https://lruihao.cn/posts/el-card-collapse/\\\" title=\\\"2024-01-10 17:06:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给 el-card 添加折叠功能\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2023\\\"\\u003e\\u003cspan\\u003e2023\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2023\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 35 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/d8ae205/\\\" title=\\\"2023-12-22 19:58:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尝试在 Python 中使用 Amazon Titan 文本模型\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-28 \\u003ca href=\\\"https://lruihao.cn/projects/fixit-cli/\\\" title=\\\"2023-11-28 10:48:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 Node.js 开发一个轻量脚手架\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-20 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\\\" title=\\\"2023-11-20 06:40:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🛠️ A node-based tooling for FixIt site initialization.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-18 \\u003ca href=\\\"https://lruihao.cn/posts/aws-solution/\\\" title=\\\"2023-11-18 12:52:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e探索 AWS 云上一站式解决方案免费使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-22 \\u003ca href=\\\"https://lruihao.cn/posts/ssh-sign/\\\" title=\\\"2023-10-22 18:59:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSSH 提交签名验证\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/patch-package/\\\" title=\\\"2023-10-12 22:37:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何给 npm 包打补丁？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-summary/\\\" title=\\\"2023-10-12 21:25:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘系列总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-usage/\\\" title=\\\"2023-10-12 20:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件开发\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-usage/\\\" title=\\\"2023-10-12 20:07:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 模板使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-widget-docs/\\\" title=\\\"2023-10-12 19:41:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 组件配置文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashborad-template-docs/\\\" title=\\\"2023-10-12 19:27:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 布局模板文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/posts/dashboard-analysis/\\\" title=\\\"2023-10-12 15:37:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e拖拽式仪表盘 - 功能需求分析\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-11 \\u003ca href=\\\"https://lruihao.cn/posts/markdownlint/\\\" title=\\\"2023-10-11 14:26:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e给你的 Markdown 挑挑刺\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/cognitive-complexity/\\\" title=\\\"2023-10-08 09:52:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e认知复杂度（Cognitive Complexity）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/article-structure/\\\" title=\\\"2023-09-26 15:17:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e写作技巧：如何搭建文章的框架结构？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-25 \\u003ca href=\\\"https://lruihao.cn/projects/el-table-sticky/\\\" title=\\\"2023-09-25 17:49:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-17 \\u003ca href=\\\"https://lruihao.cn/posts/vue-fullscreen-toggler/\\\" title=\\\"2023-09-17 19:44:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e封装 Vue FullScreenToggler 组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/js-fullscreen/\\\" title=\\\"2023-09-15 17:29:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 实现全屏和退出全屏\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-15 \\u003ca href=\\\"https://lruihao.cn/posts/translation-guide/\\\" title=\\\"2023-09-15 11:07:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文翻译的常见问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue-svg-icon/\\\" title=\\\"2023-09-14 11:24:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Vue 项目中更优雅地使用 icon\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-14 \\u003ca href=\\\"https://lruihao.cn/posts/vscode-snippets/\\\" title=\\\"2023-09-14 11:21:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVSCode 添加用户代码片段，自定义用户代码片段\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-02 \\u003ca href=\\\"https://lruihao.cn/posts/grid-bg-image/\\\" title=\\\"2023-09-02 10:05:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCSS 如何实现网格背景效果？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-26 \\u003ca href=\\\"https://lruihao.cn/posts/aws-ec2/\\\" title=\\\"2023-08-26 17:22:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e将 Hugo 博客部署到亚马逊云服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-el-demo/\\\" title=\\\"2023-08-08 01:41:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 and element-ui related demos\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-20 \\u003ca href=\\\"https://lruihao.cn/posts/el-backtop-fix/\\\" title=\\\"2023-07-20 11:08:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用魔法打败魔法 - ElBacktop Fix\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/el-table-sticky/\\\" title=\\\"2023-06-14 14:03:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/gen-router/\\\" title=\\\"2023-06-14 00:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Node.js 自动创建 Vue 的路由\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-12 \\u003ca href=\\\"https://lruihao.cn/posts/sourcetree-husky/\\\" title=\\\"2023-06-12 10:58:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解决 SourceTree 提交时候 husky 命令失败问题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/v2-tailwind/\\\" title=\\\"2023-06-03 17:38:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVue2 + tailwindcss 初始化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-14 \\u003ca href=\\\"https://lruihao.cn/posts/vue2-guid/\\\" title=\\\"2023-03-14 08:37:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\\\" title=\\\"2023-02-28 09:12:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-12 \\u003ca href=\\\"https://lruihao.cn/posts/native-img-loading-lazy/\\\" title=\\\"2023-02-12 19:40:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器 IMG 图片原生懒加载 loading=\\u0026ldquo;lazy\\u0026rdquo;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-05 \\u003ca href=\\\"https://lruihao.cn/posts/browser-rendering/\\\" title=\\\"2023-02-05 21:02:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器渲染原理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-04 \\u003ca href=\\\"https://lruihao.cn/posts/document-style-guide/\\\" title=\\\"2023-02-04 16:04:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文技术文档的写作规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-11 \\u003ca href=\\\"https://lruihao.cn/posts/event-loop/\\\" title=\\\"2023-01-11 11:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e浏览器原理 - 事件循环\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2022\\\"\\u003e\\u003cspan\\u003e2022\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2022\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 20 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-17 \\u003ca href=\\\"https://lruihao.cn/years/2022/\\\" title=\\\"2022-12-17 01:01:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2022 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-15 \\u003ca href=\\\"https://lruihao.cn/posts/homebrew-npm/\\\" title=\\\"2022-12-15 15:33:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-10 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\\\" title=\\\"2022-10-10 02:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-30 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\\\" title=\\\"2022-09-30 09:28:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\\\" title=\\\"2022-09-27 15:23:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-04 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\\\" title=\\\"2022-09-04 04:18:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eUsing frequently-used Hugo commands by shell.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/beego-install/\\\" title=\\\"2022-08-31 09:32:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBeego 安装及配置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-13 \\u003ca href=\\\"https://lruihao.cn/posts/semver/\\\" title=\\\"2022-08-13 13:32:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e语义版本控制（SemVer）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/commit-spec/\\\" title=\\\"2022-08-12 15:37:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCommit Message Spec\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-12 \\u003ca href=\\\"https://lruihao.cn/posts/electron-summary/\\\" title=\\\"2022-08-12 11:22:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eelectron 踩坑总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/encryption-fe/\\\" title=\\\"2022-08-08 13:49:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端页面内容加密总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/qcloudcdn/\\\" title=\\\"2022-08-07 14:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNode.js + GitHub Actions 自动刷新 CDN\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-07 \\u003ca href=\\\"https://lruihao.cn/posts/newline/\\\" title=\\\"2022-08-07 00:10:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e不同系统的换行符的差异\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/ohmyzsh-custom/\\\" title=\\\"2022-07-31 13:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e自定义 ohmyzsh 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-30 \\u003ca href=\\\"https://lruihao.cn/posts/linux-permission/\\\" title=\\\"2022-07-30 17:15:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 文件权限\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-29 \\u003ca href=\\\"https://lruihao.cn/posts/config4mac/\\\" title=\\\"2022-07-29 20:22:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 上的开发配置总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/docs/\\\" title=\\\"2022-07-23 12:17:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e📄 The open-source repo for fixit.lruihao.cn\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-05 \\u003ca href=\\\"https://lruihao.cn/posts/adb-for-mac/\\\" title=\\\"2022-07-05 15:39:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMac 配置 ADB\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/js-rediscover/\\\" title=\\\"2022-05-01 10:59:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e重新认识 JavaScript\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-30 \\u003ca href=\\\"https://lruihao.cn/posts/css-scss-var/\\\" title=\\\"2022-04-30 22:04:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e关于 CSS 和 Scss 变量运算那些事\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2021\\\"\\u003e\\u003cspan\\u003e2021\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2021\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 19 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-22 \\u003ca href=\\\"https://lruihao.cn/posts/gtd/\\\" title=\\\"2021-12-22 20:17:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGetting Things Done for ios App Reminders and Github issues\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-16 \\u003ca href=\\\"https://lruihao.cn/projects/hugo-fixit/fixit/\\\" title=\\\"2021-12-16 03:35:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/subl_imgpaste2/\\\" title=\\\"2021-10-05 21:54:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-cardlink/\\\" title=\\\"2021-10-05 19:33:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 添加知乎卡片式链接 Shortcodes\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\\\" title=\\\"2021-10-05 19:14:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo I18n 添加中文繁體翻譯\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-05 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-friends/\\\" title=\\\"2021-10-05 14:14:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 友情連結模板\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/hugo-admin/\\\" title=\\\"2021-10-04 23:49:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 本地管理 Shell 腳本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-04 \\u003ca href=\\\"https://lruihao.cn/posts/github-actions/\\\" title=\\\"2021-10-04 23:46:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-03 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-to-hugo/\\\" title=\\\"2021-10-03 15:27:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e个人博客从 Hexo 迁移至 Hugo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hugo-blog/\\\" title=\\\"2021-09-08 12:52:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLruihao\\u0026rsquo;s Note\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-22 \\u003ca href=\\\"https://lruihao.cn/posts/less-sass-scss/\\\" title=\\\"2021-06-22 16:39:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eless\\u0026amp;sass\\u0026amp;scss\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/lightbox/\\\" title=\\\"2021-06-21 16:18:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLightbox\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/years/2020-2021/\\\" title=\\\"2021-06-21 10:17:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2020\\u0026amp;2021 總結\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-24 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/watermark/\\\" title=\\\"2021-05-24 13:05:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCreate watermark for webpage and automatic adjust when window resize.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-23 \\u003ca href=\\\"https://lruihao.cn/projects/cell-watermark/\\\" title=\\\"2021-05-23 17:15:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCell Watermark\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/codereview/\\\" title=\\\"2021-03-04 21:04:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCode Review 怎麼做？新手工程師如何提升「程式碼品質」\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-02 \\u003ca href=\\\"https://lruihao.cn/projects/bill-note/\\\" title=\\\"2021-03-02 21:46:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-01 \\u003ca href=\\\"https://lruihao.cn/me/whysmoke/\\\" title=\\\"2021-03-01 01:27:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e你为什么吸烟？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/bill-note/\\\" title=\\\"2021-02-28 03:44:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 leancloud-storage 实现的无后端记账本\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2020\\\"\\u003e\\u003cspan\\u003e2020\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2020\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 8 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/projects/cell-blog/\\\" title=\\\"2020-07-25 20:51:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 功能介绍与安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-25 \\u003ca href=\\\"https://lruihao.cn/posts/cell-blog-dev/\\\" title=\\\"2020-07-25 20:42:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecell-blog 开发记录\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-17 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cell-blog/\\\" title=\\\"2020-04-17 08:33:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基于 Laravel 7 开发，支持 Markdown 语法的博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-26 \\u003ca href=\\\"https://lruihao.cn/posts/csdnvisiter/\\\" title=\\\"2020-03-26 11:08:38\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Python 刷 csdn 访问量\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/cron/\\\" title=\\\"2020-03-25 09:19:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCron 表达式的基本语法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-25 \\u003ca href=\\\"https://lruihao.cn/posts/daka/\\\" title=\\\"2020-03-25 08:22:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/years/2019/\\\" title=\\\"2020-01-16 20:01:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2019 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/sql/\\\" title=\\\"2020-01-16 19:28:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSQL 总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2019\\\"\\u003e\\u003cspan\\u003e2019\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2019\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 71 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/projects/cos-album/\\\" title=\\\"2019-11-24 10:52:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云为静态页面添加“动态”相册\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-23 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/cos-album/\\\" title=\\\"2019-11-23 12:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-14 \\u003ca href=\\\"https://lruihao.cn/posts/restful/\\\" title=\\\"2019-11-14 19:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eRESTful\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phppushurl/\\\" title=\\\"2019-09-28 18:32:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 同时主动推送链接到百度，神马等站长平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-28 \\u003ca href=\\\"https://lruihao.cn/posts/phpfile/\\\" title=\\\"2019-09-28 17:11:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 按行读取文件信息\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/mmt/\\\" title=\\\"2019-09-26 12:44:17\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目之，湘也。— 沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-19 \\u003ca href=\\\"https://lruihao.cn/posts/site-time/\\\" title=\\\"2019-09-19 22:03:29\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e设置网站运行时间\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-08 \\u003ca href=\\\"https://lruihao.cn/posts/async-defer/\\\" title=\\\"2019-09-08 11:47:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003escript 的三种加载方式 (async, defer)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/sublime-text3/\\\" title=\\\"2019-08-15 20:59:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eSublime Text3 快捷键大全\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/netbeans/\\\" title=\\\"2019-08-15 18:36:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eNetBeans IDE 开发设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/dev-rules/\\\" title=\\\"2019-08-15 18:30:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWeb 开发规则，代码规范\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-19 \\u003ca href=\\\"https://lruihao.cn/posts/phpform/\\\" title=\\\"2019-07-19 11:38:59\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单评论模块\\u0026ndash;php 表单练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-15 \\u003ca href=\\\"https://lruihao.cn/posts/phpfunc/\\\" title=\\\"2019-07-15 11:37:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ephp 函数学习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-12 \\u003ca href=\\\"https://lruihao.cn/posts/wamproot/\\\" title=\\\"2019-07-12 18:44:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWAMPServer 自定义网站根目录等设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-21 \\u003ca href=\\\"https://lruihao.cn/posts/pysx2/\\\" title=\\\"2019-06-21 18:46:41\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅱ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-18 \\u003ca href=\\\"https://lruihao.cn/posts/pysx1/\\\" title=\\\"2019-06-18 18:41:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实训总结Ⅰ\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-26 \\u003ca href=\\\"https://lruihao.cn/posts/judgetriangle/\\\" title=\\\"2019-05-26 18:50:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e判断三角形的黑盒测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/hustoj/\\\" title=\\\"2019-05-17 23:08:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHustOJ 基础搭建教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-17 \\u003ca href=\\\"https://lruihao.cn/posts/gcd-bit/\\\" title=\\\"2019-05-17 09:14:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最大公约数（二进制算法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-16 \\u003ca href=\\\"https://lruihao.cn/posts/imgurl/\\\" title=\\\"2019-05-16 20:31:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装 ImgURL 图床\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-11 \\u003ca href=\\\"https://lruihao.cn/posts/mx2wx/\\\" title=\\\"2019-05-11 17:02:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 实战：模拟 post 请求定时获取后台数据并打包发送至微信\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-10 \\u003ca href=\\\"https://lruihao.cn/posts/ifzhushi/\\\" title=\\\"2019-05-10 13:08:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e条件注释判断浏览器版本\\u0026lt;!\\u0026ndash;[if lt IE 9]\\u0026gt;;\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pysettime/\\\" title=\\\"2019-05-09 23:26:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 设置程序每天 8 点定时执行任务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-09 \\u003ca href=\\\"https://lruihao.cn/posts/pyinstallererror/\\\" title=\\\"2019-05-09 19:05:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-08 \\u003ca href=\\\"https://lruihao.cn/posts/singlethreaddown/\\\" title=\\\"2019-05-08 20:55:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 实现一个单线程的资源下载器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/jsoninfo/\\\" title=\\\"2019-05-07 18:42:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePython 如何操作 Json？\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-07 \\u003ca href=\\\"https://lruihao.cn/posts/posttest/\\\" title=\\\"2019-05-07 18:17:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 发送 post 请求进行简单的接口测试\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-06 \\u003ca href=\\\"https://lruihao.cn/posts/java-urlreader/\\\" title=\\\"2019-05-06 17:41:35\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 通过 URL 和 URLConnection 访问网页资源\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-02 \\u003ca href=\\\"https://lruihao.cn/posts/byteio/\\\" title=\\\"2019-05-02 23:04:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e文件加密解密（字节流）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-01 \\u003ca href=\\\"https://lruihao.cn/posts/javaexception/\\\" title=\\\"2019-05-01 16:52:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模拟借书系统（java 异常练习）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-27 \\u003ca href=\\\"https://lruihao.cn/posts/qrcode/\\\" title=\\\"2019-04-27 14:16:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-24 \\u003ca href=\\\"https://lruihao.cn/posts/1thintervivew/\\\" title=\\\"2019-04-24 21:23:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e第一次面试经历\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-22 \\u003ca href=\\\"https://lruihao.cn/posts/mmtimgpy/\\\" title=\\\"2019-04-22 12:46:34\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 爬取网站图片（图片链接相似）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wxpy1/\\\" title=\\\"2019-04-20 15:44:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epython 玩微信：初探 wxpy\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-20 \\u003ca href=\\\"https://lruihao.cn/posts/wximgpy/\\\" title=\\\"2019-04-20 13:32:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e基本 python 实现的爬取微信好友头像，并拼接成大图\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-19 \\u003ca href=\\\"https://lruihao.cn/posts/hellojava/\\\" title=\\\"2019-04-19 19:49:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e用记事本编写第一个 java 程序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-regex/\\\" title=\\\"2019-04-18 22:04:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 正则表达式练习\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-14 \\u003ca href=\\\"https://lruihao.cn/posts/stringbuffer/\\\" title=\\\"2019-04-14 10:12:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 常用类\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-12 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1009/\\\" title=\\\"2019-04-12 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU 1009 FatMouse\\u0026rsquo; Trade（贪心）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e04-03 \\u003ca href=\\\"https://lruihao.cn/posts/ngrok/\\\" title=\\\"2019-04-03 19:29:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本地搭建网站服务器并穿透内网\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/ms-html-css/\\\" title=\\\"2019-03-30 22:58:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e前端面试题 - HTML+CSS\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-30 \\u003ca href=\\\"https://lruihao.cn/posts/bqbj/\\\" title=\\\"2019-03-30 10:13:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百钱百鸡（枚举法）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/dacheng/\\\" title=\\\"2019-03-28 22:50:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e大数乘法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-28 \\u003ca href=\\\"https://lruihao.cn/posts/http2https/\\\" title=\\\"2019-03-28 19:40:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003evps 配置 ssl 及 https 重定向\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-theme-next/\\\" title=\\\"2019-03-21 16:43:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo-theme-next @modified LRH\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/substatus/\\\" title=\\\"2019-03-21 13:36:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJava 父类子类的对象初始化过程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-21 \\u003ca href=\\\"https://lruihao.cn/posts/windefault/\\\" title=\\\"2019-03-21 12:48:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eubuntu + windows 双系统默认启动项设置\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-19 \\u003ca href=\\\"https://lruihao.cn/posts/player/\\\" title=\\\"2019-03-19 23:32:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宅音乐播放器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/bt/\\\" title=\\\"2019-03-18 21:31:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔面板安装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-18 \\u003ca href=\\\"https://lruihao.cn/posts/webbiji/\\\" title=\\\"2019-03-18 20:40:55\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eweb 汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-16 \\u003ca href=\\\"https://lruihao.cn/posts/fanxing/\\\" title=\\\"2019-03-16 13:56:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 泛型 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/eclipseuse/\\\" title=\\\"2019-03-15 23:47:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eeclipse 的基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/qframe/\\\" title=\\\"2019-03-15 22:31:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e匿名类在可视化界面中的应用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/linkcard/\\\" title=\\\"2019-03-15 15:21:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e模仿知乎卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-15 \\u003ca href=\\\"https://lruihao.cn/posts/ubuntutime/\\\" title=\\\"2019-03-15 14:28:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewin10,ubuntu 双系统时间不一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-08 \\u003ca href=\\\"https://lruihao.cn/posts/qqxml/\\\" title=\\\"2019-03-08 16:52:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eQQ 强制生成卡片式链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/cipanadmin/\\\" title=\\\"2019-03-04 23:08:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e磁盘存储器的管理\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e03-04 \\u003ca href=\\\"https://lruihao.cn/posts/js-vcode/\\\" title=\\\"2019-03-04 20:53:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eJS 验证码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e02-01 \\u003ca href=\\\"https://lruihao.cn/posts/renative/\\\" title=\\\"2019-02-01 20:44:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e还乡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-31 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\\\" title=\\\"2019-01-31 09:57:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eElegant and powerful theme for Hexo.\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-24 \\u003ca href=\\\"https://lruihao.cn/posts/jicheng/\\\" title=\\\"2019-01-24 15:07:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 继承 test\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-22 \\u003ca href=\\\"https://lruihao.cn/posts/cos-hexo/\\\" title=\\\"2019-01-22 14:57:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-18 \\u003ca href=\\\"https://lruihao.cn/posts/java-arrays/\\\" title=\\\"2019-01-18 13:13:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eArrays 类及基本使用\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-16 \\u003ca href=\\\"https://lruihao.cn/posts/recent-posts/\\\" title=\\\"2019-01-16 17:50:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在搜索、文章底部、侧栏添加最近文章模块\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/mathclass/\\\" title=\\\"2019-01-15 17:33:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 猜数字小游戏（Math 类）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-15 \\u003ca href=\\\"https://lruihao.cn/posts/duixiang/\\\" title=\\\"2019-01-15 16:07:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e面向对象基础知识总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-range/\\\" title=\\\"2019-01-14 17:30:24\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 水仙花数（循环）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/java-input/\\\" title=\\\"2019-01-14 15:33:46\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 录入数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-14 \\u003ca href=\\\"https://lruihao.cn/posts/biaoshi/\\\" title=\\\"2019-01-14 15:07:57\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejava 标识符\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/posts/subject-verb/\\\" title=\\\"2019-01-12 13:02:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;主谓一致\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e01-12 \\u003ca href=\\\"https://lruihao.cn/years/2018/\\\" title=\\\"2019-01-12 11:09:52\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e2018 年度总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"2018\\\"\\u003e\\u003cspan\\u003e2018\\u003c/span\\u003e\\n  \\u003ca href=\\\"#2018\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cdetails\\u003e\\n\\u003csummary\\u003e共计 91 篇文章\\u003c/summary\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-3/\\\" title=\\\"2018-12-10 21:52:30\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;形式倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-10 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-2/\\\" title=\\\"2018-12-10 21:14:51\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;完全倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e12-08 \\u003ca href=\\\"https://lruihao.cn/posts/inversion-1/\\\" title=\\\"2018-12-08 17:52:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英语语法\\u0026ndash;部分倒装\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-24 \\u003ca href=\\\"https://lruihao.cn/posts/nextplugin/\\\" title=\\\"2018-11-24 16:54:09\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 插件及 next 内置样式集\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-17 \\u003ca href=\\\"https://lruihao.cn/posts/commit-bat/\\\" title=\\\"2018-11-17 14:25:49\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e通过 bat 批处理文件自动提交博客代码\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-12 \\u003ca href=\\\"https://lruihao.cn/posts/fas-app/\\\" title=\\\"2018-11-12 16:04:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博採眾長 app\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-11 \\u003ca href=\\\"https://lruihao.cn/posts/caddy-file/\\\" title=\\\"2018-11-11 13:59:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ecaddy-两步搭建超简单云盘\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-09 \\u003ca href=\\\"https://lruihao.cn/posts/next-pdf/\\\" title=\\\"2018-11-09 12:51:48\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003enext 添加支持 pdf\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/js-device/\\\" title=\\\"2018-11-03 23:35:44\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ejs 判断用户设备类型及平台\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e11-03 \\u003ca href=\\\"https://lruihao.cn/posts/blog-backup/\\\" title=\\\"2018-11-03 12:49:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客源码备份\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-30 \\u003ca href=\\\"https://lruihao.cn/posts/git/\\\" title=\\\"2018-10-30 08:59:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eGit 常用指令汇总\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/beian/\\\" title=\\\"2018-10-29 23:16:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网站备案之旅\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/shell/\\\" title=\\\"2018-10-29 11:57:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eshell 脚本初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-29 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-yun/\\\" title=\\\"2018-10-29 09:15:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e云服务器 CentOS 系统搭建 web 服务\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-28 \\u003ca href=\\\"https://lruihao.cn/posts/href-301/\\\" title=\\\"2018-10-28 14:22:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/web-server-win/\\\" title=\\\"2018-10-26 21:56:18\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewindows 上搭建 web 服务器\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-26 \\u003ca href=\\\"https://lruihao.cn/posts/gituse/\\\" title=\\\"2018-10-26 21:11:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e使用 Git 上传代码到 github, coding 等仓库\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-23 \\u003ca href=\\\"https://lruihao.cn/posts/termux1/\\\" title=\\\"2018-10-23 22:16:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003etermux 基本使用教程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-17 \\u003ca href=\\\"https://lruihao.cn/posts/web-font/\\\" title=\\\"2018-10-17 21:38:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ettf 字体压缩\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-15 \\u003ca href=\\\"https://lruihao.cn/posts/linux-hello-c/\\\" title=\\\"2018-10-15 21:19:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux 编程初体验\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-12 \\u003ca href=\\\"https://lruihao.cn/projects/font-mmt/\\\" title=\\\"2018-10-12 19:39:19\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e沐目体\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-09 \\u003ca href=\\\"https://lruihao.cn/posts/liushuixian/\\\" title=\\\"2018-10-09 16:21:04\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e流水线\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e10-08 \\u003ca href=\\\"https://lruihao.cn/posts/data/\\\" title=\\\"2018-10-08 23:01:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e计算机数据\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-27 \\u003ca href=\\\"https://lruihao.cn/posts/night/\\\" title=\\\"2018-09-27 13:13:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页夜间效果\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-26 \\u003ca href=\\\"https://lruihao.cn/posts/crash-cheat/\\\" title=\\\"2018-09-26 16:36:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e网页离开时改变标题“崩溃欺骗”\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-22 \\u003ca href=\\\"https://lruihao.cn/posts/linux-git/\\\" title=\\\"2018-09-22 22:28:45\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003elinux/centos 下的安装 git\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e09-21 \\u003ca href=\\\"https://lruihao.cn/posts/mood/\\\" title=\\\"2018-09-21 21:11:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e每一个优秀的人，都有一段沉默的时光\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-31 \\u003ca href=\\\"https://lruihao.cn/posts/vim/\\\" title=\\\"2018-08-31 11:46:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eVim 速查表\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-30 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-wordcount/\\\" title=\\\"2018-08-30 13:15:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo next 主题添加字数统计（2018）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-21 \\u003ca href=\\\"https://lruihao.cn/posts/hexo-d-error/\\\" title=\\\"2018-08-21 22:15:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo d 出错\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-20 \\u003ca href=\\\"https://lruihao.cn/posts/dongtaisub/\\\" title=\\\"2018-08-20 16:16:40\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 个性化 - next 主题动态显示 subtitle\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-15 \\u003ca href=\\\"https://lruihao.cn/posts/heart/\\\" title=\\\"2018-08-15 16:33:12\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e“高逼格”C 语言画心\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-14 \\u003ca href=\\\"https://lruihao.cn/posts/git-index-lock/\\\" title=\\\"2018-08-14 19:21:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003egit index.lock\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-11 \\u003ca href=\\\"https://lruihao.cn/posts/termux/\\\" title=\\\"2018-08-11 16:59:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在 Android 上搭建 hexo 博客\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/nowcoder157a/\\\" title=\\\"2018-08-10 22:11:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e石子阵列（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476a/\\\" title=\\\"2018-08-10 20:13:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and Stairs\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces476b/\\\" title=\\\"2018-08-10 17:44:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eDreamoon and WiFi（组合数学）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-10 \\u003ca href=\\\"https://lruihao.cn/posts/euclid/\\\" title=\\\"2018-08-10 10:32:39\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe equation-SGU106（扩展欧几里得）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/lightoj1282/\\\" title=\\\"2018-08-09 20:55:26\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eLeading and Trailing-lightoj1282（快速幂 + 对数运算）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-09 \\u003ca href=\\\"https://lruihao.cn/posts/cfcontest1017/\\\" title=\\\"2018-08-09 10:48:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eCodeforces Round 502(Div.1 + Div.2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-08 \\u003ca href=\\\"https://lruihao.cn/posts/euler/\\\" title=\\\"2018-08-08 17:10:07\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e欧拉函数\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-06 \\u003ca href=\\\"https://lruihao.cn/posts/poj1797/\\\" title=\\\"2018-08-06 09:42:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-04 \\u003ca href=\\\"https://lruihao.cn/posts/console-log/\\\" title=\\\"2018-08-04 16:19:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 博客自定义 console log\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/poj2387/\\\" title=\\\"2018-08-03 21:40:33\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-03 \\u003ca href=\\\"https://lruihao.cn/posts/zuiduanlu/\\\" title=\\\"2018-08-03 16:27:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e最短路入门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/nowcodersummer-5th/\\\" title=\\\"2018-08-02 21:27:02\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客暑假多校第五场\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-02 \\u003ca href=\\\"https://lruihao.cn/posts/poj1182/\\\" title=\\\"2018-08-02 11:10:37\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e食物链-poj1182（带权并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu1272/\\\" title=\\\"2018-08-01 21:45:50\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫-HDU-1272（并查集 or 树性质）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e08-01 \\u003ca href=\\\"https://lruihao.cn/posts/hdu3038/\\\" title=\\\"2018-08-01 11:45:53\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong-hdu3038（带权并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680b/\\\" title=\\\"2018-07-31 19:32:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Finding Criminals-Codeforces680B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/codeforces680a/\\\" title=\\\"2018-07-31 19:22:36\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBear and Five Cards-Codeforces680A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/how-tables/\\\" title=\\\"2018-07-31 11:12:10\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables-HDU-1213（并查集求连通域数目）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1611/\\\" title=\\\"2018-07-31 11:11:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects-POJ-1611（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2236/\\\" title=\\\"2018-07-31 11:10:54\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network-POJ-2236（并查集）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/piles-with-stones/\\\" title=\\\"2018-07-31 11:09:31\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePiles-with-stones\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\\\" title=\\\"2018-07-31 11:08:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程-HDU-1232（并查集经典模板）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-27 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\\\" title=\\\"2018-07-27 21:56:08\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e牛客练习赛 23\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-26 \\u003ca href=\\\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\\\" title=\\\"2018-07-26 09:57:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线离线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-24 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1495/\\\" title=\\\"2018-07-24 15:34:00\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHDU-1495-非常可乐（bfs 模拟倒水 or 数论）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-23 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-2612/\\\" title=\\\"2018-07-23 12:34:42\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-2612-Find a way（双 bfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3278/\\\" title=\\\"2018-07-22 12:10:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ePOJ-3278-Catch That Cow(bfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-2251/\\\" title=\\\"2018-07-22 12:02:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-2251-Dungeon Master（三维 bfs 最短路）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1321/\\\" title=\\\"2018-07-22 11:58:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1321 棋盘问题（dfs）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-1426/\\\" title=\\\"2018-07-22 11:57:13\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-1426-Find The Multiple(dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/adjacent-replacements/\\\" title=\\\"2018-07-22 11:54:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eAdjacent Replacements\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/poj-3984/\\\" title=\\\"2018-07-22 11:50:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003epoj-3984-迷宫问题 (bfs 路径）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-20/\\\" title=\\\"2018-07-22 11:46:25\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 20-染色\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\\\" title=\\\"2018-07-22 11:41:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e杨辉三角\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/hdu-1241/\\\" title=\\\"2018-07-22 11:37:20\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehdu-1241-Oil Deposits (dfs)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\\\" title=\\\"2018-07-22 11:31:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eBFS 求最短路\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/cf-1009/\\\" title=\\\"2018-07-22 11:25:56\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eEducational Codeforces Round 47 (Rated for Div. 2)\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/dfs_bfs/\\\" title=\\\"2018-07-22 11:25:14\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e深搜广搜\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-22 \\u003ca href=\\\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\\\" title=\\\"2018-07-22 10:55:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eTaoTao 要吃鸡\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e07-18 \\u003ca href=\\\"https://lruihao.cn/posts/wannafly-18/\\\" title=\\\"2018-07-18 08:40:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eWannafly 挑战赛 18-序列\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-16 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\\\" title=\\\"2018-06-16 13:18:43\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e简单背包\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-15 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\\\" title=\\\"2018-06-15 07:51:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛参赛队员代表发言\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\\\" title=\\\"2018-06-14 23:32:47\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e18 湘潭邀请赛总结\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/f-sorting/\\\" title=\\\"2018-06-14 22:49:27\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eF.sorting\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/k-2018/\\\" title=\\\"2018-06-14 22:48:16\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eK.2018\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/b-higher/\\\" title=\\\"2018-06-14 22:47:28\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eB.Higher h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/a-easy/\\\" title=\\\"2018-06-14 22:36:58\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA.Easy h-index\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-sort/\\\" title=\\\"2018-06-14 20:23:03\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003esort 排序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\\\" title=\\\"2018-06-14 20:22:21\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e位运算\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-14 \\u003ca href=\\\"https://lruihao.cn/posts/c-with-stl/\\\" title=\\\"2018-06-14 20:22:06\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eC++ with STL\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-07 \\u003ca href=\\\"https://lruihao.cn/posts/links/\\\" title=\\\"2018-06-07 00:06:05\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e各种 Links 汇总与分享\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-03 \\u003ca href=\\\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\\\" title=\\\"2018-06-03 19:41:32\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e戏子春秋\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e06-01 \\u003ca href=\\\"https://lruihao.cn/posts/hexobuild/\\\" title=\\\"2018-06-01 14:34:23\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo+github 搭建个人博客及美化\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/hexowrite/\\\" title=\\\"2018-05-31 23:19:22\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehexo 添加图片，音乐，链接，视频\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-31 \\u003ca href=\\\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\\\" title=\\\"2018-05-31 10:09:15\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e猴子与哪吒\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\\\" title=\\\"2018-05-28 12:24:11\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e博客构建档（HTML \\u0026amp; Markdown）\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e05-28 \\u003ca href=\\\"https://lruihao.cn/posts/hello-world/\\\" title=\\\"2018-05-28 20:01:01\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHello World\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/details\\u003e\"}]}"
  },
  {
    "path": "tags/web-development/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>web-development - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"web-development\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-05-28T12:24:11+00:00\"><meta itemprop=dateModified content=\"2026-05-07T02:00:50+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/web-development/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"web-development\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"web-development\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/web-development/ title=\"web-development | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/web-development/index.xml title=\"web-development | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/web-development/feed.json title=\"web-development | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/web-development/feed.json title=\"web-development | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/web-development/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Web-Development</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>web-development <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i>最近更新</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2026-05-07 02:00:50'>更新于 05-07</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/lruihao/lruihao.github.io/ class=archive-item-link>Lruihao/lruihao.github.io</a>\n<span class=archive-item-date title='2018-05-28 12:24:11'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/web-development/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/web-development/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>web-development - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/web-development/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 07 May 2026 02:00:50 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/web-development/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>博客构建档（HTML &amp; Markdown）</title><link>https://lruihao.cn/projects/lruihao/lruihao.github.io/</link><pubDate>Mon, 28 May 2018 12:24:11 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/lruihao.github.io/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased&gt;&lt;span&gt;&lt;a href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;菠菜眾長&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;blockquote&gt;\n&lt;p&gt;Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;共计 297 篇文章 by &lt;a href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"2026\"&gt;&lt;span&gt;2026&lt;/span&gt;\n &lt;a href=\"#2026\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details open&gt;\n&lt;summary&gt;共计 1 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;03-06 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;一个轻量化 Tooltip 组件。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2025\"&gt;&lt;span&gt;2025&lt;/span&gt;\n &lt;a href=\"#2025\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 14 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-24 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Christmas Easter Egg by JavaScript.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Command line tool for generating a changelog from git tags and commit history&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-16 &lt;a href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;让 Mermaid 图表自动跟随系统深浅色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-05 &lt;a href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;黑盒出关・三把钥匙定江湖&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Playground&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom web component that embeds caniuse.com browser compatibility data for a specific feature.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A custom element for viewing and interacting with JSON data.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS @layer：构建更高效、更可维护的样式层级&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-11 &lt;a href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue.js History 模式下的 NGINX 配置与 API 代理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The webfont package for the MMT typeface.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;API proxies powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-20 &lt;a href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS Flexbox 布局指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Generate a list of all hugo-fixit theme components.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-08 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with asciinema-embed shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2024\"&gt;&lt;span&gt;2024&lt;/span&gt;\n &lt;a href=\"#2024\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 38 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-06 &lt;a href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;震惊！CSS 竟然能获取视口尺寸？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-02 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🌐 A component for site automatic translation.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-22 &lt;a href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Amazon 如何让服务器享受着持续集群安全？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-05 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐟 A canvas implemented animation effect of small fish swimming.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-06 &lt;a href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自动获取 GitHub README 内容添加到 Hugo 文章&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-13 &lt;a href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不使用任何框架，只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for ATOM feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-22 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo theme component for JSON feed custom Output Format.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mobile devtools component powered by vConsole and eruda.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案：CSS 四舍五入数值单位&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-21 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with reward-log or sponsor-log shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-17 &lt;a href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 统计代码量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;现代 CSS 解决方案之异形元素怎么设置阴影？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔖 Embed bookmark of FixIt Docs.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-14 &lt;a href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 实现时间轴、背景图 loading 和渐变边框&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-07 &lt;a href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 Amazon S3 的无限存储潜力&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;标准滚动条控制规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A Hugo theme component with caniuse shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-13 &lt;a href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何实现 VSCode 编辑器窗口边界拖拽类似功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-09 &lt;a href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;架构之基：从根儿上了解设计原则&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-06 &lt;a href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;怎么生成暗黑模式和明亮模式的 SVG 图片？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-20 &lt;a href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;坐高铁去柳州吃螺狮粉&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用 Vercel 反代 Gravatar 实现镜像加速&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Gravatar Proxy powered by Vercel.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-09 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-04 &lt;a href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;临时决定再写一个小工具 - 网站预览图生成器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-02 &lt;a href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用五天时间给自己制作一个封面图生成工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠 Create awesome cover images for your blog posts quickly.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写文档时英文标题什么时候要大写？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-29 &lt;a href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;实现类似于 Element UI 表格的溢出文本提示功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-21 &lt;a href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;聊聊 Chrome 新增的 sizes=&amp;ldquo;auto&amp;rdquo; 属性&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-09 &lt;a href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2023 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-21 &lt;a href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;强大的脑图可视化工具&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;记一次 Debug 第三方包的过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-17 &lt;a href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;为什么很多教程中都有 foo bar？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git submodule: already exists in the index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-10 &lt;a href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给 el-card 添加折叠功能&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2023\"&gt;&lt;span&gt;2023&lt;/span&gt;\n &lt;a href=\"#2023\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 35 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尝试在 Python 中使用 Amazon Titan 文本模型&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-28 &lt;a href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 Node.js 开发一个轻量脚手架&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-20 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🛠️ A node-based tooling for FixIt site initialization.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-18 &lt;a href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;探索 AWS 云上一站式解决方案免费使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-22 &lt;a href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SSH 提交签名验证&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何给 npm 包打补丁？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘系列总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件开发&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 模板使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 组件配置文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 布局模板文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;拖拽式仪表盘 - 功能需求分析&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-11 &lt;a href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;给你的 Markdown 挑挑刺&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;认知复杂度（Cognitive Complexity）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;写作技巧：如何搭建文章的框架结构？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-25 &lt;a href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-17 &lt;a href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;封装 Vue FullScreenToggler 组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 实现全屏和退出全屏&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-15 &lt;a href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文翻译的常见问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Vue 项目中更优雅地使用 icon&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-14 &lt;a href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;VSCode 添加用户代码片段，自定义用户代码片段&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-02 &lt;a href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;CSS 如何实现网格背景效果？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-26 &lt;a href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;将 Hugo 博客部署到亚马逊云服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 and element-ui related demos&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-20 &lt;a href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用魔法打败魔法 - ElBacktop Fix&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Node.js 自动创建 Vue 的路由&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-12 &lt;a href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解决 SourceTree 提交时候 husky 命令失败问题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vue2 + tailwindcss 初始化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-14 &lt;a href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-12 &lt;a href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器 IMG 图片原生懒加载 loading=&amp;ldquo;lazy&amp;rdquo;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-05 &lt;a href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器渲染原理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-04 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文技术文档的写作规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-11 &lt;a href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;浏览器原理 - 事件循环&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2022\"&gt;&lt;span&gt;2022&lt;/span&gt;\n &lt;a href=\"#2022\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 20 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-17 &lt;a href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2022 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-15 &lt;a href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 Homebrew 后导致系统中原有的 npm 和 npx 失效&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-10 &lt;a href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-30 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-04 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Using frequently-used Hugo commands by shell.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Beego 安装及配置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-13 &lt;a href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;语义版本控制（SemVer）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Commit Message Spec&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-12 &lt;a href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;electron 踩坑总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端页面内容加密总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Node.js + GitHub Actions 自动刷新 CDN&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-07 &lt;a href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;不同系统的换行符的差异&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;自定义 ohmyzsh 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-30 &lt;a href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 文件权限&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-29 &lt;a href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 上的开发配置总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;📄 The open-source repo for fixit.lruihao.cn&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-05 &lt;a href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Mac 配置 ADB&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;重新认识 JavaScript&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-30 &lt;a href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;关于 CSS 和 Scss 变量运算那些事&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2021\"&gt;&lt;span&gt;2021&lt;/span&gt;\n &lt;a href=\"#2021\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 19 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-22 &lt;a href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Getting Things Done for ios App Reminders and Github issues&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-16 &lt;a href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime 剪贴板图片粘贴插件 —— Markdown 必备&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 添加知乎卡片式链接 Shortcodes&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo I18n 添加中文繁體翻譯&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-05 &lt;a href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 友情連結模板&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 本地管理 Shell 腳本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-04 &lt;a href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-03 &lt;a href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;个人博客从 Hexo 迁移至 Hugo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lruihao&amp;rsquo;s Note&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-22 &lt;a href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;less&amp;amp;sass&amp;amp;scss&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Lightbox&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2020&amp;amp;2021 總結&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-24 &lt;a href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Create watermark for webpage and automatic adjust when window resize.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-23 &lt;a href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cell Watermark&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Code Review 怎麼做？新手工程師如何提升「程式碼品質」&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-02 &lt;a href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-01 &lt;a href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;你为什么吸烟？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 leancloud-storage 实现的无后端记账本&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2020\"&gt;&lt;span&gt;2020&lt;/span&gt;\n &lt;a href=\"#2020\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 8 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 功能介绍与安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-25 &lt;a href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;cell-blog 开发记录&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-17 &lt;a href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基于 Laravel 7 开发，支持 Markdown 语法的博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-26 &lt;a href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Python 刷 csdn 访问量&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Cron 表达式的基本语法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-25 &lt;a href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新冠疫情未返校未返工第 N 天之“自动打卡”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2019 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;SQL 总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2019\"&gt;&lt;span&gt;2019&lt;/span&gt;\n &lt;a href=\"#2019\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 71 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云为静态页面添加“动态”相册&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-23 &lt;a href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-14 &lt;a href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;RESTful&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 同时主动推送链接到百度，神马等站长平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-28 &lt;a href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 按行读取文件信息&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目之，湘也。— 沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-19 &lt;a href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;设置网站运行时间&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-08 &lt;a href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;script 的三种加载方式 (async, defer)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Sublime Text3 快捷键大全&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;NetBeans IDE 开发设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Web 开发规则，代码规范&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-19 &lt;a href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单评论模块&amp;ndash;php 表单练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-15 &lt;a href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;php 函数学习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-12 &lt;a href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;WAMPServer 自定义网站根目录等设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-21 &lt;a href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅱ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-18 &lt;a href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实训总结Ⅰ&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-26 &lt;a href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;判断三角形的黑盒测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HustOJ 基础搭建教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-17 &lt;a href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最大公约数（二进制算法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-16 &lt;a href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装 ImgURL 图床&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-11 &lt;a href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 实战：模拟 post 请求定时获取后台数据并打包发送至微信&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-10 &lt;a href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;条件注释判断浏览器版本&amp;lt;!&amp;ndash;[if lt IE 9]&amp;gt;;&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 设置程序每天 8 点定时执行任务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-09 &lt;a href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;安装 pyinstaller 出错的解决办法及 csdn 工具实例打包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-08 &lt;a href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 实现一个单线程的资源下载器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Python 如何操作 Json？&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-07 &lt;a href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 发送 post 请求进行简单的接口测试&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-06 &lt;a href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 通过 URL 和 URLConnection 访问网页资源&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-02 &lt;a href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;文件加密解密（字节流）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-01 &lt;a href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模拟借书系统（java 异常练习）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-27 &lt;a href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用 MyQR 制作专属动态二维码 (py 和 exe 版本）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-24 &lt;a href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;第一次面试经历&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-22 &lt;a href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 爬取网站图片（图片链接相似）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;python 玩微信：初探 wxpy&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-20 &lt;a href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;基本 python 实现的爬取微信好友头像，并拼接成大图&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-19 &lt;a href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;用记事本编写第一个 java 程序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-18 &lt;a href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 正则表达式练习&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-14 &lt;a href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 常用类&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-12 &lt;a href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU 1009 FatMouse&amp;rsquo; Trade（贪心）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;04-03 &lt;a href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本地搭建网站服务器并穿透内网&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;前端面试题 - HTML+CSS&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-30 &lt;a href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百钱百鸡（枚举法）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;大数乘法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-28 &lt;a href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;vps 配置 ssl 及 https 重定向&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo-theme-next @modified LRH&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Java 父类子类的对象初始化过程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-21 &lt;a href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ubuntu + windows 双系统默认启动项设置&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-19 &lt;a href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宅音乐播放器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔面板安装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-18 &lt;a href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;web 汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-16 &lt;a href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 泛型 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;eclipse 的基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;匿名类在可视化界面中的应用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;模仿知乎卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-15 &lt;a href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;win10,ubuntu 双系统时间不一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-08 &lt;a href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;QQ 强制生成卡片式链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;磁盘存储器的管理&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;03-04 &lt;a href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;JS 验证码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;02-01 &lt;a href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;还乡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-31 &lt;a href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Elegant and powerful theme for Hexo.&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-24 &lt;a href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 继承 test&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-22 &lt;a href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;利用腾讯云对象存储 COS 桶托管 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-18 &lt;a href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Arrays 类及基本使用&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-16 &lt;a href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在搜索、文章底部、侧栏添加最近文章模块&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 猜数字小游戏（Math 类）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-15 &lt;a href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;面向对象基础知识总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 水仙花数（循环）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 录入数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-14 &lt;a href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;java 标识符&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;主谓一致&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;01-12 &lt;a href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;2018 年度总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;\n&lt;h2 class=\"heading-element\" id=\"2018\"&gt;&lt;span&gt;2018&lt;/span&gt;\n &lt;a href=\"#2018\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;details&gt;\n&lt;summary&gt;共计 91 篇文章&lt;/summary&gt;\n&lt;ul&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;形式倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-10 &lt;a href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;完全倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;12-08 &lt;a href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英语语法&amp;ndash;部分倒装&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-24 &lt;a href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 插件及 next 内置样式集&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-17 &lt;a href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;通过 bat 批处理文件自动提交博客代码&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-12 &lt;a href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博採眾長 app&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-11 &lt;a href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;caddy-两步搭建超简单云盘&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-09 &lt;a href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;next 添加支持 pdf&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;js 判断用户设备类型及平台&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;11-03 &lt;a href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客源码备份&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-30 &lt;a href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Git 常用指令汇总&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网站备案之旅&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;shell 脚本初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-29 &lt;a href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;云服务器 CentOS 系统搭建 web 服务&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-28 &lt;a href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 js 准确获取当前页面 url 网址信息及 301 重定向实战&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;windows 上搭建 web 服务器&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-26 &lt;a href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;使用 Git 上传代码到 github, coding 等仓库&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-23 &lt;a href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;termux 基本使用教程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-17 &lt;a href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;ttf 字体压缩&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-15 &lt;a href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux 编程初体验&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-12 &lt;a href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;沐目体&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-09 &lt;a href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;流水线&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;10-08 &lt;a href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;计算机数据&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-27 &lt;a href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页夜间效果&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-26 &lt;a href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;网页离开时改变标题“崩溃欺骗”&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-22 &lt;a href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;linux/centos 下的安装 git&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;09-21 &lt;a href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;每一个优秀的人，都有一段沉默的时光&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-31 &lt;a href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Vim 速查表&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-30 &lt;a href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo next 主题添加字数统计（2018）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-21 &lt;a href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo d 出错&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-20 &lt;a href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 个性化 - next 主题动态显示 subtitle&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-15 &lt;a href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;“高逼格”C 语言画心&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-14 &lt;a href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;git index.lock&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-11 &lt;a href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在 Android 上搭建 hexo 博客&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;石子阵列（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and Stairs&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Dreamoon and WiFi（组合数学）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-10 &lt;a href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The equation-SGU106（扩展欧几里得）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Leading and Trailing-lightoj1282（快速幂 + 对数运算）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-09 &lt;a href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Codeforces Round 502(Div.1 + Div.2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-08 &lt;a href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;欧拉函数&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-06 &lt;a href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Heavy Transportation-poj1797(dijkstra 或最大生成树）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-04 &lt;a href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 博客自定义 console log&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Til the Cows Come Home-poj2387(dijkstra 判断重边）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-03 &lt;a href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;最短路入门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客暑假多校第五场&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-02 &lt;a href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;食物链-poj1182（带权并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫-HDU-1272（并查集 or 树性质）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;08-01 &lt;a href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong-hdu3038（带权并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Finding Criminals-Codeforces680B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Bear and Five Cards-Codeforces680A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables-HDU-1213（并查集求连通域数目）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects-POJ-1611（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network-POJ-2236（并查集）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Piles-with-stones&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-31 &lt;a href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程-HDU-1232（并查集经典模板）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-27 &lt;a href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;牛客练习赛 23&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-26 &lt;a href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线离线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-24 &lt;a href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;HDU-1495-非常可乐（bfs 模拟倒水 or 数论）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-23 &lt;a href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-2612-Find a way（双 bfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;POJ-3278-Catch That Cow(bfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-2251-Dungeon Master（三维 bfs 最短路）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1321 棋盘问题（dfs）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-1426-Find The Multiple(dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Adjacent Replacements&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;poj-3984-迷宫问题 (bfs 路径）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 20-染色&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;杨辉三角&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hdu-1241-Oil Deposits (dfs)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;BFS 求最短路&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Educational Codeforces Round 47 (Rated for Div. 2)&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;深搜广搜&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-22 &lt;a href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;TaoTao 要吃鸡&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;07-18 &lt;a href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Wannafly 挑战赛 18-序列&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-16 &lt;a href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;简单背包&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-15 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛参赛队员代表发言&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;18 湘潭邀请赛总结&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;F.sorting&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;K.2018&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;B.Higher h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A.Easy h-index&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;sort 排序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;位运算&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-14 &lt;a href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;C++ with STL&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-07 &lt;a href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;各种 Links 汇总与分享&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-03 &lt;a href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;戏子春秋&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;06-01 &lt;a href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo+github 搭建个人博客及美化&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;hexo 添加图片，音乐，链接，视频&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-31 &lt;a href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;猴子与哪吒&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;博客构建档（HTML &amp;amp; Markdown）&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;05-28 &lt;a href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Hello World&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/details&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/web-development/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/web-development/</title><link rel=canonical href=https://lruihao.cn/tags/web-development/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/web-development/\"></head></html>"
  },
  {
    "path": "tags/webfont/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"webfont - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"The webfont package for the MMT typeface.\",\"date_published\":\"2025-04-10T08:35:34Z\",\"date_modified\":\"2026-01-05T07:25:04Z\",\"id\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"url\":\"https://lruihao.cn/projects/lruihao/mmt-webfont/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"cjk\",\"mmt\",\"vue3\",\"webfont\"],\"summary\":\"MMT webfont package The webfont package for the MMT typeface.\\nDemo MMT typeface online demo\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"mmt-webfont-package\\\" data-decreased\\u003e\\u003cspan\\u003eMMT webfont package\\u003c/span\\u003e\\n  \\u003ca href=\\\"#mmt-webfont-package\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe webfont package for the \\u003ca href=\\\"https://github.com/Lruihao/mmt\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e typeface.\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"demo\\\"\\u003e\\u003cspan\\u003eDemo\\u003c/span\\u003e\\n  \\u003ca href=\\\"#demo\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://lruihao.github.io/mmt-webfont/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eMMT typeface online demo\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/webfont/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>webfont - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"webfont\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2025-04-10T08:35:34+00:00\"><meta itemprop=dateModified content=\"2026-01-05T07:25:04+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/webfont/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"webfont\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"webfont\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/webfont/ title=\"webfont | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/webfont/index.xml title=\"webfont | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/webfont/feed.json title=\"webfont | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/webfont/feed.json title=\"webfont | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/webfont/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Webfont</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>webfont <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2025</h2><article class=archive-item><a href=/projects/lruihao/mmt-webfont/ class=archive-item-link>Lruihao/mmt-webfont</a>\n<span class=archive-item-date title='2025-04-10 08:35:34'>04-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/webfont/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/webfont/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>webfont - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/webfont/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Mon, 05 Jan 2026 07:25:04 +0000</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/webfont/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>The webfont package for the MMT typeface.</title><link>https://lruihao.cn/projects/lruihao/mmt-webfont/</link><pubDate>Thu, 10 Apr 2025 08:35:34 +0000</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/lruihao/mmt-webfont/</guid><category domain=\"https://lruihao.cn/categories/github/\">GitHub</category><description>&lt;h2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased&gt;&lt;span&gt;MMT webfont package&lt;/span&gt;\n &lt;a href=\"#mmt-webfont-package\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The webfont package for the &lt;a href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; typeface.&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"demo\"&gt;&lt;span&gt;Demo&lt;/span&gt;\n &lt;a href=\"#demo\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;MMT typeface online demo&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/webfont/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/webfont/</title><link rel=canonical href=https://lruihao.cn/tags/webfont/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/webfont/\"></head></html>"
  },
  {
    "path": "tags/widget/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"widget - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/widget/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>widget - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"widget\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-12T21:25:18+08:00\"><meta itemprop=dateModified content=\"2024-01-17T16:39:29+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/widget/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"widget\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"widget\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/widget/ title=\"widget | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/widget/index.xml title=\"widget | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/widget/feed.json title=\"widget | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/widget/feed.json title=\"widget | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/widget/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Widget</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>widget <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/widget/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/widget/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>widget - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/widget/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 17 Jan 2024 16:39:29 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/widget/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/widget/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/widget/</title><link rel=canonical href=https://lruihao.cn/tags/widget/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/widget/\"></head></html>"
  },
  {
    "path": "tags/windows/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"windows - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"WAMPServer 自定义网站根目录等设置\",\"date_published\":\"2019-07-12T18:44:36&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wamproot/\",\"url\":\"https://lruihao.cn/posts/wamproot/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"WAMP\",\"PHP\",\"windows\",\"server\"],\"summary\":\" 使用 WAMPServer 时自定义网站根目录。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e使用 WAMPServer 时自定义网站根目录。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"ubuntu + windows 双系统默认启动项设置\",\"date_published\":\"2019-03-21T12:48:30&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/windefault/\",\"url\":\"https://lruihao.cn/posts/windefault/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"windows\",\"ubuntu\"],\"image\":\"/posts/windefault/images/1.png\",\"summary\":\" 双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"win10,ubuntu 双系统时间不一致\",\"date_published\":\"2019-03-15T14:28:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ubuntutime/\",\"url\":\"https://lruihao.cn/posts/ubuntutime/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ubuntu\",\"linux\",\"windows\"],\"summary\":\" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"windows 上搭建 web 服务器\",\"date_published\":\"2018-10-26T21:56:18&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-win/\",\"url\":\"https://lruihao.cn/posts/web-server-win/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"windows\"],\"summary\":\" 我用的 win10\\n0.1 打开控制面板 选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e我用的 win10\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"打开控制面板\\\"\\u003e\\u003cspan\\u003e0.1 打开控制面板\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。\\u003cbr\\u003e\\n\\u003cfigure\\u003e\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/posts/web-server-win/images/1.png\\\" title=\\\"打开控制面板\\\" data-thumbnail=\\\"/posts/web-server-win/images/1.png\\\" data-sub-html=\\\"\\u003ch2\\u003e打开控制面板\\u003c/h2\\u003e\\u003cp\\u003e打开控制面板\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/windows/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>windows - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"windows\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-07-12T18:44:36+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/windows/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"windows\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"windows\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/windows/ title=\"windows | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/windows/index.xml title=\"windows | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/windows/feed.json title=\"windows | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/windows/feed.json title=\"windows | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/windows/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Windows</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>windows <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/wamproot/ class=archive-item-link>WAMPServer 自定义网站根目录等设置</a>\n<span class=archive-item-date title='2019-07-12 18:44:36'>07-12</span></article><article class=archive-item><a href=/posts/windefault/ class=archive-item-link>Ubuntu + Windows 双系统默认启动项设置</a>\n<span class=archive-item-date title='2019-03-21 12:48:30'>03-21</span></article><article class=archive-item><a href=/posts/ubuntutime/ class=archive-item-link>Win10,ubuntu 双系统时间不一致</a>\n<span class=archive-item-date title='2019-03-15 14:28:10'>03-15</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/web-server-win/ class=archive-item-link>Windows 上搭建 Web 服务器</a>\n<span class=archive-item-date title='2018-10-26 21:56:18'>10-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/windows/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/windows/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>windows - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/windows/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/windows/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>WAMPServer 自定义网站根目录等设置</title><link>https://lruihao.cn/posts/wamproot/</link><pubDate>Fri, 12 Jul 2019 18:44:36 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wamproot/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;使用 WAMPServer 时自定义网站根目录。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>ubuntu + windows 双系统默认启动项设置</title><link>https://lruihao.cn/posts/windefault/</link><pubDate>Thu, 21 Mar 2019 12:48:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/windefault/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;双系统默认启动项是 Ubuntu，而日常使用最多的还是 Windows，所以说很不方便，一不小心就开机到 Ubuntu 去了。今天来设置一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>win10,ubuntu 双系统时间不一致</title><link>https://lruihao.cn/posts/ubuntutime/</link><pubDate>Fri, 15 Mar 2019 14:28:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ubuntutime/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项，所以总是开机忘记点下键，一进 Ubuntu 系统时间就不对了（总是少了 8 小时），回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>windows 上搭建 web 服务器</title><link>https://lruihao.cn/posts/web-server-win/</link><pubDate>Fri, 26 Oct 2018 21:56:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-win/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;我用的 win10&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h3 class=\"heading-element\" id=\"打开控制面板\"&gt;&lt;span&gt;0.1 打开控制面板&lt;/span&gt;\n &lt;a href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;选择并进入“程序”，双击“启用或关闭 Windows 服务”，在弹出的窗口中选择“Internet Information Services”下面所有地选项，点击确定后，开始更新服务。&lt;br&gt;\n&lt;figure&gt;&lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"&lt;h2&gt;打开控制面板&lt;/h2&gt;&lt;p&gt;打开控制面板&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/windows/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/windows/</title><link rel=canonical href=https://lruihao.cn/tags/windows/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/windows/\"></head></html>"
  },
  {
    "path": "tags/wxpy/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"wxpy - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"python 实战：模拟 post 请求定时获取后台数据并打包发送至微信\",\"date_published\":\"2019-05-11T17:02:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mx2wx/\",\"url\":\"https://lruihao.cn/posts/mx2wx/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyinstaller\",\"HTTP\",\"JSON\",\"Cron\"],\"summary\":\" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。\\u003cbr\\u003e\\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"基本 python 实现的爬取微信好友头像，并拼接成大图\",\"date_published\":\"2019-04-20T13:32:58&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wximgpy/\",\"url\":\"https://lruihao.cn/posts/wximgpy/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"wxpy\",\"pillow\",\"Python\"],\"image\":\"/posts/wximgpy/images/1.jpg\",\"summary\":\" Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\n文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003ePython 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n\\u003cstrong\\u003e文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/wxpy/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>wxpy - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"wxpy\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-11T17:02:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/wxpy/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"wxpy\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"wxpy\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/wxpy/ title=\"wxpy | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/wxpy/index.xml title=\"wxpy | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/wxpy/feed.json title=\"wxpy | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/wxpy/feed.json title=\"wxpy | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/wxpy/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>Wxpy</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>wxpy <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/mx2wx/ class=archive-item-link>Python 实战：模拟 Post 请求定时获取后台数据并打包发送至微信</a>\n<span class=archive-item-date title='2019-05-11 17:02:31'>05-11</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/wximgpy/ class=archive-item-link>基本 Python 实现的爬取微信好友头像，并拼接成大图</a>\n<span class=archive-item-date title='2019-04-20 13:32:58'>04-20</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/wxpy/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/wxpy/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>wxpy - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/wxpy/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/wxpy/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>python 实战：模拟 post 请求定时获取后台数据并打包发送至微信</title><link>https://lruihao.cn/posts/mx2wx/</link><pubDate>Sat, 11 May 2019 17:02:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mx2wx/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据，再打包发送至指定的微信群或者好友。&lt;br&gt;\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>基本 python 实现的爬取微信好友头像，并拼接成大图</title><link>https://lruihao.cn/posts/wximgpy/</link><pubDate>Sat, 20 Apr 2019 13:32:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wximgpy/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Python 通过 wxpy 登录微信网页版，爬取好友所有头像并拼接成一张大图。然后删除所有子图。（注释相关代码可以不删除）&lt;br&gt;\n&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;\n&lt;strong&gt;文中编码由 Sunbelife 提供，来自他的同名微信公众号，本博仅用于学习，侵删&lt;/strong&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/wxpy/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/wxpy/</title><link rel=canonical href=https://lruihao.cn/tags/wxpy/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/wxpy/\"></head></html>"
  },
  {
    "path": "tags/云盘/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"云盘 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"caddy-两步搭建超简单云盘\",\"date_published\":\"2018-11-11T13:59:27&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/caddy-file/\",\"url\":\"https://lruihao.cn/posts/caddy-file/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"云盘\",\"caddy\",\"server\"],\"summary\":\"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下：\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"安装\\\"\\u003e\\u003cspan\\u003e11 安装\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%89%e8%a3%85\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003ecd ~\\ncurl https://getcaddy.com | bash -s personal http.filemanager\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"编写配置文件\\\"\\u003e\\u003cspan\\u003e12 编写配置文件\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003evim Caddyfile\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e内容如下：\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/云盘/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>云盘 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"云盘\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-11-11T13:59:27+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"云盘\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"云盘\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/ title=\"云盘 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/index.xml title=\"云盘 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/feed.json title=\"云盘 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/feed.json title=\"云盘 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E4%BA%91%E7%9B%98/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>云盘</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>云盘 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/caddy-file/ class=archive-item-link>Caddy-两步搭建超简单云盘</a>\n<span class=archive-item-date title='2018-11-11 13:59:27'>11-11</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E4%BA%91%E7%9B%98/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/云盘/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>云盘 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>caddy-两步搭建超简单云盘</title><link>https://lruihao.cn/posts/caddy-file/</link><pubDate>Sun, 11 Nov 2018 13:59:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/caddy-file/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"安装\"&gt;&lt;span&gt;16 安装&lt;/span&gt;\n &lt;a href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;cd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"编写配置文件\"&gt;&lt;span&gt;17 编写配置文件&lt;/span&gt;\n &lt;a href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;vim Caddyfile&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;内容如下：&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/云盘/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/</title><link rel=canonical href=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E4%BA%91%E7%9B%98/\"></head></html>"
  },
  {
    "path": "tags/他山之石/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"他山之石 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"中文翻译的常见问题\",\"date_published\":\"2023-09-15T11:07:56&#43;08:00\",\"date_modified\":\"2023-11-17T20:45:09&#43;08:00\",\"id\":\"https://lruihao.cn/posts/translation-guide/\",\"url\":\"https://lruihao.cn/posts/translation-guide/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"他山之石\"],\"summary\":\" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\\n其中翻译的规范也是中文写作的规范，更多详见之前写的 中文技术文档的写作规范。\\n为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e以下内容截取自 \\u003ca href=\\\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e针对 MDN 文档的本地化指南\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的中文翻译的常见问题小节。\\u003c/p\\u003e\\n\\u003cp\\u003e其中翻译的规范也是中文写作的规范，更多详见之前写的 \\u003ca href=\\\"/posts/document-style-guide/\\\"\\u003e中文技术文档的写作规范\\u003c/a\\u003e。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e为保证简体中文文档格式的一致性，翻译指南列出了部分规范。\\u003c/p\\u003e\"},{\"title\":\"新手向：Vue 2.0 的建议学习顺序\",\"date_published\":\"2023-03-14T08:37:59&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vue2-guid/\",\"url\":\"https://lruihao.cn/posts/vue2-guid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Vue2\",\"他山之石\"],\"summary\":\" 注：2.0 已经有中文文档 。如果对自己英文有信心，也可以直接阅读英文文档。\\n此指南仅供参考，请根据自身实际情况灵活调整。\\n转载自： 尤雨溪，新手向：Vue 2.0 的建议学习顺序，2017-08-04 14:51\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e注：2.0 已经有\\u003ca href=\\\"https://v2.cn.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e中文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 。如果对自己英文有信心，也可以直接阅读\\u003ca href=\\\"https://v2.vuejs.org/\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文文档\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e。\\u003cbr\\u003e\\n此指南仅供参考，请根据自身实际情况灵活调整。\\u003cbr\\u003e\\n转载自： \\u003ca href=\\\"https://www.zhihu.com/people/evanyou\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e尤雨溪\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，\\u003ca href=\\\"https://zhuanlan.zhihu.com/p/23134551\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e新手向：Vue 2.0 的建议学习顺序\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e，2017-08-04 14:51\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"linux 文件权限\",\"date_published\":\"2022-07-30T17:15:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/linux-permission/\",\"url\":\"https://lruihao.cn/posts/linux-permission/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"Mac\",\"他山之石\"],\"summary\":\"记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\n\",\"content_html\":\"\\u003cp\\u003e记录 linux 系统下文件权限相关的内容，Mac OS 下类似。\\u003c/p\\u003e\"},{\"title\":\"Sublime Text3 快捷键大全\",\"date_published\":\"2019-08-15T20:59:10&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/sublime-text3/\",\"url\":\"https://lruihao.cn/posts/sublime-text3/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Sublime\",\"他山之石\"],\"summary\":\"Sublime Text3 快捷键一览表\\n\",\"content_html\":\"\\u003cp\\u003eSublime Text3 快捷键一览表\\u003c/p\\u003e\"},{\"title\":\"条件注释判断浏览器版本\\u003c!--[if lt IE 9]\\u003e;\",\"date_published\":\"2019-05-10T13:08:27&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ifzhushi/\",\"url\":\"https://lruihao.cn/posts/ifzhushi/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"HTML\",\"他山之石\"],\"summary\":\" \\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cspan\\u003e\\u0026lt;!--[if !IE]\\u0026gt;\\u0026lt;!--\\u0026gt; 除 IE 外都可识别 \\u0026lt;!--\\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE]\\u0026gt; 所有的 IE 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 6]\\u0026gt; 仅 IE6 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 6]\\u0026gt; IE6 以及 IE6 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 6]\\u0026gt; IE6 以及 IE6 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 7]\\u0026gt; 仅 IE7 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if lt IE 7]\\u0026gt; IE7 以及 IE7 以下版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if gte IE 7]\\u0026gt; IE7 以及 IE7 以上版本可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 8]\\u0026gt; 仅 IE8 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003cbr\\u003e\\u003cspan\\u003e\\u0026lt;!--[if IE 9]\\u0026gt; 仅 IE9 可识别 \\u0026lt;![endif]--\\u0026gt;\\u003c/span\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"Python 如何操作 Json？\",\"date_published\":\"2019-05-07T18:42:47&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/jsoninfo/\",\"url\":\"https://lruihao.cn/posts/jsoninfo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"JSON\",\"他山之石\"],\"image\":\"/posts/jsoninfo/images/1.jpg\",\"summary\":\" Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eJson（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"python 玩微信：初探 wxpy\",\"date_published\":\"2019-04-20T15:44:57&#43;08:00\",\"date_modified\":\"2019-04-20T15:44:57&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wxpy1/\",\"url\":\"https://lruihao.cn/posts/wxpy1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Python\",\"wxpy\",\"pyecharts\",\"jieba\",\"他山之石\"],\"image\":\"/posts/wxpy1/images/1.png\",\"summary\":\" 文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\n查看微信好友男女比例 查看好友地区分布 群性别统计 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e\\u003cstrong\\u003e\\u003cem\\u003e文中涉及的图片涉及个人隐私，仅做举例，请勿传播\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e查看微信好友男女比例\\u003c/li\\u003e\\n\\u003cli\\u003e查看好友地区分布\\u003c/li\\u003e\\n\\u003cli\\u003e群性别统计\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"hexo-theme-next @modified LRH\",\"date_published\":\"2019-03-21T16:43:19&#43;08:00\",\"date_modified\":\"2019-09-13T16:43:19&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"url\":\"https://lruihao.cn/posts/hexo-theme-next/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"Node.js\",\"他山之石\"],\"image\":\"/posts/hexo-theme-next/images/next.png\",\"summary\":\" 危险 如无必要，不再更新！（2019.09.13）\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\n以下仍为当前博客使用主题，lib 资源已打包 github。 \",\"content_html\":\"\\u003c!-- markdownlint-disable-file --\\u003e\\n\\u003cdiv class=\\\"details admonition danger open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-bolt\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e危险\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cspan style=\\\"color: #d9534f;font-size: 1.2em;\\\"\\u003e\\u003cstrong\\u003e如无必要，不再更新！（2019.09.13）\\u003c/strong\\u003e\\u003c/span\\u003e\\u003cbr\\u003e\\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将\\u003cstrong\\u003e放弃对 next 的主题的自定义修改\\u003c/strong\\u003e，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。\\u003cbr\\u003e\\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。\\u003cbr\\u003e\\n以下仍为当前博客使用主题，lib 资源已打包 github。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"还乡\",\"date_published\":\"2019-02-01T20:44:40&#43;08:00\",\"date_modified\":\"2019-02-01T20:44:40&#43;08:00\",\"id\":\"https://lruihao.cn/posts/renative/\",\"url\":\"https://lruihao.cn/posts/renative/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\",\"他山之石\"],\"summary\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"js 判断用户设备类型及平台\",\"date_published\":\"2018-11-03T23:35:44&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/js-device/\",\"url\":\"https://lruihao.cn/posts/js-device/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"他山之石\"],\"summary\":\"前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\n\",\"content_html\":\"\\u003cp\\u003e前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。\\u003c/p\\u003e\"},{\"title\":\"云服务器 CentOS 系统搭建 web 服务\",\"date_published\":\"2018-10-29T09:15:58&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-server-yun/\",\"url\":\"https://lruihao.cn/posts/web-server-yun/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"server\",\"linux\",\"他山之石\"],\"summary\":\"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录，可通过 cd 命令切换。\\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\n默认根目录/var/www/html/\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"搭建-apache-web-服务\\\"\\u003e\\u003cspan\\u003e0.7 搭建 Apache web 服务\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003col\\u003e\\n\\u003cli\\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# yum install -y httpd\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e注意安装目录，可通过 cd 命令切换。\\u003c/p\\u003e\\n\\u003col start=\\\"2\\\"\\u003e\\n\\u003cli\\u003e启动 HTTP 服务\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003e如果启动失败，可通过 systemctl status httpd.service 查看错误原因。\\u003cbr\\u003e\\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。\\u003cbr\\u003e\\n默认根目录\\u003ccode\\u003e/var/www/html/\\u003c/code\\u003e\\u003c/p\\u003e\"},{\"title\":\"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\",\"date_published\":\"2018-10-28T14:22:00&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/href-301/\",\"url\":\"https://lruihao.cn/posts/href-301/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"redirect\",\"JavaScript\",\"他山之石\"],\"summary\":\"0.5 获取链接（转） 传送门\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"获取链接转\\\"\\u003e\\u003cspan\\u003e0.5 获取链接（转）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://www.cnblogs.com/zhabayi/p/6419938.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e传送门\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。\\u003c/p\\u003e\"},{\"title\":\"Vim 速查表\",\"date_published\":\"2018-08-31T11:46:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/vim/\",\"url\":\"https://lruihao.cn/posts/vim/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"vim\",\"他山之石\"],\"summary\":\"Vim 速查表 - 帮你提高 N 倍效率\\n\",\"content_html\":\"\\u003cp\\u003eVim 速查表 - 帮你提高 N 倍效率\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/他山之石/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>他山之石 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"他山之石\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-09-15T11:07:56+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"他山之石\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"他山之石\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ title=\"他山之石 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/index.xml title=\"他山之石 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/feed.json title=\"他山之石 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/feed.json title=\"他山之石 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>他山之石</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>他山之石 <sup>14</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/translation-guide/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>中文翻译的常见问题</a>\n<span class=archive-item-date title='2023-09-15 11:07:56'>09-15</span></article><article class=archive-item><a href=/posts/vue2-guid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>新手向：Vue 2.0 的建议学习顺序</a>\n<span class=archive-item-date title='2023-03-14 08:37:59'>03-14</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/linux-permission/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Linux 文件权限</a>\n<span class=archive-item-date title='2022-07-30 17:15:44'>07-30</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/sublime-text3/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Sublime Text3 快捷键大全</a>\n<span class=archive-item-date title='2019-08-15 20:59:10'>08-15</span></article><article class=archive-item><a href=/posts/ifzhushi/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>条件注释判断浏览器版本&lt;!--[If Lt IE 9]>;</a>\n<span class=archive-item-date title='2019-05-10 13:08:27'>05-10</span></article><article class=archive-item><a href=/posts/jsoninfo/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Python 如何操作 Json？</a>\n<span class=archive-item-date title='2019-05-07 18:42:47'>05-07</span></article><article class=archive-item><a href=/posts/wxpy1/ class=archive-item-link>Python 玩微信：初探 Wxpy</a>\n<span class=archive-item-date title='2019-04-20 15:44:57'>04-20</span></article><article class=archive-item><a href=/posts/hexo-theme-next/ class=archive-item-link>Hexo-Theme-Next @Modified LRH</a>\n<span class=archive-item-date title='2019-03-21 16:43:19'>03-21</span></article><article class=archive-item><a href=/posts/renative/ class=archive-item-link>还乡</a>\n<span class=archive-item-date title='2019-02-01 20:44:40'>02-01</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/js-device/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Js 判断用户设备类型及平台</a>\n<span class=archive-item-date title='2018-11-03 23:35:44'>11-03</span></article><article class=archive-item><a href=/posts/web-server-yun/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>云服务器 CentOS 系统搭建 Web 服务</a>\n<span class=archive-item-date title='2018-10-29 09:15:58'>10-29</span></article><article class=archive-item><a href=/posts/href-301/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>使用 Js 准确获取当前页面 Url 网址信息及 301 重定向实战</a>\n<span class=archive-item-date title='2018-10-28 14:22:00'>10-28</span></article><article class=archive-item><a href=/posts/vim/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>Vim 速查表</a>\n<span class=archive-item-date title='2018-08-31 11:46:39'>08-31</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/他山之石/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>他山之石 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>中文翻译的常见问题</title><link>https://lruihao.cn/posts/translation-guide/</link><pubDate>Fri, 15 Sep 2023 11:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/translation-guide/</guid><category domain=\"https://lruihao.cn/categories/spec/\">程序猿的自我修养</category><category domain=\"https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/\">翻译</category><description>&lt;blockquote&gt;\n&lt;p&gt;以下内容截取自 &lt;a href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;针对 MDN 文档的本地化指南&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的中文翻译的常见问题小节。&lt;/p&gt;\n&lt;p&gt;其中翻译的规范也是中文写作的规范，更多详见之前写的 &lt;a href=\"https://lruihao.cn/posts/document-style-guide/\"&gt;中文技术文档的写作规范&lt;/a&gt;。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;为保证简体中文文档格式的一致性，翻译指南列出了部分规范。&lt;/p&gt;</description></item><item><title>新手向：Vue 2.0 的建议学习顺序</title><link>https://lruihao.cn/posts/vue2-guid/</link><pubDate>Tue, 14 Mar 2023 08:37:59 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vue2-guid/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;blockquote&gt;\n&lt;p&gt;注：2.0 已经有&lt;a href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;中文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 。如果对自己英文有信心，也可以直接阅读&lt;a href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文文档&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;。&lt;br&gt;\n此指南仅供参考，请根据自身实际情况灵活调整。&lt;br&gt;\n转载自： &lt;a href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;尤雨溪&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，&lt;a href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;新手向：Vue 2.0 的建议学习顺序&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;，2017-08-04 14:51&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>linux 文件权限</title><link>https://lruihao.cn/posts/linux-permission/</link><pubDate>Sat, 30 Jul 2022 17:15:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/linux-permission/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;记录 linux 系统下文件权限相关的内容，Mac OS 下类似。&lt;/p&gt;</description></item><item><title>Sublime Text3 快捷键大全</title><link>https://lruihao.cn/posts/sublime-text3/</link><pubDate>Thu, 15 Aug 2019 20:59:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/sublime-text3/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Sublime Text3 快捷键一览表&lt;/p&gt;</description></item><item><title>条件注释判断浏览器版本&lt;!--[if lt IE 9]&gt;;</title><link>https://lruihao.cn/posts/ifzhushi/</link><pubDate>Fri, 10 May 2019 13:08:27 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ifzhushi/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;span&gt;&amp;lt;!--[if !IE]&amp;gt;&amp;lt;!--&amp;gt; 除 IE 外都可识别 &amp;lt;!--&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE]&amp;gt; 所有的 IE 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 6]&amp;gt; 仅 IE6 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 6]&amp;gt; IE6 以及 IE6 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 6]&amp;gt; IE6 以及 IE6 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 7]&amp;gt; 仅 IE7 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if lt IE 7]&amp;gt; IE7 以及 IE7 以下版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if gte IE 7]&amp;gt; IE7 以及 IE7 以上版本可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 8]&amp;gt; 仅 IE8 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span&gt;&amp;lt;!--[if IE 9]&amp;gt; 仅 IE9 可识别 &amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>Python 如何操作 Json？</title><link>https://lruihao.cn/posts/jsoninfo/</link><pubDate>Tue, 07 May 2019 18:42:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/jsoninfo/</guid><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;Json（JavaScript Object Notation）它是一种轻量级的数据交换格式，具有数据格式简单，读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输，大大的简化了服务器和客户端的开发工作量。相对于 XML 来说，更加的轻量级，更方便解析，因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>python 玩微信：初探 wxpy</title><link>https://lruihao.cn/posts/wxpy1/</link><pubDate>Sat, 20 Apr 2019 15:44:57 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wxpy1/</guid><category domain=\"https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/\">瞎折腾</category><category domain=\"https://lruihao.cn/categories/python/\">Python</category><description>&lt;blockquote&gt;\n&lt;p&gt;&lt;strong&gt;&lt;em&gt;文中涉及的图片涉及个人隐私，仅做举例，请勿传播&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;查看微信好友男女比例&lt;/li&gt;\n&lt;li&gt;查看好友地区分布&lt;/li&gt;\n&lt;li&gt;群性别统计&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;!-- markdownlint-disable-file --&gt;\n&lt;div class=\"details admonition danger open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"&gt;&lt;/i&gt;危险&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;span style=\"color: #d9534f;font-size: 1.2em;\"&gt;&lt;strong&gt;如无必要，不再更新！（2019.09.13）&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;\n今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将&lt;strong&gt;放弃对 next 的主题的自定义修改&lt;/strong&gt;，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。&lt;br&gt;\n我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。&lt;br&gt;\n以下仍为当前博客使用主题，lib 资源已打包 github。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>还乡</title><link>https://lruihao.cn/posts/renative/</link><pubDate>Fri, 01 Feb 2019 20:44:40 +0800</pubDate><guid>https://lruihao.cn/posts/renative/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>js 判断用户设备类型及平台</title><link>https://lruihao.cn/posts/js-device/</link><pubDate>Sat, 03 Nov 2018 23:35:44 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/js-device/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;前端开发经常遇到需要判断用户的浏览设备，是 pc 端还是移动端，移动端使用的是什么手机系统？android、ios、ipad、windows phone 等等，有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开，等等一系列判断做一些相应的处理。&lt;/p&gt;</description></item><item><title>云服务器 CentOS 系统搭建 web 服务</title><link>https://lruihao.cn/posts/web-server-yun/</link><pubDate>Mon, 29 Oct 2018 09:15:58 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-server-yun/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h3 class=\"heading-element\" id=\"搭建-apache-web-服务\"&gt;&lt;span&gt;0.10 搭建 Apache web 服务&lt;/span&gt;\n &lt;a href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ol&gt;\n&lt;li&gt;安装 Apache 超文本传输协议 (HTTP) 服务器的主程序&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# yum install -y httpd&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;注意安装目录，可通过 cd 命令切换。&lt;/p&gt;\n&lt;ol start=\"2\"&gt;\n&lt;li&gt;启动 HTTP 服务&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;[root@VM_0_6_centos /]# systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果启动失败，可通过 systemctl status httpd.service 查看错误原因。&lt;br&gt;\n启动成功，证明 http 服务已经可以使用，发现还需要把本地文件传到服务器。&lt;br&gt;\n默认根目录&lt;code&gt;/var/www/html/&lt;/code&gt;&lt;/p&gt;</description></item><item><title>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战</title><link>https://lruihao.cn/posts/href-301/</link><pubDate>Sun, 28 Oct 2018 14:22:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/href-301/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;h3 class=\"heading-element\" id=\"获取链接转\"&gt;&lt;span&gt;0.7 获取链接（转）&lt;/span&gt;\n &lt;a href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;a href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;传送门&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n在 WEB 开发中，时常会用到 javascript 来获取当前页面的 url 网址信息，在这里是我的一些获取 url 信息的小总结。&lt;/p&gt;</description></item><item><title>Vim 速查表</title><link>https://lruihao.cn/posts/vim/</link><pubDate>Fri, 31 Aug 2018 11:46:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/vim/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;p&gt;Vim 速查表 - 帮你提高 N 倍效率&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/他山之石/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/</title><link rel=canonical href=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E4%BB%96%E5%B1%B1%E4%B9%8B%E7%9F%B3/\"></head></html>"
  },
  {
    "path": "tags/位运算/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"位运算 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"位运算\",\"date_published\":\"2018-06-14T20:22:21&#43;08:00\",\"date_modified\":\"2018-06-14T20:22:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"url\":\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"位运算\"],\"summary\":\"1 1. \\u0026amp;运算 \\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"1-运算\\\"\\u003e\\u003cspan\\u003e1 1. \\u0026amp;运算\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e8%bf%90%e7%ae%97\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u0026amp;运算通常用于二进制取位操作，例如一个数 \\u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/位运算/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>位运算 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"位运算\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-06-14T20:22:21+08:00\"><meta itemprop=dateModified content=\"2018-06-14T20:22:21+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"位运算\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"位运算\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/ title=\"位运算 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/index.xml title=\"位运算 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/feed.json title=\"位运算 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/feed.json title=\"位运算 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>位运算</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>位运算 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ class=archive-item-link>位运算</a>\n<span class=archive-item-date title='2018-06-14 20:22:21'>06-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/位运算/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>位运算 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 14 Jun 2018 20:22:21 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>位运算</title><link>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</link><pubDate>Thu, 14 Jun 2018 20:22:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"1-运算\"&gt;&lt;span&gt;1 1. &amp;amp;运算&lt;/span&gt;\n &lt;a href=\"#1-%e8%bf%90%e7%ae%97\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&amp;amp;运算通常用于二进制取位操作，例如一个数 &amp;amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶，二进制的最末位为 0 表示该数为偶数，最末位为 1 表示该数为奇数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/位运算/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/</title><link rel=canonical href=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E4%BD%8D%E8%BF%90%E7%AE%97/\"></head></html>"
  },
  {
    "path": "tags/加密/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"加密 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"前端页面内容加密总结\",\"date_published\":\"2022-08-08T13:49:22&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/encryption-fe/\",\"url\":\"https://lruihao.cn/posts/encryption-fe/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"JavaScript\",\"加密\"],\"image\":\"https://lruihao.cn/posts/encryption-fe/images/featured-image.png\",\"summary\":\"记录一下前端实现页面加密的思路。\\n\",\"content_html\":\"\\u003cp\\u003e记录一下前端实现页面加密的思路。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/加密/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>加密 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"加密\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2022-08-08T13:49:22+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"加密\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"加密\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/ title=\"加密 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/index.xml title=\"加密 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/feed.json title=\"加密 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/feed.json title=\"加密 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%8A%A0%E5%AF%86/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>加密</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>加密 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/posts/encryption-fe/ class=archive-item-link>前端页面内容加密总结</a>\n<span class=archive-item-date title='2022-08-08 13:49:22'>08-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%8A%A0%E5%AF%86/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/加密/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>加密 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>前端页面内容加密总结</title><link>https://lruihao.cn/posts/encryption-fe/</link><pubDate>Mon, 08 Aug 2022 13:49:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/encryption-fe/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;p&gt;记录一下前端实现页面加密的思路。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/加密/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%8A%A0%E5%AF%86/\"></head></html>"
  },
  {
    "path": "tags/在线离线算法/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"在线离线算法 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"在线离线算法\",\"date_published\":\"2018-07-26T09:57:32&#43;08:00\",\"date_modified\":\"2018-07-26T09:57:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"url\":\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"在线离线算法\"],\"summary\":\"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"在线算法\\\"\\u003e\\u003cspan\\u003e1 \\u003ca href=\\\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e在线算法\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/在线离线算法/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>在线离线算法 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"在线离线算法\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-26T09:57:32+08:00\"><meta itemprop=dateModified content=\"2018-07-26T09:57:32+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"在线离线算法\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"在线离线算法\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ title=\"在线离线算法 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/index.xml title=\"在线离线算法 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/feed.json title=\"在线离线算法 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/feed.json title=\"在线离线算法 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>在线离线算法</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>在线离线算法 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ class=archive-item-link>在线离线算法</a>\n<span class=archive-item-date title='2018-07-26 09:57:32'>07-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/在线离线算法/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>在线离线算法 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 26 Jul 2018 09:57:32 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>在线离线算法</title><link>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</link><pubDate>Thu, 26 Jul 2018 09:57:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"在线算法\"&gt;&lt;span&gt;1 &lt;a href=\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;在线算法&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在线算法是指它可以以序列化的方式一个个的处理输入，也就是说在开始时并不需要已经知道所有的输入。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/在线离线算法/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\"></head></html>"
  },
  {
    "path": "tags/大数运算/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"大数运算 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/大数运算/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>大数运算 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"大数运算\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-28T22:50:43+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"大数运算\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"大数运算\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/ title=\"大数运算 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/index.xml title=\"大数运算 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/feed.json title=\"大数运算 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/feed.json title=\"大数运算 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>大数运算</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>大数运算 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/大数运算/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>大数运算 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/大数运算/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%A4%A7%E6%95%B0%E8%BF%90%E7%AE%97/\"></head></html>"
  },
  {
    "path": "tags/字体压缩/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"字体压缩 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"ttf 字体压缩\",\"date_published\":\"2018-10-17T21:38:06&#43;08:00\",\"date_modified\":\"2024-08-16T16:43:36&#43;08:00\",\"id\":\"https://lruihao.cn/posts/web-font/\",\"url\":\"https://lruihao.cn/posts/web-font/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Node.js\",\"字体压缩\"],\"summary\":\"HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\n\",\"content_html\":\"\\u003cp\\u003eHTML 网页引用中文字体，文件过大，加载缓慢的解决办法。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/字体压缩/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>字体压缩 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"字体压缩\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-17T21:38:06+08:00\"><meta itemprop=dateModified content=\"2024-08-16T16:43:36+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"字体压缩\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"字体压缩\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/ title=\"字体压缩 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/index.xml title=\"字体压缩 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/feed.json title=\"字体压缩 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/feed.json title=\"字体压缩 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>字体压缩</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>字体压缩 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/web-font/ class=archive-item-link>Ttf 字体压缩</a>\n<span class=archive-item-date title='2018-10-17 21:38:06'>10-17</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/字体压缩/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>字体压缩 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 16 Aug 2024 16:43:36 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>ttf 字体压缩</title><link>https://lruihao.cn/posts/web-font/</link><pubDate>Wed, 17 Oct 2018 21:38:06 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/web-font/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;HTML 网页引用中文字体，文件过大，加载缓慢的解决办法。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/字体压缩/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/\"></head></html>"
  },
  {
    "path": "tags/字数统计/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"字数统计 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"hexo next 主题添加字数统计（2018）\",\"date_published\":\"2018-08-30T13:15:50&#43;08:00\",\"date_modified\":\"2023-11-29T15:20:16&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"url\":\"https://lruihao.cn/posts/hexo-wordcount/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"字数统计\"],\"summary\":\" 警告 2018/11/1 说明 next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\n最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\n\",\"content_html\":\"\\u003cdiv class=\\\"details admonition warning open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-exclamation-triangle\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e警告\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e\\u003cp\\u003e\\u003cstrong\\u003e2018/11/1 说明\\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)\\u003c/p\\u003e\\n\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/字数统计/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>字数统计 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"字数统计\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-30T13:15:50+08:00\"><meta itemprop=dateModified content=\"2023-11-29T15:20:16+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"字数统计\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"字数统计\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/ title=\"字数统计 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/index.xml title=\"字数统计 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/feed.json title=\"字数统计 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/feed.json title=\"字数统计 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>字数统计</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>字数统计 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/hexo-wordcount/ class=archive-item-link>Hexo Next 主题添加字数统计（2018）</a>\n<span class=archive-item-date title='2018-08-30 13:15:50'>08-30</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/字数统计/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>字数统计 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 29 Nov 2023 15:20:16 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>hexo next 主题添加字数统计（2018）</title><link>https://lruihao.cn/posts/hexo-wordcount/</link><pubDate>Thu, 30 Aug 2018 13:15:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hexo-wordcount/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;div class=\"details admonition warning open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"&gt;&lt;/i&gt;警告&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;&lt;p&gt;&lt;strong&gt;2018/11/1 说明\nnext 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)&lt;/p&gt;\n&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/字数统计/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%AD%97%E6%95%B0%E7%BB%9F%E8%AE%A1/\"></head></html>"
  },
  {
    "path": "tags/宝塔面板/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"宝塔面板 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"宝塔面板安装 ImgURL 图床\",\"date_published\":\"2019-05-16T20:31:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/imgurl/\",\"url\":\"https://lruihao.cn/posts/imgurl/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ImgURL\",\"宝塔面板\"],\"image\":\"/posts/imgurl/images/1.png\",\"summary\":\" ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件） 阅读原文\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003eImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\\n\\u003ca href=\\\"https://www.xiaoz.me/archives/12081\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e阅读原文\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"本地搭建网站服务器并穿透内网\",\"date_published\":\"2019-04-03T19:29:43&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/ngrok/\",\"url\":\"https://lruihao.cn/posts/ngrok/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ngrok\",\"linux\",\"宝塔面板\",\"server\",\"ubuntu\"],\"summary\":\" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"宝塔面板安装\",\"date_published\":\"2019-03-18T21:31:43&#43;08:00\",\"date_modified\":\"2019-03-18T21:31:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bt/\",\"url\":\"https://lruihao.cn/posts/bt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"linux\",\"server\",\"宝塔面板\"],\"image\":\"/posts/bt/images/1.png\",\"summary\":\"极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。宝塔官网介绍\\n\",\"content_html\":\"\\u003cp\\u003e极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。\\u003ca href=\\\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e宝塔官网介绍\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/宝塔面板/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>宝塔面板 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"宝塔面板\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-16T20:31:33+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"宝塔面板\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"宝塔面板\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ title=\"宝塔面板 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/index.xml title=\"宝塔面板 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/feed.json title=\"宝塔面板 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/feed.json title=\"宝塔面板 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>宝塔面板</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>宝塔面板 <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/imgurl/ class=archive-item-link>宝塔面板安装 ImgURL 图床</a>\n<span class=archive-item-date title='2019-05-16 20:31:33'>05-16</span></article><article class=archive-item><a href=/posts/ngrok/ class=archive-item-link>本地搭建网站服务器并穿透内网</a>\n<span class=archive-item-date title='2019-04-03 19:29:43'>04-03</span></article><article class=archive-item><a href=/posts/bt/ class=archive-item-link>宝塔面板安装</a>\n<span class=archive-item-date title='2019-03-18 21:31:43'>03-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/宝塔面板/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>宝塔面板 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>宝塔面板安装 ImgURL 图床</title><link>https://lruihao.cn/posts/imgurl/</link><pubDate>Thu, 16 May 2019 20:31:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/imgurl/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;ImgURL 是一个开源、免费的图床程序，ImgURL 2.x 之后对环境要求更高，尤其是 ImageMagick 组件的支持，很多朋友不清楚怎样安装这个组件，这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程（包括 ImgURL 2.x 需要的各种组件）\n&lt;a href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;阅读原文&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>本地搭建网站服务器并穿透内网</title><link>https://lruihao.cn/posts/ngrok/</link><pubDate>Wed, 03 Apr 2019 19:29:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/ngrok/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;blockquote&gt;\n&lt;p&gt;一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器，今天终于简单实现了。还有很多知识需要学习，简单记录一下。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>宝塔面板安装</title><link>https://lruihao.cn/posts/bt/</link><pubDate>Mon, 18 Mar 2019 21:31:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bt/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;p&gt;极速方便的一键配置与管理，免除繁琐的命令行操作，通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境，可创建及管理网站，可创建及管理数据库，可创建及管理 FTP 等等。&lt;a href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;宝塔官网介绍&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/宝塔面板/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/\"></head></html>"
  },
  {
    "path": "tags/对象存储/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"对象存储 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/对象存储/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>对象存储 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"对象存储\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-22T14:57:08+08:00\"><meta itemprop=dateModified content=\"2024-10-06T10:24:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"对象存储\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"对象存储\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ title=\"对象存储 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/index.xml title=\"对象存储 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/feed.json title=\"对象存储 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/feed.json title=\"对象存储 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>对象存储</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>对象存储 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/对象存储/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>对象存储 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 06 Oct 2024 10:24:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/对象存储/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8/\"></head></html>"
  },
  {
    "path": "tags/并查集/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"并查集 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"食物链-poj1182（带权并查集经典模板）\",\"date_published\":\"2018-08-02T11:10:37&#43;08:00\",\"date_modified\":\"2024-10-02T13:35:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1182/\",\"url\":\"https://lruihao.cn/posts/poj1182/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"POJ\",\"C++\",\"C\"],\"summary\":\"题目链接\\n思路参考 1,思路参考 2（没看懂）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1182\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n\\u003ca href=\\\"https://blog.csdn.net/freezhanacmore/article/details/8767413\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 1\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/niushuai666/article/details/6981689\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e思路参考 2\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e（没看懂）\\u003c/p\\u003e\"},{\"title\":\"小希的迷宫-HDU-1272（并查集 or 树性质）\",\"date_published\":\"2018-08-01T21:45:50&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1272/\",\"url\":\"https://lruihao.cn/posts/hdu1272/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"7 题目链接：小希的迷宫 8 并查集 无回路 单连通 并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成回路，则可以判定 No，交了一发错了。\\n想了一下没有考虑到多个连通域的情况，该题必须只有一个连通域\\n9 树的性质 既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接小希的迷宫\\\"\\u003e\\u003cspan\\u003e7 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e小希的迷宫\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集\\\"\\u003e\\u003cspan\\u003e8 并查集\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e无回路\\u003c/li\\u003e\\n\\u003cli\\u003e单连通\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成\\u003cstrong\\u003e回路\\u003c/strong\\u003e，则可以判定 No，交了一发错了。\\u003cbr\\u003e\\n想了一下没有考虑到多个连通域的情况，该题必须只有\\u003cstrong\\u003e一个连通域\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"树的性质\\\"\\u003e\\u003cspan\\u003e9 树的性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;\\u003c/p\\u003e\"},{\"title\":\"How Many Answers Are Wrong-hdu3038（带权并查集）\",\"date_published\":\"2018-08-01T11:45:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu3038/\",\"url\":\"https://lruihao.cn/posts/hdu3038/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"HDU\",\"C++\"],\"summary\":\"题目链接：How Many Answers Are Wrong\\n思路参考：本题直接参考,图文解释\\n\",\"content_html\":\"\\u003cp\\u003e题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eHow Many Answers Are Wrong\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n思路参考：\\u003ca href=\\\"https://blog.csdn.net/duan_1998/article/details/70196576\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e本题直接参考\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e,\\u003ca href=\\\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e图文解释\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"how many tables-HDU-1213（并查集求连通域数目）\",\"date_published\":\"2018-07-31T11:12:10&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/how-tables/\",\"url\":\"https://lruihao.cn/posts/how-tables/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"HDU\",\"C++\",\"ACM\"],\"summary\":\"并查集求连通域数目，初始化 sum=n； 题目链接： how many tables\\n\",\"content_html\":\"\\u003cp\\u003e并查集求连通域数目，初始化 sum=n；\\n题目链接： \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehow many tables\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"The-suspects-POJ-1611（并查集）\",\"date_published\":\"2018-07-31T11:11:31&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1611/\",\"url\":\"https://lruihao.cn/posts/poj-1611/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"POJ\",\"ACM\",\"C\",\"C++\"],\"summary\":\"5 题目链接：The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接the-suspects\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=1611\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eThe-suspects\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？\\u003c/p\\u003e\"},{\"title\":\"wireless network-POJ-2236（并查集）\",\"date_published\":\"2018-07-31T11:10:54&#43;08:00\",\"date_modified\":\"2024-07-07T14:04:22&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2236/\",\"url\":\"https://lruihao.cn/posts/poj-2236/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"并查集\",\"ACM\",\"POJ\",\"C++\",\"C\"],\"summary\":\"5 题目链接：wireless network 6 翻译 \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接wireless-network\\\"\\u003e\\u003cspan\\u003e5 题目链接：\\u003ca href=\\\"http://poj.org/problem?id=2236\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ewireless network\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"翻译\\\"\\u003e\\u003cspan\\u003e6 翻译\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%bf%bb%e8%af%91\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\"},{\"title\":\"畅通工程-HDU-1232（并查集经典模板）\",\"date_published\":\"2018-07-31T11:08:43&#43;08:00\",\"date_modified\":\"2018-07-31T11:08:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"url\":\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"并查集\",\"HDU\",\"C++\",\"C\"],\"summary\":\"9 并查集入门推荐：超有爱的并查集~ 10 题目链接：畅通工程 11 题意分析 首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"并查集入门推荐超有爱的并查集\\\"\\u003e\\u003cspan\\u003e9 并查集入门推荐：\\u003ca href=\\\"https://blog.csdn.net/iteye_10189/article/details/82103035\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e超有爱的并查集~\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接畅通工程\\\"\\u003e\\u003cspan\\u003e10 题目链接：\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e畅通工程\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意分析\\\"\\u003e\\u003cspan\\u003e11 题意分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/并查集/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>并查集 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"并查集\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-02T11:10:37+08:00\"><meta itemprop=dateModified content=\"2024-10-02T13:35:30+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"并查集\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"并查集\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ title=\"并查集 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/index.xml title=\"并查集 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/feed.json title=\"并查集 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/feed.json title=\"并查集 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>并查集</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>并查集 <sup>7</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj1182/ class=archive-item-link>食物链-Poj1182（带权并查集经典模板）</a>\n<span class=archive-item-date title='2018-08-02 11:10:37'>08-02</span></article><article class=archive-item><a href=/posts/hdu1272/ class=archive-item-link>小希的迷宫-HDU-1272（并查集 or 树性质）</a>\n<span class=archive-item-date title='2018-08-01 21:45:50'>08-01</span></article><article class=archive-item><a href=/posts/hdu3038/ class=archive-item-link>How Many Answers Are Wrong-Hdu3038（带权并查集）</a>\n<span class=archive-item-date title='2018-08-01 11:45:53'>08-01</span></article><article class=archive-item><a href=/posts/how-tables/ class=archive-item-link>How Many Tables-HDU-1213（并查集求连通域数目）</a>\n<span class=archive-item-date title='2018-07-31 11:12:10'>07-31</span></article><article class=archive-item><a href=/posts/poj-1611/ class=archive-item-link>The-Suspects-POJ-1611（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:11:31'>07-31</span></article><article class=archive-item><a href=/posts/poj-2236/ class=archive-item-link>Wireless Network-POJ-2236（并查集）</a>\n<span class=archive-item-date title='2018-07-31 11:10:54'>07-31</span></article><article class=archive-item><a href=/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ class=archive-item-link>畅通工程-HDU-1232（并查集经典模板）</a>\n<span class=archive-item-date title='2018-07-31 11:08:43'>07-31</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/并查集/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>并查集 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 02 Oct 2024 13:35:30 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>食物链-poj1182（带权并查集经典模板）</title><link>https://lruihao.cn/posts/poj1182/</link><pubDate>Thu, 02 Aug 2018 11:10:37 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1182/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n&lt;a href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 1&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;思路参考 2&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;（没看懂）&lt;/p&gt;</description></item><item><title>小希的迷宫-HDU-1272（并查集 or 树性质）</title><link>https://lruihao.cn/posts/hdu1272/</link><pubDate>Wed, 01 Aug 2018 21:45:50 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1272/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接小希的迷宫\"&gt;&lt;span&gt;10 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;小希的迷宫&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"并查集\"&gt;&lt;span&gt;11 并查集&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;无回路&lt;/li&gt;\n&lt;li&gt;单连通&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;并查集做，首先想到的是判断两个点是否连通，不连通就合并，已连通的话说明会形成&lt;strong&gt;回路&lt;/strong&gt;，则可以判定 No，交了一发错了。&lt;br&gt;\n想了一下没有考虑到多个连通域的情况，该题必须只有&lt;strong&gt;一个连通域&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"树的性质\"&gt;&lt;span&gt;12 树的性质&lt;/span&gt;\n &lt;a href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;既然单连通无回路，则这肯定是一棵树；那么 edge=v-1;&lt;/p&gt;</description></item><item><title>How Many Answers Are Wrong-hdu3038（带权并查集）</title><link>https://lruihao.cn/posts/hdu3038/</link><pubDate>Wed, 01 Aug 2018 11:45:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu3038/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;How Many Answers Are Wrong&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n思路参考：&lt;a href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;本题直接参考&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;,&lt;a href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;图文解释&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>how many tables-HDU-1213（并查集求连通域数目）</title><link>https://lruihao.cn/posts/how-tables/</link><pubDate>Tue, 31 Jul 2018 11:12:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/how-tables/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;并查集求连通域数目，初始化 sum=n；\n题目链接： &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;how many tables&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The-suspects-POJ-1611（并查集）</title><link>https://lruihao.cn/posts/poj-1611/</link><pubDate>Tue, 31 Jul 2018 11:11:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1611/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接the-suspects\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;The-suspects&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;警察抓贩毒集团。有不同类型的犯罪集团，人员可能重复，集团内的人会相互接触。现在警察在其中一人（0 号）身上搜出毒品，认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯？&lt;/p&gt;</description></item><item><title>wireless network-POJ-2236（并查集）</title><link>https://lruihao.cn/posts/poj-2236/</link><pubDate>Tue, 31 Jul 2018 11:10:54 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2236/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接wireless-network\"&gt;&lt;span&gt;7 题目链接：&lt;a href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;wireless network&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"翻译\"&gt;&lt;span&gt;8 翻译&lt;/span&gt;\n &lt;a href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;</description></item><item><title>畅通工程-HDU-1232（并查集经典模板）</title><link>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</link><pubDate>Tue, 31 Jul 2018 11:08:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"&gt;&lt;span&gt;13 并查集入门推荐：&lt;a href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;超有爱的并查集~&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目链接畅通工程\"&gt;&lt;span&gt;14 题目链接：&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;畅通工程&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题意分析\"&gt;&lt;span&gt;15 题意分析&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;首先在地图上给你若干个城镇，这些城镇都可以看作点，然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点，让你判断它们是否连通，或者问你整幅图一共有几个连通分支，也就是被分成了几个互相独立的块。像畅通工程这题，问还需要修几条路，实质就是求有几个连通分支。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/并查集/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%B9%B6%E6%9F%A5%E9%9B%86/\"></head></html>"
  },
  {
    "path": "tags/快速幂/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"快速幂 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/快速幂/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>快速幂 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"快速幂\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-09T20:55:26+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"快速幂\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"快速幂\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/ title=\"快速幂 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/index.xml title=\"快速幂 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/feed.json title=\"快速幂 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/feed.json title=\"快速幂 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>快速幂</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>快速幂 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/快速幂/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>快速幂 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/快速幂/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/</title><link rel=canonical href=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E5%BF%AB%E9%80%9F%E5%B9%82/\"></head></html>"
  },
  {
    "path": "tags/拖拽式仪表盘/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"拖拽式仪表盘 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘系列总结\",\"date_published\":\"2023-10-12T21:25:18&#43;08:00\",\"date_modified\":\"2024-01-17T16:39:29&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-summary/\",\"url\":\"https://lruihao.cn/posts/dashboard-summary/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\",\"总结\"],\"summary\":\"当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\n\",\"content_html\":\"\\u003cp\\u003e当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特点和功能\\\"\\u003e\\u003cspan\\u003e1 特点和功能\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件开发\",\"date_published\":\"2023-10-12T20:07:56&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\n\",\"content_html\":\"\\u003cp\\u003e本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 模板使用\",\"date_published\":\"2023-10-12T20:07:20&#43;08:00\",\"date_modified\":\"2024-04-25T13:29:53&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-usage/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"image\":\"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png\",\"summary\":\"本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\n\",\"content_html\":\"\\u003cp\\u003e本文将通过一个简单的例子，介绍如何使用仪表盘模板。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 组件配置文档\",\"date_published\":\"2023-10-12T19:41:23&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-widget-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"widget\",\"Vue2\"],\"summary\":\"本文将对 Dashboard 组件的使用方法进行介绍。\\n\",\"content_html\":\"\\u003cp\\u003e本文将对 Dashboard 组件的使用方法进行介绍。\\u003c/p\\u003e\"},{\"title\":\"拖拽式仪表盘 - 布局模板文档\",\"date_published\":\"2023-10-12T19:27:49&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"url\":\"https://lruihao.cn/posts/dashborad-template-docs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"summary\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\",\"content_html\":\"Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。\"},{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"},{\"title\":\"拖拽式仪表盘的设计与开发\",\"date_published\":\"2023-10-12T15:16:48&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"url\":\"https://lruihao.cn/posts/draggable-dashboard/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\"],\"content_html\":\"关于拖拽式仪表盘的设计与开发系列文章。\"}]}"
  },
  {
    "path": "tags/拖拽式仪表盘/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>拖拽式仪表盘 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"拖拽式仪表盘\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-12T21:25:18+08:00\"><meta itemprop=dateModified content=\"2024-04-25T13:29:53+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"拖拽式仪表盘\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"拖拽式仪表盘\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ title=\"拖拽式仪表盘 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/index.xml title=\"拖拽式仪表盘 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/feed.json title=\"拖拽式仪表盘 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/feed.json title=\"拖拽式仪表盘 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>拖拽式仪表盘</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>拖拽式仪表盘 <sup>7</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-summary/ class=archive-item-link>拖拽式仪表盘系列总结</a>\n<span class=archive-item-date title='2023-10-12 21:25:18'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-usage/ class=archive-item-link>拖拽式仪表盘 - 组件开发</a>\n<span class=archive-item-date title='2023-10-12 20:07:56'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-usage/ class=archive-item-link>拖拽式仪表盘 - 模板使用</a>\n<span class=archive-item-date title='2023-10-12 20:07:20'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-widget-docs/ class=archive-item-link>拖拽式仪表盘 - 组件配置文档</a>\n<span class=archive-item-date title='2023-10-12 19:41:23'>10-12</span></article><article class=archive-item><a href=/posts/dashborad-template-docs/ class=archive-item-link>拖拽式仪表盘 - 布局模板文档</a>\n<span class=archive-item-date title='2023-10-12 19:27:49'>10-12</span></article><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article><article class=archive-item><a href=/posts/draggable-dashboard/ class=archive-item-link>拖拽式仪表盘的设计与开发</a>\n<span class=archive-item-date title='2023-10-12 15:16:48'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/拖拽式仪表盘/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>拖拽式仪表盘 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 25 Apr 2024 13:29:53 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘系列总结</title><link>https://lruihao.cn/posts/dashboard-summary/</link><pubDate>Thu, 12 Oct 2023 21:25:18 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-summary/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;当今，仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域，拖拽式仪表盘都能为用户提供灵活性和个性化的体验。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"特点和功能\"&gt;&lt;span&gt;1 特点和功能&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括：&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件开发</title><link>https://lruihao.cn/posts/dashborad-widget-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:56 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文介绍将如何开发一个仪表盘组件，以及组件开发的灵感来源。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 模板使用</title><link>https://lruihao.cn/posts/dashborad-template-usage/</link><pubDate>Thu, 12 Oct 2023 20:07:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-usage/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将通过一个简单的例子，介绍如何使用仪表盘模板。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 组件配置文档</title><link>https://lruihao.cn/posts/dashborad-widget-docs/</link><pubDate>Thu, 12 Oct 2023 19:41:23 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-widget-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>&lt;p&gt;本文将对 Dashboard 组件的使用方法进行介绍。&lt;/p&gt;</description></item><item><title>拖拽式仪表盘 - 布局模板文档</title><link>https://lruihao.cn/posts/dashborad-template-docs/</link><pubDate>Thu, 12 Oct 2023 19:27:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashborad-template-docs/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>Dashboard 组件是一个公共模板组件，用于快速创建 Dashboard 页面，本文将对 Dashboard 组件的使用方法进行介绍。</description></item><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item><item><title>拖拽式仪表盘的设计与开发</title><link>https://lruihao.cn/posts/draggable-dashboard/</link><pubDate>Thu, 12 Oct 2023 15:16:48 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/draggable-dashboard/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>关于拖拽式仪表盘的设计与开发系列文章。</description></item></channel></rss>"
  },
  {
    "path": "tags/拖拽式仪表盘/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98/\"></head></html>"
  },
  {
    "path": "tags/搜索/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"搜索 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HDU-1495-非常可乐（bfs 模拟倒水 or 数论）\",\"date_published\":\"2018-07-24T15:34:00&#43;08:00\",\"date_modified\":\"2018-07-24T15:34:00&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1495/\",\"url\":\"https://lruihao.cn/posts/hdu-1495/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"非常可乐\\n大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e非常可乐\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S\\u0026lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出\\u0026quot;NO\\u0026quot;。\\u003c/p\\u003e\"},{\"title\":\"hdu-2612-Find a way（双 bfs）\",\"date_published\":\"2018-07-23T12:34:42&#43;08:00\",\"date_modified\":\"2018-07-23T12:34:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-2612/\",\"url\":\"https://lruihao.cn/posts/hdu-2612/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"HDU\",\"搜索\",\"C++\"],\"summary\":\"Find a way\\n圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eFind a way\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） \\u0026hellip;\\u0026hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）\\u003c/p\\u003e\"},{\"title\":\"POJ-3278-Catch That Cow(bfs)\",\"date_published\":\"2018-07-22T12:10:32&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-3278/\",\"url\":\"https://lruihao.cn/posts/poj-3278/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\nWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\n13 Input Line 1: Two space-separated integers: N and K\\n\",\"content_html\":\"\\u003cp\\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003eWalking: FJ can move from any point X to the points X\\u0026quot;,\\u0026ldquo;1 or X + 1 in a single minute\\u003c/li\\u003e\\n\\u003cli\\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e13 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eLine 1: Two space-separated integers: N and K\\u003c/p\\u003e\"},{\"title\":\"poj-2251-Dungeon Master（三维 bfs 最短路）\",\"date_published\":\"2018-07-22T12:02:32&#43;08:00\",\"date_modified\":\"2018-07-22T12:02:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-2251/\",\"url\":\"https://lruihao.cn/posts/poj-2251/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\",\"C\"],\"summary\":\"英文原题链接\\n11 Description - 题目描述 你被困在一个三维的空间中，现在要寻找最短路径逃生！\\n空间由立方体单位构成\\n你每次向上下前后左右移动一个单位需要一分钟\\n你不能对角线移动并且四周封闭\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2251\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e英文原题链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description---题目描述\\\"\\u003e\\u003cspan\\u003e11 Description - 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e你被困在一个三维的空间中，现在要寻找最短路径逃生！\\u003cbr\\u003e\\n空间由立方体单位构成\\u003cbr\\u003e\\n你每次向上下前后左右移动一个单位需要一分钟\\u003cbr\\u003e\\n你不能对角线移动并且四周封闭\\u003cbr\\u003e\\n是否存在逃出生天的可能性？如果存在，则需要多少时间？\\u003c/p\\u003e\"},{\"title\":\"poj-1321 棋盘问题（dfs）\",\"date_published\":\"2018-07-22T11:58:14&#43;08:00\",\"date_modified\":\"2018-07-22T11:58:14&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1321/\",\"url\":\"https://lruihao.cn/posts/poj-1321/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"Time Limit: 1000MS\\nMemory Limit: 10000K\\nTotal Submissions: 63659\\nAccepted: 30423\\n17 Description 在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\n\",\"content_html\":\"\\u003cp\\u003eTime Limit: 1000MS\\u003cbr\\u003e\\nMemory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 63659\\u003cbr\\u003e\\nAccepted: 30423\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e17 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。\\u003c/p\\u003e\"},{\"title\":\"poj-1426-Find The Multiple(dfs)\",\"date_published\":\"2018-07-22T11:57:13&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj-1426/\",\"url\":\"https://lruihao.cn/posts/poj-1426/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"ACM\",\"搜索\",\"POJ\",\"C++\"],\"summary\":\"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"find-the-multiple\\\"\\u003e\\u003cspan\\u003e3 Find The Multiple\\u003c/span\\u003e\\n  \\u003ca href=\\\"#find-the-multiple\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTime Limit: 1000MS Memory Limit: 10000K\\u003cbr\\u003e\\nTotal Submissions: 40713 Accepted: 17088 Special Judge\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"description\\\"\\u003e\\u003cspan\\u003e3.1 Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\\u003c/p\\u003e\"},{\"title\":\"hdu-1241-Oil Deposits (dfs)\",\"date_published\":\"2018-07-22T11:37:20&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu-1241/\",\"url\":\"https://lruihao.cn/posts/hdu-1241/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"DFS\",\"搜索\",\"HDU\",\"ACM\",\"C++\"],\"summary\":\"5 Oil Deposits 翻译\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"oil-deposits\\\"\\u003e\\u003cspan\\u003e5 \\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eOil Deposits\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#oil-deposits\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"https://vjudge.net/contest/238973#problem/L\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e翻译\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\\u003cbr\\u003e\\nTotal Submission(s): 41406 Accepted Submission(s): 23977\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"problem-description\\\"\\u003e\\u003cspan\\u003e5.1 Problem Description\\u003c/span\\u003e\\n  \\u003ca href=\\\"#problem-description\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\\u003c/p\\u003e\"},{\"title\":\"BFS 求最短路\",\"date_published\":\"2018-07-22T11:31:05&#43;08:00\",\"date_modified\":\"2018-07-22T11:31:05&#43;08:00\",\"id\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"url\":\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"BFS\",\"搜索\",\"C++\"],\"summary\":\"假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\n\",\"content_html\":\"\\u003cp\\u003e假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.\\u003cbr\\u003e\\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，\\u003cbr\\u003e\\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\\u003c/p\\u003e\"},{\"title\":\"深搜广搜\",\"date_published\":\"2018-07-22T11:25:14&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dfs_bfs/\",\"url\":\"https://lruihao.cn/posts/dfs_bfs/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"BFS\",\"DFS\",\"搜索\",\"C\",\"C++\"],\"summary\":\"0.5 广度优先搜索（BFS） 广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\n0.6 深度优先搜索（DFS） 深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"广度优先搜索bfs\\\"\\u003e\\u003cspan\\u003e0.5 广度优先搜索（BFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。\\u003c/p\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"深度优先搜索dfs\\\"\\u003e\\u003cspan\\u003e0.6 深度优先搜索（DFS）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/搜索/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>搜索 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"搜索\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-24T15:34:00+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"搜索\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"搜索\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/ title=\"搜索 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/index.xml title=\"搜索 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/feed.json title=\"搜索 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/feed.json title=\"搜索 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%90%9C%E7%B4%A2/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>搜索</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>搜索 <sup>9</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/hdu-1495/ class=archive-item-link>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</a>\n<span class=archive-item-date title='2018-07-24 15:34:00'>07-24</span></article><article class=archive-item><a href=/posts/hdu-2612/ class=archive-item-link>Hdu-2612-Find a Way（双 Bfs）</a>\n<span class=archive-item-date title='2018-07-23 12:34:42'>07-23</span></article><article class=archive-item><a href=/posts/poj-3278/ class=archive-item-link>POJ-3278-Catch That Cow(bfs)</a>\n<span class=archive-item-date title='2018-07-22 12:10:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-2251/ class=archive-item-link>Poj-2251-Dungeon Master（三维 Bfs 最短路）</a>\n<span class=archive-item-date title='2018-07-22 12:02:32'>07-22</span></article><article class=archive-item><a href=/posts/poj-1321/ class=archive-item-link>Poj-1321 棋盘问题（dfs）</a>\n<span class=archive-item-date title='2018-07-22 11:58:14'>07-22</span></article><article class=archive-item><a href=/posts/poj-1426/ class=archive-item-link>Poj-1426-Find the Multiple(dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:57:13'>07-22</span></article><article class=archive-item><a href=/posts/hdu-1241/ class=archive-item-link>Hdu-1241-Oil Deposits (Dfs)</a>\n<span class=archive-item-date title='2018-07-22 11:37:20'>07-22</span></article><article class=archive-item><a href=/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ class=archive-item-link>BFS 求最短路</a>\n<span class=archive-item-date title='2018-07-22 11:31:05'>07-22</span></article><article class=archive-item><a href=/posts/dfs_bfs/ class=archive-item-link>深搜广搜</a>\n<span class=archive-item-date title='2018-07-22 11:25:14'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%90%9C%E7%B4%A2/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/搜索/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>搜索 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HDU-1495-非常可乐（bfs 模拟倒水 or 数论）</title><link>https://lruihao.cn/posts/hdu-1495/</link><pubDate>Tue, 24 Jul 2018 15:34:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1495/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;非常可乐&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大家一定觉的运动以后喝可乐是一件很惬意的事情，但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后，阿牛就要求和 seeyou 一起分享这一瓶可乐，而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子，它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S（S&amp;lt;101）毫升（正好装满一瓶） ，它们三个之间可以相互倒可乐（都是没有刻度的，且 S==N+M，101 ＞ S ＞ 0，N ＞ 0，M ＞ 0) 。聪明的 ACMER 你们说他们能平分吗？如果能请输出倒可乐的最少的次数，如果不能输出&amp;quot;NO&amp;quot;。&lt;/p&gt;</description></item><item><title>hdu-2612-Find a way（双 bfs）</title><link>https://lruihao.cn/posts/hdu-2612/</link><pubDate>Mon, 23 Jul 2018 12:34:42 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-2612/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Find a way&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;圣诞节要到了，坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下，发现周围的召唤师大峡谷还不少，这对基佬纠结着，该去哪一个。坤神：我要去左边的这个（因为离自己比较近 哈哈~）。瑞瑞：我要去右边的这个（因为离自己比较近 嘿嘿~） &amp;hellip;&amp;hellip;.. 这对基佬闹矛盾了，开车有危险了！为了不让他们去召唤师大峡谷坑人，riot 决定让他们去 X 召唤师大峡谷，保证他俩所走的路程和最短。每走一个点需要花费 11 分钟，输出他们一共花费多少时间（最短时间噢）&lt;/p&gt;</description></item><item><title>POJ-3278-Catch That Cow(bfs)</title><link>https://lruihao.cn/posts/poj-3278/</link><pubDate>Sun, 22 Jul 2018 12:10:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-3278/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;Walking: FJ can move from any point X to the points X&amp;quot;,&amp;ldquo;1 or X + 1 in a single minute&lt;/li&gt;\n&lt;li&gt;Teleporting: FJ can move from any point X to the point 2 × X in a single minute.&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;19 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Line 1: Two space-separated integers: N and K&lt;/p&gt;</description></item><item><title>poj-2251-Dungeon Master（三维 bfs 最短路）</title><link>https://lruihao.cn/posts/poj-2251/</link><pubDate>Sun, 22 Jul 2018 12:02:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-2251/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;英文原题链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description---题目描述\"&gt;&lt;span&gt;16 Description - 题目描述&lt;/span&gt;\n &lt;a href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;你被困在一个三维的空间中，现在要寻找最短路径逃生！&lt;br&gt;\n空间由立方体单位构成&lt;br&gt;\n你每次向上下前后左右移动一个单位需要一分钟&lt;br&gt;\n你不能对角线移动并且四周封闭&lt;br&gt;\n是否存在逃出生天的可能性？如果存在，则需要多少时间？&lt;/p&gt;</description></item><item><title>poj-1321 棋盘问题（dfs）</title><link>https://lruihao.cn/posts/poj-1321/</link><pubDate>Sun, 22 Jul 2018 11:58:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1321/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;Time Limit: 1000MS&lt;br&gt;\nMemory Limit: 10000K&lt;br&gt;\nTotal Submissions: 63659&lt;br&gt;\nAccepted: 30423&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;25 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放 k 个棋子的所有可行的摆放方案 C。&lt;/p&gt;</description></item><item><title>poj-1426-Find The Multiple(dfs)</title><link>https://lruihao.cn/posts/poj-1426/</link><pubDate>Sun, 22 Jul 2018 11:57:13 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj-1426/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"find-the-multiple\"&gt;&lt;span&gt;4 Find The Multiple&lt;/span&gt;\n &lt;a href=\"#find-the-multiple\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Time Limit: 1000MS Memory Limit: 10000K&lt;br&gt;\nTotal Submissions: 40713 Accepted: 17088 Special Judge&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"description\"&gt;&lt;span&gt;4.1 Description&lt;/span&gt;\n &lt;a href=\"#description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.&lt;/p&gt;</description></item><item><title>hdu-1241-Oil Deposits (dfs)</title><link>https://lruihao.cn/posts/hdu-1241/</link><pubDate>Sun, 22 Jul 2018 11:37:20 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu-1241/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"oil-deposits\"&gt;&lt;span&gt;7 &lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;Oil Deposits&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#oil-deposits\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;翻译&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)&lt;br&gt;\nTotal Submission(s): 41406 Accepted Submission(s): 23977&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"problem-description\"&gt;&lt;span&gt;7.1 Problem Description&lt;/span&gt;\n &lt;a href=\"#problem-description\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.&lt;/p&gt;</description></item><item><title>BFS 求最短路</title><link>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><pubDate>Sun, 22 Jul 2018 11:31:05 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;假设有一个 n 行 m 列的迷宫，每个单位要么是空地（用 1 表示）要么是障碍物（用 0 表示）.&lt;br&gt;\n如和找到从起点到终点的最短路径？利用 BFS 搜索，逐步计算出每个节点到起点的最短距离，&lt;br&gt;\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。&lt;/p&gt;</description></item><item><title>深搜广搜</title><link>https://lruihao.cn/posts/dfs_bfs/</link><pubDate>Sun, 22 Jul 2018 11:25:14 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dfs_bfs/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"广度优先搜索bfs\"&gt;&lt;span&gt;0.7 广度优先搜索（BFS）&lt;/span&gt;\n &lt;a href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;广度优先搜索在进一步遍历图中顶点之前，先访问当前顶点的所有邻接结点。访问了就入队。&lt;/p&gt;\n&lt;h3 class=\"heading-element\" id=\"深度优先搜索dfs\"&gt;&lt;span&gt;0.8 深度优先搜索（DFS）&lt;/span&gt;\n &lt;a href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;深度优先搜索在搜索过程中访问某个顶点后，需要递归地访问此顶点的所有未访问过的相邻顶点。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/搜索/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%90%9C%E7%B4%A2/\"></head></html>"
  },
  {
    "path": "tags/数学/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"数学 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"大数乘法\",\"date_published\":\"2019-03-28T22:50:43&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dacheng/\",\"url\":\"https://lruihao.cn/posts/dacheng/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"大数运算\",\"ACM\",\"C\"],\"summary\":\" 大数乘法 c 版 (基础写法)\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e大数乘法 c 版 (基础写法)\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and Stairs\",\"date_published\":\"2018-08-10T20:13:08&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476a/\",\"url\":\"https://lruihao.cn/posts/codeforces476a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\n7 Input The single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/a\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\\u003c/p\\u003e\\n\\u003cp\\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"input\\\"\\u003e\\u003cspan\\u003e7 Input\\u003c/span\\u003e\\n  \\u003ca href=\\\"#input\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eThe single line contains two space separated integers n, m (0 \\u0026lt; n ≤ 10000, 1 \\u0026lt; m ≤ 10).\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"},{\"title\":\"杨辉三角\",\"date_published\":\"2018-07-22T11:41:15&#43;08:00\",\"date_modified\":\"2021-09-26T12:04:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"url\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"杨辉三角\"],\"summary\":\"百度知道 1\\n1 1\\n1 2 1\\n1 3 3 1\\n1 4 6 4 1\\n1 5 10 10 5 1\\n1 6 15 20 15 6 1\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://zhidao.baidu.com/question/367384574464313844.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百度知道\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n1\\u003c/p\\u003e\\n\\u003cp\\u003e1 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 2 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 3 3 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 4 6 4 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 5 10 10 5 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 6 15 20 15 6 1\\u003c/p\\u003e\\n\\u003chr\\u003e\"}]}"
  },
  {
    "path": "tags/数学/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>数学 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"数学\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"数学\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"数学\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/ title=\"数学 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/index.xml title=\"数学 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/feed.json title=\"数学 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/feed.json title=\"数学 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%95%B0%E5%AD%A6/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>数学</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>数学 <sup>9</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><article class=archive-item><a href=/posts/dacheng/ class=archive-item-link>大数乘法</a>\n<span class=archive-item-date title='2019-03-28 22:50:43'>03-28</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476a/ class=archive-item-link>Dreamoon and Stairs</a>\n<span class=archive-item-date title='2018-08-10 20:13:08'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article><article class=archive-item><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=archive-item-link>杨辉三角</a>\n<span class=archive-item-date title='2018-07-22 11:41:15'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%95%B0%E5%AD%A6/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/数学/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>数学 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>大数乘法</title><link>https://lruihao.cn/posts/dacheng/</link><pubDate>Thu, 28 Mar 2019 22:50:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dacheng/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;大数乘法 c 版 (基础写法)&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and Stairs</title><link>https://lruihao.cn/posts/codeforces476a/</link><pubDate>Fri, 10 Aug 2018 20:13:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;p&gt;Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.&lt;/p&gt;\n&lt;p&gt;What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"input\"&gt;&lt;span&gt;10 Input&lt;/span&gt;\n &lt;a href=\"#input\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;The single line contains two space separated integers n, m (0 &amp;lt; n ≤ 10000, 1 &amp;lt; m ≤ 10).&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item><item><title>杨辉三角</title><link>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</link><pubDate>Sun, 22 Jul 2018 11:41:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百度知道&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n1&lt;/p&gt;\n&lt;p&gt;1 1&lt;/p&gt;\n&lt;p&gt;1 2 1&lt;/p&gt;\n&lt;p&gt;1 3 3 1&lt;/p&gt;\n&lt;p&gt;1 4 6 4 1&lt;/p&gt;\n&lt;p&gt;1 5 10 10 5 1&lt;/p&gt;\n&lt;p&gt;1 6 15 20 15 6 1&lt;/p&gt;\n&lt;hr&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/数学/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%95%B0%E5%AD%A6/\"></head></html>"
  },
  {
    "path": "tags/数论/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"数论 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"},{\"title\":\"Leading and Trailing-lightoj1282（快速幂 + 对数运算）\",\"date_published\":\"2018-08-09T20:55:26&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/lightoj1282/\",\"url\":\"https://lruihao.cn/posts/lightoj1282/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数论\",\"数学\",\"快速幂\",\"ACM\",\"C\"],\"summary\":\"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\\n11 分析 求后三位的话：直接快速幂，对 1000 取模就好了。\\n求前三位，对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数，则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分，对于 t=nk 这个数，它的位数由 (10x) 决定，它的位数上的值则有 (10y) 决定，因此我们要求 t 的前三位，只需要将 10y 求出，在乘以 100，就得到了它的前三位。\\n分析完，我们再整体看，设 nk=10^z; 那么z=k*log10(n)\\nfmod(z,1)可以求出 x 的小数部分。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目链接\\\"\\u003e\\u003cspan\\u003e9 \\u003ca href=\\\"https://vjudge.net/contest/238979#problem/E\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e10 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"分析\\\"\\u003e\\u003cspan\\u003e11 分析\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%88%86%e6%9e%90\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e求后三位的话：直接快速幂，对 1000 取模就好了。\\u003cbr\\u003e\\n求前三位，对于给定的一个数 n, 它可以写成 n=10\\u003csup\\u003ea, 其中这个 a 为浮点数，则\\u003ccode\\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\\u003c/code\\u003e其中 x,y 分别是\\u003ccode\\u003ea*k\\u003c/code\\u003e的整数部分和小数部分，对于 t=n\\u003c/sup\\u003ek 这个数，它的位数由 (10\\u003csup\\u003ex) 决定，它的位数上的值则有 (10\\u003c/sup\\u003ey) 决定，因此我们要求 t 的前三位，只需要将 10\\u003csup\\u003ey 求出，在乘以 100，就得到了它的前三位。\\u003cbr\\u003e\\n分析完，我们再整体看，设 n\\u003c/sup\\u003ek=10^z; 那么\\u003ccode\\u003ez=k*log10(n)\\u003c/code\\u003e\\u003cbr\\u003e\\n\\u003ccode\\u003efmod(z,1)\\u003c/code\\u003e可以求出 x 的小数部分。\\u003c/p\\u003e\"},{\"title\":\"欧拉函数\",\"date_published\":\"2018-08-08T17:10:07&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euler/\",\"url\":\"https://lruihao.cn/posts/euler/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"euler\",\"C\"],\"summary\":\"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\n其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=223】\\n12 定理 若 n 是素数 p 的 k 次幂，φ(n)=pk-p(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时，φ(2n)=φ(n) p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值 若 a 为素数，b mod a=0,φ(a*b)=φ(b)*a \",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"欧拉函数是求小于-x-并且和-x\\\"\\u003e\\u003cspan\\u003e11 \\u003cstrong\\u003e\\u003cem\\u003e欧拉函数是求小于 x 并且和 x\\u003ca href=\\\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e互质\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 的数的个数\\u003c/em\\u003e\\u003c/strong\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\\u003cbr\\u003e\\n\\u003cstrong\\u003e其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数\\u003c/strong\\u003e\\u003cbr\\u003e\\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2\\u003cem\\u003e2\\u003c/em\\u003e3】\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"定理\\\"\\u003e\\u003cspan\\u003e12 定理\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%ae%9a%e7%90%86\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e若 n 是素数 p 的 k 次幂，φ(n)=p\\u003csup\\u003ek-p\\u003c/sup\\u003e(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 \\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" title=\\\"IMG_20180808_170807.jpg\\\" data-thumbnail=\\\"/images/remote/5b6ab31239225_7187742310856122931.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003eIMG_20180808_170807.jpg\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\\\"IMG_20180808_170807.jpg\\\" height=\\\"1797\\\" width=\\\"4160\\\"\\u003e\\u003c/a\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"特殊性质\\\"\\u003e\\u003cspan\\u003e13 特殊性质\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e当 n 为奇数时，φ(2n)=φ(n)\\u003c/li\\u003e\\n\\u003cli\\u003ep 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值\\u003c/li\\u003e\\n\\u003cli\\u003e若 a 为素数，b mod a=0,\\u003ccode\\u003eφ(a*b)=φ(b)*a\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\"}]}"
  },
  {
    "path": "tags/数论/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>数论 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"数论\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"数论\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"数论\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/ title=\"数论 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/index.xml title=\"数论 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/feed.json title=\"数论 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/feed.json title=\"数论 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%95%B0%E8%AE%BA/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>数论</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>数论 <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article><article class=archive-item><a href=/posts/lightoj1282/ class=archive-item-link>Leading and Trailing-Lightoj1282（快速幂 + 对数运算）</a>\n<span class=archive-item-date title='2018-08-09 20:55:26'>08-09</span></article><article class=archive-item><a href=/posts/euler/ class=archive-item-link>欧拉函数</a>\n<span class=archive-item-date title='2018-08-08 17:10:07'>08-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%95%B0%E8%AE%BA/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/数论/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>数论 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item><item><title>Leading and Trailing-lightoj1282（快速幂 + 对数运算）</title><link>https://lruihao.cn/posts/lightoj1282/</link><pubDate>Thu, 09 Aug 2018 20:55:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/lightoj1282/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目链接\"&gt;&lt;span&gt;13 &lt;a href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;14 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给定两个数 n,k 求 n^k 的前三位和最后三位。&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"分析\"&gt;&lt;span&gt;15 分析&lt;/span&gt;\n &lt;a href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;求后三位的话：直接快速幂，对 1000 取模就好了。&lt;br&gt;\n求前三位，对于给定的一个数 n, 它可以写成 n=10&lt;sup&gt;a, 其中这个 a 为浮点数，则&lt;code&gt;t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);&lt;/code&gt;其中 x,y 分别是&lt;code&gt;a*k&lt;/code&gt;的整数部分和小数部分，对于 t=n&lt;/sup&gt;k 这个数，它的位数由 (10&lt;sup&gt;x) 决定，它的位数上的值则有 (10&lt;/sup&gt;y) 决定，因此我们要求 t 的前三位，只需要将 10&lt;sup&gt;y 求出，在乘以 100，就得到了它的前三位。&lt;br&gt;\n分析完，我们再整体看，设 n&lt;/sup&gt;k=10^z; 那么&lt;code&gt;z=k*log10(n)&lt;/code&gt;&lt;br&gt;\n&lt;code&gt;fmod(z,1)&lt;/code&gt;可以求出 x 的小数部分。&lt;/p&gt;</description></item><item><title>欧拉函数</title><link>https://lruihao.cn/posts/euler/</link><pubDate>Wed, 08 Aug 2018 17:10:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euler/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"&gt;&lt;span&gt;16 &lt;strong&gt;&lt;em&gt;欧拉函数是求小于 x 并且和 x&lt;a href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;互质&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 的数的个数&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;\n &lt;a href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;通式：φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)&lt;br&gt;\n&lt;strong&gt;其中 p1, p2……pn 为 x 的所有质因数，x 是不为 0 的整数&lt;/strong&gt;&lt;br&gt;\nφ(1)=1（唯一和 1 互质的数就是 1 本身）【注意：每种质因数只一个。比如 12=2&lt;em&gt;2&lt;/em&gt;3】&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"定理\"&gt;&lt;span&gt;17 定理&lt;/span&gt;\n &lt;a href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;若 n 是素数 p 的 k 次幂，φ(n)=p&lt;sup&gt;k-p&lt;/sup&gt;(k-1)=(p-1)p^(k-1)，因为除了 p 的倍数外，其他数都跟 n 互质 &lt;a class=\"lightgallery\" target=\"_blank\" href=\"https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"&lt;h2&gt;IMG_20180808_170807.jpg&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"&gt;&lt;/a&gt;&lt;/li&gt;\n&lt;li&gt;欧拉函数是积性函数——若 m,n 互质，φ(mn)=φ(m)φ(n)&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"特殊性质\"&gt;&lt;span&gt;18 特殊性质&lt;/span&gt;\n &lt;a href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;当 n 为奇数时，φ(2n)=φ(n)&lt;/li&gt;\n&lt;li&gt;p 是素数，φ(p) = p - 1，φ(p) 称为 p 的欧拉值&lt;/li&gt;\n&lt;li&gt;若 a 为素数，b mod a=0,&lt;code&gt;φ(a*b)=φ(b)*a&lt;/code&gt;&lt;/li&gt;\n&lt;/ol&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/数论/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%95%B0%E8%AE%BA/\"></head></html>"
  },
  {
    "path": "tags/最短路/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"最短路 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Heavy Transportation-poj1797(dijkstra 或最大生成树）\",\"date_published\":\"2018-08-06T09:42:11&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj1797/\",\"url\":\"https://lruihao.cn/posts/poj1797/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"POJ\",\"最短路\",\"C++\"],\"summary\":\"题目链接\\n大意：\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边； \",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=1797\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e大意：\\u003cbr\\u003e\\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。\\u003cbr\\u003e\\n其实题意很简单，就是找一条 1\\u0026ndash;\\u0026gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\\n\\u003ca class=\\\"lightgallery\\\" target=\\\"_blank\\\" href=\\\"images/update.jpg\\\" title=\\\"更新\\\" data-thumbnail=\\\"images/update.jpg\\\" data-sub-html=\\\"\\u003ch2\\u003e更新\\u003c/h2\\u003e\\\"\\u003e\\u003cimg loading=\\\"lazy\\\" src='images/update.jpg' alt=\\\"更新\\\"\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\"},{\"title\":\"Til the Cows Come Home-poj2387(dijkstra 判断重边）\",\"date_published\":\"2018-08-03T21:40:33&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/poj2387/\",\"url\":\"https://lruihao.cn/posts/poj2387/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"最短路\",\"C++\",\"C\"],\"summary\":\"题目链接\\n题目大意：\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\n两个点可能有多条路，选择最短的。\\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \\u0026\\u0026 d[j]\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"http://poj.org/problem?id=2387\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/p\\u003e\\n\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。\\u003c/p\\u003e\\n\\u003cp\\u003e两个点可能有多条路，选择最短的。\\u003c/p\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e#include\\u003cstdio.h\\u003e\\n#include\\u003cstring.h\\u003e\\n#include\\u003calgorithm\\u003e\\nusing namespace std;\\n\\nconst int INF=99999999;                    //设为无穷大\\nint maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路\\nint n;\\n\\nvoid Dijkstra(int s,int t)\\n{\\n    int i,j,k,mini;\\n    for(i=1;i\\u003c=n;i++)\\n        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大\\n    d[s]=0;\\n    for(i=1;i\\u003c=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\\n    {\\n        mini=INF;\\n        k=-1;\\n        for(j=1;j\\u003c=n;j++)              //在所有未标记点中 选 d 值最小的点\\n            if(!v[j] \\u0026\\u0026 d[j]\\u003cmini)\\n                mini=d[k=j];\\n\\n        v[k]=1;                         //标记节点\\n        if(k==t)\\n        {\\n            printf(\\\"%d\\\\n\\\",d[t]);\\n            return;\\n        }\\n        for(j=1;j\\u003c=n;j++)\\n            if(!v[j] \\u0026\\u0026 (d[k]+maps[k][j])\\u003cd[j])   //表示从 k 出发的点，对于所有边，更新相连点\\n                d[j]=d[k]+maps[k][j];\\n    }\\n}\\n\\nint main()\\n{\\n    int T,i,j,x,y,D;\\n    while(scanf(\\\"%d %d\\\",\\u0026T,\\u0026n)!=EOF)\\n    {\\n        memset(v,0,sizeof(v));            //清除标记\\n        for(i=1;i\\u003c=n;i++)\\n            for(j=1;j\\u003c=n;j++)\\n                maps[i][j]=INF;\\n\\n        for(i=1;i\\u003c=T;i++){\\n            scanf(\\\"%d%d%d\\\",\\u0026x,\\u0026y,\\u0026D);\\n            if(maps[x][y]\\u003eD)               //可能有多条路，只记录最短的\\n                maps[x][y]=D,maps[y][x]=D;\\n        }\\n        Dijkstra(1,n);\\n    }\\n    return 0;\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\"},{\"title\":\"最短路入门\",\"date_published\":\"2018-08-03T16:27:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/zuiduanlu/\",\"url\":\"https://lruihao.cn/posts/zuiduanlu/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"最短路\",\"ACM\"],\"summary\":\" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\n\",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"dijkstra-算法\\\"\\u003e\\u003cspan\\u003e1 Dijkstra 算法\\u003c/span\\u003e\\n  \\u003ca href=\\\"#dijkstra-%e7%ae%97%e6%b3%95\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"1-定义概览\\\"\\u003e\\u003cspan\\u003e1.1 1. 定义概览\\u003c/span\\u003e\\n  \\u003ca href=\\\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003eDijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/最短路/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>最短路 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"最短路\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-06T09:42:11+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"最短路\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"最短路\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ title=\"最短路 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/index.xml title=\"最短路 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/feed.json title=\"最短路 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/feed.json title=\"最短路 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>最短路</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>最短路 <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/poj1797/ class=archive-item-link>Heavy Transportation-Poj1797(dijkstra 或最大生成树）</a>\n<span class=archive-item-date title='2018-08-06 09:42:11'>08-06</span></article><article class=archive-item><a href=/posts/poj2387/ class=archive-item-link>Til the Cows Come Home-Poj2387(dijkstra 判断重边）</a>\n<span class=archive-item-date title='2018-08-03 21:40:33'>08-03</span></article><article class=archive-item><a href=/posts/zuiduanlu/ class=archive-item-link>最短路入门</a>\n<span class=archive-item-date title='2018-08-03 16:27:16'>08-03</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/最短路/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>最短路 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Heavy Transportation-poj1797(dijkstra 或最大生成树）</title><link>https://lruihao.cn/posts/poj1797/</link><pubDate>Mon, 06 Aug 2018 09:42:11 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj1797/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;大意：&lt;br&gt;\n要从城市 1 到城市 N 运送货物，有 M 条道路，每条道路都有它的最大载重量，问从城市 1 到城市 N 运送最多的重量是多少。&lt;br&gt;\n其实题意很简单，就是找一条 1&amp;ndash;&amp;gt;N 的路径，在不超过每条路径的最大载重量的情况下，使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边；\n&lt;a class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"&lt;h2&gt;更新&lt;/h2&gt;\"&gt;&lt;img loading=\"lazy\" src='images/update.jpg' alt=\"更新\"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Til the Cows Come Home-poj2387(dijkstra 判断重边）</title><link>https://lruihao.cn/posts/poj2387/</link><pubDate>Fri, 03 Aug 2018 21:40:33 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/poj2387/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;\n&lt;p&gt;题目大意：&lt;br&gt;\n说的是，一只奶牛位于 N 号节点，输入 N 个节点和 T 对双向的边，求出由 N 到 1 的最短的距离，其实就是问的单源最短路问题。&lt;/p&gt;\n&lt;p&gt;两个点可能有多条路，选择最短的。&lt;/p&gt;\n&lt;pre&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;\n#include&amp;lt;string.h&amp;gt;\n#include&amp;lt;algorithm&amp;gt;\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;) //在所有未标记点中 选 d 值最小的点\n if(!v[j] &amp;amp;&amp;amp; d[j]&amp;lt;mini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(&amp;#34;%d\\n&amp;#34;,d[t]);\n return;\n }\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n if(!v[j] &amp;amp;&amp;amp; (d[k]&amp;#43;maps[k][j])&amp;lt;d[j]) //表示从 k 出发的点，对于所有边，更新相连点\n d[j]=d[k]&amp;#43;maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(&amp;#34;%d %d&amp;#34;,&amp;amp;T,&amp;amp;n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i&amp;lt;=n;i&amp;#43;&amp;#43;)\n for(j=1;j&amp;lt;=n;j&amp;#43;&amp;#43;)\n maps[i][j]=INF;\n\n for(i=1;i&amp;lt;=T;i&amp;#43;&amp;#43;){\n scanf(&amp;#34;%d%d%d&amp;#34;,&amp;amp;x,&amp;amp;y,&amp;amp;D);\n if(maps[x][y]&amp;gt;D) //可能有多条路，只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>最短路入门</title><link>https://lruihao.cn/posts/zuiduanlu/</link><pubDate>Fri, 03 Aug 2018 16:27:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/zuiduanlu/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;h2 class=\"heading-element\" id=\"dijkstra-算法\"&gt;&lt;span&gt;1 Dijkstra 算法&lt;/span&gt;\n &lt;a href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"1-定义概览\"&gt;&lt;span&gt;1.1 1. 定义概览&lt;/span&gt;\n &lt;a href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;Dijkstra（迪杰斯特拉）算法是典型的单源最短路径算法，用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展，直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法，在很多专业课程中都作为基本内容有详细的介绍，如数据结构，图论，运筹学等等。注意该算法要求图中不存在负权边。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/最短路/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%9C%80%E7%9F%AD%E8%B7%AF/\"></head></html>"
  },
  {
    "path": "tags/杨辉三角/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"杨辉三角 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"杨辉三角\",\"date_published\":\"2018-07-22T11:41:15&#43;08:00\",\"date_modified\":\"2021-09-26T12:04:42&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"url\":\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"杨辉三角\"],\"summary\":\"百度知道 1\\n1 1\\n1 2 1\\n1 3 3 1\\n1 4 6 4 1\\n1 5 10 10 5 1\\n1 6 15 20 15 6 1\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ca href=\\\"https://zhidao.baidu.com/question/367384574464313844.html\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e百度知道\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\n1\\u003c/p\\u003e\\n\\u003cp\\u003e1 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 2 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 3 3 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 4 6 4 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 5 10 10 5 1\\u003c/p\\u003e\\n\\u003cp\\u003e1 6 15 20 15 6 1\\u003c/p\\u003e\\n\\u003chr\\u003e\"}]}"
  },
  {
    "path": "tags/杨辉三角/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>杨辉三角 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"杨辉三角\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-22T11:41:15+08:00\"><meta itemprop=dateModified content=\"2021-09-26T12:04:42+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"杨辉三角\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"杨辉三角\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ title=\"杨辉三角 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/index.xml title=\"杨辉三角 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/feed.json title=\"杨辉三角 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/feed.json title=\"杨辉三角 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>杨辉三角</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>杨辉三角 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ class=archive-item-link>杨辉三角</a>\n<span class=archive-item-date title='2018-07-22 11:41:15'>07-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/杨辉三角/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>杨辉三角 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 26 Sep 2021 12:04:42 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>杨辉三角</title><link>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</link><pubDate>Sun, 22 Jul 2018 11:41:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;a href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;百度知道&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;\n1&lt;/p&gt;\n&lt;p&gt;1 1&lt;/p&gt;\n&lt;p&gt;1 2 1&lt;/p&gt;\n&lt;p&gt;1 3 3 1&lt;/p&gt;\n&lt;p&gt;1 4 6 4 1&lt;/p&gt;\n&lt;p&gt;1 5 10 10 5 1&lt;/p&gt;\n&lt;p&gt;1 6 15 20 15 6 1&lt;/p&gt;\n&lt;hr&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/杨辉三角/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\"></head></html>"
  },
  {
    "path": "tags/欧几里得/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"欧几里得 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"最大公约数（二进制算法）\",\"date_published\":\"2019-05-17T09:14:16&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/gcd-bit/\",\"url\":\"https://lruihao.cn/posts/gcd-bit/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"欧几里得\",\"数学\",\"数论\",\"C\"],\"summary\":\" 二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"The equation-SGU106（扩展欧几里得）\",\"date_published\":\"2018-08-10T10:32:39&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/euclid/\",\"url\":\"https://lruihao.cn/posts/euclid/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"数论\",\"ACM\",\"欧几里得\",\"他山之石\",\"C++\",\"C\"],\"summary\":\"7 题意 给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题意\\\"\\u003e\\u003cspan\\u003e7 题意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/欧几里得/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>欧几里得 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"欧几里得\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-17T09:14:16+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"欧几里得\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"欧几里得\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ title=\"欧几里得 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/index.xml title=\"欧几里得 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/feed.json title=\"欧几里得 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/feed.json title=\"欧几里得 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>欧几里得</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>欧几里得 <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/gcd-bit/ class=archive-item-link>最大公约数（二进制算法）</a>\n<span class=archive-item-date title='2019-05-17 09:14:16'>05-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/euclid/ class=archive-item-link><i class=\"fa-solid fa-share text-success me-1\" aria-hidden=true></i>The Equation-SGU106（扩展欧几里得）</a>\n<span class=archive-item-date title='2018-08-10 10:32:39'>08-10</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/欧几里得/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>欧几里得 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>最大公约数（二进制算法）</title><link>https://lruihao.cn/posts/gcd-bit/</link><pubDate>Fri, 17 May 2019 09:14:16 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/gcd-bit/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;二进制最大公约数算法避免了欧几里得算法（辗转相除法）的大量取模操作，有效减少了时间消耗，且更为方便。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>The equation-SGU106（扩展欧几里得）</title><link>https://lruihao.cn/posts/euclid/</link><pubDate>Fri, 10 Aug 2018 10:32:39 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/euclid/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题意\"&gt;&lt;span&gt;10 题意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;给出 a,b,c,x1,x2,y1,y2，求满足 ax+by+c=0，且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/欧几里得/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/\"></head></html>"
  },
  {
    "path": "tags/水仙花数/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"水仙花数 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 水仙花数（循环）\",\"date_published\":\"2019-01-14T17:30:24&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/java-range/\",\"url\":\"https://lruihao.cn/posts/java-range/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"水仙花数\",\"Java\"],\"summary\":\" 水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：13 + 53+ 3^3 = 153）。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1\\u003csup\\u003e3 + 5\\u003c/sup\\u003e3+ 3^3 = 153）。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/水仙花数/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>水仙花数 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"水仙花数\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-14T17:30:24+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"水仙花数\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"水仙花数\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/ title=\"水仙花数 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/index.xml title=\"水仙花数 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/feed.json title=\"水仙花数 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/feed.json title=\"水仙花数 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>水仙花数</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>水仙花数 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/java-range/ class=archive-item-link>Java 水仙花数（循环）</a>\n<span class=archive-item-date title='2019-01-14 17:30:24'>01-14</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/水仙花数/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>水仙花数 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 水仙花数（循环）</title><link>https://lruihao.cn/posts/java-range/</link><pubDate>Mon, 14 Jan 2019 17:30:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/java-range/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;p&gt;水仙花数（Narcissistic number）也被称为超完全数字不变数（pluperfect digital invariant, PPDI）、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数（Armstrong number），水仙花数是指一个 3 位数，它的每个位上的数字的 3 次幂之和等于它本身（例如：1&lt;sup&gt;3 + 5&lt;/sup&gt;3+ 3^3 = 153）。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/水仙花数/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/\"></head></html>"
  },
  {
    "path": "tags/沐目体/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"沐目体 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"沐目体\",\"date_published\":\"2018-10-12T19:39:19&#43;08:00\",\"date_modified\":\"2018-10-12T19:39:19&#43;08:00\",\"id\":\"https://lruihao.cn/projects/font-mmt/\",\"url\":\"https://lruihao.cn/projects/font-mmt/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"沐目体\"],\"summary\":\" \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003ciframe class=\\\"manuscript\\\" src=\\\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\\u0026a=fontshowPics\\u0026u=qbfRl8gPF2s-\\u0026z=Kqz%2FRroVGYc-\\\" style=\\\"width: 100%;height: 370px;margin-top: .25rem;\\\" frameborder=\\\"0\\\" allowfullscreen\\u003e\\u003c/iframe\\u003e\"}]}"
  },
  {
    "path": "tags/沐目体/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>沐目体 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"沐目体\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-12T19:39:19+08:00\"><meta itemprop=dateModified content=\"2018-10-12T19:39:19+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"沐目体\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"沐目体\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/ title=\"沐目体 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/index.xml title=\"沐目体 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/feed.json title=\"沐目体 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/feed.json title=\"沐目体 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>沐目体</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>沐目体 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/projects/font-mmt/ class=archive-item-link>沐目体</a>\n<span class=archive-item-date title='2018-10-12 19:39:19'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/沐目体/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>沐目体 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 12 Oct 2018 19:39:19 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>沐目体</title><link>https://lruihao.cn/projects/font-mmt/</link><pubDate>Fri, 12 Oct 2018 19:39:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/font-mmt/</guid><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;iframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen&gt;&lt;/iframe&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/沐目体/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%B2%90%E7%9B%AE%E4%BD%93/\"></head></html>"
  },
  {
    "path": "tags/泛型/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"泛型 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"java 泛型 test\",\"date_published\":\"2019-03-16T13:56:01&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/fanxing/\",\"url\":\"https://lruihao.cn/posts/fanxing/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"泛型\",\"Java\"],\"summary\":\" 泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参，注意不是类型形参。 \",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e泛型方法，它在修饰符后，返回值类型前增加了类型参数 (\\u0026lt;\\u0026gt;)\\u003c/li\\u003e\\n\\u003cli\\u003e类型通配符一般使用问号\\u003ccode\\u003e?\\u003c/code\\u003e代替具体的类型\\u003ccode\\u003e实\\u003c/code\\u003e参，注意不是类型形参。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/泛型/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>泛型 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"泛型\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-16T13:56:01+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"泛型\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"泛型\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/ title=\"泛型 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/index.xml title=\"泛型 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/feed.json title=\"泛型 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/feed.json title=\"泛型 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%B3%9B%E5%9E%8B/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>泛型</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>泛型 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/fanxing/ class=archive-item-link>Java 泛型 Test</a>\n<span class=archive-item-date title='2019-03-16 13:56:01'>03-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%B3%9B%E5%9E%8B/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/泛型/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>泛型 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>java 泛型 test</title><link>https://lruihao.cn/posts/fanxing/</link><pubDate>Sat, 16 Mar 2019 13:56:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/fanxing/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;blockquote&gt;\n&lt;ul&gt;\n&lt;li&gt;泛型方法，它在修饰符后，返回值类型前增加了类型参数 (&amp;lt;&amp;gt;)&lt;/li&gt;\n&lt;li&gt;类型通配符一般使用问号&lt;code&gt;?&lt;/code&gt;代替具体的类型&lt;code&gt;实&lt;/code&gt;参，注意不是类型形参。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/泛型/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%B3%9B%E5%9E%8B/\"></head></html>"
  },
  {
    "path": "tags/流水线/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"流水线 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"流水线\",\"date_published\":\"2018-10-09T16:21:04&#43;08:00\",\"date_modified\":\"2018-10-09T16:21:04&#43;08:00\",\"id\":\"https://lruihao.cn/posts/liushuixian/\",\"url\":\"https://lruihao.cn/posts/liushuixian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"summary\":\"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"概念\\\"\\u003e\\u003cspan\\u003e15 概念\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a6%82%e5%bf%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/流水线/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>流水线 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"流水线\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-09T16:21:04+08:00\"><meta itemprop=dateModified content=\"2018-10-09T16:21:04+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"流水线\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"流水线\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/ title=\"流水线 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/index.xml title=\"流水线 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/feed.json title=\"流水线 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/feed.json title=\"流水线 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>流水线</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>流水线 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/liushuixian/ class=archive-item-link>流水线</a>\n<span class=archive-item-date title='2018-10-09 16:21:04'>10-09</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/流水线/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>流水线 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 09 Oct 2018 16:21:04 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>流水线</title><link>https://lruihao.cn/posts/liushuixian/</link><pubDate>Tue, 09 Oct 2018 16:21:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/liushuixian/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"概念\"&gt;&lt;span&gt;22 概念&lt;/span&gt;\n &lt;a href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/流水线/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/</title><link rel=canonical href=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E6%B5%81%E6%B0%B4%E7%BA%BF/\"></head></html>"
  },
  {
    "path": "tags/磁盘/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"磁盘 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"磁盘存储器的管理\",\"date_published\":\"2019-03-04T23:08:32&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cipanadmin/\",\"url\":\"https://lruihao.cn/posts/cipanadmin/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"OS\",\"磁盘\"],\"summary\":\"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"外存的组织方式\\\"\\u003e\\u003cspan\\u003e1 外存的组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003ch3 class=\\\"heading-element\\\" id=\\\"连续组织方式\\\"\\u003e\\u003cspan\\u003e1.1 连续组织方式\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e\\n\\u003cp\\u003e连续组织方式的优点\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/磁盘/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>磁盘 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"磁盘\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-03-04T23:08:32+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"磁盘\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"磁盘\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/ title=\"磁盘 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/index.xml title=\"磁盘 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/feed.json title=\"磁盘 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/feed.json title=\"磁盘 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E7%A3%81%E7%9B%98/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>磁盘</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>磁盘 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/cipanadmin/ class=archive-item-link>磁盘存储器的管理</a>\n<span class=archive-item-date title='2019-03-04 23:08:32'>03-04</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E7%A3%81%E7%9B%98/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/磁盘/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>磁盘 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>磁盘存储器的管理</title><link>https://lruihao.cn/posts/cipanadmin/</link><pubDate>Mon, 04 Mar 2019 23:08:32 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cipanadmin/</guid><category domain=\"https://lruihao.cn/categories/os/\">OS</category><description>&lt;h2 class=\"heading-element\" id=\"外存的组织方式\"&gt;&lt;span&gt;1 外存的组织方式&lt;/span&gt;\n &lt;a href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;h3 class=\"heading-element\" id=\"连续组织方式\"&gt;&lt;span&gt;1.1 连续组织方式&lt;/span&gt;\n &lt;a href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;\n&lt;p&gt;连续组织方式的优点&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/磁盘/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/</title><link rel=canonical href=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E7%A3%81%E7%9B%98/\"></head></html>"
  },
  {
    "path": "tags/组合数学/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"组合数学 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"石子阵列（组合数学）\",\"date_published\":\"2018-08-10T22:11:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/nowcoder157a/\",\"url\":\"https://lruihao.cn/posts/nowcoder157a/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"数学\",\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\"],\"summary\":\"链接：https://www.nowcoder.com/acm/contest/157/A\\n来源：牛客网\\n15 题目描述 xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\n\",\"content_html\":\"\\u003cp\\u003e链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/157/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/157/A\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e15 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003exb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。\\u003c/p\\u003e\"},{\"title\":\"Dreamoon and WiFi（组合数学）\",\"date_published\":\"2018-08-10T17:44:47&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/codeforces476b/\",\"url\":\"https://lruihao.cn/posts/codeforces476b/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"Codeforces\",\"ACM\",\"数学\",\"C++\",\"C\"],\"summary\":\"题目链接\\n7 题目大意 就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003cstrong\\u003e\\u003ca href=\\\"https://codeforces.com/contest/476/problem/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e7 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e就是给定两个字符串，第一个字符串由\\u0026quot;+\\u0026quot;,\\u0026quot;-\\u0026ldquo;组成，第二个字符串由\\u0026rdquo;+\\u0026quot;,\\u0026quot;-\\u0026quot;,\\u0026quot;?\\u0026ldquo;组成，“+”代表加 1，\\u0026rdquo;-\\u0026ldquo;代表减一，“?\\u0026ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。\\u003c/p\\u003e\"},{\"title\":\"Codeforces Round 502(Div.1 + Div.2)\",\"date_published\":\"2018-08-09T10:48:00&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cfcontest1017/\",\"url\":\"https://lruihao.cn/posts/cfcontest1017/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"Codeforces\",\"组合数学\",\"C++\"],\"summary\":\"0.5 A. The Rank 题目大意：\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"a-the-rank\\\"\\u003e\\u003cspan\\u003e0.5 \\u003ca href=\\\"https://codeforces.com/contest/1017/problem/A\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003eA. The Rank\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003c/span\\u003e\\n  \\u003ca href=\\\"#a-the-rank\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e题目大意：\\u003cbr\\u003e\\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；\\u003cbr\\u003e\\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。\\u003c/p\\u003e\"},{\"title\":\"Wannafly 挑战赛 18-序列\",\"date_published\":\"2018-07-18T08:40:21&#43;08:00\",\"date_modified\":\"2018-07-18T08:40:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/wannafly-18/\",\"url\":\"https://lruihao.cn/posts/wannafly-18/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"组合数学\",\"ACM\",\"Nowcoder\",\"C++\",\"C\"],\"summary\":\"时间限制：C/C++ 1 秒，其他语言 2 秒\\n空间限制：C/C++ 262144K，其他语言 524288K\\n64bit IO Format: %lld\\n9 题目描述 有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\n\",\"content_html\":\"\\u003cp\\u003e时间限制：C/C++ 1 秒，其他语言 2 秒\\u003cbr\\u003e\\n空间限制：C/C++ 262144K，其他语言 524288K\\u003cbr\\u003e\\n64bit IO Format: %lld\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e9 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 \\u0026lt;= x \\u0026lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。\\u003cbr\\u003e\\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/组合数学/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>组合数学 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"组合数学\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-08-10T22:11:00+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"组合数学\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"组合数学\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ title=\"组合数学 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/index.xml title=\"组合数学 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/feed.json title=\"组合数学 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/feed.json title=\"组合数学 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>组合数学</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>组合数学 <sup>4</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/nowcoder157a/ class=archive-item-link>石子阵列（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 22:11:00'>08-10</span></article><article class=archive-item><a href=/posts/codeforces476b/ class=archive-item-link>Dreamoon and WiFi（组合数学）</a>\n<span class=archive-item-date title='2018-08-10 17:44:47'>08-10</span></article><article class=archive-item><a href=/posts/cfcontest1017/ class=archive-item-link>Codeforces Round 502(Div.1 + Div.2)</a>\n<span class=archive-item-date title='2018-08-09 10:48:00'>08-09</span></article><article class=archive-item><a href=/posts/wannafly-18/ class=archive-item-link>Wannafly 挑战赛 18-序列</a>\n<span class=archive-item-date title='2018-07-18 08:40:21'>07-18</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/组合数学/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>组合数学 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>石子阵列（组合数学）</title><link>https://lruihao.cn/posts/nowcoder157a/</link><pubDate>Fri, 10 Aug 2018 22:11:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/nowcoder157a/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/157/A&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;22 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;xb 有 m 种石子，每种无限个，Ta 想从这些石子中取出 n 个，并按顺序排列起来，为了好看，相邻的石子不能相同。xb 想知道有多少种排列的方法。&lt;/p&gt;</description></item><item><title>Dreamoon and WiFi（组合数学）</title><link>https://lruihao.cn/posts/codeforces476b/</link><pubDate>Fri, 10 Aug 2018 17:44:47 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/codeforces476b/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;strong&gt;&lt;a href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;10 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;就是给定两个字符串，第一个字符串由&amp;quot;+&amp;quot;,&amp;quot;-&amp;ldquo;组成，第二个字符串由&amp;rdquo;+&amp;quot;,&amp;quot;-&amp;quot;,&amp;quot;?&amp;ldquo;组成，“+”代表加 1，&amp;rdquo;-&amp;ldquo;代表减一，“?&amp;ldquo;代表可取正也可取负，问第二个字符串的位置和第一个字符串相等的概率是多少。&lt;/p&gt;</description></item><item><title>Codeforces Round 502(Div.1 + Div.2)</title><link>https://lruihao.cn/posts/cfcontest1017/</link><pubDate>Thu, 09 Aug 2018 10:48:00 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cfcontest1017/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h3 class=\"heading-element\" id=\"a-the-rank\"&gt;&lt;span&gt;0.7 &lt;a href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;A. The Rank&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;\n &lt;a href=\"#a-the-rank\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;题目大意：&lt;br&gt;\n给出 n 个学生的成绩，Thomas Smith 的成绩是第一行，然后要按总成绩进行排序，总分相同的按编号从小到大排；&lt;br&gt;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序，敲完才发现其实只要按总分就可以了，因为托马斯的 id 是一，必然会排在前面。&lt;/p&gt;</description></item><item><title>Wannafly 挑战赛 18-序列</title><link>https://lruihao.cn/posts/wannafly-18/</link><pubDate>Wed, 18 Jul 2018 08:40:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/wannafly-18/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;时间限制：C/C++ 1 秒，其他语言 2 秒&lt;br&gt;\n空间限制：C/C++ 262144K，其他语言 524288K&lt;br&gt;\n64bit IO Format: %lld&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;13 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;有一个长度为 n 的序列 a，已知 a[1]=a[n]=1，且对于 2 &amp;lt;= x &amp;lt;= n，a[x] / a[x-1] 是以下三个数字之一 [ 1，-2，0.5 ], 问有多少种不同的序列满足题意。&lt;br&gt;\n两个序列不同当且仅当它们有至少一个位置上的数字不同，序列 a 可以为任何实数。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/组合数学/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/</title><link rel=canonical href=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6/\"></head></html>"
  },
  {
    "path": "tags/网站备案/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"网站备案 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"网站备案之旅\",\"date_published\":\"2018-10-29T23:16:26&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beian/\",\"url\":\"https://lruihao.cn/posts/beian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\",\"网站备案\"],\"summary\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e备案\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\u003cbr\\u003e\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"}]}"
  },
  {
    "path": "tags/网站备案/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>网站备案 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"网站备案\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-29T23:16:26+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"网站备案\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"网站备案\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/ title=\"网站备案 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/index.xml title=\"网站备案 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/feed.json title=\"网站备案 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/feed.json title=\"网站备案 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>网站备案</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>网站备案 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/beian/ class=archive-item-link>网站备案之旅</a>\n<span class=archive-item-date title='2018-10-29 23:16:26'>10-29</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/网站备案/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>网站备案 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>网站备案之旅</title><link>https://lruihao.cn/posts/beian/</link><pubDate>Mon, 29 Oct 2018 23:16:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beian/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;备案&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。&lt;br&gt;\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/网站备案/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/</title><link rel=canonical href=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E7%BD%91%E7%AB%99%E5%A4%87%E6%A1%88/\"></head></html>"
  },
  {
    "path": "tags/背包问题/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"背包问题 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"TaoTao 要吃鸡\",\"date_published\":\"2018-07-22T10:55:21&#43;08:00\",\"date_modified\":\"2018-07-22T10:55:21&#43;08:00\",\"id\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"url\":\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"Nowcoder\",\"C++\"],\"summary\":\" 2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\n链接：https://www.nowcoder.com/acm/contest/74/B\\n来源：牛客网\\n11 题目描述 Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）\\u003cbr\\u003e\\n链接：\\u003ca href=\\\"https://www.nowcoder.com/acm/contest/74/B\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003ehttps://www.nowcoder.com/acm/contest/74/B\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n来源：牛客网\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目描述\\\"\\u003e\\u003cspan\\u003e11 题目描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003eTaotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。\\u003c/p\\u003e\"},{\"title\":\"简单背包\",\"date_published\":\"2018-06-16T13:18:43&#43;08:00\",\"date_modified\":\"2018-06-16T13:18:43&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"url\":\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"背包问题\",\"C\"],\"summary\":\"弱鸡还是弱鸡啊最简单的背包问题——。——！\\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\n\",\"content_html\":\"\\u003cp\\u003e\\u003ccode\\u003e弱鸡还是弱鸡啊最简单的背包问题——。——！\\u003c/code\\u003e\\u003c/p\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"问题描述\\\"\\u003e\\u003cspan\\u003e5 问题描述\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/背包问题/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>背包问题 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"背包问题\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-07-22T10:55:21+08:00\"><meta itemprop=dateModified content=\"2018-07-22T10:55:21+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"背包问题\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"背包问题\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ title=\"背包问题 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/index.xml title=\"背包问题 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/feed.json title=\"背包问题 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/feed.json title=\"背包问题 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>背包问题</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>背包问题 <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ class=archive-item-link>TaoTao 要吃鸡</a>\n<span class=archive-item-date title='2018-07-22 10:55:21'>07-22</span></article><article class=archive-item><a href=/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ class=archive-item-link>简单背包</a>\n<span class=archive-item-date title='2018-06-16 13:18:43'>06-16</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/背包问题/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>背包问题 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 22 Jul 2018 10:55:21 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>TaoTao 要吃鸡</title><link>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</link><pubDate>Sun, 22 Jul 2018 10:55:21 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;blockquote&gt;\n&lt;p&gt;2018 年全国多校算法寒假训练营练习比赛（第二场）B(0 1 背包变化 特殊处理一个物品）&lt;br&gt;\n链接：&lt;a href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;https://www.nowcoder.com/acm/contest/74/B&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n来源：牛客网&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;h2 class=\"heading-element\" id=\"题目描述\"&gt;&lt;span&gt;16 题目描述&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;Taotao 的电脑带不动绝地求生，所以 taotao 只能去玩 pc 版的荒野行动了，和绝地求生一样，游戏人物本身可以携带一定重量 m 的物品，装备背包之后可以多携带 h（h 为 0 代表没有装备背包）重量的东西。玩了几天 taotao 发现了一个 BUG，当装备背包之后，如果可携带重量没有满，就可以拿一个任意重的东西（解释看样例）有一天 taotao 空降到了一个奇怪的岛上，岛上有 n 件装备，每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备，所以他来求助你，挑选威力最大的装备，帮助他吃鸡。&lt;/p&gt;</description></item><item><title>简单背包</title><link>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</link><pubDate>Sat, 16 Jun 2018 13:18:43 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;p&gt;&lt;code&gt;弱鸡还是弱鸡啊最简单的背包问题——。——！&lt;/code&gt;&lt;/p&gt;\n&lt;h2 class=\"heading-element\" id=\"问题描述\"&gt;&lt;span&gt;7 问题描述&lt;/span&gt;\n &lt;a href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1，W2，···，Wn 的物品，能否从 n 件物品中挑选若干件恰好装满背包，即使 W1+W2+···+Wn=T，要求找出所有满足上述条件的解。例如：当 T=10，共 6 件物品，物品的体积为{1，2，3，4，5，8}，那么可找到下列 4 组解：（1，2，3，4）、（1，4，5）、（2，3，5）、（2、8）。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/背包问题/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/\"></head></html>"
  },
  {
    "path": "tags/脚手架/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"脚手架 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"用 Node.js 开发一个轻量脚手架\",\"date_published\":\"2023-11-28T10:48:07&#43;08:00\",\"date_modified\":\"2024-11-20T12:50:07&#43;08:00\",\"id\":\"https://lruihao.cn/projects/fixit-cli/\",\"url\":\"https://lruihao.cn/projects/fixit-cli/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"脚手架\",\"FixIt\"],\"image\":\"https://lruihao.cn/projects/fixit-cli/images/featured-image.png\",\"summary\":\"本文将介绍如何用 Node.js 开发一个轻量脚手架，以 fixit-cli 为例。\\n\",\"content_html\":\"\\u003cp\\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架，以 \\u003ca href=\\\"https://github.com/hugo-fixit/fixit-cli\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003efixit-cli\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e 为例。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/脚手架/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>脚手架 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"脚手架\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-11-28T10:48:07+08:00\"><meta itemprop=dateModified content=\"2024-11-20T12:50:07+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"脚手架\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"脚手架\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/ title=\"脚手架 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/index.xml title=\"脚手架 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/feed.json title=\"脚手架 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/feed.json title=\"脚手架 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>脚手架</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>脚手架 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/projects/fixit-cli/ class=archive-item-link>用 Node.js 开发一个轻量脚手架</a>\n<span class=archive-item-date title='2023-11-28 10:48:07'>11-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/脚手架/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>脚手架 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Wed, 20 Nov 2024 12:50:07 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>用 Node.js 开发一个轻量脚手架</title><link>https://lruihao.cn/projects/fixit-cli/</link><pubDate>Tue, 28 Nov 2023 10:48:07 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/fixit-cli/</guid><category domain=\"https://lruihao.cn/categories/node.js/\">Node.js</category><description>&lt;p&gt;本文将介绍如何用 Node.js 开发一个轻量脚手架，以 &lt;a href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;fixit-cli&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt; 为例。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/脚手架/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%84%9A%E6%89%8B%E6%9E%B6/\"></head></html>"
  },
  {
    "path": "tags/腾讯云-cos-桶/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"腾讯云 cos 桶 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\",\"date_published\":\"2021-10-04T23:46:49&#43;08:00\",\"date_modified\":\"2024-12-17T18:09:03&#43;08:00\",\"id\":\"https://lruihao.cn/posts/github-actions/\",\"url\":\"https://lruihao.cn/posts/github-actions/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Git\",\"GitHub Actions\",\"hugo\",\"腾讯云 cos 桶\"],\"summary\":\" 解決痛點 Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\n也就是説實現了在線寫靜態博客的需求。 \",\"content_html\":\"\\u003cdiv class=\\\"details admonition quote open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-quote-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e解決痛點\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003eGithub Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\\u003cbr\\u003e\\n也就是説實現了在線寫靜態博客的需求。\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"利用腾讯云为静态页面添加“动态”相册\",\"date_published\":\"2019-11-24T10:52:34&#43;08:00\",\"date_modified\":\"2019-11-24T10:52:34&#43;08:00\",\"id\":\"https://lruihao.cn/projects/cos-album/\",\"url\":\"https://lruihao.cn/projects/cos-album/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"CosAlbum\",\"腾讯云 cos 桶\",\"JavaScript\"],\"image\":\"/projects/cos-album/images/view.png\",\"summary\":\" 信息 cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\n功能虽好，但是还是先友情提示！\\n开放 API 是一个很危险的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！ \",\"content_html\":\"\\u003c!-- markdownlint-disable MD033 --\\u003e\\n\\u003cdiv class=\\\"details admonition info open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-circle-info\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e信息\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003ecos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，\\u003cbr\\u003e\\n\\u003cstrong\\u003e\\u003cspan style=\\\"color: #428bca;\\\"\\u003e功能虽好，但是还是先友情提示！\\u003c/span\\u003e\\u003c/strong\\u003e\\u003cbr\\u003e\\n开放 API 是一个\\u003cstrong\\u003e很危险\\u003c/strong\\u003e的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"利用腾讯云对象存储 COS 桶托管 hexo 博客\",\"date_published\":\"2019-01-22T14:57:08&#43;08:00\",\"date_modified\":\"2024-10-06T10:24:30&#43;08:00\",\"id\":\"https://lruihao.cn/posts/cos-hexo/\",\"url\":\"https://lruihao.cn/posts/cos-hexo/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"Hexo\",\"hugo\",\"对象存储\",\"腾讯云 cos 桶\"],\"summary\":\" 本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\n适用于 hexo, hugo 等静态博客的部署。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。\\u003cbr\\u003e\\n适用于 hexo, hugo 等静态博客的部署。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/腾讯云-cos-桶/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>腾讯云 cos 桶 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"腾讯云 cos 桶\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2021-10-04T23:46:49+08:00\"><meta itemprop=dateModified content=\"2024-12-17T18:09:03+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"腾讯云 cos 桶\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"腾讯云 cos 桶\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ title=\"腾讯云 cos 桶 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/index.xml title=\"腾讯云 cos 桶 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/feed.json title=\"腾讯云 cos 桶 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/feed.json title=\"腾讯云 cos 桶 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>腾讯云 Cos 桶</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>腾讯云 cos 桶 <sup>3</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/posts/github-actions/ class=archive-item-link>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 Cos 桶</a>\n<span class=archive-item-date title='2021-10-04 23:46:49'>10-04</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/projects/cos-album/ class=archive-item-link>利用腾讯云为静态页面添加“动态”相册</a>\n<span class=archive-item-date title='2019-11-24 10:52:34'>11-24</span></article><article class=archive-item><a href=/posts/cos-hexo/ class=archive-item-link>利用腾讯云对象存储 COS 桶托管 Hexo 博客</a>\n<span class=archive-item-date title='2019-01-22 14:57:08'>01-22</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/腾讯云-cos-桶/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>腾讯云 cos 桶 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Tue, 17 Dec 2024 18:09:03 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶</title><link>https://lruihao.cn/posts/github-actions/</link><pubDate>Mon, 04 Oct 2021 23:46:49 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/github-actions/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><category domain=\"https://lruihao.cn/categories/git/\">Git</category><description>&lt;div class=\"details admonition quote open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;解決痛點&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;Github Actions 真是靜態博客的福音，有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。&lt;br&gt;\n也就是説實現了在線寫靜態博客的需求。&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>利用腾讯云为静态页面添加“动态”相册</title><link>https://lruihao.cn/projects/cos-album/</link><pubDate>Sun, 24 Nov 2019 10:52:34 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/projects/cos-album/</guid><category domain=\"https://lruihao.cn/categories/javascript/\">JavaScript</category><description>&lt;!-- markdownlint-disable MD033 --&gt;\n&lt;div class=\"details admonition info open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"&gt;&lt;/i&gt;信息&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;cos 桶相册，终于！！终于来了！！，idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能]，&lt;br&gt;\n&lt;strong&gt;&lt;span style=\"color: #428bca;\"&gt;功能虽好，但是还是先友情提示！&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;\n开放 API 是一个&lt;strong&gt;很危险&lt;/strong&gt;的操作，意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中，所以建议不要放一些比较私密的照片，保护自己的隐私，提防不良用心之人。下面就开始吧！&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><category domain=\"https://lruihao.cn/categories/memo/\">Memo</category><description>&lt;blockquote&gt;\n&lt;p&gt;本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。&lt;br&gt;\n适用于 hexo, hugo 等静态博客的部署。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/腾讯云-cos-桶/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91-cos-%E6%A1%B6/\"></head></html>"
  },
  {
    "path": "tags/计算机数据/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"计算机数据 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"计算机数据\",\"date_published\":\"2018-10-08T23:01:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/data/\",\"url\":\"https://lruihao.cn/posts/data/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"summary\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据的表示\\\"\\u003e\\u003cspan\\u003e0.1 数据的表示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e数据的表示可分为：原码，反码和补码。（二进制）\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e原码：符号位 0 为正，1 为负。\\u003c/li\\u003e\\n\\u003cli\\u003e反码：符号位 0 为正，1 为负。\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：反码同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e补码：\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反再 +1。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e移码：补码符号位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据表示范围\\\"\\u003e\\u003cspan\\u003e0.2 数据表示范围\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e原码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e反码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e补码： \\u003ccode\\u003e-z^n-1 ~ 2^n-1 - 1\\u003c/code\\u003e （补码正 0 和负 0 相同，少占一数位，就多一个范围）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e例：\\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/计算机数据/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>计算机数据 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"计算机数据\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-08T23:01:10+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"计算机数据\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"计算机数据\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/ title=\"计算机数据 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/index.xml title=\"计算机数据 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/feed.json title=\"计算机数据 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/feed.json title=\"计算机数据 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>计算机数据</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>计算机数据 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/data/ class=archive-item-link>计算机数据</a>\n<span class=archive-item-date title='2018-10-08 23:01:10'>10-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/计算机数据/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>计算机数据 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>计算机数据</title><link>https://lruihao.cn/posts/data/</link><pubDate>Mon, 08 Oct 2018 23:01:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/data/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"数据的表示\"&gt;&lt;span&gt;0.1 数据的表示&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;数据的表示可分为：原码，反码和补码。（二进制）&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;原码：符号位 0 为正，1 为负。&lt;/li&gt;\n&lt;li&gt;反码：符号位 0 为正，1 为负。\n&lt;ul&gt;\n&lt;li&gt;正数：反码同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;补码：\n&lt;ul&gt;\n&lt;li&gt;正数：同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反再 +1。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;移码：补码符号位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"数据表示范围\"&gt;&lt;span&gt;0.2 数据表示范围&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;原码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;反码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;补码： &lt;code&gt;-z^n-1 ~ 2^n-1 - 1&lt;/code&gt; （补码正 0 和负 0 相同，少占一数位，就多一个范围）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/计算机数据/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%95%B0%E6%8D%AE/\"></head></html>"
  },
  {
    "path": "tags/计算机组成与体系结构/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"计算机组成与体系结构 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"流水线\",\"date_published\":\"2018-10-09T16:21:04&#43;08:00\",\"date_modified\":\"2018-10-09T16:21:04&#43;08:00\",\"id\":\"https://lruihao.cn/posts/liushuixian/\",\"url\":\"https://lruihao.cn/posts/liushuixian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"流水线\",\"计算机组成与体系结构\"],\"summary\":\"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"概念\\\"\\u003e\\u003cspan\\u003e15 概念\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%a6%82%e5%bf%b5\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。\\u003c/p\\u003e\"},{\"title\":\"计算机数据\",\"date_published\":\"2018-10-08T23:01:10&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/data/\",\"url\":\"https://lruihao.cn/posts/data/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"计算机数据\",\"计算机组成与体系结构\"],\"summary\":\"0.1 数据的表示 数据的表示可分为：原码，反码和补码。（二进制）\\n原码：符号位 0 为正，1 为负。 反码：符号位 0 为正，1 为负。 正数：反码同原码。 负数：符号位除外其他位按位取反。 补码： 正数：同原码。 负数：符号位除外其他位按位取反再 +1。 移码：补码符号位取反。 0.2 数据表示范围 原码： -(z^n-1 - 1) ~ 2^n-1 - 1 反码： -(z^n-1 - 1) ~ 2^n-1 - 1 补码： -z^n-1 ~ 2^n-1 - 1 （补码正 0 和负 0 相同，少占一数位，就多一个范围） 例： 8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\n\",\"content_html\":\"\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据的表示\\\"\\u003e\\u003cspan\\u003e0.1 数据的表示\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cp\\u003e\\u003cstrong\\u003e数据的表示可分为：原码，反码和补码。（二进制）\\u003c/strong\\u003e\\u003c/p\\u003e\\n\\u003cul\\u003e\\n\\u003cli\\u003e原码：符号位 0 为正，1 为负。\\u003c/li\\u003e\\n\\u003cli\\u003e反码：符号位 0 为正，1 为负。\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：反码同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e补码：\\n\\u003cul\\u003e\\n\\u003cli\\u003e正数：同原码。\\u003c/li\\u003e\\n\\u003cli\\u003e负数：符号位除外其他位按位取反再 +1。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003c/li\\u003e\\n\\u003cli\\u003e移码：补码符号位取反。\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch3 class=\\\"heading-element\\\" id=\\\"数据表示范围\\\"\\u003e\\u003cspan\\u003e0.2 数据表示范围\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h3\\u003e\\u003cul\\u003e\\n\\u003cli\\u003e原码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e反码： \\u003ccode\\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\\u003c/code\\u003e\\u003c/li\\u003e\\n\\u003cli\\u003e补码： \\u003ccode\\u003e-z^n-1 ~ 2^n-1 - 1\\u003c/code\\u003e （补码正 0 和负 0 相同，少占一数位，就多一个范围）\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003cp\\u003e例：\\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/计算机组成与体系结构/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>计算机组成与体系结构 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"计算机组成与体系结构\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2018-10-09T16:21:04+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"计算机组成与体系结构\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"计算机组成与体系结构\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ title=\"计算机组成与体系结构 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/index.xml title=\"计算机组成与体系结构 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/feed.json title=\"计算机组成与体系结构 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/feed.json title=\"计算机组成与体系结构 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>计算机组成与体系结构</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>计算机组成与体系结构 <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/liushuixian/ class=archive-item-link>流水线</a>\n<span class=archive-item-date title='2018-10-09 16:21:04'>10-09</span></article><article class=archive-item><a href=/posts/data/ class=archive-item-link>计算机数据</a>\n<span class=archive-item-date title='2018-10-08 23:01:10'>10-08</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/计算机组成与体系结构/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>计算机组成与体系结构 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>流水线</title><link>https://lruihao.cn/posts/liushuixian/</link><pubDate>Tue, 09 Oct 2018 16:21:04 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/liushuixian/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h2 class=\"heading-element\" id=\"概念\"&gt;&lt;span&gt;22 概念&lt;/span&gt;\n &lt;a href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的，它们可同时为多条指令的不同部分进行工作，以提高各部件的利用率和指令的平均执行速度。&lt;/p&gt;</description></item><item><title>计算机数据</title><link>https://lruihao.cn/posts/data/</link><pubDate>Mon, 08 Oct 2018 23:01:10 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/data/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;h3 class=\"heading-element\" id=\"数据的表示\"&gt;&lt;span&gt;0.1 数据的表示&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;数据的表示可分为：原码，反码和补码。（二进制）&lt;/strong&gt;&lt;/p&gt;\n&lt;ul&gt;\n&lt;li&gt;原码：符号位 0 为正，1 为负。&lt;/li&gt;\n&lt;li&gt;反码：符号位 0 为正，1 为负。\n&lt;ul&gt;\n&lt;li&gt;正数：反码同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;补码：\n&lt;ul&gt;\n&lt;li&gt;正数：同原码。&lt;/li&gt;\n&lt;li&gt;负数：符号位除外其他位按位取反再 +1。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;/li&gt;\n&lt;li&gt;移码：补码符号位取反。&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h3 class=\"heading-element\" id=\"数据表示范围\"&gt;&lt;span&gt;0.2 数据表示范围&lt;/span&gt;\n &lt;a href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h3&gt;&lt;ul&gt;\n&lt;li&gt;原码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;反码： &lt;code&gt;-(z^n-1 - 1) ~ 2^n-1 - 1&lt;/code&gt;&lt;/li&gt;\n&lt;li&gt;补码： &lt;code&gt;-z^n-1 ~ 2^n-1 - 1&lt;/code&gt; （补码正 0 和负 0 相同，少占一数位，就多一个范围）&lt;/li&gt;\n&lt;/ul&gt;\n&lt;p&gt;例：\n8 位二进制，除去符号位还有 7 位，7 个 1 为最大数，相当于 8 个 1 减 1，也就是 2^7-1, 所以范围就算出来了。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/计算机组成与体系结构/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BB%84%E6%88%90%E4%B8%8E%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/\"></head></html>"
  },
  {
    "path": "tags/贪心/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"贪心 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"HDU 1009 FatMouse' Trade（贪心）\",\"date_published\":\"2019-04-12T16:43:19&#43;08:00\",\"date_modified\":\"2023-11-30T23:35:38&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hdu1009/\",\"url\":\"https://lruihao.cn/posts/hdu1009/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"ACM\",\"贪心\",\"HDU\"],\"summary\":\"5 题目大意 题目链接\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"题目大意\\\"\\u003e\\u003cspan\\u003e5 题目大意\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cp\\u003e\\u003ca href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\\\" target=\\\"_blank\\\" rel=\\\"external nofollow noopener noreferrer\\\"\\u003e题目链接\\u003ci class=\\\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/a\\u003e\\u003cbr\\u003e\\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/贪心/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>贪心 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"贪心\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-12T16:43:19+08:00\"><meta itemprop=dateModified content=\"2023-11-30T23:35:38+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"贪心\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"贪心\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/ title=\"贪心 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/index.xml title=\"贪心 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/feed.json title=\"贪心 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/feed.json title=\"贪心 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E8%B4%AA%E5%BF%83/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>贪心</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>贪心 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/hdu1009/ class=archive-item-link>HDU 1009 FatMouse' Trade（贪心）</a>\n<span class=archive-item-date title='2019-04-12 16:43:19'>04-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E8%B4%AA%E5%BF%83/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/贪心/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>贪心 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Thu, 30 Nov 2023 23:35:38 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>HDU 1009 FatMouse' Trade（贪心）</title><link>https://lruihao.cn/posts/hdu1009/</link><pubDate>Fri, 12 Apr 2019 16:43:19 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hdu1009/</guid><category domain=\"https://lruihao.cn/categories/acm/\">ACM</category><description>&lt;h2 class=\"heading-element\" id=\"题目大意\"&gt;&lt;span&gt;7 题目大意&lt;/span&gt;\n &lt;a href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;p&gt;&lt;a href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"&gt;题目链接&lt;i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i]，若它付出 F[i] 的 a%，则得到 J[i] 的 a%，求老鼠能吃到的最多的食物。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/贪心/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/</title><link rel=canonical href=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E8%B4%AA%E5%BF%83/\"></head></html>"
  },
  {
    "path": "tags/随想/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"随想 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[]}"
  },
  {
    "path": "tags/随想/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>随想 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"随想\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2024-05-20T11:41:03+08:00\"><meta itemprop=dateModified content=\"2024-05-20T11:41:03+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"随想\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"随想\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/ title=\"随想 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/index.xml title=\"随想 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/feed.json title=\"随想 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/feed.json title=\"随想 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%9A%8F%E6%83%B3/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>随想</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>随想 <sup>2</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/posts/404d6a2/ class=archive-item-link>坐高铁去柳州吃螺狮粉</a>\n<span class=archive-item-date title='2024-05-20 11:41:03'>05-20</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/me/whysmoke/ class=archive-item-link>你为什么吸烟？</a>\n<span class=archive-item-date title='2021-03-01 01:27:41'>03-01</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%9A%8F%E6%83%B3/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/随想/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>随想 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate/><atom:link href=\"https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/index.xml\" rel=\"self\" type=\"application/rss+xml\"/></channel></rss>"
  },
  {
    "path": "tags/随想/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%9A%8F%E6%83%B3/\"></head></html>"
  },
  {
    "path": "tags/随笔/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"随笔 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"还乡\",\"date_published\":\"2019-02-01T20:44:40&#43;08:00\",\"date_modified\":\"2019-02-01T20:44:40&#43;08:00\",\"id\":\"https://lruihao.cn/posts/renative/\",\"url\":\"https://lruihao.cn/posts/renative/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\",\"他山之石\"],\"summary\":\" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"网站备案之旅\",\"date_published\":\"2018-10-29T23:16:26&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/beian/\",\"url\":\"https://lruihao.cn/posts/beian/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\",\"网站备案\"],\"summary\":\" 备案 经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz \",\"content_html\":\"\\u003cdiv class=\\\"details admonition success open\\\"\\u003e\\n    \\u003cdiv class=\\\"details-summary admonition-title\\\"\\u003e\\u003ci class=\\\"icon fa-solid fa-check\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e备案\\u003ci class=\\\"details-icon fa-solid fa-angle-right\\\" aria-hidden=\\\"true\\\"\\u003e\\u003c/i\\u003e\\u003c/div\\u003e\\u003cdiv class=\\\"details-content\\\"\\u003e\\n      \\u003cdiv class=\\\"admonition-content\\\"\\u003e经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。\\u003cbr\\u003e\\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz\\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n\\u003c/div\\u003e\"},{\"title\":\"每一个优秀的人，都有一段沉默的时光\",\"date_published\":\"2018-09-21T21:11:25&#43;08:00\",\"date_modified\":\"2018-09-21T21:11:25&#43;08:00\",\"id\":\"https://lruihao.cn/posts/mood/\",\"url\":\"https://lruihao.cn/posts/mood/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"summary\":\" 手机便签里保存的一段话，也记不得在哪看到的了。\\n每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\n人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e手机便签里保存的一段话，也记不得在哪看到的了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。\\u003cbr\\u003e\\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。\\u003c/p\\u003e\\n\\u003cp\\u003e人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。\\u003cbr\\u003e\\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。\\u003c/p\\u003e\"},{\"title\":\"戏子春秋\",\"date_published\":\"2018-06-03T19:41:32&#43;08:00\",\"date_modified\":\"2018-06-03T19:41:32&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"url\":\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\",\"authors\":[{\"name\":\"杨灿\",\"url\":\"mailto:1845280636@qq.com\"}],\"tags\":[\"随笔\"],\"summary\":\" 从此故乡只有冬夏，再无春秋。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e从此故乡只有冬夏，再无春秋。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"},{\"title\":\"猴子与哪吒\",\"date_published\":\"2018-05-31T10:09:15&#43;08:00\",\"date_modified\":\"2018-05-31T10:09:15&#43;08:00\",\"id\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"url\":\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/猴子与哪吒/images/hznz.jpg\",\"summary\":\"一直觉得中国古代神话\\n能称得上传奇的只有两个人物：\\n一是猴子\\n一是哪吒\\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\\n三年怀胎生了个哪吒 东海屠龙翻江倒海\\n可以说 除了这两人 没人再能当得起离经放纵四个字的\\n但称得上悲剧的 约摸也只有这两个\\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\n\",\"content_html\":\"\\u003cp\\u003e一直觉得中国古代神话\\u003c/p\\u003e\\n\\u003cp\\u003e能称得上传奇的只有两个人物：\\u003c/p\\u003e\\n\\u003cp\\u003e一是猴子\\u003c/p\\u003e\\n\\u003cp\\u003e一是哪吒\\u003c/p\\u003e\\n\\u003cp\\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\\u003c/p\\u003e\\n\\u003cp\\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\\u003c/p\\u003e\\n\\u003cp\\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\\u003c/p\\u003e\\n\\u003cp\\u003e但称得上悲剧的 约摸也只有这两个\\u003c/p\\u003e\\n\\u003cp\\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\\u003c/p\\u003e\\n\\u003cp\\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\\u003c/p\\u003e\"},{\"title\":\"Hello World\",\"date_published\":\"2018-05-28T20:01:01&#43;08:00\",\"date_modified\":\"2024-07-28T22:39:47&#43;08:00\",\"id\":\"https://lruihao.cn/posts/hello-world/\",\"url\":\"https://lruihao.cn/posts/hello-world/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"随笔\"],\"image\":\"/posts/hello-world/images/lunyu.jpg\",\"summary\":\" “每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\n我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\n其實也不重要了，還望披荊斬棘，不改初心。\\n不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\n從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\\n\\u003cp\\u003e我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，\\u003cbr\\u003e\\n其實也不重要了，還望披荊斬棘，不改初心。\\u003c/p\\u003e\\n\\u003cp\\u003e不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！\\u003c/p\\u003e\\n\\u003cp\\u003e從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/随笔/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>随笔 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"随笔\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-02-01T20:44:40+08:00\"><meta itemprop=dateModified content=\"2024-07-28T22:39:47+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"随笔\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"随笔\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/ title=\"随笔 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/index.xml title=\"随笔 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/feed.json title=\"随笔 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/feed.json title=\"随笔 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%9A%8F%E7%AC%94/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>随笔</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>随笔 <sup>6</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/renative/ class=archive-item-link>还乡</a>\n<span class=archive-item-date title='2019-02-01 20:44:40'>02-01</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2018</h2><article class=archive-item><a href=/posts/beian/ class=archive-item-link>网站备案之旅</a>\n<span class=archive-item-date title='2018-10-29 23:16:26'>10-29</span></article><article class=archive-item><a href=/posts/mood/ class=archive-item-link>每一个优秀的人，都有一段沉默的时光</a>\n<span class=archive-item-date title='2018-09-21 21:11:25'>09-21</span></article><article class=archive-item><a href=/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ class=archive-item-link>戏子春秋</a>\n<span class=archive-item-date title='2018-06-03 19:41:32'>06-03</span></article><article class=archive-item><a href=/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ class=archive-item-link>猴子与哪吒</a>\n<span class=archive-item-date title='2018-05-31 10:09:15'>05-31</span></article><article class=archive-item><a href=/posts/hello-world/ class=archive-item-link>Hello World</a>\n<span class=archive-item-date title='2018-05-28 20:01:01'>05-28</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%9A%8F%E7%AC%94/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/随笔/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>随笔 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Sun, 28 Jul 2024 22:39:47 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>还乡</title><link>https://lruihao.cn/posts/renative/</link><pubDate>Fri, 01 Feb 2019 20:44:40 +0800</pubDate><guid>https://lruihao.cn/posts/renative/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>网站备案之旅</title><link>https://lruihao.cn/posts/beian/</link><pubDate>Mon, 29 Oct 2018 23:16:26 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/beian/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;div class=\"details admonition success open\"&gt;\n &lt;div class=\"details-summary admonition-title\"&gt;&lt;i class=\"icon fa-solid fa-check\" aria-hidden=\"true\"&gt;&lt;/i&gt;备案&lt;i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class=\"details-content\"&gt;\n &lt;div class=\"admonition-content\"&gt;经过时间长达 20 多天的备案之旅今天终于结束了，也闭馆了 20 多天，也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己，唉！不过那个办公室的大姐姐挺好的，前面跟我说好星期一来，我还今天上午提前给她打了电话，她还下楼给我开办公楼楼道的门禁，还有我身份证落在那里她说先帮我收着，有时间再去拿！总之，这个姐姐的服务态度五星好评！手动@岳塘分局 B204 的姐姐。&lt;br&gt;\n备案完成也算放下一块提着的石头，可以睡个好觉了！ZzZzzzz&lt;/div&gt;\n &lt;/div&gt;\n&lt;/div&gt;</description></item><item><title>每一个优秀的人，都有一段沉默的时光</title><link>https://lruihao.cn/posts/mood/</link><pubDate>Fri, 21 Sep 2018 21:11:25 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/mood/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;手机便签里保存的一段话，也记不得在哪看到的了。&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;每一个优秀的人，都有一段沉默的时光，是那一段时光，不抱怨不诉苦，最后渡过了这段感动自己的日子。&lt;br&gt;\n什么都还没有，所以没有卖弄的资格。如果有了什么，就没有卖弄的必要。&lt;/p&gt;\n&lt;p&gt;人生的每一笔经历，都在书写你的简历。多做你本以为微不足道的事情，回头看的时候，都有着无法细数的刻度。&lt;br&gt;\n自己拼出来的东西，和别人送到嘴边的东西，意义和珍惜的程度都大为不同。&lt;/p&gt;</description></item><item><title>戏子春秋</title><link>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</link><pubDate>Sun, 03 Jun 2018 19:41:32 +0800</pubDate><guid>https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;从此故乡只有冬夏，再无春秋。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item><item><title>猴子与哪吒</title><link>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</link><pubDate>Thu, 31 May 2018 10:09:15 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;一直觉得中国古代神话&lt;/p&gt;\n&lt;p&gt;能称得上传奇的只有两个人物：&lt;/p&gt;\n&lt;p&gt;一是猴子&lt;/p&gt;\n&lt;p&gt;一是哪吒&lt;/p&gt;\n&lt;p&gt;百世蕴灵育出只石猴 大闹天宫腾云驾雾&lt;/p&gt;\n&lt;p&gt;三年怀胎生了个哪吒 东海屠龙翻江倒海&lt;/p&gt;\n&lt;p&gt;可以说 除了这两人 没人再能当得起离经放纵四个字的&lt;/p&gt;\n&lt;p&gt;但称得上悲剧的 约摸也只有这两个&lt;/p&gt;\n&lt;p&gt;一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空&lt;/p&gt;\n&lt;p&gt;一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://lruihao.cn/posts/hello-world/</link><pubDate>Mon, 28 May 2018 20:01:01 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/hello-world/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;“每天早晨叫醒你的不是鬧鐘，而是你的夢想。”&lt;/p&gt;\n&lt;/blockquote&gt;\n&lt;p&gt;我有過靠著這種信念撐下來的日子，我見過自己努力的樣子，至於現在的自己配不配得上當初努力的自己，&lt;br&gt;\n其實也不重要了，還望披荊斬棘，不改初心。&lt;/p&gt;\n&lt;p&gt;不怕萬人阻擋，只怕自己投降。你如何回憶，決定你是一個怎樣的人！&lt;/p&gt;\n&lt;p&gt;從大一伊始，打 ACM 比賽，訓練刷題，再到毅然決然離開實驗室，選擇陌生的 Web 開發，從工作前的一無所知到，到前端開發，後端開發，到教實習生，到面試新人，到開始乏味。這一路走來，好奇心，探索欲，瞎擇騰，或許還有愛意，都是支撐我的動力。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/随笔/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%9A%8F%E7%AC%94/\"></head></html>"
  },
  {
    "path": "tags/需求分析/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"需求分析 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"拖拽式仪表盘 - 功能需求分析\",\"date_published\":\"2023-10-12T15:37:30&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"url\":\"https://lruihao.cn/posts/dashboard-analysis/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"拖拽式仪表盘\",\"dashboard\",\"Vue2\",\"需求分析\"],\"summary\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\",\"content_html\":\"本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。\"}]}"
  },
  {
    "path": "tags/需求分析/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>需求分析 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"需求分析\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2023-10-12T15:37:30+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"需求分析\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"需求分析\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/ title=\"需求分析 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/index.xml title=\"需求分析 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/feed.json title=\"需求分析 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/feed.json title=\"需求分析 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>需求分析</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>需求分析 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2023</h2><article class=archive-item><a href=/posts/dashboard-analysis/ class=archive-item-link>拖拽式仪表盘 - 功能需求分析</a>\n<span class=archive-item-date title='2023-10-12 15:37:30'>10-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/需求分析/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>需求分析 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>拖拽式仪表盘 - 功能需求分析</title><link>https://lruihao.cn/posts/dashboard-analysis/</link><pubDate>Thu, 12 Oct 2023 15:37:30 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/dashboard-analysis/</guid><category domain=\"https://lruihao.cn/categories/vue.js/\">Vue.js</category><description>本文将对拖拽式仪表盘的功能需求进行分析，了解需要考虑的关键要素，以便于后续的设计和开发。</description></item></channel></rss>"
  },
  {
    "path": "tags/需求分析/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90/\"></head></html>"
  },
  {
    "path": "tags/面向对象/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"面向对象 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"面向对象基础知识总结\",\"date_published\":\"2019-01-15T16:07:31&#43;08:00\",\"date_modified\":\"2023-12-08T20:26:13&#43;08:00\",\"id\":\"https://lruihao.cn/posts/duixiang/\",\"url\":\"https://lruihao.cn/posts/duixiang/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面向对象\",\"Java\"],\"summary\":\"35 面向对象思想（理解） 面向对象是基于面向过程的一种编程思想 思想特点：\\nA: 是一种更符合我们思考习惯的思想\\nB: 把复杂的问题简单化\\nC: 让我们从执行者变成了指挥者 举例：\\nA: 洗衣服\\nB: 吃饭\\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象（掌握） 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢？ 属性：外在特征\\n行为：内在行为 我们学习的是 java 语言，它最基本的单位是类。\\n所以我们要学会用类来体现一个事物。 类：是一组相关的属性和行为的集合 对象：是该类事物的具体个体。 举例：\\n学生 类\\n张三 对象 37 类的组成（掌握） 成员变量\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。 成员方法\\n其实就是方法，只不过不需要 static 了 案例：\\n学生类 class Student { String name; int age; public void study() {} }38 类的使用（掌握） 创建对象\\n格式：类名 对象名 = new 类名 (); 使用成员\\n成员变量：对象名。变量名； 成员方法：对象名。方法名 (\\u0026hellip;); 39 成员变量和局部变量的区别（理解） 在类中的位置不同\\nA: 成员变量 类中，方法外\\nB: 局部变量 方法的形式参数，或者方法体中 在内存中的位置不同\\nA: 成员变量 在堆中\\nB: 局部变量 在栈中 生命周期不同\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失 初始化值不同\\nA: 成员变量 有默认初始化值\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用 40 形式参数问题（理解） 基本类型\\n基本类型作为形式参数，需要的是该基本类型的值。 引用类型\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象） 41 匿名对象（理解） 匿名对象：没有名字的对象。是对象的简化书写方式。 使用场景\\nA: 调用方法，仅仅只调用一次\\nB: 作为实际参数传递 42 封装（掌握） 隐藏实现细节，提供公共的访问方式 好处：\\nA: 隐藏实现细节，提供公共的访问方式\\nB: 提高了代码的复用性\\nC: 提高了代码的安全性 使用原则\\nA: 把成员变量隐藏\\nB: 给出该成员变量对应的公共访问方式 43 private 关键字（掌握） 是一个权限修饰符 可以修饰类的成员（成员变量和成员方法） 仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法 标准代码： class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字（掌握） this：代表本类的对象 应用场景：\\n解决了局部变量隐藏成员变量的问题。\\n其他用法和 super 一起讲。 标准代码： class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } public void study() { System.out.println(\\\"学生爱学习\\\"); } public void eat() { System.out.println(\\\"学生要吃饭\\\"); } public void sleep() { System.out.println(\\\"学生想睡觉\\\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\\\"姓名是：\\\"+s.getName()); System.out.println(\\\"年龄是：\\\"+s.getAge()); } }45 构造方法（掌握） 作用：对对象的数据进行初始化。 特点：\\nA: 方法名和类名相同\\nB: 没有返回值类型\\nC: 没有返回值 注意事项\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\n建议：我们自己手动给出无参构造方法 给成员变量赋值：\\nA: 无参+setXxx()\\nB: 带参 一个标准的代码： class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\\\"林青霞\\\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\\\"张曼玉\\\",20); ss.show(); } }46 对象的初始化过程（理解） Student s = new Student(); 做了哪些事情\\nA: 加载 Student.class 文件进内存\\nB: 在栈中为 s 开辟空间\\nC: 在堆中为学生对象开辟空间\\nD: 为学生对象的成员变量赋默认值\\nE: 为学生对象的成员变量赋显示值\\nF: 通过构造方法给成员变量赋值\\nG: 对象构造完毕，把地址赋值给 s 变量 47 static 关键字（掌握） 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点：\\nA: 随着类的加载而加载\\nB: 优先于对象存在\\nC: 被所有对象共享\\n这也是判断我们是不是该使用静态的条件\\n举例：饮水机（可共享 static) 和水杯例子。\\nD: 可以通过类名调用\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用 方法访问特点\\nA: 普通成员方法\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\nB: 静态成员方法\\n只能访问静态成员变量，静态成员方法\\n简记：静态只能访问静态\\n注意：\\n静态中是不能有 this 的。\\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。 * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。 * * 在 java 中，用什么来表示成员变量是被共享的呢？static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\"); s1.show(); /* Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\"); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\"); s3.show(); */ Student s2 = new Student(\\\"马云\\\",35); s2.show(); Student s3 = new Student(\\\"马化腾\\\",33); s3.show(); } }/* static: 静态关键字。 作用： 可以修饰成员变量和成员方法 特点： A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机：可以被静态修饰 水杯：不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象，还可以是类名 */ class Student { public void show() { System.out.println(\\\"show\\\"); } public static void show2() { System.out.println(\\\"show2\\\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\\u0026ensp; } }/* static 的注意事项： A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法： 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法 静态的成员方法： 只能访问静态的成员变量，静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\\\"林青霞\\\"); } }48 静态成员变量和普通成员变量的区别（理解） 所属不同\\n静态属于类的，称为类变量\\n非静态属于对象的，称为对象变量，实例变量 内存空间不同\\n静态在方法区的静态区\\n非静态在堆内存 生命周期不同\\n静态随着类的加载而加载，随着类的消失而消失\\n非静态随着对象的创建而存在，随着对象的消失而消失 调用不同\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\n非静态只能通过对象名调用 49 main 方法是静态的（理解） public static void main(String[] args)public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\nString[] args:\\n早期出现是为了接收键盘录入数据的。\\n\",\"content_html\":\"\\u003ch2 class=\\\"heading-element\\\" id=\\\"面向对象思想理解\\\"\\u003e\\u003cspan\\u003e35 面向对象思想（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e面向对象是基于面向过程的一种编程思想\\u003c/li\\u003e\\n\\u003cli\\u003e思想特点：\\u003cbr\\u003e\\nA: 是一种更符合我们思考习惯的思想\\u003cbr\\u003e\\nB: 把复杂的问题简单化\\u003cbr\\u003e\\nC: 让我们从执行者变成了指挥者\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\nA: 洗衣服\\u003cbr\\u003e\\nB: 吃饭\\u003cbr\\u003e\\nC: 买电脑\\u003c/li\\u003e\\n\\u003cli\\u003e举例并代码体现\\n把大象装进冰箱\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类与对象掌握\\\"\\u003e\\u003cspan\\u003e36 类与对象（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\\u003c/li\\u003e\\n\\u003cli\\u003e现实世界事物是如何表达的呢？\\n属性：外在特征\\u003cbr\\u003e\\n行为：内在行为\\u003c/li\\u003e\\n\\u003cli\\u003e我们学习的是 java 语言，它最基本的单位是类。\\u003cbr\\u003e\\n所以我们要学会用类来体现一个事物。\\u003c/li\\u003e\\n\\u003cli\\u003e类：是一组相关的属性和行为的集合\\u003c/li\\u003e\\n\\u003cli\\u003e对象：是该类事物的具体个体。\\u003c/li\\u003e\\n\\u003cli\\u003e举例：\\u003cbr\\u003e\\n学生 类\\u003cbr\\u003e\\n张三 对象\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的组成掌握\\\"\\u003e\\u003cspan\\u003e37 类的组成（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e成员变量\\u003cbr\\u003e\\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e成员方法\\u003cbr\\u003e\\n其实就是方法，只不过不需要 static 了\\u003c/li\\u003e\\n\\u003cli\\u003e案例：\\u003cbr\\u003e\\n学生类\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  String name;\\n  int age;\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"类的使用掌握\\\"\\u003e\\u003cspan\\u003e38 类的使用（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e创建对象\\u003cbr\\u003e\\n格式：类名 对象名 = new 类名 ();\\u003c/li\\u003e\\n\\u003cli\\u003e使用成员\\u003cbr\\u003e\\n成员变量：对象名。变量名；\\n成员方法：对象名。方法名 (\\u0026hellip;);\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"成员变量和局部变量的区别理解\\\"\\u003e\\u003cspan\\u003e39 成员变量和局部变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e在类中的位置不同\\u003cbr\\u003e\\nA: 成员变量 类中，方法外\\u003cbr\\u003e\\nB: 局部变量 方法的形式参数，或者方法体中\\u003c/li\\u003e\\n\\u003cli\\u003e在内存中的位置不同\\u003cbr\\u003e\\nA: 成员变量 在堆中\\u003cbr\\u003e\\nB: 局部变量 在栈中\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失\\u003cbr\\u003e\\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失\\u003c/li\\u003e\\n\\u003cli\\u003e初始化值不同\\u003cbr\\u003e\\nA: 成员变量 有默认初始化值\\u003cbr\\u003e\\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"形式参数问题理解\\\"\\u003e\\u003cspan\\u003e40 形式参数问题（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e基本类型\\u003cbr\\u003e\\n基本类型作为形式参数，需要的是该基本类型的值。\\u003c/li\\u003e\\n\\u003cli\\u003e引用类型\\u003cbr\\u003e\\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"匿名对象理解\\\"\\u003e\\u003cspan\\u003e41 匿名对象（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e匿名对象：没有名字的对象。是对象的简化书写方式。\\u003c/li\\u003e\\n\\u003cli\\u003e使用场景\\u003cbr\\u003e\\nA: 调用方法，仅仅只调用一次\\u003cbr\\u003e\\nB: 作为实际参数传递\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"封装掌握\\\"\\u003e\\u003cspan\\u003e42 封装（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e隐藏实现细节，提供公共的访问方式\\u003c/li\\u003e\\n\\u003cli\\u003e好处：\\u003cbr\\u003e\\nA: 隐藏实现细节，提供公共的访问方式\\u003cbr\\u003e\\nB: 提高了代码的复用性\\u003cbr\\u003e\\nC: 提高了代码的安全性\\u003c/li\\u003e\\n\\u003cli\\u003e使用原则\\u003cbr\\u003e\\nA: 把成员变量隐藏\\u003cbr\\u003e\\nB: 给出该成员变量对应的公共访问方式\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"private-关键字掌握\\\"\\u003e\\u003cspan\\u003e43 private 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个权限修饰符\\u003c/li\\u003e\\n\\u003cli\\u003e可以修饰类的成员（成员变量和成员方法）\\u003c/li\\u003e\\n\\u003cli\\u003e仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003eclass Student {\\n  private String name;\\n  private int age;\\n\\n  public void setName(String n) {\\n   name = n;\\n  }\\n\\n  public String getName() {\\n   return name;\\n  }\\n\\n  public void setAge(int a) {\\n   age = a;\\n  }\\n\\n  public int getAge() {\\n   return age;\\n  }\\n\\n  public void study() {}\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"this-关键字掌握\\\"\\u003e\\u003cspan\\u003e44 this 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003ethis：代表本类的对象\\u003c/li\\u003e\\n\\u003cli\\u003e应用场景：\\u003cbr\\u003e\\n解决了局部变量隐藏成员变量的问题。\\u003cbr\\u003e\\n其他用法和 super 一起讲。\\u003c/li\\u003e\\n\\u003cli\\u003e标准代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public void setName(String name) {//局部变量\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n\\n    public void study() {\\n      System.out.println(\\\"学生爱学习\\\");\\n    }\\n\\n    public void eat() {\\n      System.out.println(\\\"学生要吃饭\\\");\\n    }\\n\\n    public void sleep() {\\n      System.out.println(\\\"学生想睡觉\\\");\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      Student s = new Student();\\n\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n\\n      s.show();\\n      s.study();\\n      s.eat();\\n      s.sleep();\\n\\n      System.out.println(\\\"姓名是：\\\"+s.getName());\\n      System.out.println(\\\"年龄是：\\\"+s.getAge());\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"构造方法掌握\\\"\\u003e\\u003cspan\\u003e45 构造方法（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e作用：对对象的数据进行初始化。\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\nA: 方法名和类名相同\\u003cbr\\u003e\\nB: 没有返回值类型\\u003cbr\\u003e\\nC: 没有返回值\\u003c/li\\u003e\\n\\u003cli\\u003e注意事项\\u003cbr\\u003e\\nA: 如果我们没写构造方法，系统将默认给出无参构造方法\\u003cbr\\u003e\\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法\\u003cbr\\u003e\\n建议：我们自己手动给出无参构造方法\\u003c/li\\u003e\\n\\u003cli\\u003e给成员变量赋值：\\u003cbr\\u003e\\nA: 无参+setXxx()\\u003cbr\\u003e\\nB: 带参\\u003c/li\\u003e\\n\\u003cli\\u003e一个标准的代码：\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e  class Student {\\n    private String name;\\n    private int age;\\n\\n    public Student() {}\\n\\n    public Student(String name,int age) {//构造方法\\n      this.name = name;\\n      this.age = age;\\n    }\\n\\n    public void setName(String name) {\\n      this.name = name;\\n    }\\n\\n    public String getName() {\\n      return name;\\n    }\\n\\n    public void setAge(int age) {\\n      this.age = age;\\n    }\\n\\n    public int getAge() {\\n      return age;\\n    }\\n\\n    public void show() {\\n      System.out.println(\\\"姓名是：\\\"+name+\\\", 年龄是：\\\"+age);\\n    }\\n  }\\n\\n  class StudentTest {\\n    public static void main(String[] args) {\\n      //无参+setXxx()\\n      Student s = new Student();\\n      s.setName(\\\"林青霞\\\");\\n      s.setAge(28);\\n      s.show();\\n\\n      //带参\\n      Student ss = new Student(\\\"张曼玉\\\",20);\\n      ss.show();\\n    }\\n  }\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"对象的初始化过程理解\\\"\\u003e\\u003cspan\\u003e46 对象的初始化过程（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cul\\u003e\\n\\u003cli\\u003eStudent s = new Student(); 做了哪些事情\\u003cbr\\u003e\\nA: 加载 Student.class 文件进内存\\u003cbr\\u003e\\nB: 在栈中为 s 开辟空间\\u003cbr\\u003e\\nC: 在堆中为学生对象开辟空间\\u003cbr\\u003e\\nD: 为学生对象的成员变量赋默认值\\u003cbr\\u003e\\nE: 为学生对象的成员变量赋显示值\\u003cbr\\u003e\\nF: 通过构造方法给成员变量赋值\\u003cbr\\u003e\\nG: 对象构造完毕，把地址赋值给 s 变量\\u003c/li\\u003e\\n\\u003c/ul\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"static-关键字掌握\\\"\\u003e\\u003cspan\\u003e47 static 关键字（掌握）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e是一个状态修饰符。静态的意思\\u003c/li\\u003e\\n\\u003cli\\u003e它可以修饰成员变量和成员方法\\u003c/li\\u003e\\n\\u003cli\\u003e特点：\\u003cbr\\u003e\\n\\u003cstrong\\u003eA: 随着类的加载而加载\\u003cbr\\u003e\\nB: 优先于对象存在\\u003cbr\\u003e\\nC: 被所有对象共享\\u003c/strong\\u003e\\u003cbr\\u003e\\n这也是判断我们是不是该使用静态的条件\\u003cbr\\u003e\\n举例：饮水机（可共享 static) 和水杯例子。\\u003cbr\\u003e\\nD: 可以通过类名调用\\u003cbr\\u003e\\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用\\u003c/li\\u003e\\n\\u003cli\\u003e方法访问特点\\u003cbr\\u003e\\nA: 普通成员方法\\u003cbr\\u003e\\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\u003cbr\\u003e\\nB: 静态成员方法\\u003cbr\\u003e\\n\\u003cstrong\\u003e只能访问静态成员变量，静态成员方法\\u003cbr\\u003e\\n简记：静态只能访问静态\\u003c/strong\\u003e\\u003cbr\\u003e\\n注意：\\u003cbr\\u003e\\n\\u003cstrong\\u003e静态中是不能有 this 的。\\u003cbr\\u003e\\n先进内存的不能访问后进内存的。反之可以。\\u003c/strong\\u003e\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003cpre\\u003e\\u003ccode\\u003e/**\\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\\n *\\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\\n */\\nclass Student {\\n  //姓名\\n  String name;\\n  //年龄\\n  int age;\\n  //班级编号\\n  //String classNumber;\\n  static String classNumber;\\n\\n  public Student(String name,int age) {\\n    this.name = name;\\n    this.age = age;\\n  }\\n\\n  public Student(String name,int age,String classNumber) {\\n    this.name = name;\\n    this.age = age;\\n    this.classNumber = classNumber;\\n  }\\n\\n  public void show() {\\n    System.out.println(name+\\\"---\\\"+age+\\\"---\\\"+classNumber);\\n  }\\n}\\n\\nclass StudentDemo {\\n  public static void main(String[] args) {\\n    //创建学生对象\\n    Student s1 = new Student(\\\"林青霞\\\",28,\\\"20150306\\\");\\n    s1.show();\\n\\n    /*\\n    Student s2 = new Student(\\\"马云\\\",35,\\\"20150306\\\");\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33,\\\"20150306\\\");\\n    s3.show();\\n    */\\n    Student s2 = new Student(\\\"马云\\\",35);\\n    s2.show();\\n\\n    Student s3 = new Student(\\\"马化腾\\\",33);\\n    s3.show();\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static: 静态关键字。\\n\\n  作用：\\n    可以修饰成员变量和成员方法\\n\\n  特点：\\n    A: 随着类的加载而加载\\n    B: 优先于对象存在\\n    C: 被类的所有对象共享\\n      这也是我们判断是否使用静态关键字的条件\\n\\n      饮水机：可以被静态修饰\\n      水杯：不可以被静态修饰\\n    D: 可以通过类名调用\\n      我们的调用既可以是对象，还可以是类名\\n*/\\nclass Student {\\n  public void show() {\\n    System.out.println(\\\"show\\\");\\n  }\\n\\n  public static void show2() {\\n    System.out.println(\\\"show2\\\");\\n  }\\n}\\n\\nclass StudentDemo2 {\\n  public static void main(String[] args) {\\n    Student s = new Student();\\n    s.show();\\n    s.show2();\\n\\n    Student.show2();\\n    //Student.show();\\u0026ensp;\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cpre\\u003e\\u003ccode\\u003e/*\\n  static 的注意事项：\\n    A: 在静态方法中是没有 this 关键字的\\n      因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\\n      先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\\n    B: 静态只能访问静态。\\n      非静态的成员方法：\\n        可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\\n      静态的成员方法：\\n        只能访问静态的成员变量，静态的成员方法\\n*/\\n/*\\nclass Student {\\n  private String name;\\n\\n  public static void setName(String name) {//\\u0026ensp; 静态方法不能用 this\\n    this.name = name;\\n  }\\n\\n  public void show() {\\n    System.out.println(name);\\n  }\\n}*/\\n\\nclass Demo {\\n  int x = 10;\\n  static int y = 20;\\n\\n  public void show() {\\n    System.out.println(x);\\n    System.out.println(y);\\n  }\\n\\n  public static void show2() {\\n    //System.out.println(x);\\u0026ensp;\\n    System.out.println(y);//√\\n  }\\n\\n  public void show3() {\\n    show();\\n    show2();\\n  }\\n\\n  public static void show4() {\\n    //show(); 只能访问静态的成员方法\\n    show2();\\n  }\\n}\\n\\nclass StudentDemo3 {\\n  public static void main(String[] args) {\\n    //Student.setName(\\\"林青霞\\\");\\n  }\\n}\\u003c/code\\u003e\\u003c/pre\\u003e\\u003ch2 class=\\\"heading-element\\\" id=\\\"静态成员变量和普通成员变量的区别理解\\\"\\u003e\\u003cspan\\u003e48 静态成员变量和普通成员变量的区别（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003col\\u003e\\n\\u003cli\\u003e所属不同\\u003cbr\\u003e\\n静态属于类的，称为类变量\\u003cbr\\u003e\\n非静态属于对象的，称为对象变量，实例变量\\u003c/li\\u003e\\n\\u003cli\\u003e内存空间不同\\u003cbr\\u003e\\n静态在方法区的静态区\\u003cbr\\u003e\\n非静态在堆内存\\u003c/li\\u003e\\n\\u003cli\\u003e生命周期不同\\u003cbr\\u003e\\n静态随着类的加载而加载，随着类的消失而消失\\u003cbr\\u003e\\n非静态随着对象的创建而存在，随着对象的消失而消失\\u003c/li\\u003e\\n\\u003cli\\u003e调用不同\\u003cbr\\u003e\\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用\\u003cbr\\u003e\\n非静态只能通过对象名调用\\u003c/li\\u003e\\n\\u003c/ol\\u003e\\n\\u003ch2 class=\\\"heading-element\\\" id=\\\"main-方法是静态的理解\\\"\\u003e\\u003cspan\\u003e49 main 方法是静态的（理解）\\u003c/span\\u003e\\n  \\u003ca href=\\\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\\\" class=\\\"heading-mark\\\"\\u003e\\n    \\u003csvg class=\\\"octicon octicon-link\\\" viewBox=\\\"0 0 16 16\\\" version=\\\"1.1\\\" width=\\\"16\\\" height=\\\"16\\\" aria-hidden=\\\"true\\\"\\u003e\\u003cpath d=\\\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\\\"\\u003e\\u003c/path\\u003e\\u003c/svg\\u003e\\n  \\u003c/a\\u003e\\n\\u003c/h2\\u003e\\u003cpre\\u003e\\u003ccode\\u003epublic static void main(String[] args)\\u003c/code\\u003e\\u003c/pre\\u003e\\u003cp\\u003epublic: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。\\u003cbr\\u003e\\nstatic: 被 jvm 调用，不用创建对象，直接类名访问\\u003cbr\\u003e\\nvoid: 被 jvm 调用，不需要给 jvm 返回值\\u003cbr\\u003e\\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别\\u003cbr\\u003e\\nString[] args:\\u003cbr\\u003e\\n早期出现是为了接收键盘录入数据的。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "tags/面向对象/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>面向对象 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"面向对象\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-15T16:07:31+08:00\"><meta itemprop=dateModified content=\"2023-12-08T20:26:13+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"面向对象\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"面向对象\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/ title=\"面向对象 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/index.xml title=\"面向对象 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/feed.json title=\"面向对象 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/feed.json title=\"面向对象 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>面向对象</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>面向对象 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/duixiang/ class=archive-item-link>面向对象基础知识总结</a>\n<span class=archive-item-date title='2019-01-15 16:07:31'>01-15</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/面向对象/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>面向对象 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 08 Dec 2023 20:26:13 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>面向对象基础知识总结</title><link>https://lruihao.cn/posts/duixiang/</link><pubDate>Tue, 15 Jan 2019 16:07:31 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/duixiang/</guid><category domain=\"https://lruihao.cn/categories/java/\">Java</category><description>&lt;h2 class=\"heading-element\" id=\"面向对象思想理解\"&gt;&lt;span&gt;52 面向对象思想（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;面向对象是基于面向过程的一种编程思想&lt;/li&gt;\n&lt;li&gt;思想特点：&lt;br&gt;\nA: 是一种更符合我们思考习惯的思想&lt;br&gt;\nB: 把复杂的问题简单化&lt;br&gt;\nC: 让我们从执行者变成了指挥者&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\nA: 洗衣服&lt;br&gt;\nB: 吃饭&lt;br&gt;\nC: 买电脑&lt;/li&gt;\n&lt;li&gt;举例并代码体现\n把大象装进冰箱&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类与对象掌握\"&gt;&lt;span&gt;53 类与对象（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。&lt;/li&gt;\n&lt;li&gt;现实世界事物是如何表达的呢？\n属性：外在特征&lt;br&gt;\n行为：内在行为&lt;/li&gt;\n&lt;li&gt;我们学习的是 java 语言，它最基本的单位是类。&lt;br&gt;\n所以我们要学会用类来体现一个事物。&lt;/li&gt;\n&lt;li&gt;类：是一组相关的属性和行为的集合&lt;/li&gt;\n&lt;li&gt;对象：是该类事物的具体个体。&lt;/li&gt;\n&lt;li&gt;举例：&lt;br&gt;\n学生 类&lt;br&gt;\n张三 对象&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"类的组成掌握\"&gt;&lt;span&gt;54 类的组成（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;成员变量&lt;br&gt;\n其实就是变量，只不过定义在类中，方法外，并且可以不用初始化。&lt;/li&gt;\n&lt;li&gt;成员方法&lt;br&gt;\n其实就是方法，只不过不需要 static 了&lt;/li&gt;\n&lt;li&gt;案例：&lt;br&gt;\n学生类&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n String name;\n int age;\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"类的使用掌握\"&gt;&lt;span&gt;55 类的使用（掌握）&lt;/span&gt;\n &lt;a href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;创建对象&lt;br&gt;\n格式：类名 对象名 = new 类名 ();&lt;/li&gt;\n&lt;li&gt;使用成员&lt;br&gt;\n成员变量：对象名。变量名；\n成员方法：对象名。方法名 (&amp;hellip;);&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"&gt;&lt;span&gt;56 成员变量和局部变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;在类中的位置不同&lt;br&gt;\nA: 成员变量 类中，方法外&lt;br&gt;\nB: 局部变量 方法的形式参数，或者方法体中&lt;/li&gt;\n&lt;li&gt;在内存中的位置不同&lt;br&gt;\nA: 成员变量 在堆中&lt;br&gt;\nB: 局部变量 在栈中&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\nA: 成员变量 随着对象的存在而存在，随着对象的消失而消失&lt;br&gt;\nB: 局部变量 随着方法的调用而存在，随着方法的调用完毕而消失&lt;/li&gt;\n&lt;li&gt;初始化值不同&lt;br&gt;\nA: 成员变量 有默认初始化值&lt;br&gt;\nB: 局部变量 没有默认值，必须先声明，赋值，最后才能使用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"形式参数问题理解\"&gt;&lt;span&gt;57 形式参数问题（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;基本类型&lt;br&gt;\n基本类型作为形式参数，需要的是该基本类型的值。&lt;/li&gt;\n&lt;li&gt;引用类型&lt;br&gt;\n引用类型作为形式参数，需要的是该引用类型的地址值。（对象）&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"匿名对象理解\"&gt;&lt;span&gt;58 匿名对象（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;匿名对象：没有名字的对象。是对象的简化书写方式。&lt;/li&gt;\n&lt;li&gt;使用场景&lt;br&gt;\nA: 调用方法，仅仅只调用一次&lt;br&gt;\nB: 作为实际参数传递&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"封装掌握\"&gt;&lt;span&gt;59 封装（掌握）&lt;/span&gt;\n &lt;a href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;隐藏实现细节，提供公共的访问方式&lt;/li&gt;\n&lt;li&gt;好处：&lt;br&gt;\nA: 隐藏实现细节，提供公共的访问方式&lt;br&gt;\nB: 提高了代码的复用性&lt;br&gt;\nC: 提高了代码的安全性&lt;/li&gt;\n&lt;li&gt;使用原则&lt;br&gt;\nA: 把成员变量隐藏&lt;br&gt;\nB: 给出该成员变量对应的公共访问方式&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"private-关键字掌握\"&gt;&lt;span&gt;60 private 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个权限修饰符&lt;/li&gt;\n&lt;li&gt;可以修饰类的成员（成员变量和成员方法）&lt;/li&gt;\n&lt;li&gt;仅仅在本类中可以访问，对外提供对应的 GetXXX()，SetXXX() 等方法&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;class Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"this-关键字掌握\"&gt;&lt;span&gt;61 this 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;this：代表本类的对象&lt;/li&gt;\n&lt;li&gt;应用场景：&lt;br&gt;\n解决了局部变量隐藏成员变量的问题。&lt;br&gt;\n其他用法和 super 一起讲。&lt;/li&gt;\n&lt;li&gt;标准代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n\n public void study() {\n System.out.println(&amp;#34;学生爱学习&amp;#34;);\n }\n\n public void eat() {\n System.out.println(&amp;#34;学生要吃饭&amp;#34;);\n }\n\n public void sleep() {\n System.out.println(&amp;#34;学生想睡觉&amp;#34;);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;s.getName());\n System.out.println(&amp;#34;年龄是：&amp;#34;&amp;#43;s.getAge());\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"构造方法掌握\"&gt;&lt;span&gt;62 构造方法（掌握）&lt;/span&gt;\n &lt;a href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;作用：对对象的数据进行初始化。&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\nA: 方法名和类名相同&lt;br&gt;\nB: 没有返回值类型&lt;br&gt;\nC: 没有返回值&lt;/li&gt;\n&lt;li&gt;注意事项&lt;br&gt;\nA: 如果我们没写构造方法，系统将默认给出无参构造方法&lt;br&gt;\nB: 如果我们写了构造方法，系统将不再给出默认无参构造方法&lt;br&gt;\n建议：我们自己手动给出无参构造方法&lt;/li&gt;\n&lt;li&gt;给成员变量赋值：&lt;br&gt;\nA: 无参+setXxx()&lt;br&gt;\nB: 带参&lt;/li&gt;\n&lt;li&gt;一个标准的代码：&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt; class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(&amp;#34;姓名是：&amp;#34;&amp;#43;name&amp;#43;&amp;#34;, 年龄是：&amp;#34;&amp;#43;age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参&amp;#43;setXxx()\n Student s = new Student();\n s.setName(&amp;#34;林青霞&amp;#34;);\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(&amp;#34;张曼玉&amp;#34;,20);\n ss.show();\n }\n }&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"对象的初始化过程理解\"&gt;&lt;span&gt;63 对象的初始化过程（理解）&lt;/span&gt;\n &lt;a href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ul&gt;\n&lt;li&gt;Student s = new Student(); 做了哪些事情&lt;br&gt;\nA: 加载 Student.class 文件进内存&lt;br&gt;\nB: 在栈中为 s 开辟空间&lt;br&gt;\nC: 在堆中为学生对象开辟空间&lt;br&gt;\nD: 为学生对象的成员变量赋默认值&lt;br&gt;\nE: 为学生对象的成员变量赋显示值&lt;br&gt;\nF: 通过构造方法给成员变量赋值&lt;br&gt;\nG: 对象构造完毕，把地址赋值给 s 变量&lt;/li&gt;\n&lt;/ul&gt;\n&lt;h2 class=\"heading-element\" id=\"static-关键字掌握\"&gt;&lt;span&gt;64 static 关键字（掌握）&lt;/span&gt;\n &lt;a href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;是一个状态修饰符。静态的意思&lt;/li&gt;\n&lt;li&gt;它可以修饰成员变量和成员方法&lt;/li&gt;\n&lt;li&gt;特点：&lt;br&gt;\n&lt;strong&gt;A: 随着类的加载而加载&lt;br&gt;\nB: 优先于对象存在&lt;br&gt;\nC: 被所有对象共享&lt;/strong&gt;&lt;br&gt;\n这也是判断我们是不是该使用静态的条件&lt;br&gt;\n举例：饮水机（可共享 static) 和水杯例子。&lt;br&gt;\nD: 可以通过类名调用&lt;br&gt;\n静态修饰的内容，可以通过类名调用，也可以通过对象名调用&lt;/li&gt;\n&lt;li&gt;方法访问特点&lt;br&gt;\nA: 普通成员方法&lt;br&gt;\n可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法&lt;br&gt;\nB: 静态成员方法&lt;br&gt;\n&lt;strong&gt;只能访问静态成员变量，静态成员方法&lt;br&gt;\n简记：静态只能访问静态&lt;/strong&gt;&lt;br&gt;\n注意：&lt;br&gt;\n&lt;strong&gt;静态中是不能有 this 的。&lt;br&gt;\n先进内存的不能访问后进内存的。反之可以。&lt;/strong&gt;&lt;/li&gt;\n&lt;/ol&gt;\n&lt;pre&gt;&lt;code&gt;/**\n * 班级编号应该是被班级每个人都共享的，所以定义一个就应该可以了。\n * 而姓名和年龄，每个人应该是不一样的，所以，每个对象，都应该定义自己的。\n *\n * 在 java 中，用什么来表示成员变量是被共享的呢？static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name&amp;#43;&amp;#34;---&amp;#34;&amp;#43;age&amp;#43;&amp;#34;---&amp;#34;&amp;#43;classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(&amp;#34;林青霞&amp;#34;,28,&amp;#34;20150306&amp;#34;);\n s1.show();\n\n /*\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35,&amp;#34;20150306&amp;#34;);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33,&amp;#34;20150306&amp;#34;);\n s3.show();\n */\n Student s2 = new Student(&amp;#34;马云&amp;#34;,35);\n s2.show();\n\n Student s3 = new Student(&amp;#34;马化腾&amp;#34;,33);\n s3.show();\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static: 静态关键字。\n\n 作用：\n 可以修饰成员变量和成员方法\n\n 特点：\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机：可以被静态修饰\n 水杯：不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象，还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(&amp;#34;show&amp;#34;);\n }\n\n public static void show2() {\n System.out.println(&amp;#34;show2&amp;#34;);\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();&amp;amp;ensp;\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;/*\n static 的注意事项：\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载，优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的，不能访问后进内存的；而后进内存的，可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法：\n 可以访问静态成员变量，非静态成员变量，静态成员方法，非静态成员方法\n 静态的成员方法：\n 只能访问静态的成员变量，静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//&amp;amp;ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);&amp;amp;ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(&amp;#34;林青霞&amp;#34;);\n }\n}&lt;/code&gt;&lt;/pre&gt;&lt;h2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"&gt;&lt;span&gt;65 静态成员变量和普通成员变量的区别（理解）&lt;/span&gt;\n &lt;a href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;ol&gt;\n&lt;li&gt;所属不同&lt;br&gt;\n静态属于类的，称为类变量&lt;br&gt;\n非静态属于对象的，称为对象变量，实例变量&lt;/li&gt;\n&lt;li&gt;内存空间不同&lt;br&gt;\n静态在方法区的静态区&lt;br&gt;\n非静态在堆内存&lt;/li&gt;\n&lt;li&gt;生命周期不同&lt;br&gt;\n静态随着类的加载而加载，随着类的消失而消失&lt;br&gt;\n非静态随着对象的创建而存在，随着对象的消失而消失&lt;/li&gt;\n&lt;li&gt;调用不同&lt;br&gt;\n静态可以通过类名调用，也可以通过对象名调用。建议通过类名调用&lt;br&gt;\n非静态只能通过对象名调用&lt;/li&gt;\n&lt;/ol&gt;\n&lt;h2 class=\"heading-element\" id=\"main-方法是静态的理解\"&gt;&lt;span&gt;66 main 方法是静态的（理解）&lt;/span&gt;\n &lt;a href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"&gt;\n &lt;svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"&gt;&lt;path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"&gt;&lt;/path&gt;&lt;/svg&gt;\n &lt;/a&gt;\n&lt;/h2&gt;&lt;pre&gt;&lt;code&gt;public static void main(String[] args)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;public: 访问权限修饰符，表示最大的访问权限，被 jvm 调用，所有权限要够大。&lt;br&gt;\nstatic: 被 jvm 调用，不用创建对象，直接类名访问&lt;br&gt;\nvoid: 被 jvm 调用，不需要给 jvm 返回值&lt;br&gt;\nmain: 一个通用的名称，虽然不是关键字，但是被 jvm 识别&lt;br&gt;\nString[] args:&lt;br&gt;\n早期出现是为了接收键盘录入数据的。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/面向对象/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/\"></head></html>"
  },
  {
    "path": "tags/面试/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"面试 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"第一次面试经历\",\"date_published\":\"2019-04-24T21:23:22&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/1thintervivew/\",\"url\":\"https://lruihao.cn/posts/1thintervivew/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"面试\"],\"summary\":\" 时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/面试/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>面试 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"面试\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-04-24T21:23:22+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"面试\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"面试\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/ title=\"面试 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/index.xml title=\"面试 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/feed.json title=\"面试 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/feed.json title=\"面试 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%9D%A2%E8%AF%95/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>面试</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>面试 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/1thintervivew/ class=archive-item-link>第一次面试经历</a>\n<span class=archive-item-date title='2019-04-24 21:23:22'>04-24</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%9D%A2%E8%AF%95/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/面试/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>面试 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>第一次面试经历</title><link>https://lruihao.cn/posts/1thintervivew/</link><pubDate>Wed, 24 Apr 2019 21:23:22 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/1thintervivew/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;blockquote&gt;\n&lt;p&gt;时间过得真快，一下从大一到了大三，马上就要实习毕业等等了。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/面试/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%9D%A2%E8%AF%95/\"></head></html>"
  },
  {
    "path": "tags/黑盒测试/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"黑盒测试 - 标签 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"判断三角形的黑盒测试\",\"date_published\":\"2019-05-26T18:50:53&#43;08:00\",\"date_modified\":\"2023-11-17T20:39:48&#43;08:00\",\"id\":\"https://lruihao.cn/posts/judgetriangle/\",\"url\":\"https://lruihao.cn/posts/judgetriangle/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"黑盒测试\",\"C\"],\"summary\":\" 黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\n\",\"content_html\":\"\\u003cblockquote\\u003e\\n\\u003cp\\u003e黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\\u003cbr\\u003e\\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\\u003c/p\\u003e\\n\\u003c/blockquote\\u003e\"}]}"
  },
  {
    "path": "tags/黑盒测试/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>黑盒测试 - 标签 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"黑盒测试\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-05-26T18:50:53+08:00\"><meta itemprop=dateModified content=\"2023-11-17T20:39:48+08:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"黑盒测试\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"黑盒测试\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/ title=\"黑盒测试 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/index.xml title=\"黑盒测试 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/feed.json title=\"黑盒测试 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/feed.json title=\"黑盒测试 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href=/tags/ title=Tags>标签</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>黑盒测试</li></ol></nav><main class=fi-container><div class=\"page archive\"><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-solid fa-tag me-1\" aria-hidden=true></i>黑盒测试 <sup>1</sup></h1><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/posts/judgetriangle/ class=archive-item-link>判断三角形的黑盒测试</a>\n<span class=archive-item-date title='2019-05-26 18:50:53'>05-26</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script>var postChatConfig={addButton:!0,backgroundColor:\"#6a64d5\",blackDom:[\"meting-js\",\".lnt\",\".ln\"],bottom:\"\",defaultChatQuestions:[\"你是谁?\",\"Lruihao 是谁?\",\"作者的开源项目有哪些？\"],defaultInput:!1,defaultSearchQuestions:[\"给你的 Markdown 挑挑刺\",\"中文技术文档的写作规范\",\"语义版本控制（SemVer）\",\"Vue.js 相关的文章\",\"FixIt 相关的文档\",\"现代 CSS 解决方案\",\"拖拽式仪表盘系列 \",\"程序猿的自我修养\",\"CSS 奇技淫巧\",\"作者的随笔\"],fill:\"\",frameHeight:\"\",frameWidth:\"\",height:\"\",hotWords:!0,left:\"\",showInviteLink:!0,upLoadWeb:!0,userDesc:\"如果你对网站的内容有任何疑问，可以来问我哦～\",userIcon:\"/images/avatar.jpg\",userMode:\"magic\",userTitle:\"Cell+\",width:\"\"}</script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script>window.config={cookieconsent:{content:{dismiss:\"同意\",link:\"了解更多\",message:\"本网站使用 Cookies 来改善您的浏览体验。\"},enable:!0,palette:{button:{background:\"#f0f0f0\"},popup:{background:\"#1aa3ff\"}},theme:\"edgeless\"},enablePWA:!0,lightgallery:!0,pangu:{enable:!0,selector:\"article\"},print:{expandAdmonition:!0,expandCode:!0,expandDetails:!0,expandFileTree:!1},search:{algoliaAppID:\"MTJNHU0JVB\",algoliaIndex:\"index\",algoliaSearchKey:\"5486225134d99f43826da401ee9bad57\",highlightTag:\"em\",maxResultLength:10,noResultsFound:\"没有找到结果\",snippetLength:50,type:\"algolia\"},siteTime:\"2018-05-28T20:01:01+08:00\",tooltip:!0,version:\"v0.4.5\",watermark:{appendTo:\".widgets\",colSpacing:30,content:'<img style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /> 李瑞豪',enable:!0,fontFamily:\"MMT_LRH,沐目体\",fontSize:1.1,height:20,opacity:.0125,rotate:15,rowSpacing:60,width:150}}</script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "tags/黑盒测试/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>黑盒测试 - 标签 | 菠菜眾長</title><link>https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 17 Nov 2023 20:39:48 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>判断三角形的黑盒测试</title><link>https://lruihao.cn/posts/judgetriangle/</link><pubDate>Sun, 26 May 2019 18:50:53 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/posts/judgetriangle/</guid><category domain=\"https://lruihao.cn/categories/grocery/\">Grocery</category><description>&lt;blockquote&gt;\n&lt;p&gt;黑盒测试着重测试软件功能，它并不涉及程序的内部结构和内容特性，主要根据规格说明，只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。&lt;br&gt;\n白盒测试则清楚程序内部的结构以及是如何运作的，因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。&lt;/p&gt;\n&lt;/blockquote&gt;</description></item></channel></rss>"
  },
  {
    "path": "tags/黑盒测试/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/</title><link rel=canonical href=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/tags/%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95/\"></head></html>"
  },
  {
    "path": "vercel.json",
    "content": "{\n  \"headers\": [\n    {\n      \"source\": \"/service-worker.min.js\",\n      \"headers\": [\n        {\n          \"key\": \"Cache-Control\",\n          \"value\": \"public, max-age=0, must-revalidate\"\n        }\n      ]\n    },\n    {\n      \"source\": \"(.*)\",\n      \"headers\": [\n        {\n          \"key\": \"Cache-Control\",\n          \"value\": \"public, s-maxage=86400, max-age=86400\"\n        },\n        {\n          \"key\": \"Vercel-CDN-Cache-Control\",\n          \"value\": \"max-age=3600\"\n        }\n      ]\n    }\n  ],\n  \"redirects\": [\n    {\n      \"source\": \"/_/\",\n      \"destination\": \"/404.html\",\n      \"permanent\": true\n    },\n    {\n      \"source\": \"/_/page/(.*)\",\n      \"destination\": \"/404.html\",\n      \"permanent\": true\n    },\n    {\n      \"source\": \"/posts/d651bdd/\",\n      \"destination\": \"/projects/apple-devices-preview/\",\n      \"statusCode\": 301\n    },\n    {\n      \"source\": \"/posts/3fd72ec/\",\n      \"destination\": \"/projects/vercel-gravatar/\",\n      \"statusCode\": 301\n    },\n    {\n      \"source\": \"/posts/fixit-cli/\",\n      \"destination\": \"/projects/fixit-cli/\",\n      \"statusCode\": 301\n    }\n  ]\n}"
  },
  {
    "path": "years/2018/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2018 年度总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 以前每年都会在 QQ 空间写每年的总结，可是现在已经过了肆意在空间写说说的年纪了。所幸还有博客这一席之地。\n\"><meta name=keywords content='总结'><meta itemprop=name content=\"2018 年度总结\"><meta itemprop=description content=\"以前每年都会在 QQ 空间写每年的总结，可是现在已经过了肆意在空间写说说的年纪了。所幸还有博客这一席之地。\"><meta itemprop=datePublished content=\"2019-01-12T11:09:52+08:00\"><meta itemprop=dateModified content=\"2019-01-12T11:09:52+08:00\"><meta itemprop=wordCount content=\"424\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/2018/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2018 年度总结\"><meta property=\"og:description\" content=\"以前每年都会在 QQ 空间写每年的总结，可是现在已经过了肆意在空间写说说的年纪了。所幸还有博客这一席之地。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2019-01-12T11:09:52+08:00\"><meta property=\"article:modified_time\" content=\"2019-01-12T11:09:52+08:00\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2018 年度总结\"><meta name=twitter:description content=\"以前每年都会在 QQ 空间写每年的总结，可是现在已经过了肆意在空间写说说的年纪了。所幸还有博客这一席之地。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/2018/ title=\"2018 年度总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/inversion-3/ title=英语语法--形式倒装><link rel=next type=text/html href=https://lruihao.cn/posts/subject-verb/ title=英语语法--主谓一致><link rel=alternate type=text/markdown href=https://lruihao.cn/years/2018/index.md title=\"2018 年度总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"2018 年度总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/years\\/2018\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"总结\",\"wordcount\":424,\"url\":\"https:\\/\\/lruihao.cn\\/years\\/2018\\/\",\"datePublished\":\"2019-01-12T11:09:52+08:00\",\"dateModified\":\"2019-01-12T11:09:52+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script><link rel=stylesheet href=https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Bold/result.css></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=\"LXGW WenKai\"><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/2018/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/years/ title=年度总结>年度总结</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2018 年度总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>2018 年度总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2019-01-12 11:09:52\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2019-01-12>2019-01-12</time></span>&nbsp;<span title=\"424 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"2018 年度总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 请输入密码\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=45ab6734b21e6968>PGJsb2NrcXVd3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9vdGU+CjxwPuS7peWJjeavj+W5tOmDveS8muWcqCBRUSDnqbrpl7Tlhpnmr4/lubTnmoTmgLvnu5PvvIzlj6/mmK/njrDlnKjlt7Lnu4/ov4fkuobogobmhI/lnKjnqbrpl7Tlhpnor7Tor7TnmoTlubTnuqrkuobjgILmiYDlubjov5jmnInljZrlrqLov5nkuIDluK3kuYvlnLDjgII8L3A+CjwvYmxvY2txdW90ZT4KPHA+MTgg5bm05Li76KaB55qE5pS26I6377yM57uP5Y6G5aSn5qaC5bCx5Zyo5LiL6Z2i5LqG77yM5Y+v6L+Y5piv5rKh5pyJ5a2m5Yiw5LuA5LmI56Gs5pys5LqL77yM5a+S5YGH6L+Y5piv6KaB5a2m5Lmg5LiA5LiLIGphdmEg5ZKMIGpzcOOAgjwvcD4KPHVsPgo8bGk+6aaW5YWI5pyA5byA5b+D55qE5piv5Zyo54uX5bm05Yia5byA5aeLIDMg5pyI5bqV5Zue5Yiw5rmY5r2t5ZCO77yM5ou/5LiL5LqG6am+54Wn77yI5bm05YmN5oyC5LqG5LiA5qyh5b6I5LiN54i977yJ77yM5Y+v5Lul5byA5YWx5Lqr5rG96L2m5LqG77yM5L2T6aqM5YWx5Lqr5pe25Luj55qE5paw5ruL5ZGz44CCPC9saT4KPGxpPueEtuWQjuaYryAxMSDmnIjku73nmoTova/ogIPvvIzomb3nhLbmsqHmnInorqTnnJ/lh4blpIfogIPor5XvvIzov5jmmK/ov4fkuobvvIjkuIrljYjljovnur/vvInjgILkuI3nn6XpgZPmmK/ku4rlubTnmoTlrrnmmJPov5jmmK/mgI7kuYjnmoTvvIzlj43mraPmiJHogIPlrozlsLHop4nlvpfmjLrlrrnmmJPnmoTjgII8L2xpPgo8bGk+NSDmnIjlupXmkK3lu7rkuobnjrDlnKjov5nkuKogaGV4byDpnZnmgIHljZrlrqLvvIzov5jmlLbliLDkuobkuIDkupvnvZHkuIrmnIvlj4vnmoTmiZPotY/vvIzmhJ/osKLvvIE8L2xpPgo8bGk+55So5omT6LWP55qE6ZKx5Lmw5LqG5Lik5Liq5pyN5Yqh5Zmo5LiA5Liq5Zu95YaF55qE77yM5LiA5Liq5Zu95aSW55qE44CC5pCt5LqG5LiA5Liq5paH5Lu25rWP6KeI5Zmo5L2c5Li66Ieq5bex55qEIDxhIGhyZWY9Imh0dHBzOi8vcGFuLmxydWloYW8uY24iIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPjxkZWw+572R55uYPC9kZWw+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPiwg6L+Y5pCt5LqG5LiA5LiqIHNzIOair+WtkOS+m+iHquW3see/u+WimeS9v+eUqOOAgjwvbGk+CjxsaT7lj4LliqDkuoYgMjAxOCDlubQgQUNNIOeahOa5mOa9reWFqOWbvemCgOivt+i1m++8jOWcqOa5mOWkp++8jOiZveeEtuW+iOmBl+aGvuayoeacieaLv+Wllu+8jOS9huWwseW9k+i1sOi/h+i/meatpeWQp++8jOeVpei/h+OAgjwvbGk+CjxsaT7mmpHlgYfnu5PmnZ/vvIzpgIDlh7rkuoYgRTMxM0FDTSDlrp7pqozlrqTvvIzkuZ/lsLHmsqHmnInliLfpopjmiZPmr5TotZvkuobjgII8L2xpPgo8bGk+5aSn5LqM6I635b6X5LqG5Liq5Zu95a625Yqx5b+X77yM6L+Y5LiN6ZSZ44CCaGhoaCDmnInlpZbph5HvvIE8L2xpPgo8bGk+55yf55qE5b6I6I+c5L2G5piv6YCA5a6e6aqM5LmL5YmN77yM5a2m6Zmi55qE57yW56iL5q+U6LWb6L+Y5piv6L+Q5rCU5aW95ou/5LqG5Liq5LiJ562J5aWW44CCPC9saT4KPC91bD4=</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2019-01-12 11:09:52\">更新于 2019-01-12&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/inversion-3/ class=post-nav-item rel=prev title=英语语法--形式倒装><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>英语语法--形式倒装</a><a href=/posts/subject-verb/ class=post-nav-item rel=next title=英语语法--主谓一致>英语语法--主谓一致<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录></aside></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/c6842325fb41c160202c49e4a4c50d8b.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/c6842325fb41c160202c49e4a4c50d8b.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/2018/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/2018/index.md",
    "content": "# 2018 年度总结\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/years/2018/  \n\n"
  },
  {
    "path": "years/2019/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2019 年度总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 回顾 2019，是从“迷茫”到“忙”的一年，何为“迷茫”，何为“忙”。\n\"><meta name=keywords content='总结'><meta itemprop=name content=\"2019 年度总结\"><meta itemprop=description content=\"回顾 2019，是从“迷茫”到“忙”的一年，何为“迷茫”，何为“忙”。\"><meta itemprop=datePublished content=\"2020-01-16T20:01:22+08:00\"><meta itemprop=dateModified content=\"2020-01-16T20:01:22+08:00\"><meta itemprop=wordCount content=\"1677\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/2019/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2019 年度总结\"><meta property=\"og:description\" content=\"回顾 2019，是从“迷茫”到“忙”的一年，何为“迷茫”，何为“忙”。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2020-01-16T20:01:22+08:00\"><meta property=\"article:modified_time\" content=\"2020-01-16T20:01:22+08:00\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2019 年度总结\"><meta name=twitter:description content=\"回顾 2019，是从“迷茫”到“忙”的一年，何为“迷茫”，何为“忙”。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/2019/ title=\"2019 年度总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/sql/ title=\"SQL 总结\"><link rel=next type=text/html href=https://lruihao.cn/posts/daka/ title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\"><link rel=alternate type=text/markdown href=https://lruihao.cn/years/2019/index.md title=\"2019 年度总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"2019 年度总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/years\\/2019\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"总结\",\"wordcount\":1677,\"url\":\"https:\\/\\/lruihao.cn\\/years\\/2019\\/\",\"datePublished\":\"2020-01-16T20:01:22+08:00\",\"dateModified\":\"2020-01-16T20:01:22+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script><link rel=stylesheet href=https://unpkg.com/mmt-webfont/dist/result.css></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=MMT><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/2019/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/years/ title=年度总结>年度总结</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2019 年度总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>2019 年度总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2020-01-16 20:01:22\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2020-01-16>2020-01-16</time></span>&nbsp;<span title=\"1677 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 1700 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 4 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"2019 年度总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc encrypted-hidden\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#上半年湘潭湖南工程学院-java>上半年·湘潭·湖南工程学院 java</a></li><li><a href=#下半年深圳富士康科技集团-php>下半年·深圳·富士康科技集团 php</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 请输入密码\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=7d04ebd0a055b64a>PGJsb2Nrc4318e53985ecc0992cb4d1a937e64819308995b1c071fa0dca661f6XVvdGU+CjxwPuWbnumhviAyMDE577yM5piv5LuO4oCc6L+36Iyr4oCd5Yiw4oCc5b+Z4oCd55qE5LiA5bm077yM5L2V5Li64oCc6L+36Iyr4oCd77yM5L2V5Li64oCc5b+Z4oCd44CCPC9wPgo8L2Jsb2NrcXVvdGU+CjxoMiBjbGFzcz0iaGVhZGluZy1lbGVtZW50IiBpZD0i5LiK5Y2K5bm05rmY5r2t5rmW5Y2X5bel56iL5a2m6ZmiLWphdmEiPjxzcGFuPjEg5LiK5Y2K5bm0wrfmuZjmva3Ct+a5luWNl+W3peeoi+WtpumZoiBqYXZhPC9zcGFuPgogIDxhIGhyZWY9IiMlZTQlYjglOGElZTUlOGQlOGElZTUlYjklYjQlZTYlYjklOTglZTYlYmQlYWQlZTYlYjklOTYlZTUlOGQlOTclZTUlYjclYTUlZTclYTglOGIlZTUlYWQlYTYlZTklOTklYTItamF2YSIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gyPjxwPjIwMTkg5bm05LyK5aeL77yM5q2l5YWl5aSn5LiJ5LiL5a2m5pyf77yMPGJyPgrlm57pob7lpKflrabliY3mrrXnlJ/mtq/vvIzml6DorrrmmK8gQUNNIOaYr+WunumqjOWupOmHjOaJgOWtpueahOaJgOiwk+eul+azle+8iOeUmuiHs+eOsOWcqOW3sue7j+W/mOiusOaAjuS5iOWGmeS6hu+8ie+8jDxicj4K6L+Y5piv6Ieq5bex5LiA5pe25YW06LW35oqY6IW+55qE566A5Y2V572R6aG177yM5Ly85LmO6YO95peg5rOV5pSv5pKR6Ieq5bex5om+5Yiw5bel5L2c77yM55Sa6Iez5a6e5Lmg44CCPGJyPgrkuo7mmK/kuY7vvIzmtZPmtZPnmoQmcXVvdDvov7fojKsmcXVvdDvlkowmcXVvdDvnhKbomZEmcXVvdDvmhJ/mnaXkuobjgII8YnI+CueUseS6jiZxdW90O+WNk+i2iuiuoeWIkiZxdW90O+eahOe8mOaVhe+8jOWkp+Wbm+aIkeS7rOWwseS4jeWcqOWtpuagoeS6hu+8jOimgeWOu+S8geS4muWunuS5oOOAgjxicj4K6L+Z5q2j5piv5oiR5omA5ouF5b+D55qE77yM5rKh5pyJ5LiA5oqA5LmL6ZW/77yM5ZOq5a625YWs5Y+45Lya5pS25oiR44CCPGJyPgrkuI3lvpfkuI3otbDkuIrmlrDnmoTlrabkuaDml4XnqIvvvIzmiJHpgInmi6nkuoYgamF2Ye+8jOaIkeS5n+S4jeefpemBk+S4uuS7gOS5iOmAiSBqYXZh77yM5Y+N5q2j5bCx5piv6YCJ5LqG44CCPGJyPgrliLblrprkuoborqHliJLlvZPnhLbopoHmiafooYzllYrvvIzmiYDku6Xku44gMjAxOSDlubTliJrlvIDlp4vvvIzmiJHlhYjmioogamF2YSDnmoTln7rnoYDlpI3kuaDkuobkuIDpgY3vvIw8YnI+CueEtuWQjuWcqOaFleivvue9keS4iuW8gOWni+WIt+ivvu+8jOeEtuWQjueisOWIsOS4gOS6m+Wwj+S+i+WtkOaXtumDveS8mue8lueoi+e7g+S5oOOAgjxicj4K5LuO5oiR55qE5Y2a5a6i6K6w5b2V5pi+56S677yMamF2YSDlrabkuaDkuIDnm7TmjIHnu63liLAgNSDmnIjliJ3jgII8YnI+Cuacn+mXtOi/mOaKmOiFvuS6huS4gOauteaXtumXtCBweXRob27vvIzmraPmmK/ov5nlsI/mrrXml7bpl7TnmoQgcHl0aG9u77yMPGJyPgrorqnmiJHmnInmnLrkvJrmjqXop6bliLDkuoYmcXVvdDvpurvlsI/np5HmioAmcXVvdDvvvIzov5nph4zpnZ7luLjmhJ/osKLmjbflk6XvvIznrpfotbfmnaXkuZ/mmK/orqTor4blpJrlubTnmoTmnIvlj4vkuobvvIw8YnI+CuWQjuadpeS5n+iupOivhuS6hua2m+WTpe+8jOmdnuW4uOaEn+iwoua2m+WTpeWcqOaKgOacr+aWuemdoue7meS6huaIkeW+iOWkmueahOaMh+WvvOOAgjxicj4K5ZCO5p2l5py657yY5ben5ZCI5LmL5LiL77yM5LiA5Zy66Z2i6K+V6K6p5oiR5LiN5b6X5LiN6ICD6JmR5pqC5YGc5oiR55qEIGphdmEg6K6h5YiS77yMPGJyPgrov5nlnLrpnaLor5XlsLHmmK/lr4zlo6vlurcgQyDmrKHnmoTkuIDlnLrpnaLor5XvvIzpnaLor5Xlrpjluoblk6XkuZ/lsLHmmK/miJHmnKrmnaXnmoTkuLvnrqHvvIw8YnI+CuW9k+aXtuW6huWTpemdouivleaXtumXruS6huaIkeS7rOS4ieS4quW+iOeugOWNleeahOmXrumimOS4gOS4qiBjc3Mg6YCJ5oup5Zmo77yM5LiA5Liq5pWw5o2u5bqT55qE5p+l6K+i77yM6L+Y5pyJ5LiA5Liq5pivIGNzcyDnmoTnm5LlrZDmqKHlnovjgII8YnI+CuaIkeW9k+aXtuaVsOaNruW6k+eahOmCo+S4quiBlOWQiOafpeivouayoeetlOWHuuadpe+8jOS4gOe0p+W8oOWGheWklui+uei3neeahOiLseaWhyBwYWRkaW5nIOWSjCBtYXJnaW4g5Lmf5b+Y6K6w5oCO5LmI5ou85YaZ5LqG44CCPGJyPgrlj4zmlrnov5jpl67kuobkuIDkupvkuobop6PmgKfnmoTpl67popjpnaLor5XlsLHov5nmoLfnu5PmnZ/kuobjgII8YnI+CuW+iOW5uOi/kOi/h+S6huS4gOS4pOWkqeWwseaUtuWIsOS6humCruS7tuOAgjwvcD4KPGgyIGNsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLkuIvljYrlubTmt7HlnLPlr4zlo6vlurfnp5HmioDpm4blm6ItcGhwIj48c3Bhbj4yIOS4i+WNiuW5tMK35rex5Zyzwrflr4zlo6vlurfnp5HmioDpm4blm6IgcGhwPC9zcGFuPgogIDxhIGhyZWY9IiMlZTQlYjglOGIlZTUlOGQlOGElZTUlYjklYjQlZTYlYjclYjElZTUlOWMlYjMlZTUlYWYlOGMlZTUlYTMlYWIlZTUlYmElYjclZTclYTclOTElZTYlOGElODAlZTklOWIlODYlZTUlOWIlYTItcGhwIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDI+PHA+54S25ZCO5pe26Ze05LiA5pmD6ICM6L+H5p2l5Yiw5LqG5LiL5Y2K5bm077yM5oiR5p2l5Yiw5LqG6ZmM55Sf55qE5rex5Zyz77yM5p2l5Yiw5LqG5a+M5aOr5bq344CCPGJyPgrmnaXliLDmt7HlnLPlkI7kuIDlkajvvIzmjbflk6Xor7TkuIDotbflkIPkuKrppa3vvIzmmZrkuIrkuIDotbfotbDotbDvvIw8YnI+CueEtuWQjumCo+WkqeaIkeWwseWOu+aJvuaNt+WTpeWQg+mlreS6hu+8jOWQg+eahOaYr+mhuuW+t+WFrOeahOeMquiCmuWMhem4oe+8jOW+iOWlveWQg+OAgjxicj4K54S25ZCO5Lmf6KeB5Yiw5LqG5rab5ZOl77yM5oSf6KeJ5rab5ZOl5piv5LiA5Liq5b6I6LCm6YCK5b6I5ZKM6JS855qE5Lq644CC6Z2e5bi45oSf6LCi5o235ZOl5ZKM5rab5ZOl5Zyo5oiR5Yia5p2l5rex5Zyz55qE54Ot5oOF5qy+5b6F44CCPGJyPgrlronpob/lpb3lkI7vvIzkuZ/lvIDlp4vlrp7kuaDlt6XkvZzkuobvvIzliY3pnaLnmoTmiJHmiYDor7TnmoQmcXVvdDvlv5kmcXVvdDvlkaLlhbblrp7mjIfnmoTmmK8mcXVvdDvlhYXlrp4mcXVvdDvvvIw8YnI+CuWcqOW6huWTpeW4pumihuS4i+eahOWtpuS5oOW3peS9nOiuqeaIkeavj+WkqemDvei/h+W+iOWFheWunu+8jOavj+WkqemDveiDveaEn+inieWIsOiHquW3seS4gOeCueeCueeahOi/m+atpe+8jOecn+eahOmdnuW4uOW6huWTpeeahOaCieW/g+WfueWFu+OAgjxicj4K5LuOIGh0bWw1IOWIsCBwaHDvvIznhLblkI4gYWpheCDkuqTkupLvvIxTUUwg562J562J77yM5Yeg5LmO5piv5LuO6Zu25byA5aeL5pWZ5a2m77yM5pWI5p6c5a6M5YWo5q+U5b6X5LiK5aSW6Z2i55qE5Z+56K6t5py65p6E44CCPGJyPgrpgqPmrrXml7bpl7Tmr4/lpKnkuIrnj63mtYvor5XvvIzlrabkuaAgTUVTIOezu+e7n+a1geeoi++8jOeEtuWQjuS4i+ePreWQjuWtpuS5oOaWsOeahOefpeivhu+8jOavj+WkqemDveiDveaEn+inieWFheWunuW4puadpeeahOaEieaCpuaEn+OAgjxicj4K5LiN5LuF5Y+q5pyJ5a2m5Lmg6L+Y5pyJ5rWL6K+V77yM5YWs5Y+455qE5rWL6K+V5q+U5Zyo5a2m5qCh55qE6ICD6K+V55yf5a6e5aSa5LqG77yM5YWs5Y+45piv6KaB5L2g55yf55qE5o6M5o+h77yM5omA5Lul5Lya5pyJ55CG6K6655+l6K+G5a2m5Lmg77yM6L+Y5Lya5pyJ5a6e6ZmF5pON5L2c44CCPGJyPgrlkI7mnaXlpKfmpoIgMTIg5pyI5Yid5Y+I5a2m5Lmg5LqG77yM6YOo6Zeo5bmz5Y+w55qE5qih57uE5byA5Y+R77yMMTIg5pyI5Lu95rGH5oql77yM6Ieq5bex5pW05L2T6K+E5Lu35b6I6KGM77yM5p2+5LqG5LiA5Y+j5rCU44CCPGJyPgoxMiDmnIjlupXmraPlvI/mjqXmiYvkuobpobnnm67vvIzmi7/liLDnmoTmlrDpobnnm67mmK/kuKTmlK/orrrlnZvmqKHnu4TjgII8YnI+CueUseS6juaJi+S4iuS4jeWkn+eahOWOn+WboO+8jOaIkeiiq+WuieaOkuWBmuWJjeerr+W8gOWPke+8jOacrOS7peS4uuWJjeerr+S8muW+iOWuueaYk+OAguS4gOebtOS7peadpeWkp+WutuS5n+mDvei/meagt+iupOS4uuOAgjxicj4K5Y+v5piv6Ieq5bex5a6e6ZmF5byA5Y+R5ZCO5omN55+l6YGT5YmN56uv5Lmf5piv5b6I5a655piT5Ye6IGJ1ZyDnmoTvvIzlubbkuJTmnInml7blgJnliY3nq6/nmoQgYnVnIOW+gOW+gOiuqeS9oOS4jeefpeaJgOaOquOAgjxicj4K5LiA5YiH6L+Y6ZyA57un57ut5Yqq5Yqb77yBPGJyPgoxMiDmnIggMjYg5pel77yMenhtIOiAg+eglOe7k+adn++8jOadpea3seWcs+aJvuaIkeeOqe+8jOWSjOWlueS4gOi1t+WcqOa3seWcs+mAm+S6humAm++8jOWOu+S6hua3seWcs+a5vuOAgjxicj4K5pys5p2l5aW56L+Y5oOz5Y675Yqo54mp5Zut55qE77yM5L2G5piv6ICB5piv552h6L+H5aS077yM5omA5Lul5bCx5rKh5Y675LqG5ZOI5ZOI5ZOI5ZOI44CCPGJyPgromb3nhLbmiJHnn6XpgZMgenhtIOWWnOasouWQg+iCr+W+t+Wfuu+8jOS7peWJjeWcqOa5mOa9reS5n+W4uOmZquWlueWOu++8jDxicj4K5L2G6L+Z5LiA5qyh5rex5Zyz5LmL5peF77yM5oiR5omN5Y+R546w5aW555yf55qE5aSq54ix5ZCD5LqG77yM5pCe55qE5oiR55qE5LiN5pWi57uZ5aW55ZCD5aSq5aSa44CCPGJyPgrlj4jkuI3lv43lv4Pmi5Lnu53lpbnlkIPvvIzmiYDku6XmnaXmt7HlnLPlsLHlkIPkuoblpb3lh6DmrKHogq/lvrfln7rlkozpuqblvZPlirPjgII8YnI+CuadpeWIsCAyMCDlubTliJ3vvIzpg6jpl6jogZrppJDlkIPmtbfpspzvvIzlkozlpKflrrbpg6jpl6jlhoXnmoTlkIzkuovkuZ/pg73nhp/kuobvvIzlpKflrrbpg73lvojlpb3nm7jlpITvvIw8YnI+CuW+iOW6huW5uOaJgOWcqOmDqOmXqOWkp+WutumDveaYr+W+iOWlveeahOWtpuS5oOW3peS9nOawm+WbtO+8jOayoeaciemCo+enjeiAgee7g+iBjOWcuueahOWwlOiZnuaIkeiviOOAgjxicj4KMSDmnIjliJ3nmoTkuIDkuKrlkajmnKvov5jlvojojaPlubjnmoTlj5fpgoDlj4LliqDkuobpurvlsI/np5HmioDnmoTlubTkvJrvvIzlkozmjbflk6Xmtpvlk6XkuIDotbfniKzljZflsbHvvIznhLblkI7kuIDotbflnKjnspfojLbmt6Hppa3lkIPppa3vvIw8YnI+CuiupOivhuS6huW+iOWkmuW+iOS8mOengOeahOaci+WPi++8jOacieWcqOWNjuS4uueahO+8jOacieiFvuiur+eahO+8jOS5n+aciea4heWNjuWNmuWjq+WcqOivu+eahOetieetie+8jDxicj4K5ZCs5LuW5Lus6K+05LqG5LiA5Lqb6K+d6YO96KeJ5b6X5b6I5pyJ6YGT55CG44CCPGJyPgrkuIvljYjov5jkuIDotbfljrvmiZPkuobmo4vniYzlrqTmiZPkuobmoYznkIPlkozpurvlsIbjgII8YnI+CuaEn+iniemZleilv+m6u+WwhuWSjOmVv+aymem6u+WwhuacieeCueWDj++8jOS9huWSjOaIkeS7rOmCo+eahOm6u+WwhuaJk+azleeVpeacieS4jeWQjOOAgu+8iOi+k+S6huWNgeWdl+WTiOWTiOWTiOWTiO+8iTwvcD4KPGgyIGNsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmgLvnu5MiPjxzcGFuPjMg5oC757uTPC9zcGFuPgogIDxhIGhyZWY9IiMlZTYlODAlYmIlZTclYmIlOTMiIGNsYXNzPSJoZWFkaW5nLW1hcmsiPgogICAgPHN2ZyBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiIHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNy43NzUgMy4yNzUgMS4yNS0xLjI1YTMuNSAzLjUgMCAxIDEgNC45NSA0Ljk1bC0yLjUgMi41YTMuNSAzLjUgMCAwIDEtNC45NSAwIC43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4IDEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwyLjUtMi41YTIuMDAyIDIuMDAyIDAgMCAwLTIuODMtMi44M2wtMS4yNSAxLjI1YS43NTEuNzUxIDAgMCAxLTEuMDQyLS4wMTguNzUxLjc1MSAwIDAgMS0uMDE4LTEuMDQyWm0tNC42OSA5LjY0YTEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwxLjI1LTEuMjVhLjc1MS43NTEgMCAwIDEgMS4wNDIuMDE4Ljc1MS43NTEgMCAwIDEgLjAxOCAxLjA0MmwtMS4yNSAxLjI1YTMuNSAzLjUgMCAxIDEtNC45NS00Ljk1bDIuNS0yLjVhMy41IDMuNSAwIDAgMSA0Ljk1IDAgLjc1MS43NTEgMCAwIDEtLjAxOCAxLjA0Mi43NTEuNzUxIDAgMCAxLTEuMDQyLjAxOCAxLjk5OCAxLjk5OCAwIDAgMC0yLjgzIDBsLTIuNSAyLjVhMS45OTggMS45OTggMCAwIDAgMCAyLjgzWiI+PC9wYXRoPjwvc3ZnPgogIDwvYT4KPC9oMj48cD7mgLvnmoTmnaXor7TvvIwxOSDlubTov5jnrpfpobrliKnvvIzkuIvljYrlubTnmoTlrp7kuaDmsqHlkJHlrrbph4zopoHpkrHvvIzlh63oh6rlt7Hog73lipsmcXVvdDvmtLvnnYAmcXVvdDvvvIzlj6rluIzmnJsgMjAg5bm05ZKMIHp4bSDmm7Tlpb3vvIzpobrliKnmr5XkuJrvvIzmtLvnmoTmm7Tlpb3vvIE8L3A+</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2020-01-16 20:01:22\">更新于 2020-01-16&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/sql/ class=post-nav-item rel=prev title=\"SQL 总结\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>SQL 总结</a><a href=/posts/daka/ class=post-nav-item rel=next title=\"新冠疫情未返校未返工第 N 天之“自动打卡”\">新冠疫情未返校未返工第 N 天之“自动打卡”<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=\"toc-title encrypted-hidden\">目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=\"toc-content encrypted-hidden\" id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#上半年湘潭湖南工程学院-java>上半年·湘潭·湖南工程学院 java</a></li><li><a href=#下半年深圳富士康科技集团-php>下半年·深圳·富士康科技集团 php</a></li><li><a href=#总结>总结</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none encrypted-hidden\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/de967b22e35857b24b5b26e279d6525e.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/de967b22e35857b24b5b26e279d6525e.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/2019/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/2019/index.md",
    "content": "# 2019 年度总结\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/years/2019/  \n\n"
  },
  {
    "path": "years/2020-2021/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2020&amp;2021 總結 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 後知後覺 2020 已經過去半年了，由於情緒過於複杂，一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公，得空靜下來，和自己對話，不知从何說起，想到哪寫到哪吧。 \"><meta name=keywords content='总结'><meta itemprop=name content=\"2020&2021 總結\"><meta itemprop=description content=\"後知後覺 2020 已經過去半年了，由於情緒過於複杂，一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公，得空靜下來，和自己對話，不知从何說起，想到哪寫到哪吧。\"><meta itemprop=datePublished content=\"2021-06-21T10:17:38+08:00\"><meta itemprop=dateModified content=\"2022-01-03T00:00:00+08:00\"><meta itemprop=wordCount content=\"2864\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/2020-2021/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2020&2021 總結\"><meta property=\"og:description\" content=\"後知後覺 2020 已經過去半年了，由於情緒過於複杂，一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公，得空靜下來，和自己對話，不知从何說起，想到哪寫到哪吧。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2021-06-21T10:17:38+08:00\"><meta property=\"article:modified_time\" content=\"2022-01-03T00:00:00+08:00\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2020&2021 總結\"><meta name=twitter:description content=\"後知後覺 2020 已經過去半年了，由於情緒過於複杂，一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公，得空靜下來，和自己對話，不知从何說起，想到哪寫到哪吧。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/2020-2021/ title=\"2020&amp;2021 總結 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/watermark/ title=\"Create watermark for webpage and automatic adjust when window resize.\"><link rel=next type=text/html href=https://lruihao.cn/posts/lightbox/ title=Lightbox><link rel=alternate type=text/markdown href=https://lruihao.cn/years/2020-2021/index.md title=\"2020&2021 總結 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"2020\\u00262021 總結\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/years\\/2020-2021\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"总结\",\"wordcount\":2864,\"url\":\"https:\\/\\/lruihao.cn\\/years\\/2020-2021\\/\",\"datePublished\":\"2021-06-21T10:17:38+08:00\",\"dateModified\":\"2022-01-03T00:00:00+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script><link rel=stylesheet href=https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Bold/result.css></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=\"LXGW WenKai\"><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/2020-2021/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/years/ title=年度总结>年度总结</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2020&amp;2021 總結</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>2020&amp;2021 總結</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">和自己對話</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2021-06-21 10:17:38\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2021-06-21>2021-06-21</time></span>&nbsp;<span title=\"更新于 2022-01-03 00:00:00\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2022-01-03>2022-01-03</time></span>&nbsp;<span title=\"2864 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2900 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 6 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"2020&amp;2021 總結\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc encrypted-hidden\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#2020>2020</a><ol><li><a href=#離>離</a></li><li><a href=#別>別</a></li><li><a href=#heading>&</a></li></ol></li><li><a href=#2021>2021</a></li></ol></nav></div></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 请输入密码\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=99494d7d2baa5cdf>PGRpdiB75eb3827939741acf7342ba78836ecec21a31ecf3f34a55309d3bee8ajbGFzcz0iZGV0YWlscyBhZG1vbml0aW9uIHF1b3RlIG9wZW4iPgogICAgPGRpdiBjbGFzcz0iZGV0YWlscy1zdW1tYXJ5IGFkbW9uaXRpb24tdGl0bGUiPjxpIGNsYXNzPSJpY29uIGZhLXNvbGlkIGZhLXF1b3RlLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPuW+jOefpeW+jOimujxpIGNsYXNzPSJkZXRhaWxzLWljb24gZmEtc29saWQgZmEtYW5nbGUtcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iZGV0YWlscy1jb250ZW50Ij4KICAgICAgPGRpdiBjbGFzcz0iYWRtb25pdGlvbi1jb250ZW50Ij4yMDIwIOW3sue2k+mBjuWOu+WNiuW5tOS6hu+8jOeUseaWvOaDhee3kumBjuaWvOikh+adgu+8jOS4gOebtOS4jeaDs+WOu+WbnuaGtue4vee1kOmCo+aTjeibi+eahOS4gOW5tOOAguS7iuWkqeeWq+aDheWOn+WboOWxheWutui+puWFrO+8jOW+l+epuumdnOS4i+S+hu+8jOWSjOiHquW3seWwjeipse+8jOS4jeefpeS7juS9leiqqui1t++8jOaDs+WIsOWTquWvq+WIsOWTquWQp+OAgjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo8aDIgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IjIwMjAiPjxzcGFuPjEgMjAyMDwvc3Bhbj4KICA8YSBocmVmPSIjMjAyMCIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gyPjxwPuWni+aWvOaWsOWGoO+8jOe1guaWvOeWq+aDheOAguS4remWk+WkvumbnOWkquWkmumBuuaGvu+8jOmbouWIpeWSjOWjk+WKm++8jDIwIOW5tOWPr+S7peiqrOS7juW5tOmgreWIsOW5tOWwvumDveezn+ezlemAj+S6huOAgjwvcD4KPGgzIGNsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLpm6IiPjxzcGFuPjEuMSDpm6I8L3NwYW4+CiAgPGEgaHJlZj0iIyVlOSU5YiVhMiIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gzPjxibG9ja3F1b3RlIGNsYXNzPSJibG9ja3F1b3RlLWNlbnRlciI+CiAgPGRpdiBjbGFzcz0idHlwZWl0IiBkYXRhLWdyb3VwPSJsb29rYmFjayI+PGRpdiA+PC9kaXY+PHRlbXBsYXRlPjxwcmU+5Y+q5biM5pybIDIwIOW5tOWSjCB6eG0g5pu05aW977yM6aG65Yip5q+V5Lia77yM5rS755qE5pu05aW9ICZoZWxsaXA7PC9wcmU+PC90ZW1wbGF0ZT4KPC9kaXY+CjxzbWFsbCBpZD0iaWQtMSI+PGRpdiBjbGFzcz0idHlwZWl0IiBkYXRhLWdyb3VwPSJsb29rYmFjayI+PGRpdiA+PC9kaXY+PHRlbXBsYXRlPjxwcmU+4oCU4oCUMTkg5bm05bm05bqVPC9wcmU+PC90ZW1wbGF0ZT4KPC9kaXY+Cjwvc21hbGw+Cgo8L2Jsb2NrcXVvdGU+CjxwPummluWFiOaYr+WSjCB6eG0g5YiG5omL5LqG77yM6YGO56iL5aSq57Of5b+D55qE77yM54Sh55aR5oiQ54K65LqG5oiR5LiA5bm05ri+5ri+5Zmp5Zmp55qE5pyA5aSn5Zug57Sg44CCPGJyPgrmnIDlvozpgqPmrrXmmYLlhYnnnJ/nmoTkuI3mg7PoqJjkvY/vvIzpgJnoo6HkuZ/lsLHkuI3lho3lm57mhrbkuobjgILlsLHnlbboobnmmK8gMTkg5bm05bqV5pyA5b6M55qE6aGY5pyb6JC956m65LqG5ZCn44CCPC9wPgo8cD7liIbplovlkI7pgqPlgIvlpI/lpKnphZLli4HlpKfkuoblvojlpJrvvIw8YnI+CuS5n+mWi+Wni+aKveeFme+8jOiomOS4jeW+l+aKveS6huWkmuWwkemau+eDn++8jOWPquefpemBk+aJi+iHguS4iuWkmuS6huW5vuWAi+aKveeFmeeZvOWRhuS4jeWwj+W/g+eHmeeahOeFmeeWpOOAgjwvcD4KPHA+5YiG6ZaL5b6M77yM5ZCE56iu5LiN55CG5pm655qE5omT5pO+5bm+5LmO6YO95piv5oiR44CC5aaC5p6c55+l6YGT6Ki75a6a57WC5pyJ5LiA5Yil77yM5oiR5YCR5oeJ6Kmy5aW95aW96Kqq5LiA6IGy5YaN6KaL55qE44CCPGJyPgrogIzkuI3mmK/kuIDlubTlkI7miJHnnIvlpKDkuobkvaDoqI7ljq3miJHnmoTmqKPlrZDvvIzoq77oq77lnLDmlL7kuIvvvIzkuI3mlrflkYroqLToh6rlt7Hlpbnlt7LntpPotbDpgaDkuobjgII8L3A+CjxwPuatpOasoeKAnOWRiuWIpeKAne+8jOaLlueahOaZmuS6huS6m++8jOecn+aYr+aKseatieS6hu+8jOWSjOS9oOWcqOS4gOi1t+W6pumBjuaVtOS4quWkp+WtuOeUn+a2r++8jOa5luW3peS4gOiNieS4gOacqOmDveabvuimi+itiemBjuaIkeWAkeeahOeUnOicnO+8jOS4gOi1t+WcqCBBQ00g5Yi36aGM77yM5LiA6LW35Zyo5ZyW5pu46aSo5a2457+S77yM5LiA6LW35ZCD5ZCD5ZCD77yM55W254S26YKE5pyJ54Wp5Lq655qE54it5ZC144CC6YKj6YGO5Y675Zub5bm077yM5oiR5b6e5pyq5oSf6Ka66YGO55qE5bm456aP77yM5Lul5Y+KICZoZWxsaXA7IOmBuuaGvuOAgjwvcD4KPHA+5YW25a+m5ZKM5L2g5YiG6ZaL5Yiw54++5Zyo77yM5oiR57i95pyD5Zyo5Y2K5aSc5oOz6LW35L2g77yM5Y+v6YCZ6K6T5oiR55yf55qE5aSq57O+57WQ5LqG44CC5oOz5Yiw5L2g5pyD6K6T5oiR5b6I55eb6Ium77yM5Y+v6Iul6K6T5oiR5b+Y6KiY5L2g77yM5oiR5piv55yf55qE5o2o5LiN5b6X44CC5Y+v6IO95L2g5LiN5pyD55+l6YGT77yM5YW25LuW5Lq65Lmf5LiN5pyD55+l6YGT77yM6YKE6KiY5b6X5L2g6YCB5oiR55qE5ZOq5YCL54ax5rC06KKL55qE5q+b57Wo5aiD5aiD5ZeO77yM5a6D5Lmf6Kix55+l6YGT44CCPC9wPgo8cD7lj6/mmK/vvIzmiJHnnJ/nmoTopoHlkozpgY7ljrvnmoTkvaDoqqzlho3opovkuobvvIzkuIrmrKHkuIDliKXvvIzluIzmnJvlvoDlvozkuI3opoHlho3opovpnaLkuobvvIznhKHms5Xmg7Plg4/lho3opovliLDkvaDmiJHnmoTlv4Pmg4XmnIPmnInlpJropIfmnYLjgII8L3A+CjxwPuS4jemBju+8jOmChOaYr+imgeWlveWlveisneisneS9oO+8jOisneisneS9oOeahOmZquS8tO+8jOWxseawtOS4gOeoi++8jOW3suaYr+iQrOW5uOOAgjxicj4K5oSf6Kyd5L2g6K6T5oiR5Zyo5aSn5a245pmC5YWJ5pyJ5LqG55uu5qiZ77yM6K6K5b6X5pu05aW944CCPGJyPgrmhJ/orJ3kvaDvvIzntabkuobmiJHmhJvoiIfooqvmhJvnmoTog73lipvvvIzorpPmiJHpgYfopovmm7TlrozmlbTnmoToh6rlt7HjgII8L3A+CjxwPuWFtuWvpuaIkeaXqeWwseefpemBk+S4jeWPr+iDveS6hu+8jDxicj4K5oiR5pep6Kmy5pS+5LiL5LqG77yM6KG55piv6YGO5Y6755qE6KiY5oa25ZKM5om/6Ku+5ouW6JGX5oiR5LiN6IKv6K6T5oiR5Zqu5YmN6LWw5Y6744CCPGJyPgrmspLpl5zkv4LkuobvvIzmiJHlgJHnuL3opoHlkYrliKXoiIrnmoTkurrmiY3og73njbLlvpfmlrDnmoTnlJ/mtLvjgILnva7mrbvlvoznlJ/jgII8L3A+CjxwPuaIkeefpemBk++8jOWFtuWvpuWkmuW5tOWQju+8jOmAmeauteaEn+aDheS7jeacg+aYr+aIkeeahOS4gOWAi+W/g+e1kO+8jDxicj4K5YW25a+m5aSa5bm05ZCO77yM5LiA5YiH5Lmf5LiN6YeN6KaB5LqG77yM5LiN5LuL5oSP5b+D6KOh55WZ5LiA5aGK5Zyw57Wm6YGO5Y6755qE5L2g5oiR44CCPC9wPgo8aDMgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IuWIpSI+PHNwYW4+MS4yIOWIpTwvc3Bhbj4KICA8YSBocmVmPSIjJWU1JTg4JWE1IiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDM+PHA+55Sf6Zui5q275Yil77yMMjAg5bm055qE5pyr5qKi77yM5bmz5a6J5aSc6YKj5aSp77yM5Lmf5piv6ICD56CU55qE56ys5LiA5aSp44CC6YKj5pma77yM5oiR5YCR5LiA5YCL5aSn5a245Zub5bm05pyd5aSV55u46JmV55qE5a6k5Y+L5YWE5byf77yM6YG45pOH5LqG54eS54Kt77yM5pON77yM55yf5LuW5aq95YK76YC877yB6Kqq5aW955qE6ICD56CU5b6M4oCc5oW25Yqf5a604oCd5ZGi77yM6YKE562J6JGX5ZKM5L2g5ZC554mb6YC85ZGi44CCPC9wPgo8cD7ot6jlubTliY3kuIDlkajvvIzlub7lgIvlhYTlvJ/lnKjlvq7kv6EgUVEg576k6KOh57Wm5L2g55m85raI5oGv6YO95LiA55u05LiN5Zue77yM55u05Yiw6Leo5bm06YKj5pma5oOz5omT6Zu76Kmx57Wm5L2g5ZC55ZC554mb6YC877yM5b6u5L+hIFFRIOmbu+ipsemDveaJk+S4jemAmu+8jOWwseaEn+imuuS4jeWwjeWLgeS6huOAgueUseaWvOavlOi8g+aZmuS6hu+8jOaDs+iRl+esrOS6jOWkqeWGjeaJk+mbu+ipsee1puS9oOeIuOWVj+WVj+aDheazge+8jOaIkeWSjOWwj+izgOWFiOW+jOaJk+mBjuWOu++8jOebtOaOpeaEo+S9j+S6hu+8jOS9oOeIuOeahOiqnuawo+iuk+S6uuW/g+eWvOOAgumCo+WkqeeahOaKq+iWqeWmguWQjOWavOign+OAgjwvcD4KPHA+5LmL5b6M5ZGi77yM5L2g54i454i454K65pW45LiN5aSa55m855qE5bm+5qKd5pyL5Y+L5ZyI6YO95piv5Zyo6KGo6YGU5oOz5L2g44CCPC9wPgo8cD7lhYTlvJ/vvIzkuIDot6/otbDlpb3vvIzmraTliLvmspLmnInkvaDmhJvnmoTliKnnvqTvvIzpu57pmrvpm5nlm43pgIHkvaDvvIzmsLjpgaDmh7flv7XjgII8L3A+CjxoMyBjbGFzcz0iaGVhZGluZy1lbGVtZW50IiBpZD0iaGVhZGluZyI+PHNwYW4+MS4zICZhbXA7PC9zcGFuPgogIDxhIGhyZWY9IiNoZWFkaW5nIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDM+PHA+MjAg5bm05ZGi5Lmf5LiN5piv5rKS5pyJ5pS2542y77yM6YKj5q615pmC6ZaT5LiA5YCL5Lq655iL54uC5Yqg54+t44CCPGJyPgrpg6jploDnmoTmoLjlv4Pku6Pnorzlub7kuY7pg73mmK/miJHlnKjntq3orbflhKrljJblkozmlrDlop7lip/og73vvIzkuZ/lvpfku6XmiqzmhJvmiJDngrrplovnmbzntYTntYTplbfjgII8YnI+CumChOW4tuS6hiAyMCDnmoTlr6bnv5LnlJ/vvIzku47mnIDln7rnpI7nmoTplovlp4vmlZnku5blgJHvvIjnnJ/nmoTntK/jgILvvInvvIzlj6/mg5zmnIDlvoznlZnkuIvnmoTmspLlub7lgIvvvIzlpKrpgY7mlrzmta7ouoHkuobjgII8L3A+CjxwPueEtuW+jOS5n+WtuOacg+S6huWBmumjr++8jOiAjOS4lOizo+ebuOWPo+WRs+mDvemChOWPr+S7pe+8jOWPquWPr+aDnOaykuiDvee1puWlueWBmuS6huOAgjwvcD4KPHA+5oiR77yM5LiN6YGO5piv5LiA5LuL5pmu6YCa5Lq677yMPGJyPgrnlJ/mtLvvvIzpnIDopoHmsonmvrHjgII8L3A+CjxoMiBjbGFzcz0iaGVhZGluZy1lbGVtZW50IiBpZD0iMjAyMSI+PHNwYW4+MiAyMDIxPC9zcGFuPgogIDxhIGhyZWY9IiMyMDIxIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDI+PGJsb2NrcXVvdGU+CjxwPuWvq+WIsOmAmeWQp++8jOimgeeGsemjr+S6hu+8jOW5tOW6leWGjeS+hiAmaGVsbGlwOzwvcD4KPC9ibG9ja3F1b3RlPgo8cD7lj4jplovlp4vmib7lm57oh6rlt7HvvIzlkozoh6rlt7HlgZrmnIvlj4vvvIzorpPoh6rlt7Hplovlv4PnnJ/mmK/kuIDku7blubPlh6HnmoTlgYnkuovjgII8L3A+CjxibG9ja3F1b3RlPgo8cD4yMDIyLjAxLjAzPGJyPgrkvoblkKfvvIwyMDIyIOW5tOWFg+aXpuWBh+acn+eahOacgOW+jOS4gOWkqe+8jOWvq+WujCAyMSDlubTnuL3ntZDvvIjmtYHmsLTos6zvvIk8L3A+CjwvYmxvY2txdW90ZT4KPHA+4oCc55u06YGT55u45oCd5LqG54Sh55uK77yM5pyq5aao5oOG5oK15piv5riF54uC4oCd77yM5Lul54K65pyD5riF54uC5aSa5bm077yM5a+m6Zqb55yf5piv5LqG54Sh55uK44CCPC9wPgo8cD7mrbLmnIjlm6DpnZLmmKXmhajnhLbku6XotbTogIzmm7TliqDpnZzlpb3vvIzkuJbplpPlm6DlsJHlubTmjLrouqvlmq7liY3ogIzmm7TliqDnkbDpupfjgILln7flv7XntYLlsIfmlaPljrvvvIzmg5/lloToiIfmhJvnlZnlrZjjgILoh6rnhLbnlZnkuI3kvY/nhKHpnIDlvLfmsYLvvIznlbbnhLbopoHlmq7liY3otbDllYrjgILmh4LlvpfmlL7kuIvvvIzlpKfmpoLmmK/pgJnlubTmlLbnqavmnIDlpKfnmoTmnbHopb/vvIzlvLXmhJvnjrLmm77lr6vkuIvvvJrigJznnJ/mraPnmoTmiJDnhp/vvIzlpKfmpoLlsLHmmK/llpzmraHnmoTmnbHopb/vvIzpgoTmmK/llpzmraHvvIzoobnmmK/kuI3lho3lvLfmsYLmk4HmnInkuobvvIzlrrPmgJXnmoTmnbHopb/pgoTmmK/lrrPmgJXvvIzoobnmmK/mlaLmlrzpnaLlsI3kuobjgILigJ08L3A+CjxwPuS6uueUn+S9leWFtuefre+8jOaHieipsuimgea0u+W+l+iHquWcqOS4gOm7nu+8jOS6i+iIh+mhmOmBleWPiOS9leWmqOOAgjwvcD4KPHA+6aGN77yMMjEg5bm05YW25a+m5Lmf5pyJ55m855Sf6Kix5aSa5LqL77yM5L2G5piv5oiR5LiN5LiA5a6a6YO96KiY5b6XICZoZWxsaXA7PC9wPgo8cD7lubTliJ3vvIzlkowgd2PjgIF6YyDku44gRm94Y29ubiDmkKzlh7rkvobkuIDotbflkIjnp5/vvIzlu5rol53lpKfmnInnsr7pgLLvvIzkuIDotbfnjqnogI3vvIzluqbpgY7mnInoqLHlpJrlv6vmqILnmoTmmYLlhYnjgII8L3A+CjxwPuWcqCBGb3hjb25uIOeahOW3peS9nOS4iuWRou+8jOS5n+WNgeWIhumghuWIqe+8jOS4iuWNiuW5tOaPm+S6huaWsOeahOi+puWFrOWupO+8jOaWsOi+puWFrOWupOeahOijneS/ruWRgOahjOakheepuuiqv+acg+itsOWupOeahOS9iOe9ruetieetiemDveaYr+S4gOaJi+aJk+eQhu+8jOiqquWvpuipseeci+WIsOaWsOi+puWFrOWupOW7uuaIkOmChOigu+acieaIkOWwseaEn+eahOOAgueEtuW+jOS7iuW5tOWPiOW4tuS6huS4gOaJueaWsOS6uu+8jOS5n+mWi+Wni+aIkOeCuumdouippuWumO+8jOmdouippuS6huW+iOWkmuS6uu+8jOacieaZguWAmeWcqOmdouippuS4reacg+WBj+WQkeaWvOaKgOihk++8jOacieaZguWAmeWNu+ihueaYr+WBj+WQkeaWvOiBiuWkqeOAguS7peWJjeiiq+aCsuWCt+Whq+a7v+eahOaXpeWtkO+8jOaIkeS4jeWcqOS5juWKoOePre+8jOmDveaYr+aLiea7v+eahO+8jOaFouaFouWcsOi1sOWHuuS+huWQju+8jOW4tuaWsOS6uuS5n+W+iOe0r++8jOmChOimgemdouippu+8jOmChOimgeeuoeeQhumDqOmWgOeahOWkp+Wwj+S6i+mghe+8jOmWi+Wni+WKm+S4jeW+nuW/g++8jOaDs+imgeabtOWkmueahOS8keaBr+aZgumWk++8jOWOu+imi+imi+aci+WPi++8jOWQueWQueeJm+mAvO+8m+S5n+aDs+eci+eci+abuO+8jOWvq+Wvq+Wtl++8jOS6q+WPl+WSjOiHquW3seebuOiZleeahOaZgumWk+OAgjwvcD4KPHA+57WC5pa85Zyo5ZyL5oW26YGO5b6M77yM5LiA5YCL5qmf5pyD5oiR6Lez5qe95LqG77yM6Zui6ZaL5LqGIEZveGNvbm7vvIzmnInmhI/mgJ3nmoTkuovvvIzkuIrljYjmiJHpgoTlnKjlr4zlo6vlurfpnaLoqabliKXkurrvvIzkuIvljYjmiJHlsLHooqvliKXkurrpnaLoqabvvIzlk4jlk4jlk4jvvIzkurrnlJ/mnInkupvkuovnnJ/nmoTlvojlpYflppnjgII8L3A+CjxwPumboumWi+aZgu+8jOacieW+iOaYjumhr+aEn+WPl+WIsOWQjOS6i+eahOS4jeaNqO+8jOiomOW+l+S4gOasoeWcqOi3r+S4iu+8jOacieWAi+WtuOWmueWSjOaIkeiqquS6huS4gOWPpeipse+8jOKAnOWtuOmVt++8jOS4jeW4jOacm+S9oOi1sOKAne+8jOiqquWvpuipseigu+aEn+WLleeahOWTiOWTiOWTiOOAguWPpuWklu+8jOS4u+euoeS5n+aYr+W+iOS4jeaNqOW+l+iuk+aIkei1sO+8jOWTju+8jOWcqCBGb3hjb25uIOW3peS9nOWFqeW5tO+8jOaFouaFouaIkOmVt+i1t+S+hu+8jOecn+eahOmbouS4jemWi+aFtuWTpeeahOagveWfue+8jOWNgeWIhuaEn+isneS7lu+8jOacgOW+jOWSjOS7lueahOiBiuWkqeS7luiqquS6huS4gOWPpeipse+8jOecn+eahOiuk+aIkeegtOmYsu+8jOS7luiqrOKAnOaIkeW+iOmWi+W/g+S9oOaIluiAheWFtuS7luS7jumAmeijoembouiBt+eahOmDveWPr+S7peaJvuWIsOabtOWlveeahOW3peizh++8jOeVouern+WvjOWjq+W6t+WwsemAmeaoo34g54S25b6M5L2g6KGo54++55yf55qE5b6I5qOS77yM5Yiw5paw5YWs5Y+45Lmf6KaB57m857qM5Yqg5rK5PHN1Yj7ku6XlvozokL3prYTkuobmspLmnInkurropoHkvaDvvIzlho3ot5/miJHoqqog5ZOI5ZOIIOmaqOaZguatoei/juWEquengOeahOS6uuWbnuatuCA6ROKAneecn+eahOi2heaEn+WLle+8jOaIkeefpemBk+mAmeWFqeW5tOS7luWwjeaIkemDveaMuuWatOagvO+8jOeVtueEtuaIkeiHquW3seWwjeiHquW3seS5n+aMuuWatOagvO+8jOaJjeacg+acieaFtuWTpeWwjeaIkemAmem6vOeahOS/oeS7u++8jOS7gOm6vOS6i+mDveaUvuW/g+S6pOe1puaIkeOAguaJgOS7peaIkeaHieipsue5vOe6jOWKoOayue+8jOaIkOeCuuabtOWlveeahOiHquW3sTwvc3ViPjwvcD4KPHA+5L6G5Yiw5paw5YWs5Y+477yM5rKS5YGa5YWo5qOn5LqG77yM5oOz5bCI6ZaA5YGa5YmN56uv6ZaL55m877yM5aSn5a245a6k5Y+L77yM6I+v5ZOl5YWn5o6o5oiR55qE77yM5omA5Lul6Z2i6Kmm5LmL6aGe6YO95oy657Ch5Zau77yM5L6G6YCZ6YKK5ZCO77yM5Zug54K65bCP5YWs5Y+46ZaL55m86KaP56+E5ZWl55qE6YO95rKS5pyJ5Zq05qC855qE6KaB5rGC77yM5aSn5a626YO95oy66Zqo5oSP55qE77yM5LiK57Sa5Li7566h562J6YO95oy65aW955qE77yM5Lmf5pyJ6ZuZ5LyR77yM57i95LmL6YCZ5YCL6ZqO5q615oy65ru/5oSP55qE77yMMjEg5bm0IDEyIOaciCAzMSDml6XvvIzmnIDlvozkuIDlpKnvvIzkuLvnrqHnqoHnhLbnmbzkuKrooajntabmiJHvvIzoqqzloavkuIDkuIvvvIzntabkvaDnlLPoq4vmj5DliY3ovYnmraPvvIznnJ/kuI3miLPlmLvlmLvjgII8L3A+CjxwPuS+huWFrOWPuOeahOesrOS4gOWkqeWwsemWi+Wni+aLieS7o+eivO+8jOmFjee9rueSsOWig++8jOeEtuW+jOWwsemWi+Wni+mWi+eZvO+8n++8gempmuS6hu+8jOS4jemBjumChOWlve+8jOmgreWkqeaZmuS4iuWcqCBCIOermeS4iuWIt+imlumgu+WIt+WIsCAzIOm7nuWkmu+8jOWkp+amgueUqOS6huS4gOWAi+aYn+acn+W3puWPs+WwseWPr+S7pei3n+mAmeWAi+mgheebruS6hu+8jDIyIOW5tOW+gOW+jOeahOipse+8jOWkp+amguacg+abtOWKoOWwiOazqOS6juWJjeerr+mWi+eZvO+8jOS9huaYr+mWkeS4i+S+huWQju+8jOaHieipsuWPiOacg+WOu+eci+eci+W+jOerr+eahOadseilv+mChOacieaTjeS9nOezu+e1semCo+W5vuWkp+S7tuOAgjwvcD4KPHA+6Zmk5LqG5bel5L2c5LmL5aSW55qE6Kmx77yM5YW25a+m5Lmf5pyJ5Lqb6Ieq5bex55qE6ZaL5rqQ6aCF55uu77yM6YCZ5Lqb6aCF55uu55qE6ZaL5rqQ5Ye655m86bue6YO95Ye66Ieq6Ieq5bex55qE5pel5bi455Sf5rS75a2457+S5Lit5oiW6ICF6IiI6Laj44CC55uu5YmN6IiI6Laj6bue6YKE5Zyo55qE5bCx5piv5Lul5LiL5LiJ5YCL77yaPC9wPgo8dWw+CjxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTHJ1aWhhby9jb3MtYWxidW0iIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPmNvcy1hbGJ1bTxpIGNsYXNzPSJmYS1zb2xpZCBmYS1leHRlcm5hbC1saW5rLWFsdCBmYS14cyBtcy0xIHRleHQtc2Vjb25kYXJ5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0xydWloYW8vd2F0ZXJtYXJrIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj53YXRlcm1hcms8aSBjbGFzcz0iZmEtc29saWQgZmEtZXh0ZXJuYWwtbGluay1hbHQgZmEteHMgbXMtMSB0ZXh0LXNlY29uZGFyeSIgYXJpYS1oaWRkZW49InRydWUiPjwvaT48L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9McnVpaGFvL0ZpeEl0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj5GaXhJdDxpIGNsYXNzPSJmYS1zb2xpZCBmYS1leHRlcm5hbC1saW5rLWFsdCBmYS14cyBtcy0xIHRleHQtc2Vjb25kYXJ5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYT48L2xpPgo8L3VsPgo8cD7lgLzlvpfkuIDmj5DnmoTmmK/mnIDlvozkuIDlgIvpoIXnm64gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0xydWloYW8vRml4SXQiIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPkZpeEl0PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPu+8jOaYryBIdWdvIOeahOS4gOWAi+S4u+mhjO+8jOS5n+WwseaYr+ebruWJjeWNmuWuouS9v+eUqOeahOS4u+mhjO+8jOWOn+mgheebruaYryA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGlsbG9uenEvTG92ZUl0IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj5Mb3ZlSXQ8aSBjbGFzcz0iZmEtc29saWQgZmEtZXh0ZXJuYWwtbGluay1hbHQgZmEteHMgbXMtMSB0ZXh0LXNlY29uZGFyeSIgYXJpYS1oaWRkZW49InRydWUiPjwvaT48L2E+77yM55W25pmCIEhleG8g5o+b5YiwIEh1Z28g55qE5pmC5YCZ77yM6YG455qEIExvdmVJdO+8jOeUqOS6huS4gOauteaZgumWk+W+jOaJjeeZvOePvumAmeWAi+mgheebriAyMCDlubTkuK3lsLHlt7LntpPlgZzmm7TkuobvvIzkvYbmmK/nm67liY3mnInlvojlpJrnmoQgaXNzdWUg5Y+N6aWL5LqG5b6I5aSaIEJVR++8jOWMheaLrOaIkeS5n+WcqOS9v+eUqOS4reeZvOePvuS4gOS6myBCVUcg5Lul5Y+K5oOz5Yqg5LiA5Lqb5oiR5oOz6KaB55qE6ZyA5rGC77yM5oCd6ICD5LqG5LiA5LiL77yM5rG65a6a5oqK6YCZ5YCL6aCF55uu5bu257qM5LiL5Y6777yM5oiW6K646IO95bmr5Yqp5Yiw6YOo5YiG6YKE5Zyo5L2/55SoIExvdmVJdCDkuLvpoYznmoQgSHVnbyDnlKjmiLbjgILloIXmjIHkuobmlLnkuobkuIDlhanlgIvmnIjlvozvvIzlhbblr6bnmbznj77mnInmmYLlgJnlr6vku6PnorzkuZ/og73lg4/miZPpgYrmiLLkuIDmqKPlv6vmqILvvIzlgInluqvkuIog8J+MnyDmr5TnjovogIXkuIog8J+MnyDpgoTlv6vmqILjgILkv67oqILmlofmqpTnmoTpgY7nqIvvvIzkuZ/mioroi7Hoqp7lj4jnv7vlh7rkvobnlKjkuobvvIzmiJHoprrlvpfpgJnkupvpg73mmK/mraPmhYvnmoTvvIzmjLrlpb3nmoTvvIzluIzmnJvlsL3lv6vlnKjomY7lubTliY3mioogdjAuMi4xMiDnmbzlh7rkvobjgII8L3A+CjxibG9ja3F1b3RlPgo8cD7nsKHllq7nuL3ntZDkuIDkuIvvvJo8L3A+Cjx1bD4KPGxpPuW/g+aDheOAgeW/g+aAgeacieiuiuWlvTwvbGk+CjxsaT7pgYvli5XmmYLplpPlpKfluYXkuIvmu5E8L2xpPgo8bGk+54as5aSc5pmC6ZW35aSn5bmF5aKe5YqgPC9saT4KPGxpPuW3pei1hOeVpeacieWinuWKoO+8jOWtmOasvuayoeWPmOWTiOWTiOWTiOWTiDwvbGk+CjxsaT7nt6jnorzmlYjnjofnlaXmnInkuIvpmY08L2xpPgo8bGk+57eo56K85oCd57at5pyJ5aKe5by3PC9saT4KPGxpPue3qOeivOimj+evhOWMluacieWinuW8t++8jOeGn+aCiee3qOeivOW4uOimiyBTT1AK5pyA5b6MPC9saT4KPC91bD4KPC9ibG9ja3F1b3RlPgo8aHI+CjxibG9ja3F1b3RlPgo8dWw+CjxsaT7lrZjpkrHvvIHlrZjpkrHvvIHlrZjpkrHvvIE8L2xpPgo8bGk+5oiS54WZ77yB5oiS54WZ77yB5oiS54WZ77yBPC9saT4KPC91bD4KPC9ibG9ja3F1b3RlPgo8ZGl2IGNsYXNzPSJ0eXBlaXQiPjxkaXYgPjwvZGl2Pjx0ZW1wbGF0ZT48cHJlPlNPLCBTRUUgVSAjMjAyMC0yMDIxPC9wcmU+PC90ZW1wbGF0ZT4KPC9kaXY+</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2022-01-03 00:00:00\">更新于 2022-01-03&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/watermark/ class=post-nav-item rel=prev title=Lruihao/watermark><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/watermark</a><a href=/posts/lightbox/ class=post-nav-item rel=next title=Lightbox>Lightbox<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=\"toc-title encrypted-hidden\">目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=\"toc-content encrypted-hidden\" id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#2020>2020</a><ol><li><a href=#離>離</a></li><li><a href=#別>別</a></li><li><a href=#heading>&</a></li></ol></li><li><a href=#2021>2021</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none encrypted-hidden\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><link rel=stylesheet href=/css/page/7e98b2eeb64d081d620055122e9915a0.min.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/typeit@8.8.4/dist/index.umd.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/7e98b2eeb64d081d620055122e9915a0.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/7e98b2eeb64d081d620055122e9915a0.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/2020-2021/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/2020-2021/index.md",
    "content": "# 2020&2021 總結\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/years/2020-2021/  \n\n"
  },
  {
    "path": "years/2022/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2022 年度总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\" 虚度有时候才是人生的最高境界 \"><meta name=keywords content='总结'><meta itemprop=name content=\"2022 年度总结\"><meta itemprop=description content=\"虚度有时候才是人生的最高境界\"><meta itemprop=datePublished content=\"2022-12-17T01:01:30+08:00\"><meta itemprop=dateModified content=\"2023-01-06T12:32:30+08:00\"><meta itemprop=wordCount content=\"2020\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/2022/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2022 年度总结\"><meta property=\"og:description\" content=\"虚度有时候才是人生的最高境界\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2022-12-17T01:01:30+08:00\"><meta property=\"article:modified_time\" content=\"2023-01-06T12:32:30+08:00\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2022 年度总结\"><meta name=twitter:description content=\"虚度有时候才是人生的最高境界\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/2022/ title=\"2022 年度总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/posts/homebrew-npm/ title=\"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\"><link rel=next type=text/html href=https://lruihao.cn/posts/event-loop/ title=\"浏览器原理 - 事件循环\"><link rel=alternate type=text/markdown href=https://lruihao.cn/years/2022/index.md title=\"2022 年度总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"2022 年度总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/years\\/2022\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"总结\",\"wordcount\":2020,\"url\":\"https:\\/\\/lruihao.cn\\/years\\/2022\\/\",\"datePublished\":\"2022-12-17T01:01:30+08:00\",\"dateModified\":\"2023-01-06T12:32:30+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/2022/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/years/ title=年度总结>年度总结</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2022 年度总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>2022 年度总结</span></h1><p class=\"single-subtitle animate__animated animate__fadeIn\">找回自己</p></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2022-12-17 01:01:30\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2022-12-17>2022-12-17</time></span>&nbsp;<span title=\"更新于 2023-01-06 12:32:30\"><i class=\"fa-regular fa-calendar-check me-1\" aria-hidden=true></i><time datetime=2023-01-06>2023-01-06</time></span>&nbsp;<span title=\"2020 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 2100 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 5 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"2022 年度总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc encrypted-hidden\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#释然>释然</a></li><li><a href=#期待>期待</a></li><li><a href=#工作>工作</a><ol><li><a href=#主要工作>主要工作</a></li><li><a href=#工作目标>工作目标</a></li><li><a href=#收获>收获</a></li></ol></li><li><a href=#新冠末年>新冠末年</a></li><li><a href=#flags-in-2023>flags in 2023</a></li></ol></nav></div></div><div class=content id=content></div><fixit-encryptor><div class=fixit-decryptor-container><img class=fixit-decryptor-loading src=/images/loading.min.svg alt=\"decryptor loading\" width=48 height=48>\n<label for=fixit-decryptor-input title=密码><input type=password id=fixit-decryptor-input class=fixit-decryptor-input placeholder=\"🔑 二十四岁的某一天\">\n</label><button class=fixit-decryptor-btn><i class=\"fa-solid fa-unlock\" aria-hidden=true></i>进入</button><button class=fixit-encryptor-btn><i class=\"fa-solid fa-lock\" aria-hidden=true></i>重新加密</button></div><cipher-text data-password=2f27836dfb1424ec>PGJsb2Ne3b7f1529f105ff438c304cb38297248ff30e83ee8dae104aef4f9b04rcXVvdGUgY2xhc3M9ImJsb2NrcXVvdGUtY2VudGVyIj4KICDomZrluqbmnInml7blgJnmiY3mmK/kurrnlJ/nmoTmnIDpq5jlooPnlYwKPC9ibG9ja3F1b3RlPgo8aDIgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IumHiueEtiI+PHNwYW4+MSDph4rnhLY8L3NwYW4+CiAgPGEgaHJlZj0iIyVlOSU4NyU4YSVlNyU4NCViNiIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gyPjxwPuS7juesrOS4gOecvOeci+WIsOi/meWPpeivneW8gOWni++8jOS+v+W3suWGs+Wumui/meS4gOW5tOivpeaAjuS5iOi/h+S6huOAgjwvcD4KPHA+6L+H5Y675Lik5bm05Lit5oC76KeJ5b6X6Ieq5bex5aSx5Y675LqG6K645aSa5Lic6KW/5LqG77yM5Zug5q2k6ICM5oSf5Yiw6YGX5oa+77yM5oiW6K645aSx5Y6755qE5pys5bCx5LiN5bGe5LqO6Ieq5bex5ZGi77yf5pe26Ze05Zyo6L+Z5LiA5bm06YeM6K6p5oiR5a2m5Lya5LqG5pS+5LiL77yM5pS+5LiL5omn5b+177yM5pS+5LiL5LiN5YiH5a6e6ZmF44CC5oiR5byA5aeL5oOz5b+15aSa5bm05YmN55qE6Ieq5bex5LqG44CCPC9wPgo8cD7igJzlhYjniLHlt7HlkI7niLHkurrvvIzlhbvlpb3mgKfmoLzvvIzotrPlpJ/kvJjnp4Dlho3lpKfog4bmi6XmnInigJ3vvIzkuo7mmK/kuY7vvIzlvIDlp4vnnIvkuabvvIznnIvnlLXlvbHvvIxmcmVlIGNvZGUsIOWBmuS4gOS6m+iHquW3seaDs+WBmueahOS6i++8jOaUvue6te+8jOWQg+WWne+8jOWPluaCpuiHquaIkeOAgjwvcD4KPHA+55yL5LqG5aSn5qaC5pyJ5LiJ5Y2B5aSa6YOo55S15b2x5ZCn77yM5ryr5aiB55qE5bGF5aSa77yM6L+Y5pyJ5Lqb55S16KeG5Ymn5Yqo5ryr562J77yM55yL5Lmm55qE5pe26Ze05q+U6L6D5bCR77yM5Lmf5Y+q6Zu25pWj5Zyw55yL5LqG5LiA5pys56We6ZuV5L6g5L6j5ZKM6YOo5YiGIEVTNiDnq6DoioLjgILlnKjlvIDmupDpobnnm64gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2h1Z28tZml4aXQvRml4SXQiIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPkZpeEl0PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPiDkuIrkuZ/oirHkuoborrjlpJrml7bpl7TvvIznlJroh7Pogp3liLDov4flh4zmmajlm5vngrnvvIzkuIDlubTmnaXmlLbojrfkuoYgMTYwIOWkmuS4qiBzdGFyLCDkuIvljYrlubTliJvnmoTnlKjmiLfkuqTmtYHnvqTkuZ/mnIkgNDAg5aSa5Liq5Lq65LqG77yM5oC75LmL77yM5pe26Ze05pyJ5LqG5raI6ICX77yM55WZ57uZ5oiR6IOh5oCd5Lmx5oOz55qE5pe26Ze05Lmf5bCx5bCR5LqG6K645aSa44CCPC9wPgo8cD7igJzku4DkuYjmmK/msLjov5zvvIzlpLHljrvlsLHmmK/msLjov5zigJ08L3A+CjxwPuino+mTg+i/mOmhu+ezu+mTg+S6uu+8jOS4gOWPpeKAnOeUn+aXpeW/q+S5kOKAnei2s+efo++8jOW/g+e7k+W3sueEtuino+W8gOOAguWNsOixoeS4reeahOeIseaDheWlveWDj+mhtuS4jeS9j+i/meaXtumXtO+8jOmCo+S6m+W/mOS4jeaOieeahOS6uuWSjOS6i++8jOWygeaciOmDveW3suabv+aIkei9u+aPj+a3oeWGme+8jOaXtumXtOayu+WlveS6huaIkeeahOWGheiAl++8jOaIkeaJvuWbnuS6huaIkeiHquW3se+8jOWboOiAjOivr+aJk+ivr+aSnuaYjueZveS6huS4gOS6m+mBk+eQhu+8muKAnOS9oOaEv+aEj+aUr+S7mOS7o+S7t++8jOS7luacquW/heeFp+WNleWFqOaUtu+8jOS9oOWPr+S7pee/u+Wxsei2iuWyre+8jOWIsOi+vuaXtuS5n+iuuOiQveepuu+8jOS6uuS6uumDveS4gOagt++8jOWPr+S7pemBl+iQveS4gOWIh++8jOS4jeimgeW8hOS4ouiHquW3seOAguKAnDwvcD4KPGgyIGNsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmnJ/lvoUiPjxzcGFuPjIg5pyf5b6FPC9zcGFuPgogIDxhIGhyZWY9IiMlZTYlOWMlOWYlZTUlYmUlODUiIGNsYXNzPSJoZWFkaW5nLW1hcmsiPgogICAgPHN2ZyBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiIHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNy43NzUgMy4yNzUgMS4yNS0xLjI1YTMuNSAzLjUgMCAxIDEgNC45NSA0Ljk1bC0yLjUgMi41YTMuNSAzLjUgMCAwIDEtNC45NSAwIC43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4IDEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwyLjUtMi41YTIuMDAyIDIuMDAyIDAgMCAwLTIuODMtMi44M2wtMS4yNSAxLjI1YS43NTEuNzUxIDAgMCAxLTEuMDQyLS4wMTguNzUxLjc1MSAwIDAgMS0uMDE4LTEuMDQyWm0tNC42OSA5LjY0YTEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwxLjI1LTEuMjVhLjc1MS43NTEgMCAwIDEgMS4wNDIuMDE4Ljc1MS43NTEgMCAwIDEgLjAxOCAxLjA0MmwtMS4yNSAxLjI1YTMuNSAzLjUgMCAxIDEtNC45NS00Ljk1bDIuNS0yLjVhMy41IDMuNSAwIDAgMSA0Ljk1IDAgLjc1MS43NTEgMCAwIDEtLjAxOCAxLjA0Mi43NTEuNzUxIDAgMCAxLTEuMDQyLjAxOCAxLjk5OCAxLjk5OCAwIDAgMC0yLjgzIDBsLTIuNSAyLjVhMS45OTggMS45OTggMCAwIDAgMCAyLjgzWiI+PC9wYXRoPjwvc3ZnPgogIDwvYT4KPC9oMj48cD7ov5vogIzkuI3nn6Xku47kvZXml7blvIDlp4vvvIzlj4jlvIDlp4vmnInkuobmnJ/lvoXjgII8L3A+CjxwPuWbveW6huacn+mXtO+8jOWbnuWutuS6huS4gOi2n++8jOWSjOiDluWtkOiSmemVm+Wwj+iBmuS6huS4gOWkqeOAguWSjOiDluWtkOWcqOmFkuW6l+eVheiwiOWIsOWHjOaZqOS4ieeCue+8jOS5i+WQjuaEn+aCn+W+iOWkmu+8jOe+oeaFleWPr+S7peaXqeaXqeWcqOWwj+WOv+WfjuinhOWIkuS4gOeUn++8jOi/meaYr+WkmuWwkeS6uuW/meeijOS4gOeUn+aDs+imgeeahOe7k+aenOOAgjwvcD4KPHA+5LmL5ZCO6YCa6L+H6IOW5a2Q5ZKM5LuW5aWz5pyL5Y+L6K6k6K+G5LqG5bCP6b6Z77yM5Zue5rex5Zyz5ZCO5Y675om+5LqG5aW577yM55+t5pqC5Yeg5aSp55u45aSE77yM5b+D5Yqo5LqG77yM5YW25a6e5oiR5LiA55u05LiN55u45L+h5LiA6KeB6ZKf5oOF55qE77yM5L2G5pyJ5Lqb5Lq677yM5L2g6KeB56ys5LiA55y85bCx5bey57uP5Yaz5a6a5LqG5L2g5Lya5LiN5Lya5Zac5qyi5LiK5aW544CC5ZCO5p2l5aW55Zue6ZW/5rKZ5LqG77yM5oiR56uf5Lya5Zyo5qKm6YeM5oOz6LW35aW577yM6ICM5ZCO5Z2m546H5Zyw6KGo6L6+5LqG6Ieq5bex55qE5Zac5qyi77yM5aW56K+05biM5pyb5oiR5b2T6Z2i6K+06L+Z5Lqb77yM5oiR5Lmf5LiN5oOz6K6p5aW55LiA55u05Ye6546w5Zyo5oiR5qKm6YeM77yMMTEg5pyI5bqV5oq95LqG5Liq5ZGo5pyr5Y676ZW/5rKZ77yM54S25ZCO5oiR5Lus5Zyo5LiA6LW35LqG44CC6YKj5aSpIDExIOaciCAyNiDml6Xlh4zmmajvvIzpmpTkuobkuIDlsYLnqpfluJjvvIzmjKHkvY/kuobmiJHnmoTntKflvKDjgILml6nmmajlnKjlpbnov5jmsqHphpLml7bvvIzmgoTmgoTlh7rpl6jkubDkuobmnZ/oirHvvIzov5jmnInlpbnmg7PlkIPnmoTojYnojpPjgILmiJHlkozoirHlupfogIHmnb/or7TluK7miJHmkK3kuIDmnZ/oirHlkKfvvIzpgIHnu5nmiJHlpbPmnIvlj4vvvIzku5bor7TpgqPlsLHnjqvnkbDlkKfvvIzmiJHor7Tlho3liqDkuIDmlK/lkJHml6XokbXvvIzlhbblrp7miJHmg7Pooajovr7nmoTmmK/luIzmnJvlkJHml6XokbXku6PooajmiJHnmoTnnJ/or5rvvIznjqvnkbDku6PooajniLHkvaDnmoTlvIDlp4vjgII8L3A+CjxwPuabvuaDs+i/h+S7peWQjuimgeWBmuS4gOS4quiiq+eIseS5i+S6uu+8jOWcqOiKseW6l+etieW+heeahOmCo+S4gOWIu+mSn++8jOaBjeeEtuWkp+aCn++8jOeIseS4juiiq+eIseS4gOebtOmDveaYr+ebuOS6kueahO+8jOS4jeWOu+eIseWPiOaAjuS8muaUtuiOt+eIseWRou+8nzwvcD4KPHA+6L+Y5piv5biM5pyb55Sf5rS75Lya5pyJ5oOK5Zac77yM5Zac5qyi6IO95pyJ5Zue5bqU44CCPC9wPgo8aDIgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IuW3peS9nCI+PHNwYW4+MyDlt6XkvZw8L3NwYW4+CiAgPGEgaHJlZj0iIyVlNSViNyVhNSVlNCViZCU5YyIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gyPjxwPuS5i+S6juW3peS9nO+8jOi/meS4gOW5tOW3peS9nOW8uuW6puS4i+mZjeiuuOWkmu+8jOWvueS6juaKgOacr+S4iueahOeyvui/m+ayoeacieWImuavleS4mumCo+S8muaEn+WPl+mCo+S5iOaYjuaYvu+8jOaUtuiOt+iHqueEtuaYr+acieeahO+8jOa9nOenu+m7mOWMlu+8jOe7huawtOmVv+a1geOAguWUr+S4gOS4jea7oeeahOWwseaYr++8jOWFrOWPuOeahOW8gOWPkeinhOiMg+mXrumimO+8jOWHoOS5juayoeaciee7n+S4gOeahOinhOiMg++8jOKAnOiDveeUqOWwseihjOKAneeahOeQhuW/teS4gOW8gOWni+iuqeaIkeW+iOS4jemAguW6lO+8jOaIkeS5n+WboOatpOaKiui/meS6m+aDs+azleWGmeWcqOS6hui9rOato+aKpeWRiueahOW7uuiuruS4re+8jOiZveeEtuW+l+WIsOS6hjxhIGhyZWY9ImltYWdlcy8yM18xNjczOTU4OTY4LnBuZyI+6JGj5LqL6ZW/77yM57uP55CG5ZKM5Li7566h55qE6IKv5a6aPC9hPu+8jOeEtuiAjOmaj+edgOW3peS9nOeahOaXpeW4uOi/m+ihjO+8jOivpemXrumimOi/mOaYr+ayoeacieW+l+WIsOino+WGs+OAgjwvcD4KPHA+5oiR5Lmf5oSP6K+G5Yiw5oiR5LiN6IO95YOP5Lul5YmN5LiA5qC35Lul5LiA5Liq6aKG5a+86ICF55qE6Lqr5Lu95Y676KaB5rGC546w5Zyo55qE5ZCM5LqL55Sa6Iez5Li7566h5p2l5Lil5qC85oyJ54Wn5p+Q56eN6KeE6IyD5a6M5oiQ5byA5Y+R77yM5riQ5riQ5Zyw77yM5oiR5b+N5L2P5LqG5oiR55qE5Luj56CB5by66L+r55eH77yM5oiR6IO95YGa55qE5Y+q5piv6KeE6IyD6KaB5rGC6Ieq5bex77yM55yL5Yiw5ZCM5LqL5Lus55qEIGRpcnR5IGhhY2sg5ZGi77yM5pyJ5pe26Ze06Ieq5bex5pS56L+H5p2l5bCx5aW944CC5Y2z5L6/5aaC5q2k77yM5oiR6L+Y5piv5biM5pyb5p2l5bm077yM5Y+v5Lul6YCa6L+H5p6B5rWL55+l6K+G5bqT6L+Z5Liq5paw5byA5Y+R55qE55+l6K+G5bmz5Y+w77yM5YiG5Lqr5LiA5Lqb5byA5Y+R5LiK55qE6KeE6IyD5L6b5aSn5a625Y+C6ICD44CCPC9wPgo8aDMgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IuS4u+imgeW3peS9nCI+PHNwYW4+My4xIOS4u+imgeW3peS9nDwvc3Bhbj4KICA8YSBocmVmPSIjJWU0JWI4JWJiJWU4JWE2JTgxJWU1JWI3JWE1JWU0JWJkJTljIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDM+PHA+MjAyMiDlubTnmoTkuIDkupvkuLvopoHlt6XkvZzvvJo8L3A+CjxvbD4KPGxpPlRlc3RtYW4g57O757uf5YmN56uv5byA5Y+R77ya5LyY5YyW5pW05L2T5biD5bGA77yM5Yig6Zmk5YaX5L2Z5Luj56CB77yb5a6M5oiQ5rWL6K+V6Lef6Liq5qih5Z2X5pS554mI77yb5a6M5oiQ5paw5aKe5oCn6IO95rWL6K+V5qih5Z2X5ZKM5o6l5Y+j5rWL6K+V5qih5Z2X5ZCE5Yqf6IO95byA5Y+R77yb5byA5Y+R6ISR5Zu+57yW6L6R5Zmo5o+S5Lu2IHZ1ZS1taW5kZXItZWRpdG9yLWV4dGVuZGVkIOeUqOS6jua1i+ivleeUqOS+i+iEkeWbvue8lui+keWPiuWxleekuu+8m+S/ruWkjea1i+ivlei/h+eoi+S4reWPjemmiOeahCBidWfjgII8L2xpPgo8bGk+WnRlc3RNb25rZXkg5qGM6Z2i56uv5bel5YW35byA5Y+R77ya5qC55o2uIFNEIOWSjCBVSSDorr7orqHph43mnoTpobnnm67vvIzlrozmiJDmlrDniYjmnKzlvIDlj5Hlubblj5HluIPoi6XlubLkuKrniYjmnKzvvJvop4TojIPmiZPljIXmtYHnqIvpgbXlvqogU2VtdmVyIOinhOiMg++8m+a1i+ivleaKpeWRiuWinuWKoOe9keeKtua1geeoi+Wbvu+8m+WPluW+l+aIkOaViO+8muWinuW8uui9r+S7tuS9v+eUqOS9k+mqjO+8jOaooeWdl+WMluS7o+eggeWinuWKoOS7o+eggeWPr+e7tOaKpOaAp+OAgjwvbGk+CjxsaT7mnoHmtYvnn6Xor4blupPlvIDlj5HvvJrlrozmiJDns7vnu5/mlbTkvZPluIPlsYDorr7orqHvvJvlrozmiJDnn6Xor4blupPpppbpobXlvIDlj5HvvJvlrozmiJDlkITnsbvlnovmlofmoaPor6bmg4XlhoXlrrnpobXpnaLlvIDlj5HjgILlubTlupXmlbTkvZPlvIDlj5HlrozlkI7lrozmiJDkuIrnur/jgII8L2xpPgo8L29sPgo8aDMgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IuW3peS9nOebruaghyI+PHNwYW4+My4yIOW3peS9nOebruaghzwvc3Bhbj4KICA8YSBocmVmPSIjJWU1JWI3JWE1JWU0JWJkJTljJWU3JTliJWFlJWU2JWEwJTg3IiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDM+PHA+5bm05Yid5YWl6IGM55qE5bm05bqm5bel5L2c55uu5qCH5piv5bC95b+r54af5oKJ5o6M5o+h6aG555uu5byA5Y+R6ZyA6KaB55qE5oqA5pyv5qCI77yM5bm26YG15b6q6KGM5Lia55u45YWz6KeE6IyD5Zyo6ZmQ5a6a5pe26Ze05YaF5a6M5oiQ5bel5L2c5Lit5ZCE6aG555uu6ZyA5rGC5byA5Y+R44CC5Zue5aS055yL77yM5Zyo5LiA5bm05bel5L2c5Lit5Z+65pys6L6+5oiQ55uu5qCH44CCPC9wPgo8aDMgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9IuaUtuiOtyI+PHNwYW4+My4zIOaUtuiOtzwvc3Bhbj4KICA8YSBocmVmPSIjJWU2JTk0JWI2JWU4JThlJWI3IiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDM+PHVsPgo8bGk+5Y+L5aOw56eR5oqA5pyA5L2z5paw5Lq65aWWPC9saT4KPC91bD4KPGgyIGNsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmlrDlhqDmnKvlubQiPjxzcGFuPjQg5paw5Yag5pyr5bm0PC9zcGFuPgogIDxhIGhyZWY9IiMlZTYlOTYlYjAlZTUlODYlYTAlZTYlOWMlYWIlZTUlYjklYjQiIGNsYXNzPSJoZWFkaW5nLW1hcmsiPgogICAgPHN2ZyBjbGFzcz0ib2N0aWNvbiBvY3RpY29uLWxpbmsiIHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNy43NzUgMy4yNzUgMS4yNS0xLjI1YTMuNSAzLjUgMCAxIDEgNC45NSA0Ljk1bC0yLjUgMi41YTMuNSAzLjUgMCAwIDEtNC45NSAwIC43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4IDEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwyLjUtMi41YTIuMDAyIDIuMDAyIDAgMCAwLTIuODMtMi44M2wtMS4yNSAxLjI1YS43NTEuNzUxIDAgMCAxLTEuMDQyLS4wMTguNzUxLjc1MSAwIDAgMS0uMDE4LTEuMDQyWm0tNC42OSA5LjY0YTEuOTk4IDEuOTk4IDAgMCAwIDIuODMgMGwxLjI1LTEuMjVhLjc1MS43NTEgMCAwIDEgMS4wNDIuMDE4Ljc1MS43NTEgMCAwIDEgLjAxOCAxLjA0MmwtMS4yNSAxLjI1YTMuNSAzLjUgMCAxIDEtNC45NS00Ljk1bDIuNS0yLjVhMy41IDMuNSAwIDAgMSA0Ljk1IDAgLjc1MS43NTEgMCAwIDEtLjAxOCAxLjA0Mi43NTEuNzUxIDAgMCAxLTEuMDQyLjAxOCAxLjk5OCAxLjk5OCAwIDAgMC0yLjgzIDBsLTIuNSAyLjVhMS45OTggMS45OTggMCAwIDAgMCAyLjgzWiI+PC9wYXRoPjwvc3ZnPgogIDwvYT4KPC9oMj48cD7nlqvmg4XnrLznvannmoTnrKzkuInlubTvvIzmr4/ml6XkuIDmo4DvvIzlt7Lnu4/miJDkuobkuaDmg6/vvIzpmo/nnYDkuK3po47pmanmpoLlv7XnmoTlj5bmtojvvIzlhajmsJHmoLjphbjngrnmkqTnprvvvIzlj5bmtojot6jln47luILokL3lnLDmjaHlj4rmiqXlpIfvvIzkuIvnur/ooYznqIvnoIHvvIzlkYrliKvlgaXlurfnoIHkuZ/mjIfml6Xlj6/lvoXvvIzov5nlnLrlp4vkuo4gMTkg5bm05bqV55qE5aSn5Z6L57qq5b2V54mH77yM5Y+v5Lul55yL5Yiw5aSn57uT5bGA55qE5bqP56ug5LqG44CCPC9wPgo8cD7pqazmlL7ljZflsbHvvIzliIDmnqrlhaXlupPvvIzlsZ7kuo7lpaXlr4blhYvmiI7nmoTmlrDlhqDnlqvmg4XlkI7ml7bku6PmraPlnKjmi4nlvIDluLfluZXvvIzlubbov4XpgJ/mianlvKDvvIzouqvovrnlvojlpJrmnIvlj4vpg73pmLPkuobjgILluIzmnJvmnaXlubTmmKXmmpboirHlvIDml7bvvIzmiJHlj6/ku6XntKfntKfmi6XmirHllpzmrKLnmoTkurrjgII8L3A+CjxwPuWFheWunuiAjOWPiOW5s+a3oeWcsOi/h+WujOi/meS4gOW5tO+8jOe6teeEtuacieaJgOino+iEse+8jOacieaJgOaEn+aCn++8jOacieaJgOaUtuiOt++8jOaJvuWbnuiHquW3se+8jOS9huaYr+WOn+adpeeahOiHquW3seaYvueEtuW3suWSjOi/meS4quW5tOm+hOauteS4jeWkp+ebuOespuOAguaYjuW5tO+8jOW+l+WPmOW+l+abtOWlve+8jOW8gOWni+iHquW+i++8jOaUkumSse+8jOePjeaDnOaLpeacieeahOS4gOWIh+W5tuS4uuS5i+WKquWKm+OAgjwvcD4KPHA+S2VlcCByZWFsLCBmZWVsIGFsaXZlLjwvcD4KPGhyPgo8YmxvY2txdW90ZT4KPHA+MjAyMi4xMi4zMTwvcD4KPHA+5Zyj6K+e6IqC5YmN5Lik5aSp77yM5bCP6b6Z6Ziz5LqG77yM5oiR56uL6ams5Lmw5LqG5b2T5aSp5pyA5pep55qE6auY6ZOB5Y676ZW/5rKZ77yMNSDngrnlpJrlsLHotbfluorljrvmt7HlnLPljJfjgILliLDplb/mspnlkI7vvIzmr4/lpKnnu5nlsI/pvpnlgZrppa3vvIzmiZPmiavljavnlJ/vvIzng6fmsLTnrYnvvIzlsLHov5nmoLfov4fkuoYgNSDlpKnvvIzlpbnkuZ/lpb3lpJrkuobkuI3ng6fkuobvvIzmiJHlsLHlm57mt7HlnLPkuobjgILkuI3lh7rmhI/lpJbmiJHkuZ/lj5jmiJDlsI8g8J+QkSDkurrkuobvvIzlm57mt7HlnLPmtYvpmLPlkI7nrKzkuozlpKnmiJHlj4jmtYvkuobkuIDpgY3ovazpmLTkuobjgII8L3A+CjxwPjIwMjAg5bm06L+H5Y675LqG77yMMjAyMiDlubTkuZ/pqazkuIropoHov4fljrvkuobvvIzluIzmnJsgMjMg5bm077yM5Lya5pu05aW977yM5aW95ZCX77yf5aW95LiN5aW977yfPGJyPgrlpb3nmoTvvIzmi5zmi5wg8J+RizwvcD4KPC9ibG9ja3F1b3RlPgo8aDIgY2xhc3M9ImhlYWRpbmctZWxlbWVudCIgaWQ9ImZsYWdzLWluLTIwMjMiPjxzcGFuPjUgZmxhZ3MgaW4gMjAyMzwvc3Bhbj4KICA8YSBocmVmPSIjZmxhZ3MtaW4tMjAyMyIgY2xhc3M9ImhlYWRpbmctbWFyayI+CiAgICA8c3ZnIGNsYXNzPSJvY3RpY29uIG9jdGljb24tbGluayIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03Ljc3NSAzLjI3NSAxLjI1LTEuMjVhMy41IDMuNSAwIDEgMSA0Ljk1IDQuOTVsLTIuNSAyLjVhMy41IDMuNSAwIDAgMS00Ljk1IDAgLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMTggMS45OTggMS45OTggMCAwIDAgMi44MyAwbDIuNS0yLjVhMi4wMDIgMi4wMDIgMCAwIDAtMi44My0yLjgzbC0xLjI1IDEuMjVhLjc1MS43NTEgMCAwIDEtMS4wNDItLjAxOC43NTEuNzUxIDAgMCAxLS4wMTgtMS4wNDJabS00LjY5IDkuNjRhMS45OTggMS45OTggMCAwIDAgMi44MyAwbDEuMjUtMS4yNWEuNzUxLjc1MSAwIDAgMSAxLjA0Mi4wMTguNzUxLjc1MSAwIDAgMSAuMDE4IDEuMDQybC0xLjI1IDEuMjVhMy41IDMuNSAwIDEgMS00Ljk1LTQuOTVsMi41LTIuNWEzLjUgMy41IDAgMCAxIDQuOTUgMCAuNzUxLjc1MSAwIDAgMS0uMDE4IDEuMDQyLjc1MS43NTEgMCAwIDEtMS4wNDIuMDE4IDEuOTk4IDEuOTk4IDAgMCAwLTIuODMgMGwtMi41IDIuNWExLjk5OCAxLjk5OCAwIDAgMCAwIDIuODNaIj48L3BhdGg+PC9zdmc+CiAgPC9hPgo8L2gyPjx1bD4KPGxpPuWtmOmSsTwvbGk+CjxsaT7miZPnkIM8L2xpPgo8bGk+5a2m5LmgPC9saT4KPC91bD4=</cipher-text></fixit-encryptor><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2023-01-06 12:32:30\">更新于 2023-01-06&nbsp;</span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/posts/homebrew-npm/ class=post-nav-item rel=prev title=\"安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效\"><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>安装 Homebrew 后导致系统中原有的 Npm 和 Npx 失效</a><a href=/posts/event-loop/ class=post-nav-item rel=next title=\"浏览器原理 - 事件循环\">浏览器原理 - 事件循环<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=\"toc-title encrypted-hidden\">目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=\"toc-content encrypted-hidden\" id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#释然>释然</a></li><li><a href=#期待>期待</a></li><li><a href=#工作>工作</a><ol><li><a href=#主要工作>主要工作</a></li><li><a href=#工作目标>工作目标</a></li><li><a href=#收获>收获</a></li></ol></li><li><a href=#新冠末年>新冠末年</a></li><li><a href=#flags-in-2023>flags in 2023</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none encrypted-hidden\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/core.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/enc-base64.js defer></script><script src=https://unpkg.com/crypto-js@4.2.0/sha256.js defer></script><script src=https://unpkg.com/xxhash-wasm@1.0.2/umd/xxhash-wasm.js defer></script><script src=/js/fixit-decryptor.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/a9c663e1be35f13be44ee6ec9e190e32.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/a9c663e1be35f13be44ee6ec9e190e32.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/2022/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/2022/index.md",
    "content": "# 2022 年度总结\n\n_**本文已加密，因此其原始内容不可见！**_\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/years/2022/  \n\n"
  },
  {
    "path": "years/2023/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>2023 年度总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\n\"><meta name=keywords content='总结'><meta itemprop=name content=\"2023 年度总结\"><meta itemprop=description content=\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\"><meta itemprop=datePublished content=\"2024-02-09T14:07:24+08:00\"><meta itemprop=dateModified content=\"2024-02-09T14:07:24+08:00\"><meta itemprop=wordCount content=\"498\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta itemprop=keywords content=\"总结\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/2023/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"2023 年度总结\"><meta property=\"og:description\" content=\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"article\"><meta property=\"article:section\" content=\"private\"><meta property=\"article:published_time\" content=\"2024-02-09T14:07:24+08:00\"><meta property=\"article:modified_time\" content=\"2024-02-09T14:07:24+08:00\"><meta property=\"article:tag\" content=\"总结\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"2023 年度总结\"><meta name=twitter:description content=\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/2023/ title=\"2023 年度总结 | 菠菜眾長\"><link rel=prev type=text/html href=https://lruihao.cn/projects/lruihao/kityminder-core/ title=强大的脑图可视化工具><link rel=next type=text/html href=https://lruihao.cn/posts/auto-sizes/ title='聊聊 Chrome 新增的 sizes=\"auto\" 属性'><link rel=alternate type=text/markdown href=https://lruihao.cn/years/2023/index.md title=\"2023 年度总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script type=application/ld+json>{\"@context\":\"http://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"2023 年度总结\",\"inLanguage\":\"zh-CN\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https:\\/\\/lruihao.cn\\/years\\/2023\\/\"},\"image\":[{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/lruihao.cn\\/images\\/apple-devices-preview.webp\",\"width\":2880,\"height\":1508}],\"genre\":\"posts\",\"keywords\":\"总结\",\"wordcount\":498,\"url\":\"https:\\/\\/lruihao.cn\\/years\\/2023\\/\",\"datePublished\":\"2024-02-09T14:07:24+08:00\",\"dateModified\":\"2024-02-09T14:07:24+08:00\",\"license\":\"本站内容采用 CC BY-NC-SA 4.0 国际许可协议。\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lruihao\",\"logo\":\"https:\\/\\/lruihao.cn\\/images\\/avatar.jpg\"},\"author\":{\"@type\":\"Person\",\"name\":\"Lruihao\"},\"description\":\"\"}</script><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script><link rel=stylesheet href=https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Bold/result.css></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=\"LXGW WenKai\"><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/2023/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=breadcrumb-item data-separator=/><a href=/years/ title=年度总结>年度总结</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>2023 年度总结</li></ol></nav><main class=fi-container><aside class=\"aside-collection animate__animated animate__fadeIn animate__faster\" aria-label=合集><div class=aside-custom><img src=/images/wxmp.webp alt=微信公众号 width=100%></div></aside><article class=\"page single\"><div class=header><h1 class=\"single-title animate__animated animate__flipInX\"><span>2023 年度总结</span></h1></div><div class=post-meta><div class=post-meta-line><span class=post-author><a href=https://github.com/Lruihao title=作者 target=_blank rel=\"external nofollow noopener noreferrer author\" class=author><img class=avatar src=/images/remote/fee47a2f4f2cc71f99a02b0a73ecfee0_8343730180883956151.jpg alt=Lruihao height=16 width=16>&nbsp;Lruihao</a></span><span class=post-included-in>&nbsp;收录于 <a href=/categories/thoughts/ class=post-category title=\"分类 - 有所思\"><i class=\"fa-regular fa-folder\" aria-hidden=true></i> 有所思</a></span></div><div class=post-meta-line><span title=\"发布于 2024-02-09 14:07:24\"><i class=\"fa-solid fa-calendar-days me-1\" aria-hidden=true></i><time datetime=2024-02-09>2024-02-09</time></span>&nbsp;<span title=\"498 字\"><i class=\"fa-solid fa-pencil-alt me-1\" aria-hidden=true></i>约 500 字</span>&nbsp;<span><i class=\"fa-regular fa-clock me-1\" aria-hidden=true></i>预计阅读 1 分钟</span>&nbsp;<span id=busuanzi_container_page_pv class=\"busuanzi_visitors comment-visitors\" data-flag-title=\"2023 年度总结\"><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_page_pv>-</span>&nbsp;次阅读\n</span>&nbsp;</div></div><div class=\"details toc\" id=toc-static data-kept=false><div class=\"details-summary toc-title\"><span>目录</span>\n<span><i class=\"details-icon fa-solid fa-angle-right\" aria-hidden=true></i></span></div><div class=\"details-content toc-content\" id=toc-content-static><nav id=TableOfContents><ol><li><a href=#2023-年做了些什么>2023 年做了些什么</a></li><li><a href=#生活百无聊赖>生活百无聊赖</a></li><li><a href=#何去何从>何去何从</a></li></ol></nav></div></div><div class=content id=content><p>与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。</p><h2 class=heading-element id=2023-年做了些什么><span>1 2023 年做了些什么</span>\n<a href=#2023-%e5%b9%b4%e5%81%9a%e4%ba%86%e4%ba%9b%e4%bb%80%e4%b9%88 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>工作上，这一年都挺累的，忙碌一年，技术似乎依然停滞不前。当然，这些都是次要的，对于工作，完成既定目标才是关键。</p><p>既然无人推动新技术引用，那就自己来，大型项目想要脱胎换骨，不是一朝一夕的事情。所以，我在可以从一些插件入手，这些插件是独立的项目，技术栈不受限于项目本身，可以尝试新技术。</p><p>开源上，虽然这一年工作很忙，但是也同样花了大量的业余时间在开源项目上。</p><ul><li><a href=https://github.com/orgs/hugo-fixit target=_blank rel=\"external nofollow noopener noreferrer\">hugo-fixit<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a> 系列</li><li><a href=https://github.com/Lruihao/vue-minder-editor-extended target=_blank rel=\"external nofollow noopener noreferrer\">vue-minder-editor-extended<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li><a href=https://github.com/Lruihao/el-table-sticky target=_blank rel=\"external nofollow noopener noreferrer\">el-table-sticky<i class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=true></i></a></li><li>&mldr;</li></ul><h2 class=heading-element id=生活百无聊赖><span>2 生活百无聊赖</span>\n<a href=#%e7%94%9f%e6%b4%bb%e7%99%be%e6%97%a0%e8%81%8a%e8%b5%96 class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>羡慕朋友们逐渐步入下一个阶段，而我却依然在原地踏步。</p><p>这一年，我似乎没有什么新的收获，也没有什么新的体验。</p><p>异地的原因，恋爱似乎也是一种奢望。进展缓慢，观念的不一致，甚至是对未来的不确定，都是阻碍。</p><p>“我不是你的救赎，你自己才是”</p><p>确实，如你所言，我改变不了你，也难以走进你的世界。</p><p>或许终究活成朋友口中“你们怎么像网友？”的样子。</p><p>可怎么会不爱呢，啥时候能带你回家。</p><h2 class=heading-element id=何去何从><span>3 何去何从</span>\n<a href=#%e4%bd%95%e5%8e%bb%e4%bd%95%e4%bb%8e class=heading-mark><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z\"/></svg></a></h2><p>未知带来的迷茫，事隔经年，我依然没有找到答案。</p><p>说起期待，情绪稳定，家庭和睦，家人健康。我只能想到这些。</p><p>算了，思绪复杂不知何去何从。</p><p>随他去吧，一切随缘。</p><p>心若有所向往，何惧道阻且长。</p></div><div class=post-footer id=post-footer><div class=post-info><div class=post-info-line><div class=post-info-mod><span title=\"更新于 2024-02-09 14:07:24\">更新于 2024-02-09&nbsp;</span></div><div class=post-info-license><span><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div></div><div class=post-info-line><div class=post-info-md><span><a href=/years/2023/index.md title=阅读原始文档 class=link-to-markdown>阅读原始文档</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/blob/docs/content/private/years/2023.md?plain=1\" title=查看源码 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-source>查看源码</a></span><span><a href=https://github.com/Lruihao/hugo-blog/edit/docs/content/private/years/2023.md title=编辑此页 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-edit>编辑此页</a></span><span><a href=\"https://github.com/Lruihao/hugo-blog/issues/new?title=[BUG]%202023+%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93&amp;body=%7cField%7cValue%7c%0A%7c-%7c-%7c%0A%7cTitle%7c2023+%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93%7c%0A%7cURL%7chttps://lruihao.cn/years/2023/%7c%0A%7cFilename%7chttps://github.com/Lruihao/hugo-blog/blob/docs/content/private/years/2023.md?plain=1%7c\" title=报告问题 target=_blank rel=\"external nofollow noopener noreferrer\" class=link-to-report>报告问题</a></span></div><div class=post-info-share><span><a href=javascript:void(0); title=\"分享到 X\" data-sharer=twitter data-url=https://lruihao.cn/years/2023/ data-title=\"2023 年度总结\" data-hashtags=总结><i class=\"fa-brands fa-x-twitter\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Facebook\" data-sharer=facebook data-url=https://lruihao.cn/years/2023/ data-hashtag=总结><i class=\"fa-brands fa-facebook-square\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 Linkedin\" data-sharer=linkedin data-url=https://lruihao.cn/years/2023/><i class=\"fa-brands fa-linkedin\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 微博\" data-sharer=weibo data-url=https://lruihao.cn/years/2023/ data-title=\"2023 年度总结\" data-ralateuid=liahao><i class=\"fa-brands fa-weibo\" aria-hidden=true></i></a>\n<a href=javascript:void(0); title=\"分享到 百度\" data-sharer=baidu data-url=https://lruihao.cn/years/2023/ data-title=\"2023 年度总结\"><i data-svg-src=https://unpkg.com/simple-icons@9.19.0/icons/baidu.svg aria-hidden=true></i></a></span></div></div></div><div class=post-info-more><section class=post-tags><i class=\"fa-solid fa-tags me-1\" aria-hidden=true></i><a href=/tags/summary/ class=post-tag title=\"标签 - 总结\">总结</a></section><section><span><a href=javascript:void(0); onclick=window.history.back()>返回</a></span>&nbsp;|&nbsp;<span><a href=/>主页</a></span></section></div><div class=post-nav><a href=/projects/lruihao/kityminder-core/ class=post-nav-item rel=prev title=Lruihao/kityminder-core><i class=\"fa-solid fa-angle-left\" aria-hidden=true></i>Lruihao/kityminder-core</a><a href=/posts/auto-sizes/ class=post-nav-item rel=next title='聊聊 Chrome 新增的 Sizes=\"auto\" 属性'>聊聊 Chrome 新增的 Sizes=\"auto\" 属性<i class=\"fa-solid fa-angle-right\" aria-hidden=true></i></a></div></div><div class=post-footer__after><div class=\"d-none-desktop text-center\"><img src=/images/wxmp.webp alt=微信公众号 width=70%></div></div><div id=comments><div id=giscus class=comment><script src=https://giscus.app/client.js data-repo=Lruihao/hugo-blog data-repo-id=\"MDEwOlJlcG9zaXRvcnk0MDQzNDY3MDk=\" data-category=General data-category-id=DIC_kwDOGBnXVc4CApHL data-mapping=title data-strict=0 data-theme=preferred_color_scheme data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-lang=zh-CN data-loading=lazy crossorigin=anonymous async defer></script></div><noscript>Please enable JavaScript to view the comments powered by <a href=https://giscus.app/ rel=\"external nofollow noopener noreferrer\">giscus</a>.</noscript></div></article><aside class=toc id=toc-auto aria-label=目录><h2 class=toc-title>目录&nbsp;<i class=\"toc-icon fa-solid fa-angle-down\" aria-hidden=true></i></h2><div class=toc-content id=toc-content-auto></div></aside><dialog id=toc-dialog aria-labelledby=toc-dialog-title role=dialog><div class=toc><h2 class=toc-title>目录</h2><div class=toc-content id=toc-content-drawer><nav><ol><li><a href=#2023-年做了些什么>2023 年做了些什么</a></li><li><a href=#生活百无聊赖>生活百无聊赖</a></li><li><a href=#何去何从>何去何从</a></li></ol></nav></div></div></dialog></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div id=toc-drawer-button class=\"fixed-button toc-drawer-button d-none\" role=button aria-label=目录><i class=\"fa-solid fa-bars\" aria-hidden=true></i></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/sharer.js@0.5.1/sharer.min.js async defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/cf6f184ef6fa9bb5ac418756f2050ad3.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/cf6f184ef6fa9bb5ac418756f2050ad3.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/2023/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/2023/index.md",
    "content": "# 2023 年度总结\n\n\n与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\n\n<!--more-->\n\n## 2023 年做了些什么\n\n工作上，这一年都挺累的，忙碌一年，技术似乎依然停滞不前。当然，这些都是次要的，对于工作，完成既定目标才是关键。\n\n既然无人推动新技术引用，那就自己来，大型项目想要脱胎换骨，不是一朝一夕的事情。所以，我在可以从一些插件入手，这些插件是独立的项目，技术栈不受限于项目本身，可以尝试新技术。\n\n开源上，虽然这一年工作很忙，但是也同样花了大量的业余时间在开源项目上。\n\n- [hugo-fixit](https://github.com/orgs/hugo-fixit) 系列\n- [vue-minder-editor-extended](https://github.com/Lruihao/vue-minder-editor-extended)\n- [el-table-sticky](https://github.com/Lruihao/el-table-sticky)\n- ...\n\n## 生活百无聊赖\n\n羡慕朋友们逐渐步入下一个阶段，而我却依然在原地踏步。\n\n这一年，我似乎没有什么新的收获，也没有什么新的体验。\n\n异地的原因，恋爱似乎也是一种奢望。进展缓慢，观念的不一致，甚至是对未来的不确定，都是阻碍。\n\n“我不是你的救赎，你自己才是”\n\n确实，如你所言，我改变不了你，也难以走进你的世界。\n\n或许终究活成朋友口中“你们怎么像网友？”的样子。\n\n可怎么会不爱呢，啥时候能带你回家。\n\n## 何去何从\n\n未知带来的迷茫，事隔经年，我依然没有找到答案。\n\n说起期待，情绪稳定，家庭和睦，家人健康。我只能想到这些。\n\n算了，思绪复杂不知何去何从。\n\n随他去吧，一切随缘。\n\n心若有所向往，何惧道阻且长。\n\n\n---\n\n> 作者: [Lruihao](https://github.com/Lruihao)  \n> URL: https://lruihao.cn/years/2023/  \n\n"
  },
  {
    "path": "years/feed.json",
    "content": "{\"version\":\"https://jsonfeed.org/version/1.1\",\"title\":\"年度总结 | 菠菜眾長\",\"description\":\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\",\"home_page_url\":\"https://lruihao.cn/\",\"language\":\"zh-CN\",\"icon\":\"https://lruihao.cn/apple-touch-icon.png\",\"favicon\":\"https://lruihao.cn/favicon.ico\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://lruihao.cn/images/avatar.jpg\"}],\"items\":[{\"title\":\"2023 年度总结\",\"date_published\":\"2024-02-09T14:07:24&#43;08:00\",\"date_modified\":\"2024-02-09T14:07:24&#43;08:00\",\"id\":\"https://lruihao.cn/years/2023/\",\"url\":\"https://lruihao.cn/years/2023/\",\"authors\":[{\"name\":\"Lruihao\",\"url\":\"https://github.com/Lruihao\",\"avatar\":\"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&amp;d=mp\"}],\"tags\":[\"总结\"],\"summary\":\"与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\n\",\"content_html\":\"\\u003cp\\u003e与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。\\u003c/p\\u003e\"}]}"
  },
  {
    "path": "years/index.html",
    "content": "<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=zh-CN><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1,maximum-scale=2\"><meta name=robots content=\"noodp\"><title>年度总结 | 菠菜眾長</title><meta name=author content=\"Lruihao\"><meta name=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=keywords content='李瑞豪,李瑞豪的博客,菠菜眾長,博採眾長,Lruihao,Cell,Hugo FixIt'><meta itemprop=name content=\"年度总结\"><meta itemprop=description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta itemprop=datePublished content=\"2019-01-12T11:09:52+08:00\"><meta itemprop=dateModified content=\"2026-05-08T02:06:09+00:00\"><meta itemprop=image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta property=\"og:url\" content=\"https://lruihao.cn/years/\"><meta property=\"og:site_name\" content=\"菠菜眾長\"><meta property=\"og:title\" content=\"年度总结\"><meta property=\"og:description\" content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta property=\"og:locale\" content=\"zh_CN\"><meta property=\"og:type\" content=\"website\"><meta property=\"og:image\" content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:card content=\"summary_large_image\"><meta name=twitter:image content=\"https://lruihao.cn/images/apple-devices-preview.webp\"><meta name=twitter:title content=\"年度总结\"><meta name=twitter:description content=\"Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。\"><meta name=application-name content=\"菠菜眾長\"><meta name=apple-mobile-web-app-title content=\"菠菜眾長\"><meta name=theme-color data-light=#ffffff data-dark=#252627 content=\"#ffffff\"><meta name=msapplication-TileColor content=\"#da532c\"><link rel=\"shortcut icon\" type=image/x-icon href=/favicon.ico><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=mask-icon href=/safari-pinned-tab.svg color=#5bbad5><link rel=manifest href=/site.webmanifest><link rel=canonical type=text/html href=https://lruihao.cn/years/ title=\"年度总结 | 菠菜眾長\"><link rel=alternate type=application/rss+xml href=https://lruihao.cn/years/index.xml title=\"年度总结 | 菠菜眾長\"><link rel=alternate type=application/json href=https://lruihao.cn/years/feed.json title=\"年度总结 | 菠菜眾長\"><link rel=alternate type=application/feed+json href=https://lruihao.cn/years/feed.json title=\"年度总结 | 菠菜眾長\"><link rel=stylesheet href=/css/config.min.css><link rel=stylesheet href=/css/style.min.css><link rel=preload href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/@fortawesome/fontawesome-free@7.1.0/css/all.min.css></noscript><link rel=preload href=https://unpkg.com/animate.css@4.1.1/animate.min.css as=style onload='this.removeAttribute(\"onload\"),this.rel=\"stylesheet\"'><noscript><link rel=stylesheet href=https://unpkg.com/animate.css@4.1.1/animate.min.css></noscript><script src=/js/head/color-scheme.min.js></script><link rel=stylesheet href=https://unpkg.com/tippy.js@5/dist/tippy.css><link rel=stylesheet href=https://unpkg.com/tippy.js@5/animations/shift-away.css><script src=https://unpkg.com/popper.js@1 defer></script><script src=https://unpkg.com/tippy.js@5 defer></script><link rel=stylesheet href=/css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css integrity=\"sha256-ItY/E0kJJoaVi/m6RrAJRuUj+52AWVAJ9ZUxU3TXR+I=\"><script src=/js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js integrity=\"sha256-h6FVVH9qBUU455VArbjqe3g1K/bIE8A+gs0rh42j3o8=\" defer></script></head><body data-instant-intensity=viewport data-header-desktop=sticky data-header-mobile=auto><div class=wrapper data-page-style=normal><header class=\"desktop animate__faster\" id=header-desktop><div class=header-wrapper data-github-corner=right><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=32 width=32><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><nav><ul class=menu><li class=\"menu-item has-children\"><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=menu-item><a class=menu-link href=/index.xml title=\"通过 RSS 订阅\"><i class=\"fa-solid fa-rss fa-sm\" aria-hidden=true></i> RSS</a></li><li class=\"menu-item active has-children\"><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a><i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item delimiter\"></li><li class=\"menu-item search\" id=search-desktop><input type=text placeholder=搜索文章标题或内容…… id=search-input-desktop>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-desktop title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-desktop title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-desktop><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></li><li class=\"menu-item theme-switch\" role=button aria-label=切换主题 title=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></li><li class=\"menu-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言><i class=\"fa-solid fa-language fa-fw\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\" data-type=artificial><a href=/years/ data-lang=zh-CN class=\"menu-link text-secondary\" title=简体中文><i class=\"fa-solid fa-person fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item-divider aria-hidden=true></li><li class=menu-item data-type=machine><a data-lang=chinese_simplified class=menu-link title=简体中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 简体中文</a></li><li class=menu-item data-type=machine><a data-lang=chinese_traditional class=menu-link title=繁體中文><i class=\"fa-solid fa-robot fa-fw fa-sm\" aria-hidden=true></i> 繁體中文</a></li></ul></li></ul></nav></div></header><header class=\"mobile animate__faster\" id=header-mobile><div class=header-container><div class=header-wrapper><div class=header-title><a href=/ title=菠菜眾長><img class=logo src=/logo.webp alt=菠菜眾長 height=26 width=26><span class=header-title-text>菠菜众长</span></a><span class=header-subtitle>李瑞豪的博客</span></div><div class=theme-switch role=button aria-label=切换主题><i class=\"fa-solid fa-adjust\" aria-hidden=true></i></div><div class=menu-toggle id=menu-toggle-mobile role=button aria-labelledby=menu-mobile><span></span><span></span><span></span></div></div><nav><ul class=menu id=menu-mobile><li class=search-wrapper><div class=\"search mobile\" id=search-mobile><input type=text placeholder=搜索文章标题或内容…… id=search-input-mobile>\n<a href=javascript:void(0); class=\"search-button search-toggle\" id=search-toggle-mobile title=搜索><i class=\"fa-solid fa-search\" aria-hidden=true></i>\n</a><a href=javascript:void(0); class=\"search-button search-clear\" id=search-clear-mobile title=清空><i class=\"fa-solid fa-times-circle\" aria-hidden=true></i>\n</a><span class=\"search-button search-loading\" id=search-loading-mobile><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></div><a href=javascript:void(0); class=search-cancel id=search-cancel-mobile>取消</a></li><li class=menu-item><span class=nested-item><a class=menu-link href=/archives/><i class=\"fa-solid fa-feather fa-sm\" aria-hidden=true></i> 文章</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=menu-item><a class=menu-link href=/categories/><i class=\"fa-solid fa-folder-tree fa-sm\" aria-hidden=true></i> 分类</a></li><li class=menu-item><a class=menu-link href=/collections/><i class=\"fa-solid fa-layer-group fa-sm\" aria-hidden=true></i> 合集</a></li><li class=menu-item><a class=menu-link href=/tags/><i class=\"fa-solid fa-tags fa-sm\" aria-hidden=true></i> 标签</a></li><li class=\"menu-item menu-item-divider\" aria-hidden=true></li><li class=menu-item><a class=menu-link href=https://fixit.lruihao.cn/ title=\"FixIt 官网\" rel=\"noopener noreferrer\" target=_blank><img class=fixit-icon src=https://fixit.lruihao.cn/images/hugo-fixit.webp alt=\"FixIt logo\"> FixIt <i class=\"fa-solid fa-external-link-alt fa-fw fa-xs text-secondary\"></i></a></li></ul></li><li class=menu-item><a class=menu-link href=/projects/ title=开源项目><i class=\"fa-solid fa-lightbulb fa-shake fa-sm\" aria-hidden=true></i> 开源</a></li><li class=menu-item><a class=menu-link href=/friends/ title=友情链接><i class=\"fa-solid fa-users fa-sm\" aria-hidden=true></i> 友链</a></li><li class=menu-item><a class=menu-link href=/reward/><i class=\"fa-solid fa-hand-holding-dollar fa-sm\" aria-hidden=true></i> 赞赏</a></li><li class=menu-item><a class=menu-link href=/guestbook/><i class=\"fa-solid fa-comment-dots fa-sm\" aria-hidden=true></i> 留言</a></li><li class=\"menu-item active\"><span class=nested-item><a class=menu-link href=/about/><i class=\"fa-solid fa-quote-left fa-sm\" aria-hidden=true></i> 关于</a>\n<i class=\"dropdown-icon fa-solid fa-chevron-right\" aria-hidden=true></i></span><ul class=sub-menu><li class=\"menu-item active\"><a class=menu-link href=/years/ title=我的年度总结><i class=\"fa-regular fa-newspaper fa-sm\" aria-hidden=true></i> 年度总结</a></li></ul></li><li class=\"menu-item text-center\"><a class=menu-link href=https://github.com/Lruihao/ rel=\"noopener noreferrer\" target=_blank><i class=\"fa-brands fa-github fa-lg fa-sm\" aria-hidden=true></i> 关注 Follow</a></li><li class=\"menu-item menu-system\"><span id=translate class=\"menu-system-item language-switch auto d-none\" aria-hidden=true><span role=button aria-label=选择语言 title=选择语言 data-current=简体中文>简体中文<i class=\"dropdown-icon fa-solid fa-chevron-down\" aria-hidden=true></i></span></span></li></ul></nav></div></header><div class=\"search-dropdown desktop\"><div id=search-dropdown-desktop></div></div><div class=\"search-dropdown mobile\"><div id=search-dropdown-mobile></div></div><nav aria-label=breadcrumb class=\"breadcrumb-container sticky\"><ol class=breadcrumb><li class=breadcrumb-item data-separator=/><a href title=加密内容>加密内容</a></li><li class=\"breadcrumb-item active\" data-separator=/ aria-current=page>年度总结</li></ol></nav><main class=fi-container><div class=\"page archive\"><div class=header><h1 class=\"single-title animate__animated animate__pulse animate__faster\"><i class=\"fa-regular fa-newspaper me-1\" aria-hidden=true></i>年度总结 <sup>5</sup></h1><p class=\"single-subtitle total-word-count\" title='总计约 7483 字'><i class=\"fa-regular fa-keyboard\" aria-hidden=true></i> 总计约 7.48K 字</p></div><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2024</h2><article class=archive-item><a href=/years/2023/ class=archive-item-link>2023 年度总结</a>\n<span class=archive-item-date title='2024-02-09 14:07:24'>02-09</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2022</h2><article class=archive-item><a href=/years/2022/ class=archive-item-link>2022 年度总结</a>\n<span class=archive-item-date title='2022-12-17 01:01:30'>12-17</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2021</h2><article class=archive-item><a href=/years/2020-2021/ class=archive-item-link>2020&amp;2021 總結</a>\n<span class=archive-item-date title='2021-06-21 10:17:38'>06-21</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2020</h2><article class=archive-item><a href=/years/2019/ class=archive-item-link>2019 年度总结</a>\n<span class=archive-item-date title='2020-01-16 20:01:22'>01-16</span></article><h2 class=group-title><i class=\"fa-regular fa-calendar me-1\" aria-hidden=true></i>2019</h2><article class=archive-item><a href=/years/2018/ class=archive-item-link>2018 年度总结</a>\n<span class=archive-item-date title='2019-01-12 11:09:52'>01-12</span></article></div></main><footer class=footer><div class=footer-container><div class=\"footer-line powered order-1\">由 <a href=https://gohugo.io/ target=_blank rel=\"external nofollow noopener noreferrer\" title=\"Hugo 0.161.1\"><img class=hugo-icon src=/images/hugo.min.svg alt=\"Hugo logo\"> Hugo</a> 强力驱动 | 主题 - <a href=https://github.com/hugo-fixit/FixIt target=_blank rel=external title=\"FixIt v0.4.5\"><img class=fixit-icon src=/images/fixit.min.svg alt=\"FixIt logo\"> FixIt</a></div><div class=\"footer-line copyright order-2\" itemscope itemtype=http://schema.org/CreativeWork><i class=\"fa-regular fa-copyright\" aria-hidden=true></i>\n<span itemprop=copyrightYear>2018 - 2026</span><span class=author itemprop=copyrightHolder>\n<a href=https://github.com/Lruihao target=_blank rel=\"external nofollow noopener noreferrer\">Lruihao</a></span><span class=\"license footer-divider\"><a rel=\"license external nofollow noopener noreferrer\" href=https://creativecommons.org/licenses/by-nc-sa/4.0/ target=_blank>CC BY-NC-SA 4.0</a></span></div><div class=\"footer-line statistics order-3\"><span class=site-time title=网站运行中……><i class=\"fa-solid fa-heartbeat animate-icon\" aria-hidden=true></i><span class=\"ms-1 d-none\">博客已运行</span><span class=\"run-times variant-numeric ms-1\">网站运行中……</span></span></div><div class=\"footer-line visitor order-4\"><span id=busuanzi_container_site_uv title=总访客数><i class=\"fa-regular fa-user me-1\" aria-hidden=true></i><span id=busuanzi_value_site_uv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span><span id=busuanzi_container_site_pv class=footer-divider title=总访问量><i class=\"fa-regular fa-eye me-1\" aria-hidden=true></i><span id=busuanzi_value_site_pv><i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=true></i></span></span></div></div></footer></div><div class=widgets><div class=fixed-buttons><div class=\"fixed-button back-to-top animate__faster d-none\" role=button aria-label=回到顶部><i class=\"fa-solid fa-arrow-up\" aria-hidden=true></i><svg viewBox=\"0 0 100 100\"><circle class=\"bg\" cx=\"50\" cy=\"50\" r=\"50\"/><circle class=\"progress\" cx=\"50\" cy=\"50\" r=\"50\"/></svg></div><div class=\"fixed-button view-comments d-none\" role=button aria-label=查看评论><i class=\"fa-solid fa-comment\" aria-hidden=true></i></div></div><a href=https://github.com/Lruihao/hugo-blog title=\"在 GitHub 上查看源码，订阅请点 Watch~\" target=_blank rel=\"external nofollow\" class=\"github-corner right d-none-mobile\"><svg viewBox=\"0 0 250 250\" aria-hidden=\"true\" width=\"56\" height=\"56\"><path d=\"M0 0 115 115h15l12 27L250 250V0z\"/><path d=\"M128.3 109C113.8 99.7 119 89.6 119 89.6 122 82.7 120.5 78.6 120.5 78.6 119.2 72 123.4 76.3 123.4 76.3 127.3 80.9 125.5 87.3 125.5 87.3 122.9 97.6 130.6 101.9 134.4 103.2\" fill=\"currentColor\" style=\"transform-origin:130px 106px\" class=\"octo-arm\"/><path d=\"M115 115C114.9 115.1 118.7 116.5 119.8 115.4l13.9-13.8C136.9 99.2 139.9 98.4 142.2 98.6 133.8 88 127.5 74.4 143.8 58 148.5 53.4 154 51.2 159.7 51 160.3 49.4 163.2 43.6 171.4 40.1 171.4 40.1 176.1 42.5 178.8 56.2 183.1 58.6 187.2 61.8 190.9 65.4 194.5 69 197.7 73.2 200.1 77.6 213.8 80.2 216.3 84.9 216.3 84.9 212.7 93.1 206.9 96 205.4 96.6 205.1 102.4 203 107.8 198.3 112.5 181.9 128.9 168.3 122.5 157.7 114.1 157.9 116.9 156.7 120.9 152.7 124.9L141 136.5C139.8 137.7 141.6 141.9 141.8 141.8z\" fill=\"currentColor\" class=\"octo-body\"/></svg></a><div id=mask></div><div class=reading-progress-bar style=left:0;top:0;--fi-bg-progress:#8581dd;--fi-bg-progress-dark:#fff></div><noscript><div class=noscript-warning>该网站在启用 JavaScript 的情况下效果最佳。</div></noscript></div><link rel=stylesheet href=/css/santa-hat.fixit.min.css><link rel=stylesheet href=https://unpkg.com/lightgallery@2.7.2/css/lightgallery-bundle.min.css><link rel=stylesheet href=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.css><link rel=stylesheet href=https://unpkg.com/pace-js@1.2.4/themes/blue/pace-theme-minimal.css><script src=\"https://cdnjs.cloudflare.com/polyfill/v3/polyfill.js?features=Array.prototype.fill%2CArray.prototype.find%2CArray.from%2CIntersectionObserver%2CMath.sign%2CObject.assign%2CPromise%2CObject.entries%2Chtml5shiv%2CObject.values%2Cfetch%2CElement.prototype.after\"></script><script src=https://unpkg.com/autocomplete.js@0.38.1/dist/autocomplete.min.js defer></script><script src=https://unpkg.com/algoliasearch@4.20.0/dist/algoliasearch-lite.umd.js defer></script><script src=https://unpkg.com/instant.page@5.2.0/instantpage.js async defer type=module></script><script src=https://unpkg.com/lightgallery@2.7.2/lightgallery.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/thumbnail/lg-thumbnail.min.js defer></script><script src=https://unpkg.com/lightgallery@2.7.2/plugins/zoom/lg-zoom.min.js defer></script><script src=https://unpkg.com/cookieconsent@3.1.1/build/cookieconsent.min.js defer></script><script src=https://unpkg.com/pangu@4.0.7/dist/browser/pangu.min.js defer></script><script src=https://unpkg.com/cell-tooltip@0.3.0/dist/cell-tooltip.umd.js defer></script><script src=https://unpkg.com/cell-watermark@1.0.3/src/watermark.min.js defer></script><script src=https://vercount.one/js async defer></script><script src=https://unpkg.com/pace-js@1.2.4/pace.min.js async defer></script><script src=/js/config/post-chat/fb55cc5f720ca1d6412e7036e7463982.js defer></script><script src=https://ai.zhheo.com/static/public/postChatUser.min.js defer data-postchat_key=P-HJ9FXI41JLU1WBK1></script><script src=/js/config/fb55cc5f720ca1d6412e7036e7463982.js defer></script><script src=/js/theme.min.js defer></script><script src=/js/flyfish.min.js defer></script><script src=/js/santa-hat.fixit.min.js async defer></script><script src=/lib/translate.min.js defer></script><script>window.ATConfig={hugoLangCodes:[\"zh-CN\"],hugoLangMap:{\"zh-CN\":\"/years/\"}}</script><script src=/js/translate.fixit.min.js defer></script><script src=/js/custom.min.js defer></script><script async defer data-website-id=4049c0b0-87c9-4573-8ae5-d84449e40e05 src=https://cloud.umami.is/script.js></script></body></html>"
  },
  {
    "path": "years/index.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\"><channel><title>年度总结 | 菠菜眾長</title><link>https://lruihao.cn/years/</link><description>Hugo FixIt 作者，喜欢瞎折腾、造轮子、写东西，分享一些前端开发中的所见、所闻、所思。</description><generator>Hugo 0.161.1 &amp; FixIt v0.4.5</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><copyright>本站内容采用 CC BY-NC-SA 4.0 国际许可协议。</copyright><lastBuildDate>Fri, 09 Feb 2024 14:07:24 +0800</lastBuildDate><atom:link href=\"https://lruihao.cn/years/index.xml\" rel=\"self\" type=\"application/rss+xml\"/><item><title>2023 年度总结</title><link>https://lruihao.cn/years/2023/</link><pubDate>Fri, 09 Feb 2024 14:07:24 +0800</pubDate><author>1024@lruihao.cn (Lruihao)</author><guid>https://lruihao.cn/years/2023/</guid><category domain=\"https://lruihao.cn/categories/thoughts/\">有所思</category><description>&lt;p&gt;与其说是年度总结，不如说是一年中难得的一次和自己对话的机会。&lt;/p&gt;</description></item></channel></rss>"
  },
  {
    "path": "years/page/1/index.html",
    "content": "<!doctype html><html lang=zh-CN><head><title>https://lruihao.cn/years/</title><link rel=canonical href=https://lruihao.cn/years/><meta charset=utf-8><meta http-equiv=refresh content=\"0; url=https://lruihao.cn/years/\"></head></html>"
  }
]